1 line
No EOL
4.8 MiB
1 line
No EOL
4.8 MiB
{"version":3,"file":"tldraw.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"file":"module$node_modules$react$cjs$react_jsx_runtime_production_min.js","lineCount":2,"mappings":"AAAAA,cAAA,CAAe,GAAf,CAAA,CAAsB,QAAQ,CAACC,EAAD,CAAQC,EAAR,CAAgBC,EAAhB,CAAuBC,CAAvB,CAAgC,CAU9DC,QAASA,EAAC,CAACC,CAAD,CAAGC,CAAH,CAAKC,CAAL,CAAO,CAAA,IAAKC,CAAL,CAAOC,EAAE,EAAT,CAAYC,EAAE,IAAd,CAAmBC,EAAE,IAAK,KAAK,EAAL,GAASJ,CAAT,GAAaG,CAAb,CAAe,EAAf,CAAkBH,CAAlB,CAAqB,KAAK,EAAL,GAASD,CAAEM,CAAAA,GAAX,GAAiBF,CAAjB,CAAmB,EAAnB,CAAsBJ,CAAEM,CAAAA,GAAxB,CAA6B,KAAK,EAAL,GAASN,CAAEO,CAAAA,GAAX,GAAiBF,CAAjB,CAAmBL,CAAEO,CAAAA,GAArB,CAA0B,KAAIL,CAAJ,GAASF,EAAT,CAAWQ,CAAEC,CAAAA,IAAF,CAAOT,CAAP,CAASE,CAAT,CAAA,EAAa,CAACQ,CAAEC,CAAAA,cAAF,CAAiBT,CAAjB,CAAd,GAAoCC,CAAA,CAAED,CAAF,CAApC,CAAyCF,CAAA,CAAEE,CAAF,CAAzC,CAA+C,IAAGH,CAAH,EAAMA,CAAEa,CAAAA,YAAR,CAAqB,IAAIV,CAAJ,GAASF,EAAA,CAAED,CAAEa,CAAAA,YAAJ,CAAiBZ,CAA1B,CAA4B,IAAK,EAAL,GAASG,CAAA,CAAED,CAAF,CAAT,GAAgBC,CAAA,CAAED,CAAF,CAAhB,CAAqBF,CAAA,CAAEE,CAAF,CAArB,CAA2B,OAAM,CAACW,SAASC,CAAV,CAAYC,KAAKhB,CAAjB,CAAmBO,IAAIF,CAAvB,CAAyBG,IAAIF,CAA7B,CAA+BW,MAAMb,CAArC,CAAuCc,OAAOC,CAAEC,CAAAA,OAAhD,CAAlP,CADJxB,EAAA,CAAQ,GAAR,CAA6ByB,GAAAA,CAAEzB,EAAA,CAAQ,CAAR,CAAN,KAAuBmB,EAAE,KAAMjB,EAAQwB,CAAAA,QAAR,CAAiB,KAAS,WAAH,GAAgB,MAAOC,OAAvB,EAA+BA,MAAOC,CAAAA,GAAtC,GAA+CC,EAAkC,CAAhCF,MAAOC,CAAAA,GAAyB,CAArBT,CAAqB,CAAnBU,EAAA,CAAE,eAAF,CAAmB,CAAA3B,CAAQwB,CAAAA,QAAR,CAAiBG,EAAA,CAAE,gBAAF,CAAlG,CAT9B;IASwJN,EAAEE,EAAEK,CAAAA,kDAAmDC,CAAAA,iBAT\/M,CASiOlB,EAAEmB,MAAOC,CAAAA,SAAUjB,CAAAA,cATpP,CASmQD,EAAE,CAACJ,IAAI,CAAA,CAAL,CAAQC,IAAI,CAAA,CAAZ,CAAesB,OAAO,CAAA,CAAtB,CAAyBC,SAAS,CAAA,CAAlC,CACPjC,EAAQkC,CAAAA,GAAR,CAAYjC,CAAED,EAAQmC,CAAAA,IAAR,CAAalC,CAVzR;","sources":["node_modules\/react\/cjs\/react-jsx-runtime.production.min.js"],"sourcesContent":["shadow$provide[587] = function(global,require,module,exports) {\n\/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\/\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n\n};"],"names":["shadow$provide","global","require","module","exports","q","c","a","k","b","d","e","l","key","ref","n","call","p","hasOwnProperty","defaultProps","$$typeof","g","type","props","_owner","m","current","f","Fragment","Symbol","for","h","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","Object","prototype","__self","__source","jsx","jsxs"]}},{"offset":{"line":3,"column":0},"map":{"version":3,"file":"module$node_modules$react$jsx_runtime.js","lineCount":1,"mappings":"AAAAA,cAAA,CAAe,GAAf,CAAA,CAAsB,QAAQ,CAACC,EAAD,CAAQC,EAAR,CAAgBC,EAAhB,CAAuBC,CAAvB,CAAgC,CAI5DD,EAAOC,CAAAA,OAAP,CAAiBF,EAAA,CAAQ,GAAR,CAJ2C;","sources":["node_modules\/react\/jsx-runtime.js"],"sourcesContent":["shadow$provide[589] = function(global,require,module,exports) {\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('.\/cjs\/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('.\/cjs\/react-jsx-runtime.development.js');\n}\n\n};"],"names":["shadow$provide","global","require","module","exports"]}},{"offset":{"line":4,"column":0},"map":{"version":3,"file":"module$node_modules$react_dom$cjs$react_dom_server_browser_production_min.js","lineCount":39,"mappings":"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\/I,EAAP,CAAS,CAAC,IAAI8B,GAAEiH,EAAE\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\/H,EAAL,CAAQ,KAAM\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\/B,CAAF,CACpd\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\/E,CAKkF,OAAO\/S,GAbxK,CAAV,EAauLF,EAAQqT,CAAAA,kBAAR,CAA2BC,QAAQ,EAAE,CAAC,KAAM3O,MAAA,CAAM1E,CAAA,CAAE,GAAF,CAAN,CAAN,CAAD,CAAuBD,EAAQuT,CAAAA,oBAAR,CAA6BC,QAAQ,CAACtT,EAAD,CAAGC,EAAH,CAAK,CAACD,EAAA,CAAE,IAAImQ,EAAJ,CAAOnQ,EAAP,CAAS,CAAA,CAAT,CAAYC,EAAZ,CAAe,IAAG,CAAC,MAAOD,GAAE0R,CAAAA,IAAF,CAAO6B,QAAP,CAAR,CAAH,OAAmC,CAACvT,EAAEiR,CAAAA,OAAF,EAAD,CAArD,CAAoEnR,EAAQ0T,CAAAA,wBAAR,CAAiCC,QAAQ,EAAE,CAAC,KAAMhP,MAAA,CAAM1E,CAAA,CAAE,GAAF,CAAN,CAAN,CAAD,CAAuBD,EAAQ4T,CAAAA,cAAR,CAAuBC,QAAQ,CAAC3T,EAAD,CAAGC,EAAH,CAAK,CAACD,EAAA,CAAE,IAAImQ,EAAJ,CAAOnQ,EAAP,CAAS,CAAA,CAAT,CAAYC,EAAZ,CAAe,IAAG,CAAC,MAAOD,GAAE0R,CAAAA,IAAF,CAAO6B,QAAP,CAAR,CAAH,OAAmC,CAACvT,EAAEiR,CAAAA,OAAF,EAAD,CAArD,CAC9cnR,EAAQ8T,CAAAA,OAAR,CAAgB,QAnD8C;","sources":["node_modules\/react-dom\/cjs\/react-dom-server.browser.production.min.js"],"sourcesContent":["shadow$provide[590] = function(global,require,module,exports) {\n\/** @license React v17.0.2\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\/\n'use strict';var l=require(\"object-assign\"),m=require(\"react\");function p(a){for(var b=\"https:\/\/reactjs.org\/docs\/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar q=60106,r=60107,u=60108,z=60114,B=60109,aa=60110,ba=60112,D=60113,ca=60120,da=60115,ea=60116,fa=60121,ha=60117,ia=60119,ja=60129,ka=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;q=E(\"react.portal\");r=E(\"react.fragment\");u=E(\"react.strict_mode\");z=E(\"react.profiler\");B=E(\"react.provider\");aa=E(\"react.context\");ba=E(\"react.forward_ref\");D=E(\"react.suspense\");ca=E(\"react.suspense_list\");da=E(\"react.memo\");ea=E(\"react.lazy\");fa=E(\"react.block\");ha=E(\"react.fundamental\");ia=E(\"react.scope\");ja=E(\"react.debug_trace_mode\");ka=E(\"react.legacy_hidden\")}\nfunction F(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case r:return\"Fragment\";case q:return\"Portal\";case z:return\"Profiler\";case u:return\"StrictMode\";case D:return\"Suspense\";case ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case aa:return(a.displayName||\"Context\")+\".Consumer\";case B:return(a._context.displayName||\"Context\")+\".Provider\";case ba:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||\n(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case da:return F(a.type);case fa:return F(a._render);case ea:b=a._payload;a=a._init;try{return F(a(b))}catch(c){}}return null}var la=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ma={};function I(a,b){for(var c=a._threadCount|0;c<=b;c++)a[c]=a._currentValue2,a._threadCount=c+1}function na(a,b,c,d){if(d&&(d=a.contextType,\"object\"===typeof d&&null!==d))return I(d,c),d[c];if(a=a.contextTypes){c={};for(var f in a)c[f]=b[f];b=c}else b=ma;return b}\nfor(var J=new Uint16Array(16),K=0;15>K;K++)J[K]=K+1;J[15]=0;var oa=\/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$\/,pa=Object.prototype.hasOwnProperty,qa={},ra={};\nfunction sa(a){if(pa.call(ra,a))return!0;if(pa.call(qa,a))return!1;if(oa.test(a))return ra[a]=!0;qa[a]=!0;return!1}function ta(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction ua(a,b,c,d){if(null===b||\"undefined\"===typeof b||ta(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function M(a,b,c,d,f,h,t){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=h;this.removeEmptyString=t}var N={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){N[a]=new M(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];N[b]=new M(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){N[a]=new M(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){N[a]=new M(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){N[a]=new M(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){N[a]=new M(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){N[a]=new M(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){N[a]=new M(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){N[a]=new M(a,5,!1,a.toLowerCase(),null,!1,!1)});var va=\/[\\-:]([a-z])\/g;function wa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(va,\nwa);N[b]=new M(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http:\/\/www.w3.org\/1999\/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http:\/\/www.w3.org\/XML\/1998\/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!1,!1)});\nN.xlinkHref=new M(\"xlinkHref\",1,!1,\"xlink:href\",\"http:\/\/www.w3.org\/1999\/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!0,!0)});var xa=\/[\"'&<>]\/;\nfunction O(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;d<a.length;d++){switch(a.charCodeAt(d)){case 34:b=\""\";break;case 38:b=\"&\";break;case 39:b=\"'\";break;case 60:b=\"<\";break;case 62:b=\">\";break;default:continue}f!==d&&(c+=a.substring(f,d));f=d+1;c+=b}a=f!==d?c+a.substring(f,d):c}return a}\nfunction ya(a,b){var c=N.hasOwnProperty(a)?N[a]:null;var d;if(d=\"style\"!==a)d=null!==c?0===c.type:!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1]?!1:!0;if(d||ua(a,b,c,!1))return\"\";if(null!==c){a=c.attributeName;d=c.type;if(3===d||4===d&&!0===b)return a+'=\"\"';c.sanitizeURL&&(b=\"\"+b);return a+'=\"'+(O(b)+'\"')}return sa(a)?a+'=\"'+(O(b)+'\"'):\"\"}function za(a,b){return a===b&&(0!==a||1\/a===1\/b)||a!==a&&b!==b}\nvar Aa=\"function\"===typeof Object.is?Object.is:za,P=null,Q=null,R=null,S=!1,T=!1,U=null,V=0;function W(){if(null===P)throw Error(p(321));return P}function Ba(){if(0<V)throw Error(p(312));return{memoizedState:null,queue:null,next:null}}function Ca(){null===R?null===Q?(S=!1,Q=R=Ba()):(S=!0,R=Q):null===R.next?(S=!1,R=R.next=Ba()):(S=!0,R=R.next);return R}function Da(a,b,c,d){for(;T;)T=!1,V+=1,R=null,c=a(b,d);Ea();return c}function Ea(){P=null;T=!1;Q=null;V=0;R=U=null}\nfunction Fa(a,b){return\"function\"===typeof b?b(a):b}function Ga(a,b,c){P=W();R=Ca();if(S){var d=R.queue;b=d.dispatch;if(null!==U&&(c=U.get(d),void 0!==c)){U.delete(d);d=R.memoizedState;do d=a(d,c.action),c=c.next;while(null!==c);R.memoizedState=d;return[d,b]}return[R.memoizedState,b]}a=a===Fa?\"function\"===typeof b?b():b:void 0!==c?c(b):b;R.memoizedState=a;a=R.queue={last:null,dispatch:null};a=a.dispatch=Ha.bind(null,P,a);return[R.memoizedState,a]}\nfunction Ia(a,b){P=W();R=Ca();b=void 0===b?null:b;if(null!==R){var c=R.memoizedState;if(null!==c&&null!==b){var d=c[1];a:if(null===d)d=!1;else{for(var f=0;f<d.length&&f<b.length;f++)if(!Aa(b[f],d[f])){d=!1;break a}d=!0}if(d)return c[0]}}a=a();R.memoizedState=[a,b];return a}function Ha(a,b,c){if(!(25>V))throw Error(p(301));if(a===P)if(T=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ja(){}\nvar X=null,Ka={readContext:function(a){var b=X.threadID;I(a,b);return a[b]},useContext:function(a){W();var b=X.threadID;I(a,b);return a[b]},useMemo:Ia,useReducer:Ga,useRef:function(a){P=W();R=Ca();var b=R.memoizedState;return null===b?(a={current:a},R.memoizedState=a):b},useState:function(a){return Ga(Fa,a)},useLayoutEffect:function(){},useCallback:function(a,b){return Ia(function(){return a},b)},useImperativeHandle:Ja,useEffect:Ja,useDebugValue:Ja,useDeferredValue:function(a){W();return a},useTransition:function(){W();\nreturn[function(a){a()},!1]},useOpaqueIdentifier:function(){return(X.identifierPrefix||\"\")+\"R:\"+(X.uniqueID++).toString(36)},useMutableSource:function(a,b){W();return b(a._source)}},La={html:\"http:\/\/www.w3.org\/1999\/xhtml\",mathml:\"http:\/\/www.w3.org\/1998\/Math\/MathML\",svg:\"http:\/\/www.w3.org\/2000\/svg\"};function Ma(a){switch(a){case \"svg\":return\"http:\/\/www.w3.org\/2000\/svg\";case \"math\":return\"http:\/\/www.w3.org\/1998\/Math\/MathML\";default:return\"http:\/\/www.w3.org\/1999\/xhtml\"}}\nvar Na={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Oa=l({menuitem:!0},Na),Y={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,\ngridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pa=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Y).forEach(function(a){Pa.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Y[b]=Y[a]})});\nvar Qa=\/([A-Z])\/g,Ra=\/^ms-\/,Z=m.Children.toArray,Sa=la.ReactCurrentDispatcher,Ta={listing:!0,pre:!0,textarea:!0},Ua=\/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$\/,Va={},Wa={};function Xa(a){if(void 0===a||null===a)return a;var b=\"\";m.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Ya=Object.prototype.hasOwnProperty,Za={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function $a(a,b){if(void 0===a)throw Error(p(152,F(b)||\"Component\"));}\nfunction ab(a,b,c){function d(d,h){var e=h.prototype&&h.prototype.isReactComponent,f=na(h,b,c,e),t=[],g=!1,n={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===t)return null},enqueueReplaceState:function(a,c){g=!0;t=[c]},enqueueSetState:function(a,c){if(null===t)return null;t.push(c)}};if(e){if(e=new h(d.props,f,n),\"function\"===typeof h.getDerivedStateFromProps){var k=h.getDerivedStateFromProps.call(null,d.props,e.state);null!=k&&(e.state=l({},e.state,k))}}else if(P={},e=h(d.props,\nf,n),e=Da(h,d.props,e,f),null==e||null==e.render){a=e;$a(a,h);return}e.props=d.props;e.context=f;e.updater=n;n=e.state;void 0===n&&(e.state=n=null);if(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount)if(\"function\"===typeof e.componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.UNSAFE_componentWillMount(),t.length){n=t;var v=\ng;t=null;g=!1;if(v&&1===n.length)e.state=n[0];else{k=v?n[0]:e.state;var H=!0;for(v=v?1:0;v<n.length;v++){var x=n[v];x=\"function\"===typeof x?x.call(e,k,d.props,f):x;null!=x&&(H?(H=!1,k=l({},k,x)):l(k,x))}e.state=k}}else t=null;a=e.render();$a(a,h);if(\"function\"===typeof e.getChildContext&&(d=h.childContextTypes,\"object\"===typeof d)){var y=e.getChildContext();for(var A in y)if(!(A in d))throw Error(p(108,F(h)||\"Unknown\",A));}y&&(b=l({},b,y))}for(;m.isValidElement(a);){var f=a,h=f.type;if(\"function\"!==\ntypeof h)break;d(f,h)}return{child:a,context:b}}\nvar bb=function(){function a(a,b,f){m.isValidElement(a)?a.type!==r?a=[a]:(a=a.props.children,a=m.isValidElement(a)?[a]:Z(a)):a=Z(a);a={type:null,domNamespace:La.html,children:a,childIndex:0,context:ma,footer:\"\"};var c=J[0];if(0===c){var d=J;c=d.length;var g=2*c;if(!(65536>=g))throw Error(p(304));var e=new Uint16Array(g);e.set(d);J=e;J[0]=c+1;for(d=c;d<g-1;d++)J[d]=d+1;J[g-1]=0}else J[0]=J[c];this.threadID=c;this.stack=[a];this.exhausted=!1;this.currentSelectValue=null;this.previousWasTextNode=!1;\nthis.makeStaticMarkup=b;this.suspenseDepth=0;this.contextIndex=-1;this.contextStack=[];this.contextValueStack=[];this.uniqueID=0;this.identifierPrefix=f&&f.identifierPrefix||\"\"}var b=a.prototype;b.destroy=function(){if(!this.exhausted){this.exhausted=!0;this.clearProviders();var a=this.threadID;J[a]=J[0];J[0]=a}};b.pushProvider=function(a){var b=++this.contextIndex,c=a.type._context,h=this.threadID;I(c,h);var t=c[h];this.contextStack[b]=c;this.contextValueStack[b]=t;c[h]=a.props.value};b.popProvider=\nfunction(){var a=this.contextIndex,b=this.contextStack[a],f=this.contextValueStack[a];this.contextStack[a]=null;this.contextValueStack[a]=null;this.contextIndex--;b[this.threadID]=f};b.clearProviders=function(){for(var a=this.contextIndex;0<=a;a--)this.contextStack[a][this.threadID]=this.contextValueStack[a]};b.read=function(a){if(this.exhausted)return null;var b=X;X=this;var c=Sa.current;Sa.current=Ka;try{for(var h=[\"\"],t=!1;h[0].length<a;){if(0===this.stack.length){this.exhausted=!0;var g=this.threadID;\nJ[g]=J[0];J[0]=g;break}var e=this.stack[this.stack.length-1];if(t||e.childIndex>=e.children.length){var L=e.footer;\"\"!==L&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===B)this.popProvider(e.type);else if(e.type===D){this.suspenseDepth--;var G=h.pop();if(t){t=!1;var C=e.fallbackFrame;if(!C)throw Error(p(303));this.stack.push(C);h[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else h[this.suspenseDepth]+=\nG}h[this.suspenseDepth]+=L}else{var n=e.children[e.childIndex++],k=\"\";try{k+=this.render(n,e.context,e.domNamespace)}catch(v){if(null!=v&&\"function\"===typeof v.then)throw Error(p(294));throw v;}finally{}h.length<=this.suspenseDepth&&h.push(\"\");h[this.suspenseDepth]+=k}}return h[0]}finally{Sa.current=c,X=b,Ea()}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return O(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+O(f);\nthis.previousWasTextNode=!0;return O(f)}b=ab(a,b,this.threadID);a=b.child;b=b.context;if(null===a||!1===a)return\"\";if(!m.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===q)throw Error(p(257));throw Error(p(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ka:case ja:case u:case z:case ca:case r:return a=Z(a.props.children),this.stack.push({type:null,\ndomNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case D:throw Error(p(294));case ia:throw Error(p(343));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case ba:P={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case da:return a=[m.createElement(c.type,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case aa:c=a.type;d=a.props;var g=this.threadID;I(c,g);c=Z(d.children(c[g]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case ha:throw Error(p(338));case ea:return c=a.type,d=c._init,c=d(c._payload),a=[m.createElement(c,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,\ncontext:b,footer:\"\"}),\"\"}throw Error(p(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===La.html&&Ma(c);if(!Va.hasOwnProperty(c)){if(!Ua.test(c))throw Error(p(65,c));Va[c]=!0}var d=a.props;if(\"input\"===c)d=l({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var g=d.value;if(null==g){g=d.defaultValue;var e=d.children;if(null!=e){if(null!=\ng)throw Error(p(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(p(93));e=e[0]}g=\"\"+e}null==g&&(g=\"\")}d=l({},d,{value:void 0,children:\"\"+g})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=l({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var L=Xa(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":L;g=!1;if(Array.isArray(e))for(var C=0;C<e.length;C++){if(\"\"+e[C]===G){g=!0;break}}else g=\"\"+e===G;d=l({selected:void 0,children:void 0},\nd,{selected:g,children:L})}}if(g=d){if(Oa[c]&&(null!=g.children||null!=g.dangerouslySetInnerHTML))throw Error(p(137,c));if(null!=g.dangerouslySetInnerHTML){if(null!=g.children)throw Error(p(60));if(!(\"object\"===typeof g.dangerouslySetInnerHTML&&\"__html\"in g.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=g.style&&\"object\"!==typeof g.style)throw Error(p(62));}g=d;e=this.makeStaticMarkup;L=1===this.stack.length;G=\"<\"+a.type;b:if(-1===c.indexOf(\"-\"))C=\"string\"===typeof g.is;else switch(c){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":C=\n!1;break b;default:C=!0}for(w in g)if(Ya.call(g,w)){var n=g[w];if(null!=n){if(\"style\"===w){var k=void 0,v=\"\",H=\"\";for(k in n)if(n.hasOwnProperty(k)){var x=0===k.indexOf(\"--\"),y=n[k];if(null!=y){if(x)var A=k;else if(A=k,Wa.hasOwnProperty(A))A=Wa[A];else{var cb=A.replace(Qa,\"-$1\").toLowerCase().replace(Ra,\"-ms-\");A=Wa[A]=cb}v+=H+A+\":\";H=k;x=null==y||\"boolean\"===typeof y||\"\"===y?\"\":x||\"number\"!==typeof y||0===y||Y.hasOwnProperty(H)&&Y[H]?(\"\"+y).trim():y+\"px\";v+=x;H=\";\"}}n=v||null}k=null;C?Za.hasOwnProperty(w)||\n(k=w,k=sa(k)&&null!=n?k+'=\"'+(O(n)+'\"'):\"\"):k=ya(w,n);k&&(G+=\" \"+k)}}e||L&&(G+=' data-reactroot=\"\"');var w=G;g=\"\";Na.hasOwnProperty(c)?w+=\"\/>\":(w+=\">\",g=\"<\/\"+a.type+\">\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=O(e);break a}e=null}null!=e?(d=[],Ta.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(w+=\"\\n\"),w+=e):d=Z(d.children);a=a.type;f=null==f||\"http:\/\/www.w3.org\/1999\/xhtml\"===f?Ma(a):\"http:\/\/www.w3.org\/2000\/svg\"===\nf&&\"foreignObject\"===a?\"http:\/\/www.w3.org\/1999\/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:g});this.previousWasTextNode=!1;return w};return a}();exports.renderToNodeStream=function(){throw Error(p(207));};exports.renderToStaticMarkup=function(a,b){a=new bb(a,!0,b);try{return a.read(Infinity)}finally{a.destroy()}};exports.renderToStaticNodeStream=function(){throw Error(p(208));};exports.renderToString=function(a,b){a=new bb(a,!1,b);try{return a.read(Infinity)}finally{a.destroy()}};\nexports.version=\"17.0.2\";\n\n};"],"names":["shadow$provide","global","require","module","exports","p","a","b","c","arguments","length","encodeURIComponent","F","displayName","name","r","q","z","u","D","ca","$$typeof","aa","B","_context","ba","render","da","type","fa","_render","ea","_payload","_init","I","_threadCount","_currentValue2","na","d","contextType","contextTypes","f","ma","sa","pa","call","ra","qa","oa","test","ta","acceptsBooleans","toLowerCase","slice","ua","isNaN","M","h","t","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","wa","toUpperCase","O","xa","exec","index","charCodeAt","substring","ya","N","hasOwnProperty","za","W","P","Error","Ba","V","memoizedState","queue","next","Ca","R","Q","S","Da","T","Ea","U","Fa","Ga","dispatch","get","delete","action","last","Ha","bind","Ia","Aa","Map","set","Ja","Ma","Xa","m","Children","forEach","$a","ab","e","prototype","isReactComponent","g","n","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","push","props","getDerivedStateFromProps","k","state","l","context","updater","UNSAFE_componentWillMount","componentWillMount","v","H","x","getChildContext","childContextTypes","y","A","isValidElement","child","ha","ia","ja","ka","Symbol","for","E","la","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","J","Uint16Array","K","Object","va","replace","xlinkHref","is","X","Ka","readContext","threadID","useContext","useMemo","useReducer","useRef","current","useState","useLayoutEffect","useCallback","useImperativeHandle","useEffect","useDebugValue","useDeferredValue","useTransition","useOpaqueIdentifier","identifierPrefix","toString","uniqueID","useMutableSource","_source","Na","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","Oa","menuitem","Y","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Pa","keys","charAt","Qa","Ra","Z","toArray","Sa","ReactCurrentDispatcher","Ta","listing","pre","textarea","Ua","Va","Wa","Ya","Za","children","dangerouslySetInnerHTML","suppressContentEditableWarning","suppressHydrationWarning","bb","domNamespace","html","childIndex","footer","stack","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","destroy","b.destroy","clearProviders","pushProvider","b.pushProvider","value","popProvider","b.popProvider","b.clearProviders","read","b.read","L","pop","G","C","fallbackFrame","then","b.render","renderDOM","ref","createElement","b.renderDOM","defaultChecked","defaultValue","checked","Array","isArray","selected","style","indexOf","w","cb","trim","__html","renderToNodeStream","exports.renderToNodeStream","renderToStaticMarkup","exports.renderToStaticMarkup","Infinity","renderToStaticNodeStream","exports.renderToStaticNodeStream","renderToString","exports.renderToString","version"]}},{"offset":{"line":43,"column":0},"map":{"version":3,"file":"module$node_modules$react_dom$server_browser.js","lineCount":1,"mappings":"AAAAA,cAAA,CAAe,GAAf,CAAA,CAAsB,QAAQ,CAACC,EAAD,CAAQC,EAAR,CAAgBC,EAAhB,CAAuBC,CAAvB,CAAgC,CAI5DD,EAAOC,CAAAA,OAAP,CAAiBF,EAAA,CAAQ,GAAR,CAJ2C;","sources":["node_modules\/react-dom\/server.browser.js"],"sourcesContent":["shadow$provide[592] = function(global,require,module,exports) {\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('.\/cjs\/react-dom-server.browser.production.min.js');\n} else {\n module.exports = require('.\/cjs\/react-dom-server.browser.development.js');\n}\n\n};"],"names":["shadow$provide","global","require","module","exports"]}},{"offset":{"line":44,"column":0},"map":{"version":3,"file":"module$frontend$tldraw_logseq.js","lineCount":1572,"mappings":"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\/B,CAAAA,cAAeC,CAAAA,IAA\/B,CAAoCkC,CAApC,CAA4CC,CAA5C,CADsB,CAU\/BC,QAASA,EAAiB,CAACF,CAAD,CAASG,CAAT,CAAgB,CACxC,IAAK,IAAIpK,EAAK,CAAd,CAAiBA,CAAjB,CAAsBoK,CAAMnK,CAAAA,MAA5B,CAAoCD,CAAA,EAApC,CAA0C,CACxC,IAAIqK,EAAaD,CAAA,CAAMpK,CAAN,CACjBqK,EAAW1B,CAAAA,UAAX,CAAwB0B,CAAW1B,CAAAA,UAAnC,EAAiD,CAAA,CACjD0B,EAAWxB,CAAAA,YAAX,CAA0B,CAAA,CACtB,QAAJ,EAAewB,EAAf,GACEA,CAAWzB,CAAAA,QADb,CACwB,CAAA,CADxB,CAEAjB,OAAOe,CAAAA,cAAP,CAAsBuB,CAAtB,CAA8BI,CAAWC,CAAAA,GAAzC,CAA8CD,CAA9C,CANwC,CADF,CAU1CE,QAASA,GAAY,CAACC,CAAD,CAAcC,CAAd,CAA0BC,CAA1B,CAAuC,CACtDD,CAAJ,EACEN,CAAA,CAAkBK,CAAYvB,CAAAA,SAA9B;AAAyCwB,CAAzC,CACEC,EAAJ,EACEP,CAAA,CAAkBK,CAAlB,CAA+BE,CAA\/B,CACF\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\/E,CAAsH,IAA\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\/C,MAAO,CACL5B,gBAAiB\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\/F,EAAYgD,CAAAA,kBAC\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\/I,EAAYqH,CAAAA,gBAA\/B,CACI2B,EAAa,CACjB,CAA6B,CAA7B,CAAOD,CAAapZ,CAAAA,MAApB,CAAA,CAAgC,CAC1B,EAAEqZ,CAAN,GAAqBC,EAArB,GACEC,OAAQvT,CAAAA,KAAR,CAAsM,4BAAtM,CAAqOoT,CAAA,CAAa,CAAb,CAArO,CACA,CAAAA,CAAaI,CAAAA,MAAb,CAAoB,CAApB,CAFF,CAKA,KADA,IAAIC,EAAqBL,CAAaI,CAAAA,MAAb,CAAoB,CAApB,CAAzB,CACSzZ,EAAK,CADd,CACiB0V,GAAKgE,CAAmBzZ,CAAAA,MAAzC,CAAiDD,CAAjD,CAAsD0V,EAAtD,CAA0D1V,CAAA,EAA1D,CACE0Z,CAAA,CAAmB1Z,CAAnB,CAAuB2Z,CAAAA,YAAvB,EAP4B,CAUhCrJ,EAAYsH,CAAAA,kBAAZ,CAAiC,CAAA,CAdL,CAiB9BgC,QAASA,GAAoB,CAACvS,CAAD,CAAK,CAChC,IAAIwS,EAAgBvB,EACpBA,GAAA,CAAoBA,QAA2B,CAACvC,CAAD,CAAK,CAClD,MAAO1O,EAAA,CAAG,QAAQ,EAAG,CACnB,MAAOwS,EAAA,CAAc9D,CAAd,CADY,CAAd,CAD2C,CAFpB;AAWlC+D,QAASA,GAAG,CAACC,CAAD,CAAW,CAEnBP,OAAQQ,CAAAA,IAAR,CAAa,4CAAb,CACA,OAAO,SAAQ,EAAG,EAHC,CA8BvBC,QAASA,GAAmB,CAAC9G,CAAD,CAAc,CAqBxC,MApBUC,SAAgB,CAAC8G,CAAD,CAAOnH,CAAP,CAAa,CACrC,GAAI3L,CAAA,CAAW8S,CAAX,CAAJ,CACE,MAAOzJ,GAAA,CAAayJ,CAAK7R,CAAAA,IAAlB,EAfa8R,wBAeb,CAA+CD,CAA\/C,CAAqD\/G,CAArD,CAET,IAAI\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\/U,EAAb,CAAoB6U,EAApB,CAA8B\/Z,EAA9B,CADF,CAEW,CAAC6Z,EAFZ,EAEyBF,EAFzB,EAGEM,EAAA,CAAa\/U,EAAb,CAAoB6U,EAApB,CAA8B\/Z,EAA9B,CAEF6Z,GAAA,CAAY,CAAA,CAjBZ,CAFwB,CA7B1B,IAAIK,EACS,KAAK,EAAlB,GAAI7B,CAAJ,GACEA,CADF,CACSK,EADT,CAWA,KAAI1S,GAAoC,IAA7B,GAACkU,EAAD,CAAe7B,CAAKrS,CAAAA,IAApB,EAAoCkU,EAApC,CAAsF,UAAjG,CACID,GAAeE,EAAA,CAAOnU,EAAP,CAAaqS,CAAKa,CAAAA,OAAL,CAAekB,EAAA,CAAiB\/B,CAAKa,CAAAA,OAAtB,CAA+BQ,CAA\/B,CAAf,CAAwDA,CAArE,CADnB,CAEIW,GAAU,CAAChC,CAAKM,CAAAA,SAAhB0B,EAA6B,CAAChC,CAAKO,CAAAA,KAFvC,CAGID,GAAYE,EAAA,CAA2BR,CAA3B,CAHhB,CAIIwB,GAAY,CAAA,CAJhB,CAKIf,GAAc,CAAA,CALlB,CAMI5T,EANJ,CAOI6U,EAPJ,CAQID,GAASzB,CAAKiC,CAAAA,iBAAL,CAAyBC,EAASC,CAAAA,UAAlC,CAA+CnC,CAAKyB,CAAAA,MAApD,EAA8DS,EAAA,CAAS,SAAT,CAR3E,CASIva,GAAK,IAAI+Y,EAAJ,CAAa\/S,EAAb,CAAmB,QAAQ,EAAG,CACjC6T,EAAJ,EAAiBQ,EAAjB,CACE\/B,CAAA,EADF,CAEYQ,EAFZ,GAGEA,EACA,CADc,CAAA,CACd,CAAAH,EAAA,CAAUL,CAAV,CAJF,CADqC,CAA9B,CAOND,CAAKa,CAAAA,OAPC,CAOQb,CAAKc,CAAAA,kBAPb,CA6BTnZ,GAAGoZ,CAAAA,SAAH,EACA,OAAOpZ,GAAGqZ,CAAAA,YAAH,EApDmC,CAsD5Ce,QAASA,GAAgB,CAACK,CAAD,CAAeC,CAAf,CAAuB,CAC9C,MAAO,SAAQ,EAAG,CAChB,GAAI,CACF,MAAOA,EAAO5V,CAAAA,KAAP,CAAa,IAAb,CAAmBhB,SAAnB,CADL,CAEF,MAAOtC,CAAP,CAAW,CACXiZ,CAAa\/U,CAAAA,IAAb,CAAkB,IAAlB;AAAwBlE,CAAxB,CADW,CAHG,CAD4B,CAchDmK,QAASA,GAAkB,CAAC7E,CAAD,CAAQ4J,CAAR,CAAchF,CAAd,CAAoB,CAC7C,MAAOF,GAAA,CAAcmP,EAAd,CAAoC7T,CAApC,CAA2C4J,CAA3C,CAAiDhF,CAAjD,CADsC,CAG\/CF,QAASA,GAAa,CAACoP,CAAD,CAAO9T,CAAP,CAAc4J,CAAd,CAAoBhF,CAApB,CAA0B,CAC9C,IAAIJ,GAAuB,UAAhB,GAAA,MAAOI,EAAP,CAA6BmP,EAAA,CAAQ\/T,CAAR,CAAe4J,CAAf,CAA7B,CAAoDmK,EAAA,CAAQ\/T,CAAR,CAA\/D,CACIgU,GAAK\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\/C,CAAZ,CAAmB,CAC\/B6X,CAAK5Q,CAAAA,GAAL,CAASlE,CAAT,CAAc\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\/B,CAA+Cxc,SAA\/C,CAJS,CADU,CAQ9B0c,QAASA,GAAW,CAACP,CAAD,CAAW,CAC7B,MAAO,SAAQ,CAACQ,CAAD,CAAWpC,CAAX,CAAoB,CACjC,IAAIqC,EAAS,IAAb,CACIzT,GAAM,IAAA,CAAKgP,EAAL,CACVhP,GAAIoT,CAAAA,KAAM7J,CAAAA,cAAV,EAEA;MADqBvJ,GAAIsT,CAAAA,cAAJD,CAAmBrT,EAAIuP,CAAAA,OAAvB8D,CACd,CAAeL,CAAf,CAAA,CAAyB,QAAQ,CAACU,EAAD,CAAUC,EAAV,CAAkB,CACxD,MAAOH,EAAS\/a,CAAAA,IAAT,CAAc2Y,CAAd,CAAuBsC,EAAvB,CAAgCC,EAAhC,CAAwCF,CAAxC,CADiD,CAAnD,CAL0B,CADN,CAW\/BG,QAASA,GAAc,CAACZ,CAAD,CAAW,CAChC,MAAO,SAAQ,EAAG,CAChB,IAAIa,EAAS,IAAb,CACI7T,EAAM,IAAA,CAAKgP,EAAL,CACVhP,EAAIoT,CAAAA,KAAM7J,CAAAA,cAAV,EACI8J,EAAAA,CAAiBrT,CAAIsT,CAAAA,cAAJ,CAAmBtT,CAAIuP,CAAAA,OAAvB,CACrB,KAAIiE,EAAW3c,SAAA,CAAU,CAAV,CACfA,UAAA,CAAU,CAAV,CAAA,CAAe,QAAQ,CAACid,EAAD,CAAcC,EAAd,CAA4BJ,EAA5B,CAAoC,CACzD,MAAOH,EAAA,CAASM,EAAT,CAAsBC,EAAtB,CAAoCJ,EAApC,CAA4CE,CAA5C,CADkD,CAG3D,OAAOR,EAAA,CAAeL,CAAf,CAAyBnb,CAAAA,KAAzB,CAA+Bwb,CAA\/B,CAA+Cxc,SAA\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\/B,GAAI\/F,EAAA,CAAO5V,CAAP,CAAJ,EAAqBwM,EAAA,CAAgBxM,CAAhB,CAArB,EAA+C6V,EAAA,CAAW7V,CAAX,CAA\/C,CACE,MAAOA,EA\/BsC,CAAjD,IAiCO,IAAI\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\/CS,QAASA,GAAqB,CAAC\/hB,CAAD,CAAUuhB,CAAV,CAAiB,CAC7C,IAAID,EAAQnB,EAAA,CAAcoB,CAAM9gB,CAAAA,SAApB,CACZ8gB,EAAM5K,CAAAA,KAAM3Q,CAAAA,GAAZ,CAAgBhG,CAAhB,CAAyBshB,CAAzB,CACA,KAAKxf,IAAIA,CAAT,GAAgB9B,EAAhB,CACMV,EAAeC,CAAAA,IAAf,CAAoBS,CAApB,CAA6B8B,CAA7B,CAAJ,GACEwf,CAAA,CAAMxf,CAAN,CADF,CACeyf,CAAMI,CAAAA,MAAN,CAAa3hB,CAAA,CAAQ8B,CAAR,CAAb,CAA2Byf,CAA3B,CADf,CAIErgB,EAAAA,CAAUC,EAAA,CAAsBnB,CAAtB,CACd,KAT6C,IASpCya,GAAS,CAT2B,CASxBuH,GAAW9gB,CAAQzJ,CAAAA,MATK,CASGwqB,EAAhD,CAAiExH,EAAjE,CAA0EuH,EAA1E,CAAoF,EAAEvH,EAAtF,CACEwH,EACA,CADS\/gB,CAAA,CAAQuZ,EAAR,CACT,CAAInZ,EAAqB\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\/C,GAAQqvB,CAAA,CAAMtsB,CAAN,CACd,OAAI\/C,GAAJ,CACSlC,CADT,CACgB,GAAG,KAAIsxB,CAAJ,IAAcrsB,CAAd,EAAH,KAA2B\/C,EAA3B;CADhB,CAIOlC,CANsC,CAAxC,CAOJ,EAPI,CAD4B,CAUrCwxB,QAASA,GAAQ,CAACF,CAAD,CAASC,CAAT,CAAgBE,CAAA,CAAW,gBAA3B,CAA6C,CAC5DC,EAAOb,CAAAA,eAAP,CAAuB,EAAA,EAAM,CAC3B,MAAMxG,EAAQrB,QAASC,CAAAA,aAAT,CAAuB,OAAvB,CAAd,CACM0I,GAAWN,EAAA,CAAaC,CAAb,CAAqBC,CAArB,CACjBlH,EAAMuH,CAAAA,YAAN,CAAmB,IAAnB,CAA0B,GAAEN,CAAF,QAA1B,CACAjH,EAAMuH,CAAAA,YAAN,CAAmB,eAAnB,CAAoCH,CAApC,CACApH,EAAMiC,CAAAA,SAAN,CAAmB;UACbmF,CADa;YAEXE,EAFW;;OAKnB3I,SAAS6I,CAAAA,IAAKvG,CAAAA,WAAd,CAA0BjB,CAA1B,CACA,OAAO,EAAA,EAAM,CACPA,CAAJ,EAAarB,QAAS6I,CAAAA,IAAKC,CAAAA,QAAd,CAAuBzH,CAAvB,CAAb,EACErB,QAAS6I,CAAAA,IAAKE,CAAAA,WAAd,CAA0B1H,CAA1B,CAFS,CAXc,CAA7B,CAgBG,CAACiH,CAAD,CAASC,CAAT,CAAgBE,CAAhB,CAhBH,CAD4D,CAmB9DO,QAASA,GAAQ,CAACC,CAAD,CAAMC,CAAN,CAAa,CAC5BR,EAAOb,CAAAA,eAAP,CAAuB,EAAA,EAAM,CAC3B,GAAIsB,EAAOlmB,CAAAA,GAAP,CAAWgmB,CAAX,CAAJ,CACE,MAAO,EAAA,EAAM,EAEf,OAAM5H,EAAQrB,QAASC,CAAAA,aAAT,CAAuB,OAAvB,CACdoB,EAAMiC,CAAAA,SAAN,CAAkB4F,CAClB7H,EAAMuH,CAAAA,YAAN,CAAmB,IAAnB,CAAyBK,CAAzB,CACAjJ,SAAS6I,CAAAA,IAAKvG,CAAAA,WAAd,CAA0BjB,CAA1B,CACA8H,GAAOhpB,CAAAA,GAAP,CAAW8oB,CAAX,CAAgB5H,CAAhB,CACA,OAAO,EAAA,EAAM,CACPA,CAAJ,EAAarB,QAAS6I,CAAAA,IAAKC,CAAAA,QAAd,CAAuBzH,CAAvB,CAAb,GACErB,QAAS6I,CAAAA,IAAKE,CAAAA,WAAd,CAA0B1H,CAA1B,CACA,CAAA8H,EAAOC,CAAAA,MAAP,CAAcH,CAAd,CAFF,CADW,CATc,CAA7B,CAeG,CAACA,CAAD,CAAMC,CAAN,CAfH,CAD4B,CA6a9BG,QAASA,GAAa,CAACd,CAAD,CAAQE,CAAR,CAAkB,CACtC,MAAMa,EAAUZ,EAAOnD,CAAAA,OAAP,CACd,EAAA,EAAMluB,EAAA,CAAeA,EAAA,CAAe,EAAf,CAAmBkyB,EAAnB,CAAf,CAAiDhB,CAAjD,CADQ,CAEd,CAACA,CAAD,CAFc,CAIhBC,GAAA,CAAS,IAAT,CAAec,CAAf,CAAwBb,CAAxB,CACAO,GAAA,CAAS,WAAT,CAAsBQ,EAAtB,CANsC,CAexCC,QAASA,GAAa,CAAC9E,CAAA;AAAM,MAAP,CAAe,CAC9B+E,EAAA,CAAY\/E,CAAZ,CAAL,GACE+E,EAAA,CAAY\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\/xB,CAAD,CAAMkC,CAAN,CAAW\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\/mB,CAAD,CAAU,CAC\/BgnB,EAAUjwB,CAAAA,GAAV,CAAciJ,CAAQnN,CAAAA,GAAtB,CAA2BmN,CAAQinB,CAAAA,MAAnC,CACAC,GAAkBnwB,CAAAA,GAAlB,CAAsBiJ,CAAQnN,CAAAA,GAA9B,CAAmCmN,CAAQmnB,CAAAA,QAA3C,CAF+B,CAkGjCC,QAASA,GAAW,CAACC,CAAA,CAAS,EAAV,CAAcC,CAAd,CAAyB,CAC3C,MAAMxoB,EAAS,EACf,KAAK,MAAM,CAACjM,CAAD,CAAMs0B,EAAN,CAAX,EAA8Bj3B,OAAOie,CAAAA,OAAP,CAAemZ,CAAf,CAA9B,CACE,OAAQ,MAAOH,GAAf,EACE,KAAK,UAAL,CAMIroB,CAAA,CAAOjM,CAAP,CAAA,CAAcs0B,EAAS72B,CAAAA,IAAT,CAAcwO,CAAd,CAAsBuoB,CAAA,CAAOx0B,CAAP,CAAtB,CAAmCA,CAAnC,CAAwCw0B,CAAxC,CAEhB,MACF,MAAK,QAAL,CACEvoB,CAAA,CAAOjM,CAAP,CAAA,CAAcu0B,EAAA,CAAYC,CAAA,CAAOx0B,CAAP,CAAZ,CAAyBs0B,EAAzB,CACd,MACF,MAAK,SAAL,CACMA,EAAJ,GACEroB,CAAA,CAAOjM,CAAP,CADF,CACgBw0B,CAAA,CAAOx0B,CAAP,CADhB,CAdJ,CAmBF,MAAOiM,EAtBoC,CAwB7CyoB,QAASA,GAAM,CAACC,CAAD,CAAYC,CAAZ,CAAwBC,CAAA,CAAU,EAAlC,CAAsC,CAAA,MAC3B,CACtB,OAAAl1B,CADsB,CAEtB,aAAAm1B,EAFsB,CAGtB,OAAQC,EAHc,CAItB,QAAAC,EAJsB,CAKtB,UAAAC,EALsB,CAAA,CAAXN,CAMmCO,KAAAA,GAAAA,EA3EhD,IAAc,IAAd,EAqEaP,CArEb,CACE,CAAA,CAAO,EADT,KAAA,CAdA,GAAc,IAAd,EAmFaA,CAnFb,CACE,IAAA,GAAO,EADT,KAAA,CAEIh1B,EAAAA,CAAS,EACb,KAAIw1B,GAAa93B,MAAO6B,CAAAA,IAAP,CAgFJy1B,CAhFI,CAAjB,CACSj\/B,EACT,KAAKA,EAAL,CAAU,CAAV,CAAaA,EAAb,CAAkBy\/B,EAAWx\/B,CAAAA,MAA7B,CAAqCD,EAAA,EAArC,CAA2C,CACzC,IAAAsK;AAAMm1B,EAAA,CAAWz\/B,EAAX,CACuB,EAA7B,EASiD0\/B,EATpCze,CAAAA,OAAT,CAAiB3W,EAAjB,CAAJ,GAEAL,EAAA,CAAOK,EAAP,CAFA,CA4EW20B,CA1EG,CAAO30B,EAAP,CAFd,CAFyC,CAL3C,CAkBA,GAAI3C,MAAOgC,CAAAA,qBAAX,CAEE,IADIg2B,EACC,CADkBh4B,MAAOgC,CAAAA,qBAAP,CAgEZs1B,CAhEY,CAClB,CAAAj\/B,EAAA,CAAK,CAAV,CAAaA,EAAb,CAAkB2\/B,EAAiB1\/B,CAAAA,MAAnC,CAA2CD,EAAA,EAA3C,CACEsK,EACA,CADMq1B,EAAA,CAAiB3\/B,EAAjB,CACN,CAA6B,CAA7B,EAAI0\/B,EAASze,CAAAA,OAAT,CAAiB3W,EAAjB,CAAJ,EAEK3C,MAAOsB,CAAAA,SAAUa,CAAAA,oBAAqB\/B,CAAAA,IAAtC,CA2DIk3B,CA3DJ,CAAmD30B,EAAnD,CAFL,GAIAL,EAAA,CAAOK,EAAP,CAJA,CA6DS20B,CAzDK,CAAO30B,EAAP,CAJd,CAOJ,EAAA,CAAOL,EAfP,CA4EAk1B,CAAQS,CAAAA,MAAR,CAAiBf,EAAA,CAAY,CAC3B50B,OAAAA,CAD2B,CAE3Bm1B,aAAAA,EAF2B,CAG3Bz4B,OAAQ04B,EAHmB,CAI3BC,QAAAA,EAJ2B,CAK3BC,UAAAA,EAL2B,CAAZ,CAMdM,EANc,CAOjB,IAAIX,CAAJ,CAAgB,CACd,IAAMN,GAAWD,EAAkBrtB,CAAAA,GAAlB,CAAsB4tB,CAAtB,CACjBC,EAAA,CAAQD,CAAR,CAAA,CAAsBL,EAAA,CAAYtE,EAAA,CAAe,CAC\/CqF,OAAQT,CAAQS,CAAAA,MAD+B,CAAf,CAE\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\/kB,EAA\/B,CAJJ,CAF4C,CAA9C,CAUmC,EAAnC,CAAIq4B,CAAwBlqC,CAAAA,IAA5B,EACE8pC,CAAA,EAdiC,CAlDrC,IAAII,EAA0C,IAAIzhC,GAAlD,CACIshC,CAkEJ,OAAO,CACLZ,mBAAoBA,QAAQ,CAACC,EAAD,CAAsBrvB,EAAtB,CAAiCsvB,EAAjC,CAAwD,CAClFD,EAAoB3V,CAAAA,OAApB,CAA8B4U,EAAA,CAAmBtuB,EAAnB,CAzBhCmwB,EAAwB3pC,CAAAA,GAAxB,CA0BoC6oC,EA1BpC,CACAU,EAAA,EA0BE,OAAOV,GAAoB3V,CAAAA,OAHuD,CAD\/E,CAML+V,0BA1BFY,QAAmC,CAACX,EAAD,CAAc,CAC\/CS,CAAwBtT,CAAAA,MAAxB,CAA+B6S,EAA\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\/D,MAAMC,EAAgB\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\/Bf,EAAchkB,CAAAA,gBAAd,CAA+B,SAA\/B,CAA0CulB,EAA1C,CACA,OAAO,EAAA,EAAMvB,CAActe,CAAAA,mBAAd,CAAkC,SAAlC;AAA6C6f,EAA7C,CAZqB,CAApC,CAaG,CACDvB,CADC,CAEDqB,CAFC,CAbH,CAiBA,OAAO,CACLI,eAAgB,EAAAA,EAAMH,CAA0Bvf,CAAAA,OAAhC0f,CAA0C,CAAA,CADrD,CAELC,cAAe,EAAAA,EAAMJ,CAA0Bvf,CAAAA,OAAhC2f,CAA0C,CAAA,CAFpD,CApBmJ,CAyB5JC,QAASA,GAAoC,EAAG,CAC9C,MAAMtY,EAAQ,IAAIuY,WAAJ,CAxL2BC,yBAwL3B,CACd\/lB,SAAS2jB,CAAAA,aAAT,CAAuBpW,CAAvB,CAF8C,CAIhDuX,QAASA,GAAkD,CAAC9qC,CAAD,CAAO0Y,CAAP,CAAgBszB,CAAhB,CAAwB,CAAE,SAAAf,CAAF,CAAxB,CAAsC,CAC\/F,MAAMrpC,GAASoqC,CAAOd,CAAAA,aAActpC,CAAAA,MAC9B2xB,EAAAA,CAAQ,IAAIuY,WAAJ,CAAgB9rC,CAAhB,CAAsB,CAClCisC,QAAS,CAAA,CADyB,CAElCC,WAAY,CAAA,CAFsB,CAGlCF,OAAAA,CAHkC,CAAtB,CAKVtzB,EAAJ,EACE9W,EAAOskB,CAAAA,gBAAP,CAAwBlmB,CAAxB,CAA8B0Y,CAA9B,CAAuC,CACrC\/Z,KAAM,CAAA,CAD+B,CAAvC,CAGEssC,EAAJ,CACEzB,EAAA,CAA0C5nC,EAA1C,CAAkD2xB,CAAlD,CADF,CAGE3xB,EAAO+nC,CAAAA,aAAP,CAAqBpW,CAArB,CAd6F,CA4BjG4Y,QAASA,GAAyC,CAACC,CAAD,CAAkB,CAClE,MAAM,CAACzhB,CAAD,CAAM0hB,CAAN,CAAA,CAAeC,EAAa\/O,CAAAA,QAAb,CAAsBgP,EAAA,EAAtB,CACrBC,GAAA,CAA0C,EAAA,EAAM,CACzCJ,CAAL,EACEC,CAAA,CACGI,CAAD,EAAyB,IAAZ,GAAAA,CAAA,EAAgC,IAAK,EAArC,GAAoBA,CAApB,CAAyCA,CAAzC,CAAmDvuC,MAAA,CAAOwuC,EAAA,EAAP,CADlE,CAF4C,CAAhD,CAKG,CACDN,CADC,CALH,CAQA,OAAOA,EAAP,GAA2BzhB,CAAA,CAAO,SAAQA,CAAR,EAAP,CAAuB,EAAlD,CAVkE,CAiBpEgiB,QAASA,GAAC,CAACnwC,CAAD,CAAK,CACb,MAAOA,EAAGowC,CAAAA,KAAH,CAAS,GAAT,CAAA,CAAc,CAAd,CADM;AAMfC,QAASA,GAAC,CAACrxC,CAAD,CAAK,CACb,MAAO,CAAC,KAAD,CAAQ,QAAR,CAAkBurB,CAAAA,QAAlB,CAA2B4lB,EAAA,CAAEnxC,CAAF,CAA3B,CAAA,CAAoC,GAApC,CAA0C,GADpC,CAGfsxC,QAASA,GAAC,CAACtwC,CAAD,CAAK,CACb,MAAO,GAAA,GAAQA,CAAR,CAAa,QAAb,CAAwB,OADlB,CAGfuwC,QAASA,GAAC,CAACp1C,CAAD,CAAKmL,CAAL,CAAS9L,CAAT,CAAa,CACrB,IAAI,CAAE,UAAWqW,CAAb,CAAiB,SAAUpT,EAA3B,CAAA,CAAkCtC,CADjB,KAEf2D,GAAK+R,CAAGlW,CAAAA,CAARmE,CAAY+R,CAAG3V,CAAAA,KAAf4D,CAAuB,CAAvBA,CAA2BrB,EAAGvC,CAAAA,KAA9B4D,CAAsC,CAFvB,OAE0BoS,GAAKL,CAAGjW,CAAAA,CAARsW,CAAYL,CAAG5V,CAAAA,MAAfiW,CAAwB,CAAxBA,CAA4BzT,EAAGxC,CAAAA,MAA\/BiW,CAAwC,CAAGs\/B,EAAAA,CAAKH,EAAA,CAAE\/pC,CAAF,CAF1E,KAEiFmqC,GAAKH,EAAA,CAAEE,CAAF,CAAOE,GAAAA,CAAK7\/B,CAAA,CAAG4\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\/B,GAAKw\/B,EAAA,CAAErwC,CAAF,CAAOvC,EAAAA,CAAK6yC,EAAA,CAAEz\/B,EAAF,CAC\/B\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\/B,CAA\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\/R,CAAP,CAAlC,CAAiD+R,EAC\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\/B,CAA0Ev8C,EAAA,CAAcC,EAAA,CAAe,CAC\/H4f,UAAW,oBADoH,CAE\/Hi8B,WAAAA,CAF+H,CAG\/HzD,KAAAA,CAH+H,CAAf,CAI\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\/B,CACE,KAPyE,CAmB\/EG,QAASA,GAA2C,CAACC,CAAD,CAAY,CAC9D,MAAMC,EAAQ,EASd,KARMC,CAQN,CARe33B,QAAS43B,CAAAA,gBAAT,CAA0BH,CAA1B,CAAqCI,UAAWC,CAAAA,YAAhD,CAA8D,CAC3EC,WAAahvC,CAADgvC,EAAU,CACpB,MAAMC,EAAiC,OAAjCA,GAAgBjvC,CAAKy2B,CAAAA,OAArBwY,EAA0D,QAA1DA,GAA4CjvC,CAAKiK,CAAAA,IACvD,OAAIjK,EAAKkvC,CAAAA,QAAT,EAAqBlvC,CAAKmvC,CAAAA,MAA1B,EAAoCF,CAApC,CACSH,UAAWM,CAAAA,WADpB,CAEwB,CAAjB,EAAApvC,CAAKqZ,CAAAA,QAAL,CAAqBy1B,UAAWO,CAAAA,aAAhC,CAAgDP,UAAWM,CAAAA,WAJ9C,CADqD,CAA9D,CAQf,CAAOR,CAAOU,CAAAA,QAAP,EAAP,CAAA,CACEX,CAAM1lD,CAAAA,IAAN,CAAW2lD,CAAOW,CAAAA,WAAlB,CACF,OAAOZ,EAZuD,CAchEa,QAASA,GAAiC,CAACC,CAAD,CAAWf,CAAX,CAAsB,CAC9D,IAAK,MAAM9iC,CAAX,GAAsB6jC,EAAtB,CACE,GAAI,CAACC,EAAA,CAA+B9jC,CAA\/B,CAAwC,CAC3C+jC,KAAMjB,CADqC,CAAxC,CAAL,CAGE,MAAO9iC,EALmD;AAQhE8jC,QAASA,GAA8B,CAAC1vC,CAAD,CAAO,CAAE,KAAA2vC,CAAF,CAAP,CAAiB,CACtD,GAA0C,QAA1C,GAAIrP,gBAAA,CAAiBtgC,CAAjB,CAAuB4vC,CAAAA,UAA3B,CACE,MAAO,CAAA,CACT,KAAA,CAAO5vC,CAAP,GACe,IAAK,EADpB,GACM2vC,CADN,EACyB3vC,CADzB,GACkC2vC,CADlC,EAAA,CAAa,CAGX,GAAuC,MAAvC,GAAIrP,gBAAA,CAAiBtgC,CAAjB,CAAuBqoC,CAAAA,OAA3B,CACE,MAAO,CAAA,CACTroC,EAAA,CAAOA,CAAKge,CAAAA,aALD,CAOb,MAAO,CAAA,CAV+C,CAexDwwB,QAASA,GAA2B,CAAC5iC,CAAD,CAAU,CAAE,OAAAyiC,CAAA,CAAS,CAAA,CAAX,CAAA,CAAqB,EAA\/B,CAAmC,CACrE,GAAIziC,CAAJ,EAAeA,CAAQyT,CAAAA,KAAvB,CAA8B,CAC5B,MAAMivB,EAA2Br3B,QAASsf,CAAAA,aAC1C3qB,EAAQyT,CAAAA,KAAR,CAAc,CACZwwB,cAAe,CAAA,CADH,CAAd,CAGIjkC,EAAJ,GAAgB0iC,CAAhB,EAAoF1iC,CAApF,WARwBkkC,iBAQxB,EAR4C,QAQ5C,EAAoFlkC,EAApF,EAAgGyiC,CAAhG,EACEziC,CAAQyiC,CAAAA,MAAR,EAN0B,CADuC,CA4BvE0B,QAASA,GAAiC,CAACn8B,CAAD,CAASo8B,CAAT,CAAe,CACjDC,CAAAA,CAAe,CACnB,GAAGr8B,CADgB,CAGf\/H,EAAAA,CAASokC,CAAapmC,CAAAA,OAAb,CAAqBmmC,CAArB,CACA,EAAC,CAAhB,GAAInkC,CAAJ,EACEokC,CAAa5tC,CAAAA,MAAb,CAAoBwJ,CAApB,CAA4B,CAA5B,CACF,OAAOokC,EAPgD,CASzDC,QAASA,GAAiC,CAAC\/C,CAAD,CAAQ,CAChD,MAAOA,EAAM3\/C,CAAAA,MAAN,CACJwiD,CAAD,EAA2B,GAA3B,GAAUA,CAAKvZ,CAAAA,OADV,CADyC,CAiNlD0Z,QAASA,GAAoC,CAAC3rB,CAAD,CAAQ4rB,CAAR,CAAqBC,CAArB,CAA0B,CACRn9C,CAAAA;AAANsxB,CAAMtxB,CAAAA,GAJ3D,EAAA,CADU,KAAZ,GAKkEm9C,CALlE,CACSn9C,CADT,CAEe,WAAR,GAAAA,CAAA,CAAsB,YAAtB,CAA6C,YAAR,GAAAA,CAAA,CAAuB,WAAvB,CAAqCA,CAIjF,IAAoB,UAApB,GAAIk9C,CAAJ,EAAkC,CAAA,CAChC,WADgC,CAEhC,YAFgC,CAGhCp4B,CAAAA,QAHgC,CADtB9kB,CACsB,CAAlC,CAKA,GAAoB,YAApB,GAAIk9C,CAAJ,EAAoC,CAAA,CAClC,SADkC,CAElC,WAFkC,CAGlCp4B,CAAAA,QAHkC,CANxB9kB,CAMwB,CAApC,CAKA,MAAOo9C,GAAA,CAXKp9C,CAWL,CAZ8D,CAcvEq9C,QAASA,GAAgC,CAACnC,CAAD,CAAa,CACpD,MAAMoC,EAA6Bv5B,QAASsf,CAAAA,aAC5C,KAAK,MAAMgY,CAAX,GAAwBH,EAAxB,CAAoC,CAClC,GAAIG,CAAJ,GAAkBiC,CAAlB,CACE,KACFjC,EAAUlvB,CAAAA,KAAV,EACA,IAAIpI,QAASsf,CAAAA,aAAb,GAA+Bia,CAA\/B,CACE,KALgC,CAFgB,CAUtDC,QAASA,GAA+B,CAAC78B,CAAD,CAAS88B,CAAT,CAAqB,CAC3D,MAAO98B,EAAOlmB,CAAAA,GAAP,CACL,CAACqJ,CAAD,CAAK8U,CAAL,CAAA,EAAgB+H,CAAA,EAAQ88B,CAAR,CAAqB7kC,CAArB,EAA+B+H,CAAO\/qB,CAAAA,MAAtC,CADX,CADoD,CAwJ7D8nD,QAASA,GAAc,CAACC,CAAD,CAAellC,CAAf,CAAyB,CAC9C,IAAIpQ,EAAM,GAAIu1C,EAAeriB,CAAAA,QAAnB,EAA6B,QAAQ,EAAG,CAChD,MAAO,CACLr+B,MAAOygD,CADF,CAELllC,SAAAA,CAFK,CAGLolC,OAAQ,CACF5zB,WAAU,EAAA,CACZ,MAAO5hB,EAAInL,CAAAA,KADC,CADR;AAIF+sB,WAAO,CAAC\/sB,CAAD,CAAQ,CACjB,IAAIpH,GAAOuS,CAAInL,CAAAA,KACXpH,GAAJ,GAAaoH,CAAb,GACEmL,CAAInL,CAAAA,KACJ,CADYA,CACZ,CAAAmL,CAAIoQ,CAAAA,QAAJ,CAAavb,CAAb,CAAoBpH,EAApB,CAFF,CAFiB,CAJb,CAHH,CADyC,CAAxC,CAAA,CAiBP,CAjBO,CAkBVuS,EAAIoQ,CAAAA,QAAJ,CAAeA,CACf,OAAOpQ,EAAIw1C,CAAAA,MApBmC,CAwBhDC,QAASA,GAAY,CAACjZ,CAAD,CAAOkZ,CAAP,CAAqB,CACxC,MAAOL,GAAA,CAAeK,CAAf,EAA+B,IAA\/B,CAAqC,QAAQ,CAACt5C,CAAD,CAAW,CAC7D,MAAOogC,EAAKh2B,CAAAA,OAAL,CAAa,QAAQ,CAACxG,CAAD,CAAM,CApCjB,UAAnB,GAAI,MAqCiBA,EArCrB,CAqCqBA,CApCnB,CAoCwB5D,CApCxB,CADF,CAqCqB4D,CArCrB,GAqCqBA,CAlCf4hB,CAAAA,OAHN,CAqC0BxlB,CArC1B,CAqCI,OAAiB4D,EADe,CAA3B,CADsD,CAAxD,CADiC,CAS1C21C,QAASA,GAAI,CAAChpD,CAAD,CAAK,CAChB,MAAOA,EADS,CAGlBipD,QAASA,GAAiB,CAACC,CAAD,CAAWvM,CAAX,CAAuB,CAC5B,IAAK,EAAxB,GAAIA,CAAJ,GACEA,CADF,CACeqM,EADf,CAGA,KAAIG,EAAS,EAAb,CACIC,EAAW,CAAA,CAkEf,OAjEaC,CACXC,KAAMA,QAAQ,EAAG,CACf,GAAIF,CAAJ,CACE,KAAUrqD,MAAJ,CAAU,kGAAV,CAAN,CAEF,MAAIoqD,EAAOvoD,CAAAA,MAAX,CACSuoD,CAAA,CAAOA,CAAOvoD,CAAAA,MAAd,CAAuB,CAAvB,CADT,CAGOsoD,CAPQ,CADNG,CAUXE,UAAWA,QAAQ,CAACvM,EAAD,CAAO,CACxB,IAAI+K;AAAOpL,CAAA,CAAWK,EAAX,CAAiBoM,CAAjB,CACXD,EAAOnoD,CAAAA,IAAP,CAAY+mD,EAAZ,CACA,OAAO,SAAQ,EAAG,CAChBoB,CAAA,CAASA,CAAO5jD,CAAAA,MAAP,CAAc,QAAQ,CAAChD,EAAD,CAAK,CAClC,MAAOA,GAAP,GAAcwlD,EADoB,CAA3B,CADO,CAHM,CAVfsB,CAmBXG,iBAAkBA,QAAQ,CAAC1rC,EAAD,CAAK,CAE7B,IADAsrC,CACA,CADW,CAAA,CACX,CAAOD,CAAOvoD,CAAAA,MAAd,CAAA,CAAsB,CACpB,IAAI6oD,GAAMN,CACVA,EAAA,CAAS,EACTM,GAAI5vC,CAAAA,OAAJ,CAAYiE,EAAZ,CAHoB,CAKtBqrC,CAAA,CAAS,CACPnoD,KAAMA,QAAQ,CAACuB,EAAD,CAAK,CACjB,MAAOub,GAAA,CAAGvb,EAAH,CADU,CADZ,CAIPgD,OAAQA,QAAQ,EAAG,CACjB,MAAO4jD,EADU,CAJZ,CAPoB,CAnBpBE,CAmCXK,aAAcA,QAAQ,CAAC5rC,EAAD,CAAK,CACzBsrC,CAAA,CAAW,CAAA,CACX,KAAIO,GAAe,EACnB,IAAIR,CAAOvoD,CAAAA,MAAX,CAAmB,CACjB,IAAI6oD,GAAMN,CACVA,EAAA,CAAS,EACTM,GAAI5vC,CAAAA,OAAJ,CAAYiE,EAAZ,CACA6rC,GAAA,CAAeR,CAJE,CAMnB,IAAIS,GAAeA,QAAQ,EAAG,CAC5B,IAAIC,GAAOF,EACXA,GAAA,CAAe,EACfE,GAAKhwC,CAAAA,OAAL,CAAaiE,EAAb,CAH4B,CAMrBoP,QAAQ2B,CAAAA,OAAR,EAAkB9C,CAAAA,IAAlB,CAAuB69B,EAAvB,CAGTT,EAAA,CAAS,CACPnoD,KAAMA,QAAQ,CAACuB,EAAD,CAAK,CACjBonD,EAAa3oD,CAAAA,IAAb,CAAkBuB,EAAlB,CALK2qB,QAAQ2B,CAAAA,OAAR,EAAkB9C,CAAAA,IAAlB,CAAuB69B,EAAvB,CAIY,CADZ,CAKPrkD,OAAQA,QAAQ,CAACukD,EAAD,CAAU,CACxBH,EAAA,CAAeA,EAAapkD,CAAAA,MAAb,CAAoBukD,EAApB,CACf,OAAOX,EAFiB,CALnB,CAlBgB,CAnChBE,CANkC;AAs\/BjDU,QAASA,GAAgC,CAAC5D,CAAD,CAAa,CACpD,MAAMoC,EAA6Bv5B,QAASsf,CAAAA,aAC5C,KAAK,MAAMgY,CAAX,GAAwBH,EAAxB,CAAoC,CAClC,GAAIG,CAAJ,GAAkBiC,CAAlB,CACE,KACFjC,EAAUlvB,CAAAA,KAAV,EACA,IAAIpI,QAASsf,CAAAA,aAAb,GAA+Bia,CAA\/B,CACE,KALgC,CAFgB,CAUtDyB,QAASA,GAA+B,CAACr+B,CAAD,CAAS88B,CAAT,CAAqB,CAC3D,MAAO98B,EAAOlmB,CAAAA,GAAP,CACL,CAACqJ,CAAD,CAAK8U,CAAL,CAAA,EAAgB+H,CAAA,EAAQ88B,CAAR,CAAqB7kC,CAArB,EAA+B+H,CAAO\/qB,CAAAA,MAAtC,CADX,CADoD,CAK7DqpD,QAASA,GAAkC,CAACljC,CAAD,CAASmjC,CAAT,CAAiBC,CAAjB,CAA+B,CAIxE,MAAMC,EAH6B,CAGV,CAHNF,CAAOtpD,CAAAA,MAGD,EAHeoG,KAAM4F,CAAAA,IAAN,CAAWs9C,CAAX,CAAmBG,CAAAA,KAAnB,CACrCC,EAAD,EAAUA,EAAV,GAAmBJ,CAAA,CAAO,CAAP,CADmB,CAGf,CAAaA,CAAA,CAAO,CAAP,CAAb,CAAyBA,CAAlD,CACMK,GAAoBJ,CAAA,CAAepjC,CAAOnF,CAAAA,OAAP,CAAeuoC,CAAf,CAAf,CAA8C,CAAC,CACrEK,EAAAA,CAAgBR,EAAA,CAAgCjjC,CAAhC,CAAwClnB,IAAKC,CAAAA,GAAL,CAASyqD,EAAT,CAA4B,CAA5B,CAAxC,CACoC,EACxD,GAD4BH,CAAiBxpD,CAAAA,MAC7C,GACE4pD,CADF,CACkBA,CAAcjlD,CAAAA,MAAd,CACbsJ,EAAD,EAAQA,EAAR,GAAes7C,CADD,CADlB,CAIMM,EAAAA,CAAYD,CAAcE,CAAAA,IAAd,CACfxiD,EAAD,EAAWA,EAAM9I,CAAAA,WAAN,EAAoBurD,CAAAA,UAApB,CAA+BP,CAAiBhrD,CAAAA,WAAjB,EAA\/B,CADK,CAGlB,OAAOqrD,EAAA,GAAcN,CAAd,CAA6BM,CAA7B,CAAyC,IAAK,EAfmB,CAwC1EG,QAASA,GAA+B,CAAClpC,CAAD,CAAU,CAChD,MAAQ6a,EAAD,EAAiC,OAAtB,GAAAA,CAAMrD,CAAAA,WAAN,CAAgCxX,CAAA,CAAQ6a,CAAR,CAAhC,CAAiD,IAAK,EADxB,CAqwBlDsuB,QAASA,GAAyC,CAAC3iD,CAAD;AAAQ,CAACwmB,CAAD,CAAM5uB,CAAN,CAAR,CAAoB,CACpE,MAAOD,KAAK6uB,CAAAA,GAAL,CAAS5uB,CAAT,CAAcD,IAAKC,CAAAA,GAAL,CAAS4uB,CAAT,CAAcxmB,CAAd,CAAd,CAD6D,CAMtE4iD,QAASA,GAAyC,CAAC5iD,CAAD,CAAQ,CACxD,MAAMmL,EAAM,GAAI03C,EAAez2B,CAAAA,MAAnB,EAA2B,CACrCpsB,MAAAA,CADqC,CAErC8iD,SAAU9iD,CAF2B,CAA3B,CAIZ,OAAO,GAAI6iD,EAAex2B,CAAAA,OAAnB,EAA4B,EAAA,EAAM,CACnClhB,CAAI4hB,CAAAA,OAAQ\/sB,CAAAA,KAAhB,GAA0BA,CAA1B,GACEmL,CAAI4hB,CAAAA,OAAQ+1B,CAAAA,QACZ,CADuB33C,CAAI4hB,CAAAA,OAAQ\/sB,CAAAA,KACnC,CAAAmL,CAAI4hB,CAAAA,OAAQ\/sB,CAAAA,KAAZ,CAAoBA,CAFtB,CAIA,OAAOmL,EAAI4hB,CAAAA,OAAQ+1B,CAAAA,QALoB,CAAlC,CAMJ,CACD9iD,CADC,CANI,CALiD,CAse1D+iD,QAASA,GAAyC,CAACC,CAAA,CAAa,EAAd,CAAkBtuC,CAAlB,CAA6BuuC,CAA7B,CAAsC,CAChFC,CAAAA,CAAa,CACjB,GAAGF,CADc,CAGnBE,EAAA,CAAWD,CAAX,CAAA,CAAsBvuC,CACtB,OAAOwuC,EAAWrrD,CAAAA,IAAX,CACL,CAACC,CAAD,CAAKC,EAAL,CAAA,EAAYD,CAAZ,CAAiBC,EADZ,CAL+E,CASxForD,QAASA,GAA8C,CAACnjD,CAAD,CAAQwmB,CAAR,CAAa5uB,CAAb,CAAkB,CAGvE,MADuB,IACvB,EAFiBA,CAEjB,CAFuB4uB,CAEvB,GAAyBxmB,CAAzB,CAAiCwmB,CAAjC,CAHuE,CAKzE48B,QAASA,GAA8B,CAAC1nC,CAAD,CAAS2nC,CAAT,CAAsB,CAC3D,GAAkB,CAAlB,CAAIA,CAAJ,CACE,MAAQ,SAAQ3nC,CAAR,CAAiB,CAAjB,OAAyB2nC,CAAzB,EACL,IAAoB,CAApB,GAAIA,CAAJ,CACH,MAAO,CACL,SADK,CAEL,SAFK,CAAA,CAGL3nC,CAHK,CAJkD,CAW7D4nC,QAASA,GAA0C,CAACzkC,CAAD,CAASnK,CAAT,CAAoB,CACrE,GAAsB,CAAtB,GAAImK,CAAOnmB,CAAAA,MAAX,CACE,MAAO,EACH6qD,EAAAA,CAAY1kC,CAAOthB,CAAAA,GAAP,CACfyC,CAAD,EAAWrI,IAAKq6B,CAAAA,GAAL,CAAShyB,CAAT,CAAiB0U,CAAjB,CADK,CAGlB;MAAM8uC,EAAkB7rD,IAAK6uB,CAAAA,GAAL,CAAS,GAAG+8B,CAAZ,CACxB,OAAOA,EAAU7pC,CAAAA,OAAV,CAAkB8pC,CAAlB,CAP8D,CASvEC,QAASA,GAA4C,CAACjrD,CAAD,CAAQqwB,CAAR,CAAc3uB,CAAd,CAAyB,CAC1D1B,CAAZkrD,EAAoB,CAE1B,OAAMzsD,EAAS0sD,EAAA,CAAkC,CAC\/C,CAD+C,CAD7BC,EAC6B,CAAlC,CAGZ,CACD,CADC,CAEDF,CAFC,CAHY,CAOf,QAAQA,CAAR,CAAoBzsD,CAAA,CAAO4xB,CAAP,CAApB,CAAmC3uB,CAAnC,EAAgDA,CAV4B,CAY9E2pD,QAASA,GAA2C,CAAChlC,CAAD,CAAS,CAC3D,MAAOA,EAAOpa,CAAAA,KAAP,CAAa,CAAb,CAAgB,CAAC,CAAjB,CAAoBlH,CAAAA,GAApB,CACL,CAACyC,CAAD,CAAQ0b,CAAR,CAAA,EAAmBmD,CAAA,CAAOnD,CAAP,CAAgB,CAAhB,CAAnB,CAAwC1b,CADnC,CADoD,CAa7D2jD,QAASA,GAAiC,CAACn5B,CAAD,CAAQs5B,CAAR,CAAgB,CACxD,MAAQ9jD,EAAD,EACDwqB,CAAA,CAAM,CAAN,CAAJ,GAAiBA,CAAA,CAAM,CAAN,CAAjB,EAA6Bs5B,CAAA,CAAO,CAAP,CAA7B,GAA2CA,CAAA,CAAO,CAAP,CAA3C,CACSA,CAAA,CAAO,CAAP,CADT,CAGOA,CAAA,CAAO,CAAP,CAHP,EAEeA,CAAA,CAAO,CAAP,CAFf,CAE2BA,CAAA,CAAO,CAAP,CAF3B,GAEyCt5B,CAAA,CAAM,CAAN,CAFzC,CAEoDA,CAAA,CAAM,CAAN,CAFpD,GAG4BxqB,CAH5B,CAGoCwqB,CAAA,CAAM,CAAN,CAHpC,CAFsD,CAW1Du5B,QAASA,GAAgC,CAAC\/jD,CAAD,CAAQgkD,CAAR,CAAsB,CACvDC,CAAAA,CAAUtsD,IAAKs6B,CAAAA,GAAL,CAAS,EAAT,CAAa+xB,CAAb,CAChB,OAAOrsD,KAAKusD,CAAAA,KAAL,CAAWlkD,CAAX,CAAmBikD,CAAnB,CAAP,CAAqCA,CAFwB,CAuE\/DE,QAASA,GAAU,CAAC7iC,CAAD,CAAM,CAiBvB8iC,QAASA,EAAW,CAACC,EAAD,CAAS,CAC3B,MAAOA,GAAA,CAAyB,GAAIC,EAAqBvd,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnEhpB,UAAW,aADwD,CAEnEoK,MAAO,CAAEo8B,gBAAiBF,EAAnB,CAF4D,CAGnEre,SAA0B,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CAC7DhpB,UAAY,oBAAmBsmC,EAAnB,MADiD,CAArC,CAHyC,CAArC,CAAzB;AAMc,GAAIC,EAAqBvd,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACxDhpB,UAAW,aAD6C,CAExDioB,SAA0B,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAM,cAD4D,CAA1C,CAF8B,CAArC,CAPM,CAjBN,IACT,CACZ,MAAA6mB,CADY,CAEZ,QAAAe,CAFY,CAGZ,YAAA+7B,EAHY,CAIZ,SAAAC,EAJY,CAKZ,WAAAC,EALY,CAAA,CAALrjC,CAMDiX,EAAAA,CAAOsO,EAAA,CANNvlB,CAMM,CAAc,CAC3B,OAD2B,CAE3B,SAF2B,CAG3B,aAH2B,CAI3B,UAJ2B,CAK3B,YAL2B,CAAd,CAOf,OAAM,CACJ,SAAU,CAAE,EAAGhkB,EAAL,CADN,CAAA,CAEFsnD,EAAeh\/B,CAAAA,OAAQkG,CAAAA,UAAvB,CAAkC+4B,EAAlC,CAFJ,CAoBMC,GAAwBF,EAAeh\/B,CAAAA,OAAQyG,CAAAA,OAAvB,CAA+B,EAAA,EAAM,CACjE,IAAI04B,GAAc,EAIlB,OAAOp6B,GAAA,CAHUruB,EAADkd,EAAQ,CACtBkrC,EAAA,CAASK,EAAT,CADsB,CAGjB,CAAkB,GAAlB,CAAwBzoD,EAAD,EAAQ,CACpCyoD,EAAA,CAAczoD,EAAGoG,CAAAA,MAAO1C,CAAAA,KADY,CAA\/B,CAL0D,CAArC,CAQ3B,EAR2B,CAS9B,OAAuB,GAAIskD,EAAqBvd,CAAAA,GAAzB,EAA8Bie,EAA9B,CAA6C9mD,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBo6B,CAAnB,CAAd,CAAwC,CAC1G0sB,OAAQ,CAAA,CADkG,CAE1GC,MAAO,CAAA,CAFmG,CAG1G3O,KAAMkO,EAHoG,CAI1GU,MAAuB,GAAIb,EAAqBvd,CAAAA,GAAzB,EAA8B+S,EAA9B,CAAuC,CAC5DC,QAASz8C,EAAA,CAAG,kBAAH,CADmD,CAE5Di5C,KAAMkO,EAFsD,CAG5DzK,WAAY,EAHgD;AAI5DhU,SAAUoe,CAAA,CAAYz8B,CAAZ,CAJkD,CAAvC,CAJmF,CAU1Gqe,SAA0B,GAAIse,EAAqBlK,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC9Dr8B,UAAW,KADmD,CAE9DioB,SAAU,CACQ,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnDhpB,UAAW,kBADwC,CAEnDioB,SAAU5lC,MAAOye,CAAAA,MAAP,CAAc+I,EAAd,CAAqBrqB,CAAAA,GAArB,CAA0ByC,EAAD,EAA2B,GAAIskD,EAAqBvd,CAAAA,GAAzB,EAA8B,QAA9B,CAAwC,CACpGhpB,UAAY,oBAAmB\/d,EAAA,GAAU2nB,CAAV,CAAkB,SAAlB,CAA8B,EAAjD,EADwF,CAEpGy9B,QAAS,EAAAA,EAAMV,EAAA,CAAS1kD,EAAT,CAFqF,CAGpGgmC,SAAUoe,CAAA,CAAYpkD,EAAZ,CAH0F,CAAxC,CAI3DA,EAJ2D,CAApD,CAFyC,CAArC,CADR,CASQ,GAAIskD,EAAqBlK,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CACpDr8B,UAAW,mCADyC,CAEpDioB,SAAU,CACQ,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnDhpB,UAAY,0BAA0B2J,EAAA,CAAeC,CAAf,CAAD,CAAoC,EAApC,CAAyB,QAAlD,EADuC,CAEnDqe,SAA0B,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CAC7DhpB,UAAW,iCADkD,CAE7DioB,SAA0B,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8B,OAA9B;AAAuC5oC,EAAA,CAAe,CAC9E4f,UAAW,4BADmE,CAE9E6B,GAAI,uBAF0E,CAG9E9F,KAAM,OAHwE,CAI9E9Z,MA3CP,0BAA2B2E,CAAAA,IAA3B,CA2CyBgjB,CA3CzB,CA2Cc,CAAoBA,CAApB,CAA4B,SAJ2C,CAK9EgxB,SAAUmM,EALoE,CAM9E38B,MAAO,CAAEO,QAAShB,EAAA,CAAeC,CAAf,CAAA,CAAwB,CAAxB,CAA4B,CAAvC,CANuE,CAAf,CAO9D4Q,CAP8D,CAAvC,CAFmC,CAArC,CAFyB,CAArC,CADR,CAeQ,GAAI+rB,EAAqBvd,CAAAA,GAAzB,EAA8B,OAA9B,CAAuC,CACrDse,QAAS,uBAD4C,CAErDtnC,UAAW,gBAF0C,CAGrDioB,SAAU1oC,EAAA,CAAG,gCAAH,CAH2C,CAAvC,CAfR,CAF0C,CAAtC,CATR,CAiCRqnD,EAjCQ,EAiCsB,GAAIL,EAAqBvd,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACjEhpB,UAAW,WADsD,CAEjEioB,SAA0B,GAAIse,EAAqBlK,CAAAA,IAAzB,EAA+BkL,EAA\/B,CAA0E,CAClGzE,aAAc,CAAY,IAAX,EAAAn4B,CAAA,CAAkBA,CAAlB,CAA4B,CAA7B,CADoF,CAElG68B,cAAgBvlD,EAADulD,EAAWZ,EAAA,CAAW3kD,EAAA,CAAM,CAAN,CAAX,CAFwE,CAGlGpI,IAAK,CAH6F,CAIlG4tD,KAAM,EAJ4F,CAKlG,aAAcloD,EAAA,CAAG,oBAAH,CALoF,CAMlGygB,UAAW,gBANuF;AAOlGioB,SAAU,CACQ,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8B0e,EAA9B,CAAyE,CACvF1nC,UAAW,iBAD4E,CAEvFioB,SAA0B,GAAIse,EAAqBvd,CAAAA,GAAzB,EAA8B2e,EAA9B,CAAyE,CACjG3nC,UAAW,iBADsF,CAAzE,CAF6D,CAAzE,CADR,CAOQ,GAAIumC,EAAqBvd,CAAAA,GAAzB,EAA8B4e,EAA9B,CAAyE,CACvF5nC,UAAW,iBAD4E,CAAzE,CAPR,CAPwF,CAA1E,CAFuC,CAArC,CAjCtB,CAFoD,CAAtC,CAVgF,CAAxC,CAA7C,CA3CA,CAwPzB6nC,QAASA,GAA0C,CAACljD,CAAD,CAAS2xB,CAAT,CAAgB,CAC7D3xB,CAAJ,EACE,GAAImjD,EAAkBrb,CAAAA,SAAtB,EACE,EAAA,EAAM9nC,CAAO+nC,CAAAA,aAAP,CAAqBpW,CAArB,CADR,CAF+D,CA2HnEyxB,QAASA,GAA4C,CAACza,CAAD,CAAuBL,CAAA,CAA+B,IAAf,GAAA7rC,UAAA,EAAsC,IAAK,EAA3C,GAAuBA,UAAvB,CAA+C,IAAK,EAApD,CAAwDA,UAAW2nB,CAAAA,QAA1G,CAAoH,CACvK,MAAMwkB,EAA2BZ,EAAA,CAA0CW,CAA1C,CAAjC,CACME,EAA8B,GAAIwa,EAAe35B,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CADpC,CAEMqf,GAAiB,GAAIsa,EAAe35B,CAAAA,MAAnB,EAA2B,EAAA,EAAM,EAAjC,CAEvB,IAAI25B,EAAex3B,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,MAAMmd,GAAqBrX,EAADqX,EAAW,CACnC,GAAIrX,EAAM3xB,CAAAA,MAAV,EAAoB,CAAC6oC,CAA4Bxe,CAAAA,OAAjD,CAA0D,CACxD,IAAI4e,GAA2CA,QAAQ,EAAG,CACxDqa,EAAA,CA3HwCC,qCA2HxC,CAAiG3a,CAAjG,CAA2HQ,EAA3H,CAAwI,CACtIC,SAAU,CAAA,CAD4H,CAAxI,CADwD,CAK1D;MAAMD,GAAc,CAClBE,cAAe3X,EADG,CAGM,QAA1B,GAAIA,EAAMrD,CAAAA,WAAV,EACEga,CAActe,CAAAA,mBAAd,CAAkC,OAAlC,CAA2C+e,EAAe1e,CAAAA,OAA1D,CAEA,CADA0e,EAAe1e,CAAAA,OACf,CADyB4e,EACzB,CAAAX,CAAchkB,CAAAA,gBAAd,CAA+B,OAA\/B,CAAwCykB,EAAe1e,CAAAA,OAAvD,CAAgE,CAC9DttB,KAAM,CAAA,CADwD,CAAhE,CAHF,EAOEksC,EAAA,EAhBsD,CAkB1DJ,CAA4Bxe,CAAAA,OAA5B,CAAsC,CAAA,CAnBH,CAArC,CAqBMkf,GAAU7sC,MAAOgV,CAAAA,UAAP,CAAkB,EAAA,EAAM,CACtC42B,CAAchkB,CAAAA,gBAAd,CAA+B,aAA\/B,CAA8C0kB,EAA9C,CADsC,CAAxB,CAEb,CAFa,CAGhB,OAAO,EAAA,EAAM,CACXtsC,MAAO2rB,CAAAA,YAAP,CAAoBkhB,EAApB,CACAjB,EAActe,CAAAA,mBAAd,CAAkC,aAAlC,CAAiDgf,EAAjD,CACAV,EAActe,CAAAA,mBAAd,CAAkC,OAAlC,CAA2C+e,EAAe1e,CAAAA,OAA1D,CAHW,CAzBqB,CAApC,CA8BG,CACDie,CADC,CAEDM,CAFC,CA9BH,CAkCA,OAAO,CACLY,qBAAsB,EAAAA,EAAMX,CAA4Bxe,CAAAA,OAAlCmf,CAA4C,CAAA,CAD7D,CAvCgK,CA2CzKga,QAASA,GAAsC,CAAC9Z,CAAD,CAAiBpB,CAAA,CAA+B,IAAf,GAAA7rC,UAAA,EAAsC,IAAK,EAA3C,GAAuBA,UAAvB,CAA+C,IAAK,EAApD,CAAwDA,UAAW2nB,CAAAA,QAApG,CAA8G,CAC3J,MAAMulB;AAAqB3B,EAAA,CAA0C0B,CAA1C,CAA3B,CACME,EAA4B,GAAIyZ,EAAe35B,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CAClC,IAAI25B,EAAex3B,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,MAAMge,GAAelY,EAADkY,EAAW,CACzBlY,EAAM3xB,CAAAA,MAAV,EAAoB,CAAC4pC,CAA0Bvf,CAAAA,OAA\/C,EAIEi5B,EAAA,CArKmCG,+BAqKnC,CAA0F9Z,CAA1F,CAHoBP,CAClBE,cAAe3X,EADGyX,CAGpB,CAA2H,CACzHC,SAAU,CAAA,CAD+G,CAA3H,CAL2B,CAU\/Bf,EAAchkB,CAAAA,gBAAd,CAA+B,SAA\/B,CAA0CulB,EAA1C,CACA,OAAO,EAAA,EAAMvB,CAActe,CAAAA,mBAAd,CAAkC,SAAlC,CAA6C6f,EAA7C,CAZqB,CAApC,CAaG,CACDvB,CADC,CAEDqB,CAFC,CAbH,CAiBA,OAAO,CACLI,eAAgB,EAAAA,EAAMH,CAA0Bvf,CAAAA,OAAhC0f,CAA0C,CAAA,CADrD,CAELC,cAAe,EAAAA,EAAMJ,CAA0Bvf,CAAAA,OAAhC2f,CAA0C,CAAA,CAFpD,CApBoJ,CAyB7J0Z,QAASA,GAAqC,EAAG,CAC\/C,MAAM\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\/Di\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\/B,CAA0E,CAClG\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\/EnB,CAlDOE,CAkDP,CA+E4BD,EA\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\/f,KAAJ,CAAU2uD,CAAQ\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\/RH,GA+RcE,EA\/Rd,EAgSChD,EAAA,CAAahsC,EAAb,CAhSD,CAkSgBgtC,CAlShB,CAlDOf,CAkDP,CAkS8BD,EAlS9B,CAmSH,MApVMM,CAoVN,CACeU,CA9RnB,CAvDUV,CAuDV,CA8RM,MACF,SACE,KAAUt0D,MAAJ,CAAU,sBAAV;AAAmCqZ,EAAnC,CAAN,CATJ,CADqC,CAlBhB,CAgCzBm+C,QAASA,GAAM,CAAC5tD,CAAD,CAAc0W,CAAd,CAA4Bq9B,CAA5B,CAAmC,CAC3B,IAAK,EAA1B,GAAIr9B,CAAJ,GACEA,CADF,CACiB,EADjB,CAKWm3C,EAAAA,CAAiBA,CAFP,IAAK,EAAfnZ,GAAAX,CAAAW,CAAmB,CAC5BmZ,UAAW,CAAA,CADiB,CAAnBnZ,CAEPX,CAAwB8Z,EAAAA,SAC5B,OAAO,CACL1uC,GAOK3a,MAAA,EARA,CAELxE,YAAAA,CAFK,CAGL0W,aAAAA,CAHK,CAILm3C,UAAAA,CAJK,CAPyC,CAiBlDC,QAASA,GAAI,CAACC,CAAD,CAAa,CACxB,IAAIC,EAA6B,IAAI5sD,GAcrC,OAbY6sD,SAASC,GAAM,CAACvZ,CAAD,CAAQ,CAAA,IAC7B3pB,GAAM2pB,CAAMx1B,CAAAA,EADiB,CACbnf,GAAc20C,CAAM30C,CAAAA,WADP,CACoB0W,GAAei+B,CAAMj+B,CAAAA,YAC1E,KADwFm3C,CACxF,CADoGlZ,CAAMkZ,CAAAA,SAC1G,GAAiBG,CAAWl3C,CAAAA,GAAX,CAAekU,EAAf,CAAjB,CACE,MAAOgjC,EAAW1kD,CAAAA,GAAX,CAAe0hB,EAAf,CAELmjC,GAAAA,CAAUnuD,EAAA,CAAY0W,EAAa5Z,CAAAA,GAAb,CAAiB,QAAQ,CAACjB,EAAD,CAAK,CACtD,MAAOqyD,GAAA,CAAOryD,EAAP,CAD+C,CAA9B,CAAZ,CAGVgyD,EAAJ,EACEG,CAAWxnD,CAAAA,GAAX,CAAewkB,EAAf,CAAoBmjC,EAApB,CAEF,OAAOA,GAX0B,CAa5B,CAAMJ,CAAN,CAfiB,CAmB1BK,QAASA,GAA8B,CAACvrD,CAAD,CAAS60B,CAAT,CAAmB,CACxD,GAAc,IAAd,EAAI70B,CAAJ,CACE,MAAO,EACT,KAAIZ,EAAS,EAAb,CACIw1B,EAAa93B,MAAO6B,CAAAA,IAAP,CAAYqB,CAAZ,CADjB,CAES7K,EACT,KAAKA,EAAL,CAAU,CAAV,CAAaA,EAAb,CAAkBy\/B,CAAWx\/B,CAAAA,MAA7B,CAAqCD,EAAA,EAArC,CAA2C,CACzC,IAAAsK,GAAMm1B,CAAA,CAAWz\/B,EAAX,CACuB,EAA7B,EAAI0\/B,CAASze,CAAAA,OAAT,CAAiB3W,EAAjB,CAAJ,GAEAL,CAAA,CAAOK,EAAP,CAFA,CAEcO,CAAA,CAAOP,EAAP,CAFd,CAFyC,CAM3C,MAAOL,EAZiD;AAc1DosD,QAASA,GAA4B,CAAClrD,CAAD,CAAKU,CAAL,CAAa,CAChD,GAAKV,CAAL,CAAA,CAEA,GAAkB,QAAlB,GAAI,MAAOA,EAAX,CACE,MAAOmrD,GAAA,CAAmBnrD,CAAnB,CAAuBU,CAAvB,CACT,KAAIE,EAAKpE,MAAOsB,CAAAA,SAAUhB,CAAAA,QAASF,CAAAA,IAA1B,CAA+BoD,CAA\/B,CAAmCa,CAAAA,KAAnC,CAAyC,CAAzC,CAA4C,CAAC,CAA7C,CACE,SAAX,GAAID,CAAJ,EAAuBZ,CAAGnD,CAAAA,WAA1B,GACE+D,CADF,CACOZ,CAAGnD,CAAAA,WAAYK,CAAAA,IADtB,CAEA,IAAW,KAAX,GAAI0D,CAAJ,EAA2B,KAA3B,GAAoBA,CAApB,CACE,MAAO1F,MAAM4F,CAAAA,IAAN,CAAWd,CAAX,CACT,IAAW,WAAX,GAAIY,CAAJ,EAA0B,0CAA2CG,CAAAA,IAA3C,CAAgDH,CAAhD,CAA1B,CACE,MAAOuqD,GAAA,CAAmBnrD,CAAnB,CAAuBU,CAAvB,CAVT,CADgD,CAalDyqD,QAASA,GAAkB,CAAC\/3D,CAAD,CAAM4N,CAAN,CAAW,CACpC,GAAW,IAAX,EAAIA,CAAJ,EAAmBA,CAAnB,CAAyB5N,CAAI0B,CAAAA,MAA7B,CACEkM,CAAA,CAAM5N,CAAI0B,CAAAA,MACZ,KAHoC,IAG3BD,EAAK,CAHsB,CAGnBoM,EAAW\/F,KAAJ,CAAU8F,CAAV,CAAxB,CAAwCnM,CAAxC,CAA6CmM,CAA7C,CAAkDnM,CAAA,EAAlD,CACEoM,CAAA,CAAKpM,CAAL,CAAA,CAAWzB,CAAA,CAAIyB,CAAJ,CACb,OAAOoM,EAL6B,CAOtCmqD,QAASA,GAAgC,CAACprD,CAAD,CAAKmB,CAAL,CAAqB,CAC5D,IAAIC,EAAwB,WAAxBA,GAAM,MAAOC,OAAbD,EAAuCpB,CAAA,CAAGqB,MAAOC,CAAAA,QAAV,CAAvCF,EAA8DpB,CAAA,CAAG,YAAH,CAClE,IAAIoB,CAAJ,CACE,MAA4BG,CAApBH,CAAoBG,CAAdH,CAAIxE,CAAAA,IAAJ,CAASoD,CAAT,CAAcuB,EAAAA,IAAKvO,CAAAA,IAA1B,CAA+BoO,CAA\/B,CACT;GAAIlG,KAAMsG,CAAAA,OAAN,CAAcxB,CAAd,CAAJ,GAA0BoB,CAA1B,CAAgC8pD,EAAA,CAA6BlrD,CAA7B,CAAhC,GAAqEmB,CAArE,EAAuFnB,CAAvF,EAAkH,QAAlH,GAA6F,MAAOA,EAAGlL,CAAAA,MAAvG,CAA4H,CACtHsM,CAAJ,GACEpB,CADF,CACOoB,CADP,CAEA,KAAIvM,EAAK,CACT,OAAO,SAAQ,EAAG,CAChB,MAAIA,EAAJ,EAAUmL,CAAGlL,CAAAA,MAAb,CACS,CACL2M,KAAM,CAAA,CADD,CADT,CAIO,CACLA,KAAM,CAAA,CADD,CAELrF,MAAO4D,CAAA,CAAGnL,CAAA,EAAH,CAFF,CALS,CAJwG,CAe5H,KAAM,KAAI6M,SAAJ,CAAc,uIAAd,CAAN,CAnB4D,CAsB9D2pD,QAASA,GAAI,CAAChtD,CAAD,CAAOpB,CAAP,CAAY,CAKvB,IAJA,IAAImO,EAAS,EAAb,CACI0M,EAAS,EADb,CAEIvD,GAAM,CAFV,CAGIvT,GAAM3C,CAAKvJ,CAAAA,MACf,CAAOyf,EAAP,CAAavT,EAAb,CAAA,CACE8W,CAAA,CAAOzZ,CAAA,CAAKkW,EAAL,CAAP,CACA,CADoB,CACpB,CAAAA,EAAA,EAAO,CAET,KAAKxV,IAAIA,EAAT,GAAiB9B,EAAjB,CACO6a,CAAOnb,CAAAA,cAAP,CAAsBoC,EAAtB,CAAL,GACEqM,CAAA,CAAOrM,EAAP,CADF,CACiB9B,CAAA,CAAI8B,EAAJ,CADjB,CAIF,OAAOqM,EAdgB,CAiBzBkgD,QAASA,GAAiB,CAACV,CAAD,CAAa32C,CAAb,CAAmBs3C,CAAnB,CAAyB,CAMjDC,QAASA,EAAkB,CAACR,EAAD,CAAU\/rD,EAAV,CAAiB,CACtC+rD,EAAA,CAAA,UAAJ;AA3ZF,GA4ZYA,EAAA5D,CAAAA,UA5ZZ,EAtDYC,CAsDZ,CA4ZmCjrD,CAAAA,CA5ZnC,CA8ZE,KAJ0C,IAIjCqvD,GAAYL,EAAA,CAAiCM,EAAjC,CAJqB,CAIgCC,EAA1E,CAAiF,CAAuBlqD,CAArBkqD,EAAqBlqD,CAAbgqD,EAAA,EAAahqD,EAAAA,IAAxG,CAAA,CACMmqD,EA\/ZR,CA+Z2BD,EAAMvvD,CAAAA,KA\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\/ed,CAlDOwnD,CAkDP,CA+esBvvC,EA\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\/yC,CAP6B,CAA\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\/B,GAAK\/yC,EAAGm3D,CAAAA,KAAO91D,GAAAA,CAAKrB,EAAGiF,CAAAA,KAC5ClI,GAAGgB,CAAAA,IAAH,CAAQ,CAAEgoB,MAAOhmB,EAAT,CAAaimB,IAAK+sB,EAAL\/sB,CAAU,CAAvB,CAA0B\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\/B,CAAR,CAAgE,CAAlB\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\/B\/L,CAAoCmL,CAAG3M,CAAAA,MAClF,OAAY,EAAL,CAAAwB,CAAA,CAASA,CAAT,CAAc+L,CAAd,CAAmB\/L,CAJL,CAMvBw9D,QAASA,GAAE,CAAC35D,CAAD,CAAKgB,CAAL,CAASkH,CAAT,CAAa,CACtB,GACS,IAAK,EADd,GAEElI,CADqB45D,CAAAA,UADvB,CAGE,MAAO54D,EAAG04D,CAAAA,YAAH,CAAgB15D,CAAG45D,CAAAA,UAAnB,CAAP,CAAwC,CACtCtyD,EAAAA,CAAKuyD,EAAA,CAAG,MAAA,GAAW75D,CAAG41D,CAAAA,KAAd,CAAsB1tD,CAAtB,CAA2BlI,CAAG41D,CAAAA,KAAjC,CAAwC50D,CAAxC,CACT,OAAO3F,KAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYgM,CAAZ,CAAgBjM,IAAK6uB,CAAAA,GAAL,CAAShiB,CAAT,CAAaZ,CAAb,CAAhB,CANe,CAQxBuyD,QAASA,GAAE,CAAC75D,CAAD,CAAKgB,CAAL,CAAS,CAClB,GAAQA,CAOMw4D,CAAAA,eAPd,GA5McjC,EA4Md,CACE,MAAOv3D,EACT,KAAK,IAAIkI,EAAK,CAAd,CAAiBlH,CAAG04D,CAAAA,YAAH,CAAgBxxD,CAAhB,CAAjB,EAAwClI,CAAxC,CAA6CkI,CAA7C,CAAA,CACEA,CAAA,EACF,OAAOlI,EAAP,CAAYkI,CALM,CA4EpB4xD,QAASA,GAAE,CAAC95D,CAAD,CAAK,CACVgB,CAAAA,CAAK,QAAA,EAAY,MAAOhB,EAAnB,CAAwB,CAAE41D,MAAO51D,CAAT,CAAxB,CAAwCA,CACjD,OAAOgB,EAAGk5C,CAAAA,KAAH,GAAal5C,CAAGk5C,CAAAA,KAAhB,CAAwB,OAAxB,EAAkCl5C,CAAGo2D,CAAAA,QAArC,EAAiD2C,EAAjD,GAAwD\/4D,CAAGo2D,CAAAA,QAA3D,CAAsE,MAAtE,EAA+Ep2D,CAAGrG,CAAAA,MAAlF,GAA6FqG,CAAGrG,CAAAA,MAAhG;AAAyG,CAAzG,EAA6GqG,CAFtG,CAsGhBg5D,QAASA,GAAE,CAACh6D,CAAD,CAAK,CACd,MAAO,CAAC,CAACA,CAAT,GAAgB,QAAA,GAAaA,CAAb,CAAkB,QAAlB,CAA6B,MAA7C,CADc,CA0ChBi6D,QAASA,GAAE,CAACj6D,CAAD,CAAK,CACd,MAAOA,EAAGsB,CAAAA,MAAH,CAAU,QAAQ,CAACi1C,CAAD,CAAKv1C,CAAL,CAAS,CAChC,MAAOu1C,EAAGmjB,CAAAA,YAAal9D,CAAAA,IAAhB,CAAqB+5C,CAAG2jB,CAAAA,UAAxB,CAAA,CAAqC3jB,CAAG2jB,CAAAA,UAAxC,EAAsDl5D,CAAtD,CAA2D,CAA3D,CAA8Du1C,CADrC,CAA3B,CAEJ,CAAE2jB,WAAY,CAAd,CAAiBR,aAAc,EAA\/B,CAFI,CADO,CAmBhBS,QAASA,GAAE,CAACn6D,CAAD,CAAKgB,CAAL,CAAS,CAClB,MAAO,EAAE,CAAChB,CAAH,EAASA,CAAA,CAAG,CAAH,CAAT,GAAmBgB,CAAA,CAAG,CAAH,CAAnB,EAA4BhB,CAAA,CAAG,CAAH,CAA5B,GAAsCgB,CAAA,CAAG,CAAH,CAAtC,CADW,CAGpBo5D,QAASA,GAAE,CAACp6D,CAAD,CAAKgB,CAAL,CAAS,CAClB,MAAO,EAAE,CAAChB,CAAH,EAASA,CAAGikD,CAAAA,UAAZ,GAA2BjjD,CAAGijD,CAAAA,UAA9B,EAA4CjkD,CAAGq2D,CAAAA,QAA\/C,GAA4Dr1D,CAAGq1D,CAAAA,QAA\/D,CADW,CAGpBgE,QAASA,GAAE,CAACr6D,CAAD,CAAKgB,CAAL,CAASkH,CAAT,CAAa,CACtB,MAAO,QAAA,EAAY,MAAOlI,EAAnB,CAtIAs6D,IAsIwB,GAAApyD,CAAA,EAAa,KAAb,GAAuBlH,CAAvB,EAA6B,MAA7B,GAAwCkH,CAAxC,EAA8C,QAA9C,GAA2DlH,CAA3D,CAAgEhB,CAAhE,CAAqE,CAA7F,CAtIAs6D,IAsIiG,GAAApyD,CAAA,CAAY,KAAA,GAAUlH,CAAV,CAAehB,CAAGkzC,CAAAA,IAAlB,CAAyBlzC,CAAGu6D,CAAAA,OAAxC,CAAkD,QAAA,GAAav5D,CAAb,CAAkBhB,CAAGkzC,CAAAA,IAArB,CAA4BlzC,CAAGu6D,CAAAA,OADnK,CAgBxBC,QAASA,GAAE,CAACx6D,CAAD;AAAKgB,CAAL,CAASkH,CAAT,CAAa,CACtB,GAAI,CAAJ,GAAUlI,CAAG5D,CAAAA,MAAb,CACE,MAAO,EACT,IAAQ4E,CAhQMw4D,CAAAA,eAgQd,GAndcjC,EAmdd,CACE,MAAOv3D,EAAGiB,CAAAA,GAAH,CAAO,QAAQ,CAACs1C,EAAD,CAAK,CACzB,MAAOye,GAAA,CAAG,EAAH,CAAOze,EAAP,CAAW,CAAEqf,MAAOrf,EAAGqf,CAAAA,KAAVA,CAAkB1tD,CAApB,CAAwBuyD,cAAelkB,EAAGqf,CAAAA,KAA1C,CAAX,CADkB,CAApB,CAJa,KAObtuD,CAPa,CAOT9I,GAAK,EAPI,CAOArC,GAAKo8D,EAAA,CAAGv3D,CAAGw4D,CAAAA,eAAN,CAAuBx5D,CAAA,CAAG,CAAH,CAAM41D,CAAAA,KAA7B,CAAoC51D,CAAA,CAAGA,CAAG5D,CAAAA,MAAN,CAAe,CAAf,CAAkBw5D,CAAAA,KAAtD,CAPL,CAOmEp6D,GAAK,IAAK,EAP7E,CAOgFqW,GAAK,CAA3G,KAA8GpT,CAA9G,CAAmH02D,EAAA,CAAGn1D,CAAH,CAAnH,CAA2H,CAAa+I,CAAXzB,CAAWyB,CAANtK,CAAA,EAAMsK,EAAAA,IAAxI,CAAA,CACMyoC,CACqF,CADhFlqC,CAAG5D,CAAAA,KAC6E,EAAxF,CAAClI,EAAuF,EAAjFA,EAAGipB,CAAAA,GAA8E,CAAxE+sB,CAAGokB,CAAAA,KAAqE,IAA1Dp6D,EAAA,CAAKW,EAAGu+D,CAAAA,KAAH,EAAL,CAAiB7oD,EAAjB,CAAsB7Q,CAAG04D,CAAAA,YAAat8C,CAAAA,OAAhB,CAAwB5hB,EAAGgpB,CAAAA,KAA3B,CAAoC,EAAAhmB,EAAGhC,CAAAA,IAAH,CAAQw4D,EAAA,CAAG,EAAH,CAAOxjB,CAAGokB,CAAAA,KAAH,GAAap6D,EAAGgpB,CAAAA,KAAhB,CAAwB,CAAEhH,KAAM,OAAR,CAAiBo4C,MAAO\/jD,EAAxB,CAAxB,CAAuD,CAAE+jD,MAAOpkB,CAAGokB,CAAAA,KAAVA,EAAmB\/jD,EAAnB+jD,CAAwB,CAAxBA,EAA6B1tD,CAA\/B,CAAmC0xD,WAAY\/nD,EAA\/C,CAA9D,CAAmH,CAAE7U,KAAMw0C,CAAGx0C,CAAAA,IAAX,CAAiBrC,OAAQ62C,CAAG72C,CAAAA,MAA5B,CAAoC8\/D,cAAejpB,CAAGokB,CAAAA,KAAtD,CAA6Dpd,KAAMhH,CAAGgH,CAAAA,IAAtE,CAAnH,CAAR,CAE3F,OAAOh6C,GAXe;AAaxBm8D,QAASA,GAAE,CAAC36D,CAAD,CAAKgB,CAAL,CAASkH,CAAT,CAAaZ,CAAb,CAAiB9I,EAAjB,CAAqBrC,EAArB,CAAyB,CAAA,IAC9BX,GAAK,CADyB,CACtBqW,GAAK,CACD,EAAhB,CAAI7R,CAAG5D,CAAAA,MAAP,GACEZ,EAEA,CAFKwE,CAAA,CAAG,CAAH,CAAMrF,CAAAA,MAEX,CADI8D,EACJ,CADSuB,CAAA,CAAGA,CAAG5D,CAAAA,MAAN,CAAe,CAAf,CACT,CAAAyV,EAAA,CAAKpT,EAAG9D,CAAAA,MAAR,CAAiB8D,EAAGzB,CAAAA,IAHtB,CAFkC,KAO9Bw0C,GAAKtpC,CAALspC,CAAUhzC,EAAGw6D,CAAAA,SAPiB,CAONl5D,GAAKtE,EAAIi2C,EAAAA,CAAKjzC,EAAGy6D,CAAAA,UAARxnB,CAAqBD,EAArBC,CAA0BjzC,EAAG06D,CAAAA,QAA7BznB,EAAyCD,EAAzCC,CAA8C,CAA9CA,EAAmDnqC,CAAnDmqC,CAAwD5\/B,EAC7F,OAAO,CAAE6uC,MAAO8Z,EAAA,CAAGx6D,CAAH,CAAOxB,EAAP,CAAWrC,EAAX,CAAT,CAAyBy+D,SAAUJ,EAAA,CAAGx5D,CAAH,CAAOxC,EAAP,CAAWrC,EAAX,CAAnC,CAAmD0+D,cAAe75D,CAAGM,CAAAA,MAAH,CAAU,QAAQ,CAACi1C,EAAD,CAAKxD,EAAL,CAAS,CAClG,MAAOA,GAAG\/1C,CAAAA,IAAV,CAAiBu5C,EADiF,CAA3B,CAEtE,CAFsE,CAAlE,CAEAf,UAAWh6C,EAFX,CAEes\/D,aAAcrpB,CAF7B,CAEiCnlB,IAAKxsB,EAFtC,CAE0C+xC,OAAQhgC,EAFlD,CAEsDqoD,WAAYhyD,CAFlE,CAEsE6yD,eAAgB5+D,EAFtF,CAR2B,CA+IpC6+D,QAASA,GAAE,CAACh7D,CAAD,CAAK,CAAA,IACVgB,CADU,CACNkH,EAAK,CAAA,CACb,OAAO,SAAQ,EAAG,CAChB,MAAOA,EAAA,GAAOA,CAAA,CAAK,CAAA,CAAL,CAAWlH,CAAX,CAAgBhB,CAAA,EAAvB,EAA8BgB,CADrB,CAFJ,CA0GhBi6D,QAASA,GAAE,CAACj7D,CAAD,CAAKgB,CAAL,CAAS,CAAA,IACdkH,EAAK,GAAImtD,EAAevlC,CAAAA,MAAnB,EAA2B,IAA3B,CADS,CACyBxoB,EAAK,GAAI+tD,EAAevjC,CAAAA,WAAnB,EAAgC,QAAQ,CAACrqB,EAAD,CAAK,CAC3F,GAAI,IAAJ;AAAaA,EAAb,EAAmBA,EAAGmrC,CAAAA,YAAtB,CAAoC,CACtBp3C,IAAAA,GAAKiM,EAAGumB,CAAAA,qBAAH,EAA4B0nC,GAAAA,CAAKl6D,EAAGU,CAAAA,KACrD,IAAI8E,CAAJ,CAAQ,CACF60D,IAAAA,GAAK70D,CAAGgtB,CAAAA,qBAAH,EAA4B8nC,GAAAA,CAAKt6D,EAAG8wB,CAAAA,GAARwpC,CAAcD,EAAGvpC,CAAAA,GACtD9tB,GAAA,CAAKq3D,EAAG55D,CAAAA,MAAR,CAAiBZ,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYw6D,EAAZ,CAAsBA,GAAL,EAAU90D,CAAG80C,CAAAA,SAFzC,CAAR,IAIEt3C,GAA+C,CAA1CsE,MAAO4zD,CAAAA,WAAmC,CAArBr7D,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYE,EAAG8wB,CAAAA,GAAf,CAAqB,CAAAnwB,EAAA,CAAKX,EAAG8wB,CAAAA,GAAR,CAAcxpB,MAAOkzC,CAAAA,WACtE9tC,EAAGuoB,CAAAA,OAAH,CAAa,CAAE+kB,UAAWr5C,EAAb,CAAiB++D,cAAe18D,EAAhC,CAAoC28D,aAAczF,EAAlD,CAAwD11D,EAAA,CAAGkI,CAAGuoB,CAAAA,OAAN,CAPnC,CADuD,CAA7C,CAU7C,CAACzwB,CAAD,CAAKgB,CAAL,CAV6C,CAD9B,CAWJ6Q,GAAKujD,EAAA,CAAG9tD,CAAH,CAXD,CAWS7I,GAAKoT,EAAGw8B,CAAAA,WAXjB,CAW8BmD,GAAK3\/B,EAAGhD,CAAAA,GAXtC,CAW2C\/O,GAAK,GAAIu1D,EAAevjC,CAAAA,WAAnB,EAAgC,QAAQ,EAAG,CAC3GxqB,CAAA,CAAGkqC,EAAG\/gB,CAAAA,OAAN,CAD2G,CAA3C,CAE\/D,CAACnpB,CAAD,CAAKkqC,EAAL,CAF+D,CAGlE,OAAO,GAAI6jB,EAAepjC,CAAAA,SAAnB,EAA8B,QAAQ,EAAG,CAC9C,GAAIjxB,CAAJ,CAAQ,CACNA,CAAG0pB,CAAAA,gBAAH,CAAoB,QAApB,CAA8B5qB,EAA9B,CACA,KAAIy2C,GAAK,IAAIhkB,cAAJ,CAAmBzyB,EAAnB,CACT;MAAOy2C,GAAG9jB,CAAAA,OAAH,CAAWzxB,CAAX,CAAA,CAAgB,QAAQ,EAAG,CAChCA,CAAGovB,CAAAA,mBAAH,CAAuB,QAAvB,CAAiCtwB,EAAjC,CAAsCy2C,GAAGsD,CAAAA,SAAH,CAAa74C,CAAb,CADN,CAH5B,CAOR,MAAO8B,OAAO4nB,CAAAA,gBAAP,CAAwB,QAAxB,CAAkC5qB,EAAlC,CAAA,CAAuCgD,MAAO4nB,CAAAA,gBAAP,CAAwB,QAAxB,CAAkC5qB,EAAlC,CAAvC,CAA8E,QAAQ,EAAG,CAC9FgD,MAAOstB,CAAAA,mBAAP,CAA2B,QAA3B,CAAqCtwB,EAArC,CAA0CgD,OAAOstB,CAAAA,mBAAP,CAA2B,QAA3B,CAAqCtwB,EAArC,CADoD,CARlD,CAAzC,CAWJ,CAACA,EAAD,CAAKkB,CAAL,CAXI,CAAA,CAWOvC,EAzBI,CAgCpB28D,QAASA,GAAE,CAACp7D,CAAD,CAAK,CACd,MAAOA,EADO,CAehBq7D,QAASA,GAAE,CAACr7D,CAAD,CAAKkI,CAAL,CAAS,CAClB,IAAIZ,EAAK6nD,EAAA,EACT,OAAOvtB,GAAA,CAAUt6B,CAAV,CAAc,QAAQ,EAAG,CAC9B,MAAOqO,QAAQQ,CAAAA,IAAR,CAAa,uDAAb,CAAuEjO,CAAvE,CAA2E,aAA3E,CAA0F,iBAA1F,CAA6G,cAA7G,CADuB,CAAzB,CAAA,CAEH+mD,EAAA,CAAQ3nD,CAAR,CAAYtH,CAAZ,CAFG,CAEcsH,CAJH,CA8CpBg0D,QAASA,GAAE,CAACt7D,CAAD,CAAKgB,CAAL,CAAS,CAClB,GAAI,QAAJ;AAAgB,MAAOhB,EAAvB,CACE,MAAO,CAAEmS,QAASnR,CAAX,CAFS,CAgBpBu6D,QAASA,GAAE,CAACv7D,CAAD,CAAK,CAAA,IACVgB,EAAKhB,CAAG40D,CAAAA,YADE,CACYttD,EAAKtH,CAAG+0D,CAAAA,UADpB,CACgCv2D,EAAKwB,CAAG60D,CAAAA,eACtD,OAAO2G,GAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,CAACmN,EAAD,CAAK,CAAA,IACtBruC,GAAKquC,EAAG1qB,CAAAA,KADc,CACP1vB,GAAKo6C,EAAG7M,CAAAA,QAAUluC,GAAAA,CAAKy5D,EAAA,CAAG1e,EAAH,CAAOklB,EAAP,CADhB,KAC4Bh9D,GAAKuC,CAAA,CAAG,sBAAH,CADjC,CAC6DwwC,GAAKhzC,CAAA,CAAG,mBAAH,CADlE,CAC2FD,GAAKyC,CAAA,CAAG,2BAAH,CADhG,CACiIkR,GAAK1T,CAAA,CAAG,aAAH,CADtI,CACyJ0C,GAAK1C,CAAA,CAAG,SAAH,CAAewzC,GAAAA,CAAK8kB,EAAA,CAAGr4D,EAAH,CAAOF,EAAP,CAAWizC,EAAX,CAAet\/B,EAAf,CAAoBw\/B,GAAAA,CAAKM,EAAGglB,CAAAA,WAAa3sD,GAAAA,CAAK2nC,EAAGilB,CAAAA,gBAC7P,OAAO3vD,EAAA,CAAG,UAAH,CAAe0qC,EAAGmlB,CAAAA,gBAAlB,CAAA,CAAqC7vD,CAAA,CAAG,UAAH,CAAe+C,EAAf,CAArC,CAAyD,GAAIgrD,EAAe5qC,CAAAA,aAAnB,EAAkC+mB,EAAlC,CAAsCwjB,EAAA,CAAG,CAAEnmD,IAAK6iC,EAAP,CAAW7lB,MAAOmpC,EAAA,CAAG,EAAH,CAAO0G,EAAP,CAAWxzD,EAAX,CAAlB,CAAkC,eAAgB,mBAAlD;AAAuE,yBAA0B,CAAA,CAAjG,CAAuG0kB,SAAU,CAAjH,CAAH,CAAyHpxB,EAAzH,CAA6H8\/D,EAAA,CAAG9pB,EAAH,CAAOtwC,EAAP,CAA7H,CAAtC,CAAgL\/E,EAAhL,CAFtC,CAArB,CAFO,CAOhBw\/D,QAASA,GAAE,CAAC37D,CAAD,CAAK,CAAA,IACVsH,EAAKtH,CAAG40D,CAAAA,YADE,CACYp2D,EAAKwB,CAAG+0D,CAAAA,UADpB,CACgC54D,EAAK6D,CAAG60D,CAAAA,eACtD,OAAO2G,GAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,CAACmN,EAAD,CAAK,CAAA,IACtBruC,GAAKquC,EAAG1qB,CAAAA,KADc,CACPrwB,GAAK+6C,EAAG7M,CAAAA,QAAUjrC,GAAAA,CAAKw2D,EAAA,CAAG1e,EAAH,CAAOqlB,EAAP,CADhB,KAC4BpqB,GAAKlqC,CAAA,CAAG,4BAAH,CADjC,CACmE\/I,GAAKpC,CAAA,CAAG,mBAAH,CADxE,CACiG+V,GAAK5K,CAAA,CAAG,2BAAH,CADtG,CACuIpG,GAAK\/E,CAAA,CAAG,iBAAH,CAD5I,CACmK61C,GAAK71C,CAAA,CAAG,WAAH,CADxK,CACyLkO,GAAKlO,CAAA,CAAG,oBAAH,CAD9L,CACwNo9D,GAAKp9D,CAAA,CAAG,SAAH,CAAe0\/D,GAAAA,CAAK\/E,EAAA,CAAGtlB,EAAH,CAAOt\/B,EAAP,CAAW3T,EAAX,CAAe8vD,EAAf,CAAsBhkD,EAAtB,CADjP,KAC4QyxD,GAAKD,EAAG7E,CAAAA,WAAa+E,GAAAA,CAAKF,EAAG5E,CAAAA,gBAAkBxkB,GAAAA,CAAKopB,EAAG1E,CAAAA,gBAC7V,OAAO6E,GAAA,CAAG,QAAQ,EAAG,CACnB,MAAOF,GAAGrrC,CAAAA,OAAH;AAAapmB,EAAb,EAAmBvH,MAAnB,CAA2B,QAAQ,EAAG,CAC3Cg5D,EAAGrrC,CAAAA,OAAH,CAAa,IAD8B,CAD1B,CAAd,CAIJ,CAACqrC,EAAD,CAAKzxD,EAAL,CAJI,CAAA,CAIO7L,CAAA,CAAG,gBAAH,CAAqBi0C,EAArB,CAJP,CAIiCj0C,CAAA,CAAG,UAAH,CAAeu9D,EAAf,CAJjC,CAIqD,GAAI1G,EAAe5qC,CAAAA,aAAnB,EAAkClsB,EAAlC,CAAsCy2D,EAAA,CAAG,CAAEnpC,MAAOmpC,EAAA,CAAG,CAAE3oC,SAAU,UAAZ,CAAH,CAA6BnkB,EAA7B,CAAiC,CAAA,GAAMhH,EAAN,CAAW,CAAEjF,OAAQiF,EAARjF,CAAa+1C,EAAf,CAAX,CAAiC,EAAlE,CAAT,CAAgF,yBAA0B,CAAA,CAA1G,CAAH,CAAqHvzC,EAArH,CAAyH68D,EAAA,CAAG\/8D,EAAH,CAAOg7D,EAAP,CAAzH,CAAtC,CAA4K\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\/I,CA2CK\/yC,CA3CsJ6zC,CAAAA,KAA3J,CAAmK,GADrK,KAGP,MAAM,KAAIP,EAAJ,CAAkB,CAAlB,CAAN,CAyCE,MAAO,EAAP,CACF,GAd4B,QAc5B,GAdO,MAcGtzC,EAdU6yC,CAAAA,GAcpB,EAdoE,QAcpE,GAdwC,MAc9B7yC,EAd2C8yC,CAAAA,UAcrD,EAd2G,QAc3G,GAdgF,MActE9yC,EAdmF+yC,CAAAA,SAc7F,GAd+I,QAc\/I,GAdwH,MAc9G\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\/B,CAAD,CAA+C,CAC\/D,MAAuB,GAAIc,EAAqBpkB,CAAAA,IAAzB,EAA+B,GAA\/B,CAAoC,CACzDpU,SAAU,CACQ,GAAIw4B,EAAqBz3B,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CACpDhpB,UAAW,mBADyC,CAEpDqxB,EAAI,KAAIvmB,CAAJ,MAAc01C,CAAd,IAAwBrwB,CAAxB,EAFgD,CAAtC,CADR,CAKQ,GAAIswB,EAAqBz3B,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CACpDqI,EAAI,KAAIvmB,CAAJ,MAAc01C,CAAd,IAAwBrwB,CAAxB,EADgD,CAEpDn1C,KAAM,MAF8C,CAGpDglE,OAAAA,CAHoD,CAIpDL,YAAAA,EAJoD,CAKpDe,cAAe,OALqC,CAMpDC,eAAgB,OANoC,CAOpD11C,cAAe,MAPqC,CAAtC,CALR,CAD+C,CAApC,CADwC,CAqBjE21C,QAASA,GAA0B,CAAC3hE,CAAD,CAAKC,CAAL,CAASnC,CAAT,CAAa,CACxC8jE,CAAAA,CAxu1BCziE,CAAA,CAwu1ByCa,CAxu1BzC,CAwu1B6CC,CAxu1B7C,CAwu1BiCD,CAxu1BjC,CAwu1BqClC,CAxu1BrC,CAwu1BiD5B,CAAAA,MACxD,IAAI,CAAC0lE,CAAL,CAEE,MADA3sD,QAAQQ,CAAAA,IAAR,CAAa,oDAAb,CACO,CAAA,CAAEoW,KAAM7rB,CAAR,CAAYkxC,MAAOlxC,CAAnB,CAGH6rB,EAAAA,CAAO,CADPlrB,CACO,CADDihE,CAAA,CAAK,CAAL,CACC,EAAM\/+C,EAAYlmB,CAAAA,OAAZ,CAAoBgE,CAApB;AAAyBX,CAAzB,CAA6BrF,IAAKu9B,CAAAA,EAAlC,CAAuC,CAAvC,CAAN,CAAkDl4B,CACzDkxC,EAAAA,CAAQvwC,CAAA,CAAMkiB,EAAYlmB,CAAAA,OAAZ,CAAoBgE,CAApB,CAAyBX,CAAzB,CAA6B,CAACrF,IAAKu9B,CAAAA,EAAnC,CAAwC,CAAxC,CAAN,CAAmDl4B,CACjE,OAAO,CAAE6rB,KAAAA,CAAF,CAAQqlB,MAAAA,CAAR,CATuC,CAWhD2wB,QAASA,GAAwB,CAAC7hE,CAAD,CAAKC,CAAL,CAASnC,CAAT,CAAa,CAC5C,MAAM,CAAE,KAAA+tB,CAAF,CAAQ,MAAAqlB,EAAR,CAAA,CAAkBywB,EAAA,CAA2B3hE,CAA3B,CAA+BC,CAA\/B,CAAmCnC,CAAnC,CACxB,OAAQ,KAAI+tB,CAAJ,MAAc7rB,CAAd,IAAoBkxC,EAApB,EAFoC,CAI9C4wB,QAASA,GAAY,CAAC32C,CAAD,CAAQrH,CAAR,CAAeC,CAAf,CAAoBg+C,CAApB,CAAqCC,EAArC,CAAoD,CACjEtB,CAAAA,CAAcv1C,CAAMu1C,CAAAA,WAC1B,KAAMuB,GAAYp\/C,EAAYq\/C,CAAAA,IAAZ,CAAiBp+C,CAAjB,CAAwBC,CAAxB,CACZo+C,EAAAA,CAAkBxnE,IAAK6uB,CAAAA,GAAL,CAASy4C,EAAT,CAAqB,CAArB,CAAsC,EAAtC,CAAwBvB,CAAxB,CAClB0B,GAAAA,CAAO,EACbA,GAAKtmE,CAAAA,IAAL,CAAW,KAAIgoB,CAAJ,MAAeC,CAAf,EAAX,CACIg+C,EAAJ,EACEK,EAAKtmE,CAAAA,IAAL,CAAU+lE,EAAA,CAAyB\/9C,CAAzB,CAAgCC,CAAhC,CAAqCo+C,CAArC,CAAV,CAEEH,GAAJ,EACEI,EAAKtmE,CAAAA,IAAL,CAAU+lE,EAAA,CAAyB99C,CAAzB,CAA8BD,CAA9B,CAAqCq+C,CAArC,CAAV,CAEF,OAAOC,GAAKngE,CAAAA,IAAL,CAAU,GAAV,CAZgE,CA6EzEogE,QAASA,GAAS,CAAC,CAAE,GAAI5zC,CAAN,CAAW,OAAAtwB,CAAX,CAAmB,UAAAmkE,CAAnB,CAA8B,OAAAroE,CAA9B,CAAsC,MAAAsoE,EAAA,CAAQ,CAA9C,CAAD,CAAoD,CACpE,MAAuB,GAAIC,EAAqBz4B,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CAC3Df,SAA0B,GAAIw5B,EAAqBplB,CAAAA,IAAzB,EAA+B,MAA\/B,CAAuC,CAC\/Dx6B,GAAI6L,CAAJ7L,CAAU,OADqD,CAE\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\/B,CAAA,CAAG,CAAH,CAAMjD,CAAAA,KAX\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\/7D,EAAH,CAAO+C,EAAP,CAAH,CAAe\/C,EAAf,CAAmBq+D,EAAnB,CAAwB,CAAClzB,EAAzB,CAA8B,CAAA+xB,EAAGhoE,CAAAA,IAAH,CAAQ2oE,EAAR,CACpF7lC,GAAA,CAAK4lC,EAAID,GAAA,CAAKE,EAAIO,GAAA,GAAQN,EAAR,CAAa,CAAA,CAAb,CAJJ,CAAhB,IAOA,CAAIA,EAAA,CAAK,CAAA,CAAL,CAAY5mE,EAAZ,GAAmBwB,CAAG5D,CAAAA,MAAtB,CAA+B,CAAnC,GACMiO,EACiB,CADZk5D,EAAA,CAAGC,EAAA,CAAG\/kE,EAAH,CAAH,CAAWgzC,EAAX,CACY,CAArBnnC,CAAG9N,CAAAA,IAAH,CAAQ8mE,EAAA,CAAGh8D,EAAH,CAAO+C,EAAP,CAAR,CAAqB,CAAAm6D,EAAGhoE,CAAAA,IAAH,CAAQ6mE,EAAA,CAAG\/7D,EAAH,CAAO+C,EAAP,CAAR,CAFvB,GAKIu7D,EAC2J,CADrJrC,EAAA,CAAGC,EAAA,CAAGQ,EAAA,CAAGwB,EAAH,CAAQ\/mE,EAAR,CAAYgnE,EAAZ,CAAH,CAAH,CAAwBh0B,EAAxB,CACqJ,CAA\/JyzB,EAA+J,CAA1J5B,EAAA,CAAGh8D,EAAH,CAAOs+D,EAAP,CAA0J,EAAtI,CAAsI,EAA5IpnE,EAA4I,EA9D1JklE,EAAA,CAAIJ,EAAA,CA8DwBhkC,EA9DxB,CA8D4B4lC,EA9D5B,CAAJ,CA8D0J,CAApHX,EAAoH,IAA3Gj6D,CAAG9N,CAAAA,IAAH,CAAQ0oE,EAAR,CAAA,CAAa5lC,EAAb,CAAkB4lC,EAAyF,EAApFC,EAAoF,CAA\/E9B,EAAA,CAAG\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\/GC,QAASv9C,EAAA,CAAG,sBAAH,CADsG,CAE\/Gwc,KAAM,QAFyG,CAG\/GsrC,QAAS,EAAAA,EAAkB,IAAZ,EAAAnsB,EAAA,CAAmB,IAAK,EAAxB,CAA4BA,EAASwqC,CAAAA,cAAT,CAAwBh4C,CAAxB,CAHoE,CAI\/Gua,SAA0B,GAAIo9B,EAAqBr8B,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAM,cAD4D,CAA1C,CAJqF,CAAtC,CAXnE,CAmBQ,GAAIsiE,EAAqBr8B,CAAAA,GAAzB,EAA8B6T,EAA9B,CAAsC,CACpDC,QAASv9C,EAAA,CAAG,iCAAH,CAD2C,CAEpDwc,KAAM,QAF8C,CAGpDsrC,QAAS,EAAAA,EAAkB,IAAZ,EAAAnsB,EAAA,CAAmB,IAAK,EAAxB,CAA4BA,EAASyqC,CAAAA,eAAT,CAAyBj4C,CAAzB,CAAuC,GAAT,GAAA3R,CAAA,CAAe,OAAf,CAAyB,MAAvD,CAHS,CAIpDksB,SAA0B,GAAIo9B,EAAqBr8B,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAM,uBAD4D,CAA1C,CAJ0B,CAAtC,CAnBR,CA2BRmiE,CA3BQ,EA2BoB,GAAIG,EAAqBr8B,CAAAA,GAAzB,EAA8B6T,EAA9B,CAAsC,CAChE78B,UAAW,yCADqD;AAEhE88B,QAASv9C,EAAA,CAAG,wBAAH,CAFuD,CAGhEwc,KAAM,QAH0D,CAIhEsrC,QAAS6d,CAJuD,CAKhEj9B,SAA0B,GAAIo9B,EAAqBr8B,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAM,GAD4D,CAElEid,UAAW,gBAFuD,CAA1C,CALsC,CAAtC,CA3BpB,CAFiD,CAAtC,CAJtB,CA8TH4lD,QAASA,GAAgB,CAAC,CAAE,QAAAl8D,CAAF,CAAW,MAAAzH,CAAX,CAAkB,cAAAkoD,CAAlB,CAAD,CAAoC,CAC3D,MAAuB,GAAI0b,EAAqB78B,CAAAA,GAAzB,EAA8B88B,EAA9B,CAAyE,CAC9F9lD,UAAW,uBADmF,CAE9FjE,KAAM,QAFwF,CAG9F9Z,MAAAA,CAH8F,CAI9FkoD,cAAAA,CAJ8F,CAK9FliB,SAAUv+B,CAAQlK,CAAAA,GAAR,CAAa2rD,CAAD,EACG,GAAI0a,EAAqB78B,CAAAA,GAAzB,EAA8B+S,EAA9B,CAAuC,CAC5DC,QAASmP,CAAOrO,CAAAA,OAD4C,CAE5D7U,SAA0B,GAAI49B,EAAqB78B,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CAC7DhpB,UAAW,cADkD,CAE7DioB,SAA0B,GAAI49B,EAAqB78B,CAAAA,GAAzB,EAA8B+8B,EAA9B,CAAyE,CACjG\/lD,UAAW,8BADsF,CAEjG\/d,MAAOkpD,CAAOlpD,CAAAA,KAFmF,CAGjG++C,SAAUmK,CAAOlpD,CAAAA,KAAjB++C,GAA2B\/+C,CAHsE,CAIjGgmC,SAA0B,GAAI49B,EAAqB78B,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAMooD,CAAO6a,CAAAA,IADqD,CAA1C,CAJuE,CAAzE,CAFmC,CAArC,CAFkC,CAAvC;AAapB7a,CAAOlpD,CAAAA,KAba,CADf,CALoF,CAAzE,CADoC,CAwB7DgkE,QAASA,GAAwB,CAAC,CAChC,QAAAv8D,CADgC,CAEhC,MAAAzH,CAFgC,CAGhC,cAAAkoD,CAHgC,CAAD,CAI9B,CACD,MAAuB,GAAI0b,EAAqB78B,CAAAA,GAAzB,EAA8B88B,EAA9B,CAAyE,CAC9F9lD,UAAW,uBADmF,CAE9FjE,KAAM,UAFwF,CAG9F9Z,MAAAA,CAH8F,CAI9FkoD,cAAAA,CAJ8F,CAK9FliB,SAAUv+B,CAAQlK,CAAAA,GAAR,CAAa2rD,CAAD,EACG,GAAI0a,EAAqB78B,CAAAA,GAAzB,EAA8B+8B,EAA9B,CAAyE,CAC9F\/lD,UAAW,8BADmF,CAE9F\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\/8C,CAAzB,CAA+B88C,CAA\/B,CADkD,CAA7C,CAEJ,EAFI,CAFU,CASnBE,QAASA,GAAW,EAAG,CACrB,MAAOC,GAAe3gD,CAAAA,OAAQwI,CAAAA,WAAvB,CAAoCwC,CAAD,EAASO,EAAA,CAAQ,IAAR,CAAc,IAAd,CAAoB,SAAU,EAAG,CAClF\/c,UAAA,CAAW,EAAA,EAAM,CACfwc,CAAI41C,CAAAA,UAAJ,CAAe,eAAf,CAAgC50C,CAAAA,YAAa40C,CAAAA,UAA7C,CAAwD,UAAxD,CADe,CAAjB,CAEG,GAFH,CADkF,CAAjC,CAA5C,CAIH,EAJG,CADc,CAt2jCvB,IAAIC,GAAWrmE,MAAOsD,CAAAA,MAAtB,CACIgjE,GAAYtmE,MAAOe,CAAAA,cADvB,CAEIwlE,GAAavmE,MAAO6yB,CAAAA,gBAFxB,CAGI2zC,GAAmBxmE,MAAOuiB,CAAAA,wBAH9B,CAIIkkD,GAAoBzmE,MAAOyW,CAAAA,yBAJ\/B,CAKIiwD,GAAoB1mE,MAAOiiB,CAAAA,mBAL\/B;AAMI0kD,GAAsB3mE,MAAOgC,CAAAA,qBANjC,CAOI4kE,GAAe5mE,MAAOC,CAAAA,cAP1B,CAQI4mE,GAAe7mE,MAAOsB,CAAAA,SAAUnB,CAAAA,cARpC,CASI2mE,GAAe9mE,MAAOsB,CAAAA,SAAUa,CAAAA,oBATpC,CAUI4kE,GAAkB,CAACtmE,CAAD,CAAMkC,CAAN,CAAW\/C,CAAX,CAAAmnE,EAAqBpkE,CAAA,GAAOlC,EAAP,CAAa6lE,EAAA,CAAU7lE,CAAV,CAAekC,CAAf,CAAoB,CAAE3B,WAAY,CAAA,CAAd,CAAoBE,aAAc,CAAA,CAAlC,CAAwCD,SAAU,CAAA,CAAlD,CAAwDrB,MAAAA,CAAxD,CAApB,CAAb,CAAoGa,CAAA,CAAIkC,CAAJ,CAApG,CAA+G\/C,CAV1J,CAWI7B,GAAiB,CAACrG,CAAD,CAAKC,CAAL,CAAAoG,EAAY,CAC\/B,IAAKwE,IAAIA,CAAT,GAAwB5K,EAAxB,GAA6B,EAA7B,CACMkvE,EAAazmE,CAAAA,IAAb,CAAkBzI,CAAlB,CAAsB4K,CAAtB,CAAJ,EACEwkE,EAAA,CAAgBrvE,CAAhB,CAAoB6K,CAApB,CAA0B5K,CAAA,CAAG4K,CAAH,CAA1B,CACJ,IAAIokE,EAAJ,CACE,IAASpkE,CAAT,GAAiBokE,GAAA,CAAoBhvE,CAApB,CAAjB,CACMmvE,EAAa1mE,CAAAA,IAAb,CAAkBzI,CAAlB,CAAsB4K,CAAtB,CAAJ,EACEwkE,EAAA,CAAgBrvE,CAAhB,CAAoB6K,CAApB,CAA0B5K,CAAA,CAAG4K,CAAH,CAA1B,CAEN,OAAO7K,EATwB,CAXjC,CAsBIoG,GAAgB,CAACpG,CAAD,CAAKC,CAAL,CAAAmG,EAAYyoE,EAAA,CAAW7uE,CAAX,CAAe+uE,EAAA,CAAkB9uE,CAAlB,CAAf,CAtBhC,CAuBI8uC,GAAY,CAACvjC,CAAD,CAAS8jE,CAAT,CAAAvgC,EAAqB,CACnC,IAAInkC,EAAS,EAAb,CACSC,CAAT,KAASA,CAAT,GAAiBW,EAAjB,CACM2jE,EAAazmE,CAAAA,IAAb,CAAkB8C,CAAlB,CAA0BX,CAA1B,CAAJ,EAA+D,CAA\/D,CAAuCykE,CAAQ1tD,CAAAA,OAAR,CAAgB\/W,CAAhB,CAAvC,GACED,CAAA,CAAOC,CAAP,CADF,CACiBW,CAAA,CAAOX,CAAP,CADjB,CAEF,IAAc,IAAd,EAAIW,CAAJ,EAAsByjE,EAAtB,CACE,IAASpkE,CAAT,GAAiBokE,GAAA,CAAoBzjE,CAApB,CAAjB,CAC8B,CAA5B,CAAI8jE,CAAQ1tD,CAAAA,OAAR,CAAgB\/W,CAAhB,CAAJ,EAAiCukE,EAAa1mE,CAAAA,IAAb,CAAkB8C,CAAlB,CAA0BX,CAA1B,CAAjC,GACED,CAAA,CAAOC,CAAP,CADF,CACiBW,CAAA,CAAOX,CAAP,CADjB,CAGJ;MAAOD,EAV4B,CAvBrC,CAmCI2kE,GAAa,CAACzxD,CAAD,CAAK0xD,CAAL,CAAAD,EAAaE,QAAkBA,EAAGA,CACjDA,MAAOD,EAAAC,EAAOA,GAAI3xD,CAAA2xD,CAAGT,EAAAS,CAAkB3xD,CAAlB2xD,CAAAA,CAAsBA,CAAtBA,CAAHA,CAAJA,EAA0D\/wE,CAAvB8wE,CAAuB9wE,CAAjB+wE,CAAE\/wE,QAAS+wE,EAAXA,CAAiB\/wE,EAAAA,OAA1D+wE,CAAmED,CAAnEC,CAAPA,CAAgFD,CAAI9wE,CAAAA,OAD1C+wE,CAnCnD,CA0CIC,GAAc,CAACC,CAAD,CAAK\/iE,CAAL,CAAWgjE,CAAX,CAAmBC,CAAnB,CAAAH,EAA4B,CAC5C,GAAI9iE,CAAJ,EAA4B,QAA5B,GAAY,MAAOA,EAAnB,EAAwD,UAAxD,GAAwC,MAAOA,EAA\/C,CACE,IAAK,IAAI3B,EAAT,GAAgB+jE,GAAA,CAAkBpiE,CAAlB,CAAhB,CACOuiE,EAAazmE,CAAAA,IAAb,CAAkBinE,CAAlB,CAAsB1kE,EAAtB,CAAL,EAAmCA,EAAnC,GAA2C2kE,CAA3C,EACEhB,EAAA,CAAUe,CAAV,CAAc1kE,EAAd,CAAmB,CAAEgH,IAAK,EAAAA,EAAMrF,CAAA,CAAK3B,EAAL,CAAb,CAAwB3B,WAAY,EAAEumE,CAAF,CAASf,EAAA,CAAiBliE,CAAjB,CAAuB3B,EAAvB,CAAT,CAAZ3B,EAAqDumE,CAAKvmE,CAAAA,UAAlF,CAAnB,CAEN,OAAOqmE,EANqC,CA1C9C,CAkDIG,GAAU,CAACN,CAAD,CAAMO,CAAN,CAAkBnlE,CAAlB,CAAAklE,GAA8BllE,CAAA,CAAgB,IAAP,EAAA4kE,CAAA,CAAcb,EAAA,CAASO,EAAA,CAAaM,CAAb,CAAT,CAAd,CAA4C,EAArD,CAAyDE,EAAA,CACnGK,CAAAA,CAAA,EAAeP,CAAf,EAAuBA,CAAIQ,CAAAA,UAA3B,CAAyGplE,CAAzG,CAAwCgkE,EAAA,CAAUhkE,CAAV,CAAkB,SAAlB,CAA6B,CAAE1C,MAAOsnE,CAAT,CAAclmE,WAAY,CAAA,CAA1B,CAA7B,CAD2D,CAEnGkmE,CAFmG,CAAvFM,CAlDd,CAuDIG,GAAkB,CAACC,CAAD,CAAatlE,CAAb,CAAqBK,CAArB,CAA0BklE,CAA1B,CAAAF,EAAmC,CAEvD,IADA,IAAI\/4D,GAAgB,CAAP,CAAAi5D,CAAA,CAAW,IAAK,EAAhB,CAAoBA,CAAA,CAAOrB,EAAA,CAAiBlkE,CAAjB,CAAyBK,CAAzB,CAAP,CAAuCL,CAAxE,CACSjK,GAAKuvE,CAAWtvE,CAAAA,MAAhBD,CAAyB,CADlC,CACqCgN,EAArC,CAAsD,CAAtD,EAAgDhN,EAAhD,CAAyDA,EAAA,EAAzD,CACE,GAAIgN,EAAJ,CAAgBuiE,CAAA,CAAWvvE,EAAX,CAAhB,CACEuW,EAAA,EAAUi5D,CAAA,CAAOxiE,EAAA,CAAU\/C,CAAV,CAAkBK,CAAlB,CAAuBiM,EAAvB,CAAP,CAAwCvJ,EAAA,CAAUuJ,EAAV,CAAlD,GAAwEA,EACxEi5D,EAAJ;AAAYj5D,EAAZ,EACE03D,EAAA,CAAUhkE,CAAV,CAAkBK,CAAlB,CAAuBiM,EAAvB,CACF,OAAOA,GAPgD,CAvDzD,CAgEIk5D,GAAgB,CAACrnE,CAAD,CAAMkC,CAAN,CAAW\/C,CAAX,CAAAkoE,EAAqB,CACvCf,EAAA,CAAgBtmE,CAAhB,CAAoC,QAAf,GAAA,MAAOkC,EAAP,CAA0BA,CAA1B,CAAgC,EAAhC,CAAqCA,CAA1D,CAA+D\/C,CAA\/D,CACA,OAAOA,EAFgC,CAhEzC,CAoEImxB,GAAU,CAACg3C,CAAD,CAASC,CAAT,CAAsBC,CAAtB,CAAAl3C,EACL,IAAInM,OAAJ,CAAY,CAAC2B,CAAD,CAAUC,EAAV,CAAA,EAAqB,CACtC,IAAI0hD,GAAatoE,EAADsoE,EAAW,CACzB,GAAI,CACF9iB,EAAA,CAAK6iB,CAAUljE,CAAAA,IAAV,CAAenF,EAAf,CAAL,CADE,CAEF,MAAO1D,EAAP,CAAW,CACXsqB,EAAA,CAAOtqB,EAAP,CADW,CAHY,CAA3B,CAOIisE,GAAYvoE,EAADuoE,EAAW,CACxB,GAAI,CACF\/iB,EAAA,CAAK6iB,CAAUG,CAAAA,KAAV,CAAgBxoE,EAAhB,CAAL,CADE,CAEF,MAAO1D,EAAP,CAAW,CACXsqB,EAAA,CAAOtqB,EAAP,CADW,CAHW,CAP1B,CAcIkpD,GAAQnrD,EAADmrD,EAAQnrD,EAAGgL,CAAAA,IAAH,CAAUshB,CAAA,CAAQtsB,EAAG2F,CAAAA,KAAX,CAAV,CAA8BglB,OAAQ2B,CAAAA,OAAR,CAAgBtsB,EAAG2F,CAAAA,KAAnB,CAA0B6jB,CAAAA,IAA1B,CAA+BykD,EAA\/B,CAA0CC,EAA1C,CACjD\/iB,GAAA,CAAwDrgD,CAAlDkjE,CAAkDljE,CAAtCkjE,CAAUzoE,CAAAA,KAAV,CAAgBuoE,CAAhB,CAAwBC,CAAxB,CAAsCjjE,EAAAA,IAAnD,EAAL,CAhBsC,CAAjC,CArET,CA0FIsjE,GAAoBpB,EAAA,CAAW,CACjC,CAAA,uCAAA,CAAuC,CAAC7wE,CAAD,CAAUkyE,CAAV,CAAmB,CACxD,CAAC,QAAQ,CAACprE,CAAD,CAAK7E,CAAL,CAAS,CAChB,QAAA,EAAY,MAAOjC,EAAnB,EAA8B,WAA9B,EAA6C,MAAOkyE,EAApD,CAA8DA,CAAQlyE,CAAAA,OAAtE,CAAgFiC,CAAA,EAAhF,CAAuF,UAAA,EAAc,MAAOkwE,OAArB,EAA+BA,MAAOC,CAAAA,GAAtC,CAA4CD,MAAA,CAAOlwE,CAAP,CAA5C,CAA2EowE,CAAjBvrE,CAAiBurE,CAAZvrE,CAAYurE,EAANxpE,IAAMwpE,EAAAA,KAA3E,CAAmFpwE,CAAA,EAD1J,CAAjB,CAECjC,CAFD;AAEU,QAAQ,EAAG,CAEpB8G,QAASA,EAAE,CAAC+xC,EAAD,CAAK8D,EAAL,CAASN,EAAT,CAAakf,EAAb,CAAiB+W,EAAjB,CAAqB,CAC9B,CAACj1B,QAASA,GAAE,CAACX,EAAD,CAAK61B,EAAL,CAASC,EAAT,CAAaC,EAAb,CAAiBC,EAAjB,CAAqB,CAC\/B,IAAA,CAAOD,EAAP,CAAYD,EAAZ,CAAA,CAAkB,CAChB,GAAc,GAAd,CAAIC,EAAJ,CAASD,EAAT,CAAmB,CAAA,IACbjlE,GAAKklE,EAALllE,CAAUilE,EAAVjlE,CAAe,CADF,CACKouD,GAAK4W,EAAL5W,CAAU6W,EAAV7W,CAAe,CADpB,CACuBH,GAAKr6D,IAAKohB,CAAAA,GAAL,CAAShV,EAAT,CAD5B,CAC0ColE,GAAK,EAALA,CAAWxxE,IAAKyxE,CAAAA,GAAL,CAAS,CAAT,CAAapX,EAAb,CAAkB,CAAlB,CAAsBI,GAAAA,CAAK,EAALA,CAAWz6D,IAAKU,CAAAA,IAAL,CAAU25D,EAAV,CAAemX,EAAf,EAAqBplE,EAArB,CAA0BolE,EAA1B,EAAgCplE,EAAhC,CAAXquD,EAAgE,CAAd,CAAAD,EAAA,CAAKpuD,EAAL,CAAU,CAAV,CAAkB,CAAC,CAAnB,CAAuB,CAAzEquD,CAC5Fve,GAAA,CAAGX,EAAH,CAAO61B,EAAP,CAD8KpxE,IAAKC,CAAAA,GAAL86D,CAASsW,EAATtW,CAAa\/6D,IAAKwlC,CAAAA,KAAL,CAAW4rC,EAAX,CAAgB5W,EAAhB,CAAqBgX,EAArB,CAA0BplE,EAA1B,CAA+BquD,EAA\/B,CAAbM,CAC9K,CADqO\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\/gB,CAAAA,IAA\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\/2B,EAfoB,CAlF3C,CAkGJ\/3C,EAAG4G,CAAAA,SAAU0pE,CAAAA,cAlGT,CAkG0BC,QAAQ,CAACh8B,EAAD,CAAKyiB,EAAL,CAAS5e,EAAT,CAAaC,EAAb,CAAiB,CACxD,IAAA,CAAOA,EAAGr6C,CAAAA,IAAH,CAAQg5D,EAAR,CAAA,CAAa,CAACA,EAAGuX,CAAAA,IAAjB,EAAyBl2B,EAAGz6C,CAAAA,MAA5B,CAAqC,CAArC,GAA2Cw6C,EAAlD,CAAA,CAAwD,CACtD,IADsD,IAC7CL,GAAK,CAALA,CAAS,CADoC,CACjCkf,GAAK,CAALA,CAAS,CADwB,CACrB+W,GAAK,IAAK,EADW,CACR\/kE,GAAK,CAAnD,CAAsDA,EAAtD,CAA2D+tD,EAAG9rB,CAAAA,QAASttC,CAAAA,MAAvE,CAA+EqL,EAAA,EAA\/E,CAAqF,CAAA,IAC\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\/E,GAAOL,CAAAA,MAAP,CAAciB,EAAd,CAAsB\/F,CAAAA,GAAtB,CAA0B,QAAQ,CAACke,EAAD,CAAU,CACjD,MAAO8wD,EAAA,CAA8B9wD,EAA9B,CAAuChU,EAAvC,CAD0C,CAA5C,CAD2C,CAYpDklE,QAASA,GAA+B,CAACjqE,EAAD,CAAS,CAC\/C,MAAOtC,OAAOgC,CAAAA,qBAAP;AAA+BhC,MAAOgC,CAAAA,qBAAP,CAA6BM,EAA7B,CAAqCrF,CAAAA,MAArC,CAA4C,QAAQ,CAAC6lB,EAAD,CAAS,CACjG,MAAO9iB,OAAOmC,CAAAA,oBAAqB\/B,CAAAA,IAA5B,CAAiCkC,EAAjC,CAAyCwgB,EAAzC,CAD0F,CAA7D,CAA\/B,CAEF,EAH0C,CAKjD0pD,QAASA,GAAO,CAAClqE,EAAD,CAAS,CACvB,MAAOtC,OAAO6B,CAAAA,IAAP,CAAYS,EAAZ,CAAoBL,CAAAA,MAApB,CAA2BsqE,EAAA,CAAgCjqE,EAAhC,CAA3B,CADgB,CAGzBmqE,QAASA,GAAkB,CAAC5rE,EAAD,CAAUyE,EAAV,CAAoB,CAC7C,GAAI,CACF,MAAOA,GAAP,GAAmBzE,GADjB,CAEF,MAAO2F,EAAP,CAAW,CACX,MAAO,CAAA,CADI,CAHgC,CAU\/CkmE,QAASA,GAAW,CAACpqE,EAAD,CAASY,EAAT,CAAiBmE,EAAjB,CAA0B,CAC5C,IAAIslE,GAAc,EACdtlE,GAAQ+kE,CAAAA,iBAAR,CAA0B9pE,EAA1B,CAAJ,EACEkqE,EAAA,CAAQlqE,EAAR,CAAgBiP,CAAAA,OAAhB,CAAwB,QAAQ,CAAC5O,EAAD,CAAM,CACpCgqE,EAAA,CAAYhqE,EAAZ,CAAA,CAAmBwpE,CAAA,CAA8B7pE,EAAA,CAAOK,EAAP,CAA9B,CAA2C0E,EAA3C,CADiB,CAAtC,CAIFmlE,GAAA,CAAQtpE,EAAR,CAAgBqO,CAAAA,OAAhB,CAAwB,QAAQ,CAAC5O,EAAD,CAAM,CACpC,GAVK,CAAA8pE,EAAA,CAUgBnqE,EAVhB,CAUwBK,EAVxB,CAUL,EAV0C3C,MAAOG,CAAAA,cAAeC,CAAAA,IAAtB,CAUrBkC,EAVqB,CAUbK,EAVa,CAU1C,EAVqF3C,MAAOmC,CAAAA,oBAAqB\/B,CAAAA,IAA5B,CAUhEkC,EAVgE,CAUxDK,EAVwD,CAUrF,CAGA,GAAI8pE,EAAA,CAAmBnqE,EAAnB,CAA2BK,EAA3B,CAAJ,EAAuC0E,EAAQ+kE,CAAAA,iBAAR,CAA0BlpE,EAAA,CAAOP,EAAP,CAA1B,CAAvC,CAA+E,CAnCjF,GAoC6C0E,EApChCulE,CAAAA,WAAb,CAAA,CAGIA,IAAAA;AAiCyCvlE,EAjCnBulE,CAAAA,WAAR,CAiCsBjqE,EAjCtB,CAClB,GAAA,CAA8B,UAAvB,GAAA,MAAOiqE,GAAP,CAAoCA,EAApC,CAAkDP,EAJzD,CAAA,IACE,GAAA,CAAOA,EAmCLM,GAAA,CAAYhqE,EAAZ,CAAA,CAAmB,EAAA,CAA+BL,EAAA,CAAOK,EAAP,CAA\/B,CAA4CO,EAAA,CAAOP,EAAP,CAA5C,CAAyD0E,EAAzD,CAD0D,CAA\/E,IAGEslE,GAAA,CAAYhqE,EAAZ,CAAA,CAAmBwpE,CAAA,CAA8BjpE,EAAA,CAAOP,EAAP,CAA9B,CAA2C0E,EAA3C,CAPe,CAAtC,CAUA,OAAOslE,GAjBqC,CAmB9CN,QAASA,GAAU,CAAC\/pE,EAAD,CAASY,EAAT,CAAiBmE,EAAjB,CAA0B,CAC3CA,EAAA,CAAUA,EAAV,EAAqB,EACrBA,GAAQoe,CAAAA,UAAR,CAAqBpe,EAAQoe,CAAAA,UAA7B,EAA2C6mD,CAC3CjlE,GAAQ+kE,CAAAA,iBAAR,CAA4B\/kE,EAAQ+kE,CAAAA,iBAApC,EAAyDA,EACzD\/kE,GAAQ8kE,CAAAA,6BAAR,CAAwCA,CACxC,KAAIU,GAAgBnuE,KAAMsG,CAAAA,OAAN,CAAc9B,EAAd,CAApB,CACI4pE,GAAgBpuE,KAAMsG,CAAAA,OAAN,CAAc1C,EAAd,CAEpB,OADgCuqE,GAChC,GADkDC,EAClD,CACSX,CAAA,CAA8BjpE,EAA9B,CAAsCmE,EAAtC,CADT,CAEWwlE,EAAJ,CACExlE,EAAQoe,CAAAA,UAAR,CAAmBnjB,EAAnB,CAA2BY,EAA3B,CAAmCmE,EAAnC,CADF,CAGEqlE,EAAA,CAAYpqE,EAAZ,CAAoBY,EAApB,CAA4BmE,EAA5B,CAbkC,CAtE7C,IAAI+kE,GAAoBA,QAA2B,CAACxsE,EAAD,CAAQ,CAClD,IAAA,EAAA,IAAA,EAAA,CAGA,CAAC,CAHDA,EAAA,EAG4B,QAH5B,GAGW,MAHXA,GAAA,CAMHmtE,EAN6B,CAMf\/sE,MAAOsB,CAAAA,SAAUhB,CAAAA,QAASF,CAAAA,IAA1B,CANeR,EAMf,CANe,CAAA,EAAA,CAAA,EAOV,iBAPU;AAO1BmtE,EAP0B,EAO2B,eAP3B,GAOWA,EAPX,EAAAntE,EAYpBm0C,CAAAA,QAZoB,GAYPi5B,EAZO,CAAjC,OAAO,GADkD,CAA3D,CAWIA,GADiC,UACZ,GADN,MAAOnoE,OACD,EAD0BA,MAAOooE,CAAAA,GACjC,CAAepoE,MAAOooE,CAAAA,GAAP,CAAW,eAAX,CAAf,CAA6C,KA2EtEZ,GAAWjD,CAAAA,GAAX,CAAiB8D,QAAqB,CAAC7pD,EAAD,CAAShc,EAAT,CAAkB,CACtD,GAAI,CAAC3I,KAAMsG,CAAAA,OAAN,CAAcqe,EAAd,CAAL,CACE,KAAU5sB,MAAJ,CAAU,mCAAV,CAAN,CAEF,MAAO4sB,GAAO7lB,CAAAA,MAAP,CAAc,QAAQ,CAAC0P,EAAD,CAAOnI,EAAP,CAAa,CACxC,MAAOsnE,GAAA,CAAWn\/D,EAAX,CAAiBnI,EAAjB,CAAuBsC,EAAvB,CADiC,CAAnC,CAEJ,EAFI,CAJ+C,CASxDihE,EAAQlyE,CAAAA,OAAR,CADkBi2E,EAhG4C,CADrC,CAAX,CAnXlB,CA0dIc,GAAgBlG,EAAA,CAAW,CAC7B,CAAA,mCAAA,CAAmC,CAAC7wE,CAAD,CAAUkyE,CAAV,CAAmB,CACpD,IAAI8E,CAAJ,CACIC,CADJ,CAEIC,EAFJ,CAGIC,EAHJ,CAIIC,EAJJ,CAKIC,EALJ,CAMIC,EANJ,CAOIC,EAPJ,CAQIC,EARJ,CASIC,EATJ,CAUIC,EAVJ,CAWIC,EAXJ,CAYIC,EAZJ,CAaIC,EAbJ,CAcIC,EAdJ,CAeIC,EAfJ,CAgBIC,EAhBJ,CAiBIC,EAjBJ,CAkBIC,EAlBJ,CAmBIC,EAnBJ,CAoBIC,EApBJ,CAqBIC,EArBJ,CAsBIC,EAtBJ,CAuBIC,EAvBJ,CAwBIC,EACH,UAAQ,CAACC,EAAD,CAAU,CAWjBC,QAASA,GAAc,CAACC,EAAD,CAAWrsB,EAAX,CAAqB,CACtCqsB,EAAJ,GAAiB\/xE,EAAjB,GAC+B,UAA7B,GAAI,MAAOgD,OAAOsD,CAAAA,MAAlB;AACEtD,MAAOe,CAAAA,cAAP,CAAsBguE,EAAtB,CAAgC,YAAhC,CAA8C,CAAEnvE,MAAO,CAAA,CAAT,CAA9C,CADF,CAGEmvE,EAASrH,CAAAA,UAHX,CAGwB,CAAA,CAJ1B,CAOA,OAAO,SAAQ,CAACr8C,EAAD,CAAM9kB,EAAN,CAAU,CACvB,MAAOwoE,GAAA,CAAS1jD,EAAT,CAAP,CAAuBq3B,EAAA,CAAWA,EAAA,CAASr3B,EAAT,CAAc9kB,EAAd,CAAX,CAA+BA,EAD\/B,CARiB,CAV5C,IAAIvJ,GAAyB,QAAlB,GAAA,MAAO\/G,GAAP,CAA6BA,EAA7B,CAAsD,QAAhB,GAAA,MAAOgJ,KAAP,CAA2BA,IAA3B,CAAkD,QAAhB,GAAA,MAAO,KAAP,CAA2B,IAA3B,CAAkC,EAC\/F,WAAtB,GAAI,MAAOspE,OAAX,EAAoCA,MAAOC,CAAAA,GAA3C,CACED,MAAA,CAAO,OAAP,CAAgB,CAAC,SAAD,CAAhB,CAA6B,QAAQ,CAACwG,EAAD,CAAW,CAC9CF,EAAA,CAAQC,EAAA,CAAe9xE,EAAf,CAAqB8xE,EAAA,CAAeC,EAAf,CAArB,CAAR,CAD8C,CAAhD,CADF,CAI8B,QAAvB,GAAI,MAAOzG,EAAX,EAA8D,QAA9D,GAAmC,MAAOA,EAAQlyE,CAAAA,OAAlD,CACLy4E,EAAA,CAAQC,EAAA,CAAe9xE,EAAf,CAAqB8xE,EAAA,CAAexG,CAAQlyE,CAAAA,OAAvB,CAArB,CAAR,CADK,CAGLy4E,EAAA,CAAQC,EAAA,CAAe9xE,EAAf,CAAR,CATe,CAAlB,CAAD,CAuBG,QAAQ,CAACgyE,EAAD,CAAW,CACpB,IAAIC,GAAgBjvE,MAAOyD,CAAAA,cAAvBwrE,EAAyC,CAAEprE,UAAW,EAAb,CAAzCorE,UAAsEvwE,MAAtEuwE,EAA+E,QAAQ,CAACx0E,EAAD,CAAK9C,EAAL,CAAS,CAClG8C,EAAGoJ,CAAAA,SAAH;AAAelM,EADmF,CAAhGs3E,EAEC,QAAQ,CAACx0E,EAAD,CAAK9C,EAAL,CAAS,CACpB,IAAKyF,IAAIA,EAAT,GAAezF,GAAf,CACMqI,MAAOsB,CAAAA,SAAUnB,CAAAA,cAAeC,CAAAA,IAAhC,CAAqCzI,EAArC,CAAyCyF,EAAzC,CAAJ,GACE3C,EAAA,CAAG2C,EAAH,CADF,CACWzF,EAAA,CAAGyF,EAAH,CADX,CAFkB,CAKtBgwE,EAAA,CAAaA,QAAQ,CAAC3yE,EAAD,CAAK9C,EAAL,CAAS,CAI5Bu3E,QAASA,GAAE,EAAG,CACZ,IAAK7uE,CAAAA,WAAL,CAAmB5F,EADP,CAHd,GAAkB,UAAlB,GAAI,MAAO9C,GAAX,EAAuC,IAAvC,GAAgCA,EAAhC,CACE,KAAM,KAAIuN,SAAJ,CAAc,sBAAd,CAAuCtG,MAAA,CAAOjH,EAAP,CAAvC,CAAoD,+BAApD,CAAN,CACFs3E,EAAA,CAAcx0E,EAAd,CAAkB9C,EAAlB,CAIA8C,GAAG6G,CAAAA,SAAH,CAAsB,IAAP,GAAA3J,EAAA,CAAcqI,MAAOsD,CAAAA,MAAP,CAAc3L,EAAd,CAAd,EAAmCu3E,EAAG5tE,CAAAA,SAAH,CAAe3J,EAAG2J,CAAAA,SAAlB,CAA6B,IAAI4tE,EAApE,CAPa,CAS9B7B,EAAA,CAAYrtE,MAAOiD,CAAAA,MAAnB,EAA6B,QAAQ,CAAC\/F,EAAD,CAAK,CACxC,IADwC,IAC\/BvC,EAD+B,CAC3BtC,GAAK,CADsB,CACnB+L,GAAK5F,SAAUlG,CAAAA,MAApC,CAA4CD,EAA5C,CAAiD+L,EAAjD,CAAqD\/L,EAAA,EAArD,CAA2D,CACzDsC,EAAA,CAAK6D,SAAA,CAAUnG,EAAV,CACL,KAAK+E,IAAIA,EAAT,GAAezC,GAAf,CACMqF,MAAOsB,CAAAA,SAAUnB,CAAAA,cAAeC,CAAAA,IAAhC,CAAqCzF,EAArC;AAAyCyC,EAAzC,CAAJ,GACEF,EAAA,CAAGE,EAAH,CADF,CACWzC,EAAA,CAAGyC,EAAH,CADX,CAHuD,CAM3D,MAAOF,GAPiC,CAS1CowE,GAAA,CAAUA,QAAQ,CAAC3yE,EAAD,CAAKuB,EAAL,CAAS,CACzB,IAAIgB,GAAK,EAAT,CACSE,EAAT,KAASA,EAAT,GAAezC,GAAf,CACMqF,MAAOsB,CAAAA,SAAUnB,CAAAA,cAAeC,CAAAA,IAAhC,CAAqCzF,EAArC,CAAyCyC,EAAzC,CAAJ,EAAqE,CAArE,CAAoDlB,EAAGod,CAAAA,OAAH,CAAWlc,EAAX,CAApD,GACEF,EAAA,CAAGE,EAAH,CADF,CACWzC,EAAA,CAAGyC,EAAH,CADX,CAEF,IAAU,IAAV,EAAIzC,EAAJ,EAA0D,UAA1D,GAAkB,MAAOqF,OAAOgC,CAAAA,qBAAhC,CACE,CAAA,IAAS3J,GAAK,CAAd,KAAiB+E,EAAjB,CAAsB4C,MAAOgC,CAAAA,qBAAP,CAA6BrH,EAA7B,CAAtB,CAAwDtC,EAAxD,CAA6D+E,EAAG9E,CAAAA,MAAhE,CAAwED,EAAA,EAAxE,CAC2B,CAAzB,CAAI6D,EAAGod,CAAAA,OAAH,CAAWlc,EAAA,CAAG\/E,EAAH,CAAX,CAAJ,EAA8B2H,MAAOsB,CAAAA,SAAUa,CAAAA,oBAAqB\/B,CAAAA,IAAtC,CAA2CzF,EAA3C,CAA+CyC,EAAA,CAAG\/E,EAAH,CAA\/C,CAA9B,GACE6E,EAAA,CAAGE,EAAA,CAAG\/E,EAAH,CAAH,CADF,CACesC,EAAA,CAAGyC,EAAA,CAAG\/E,EAAH,CAAH,CADf,CADF,CAIF,MAAO6E,GAVkB,CAY3BqwE,GAAA,CAAcA,QAAQ,CAAC3F,EAAD,CAAatlE,EAAb,CAAqBK,EAArB,CAA0B4kE,EAA1B,CAAgC,CAAA,IAChDvrE,GAAKwC,SAAUlG,CAAAA,MADiC,CACzBoC,GAAU,CAAL,CAAAsB,EAAA,CAASsG,EAAT,CAA2B,IAAT,GAAAilE,EAAA,CAAgBA,EAAhB,CAAuBvnE,MAAOuiB,CAAAA,wBAAP,CAAgCjgB,EAAhC;AAAwCK,EAAxC,CAAvB,CAAsE4kE,EADpE,CAC0E9sE,EAC9H,IAAuB,QAAvB,GAAI,MAAOw+D,QAAX,EAA+D,UAA\/D,GAAmC,MAAOA,QAAQkW,CAAAA,QAAlD,CACEz0E,EAAA,CAAKu+D,OAAQkW,CAAAA,QAAR,CAAiBvH,EAAjB,CAA6BtlE,EAA7B,CAAqCK,EAArC,CAA0C4kE,EAA1C,CADP,KAGE,KAAK,IAAIlvE,GAAKuvE,EAAWtvE,CAAAA,MAAhBD,CAAyB,CAAlC,CAA2C,CAA3C,EAAqCA,EAArC,CAA8CA,EAAA,EAA9C,CACE,GAAIoC,EAAJ,CAASmtE,EAAA,CAAWvvE,EAAX,CAAT,CACEqC,EAAA,EAAW,CAAL,CAAAsB,EAAA,CAASvB,EAAA,CAAGC,EAAH,CAAT,CAAuB,CAAL,CAAAsB,EAAA,CAASvB,EAAA,CAAG6H,EAAH,CAAWK,EAAX,CAAgBjI,EAAhB,CAAT,CAA+BD,EAAA,CAAG6H,EAAH,CAAWK,EAAX,CAAvD,GAA2EjI,EACjF,OAAY,EAAL,CAAAsB,EAAA,EAAUtB,EAAV,EAAgBsF,MAAOe,CAAAA,cAAP,CAAsBuB,EAAtB,CAA8BK,EAA9B,CAAmCjI,EAAnC,CAAhB,CAAwDA,EARX,CAUtD8yE,GAAA,CAAWA,QAAQ,CAAC4B,EAAD,CAAa\/pE,EAAb,CAAwB,CACzC,MAAO,SAAQ,CAAC\/C,EAAD,CAASK,EAAT,CAAc,CAC3B0C,EAAA,CAAU\/C,EAAV,CAAkBK,EAAlB,CAAuBysE,EAAvB,CAD2B,CADY,CAK3C3B,GAAA,CAAcA,QAAQ,CAAC4B,EAAD,CAAcC,EAAd,CAA6B,CACjD,GAAuB,QAAvB,GAAI,MAAOrW,QAAX,EAA+D,UAA\/D,GAAmC,MAAOA,QAAQsW,CAAAA,QAAlD,CACE,MAAOtW,QAAQsW,CAAAA,QAAR,CAAiBF,EAAjB,CAA8BC,EAA9B,CAFwC,CAInD5B,GAAA,CAAaA,QAAQ,CAAC30D,EAAD,CAAUy2D,EAAV,CAAsBzN,EAAtB,CAA0BkG,EAA1B,CAAqC,CACxDwH,QAASA,GAAK,CAAC7vE,EAAD,CAAQ,CACpB,MAAOA,GAAA,WAAiBmiE,GAAjB;AAAsBniE,EAAtB,CAA8B,IAAImiE,EAAJ,CAAO,QAAQ,CAACx7C,EAAD,CAAU,CAC5DA,EAAA,CAAQ3mB,EAAR,CAD4D,CAAzB,CADjB,CAKtB,MAAO,MAAYmiE,EAAZ,GAAiBn9C,OAAjB,EAA2B,QAAQ,CAAC2B,EAAD,CAAUC,EAAV,CAAkB,CAC1D0hD,QAASA,GAAS,CAACtoE,EAAD,CAAQ,CACxB,GAAI,CACFwlD,EAAA,CAAK6iB,EAAUljE,CAAAA,IAAV,CAAenF,EAAf,CAAL,CADE,CAEF,MAAO1D,EAAP,CAAW,CACXsqB,EAAA,CAAOtqB,EAAP,CADW,CAHW,CAO1BisE,QAASA,GAAQ,CAACvoE,EAAD,CAAQ,CACvB,GAAI,CACFwlD,EAAA,CAAK6iB,EAAA,CAAU,OAAV,CAAA,CAAmBroE,EAAnB,CAAL,CADE,CAEF,MAAO1D,EAAP,CAAW,CACXsqB,EAAA,CAAOtqB,EAAP,CADW,CAHU,CAOzBkpD,QAASA,GAAI,CAACx2C,EAAD,CAAS,CACpBA,EAAO3J,CAAAA,IAAP,CAAcshB,EAAA,CAAQ3X,EAAOhP,CAAAA,KAAf,CAAd,CAAsC6vE,EAAA,CAAM7gE,EAAOhP,CAAAA,KAAb,CAAoB6jB,CAAAA,IAApB,CAAyBykD,EAAzB,CAAoCC,EAApC,CADlB,CAGtB\/iB,EAAA,CAA8DrgD,CAAxDkjE,EAAwDljE,CAA5CkjE,EAAUzoE,CAAAA,KAAV,CAAgBuZ,EAAhB,CAAyBy2D,EAAzB,EAAuC,EAAvC,CAA4CzqE,EAAAA,IAAzD,EAAL,CAlB0D,CAArD,CANiD,CA2B1D4oE,GAAA,CAAeA,QAAQ,CAAC50D,EAAD,CAAUgQ,EAAV,CAAgB,CASrC2mD,QAASA,GAAI,CAACtrE,EAAD,CAAK,CAChB,MAAO,SAAQ,CAACmC,EAAD,CAAK,CAClB,MAAO6+C,GAAA,CAAK,CAAChhD,EAAD,CAAKmC,EAAL,CAAL,CADW,CADJ,CAKlB6+C,QAASA,GAAI,CAACuqB,EAAD,CAAK,CAChB,GAAIvhE,EAAJ,CACE,KAAM,KAAIlJ,SAAJ,CAAc,iCAAd,CAAN,CACF,IAAA,CAAOsB,EAAP,CAAA,CACE,GAAI,CACF,GAAI4H,EAAA,CAAK,CAAL,CAAQlU,EAAR,GAAegD,EAAf,CAAoByyE,EAAA,CAAG,CAAH,CAAA,CAAQ,CAAR,CAAYz1E,EAAA,CAAG,QAAH,CAAZ,CAA2By1E,EAAA,CAAG,CAAH,CAAA,CAAQz1E,EAAA,CAAG,OAAH,CAAR;CAAwB,CAACgD,EAAD,CAAMhD,EAAA,CAAG,QAAH,CAAN,GAAuBgD,EAAGkD,CAAAA,IAAH,CAAQlG,EAAR,CAAvB,CAAoC,CAA5D,EAAiEA,EAAG6K,CAAAA,IAAnH,GAA4H,CAA2BE,CAAzB\/H,EAAyB+H,CAApB\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\/B,CAT2D,CAA1C,CAUf,QAAQ,CAAC\/jE,EAAD,CAAKmqC,EAAL,CAASq0B,EAAT,CAAa+N,EAAb,CAAkB,CAChB,IAAK,EAAjB,GAAIA,EAAJ,GACEA,EADF,CACQ\/N,EADR,CAEAx+D,GAAA,CAAGusE,EAAH,CAAA,CAAUpiC,EAAA,CAAGq0B,EAAH,CAHkB,CAK9B6L,GAAA,CAAYA,QAAQ,CAACrqE,EAAD,CAAK,CAAA,IACnB7I,GAAuB,UAAvBA,GAAK,MAAOkK,OAAZlK,EAAqCkK,MAAOC,CAAAA,QADzB,CACmC6oC,GAAKhzC,EAALgzC,EAAWnqC,EAAA,CAAG7I,EAAH,CAD9C,CACsDtC,GAAK,CAClF,IAAIs1C,EAAJ,CACE,MAAOA,GAAGvtC,CAAAA,IAAH,CAAQoD,EAAR,CACT,IAAIA,EAAJ,EAA+B,QAA\/B;AAAU,MAAOA,GAAGlL,CAAAA,MAApB,CACE,MAAO,CACLyM,KAAMA,QAAQ,EAAG,CACXvB,EAAJ,EAAUnL,EAAV,EAAgBmL,EAAGlL,CAAAA,MAAnB,GACEkL,EADF,CACO,IAAK,EADZ,CAEA,OAAO,CAAE5D,MAAO4D,EAAP5D,EAAa4D,EAAA,CAAGnL,EAAA,EAAH,CAAf,CAAyB4M,KAAM,CAACzB,EAAhC,CAHQ,CADZ,CAOT,MAAM,KAAI0B,SAAJ,CAAcvK,EAAA,CAAK,yBAAL,CAAiC,iCAA\/C,CAAN,CAZuB,CAczBmzE,GAAA,CAAUA,QAAQ,CAACtqE,EAAD,CAAKY,EAAL,CAAS,CACzB,IAAIupC,GAAuB,UAAvBA,GAAK,MAAO9oC,OAAZ8oC,EAAqCnqC,EAAA,CAAGqB,MAAOC,CAAAA,QAAV,CACzC,IAAI,CAAC6oC,EAAL,CACE,MAAOnqC,GACLnL,GAAAA,CAAKs1C,EAAGvtC,CAAAA,IAAH,CAAQoD,EAAR,CAJgB,KAIH9I,EAJG,CAICs1E,GAAK,EAC\/B,IAAI,CACF,IAAA,EAAe,IAAK,EAApB,GAAQ5rE,EAAR,EAAgC,CAAhC,CAAyBA,EAAA,EAAzB,GAAsC,CAAkBa,CAAhBvK,EAAgBuK,CAAX5M,EAAG0M,CAAAA,IAAH,EAAWE,EAAAA,IAAxD,CAAA,CACE+qE,EAAGt3E,CAAAA,IAAH,CAAQgC,EAAGkF,CAAAA,KAAX,CAFA,CAGF,MAAOtB,EAAP,CAAc,CACd,IAAApC,GAAK,CAAEoC,MAAAA,EAAF,CADS,CAHhB,OAKU,CACR,GAAI,CACE5D,EAAJ,EAAU,CAACA,EAAGuK,CAAAA,IAAd,GAAuB0oC,EAAvB,CAA4Bt1C,EAAA,CAAG,QAAH,CAA5B,GACEs1C,EAAGvtC,CAAAA,IAAH,CAAQ\/H,EAAR,CAFA,CAAJ,OAGU,CACR,GAAI6D,EAAJ,CACE,KAAMA,GAAGoC,CAAAA,KAAT,CAFM,CAJF,CASV,MAAO0xE,GAnBkB,CAqB3BjC;EAAA,CAAYA,QAAQ,EAAG,CACrB,IADqB,IACZiC,GAAK,EADO,CACH33E,GAAK,CAAvB,CAA0BA,EAA1B,CAA+BmG,SAAUlG,CAAAA,MAAzC,CAAiDD,EAAA,EAAjD,CACE23E,EAAA,CAAKA,EAAG\/tE,CAAAA,MAAH,CAAU6rE,EAAA,CAAQtvE,SAAA,CAAUnG,EAAV,CAAR,CAAV,CACP,OAAO23E,GAHc,CAKvBhC,GAAA,CAAkBA,QAAQ,EAAG,CAC3B,IAD2B,IAClBrzE,GAAK,CADa,CACVtC,GAAK,CADK,CACF43E,GAAKzxE,SAAUlG,CAAAA,MAAxC,CAAgDD,EAAhD,CAAqD43E,EAArD,CAAyD53E,EAAA,EAAzD,CACEsC,EAAA,EAAM6D,SAAA,CAAUnG,EAAV,CAAcC,CAAAA,MACboC,GAAAA,CAAKgE,KAAA,CAAM\/D,EAAN,CAHa,KAGFqnE,GAAK,CAA9B,KAAiC3pE,EAAjC,CAAsC,CAAtC,CAAyCA,EAAzC,CAA8C43E,EAA9C,CAAkD53E,EAAA,EAAlD,CACE,IAAA,IAASX,GAAK8G,SAAA,CAAUnG,EAAV,CAAd,CAA6BioE,GAAK,CAAlC,CAAqC4P,GAAKx4E,EAAGY,CAAAA,MAA7C,CAAqDgoE,EAArD,CAA0D4P,EAA1D,CAA8D5P,EAAA,EAAA,CAAM0B,EAAA,EAApE,CACEtnE,EAAA,CAAGsnE,EAAH,CAAA,CAAStqE,EAAA,CAAG4oE,EAAH,CACb,OAAO5lE,GANoB,CAQ7BuzE,GAAA,CAAiBA,QAAQ,CAAC5G,EAAD,CAAK\/iE,EAAL,CAAW6rE,EAAX,CAAiB,CACxC,GAAIA,EAAJ,EAAiC,CAAjC,GAAY3xE,SAAUlG,CAAAA,MAAtB,CACE,IAAA,IAASD,GAAK,CAAd,CAAiB0V,GAAKzJ,EAAKhM,CAAAA,MAA3B,CAAmC03E,EAAnC,CAAuC33E,EAAvC,CAA4C0V,EAA5C,CAAgD1V,EAAA,EAAhD,CACM23E,CAAAA,EAAJ,EAAY33E,EAAZ,GAAkBiM,GAAlB,GAEI0rE,EACF,GADOtxE,KAAM4C,CAAAA,SAAU+C,CAAAA,KAAMjE,CAAAA,IAAtB,CAA2BkE,EAA3B,CAAiC,CAAjC,CAAoCjM,EAApC,CACP,CAAA23E,EAAA,CAAG33E,EAAH,CAAA,CAASiM,EAAA,CAAKjM,EAAL,CAHX,CAMJ,OAAOgvE,GAAGplE,CAAAA,MAAH,CAAU+tE,EAAV,EAAgBtxE,KAAM4C,CAAAA,SAAU+C,CAAAA,KAAMjE,CAAAA,IAAtB,CAA2BkE,EAA3B,CAAhB,CATiC,CAW1C4pE;EAAA,CAAWA,QAAQ,CAAC3nE,EAAD,CAAK,CACtB,MAAO,KAAA,WAAgB2nE,GAAhB,EAA4B,IAAKva,CAAAA,CAAL,CAASptD,EAAT,CAAa,IAAzC,EAAiD,IAAI2nE,EAAJ,CAAa3nE,EAAb,CADlC,CAGxB4nE,GAAA,CAAoBA,QAAQ,CAACp1D,EAAD,CAAUy2D,EAAV,CAAsBvH,EAAtB,CAAiC,CAO3DyH,QAASA,GAAI,CAACtrE,EAAD,CAAK,CACZwpC,EAAA,CAAGxpC,EAAH,CAAJ,GACE\/L,EAAA,CAAG+L,EAAH,CADF,CACW,QAAQ,CAACmC,EAAD,CAAK,CACpB,MAAO,KAAIqe,OAAJ,CAAY,QAAQ,CAACltB,EAAD,CAAKC,EAAL,CAAS,CACN,CAA5B,CAAA4hD,EAAG7gD,CAAAA,IAAH,CAAQ,CAAC0L,EAAD,CAAKmC,EAAL,CAAS7O,EAAT,CAAaC,EAAb,CAAR,CAAA,EAAiCy4E,EAAA,CAAOhsE,EAAP,CAAWmC,EAAX,CADC,CAA7B,CADa,CADxB,CADgB,CAQlB6pE,QAASA,GAAM,CAAChsE,EAAD,CAAKmC,EAAL,CAAS,CACtB,GAAI,CACG,IAAA,GAAAqnC,EAAA,CAAGxpC,EAAH,CAAA,CAAOmC,EAAP,CAMP7L,GAAGkF,CAAAA,KAAH,WAAoBsuE,GAApB,CAA+BtpD,OAAQ2B,CAAAA,OAAR,CAAgB7rB,EAAGkF,CAAAA,KAAM+zD,CAAAA,CAAzB,CAA4BlwC,CAAAA,IAA5B,CAAiC4sD,EAAjC,CAA0C7pD,EAA1C,CAA\/B,CAAmF8pD,EAAA,CAAO\/2B,EAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAAP,CAAiB7+C,EAAjB,CAP\/E,CAEF,MAAOwB,EAAP,CAAW,CACXo0E,EAAA,CAAO\/2B,EAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAAP,CAAiBr9C,EAAjB,CADW,CAHS,CAUxBm0E,QAASA,GAAO,CAACzwE,EAAD,CAAQ,CACtBwwE,EAAA,CAAO,MAAP,CAAexwE,EAAf,CADsB,CAGxB4mB,QAASA,GAAM,CAAC5mB,EAAD,CAAQ,CACrBwwE,EAAA,CAAO,OAAP,CAAgBxwE,EAAhB,CADqB,CAGvB0wE,QAASA,GAAM,CAACliE,EAAD,CAAK7H,EAAL,CAAS,CACtB,CAAI6H,EAAA,CAAG7H,EAAH,CAAA,CAAQgzC,EAAGqd,CAAAA,KAAH,EAAR,CAAoBrd,EAAGjhD,CAAAA,MAA3B,GACE83E,EAAA,CAAO72B,EAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAAP,CAAiBA,EAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAAjB,CAFoB,CA9BxB,GAAI,CAAC10C,MAAO0rE,CAAAA,aAAZ,CACE,KAAM,KAAIrrE,SAAJ,CAAc,sCAAd,CAAN;AAFyD,IAGvD0oC,GAAKq6B,EAAUzoE,CAAAA,KAAV,CAAgBuZ,EAAhB,CAAyBy2D,EAAzB,EAAuC,EAAvC,CAHkD,CAGNn3E,EAHM,CAGFkhD,GAAK,EAC9D,OAAOlhD,GAAA,CAAK,EAAL,CAASq3E,EAAA,CAAK,MAAL,CAAT,CAAuBA,EAAA,CAAK,OAAL,CAAvB,CAAsCA,EAAA,CAAK,QAAL,CAAtC,CAAsDr3E,EAAA,CAAGwM,MAAO0rE,CAAAA,aAAV,CAAtD,CAAiF,QAAQ,EAAG,CACjG,MAAO,KAD0F,CAA5F,CAEJl4E,EANwD,CAoC7D+1E,GAAA,CAAoBA,QAAQ,CAAC5qE,EAAD,CAAK,CAO\/BksE,QAASA,GAAI,CAACtrE,EAAD,CAAKgK,EAAL,CAAS,CACpB\/V,EAAA,CAAG+L,EAAH,CAAA,CAASZ,EAAA,CAAGY,EAAH,CAAA,CAAS,QAAQ,CAACmC,EAAD,CAAK,CAC7B,MAAO,CAACnJ,EAAD,CAAM,CAACA,EAAP,EAAa,CAAEwC,MAAOsuE,EAAA,CAAS1qE,EAAA,CAAGY,EAAH,CAAA,CAAOmC,EAAP,CAAT,CAAT,CAA+BtB,KAAa,QAAbA,GAAMb,EAArC,CAAb,CAAsEgK,EAAA,CAAKA,EAAA,CAAG7H,EAAH,CAAL,CAAcA,EAD9D,CAAtB,CAEL6H,EAHgB,CAPS,IAC3B\/V,EAD2B,CACvB+E,EACR,OAAO\/E,GAAA,CAAK,EAAL,CAASq3E,EAAA,CAAK,MAAL,CAAT,CAAuBA,EAAA,CAAK,OAAL,CAAc,QAAQ,CAACxzE,EAAD,CAAK,CACvD,KAAMA,GAAN,CADuD,CAA3B,CAAvB,CAEHwzE,EAAA,CAAK,QAAL,CAFG,CAEar3E,EAAA,CAAGwM,MAAOC,CAAAA,QAAV,CAFb,CAEmC,QAAQ,EAAG,CACnD,MAAO,KAD4C,CAF9C,CAIJzM,EAN4B,CAajCg2E,GAAA,CAAiBA,QAAQ,CAAC7qE,EAAD,CAAK,CAO5BksE,QAASA,GAAI,CAACtrE,EAAD,CAAK,CAChB\/L,EAAA,CAAG+L,EAAH,CAAA,CAASZ,EAAA,CAAGY,EAAH,CAAT,EAAmB,QAAQ,CAACmC,EAAD,CAAK,CAC9B,MAAO,KAAIqe,OAAJ,CAAY,QAAQ,CAAC2B,EAAD,CAAUC,EAAV,CAAkB,CAC3CjgB,EAAA;AAAK\/C,EAAA,CAAGY,EAAH,CAAA,CAAOmC,EAAP,CAAY+pE,GAAA,CAAO\/pD,EAAP,CAAgBC,EAAhB,CAAwBjgB,EAAGtB,CAAAA,IAA3B,CAAiCsB,EAAG3G,CAAAA,KAApC,CAD0B,CAAtC,CADuB,CADhB,CAOlB0wE,QAASA,GAAM,CAAC\/pD,EAAD,CAAUC,EAAV,CAAkB\/rB,EAAlB,CAAsB8L,EAAtB,CAA0B,CACvCqe,OAAQ2B,CAAAA,OAAR,CAAgBhgB,EAAhB,CAAoBkd,CAAAA,IAApB,CAAyB,QAAQ,CAAC+sD,EAAD,CAAK,CACpCjqD,EAAA,CAAQ,CAAE3mB,MAAO4wE,EAAT,CAAavrE,KAAMxK,EAAnB,CAAR,CADoC,CAAtC,CAEG+rB,EAFH,CADuC,CAbzC,GAAI,CAAC3hB,MAAO0rE,CAAAA,aAAZ,CACE,KAAM,KAAIrrE,SAAJ,CAAc,sCAAd,CAAN,CAF0B,IAGxByoC,GAAKnqC,EAAA,CAAGqB,MAAO0rE,CAAAA,aAAV,CAHmB,CAGOl4E,EACnC,OAAOs1C,GAAA,CAAKA,EAAGvtC,CAAAA,IAAH,CAAQoD,EAAR,CAAL,EAAoBA,EAAA,CAA0B,UAArB,GAAA,MAAOqqE,GAAP,CAAkCA,EAAA,CAAUrqE,EAAV,CAAlC,CAAkDA,EAAA,CAAGqB,MAAOC,CAAAA,QAAV,CAAA,EAAvD,CAA8EzM,EAA9E,CAAmF,EAAnF,CAAuFq3E,EAAA,CAAK,MAAL,CAAvF,CAAqGA,EAAA,CAAK,OAAL,CAArG,CAAoHA,EAAA,CAAK,QAAL,CAApH,CAAoIr3E,EAAA,CAAGwM,MAAO0rE,CAAAA,aAAV,CAApI,CAA+J,QAAQ,EAAG,CACnM,MAAO,KAD4L,CAA1K,CAExBl4E,EAFI,CAJqB,CAoB9Bi2E,GAAA,CAAwBA,QAAQ,CAACmC,EAAD,CAASC,EAAT,CAAc,CACxC1wE,MAAOe,CAAAA,cAAX,CACEf,MAAOe,CAAAA,cAAP,CAAsB0vE,EAAtB,CAA8B,KAA9B,CAAqC,CAAE7wE,MAAO8wE,EAAT,CAArC,CADF;AAGED,EAAOC,CAAAA,GAHT,CAGeA,EAEf,OAAOD,GANqC,CAQ9C,KAAIE,GAAqB3wE,MAAOsD,CAAAA,MAAP,CAAgB,QAAQ,CAACE,EAAD,CAAK+C,EAAL,CAAS,CACxDvG,MAAOe,CAAAA,cAAP,CAAsByC,EAAtB,CAA0B,SAA1B,CAAqC,CAAExC,WAAY,CAAA,CAAd,CAAoBpB,MAAO2G,EAA3B,CAArC,CADwD,CAAjC,CAErB,QAAQ,CAAC\/C,EAAD,CAAK+C,EAAL,CAAS,CACnB\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\/2E,CAAA,CAAG,CAAH,CADP+2E,CACe\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\/E,CAAA,CAAG,CAAH,CAAM2\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\/E,CAAD,CAASK,CAAA,CAAW,CAApB,CAAuB,CAC\/C,IAAI6B,EAAO9C,QAAX,CACI+C,EAAO\/C,QADX,CAEI+1B;AAAO,CAAC\/1B,QAFZ,CAGIg2B,GAAO,CAACh2B,QACZ,IAAoB,CAApB,CAAIY,CAAOR,CAAAA,MAAX,CAEE2C,CAEA,CAHAD,CAGA,CAHO,CAGP,CAAAkzB,EAAA,CADAD,EACA,CADO,CAHT,KAME,KAAK,MAAMh1B,EAAX,GAAoBH,EAApB,CACEkC,CAGA,CAHOzD,IAAK6uB,CAAAA,GAAL,CAASntB,EAAA,CAAM,CAAN,CAAT,CAAmB+B,CAAnB,CAGP,CAFAC,CAEA,CAFO1D,IAAK6uB,CAAAA,GAAL,CAASntB,EAAA,CAAM,CAAN,CAAT,CAAmBgC,CAAnB,CAEP,CADAgzB,EACA,CADO12B,IAAKC,CAAAA,GAAL,CAASyB,EAAA,CAAM,CAAN,CAAT,CAAmBg1B,EAAnB,CACP,CAAAC,EAAA,CAAO32B,IAAKC,CAAAA,GAAL,CAASyB,EAAA,CAAM,CAAN,CAAT,CAAmBi1B,EAAnB,CAGX,OAAiB,EAAjB,GAAI\/0B,CAAJ,CACS8+E,EAAYO,CAAAA,mBAAZ,CACL1\/E,CAAOqE,CAAAA,GAAP,CAAYs7E,EAAD,EAASn\/E,EAAIC,CAAAA,OAAJ,CAAYk\/E,EAAZ,CAAiB,EAAEz9E,CAAF,CAASizB,EAAT,EAAiB,CAAjB,EAAqBhzB,CAArB,CAA4BizB,EAA5B,EAAoC,CAApC,CAAjB,CAAyD\/0B,CAAzD,CAApB,CADK,CADT,CAKO,CACL6B,KAAAA,CADK,CAELC,KAAAA,CAFK,CAGLgzB,KAAAA,EAHK,CAILC,KAAAA,EAJK,CAKL91B,MAAOb,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYy2B,EAAZ,CAAmBjzB,CAAnB,CALF,CAML7C,OAAQZ,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAY02B,EAAZ,CAAmBjzB,CAAnB,CANH,CAvBwC,CAgC1Cy9E,mBAAY,CAAC39E,CAAD,CAAS9B,CAAT,CAAgB,CACjC,MAAM0\/E,EAAeV,EAAYW,CAAAA,eAAZ,CAA4B79E,CAA5B,CAGrB,OAAOk9E,GAAYY,CAAAA,eAAZ,CAA4B99E,CAA5B,CAAoC,CAFhC9B,CAAA,CAAM,CAAN,CAEgC,CAFrB0\/E,CAAA,CAAa,CAAb,CAEqB,CADhC1\/E,CAAA,CAAM,CAAN,CACgC,CADrB0\/E,CAAA,CAAa,CAAb,CACqB,CAApC,CAJ0B,CAM5BG,uBAAgB,CAAC\/9E,CAAD,CAASg+E,CAAT,CAAmB,CACxC,MAAM\/9E,EAAOzD,IAAKusD,CAAAA,KAAL,CAAW\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\/C,QACX,CACI+1B,EAAO,CAAC\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\/E,EAAA,EAAO7\/E,EAVX,CAcA,OAAQwxB,CAAR,EACE,KAAK,WAAL,CACA,KAAK,iBAAL,CACA,KAAK,oBAAL,CACEkuD,EAAA,EAAO3\/E,EACP,MAEF,MAAK,YAAL,CACA,KAAK,kBAAL,CACA,KAAK,qBAAL,CACE6\/E,EAAA,EAAO7\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\/C0gF,KAAMriF,CAAA,CAAO,CAAP,CADyC,CAE\/CsiF,KAAMtiF,CAAA,CAAO,CAAP,CAFyC,CAA1C,CAF0B,CAO5BuiF,uBAAgB,CAAC7iF,CAAD,CAAS,CAC9B,MAAMstB,EAAM,CAACluB,QAAD,CAAWA,QAAX,CACZY,EAAOyY,CAAAA,OAAP,CAAgBtY,CAAD,EAAW,CACxBmtB,CAAA,CAAI,CAAJ,CAAA,CAAS7uB,IAAK6uB,CAAAA,GAAL,CAASA,CAAA,CAAI,CAAJ,CAAT,CAAiBntB,CAAA,CAAM,CAAN,CAAjB,CACTmtB,EAAA,CAAI,CAAJ,CAAA,CAAS7uB,IAAK6uB,CAAAA,GAAL,CAASA,CAAA,CAAI,CAAJ,CAAT,CAAiBntB,CAAA,CAAM,CAAN,CAAjB,CAFe,CAA1B,CAIA,OAAOmtB,EANuB,CAQzBw1D,sBAAe,CAAC7gF,CAAD,CAAS8gF,CAAT,CAAiBC,CAAjB,CAA+B,CACnD,MAAMl\/E,EAAKmB,EAAA,CAAe,EAAf,CAAmBhD,CAAnB,CACLlE,EAAAA,CAAS,CAAC,CAAD,CAAI,CAAJ,CACf,OAAMklF,GAAY,EAAlB,CACMC,GAAQ,CACZ,KAAqB,CAAEx8D,GAAI,MAAN,CAAyBy8D,UAAW,CAAA,CAApC,CADT,CAEZ,KAAqB,CAAEz8D,GAAI,MAAN,CAAyBy8D,UAAW,CAAA,CAApC,CAFT,CAGZ,KAAqB,CAAEz8D,GAAI,MAAN,CAAyBy8D,UAAW,CAAA,CAApC,CAHT,CAIZ,KAAqB,CAAEz8D,GAAI,MAAN,CAAyBy8D,UAAW,CAAA,CAApC,CAJT,CAKZ,KAAqB,CAAEz8D,GAAI,MAAN,CAAyBy8D,UAAW,CAAA,CAApC,CALT,CAMZ,KAAqB,CAAEz8D,GAAI,MAAN,CAAyBy8D,UAAW,CAAA,CAApC,CANT,CADd,CASMC,GAAK,CAAC,MAAD,CAAoB,MAApB,CAAuC,MAAvC,CATX,CAUMC,GAAK,CAAC,MAAD,CAAoB,MAApB,CAAuC,MAAvC,CACLC,EAAAA,CAAcP,CAAO1+E,CAAAA,GAAP,CAAYN,EAAD;AAAQ,CACrC,MAAML,GAAK0\/E,EAAGG,CAAAA,OAAH,CACT,CAACjuE,EAAD,CAAK\/V,EAAL,CAAA,EAAY6jF,EAAG\/+E,CAAAA,GAAH,CAAO,CAACD,EAAD,CAAK8kE,EAAL,CAAA,EAAY,CAC7B,MAAMsa,GAAM1\/E,CAAA,CAAGwR,EAAH,CAANkuE,CAAez\/E,EAAA,CAAGK,EAAH,CAErB,OAAO,CACLq\/E,EAAGnuE,EADE,CAELi\/B,EAAGnwC,EAFE,CAGLo\/E,IAAAA,EAHK,CAIL38D,SALepoB,IAAKq6B,CAAAA,GAALjS,CAAS28D,EAAT38D,CACV,CAKL68D,UAAkB,CAAlBA,GAAWnkF,EAAXmkF,EAAmC,CAAnCA,GAAuBnkF,EAAvBmkF,CAA4Bxa,EALvB,CAHsB,CAAnB,CADH,CAAX,CAaMvlE,GAAK0\/E,EAAGE,CAAAA,OAAH,CACT,CAACjuE,EAAD,CAAK\/V,EAAL,CAAA,EAAY8jF,EAAGh\/E,CAAAA,GAAH,CAAO,CAACD,EAAD,CAAK8kE,EAAL,CAAA,EAAY,CAC7B,MAAMsa,GAAM1\/E,CAAA,CAAGwR,EAAH,CAANkuE,CAAez\/E,EAAA,CAAGK,EAAH,CAErB,OAAO,CACLq\/E,EAAGnuE,EADE,CAELi\/B,EAAGnwC,EAFE,CAGLo\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\/B,IAaO,CACCiiF,CAAAA,CAAgBj\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\/E,EAAYsB,CAAAA,eAAZ,CAA4BuD,CAAQ3\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\/C,EAAhD+C,CAAqD\/C,EAArD+C,CAA0D9C,EAA1D8C,CAA+D9C,EAA\/D8C,CACG,EAAT,CAAIA,EAAJ,EACEjD,CACA,CADK67E,CAAA,CAAI,CAAJ,CACL,CAAA57E,CAAA,CAAK47E,CAAA,CAAI,CAAJ,CAFP,EAGgB,CAHhB,CAGW54E,EAHX,GAIEjD,CACA,EADME,EACN,CADW+C,EACX,CAAAhD,CAAA,EAAME,EAAN,CAAW8C,EALb,CAFwB,CAU1B\/C,EAAA,CAAKiD,CAAA,CAAG,CAAH,CAAL,CAAanD,CACbG,GAAA,CAAKgD,CAAA,CAAG,CAAH,CAAL,CAAalD,CACb,OAAOC,GAAP,CAAYA,EAAZ,CAAiBC,EAAjB,CAAsBA,EAjBU,CAmB3B8jF,oBAAa,CAACplF,CAAD,CAASqgC,CAAT,CAAgB3gC,CAAhB,CAAsB2lF,CAAtB,CAAmCvvE,EAAnC,CAA2C,CAC7D,IAAIwvE,GAAYD,CAAhB,CACI7iE,GAAS,CAAC,CACd,KAAK,IAAIjjB,GAAK8gC,CAAL9gC,CAAa,CAAtB,CAAyBA,EAAzB,CAA8BG,CAA9B,CAAoCH,EAAA,EAApC,CAA0C,CACxC,MAAMgmF,GAASd,EAAYU,CAAAA,aAAZ,CAA0BnlF,CAAA,CAAOT,EAAP,CAA1B,CAAsCS,CAAA,CAAOqgC,CAAP,CAAtC,CAAqDrgC,CAAA,CAAON,CAAP,CAArD,CACX6lF;EAAJ,CAAaD,EAAb,GACE9iE,EACA,CADSjjB,EACT,CAAA+lF,EAAA,CAAYC,EAFd,CAFwC,CAO7B,CAAC,CAAd,CAAI\/iE,EAAJ,EAAmB8iE,EAAnB,CAA+BD,CAA\/B,GACuB,CAGrB,CAHI7iE,EAGJ,CAHa6d,CAGb,EAFEokD,EAAYW,CAAAA,aAAZ,CAA0BplF,CAA1B,CAAkCqgC,CAAlC,CAAyC7d,EAAzC,CAAiD6iE,CAAjD,CAA8DvvE,EAA9D,CAEF,CADAA,EAAOlW,CAAAA,IAAP,CAAYI,CAAA,CAAOwiB,EAAP,CAAZ,CACA,CAAoB,CAApB,CAAI9iB,CAAJ,CAAW8iB,EAAX,EACEiiE,EAAYW,CAAAA,aAAZ,CAA0BplF,CAA1B,CAAkCwiB,EAAlC,CAA0C9iB,CAA1C,CAAgD2lF,CAAhD,CAA6DvvE,EAA7D,CALJ,CAV6D,CAkBxD0vE,gBAAS,CAACxlF,CAAD,CAASylF,CAAA,CAAY,CAArB,CAAwB,CACtC,GAAqB,CAArB,EAAIzlF,CAAOR,CAAAA,MAAX,CACE,MAAOQ,EACWylF,EAAdJ,EAA0BI,CAChC,KAAI3hF,EAAK9D,CAAA,CAAO,CAAP,CAAT,CACI+D,EAAK\/D,CAAA,CAAO,CAAP,CACT,OAAMsgD,GAAY,CAACx8C,CAAD,CAClB,KAAK,IAAIvE,GAAK,CAAT,CAAYmM,GAAM1L,CAAOR,CAAAA,MAA9B,CAAsCD,EAAtC,CAA2CmM,EAA3C,CAAgDnM,EAAA,EAAhD,CACEwE,CACA,CADK\/D,CAAA,CAAOT,EAAP,CACL,EAAKwE,CAAA,CAAG,CAAH,CAAL,CAAaD,CAAA,CAAG,CAAH,CAAb,GAAuBC,CAAA,CAAG,CAAH,CAAvB,CAA+BD,CAAA,CAAG,CAAH,CAA\/B,GAAyCC,CAAA,CAAG,CAAH,CAAzC,CAAiDD,CAAA,CAAG,CAAH,CAAjD,GAA2DC,CAAA,CAAG,CAAH,CAA3D,CAAmED,CAAA,CAAG,CAAH,CAAnE,EAA4EuhF,CAA5E,GACE\/kC,EAAU1gD,CAAAA,IAAV,CAAemE,CAAf,CACA,CAAAD,CAAA,CAAKC,CAFP,CAKED,EAAJ,GAAWC,CAAX,EACEu8C,EAAU1gD,CAAAA,IAAV,CAAemE,CAAf,CACIrE,EAAAA,CAAO4gD,EAAU9gD,CAAAA,MAAjBE,CAA0B,CAC1BoW,EAAAA,CAAS,CAACwqC,EAAA,CAAU,CAAV,CAAD,CACfmkC,GAAYW,CAAAA,aAAZ,CAA0B9kC,EAA1B,CAAqC,CAArC,CAAwC5gD,CAAxC,CAA8C2lF,CAA9C,CAA2DvvE,CAA3D,CACAA,EAAOlW,CAAAA,IAAP,CAAY0gD,EAAA,CAAU5gD,CAAV,CAAZ,CAA6BM,CAAA,CAAOA,CAAOR,CAAAA,MAAd,CAAuB,CAAvB,CAA7B,CACA,OAAOsW,EApB+B,CAsBjC4vE,0BAAmB,CAACvlF,CAAD,CAAQH,CAAR,CAAgB6mB,CAAA,CAAW,CAA3B,CAA8B,CACtD,MAAMnb,EAAM1L,CAAOR,CAAAA,MACnB,KAAK,IAAID,GAAK,CAAd,CAAiBA,EAAjB,CAAsBmM,CAAtB,CAA2BnM,EAAA,EAA3B,CAIE,GADWiB,EAAIy9E,CAAAA,qBAAJt8E,CAFA3B,CAAA88E,CAAOv9E,EAAPu9E;AAAY,CAAZA,CAEAn7E,CADC3B,CAAAg9E,CAAOz9E,EAAPy9E,CACDr7E,CAAmCxB,CAAnCwB,CACX,CAASklB,CAAT,CACE,MAAO,CAAA,CAEX,OAAO,CAAA,CAT+C,CApGxC,CA1wBlB,CA03BI8+D,GAAalB,EACjBzV,GAAA,CAAc2W,EAAd,CAA0B,UAA1B,CAAsC,CAAC3lF,CAAD,CAASylF,CAAA,CAAY,CAArB,CAAA,EAA2B,CAC\/D,IAAM\/5E,EAAM1L,CAAOR,CAAAA,MACnB,OAAMZ,EAAKoB,CAAA,CAAO,CAAP,CAAX,CACMnB,GAAKmB,CAAA,CAAO0L,CAAP,CAAa,CAAb,CADX,CAEM,CAACnK,EAAD,CAAKC,EAAL,CAAA,CAAW5C,CAFjB,CAGM,CAAC6C,EAAD,CAAMC,EAAN,CAAA,CAAa7C,EACnB,IAAU,CAAV,CAAI6M,CAAJ,CAAa,CACX,IAAImb,GAAW,CAAf,CACIrE,GAAS,CACb,OAAM9jB,GAAM8B,EAAIu6E,CAAAA,IAAJ,CAAS,CAACr5E,EAAD,CAAOF,EAAP,CAAWC,EAAX,CAAiBF,EAAjB,CAAT,CACZ,KAAK,IAAIhC,GAAK,CAAd,CAAiBA,EAAjB,CAAsBmM,CAAtB,CAA4B,CAA5B,CAA+BnM,EAAA,EAA\/B,CAAqC,CACnC,MAAM,CAACqmF,EAAD,CAAKC,EAAL,CAAA,CAAW7lF,CAAA,CAAOT,EAAP,CAAjB,CACMoC,GAAKlD,IAAKs6B,CAAAA,GAAL,CAAS6sD,EAAT,EAAelkF,EAAf,CAAqBF,EAArB,EAA2BD,EAA3B,EAAiCskF,EAAjC,CAAsCnkF,EAAtC,EAA6CD,EAA7C,EAAoDD,EAApD,CAAyDqkF,EAAzD,EAA8D,CAA9D,CAALlkF,CAAwEjD,EAC1EmoB,GAAJ,CAAellB,EAAf,GAEAklB,EACA,CADWllB,EACX,CAAA6gB,EAAA,CAASjjB,EAHT,CAHmC,CAQrC,GAAIsnB,EAAJ,CAAe4+D,CAAf,CAGE,MAFMK,EAEC,CAFIrB,EAAYsB,CAAAA,QAAZ,CAAqB\/lF,CAAOuL,CAAAA,KAAP,CAAa,CAAb,CAAgBiX,EAAhB,CAAyB,CAAzB,CAArB,CAAkDijE,CAAlD,CAEJ,CADDO,CACC,CADIvB,EAAYsB,CAAAA,QAAZ,CAAqB\/lF,CAAOuL,CAAAA,KAAP,CAAaiX,EAAb,CAAsB,CAAtB,CAArB,CAA+CijE,CAA\/C,CACJ,CAAAK,CAAG38E,CAAAA,MAAH,CAAU68E,CAAGz6E,CAAAA,KAAH,CAAS,CAAT,CAAV,CAfE,CAkBb,MAAO,CAAC3M,CAAD,CAAKC,EAAL,CAxBwD,CAAjE,CA4BA,KAAIm9B,GAAKv9B,IAAKu9B,CAAAA,EAAd,CACIiqD,GAAMjqD,EAANiqD,CAAW,CADf,CAEIC,GAAW,CAAXA,CAAMlqD,EAFV,CASImqD,GAAe,EATnB,CAWIC,GAAU,CACZ,YAA8B,WADlB,CAEZ,SAAwB,WAFZ,CAGZ,UAA0B,WAHd;AAIZ,WAA4B,WAJhB,CAKZ,mBAAyC,aAL7B,CAMZ,oBAA2C,aAN\/B,CAOZ,gBAAmC,aAPvB,CAQZ,iBAAqC,aARzB,CASZ,0BAAgD,aATpC,CAUZ,2BAAkD,aAVtC,CAWZ,uBAA0C,aAX9B,CAYZ,wBAA4C,aAZhC,CAaZC,OAAQ,QAbI,CAcZ\/lF,OAAQ,MAdI,CAeZgmF,WAAY,MAfA,CAXd,CA8BIv\/C,GAAY,KAAA,CACPw\/C,4BAAqB,CAACziF,CAAD,CAAKC,CAAL,CAASk7D,CAAT,CAAa,CACvC,MAAM,CAAC19D,CAAD,CAAKC,EAAL,CAAA,CAAWsC,CAAjB,CACM,CAACrC,EAAD,CAAMC,EAAN,CAAA,CAAaqC,CADnB,CAEM,CAACyiF,EAAD,CAAMC,EAAN,CAAA,CAAaxnB,CACbrgE,EAAAA,CAAK2C,CAAL3C,EAAW8C,EAAX9C,CAAiB6nF,EAAjB7nF,EAAwB4C,EAAxB5C,EAA8B6C,EAA9B7C,CAAoC4nF,EAApC5nF,EAA2C6C,EAA3C7C,CAAiD6nF,EAAjD7nF,CAAuD4nF,EAAvD5nF,CAA6D8C,EAG7DP,EAAAA,CAAK,GAFCI,CAED,CAFMA,CAEN,CAFWC,EAEX,CAFgBA,EAEhB,GAFuBilF,EAEvB,CAF6B\/kF,EAE7B,GAFqCD,EAErC,CAF2CA,EAE3C;AAFiDC,EAEjD,CAFuDA,EAEvD,GAF+DF,EAE\/D,CAFoEilF,EAEpE,GAF4ED,EAE5E,CAFkFA,EAElF,CAFwFC,EAExF,CAF8FA,EAE9F,GAFsG\/kF,EAEtG,CAF4GF,EAE5G,EAALL,EAAY,CAAZA,CAAgBvC,CAAhBuC,CACAC,EAAAA,CAAK,GAFCG,CAED,CAFMA,CAEN,CAFWC,EAEX,CAFgBA,EAEhB,GAFuBC,EAEvB,CAF6B+kF,EAE7B,GAFqC\/kF,EAErC,CAF2CA,EAE3C,CAFiDC,EAEjD,CAFuDA,EAEvD,GAF+D8kF,EAE\/D,CAFqEjlF,CAErE,GAF4EilF,EAE5E,CAFkFA,EAElF,CAFwFC,EAExF,CAF8FA,EAE9F,GAFsGllF,CAEtG,CAF2GE,EAE3G,EAALL,EAAY,CAAZA,CAAgBxC,CAAhBwC,CACN,OAAO,CAACD,CAAD,CAAKC,CAAL,CAAS3C,IAAKw9B,CAAAA,KAAL,CAAW96B,CAAX,CAAgBI,CAAhB,CAAoBH,CAApB,CAAyBI,EAAzB,CAAT,CATgC,CAWlCklF,yBAAkB,CAAChjF,CAAD,CAAKC,CAAL,CAAS,CAChC,MAAMyxC,EAAK32C,IAAKs6B,CAAAA,GAAL,CAASr1B,CAAT,CAAcC,CAAd,CAAkB,CAAlB,CAALyxC,CAA4B32C,IAAKs6B,CAAAA,GAAL,CAASr1B,CAAT,CAAcC,CAAd,CAAkB,CAAlB,CAElC,OADWq4B,GACX,EADiBt4B,CACjB,CADsBC,CACtB,GAD6B,CAC7B,CADiC,CACjC,CADqCyxC,CACrC,EAD2C,EAC3C,CADgD32C,IAAKU,CAAAA,IAAL,CAAU,CAAV,CAAc,CAAd,CAAkBi2C,CAAlB,CAChD,EAHgC,CAK3BuxC,qBAAc,CAACC,CAAD,CAAK3lF,CAAL,CAAS,CACtB4lF,CAAAA,EAAM5lF,CAAN4lF,CAAWD,CAAXC,EAAiBX,EACvB,OAAO,EAAP,CAAWW,CAAX,CAAgBX,EAAhB,CAAsBW,CAFM,CAIvBC,oBAAa,CAACF,CAAD,CAAK3lF,CAAL,CAAS,CAC3B,MAAOilF,GAAP,CAAan\/C,EAAU4\/C,CAAAA,cAAV,CAAyBC,CAAzB,CAA6B3lF,CAA7B,CADc,CAGtB8lF,iBAAU,CAACH,CAAD,CAAK3lF,CAAL,CAASmD,CAAT,CAAa,CAC5B,MAAOwiF,EAAP,CAAY7\/C,EAAU4\/C,CAAAA,cAAV,CAAyBC,CAAzB,CAA6B3lF,CAA7B,CAAZ,CAA+CmD,CADnB,CAGvB4iF,iBAAU,CAACJ,CAAD,CAAK3lF,CAAL,CAAS,CACxB,MAAO8lC,GAAU4\/C,CAAAA,cAAV,CAAyBC,CAAzB,CAA6B3lF,CAA7B,CADiB,CAGnBgmF,eAAQ,CAAChoB,CAAD;AAAKn7D,CAAL,CAASC,CAAT,CAAa,CAC1B,MAAOgjC,GAAUigD,CAAAA,UAAV,CAAqBrgE,EAAYmV,CAAAA,KAAZ,CAAkBmjC,CAAlB,CAAsBn7D,CAAtB,CAArB,CAAgD6iB,EAAYmV,CAAAA,KAAZ,CAAkBmjC,CAAlB,CAAsBl7D,CAAtB,CAAhD,CADmB,CAGrBmjF,mBAAY,CAACtlF,CAAD,CAAK,CACtB,OAAQskF,EAAR,CAActkF,CAAd,EAAoBskF,EADE,CAGjBiB,0BAAmB,CAACvlF,CAAD,CAAKwlF,CAAL,CAAe,CACjCC,CAAAA,CAAMnB,EAANmB,CAAYD,CACdpL,EAAAA,CAAMv9E,IAAKwlC,CAAAA,KAAL,EAAY8C,EAAUmgD,CAAAA,YAAV,CAAuBtlF,CAAvB,CAAZ,CAAyCylF,CAAzC,CAA+C,CAA\/C,EAAoDA,CAApD,CAANrL,CAAiEqL,CAAjErL,CAAuEkK,EACvElK,EAAJ,CAAUhgD,EAAV,GACEggD,CADF,EACSkK,EADT,CAEIlK,EAAJ,CAAUhgD,EAAV,GACEggD,CADF,EACSkK,EADT,CAEA,OAAOlK,EAPgC,CASlCsL,qBAAc,CAAC1oF,CAAD,CAAKC,CAAL,CAASqE,CAAT,CAAa,CAChC,GAAIA,CAAJ,GAAWtE,CAAX,EAAiBsE,CAAjB,GAAwBrE,CAAxB,CACE,MAAO,CAAA,CACH0D,EAAAA,EAAM1D,CAAN0D,CAAW3D,CAAX2D,CAAgB0jF,EAAhB1jF,EAAuB0jF,EAE7B,OAAO1jF,EAAP,EAAay5B,EAAb,IADY94B,CACZ,CADiBtE,CACjB,CADsBqnF,EACtB,EAD6BA,EAC7B,CAAyB1jF,CALO,CAO3BglF,uBAAgB,CAAC5lF,CAAD,CAAK,CAC1B,MAAOA,EAAP,CAAYq6B,EAAZ,CAAiB,GADS,CAGrBgL,uBAAgB,CAACplC,CAAD,CAAK,CAC1B,MAAY,IAAZ,CAAOA,CAAP,CAAkBo6B,EADQ,CAGrBwrD,mBAAY,CAACvoB,CAAD,CAAKr9D,CAAL,CAASkC,CAAT,CAAaC,CAAb,CAAiB,CAC5B0jF,CAAAA,CAAQ1gD,EAAUkgD,CAAAA,QAAV,CAAmBhoB,CAAnB,CAAuBn7D,CAAvB,CAA2BC,CAA3B,CACd,OAAmB0jF,EAAnB,CAA2BvB,EAA3B,CAAYA,EAAZ,CAAOtkF,CAF2B,CAI7B8lF,mBAAY,CAAC5jF,CAAD,CAAKC,CAAL,CAASk7D,CAAT,CAAa,CACxB0oB,CAAAA,CAAUhhE,EAAYmV,CAAAA,KAAZ,CAAkBh4B,CAAlB;AAAsBm7D,CAAtB,CAGhB,OAAkB,EAAX,EAFSt4C,EAAYmV,CAAAA,KAAZ8rD,CAAkB9jF,CAAlB8jF,CAAsB7jF,CAAtB6jF,CAET,CADqBD,CACrB,CAD+B,CAC\/B,CADmC3rD,EACnC,EADyCkqD,EACzC,CAD+ClqD,EAC\/C,CAAe,CAAf,CAAmB,CAJI,CAMzB6rD,sBAAe,CAAC\/jF,CAAD,CAAKm7D,CAAL,CAASgK,CAAT,CAAa,CAC3B6e,CAAAA,CAAUnhE,EAAYmV,CAAAA,KAAZ,CAAkBmtC,CAAlB,CAAsBnlE,CAAtB,CAEVikF,EAAAA,EADUphE,EAAYmV,CAAAA,KAAZksD,CAAkB\/e,CAAlB+e,CAAsB\/oB,CAAtB+oB,CACVD,CAAsBD,CAAtBC,CAAgC,CAAhCA,CAAoC\/rD,EAApC+rD,EAA0C7B,EAA1C6B,CAAgD\/rD,EACtD,OAAOv9B,KAAKq6B,CAAAA,GAAL,CAASivD,CAAT,CAAA,CAAqB9B,EAArB,CAA2B,CAA3B,CAA+B,CAJL,CAM5BgC,uBAAgB,CAAChpB,CAAD,CAAKr9D,CAAL,CAASkC,CAAT,CAAaC,CAAb,CAAiBuoD,EAAjB,CAAuB,CAC5C,MAAM47B,GAAOnhD,EAAU2gD,CAAAA,YAAV,CAAuBzoB,CAAvB,CAA2Bn7D,CAA3B,CAA+BC,CAA\/B,CACPokF,EAAAA,CAAOphD,EAAUygD,CAAAA,YAAV,CAAuBvoB,CAAvB,CAA2Br9D,CAA3B,CAA+BkC,CAA\/B,CAAmCC,CAAnC,CAEb,OAAO,EADa,CAAPqkF,CAAAF,EAAAE,CAAWD,CAAXC,CAAkBlC,EAAlBkC,CAAwBnpB,CAAA,CAAG,CAAH,CAAxBmpB,CAAgCD,CACtC,CAAP,CAAe,CAAf,CAAmB77B,EAJyB,CAMvC+7B,2BAAoB,CAACvkF,CAAD,CAAKwoD,CAAL,CAAW,CAEpC,MAAO,EADI45B,EACJ,CADUpiF,CAAA,CAAG,CAAH,CACV,CAAP,CAAa,CAAb,CAAiB,CAACwoD,CAFkB,CAI\/Bg8B,iCAA0B,CAACC,CAAD,CAAU,CACzC,MAAIA,EAAJ,CAAwB,GAAxB,CAAc9pF,IAAKu9B,CAAAA,EAAnB,CACS,OADT,CAEWusD,CAAJ,CAAwB,GAAxB,CAAc9pF,IAAKu9B,CAAAA,EAAnB,CACE,MADF,CAEIusD,CAAJ,CAAwB,IAAxB,CAAc9pF,IAAKu9B,CAAAA,EAAnB,CACE,OADF,CAEIusD,CAAJ,CAAwB,IAAxB,CAAc9pF,IAAKu9B,CAAAA,EAAnB,CACE,MADF,CAGE,OAVgC,CApF7B,CA9BhB,CAmZIwsD,GAAgB,KAAA,CACXC,yBAAkB,CAACzoF,CAAD,CAAS,CAChC,IAAMmB;AAAKnB,CAAOqE,CAAAA,GAAP,CAAYlE,CAAD,EAAWA,CAAA,CAAM,CAAN,CAAtB,CACLiB,EAAAA,CAAKpB,CAAOqE,CAAAA,GAAP,CAAYlE,CAAD,EAAWA,CAAA,CAAM,CAAN,CAAtB,CACLuoF,EAAAA,CAAMjqF,IAAK6uB,CAAAA,GAAL,CAAS,GAAGnsB,CAAZ,CAANunF,CAAwBjqF,IAAKC,CAAAA,GAAL,CAAS,GAAGyC,CAAZ,CACxBwnF,EAAAA,CAAKlqF,IAAK6uB,CAAAA,GAAL,CAAS,GAAGlsB,CAAZ,CAALunF,CAAuBlqF,IAAKC,CAAAA,GAAL,CAAS,GAAG0C,CAAZ,CAC7B,OAAO,CAACsnF,CAAA,CAAMA,CAAN,CAAY,CAAZ,CAAgB,CAAjB,CAAoBC,CAAA,CAAKA,CAAL,CAAU,CAAV,CAAc,CAAlC,CALyB,CADhB,CAUpB3Z,GAAA,CADmBwZ,EACnB,CAA4B,UAA5B,CAAyCxoF,CAAD,EAAY,CAClD,MAAM0L,EAAM1L,CAAOR,CAAAA,MACnB,OAAOQ,EAAOqE,CAAAA,GAAP,CAAW,CAAClE,CAAD,CAAQZ,CAAR,CAAA,EAAe,CAACY,CAAD,CAAQH,CAAA,EAAQT,CAAR,CAAa,CAAb,EAAkBmM,CAAlB,CAAR,CAA1B,CAF2C,CAApD,CAIAsjE,GAAA,CALmBwZ,EAKnB,CAA4B,sBAA5B,CAAoD,CAAC1kF,CAAD,CAAKC,CAAL,CAAA,EAC3C4iB,EAAY8zD,CAAAA,GAAZ,CAAgB9zD,EAAYc,CAAAA,GAAZ,CAAgBd,EAAYnkB,CAAAA,GAAZ,CAAgBuB,CAAhB,CAAoBD,CAApB,CAAhB,CAAhB,CADT,CAGAkrE,GAAA,CARmBwZ,EAQnB,CAA4B,qBAA5B,CAAmD,CAAC1kF,CAAD,CAAKC,CAAL,CAAA,EAC1C4iB,EAAY6yD,CAAAA,GAAZ,CAAgBgP,EAAcI,CAAAA,oBAAd,CAAmC9kF,CAAnC,CAAuCC,CAAvC,CAAhB,CADT,CAGAirE,GAAA,CAXmBwZ,EAWnB,CAA4B,eAA5B,CAA6C,CAAC1kF,CAAD,CAAKC,CAAL,CAAShG,CAAT,CAAA,EAAoB,CACzD8qF,CAAAA,CAAeliE,EAAY3jB,CAAAA,GAAZ,CAAgB2jB,EAAY8zD,CAAAA,GAAZ,CAAgB9zD,EAAYc,CAAAA,GAAZ,CAAgBd,EAAYnkB,CAAAA,GAAZ,CAAgBuB,CAAhB,CAAoBD,CAApB,CAAhB,CAAhB,CAAhB,CAA2E\/F,CAA3E,CACrB,OAAO,CAAC4oB,EAAYhmB,CAAAA,GAAZ,CAAgBmD,CAAhB,CAAoB+kF,CAApB,CAAD,CAAoCliE,EAAYhmB,CAAAA,GAAZ,CAAgBoD,CAAhB,CAAoB8kF,CAApB,CAApC,CAFwD,CAAjE,CAIA7Z,GAAA,CAfmBwZ,EAenB,CAA4B,gBAA5B,CAA8C,CAACM,CAAD,CAAQ\/qF,CAAR,CAAA,EACrC+qF,CAAMzkF,CAAAA,GAAN,CAAU,CAAC,CAACP,CAAD,CAAKC,CAAL,CAAD,CAAA,EAAcykF,EAAcO,CAAAA,aAAd,CAA4BjlF,CAA5B;AAAgCC,CAAhC,CAAoChG,CAApC,CAAxB,CADT,CAGAixE,GAAA,CAlBmBwZ,EAkBnB,CAA4B,kBAA5B,CAAgD,CAACxoF,CAAD,CAASjC,CAAT,CAAA,EAAoB,CAClE,GAAoB,CAApB,CAAIiC,CAAOR,CAAAA,MAAX,CACE,KAAM7B,MAAA,CAAM,8BAAN,CAAN,CACK,GAAsB,CAAtB,GAAIqC,CAAOR,CAAAA,MAAX,CAEL,MADMsE,EACC,CADI9D,CAAA,CAAO,CAAP,CACJ,CAAA,CACL2mB,EAAYhmB,CAAAA,GAAZ,CAAgBmD,CAAhB,CAAoB,CAAC,CAAC\/F,CAAF,CAAU,CAACA,CAAX,CAApB,CADK,CAEL4oB,EAAYhmB,CAAAA,GAAZ,CAAgBmD,CAAhB,CAAoB,CAAC\/F,CAAD,CAAS,CAACA,CAAV,CAApB,CAFK,CAGL4oB,EAAYhmB,CAAAA,GAAZ,CAAgBmD,CAAhB,CAAoB,CAAC\/F,CAAD,CAASA,CAAT,CAApB,CAHK,CAIL4oB,EAAYhmB,CAAAA,GAAZ,CAAgBmD,CAAhB,CAAoB,CAAC,CAAC\/F,CAAF,CAAUA,CAAV,CAApB,CAJK,CAMF,IAAsB,CAAtB,GAAIiC,CAAOR,CAAAA,MAAX,CAAyB,CAC9B,MAAM,CAACsE,CAAD,CAAKC,CAAL,CAAA,CAAW\/D,CACjB,OAAO,CACL,GAAGwoF,EAAcO,CAAAA,aAAd,CAA4BjlF,CAA5B,CAAgCC,CAAhC,CAAoChG,CAApC,CADE,CAEL,GAAGyqF,EAAcO,CAAAA,aAAd,CAA4BhlF,CAA5B,CAAgCD,CAAhC,CAAoC\/F,CAApC,CAFE,CAFuB,CAOhC,MAAOyqF,GAAcQ,CAAAA,cAAd,CAA6BR,EAAcS,CAAAA,QAAd,CAAuBjpF,CAAvB,CAA7B,CAA6DjC,CAA7D,CAAqEwlF,CAAAA,OAArE,CACL,CAAC2F,CAAD,CAAO3pF,CAAP,CAAWupF,EAAX,CAAA,EAAqB,CA9SU,CA+SgB,CAAA,CAAAA,EAAA,EAAOvpF,CAAP,CAAY,CAAZ,EAAiBupF,EAAMtpF,CAAAA,MAAvB,CA9SjD,OAAM2pF,GAAU3oF,EAAIo+E,CAAAA,KAAJ,CA8S2BsK,CA9SjB,CAAG,CAAH,CAAV,CA8S2BA,CA9SV,CAAG,CAAH,CAAjB,CACVE,GAAAA,CAAU5oF,EAAIo+E,CAAAA,KAAJ,CAAUyK,CAAA,CAAG,CAAH,CAAV,CAAiBA,CAAA,CAAG,CAAH,CAAjB,CACZF,GAAJ,GAAgBC,EAAhB,CAEIv9D,MAAOy9D,CAAAA,KAAP,CAAaH,EAAb,CAAJ,EAA6B,CAACt9D,MAAOy9D,CAAAA,KAAP,CAAaF,EAAb,CAA9B,CACE,CADF,CACS,CAySkCF,CAzSjC,CAAG,CAAH,CAAA,CAAM,CAAN,CAAD,EAySkCA,CAzStB,CAAG,CAAH,CAAA,CAAM,CAAN,CAAZ,CAAuBG,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAAvB;AAAmCD,EAAnC,CAA6CC,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAA7C,CADT,CAGIx9D,MAAOy9D,CAAAA,KAAP,CAAaF,EAAb,CAAJ,EAA6B,CAACv9D,MAAOy9D,CAAAA,KAAP,CAAaH,EAAb,CAA9B,CACE,CADF,CACS,CAACE,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAAD,EAAYA,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAAZ,CAsSkCH,CAtSX,CAAG,CAAH,CAAA,CAAM,CAAN,CAAvB,EAAmCC,EAAnC,CAsSkCD,CAtSW,CAAG,CAAH,CAAA,CAAM,CAAN,CAA7C,CADT,EAGM\/nF,CAEN,EAFYgoF,EAEZ,CAkS2CD,CApSrB,CAAG,CAAH,CAAA,CAAM,CAAN,CAEtB,CAFiCE,EAEjC,CAF2CC,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAE3C,CAFsDA,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAEtD,CAkS2CH,CApSsB,CAAG,CAAH,CAAA,CAAM,CAAN,CAEjE,GAF8EC,EAE9E,CAFwFC,EAExF,EAAA,CAAA,CAAO,CAACjoF,CAAD,CADIioF,EACJ,EADejoF,CACf,CADoBkoF,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CACpB,EADgCA,CAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CAChC,CALP,CALA,CAHiC,CAGjC,CAHiC,IAAA,EAAA,CAgT7B,GAAqB,IAAK,EAA1B,GAAIxkF,CAAJ,CACE,KAAMlH,MAAA,CAAM,0BAAN,CAAN,CACF,MAAOkH,EAJY,CADhB,CAlB2D,CAApE,CA2BAmqE,GAAA,CA7CmBwZ,EA6CnB,CAA4B,oBAA5B,CAAkD,CAACpoF,CAAD,CAAOmpF,CAAP,CAAcj6D,CAAA,CAAU,CAAxB,CAA2Bk6C,CAAA,CAAQ,CAAnC,CAAA,EAAyC,CACnFlpE,CAAAA,CAASqmB,EAAY0zD,CAAAA,GAAZ,CAAgBj6E,CAAhB,CAAsB,CAAtB,CACf,OAAM,CAACsD,EAAD,CAAKC,EAAL,CAAA,CAAW,CAAClF,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAY4B,CAAA,CAAO,CAAP,CAAZ,CAAwBgvB,CAAxB,CAAD,CAAmC7wB,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAY4B,CAAA,CAAO,CAAP,CAAZ,CAAwBgvB,CAAxB,CAAnC,CACXk6D,EAAAA,CAAoB,EAC1B,KAAK,IAAIjqF,GAAK,CAAT,CAAY+sD,GAAO45B,EAAP55B,CAAai9B,CAA9B,CAAqChqF,EAArC,CAA0CgqF,CAA1C,CAAiDhqF,EAAA,EAAjD,CAAuD,CACrD,IAAMkqF,IAAM,CAACxD,EAAPwD,CAAalqF,EAAbkqF,CAAkBn9B,EAAlBm9B,EAA0BvD,EAAhC,CACM9hF,IAAM,CAAC6hF,EAAP7hF,EAAc7E,EAAd6E,CAAmB,CAAnBA,EAAwBkoD,EAAxBloD,EAAgC8hF,EAChCpJ,GAAAA,CAAKn2D,EAAYhmB,CAAAA,GAAZ,CAAgBL,CAAhB,CAAwB,CAACoD,EAAD,CAAMjF,IAAK0oE,CAAAA,GAAL,CAASsiB,EAAT,CAAN,CAAoB9lF,EAApB,CAAyBlF,IAAKyoE,CAAAA,GAAL,CAASuiB,EAAT,CAAzB,CAAxB,CACLC,GAAAA,CAAM\/iE,EAAYhmB,CAAAA,GAAZ,CAAgBL,CAAhB,CAAwB,CAACoD,EAAD;AAAMjF,IAAK0oE,CAAAA,GAAL,CAAS\/iE,EAAT,CAAN,CAAoBT,EAApB,CAAyBlF,IAAKyoE,CAAAA,GAAL,CAAS9iE,EAAT,CAAzB,CAAxB,CACZ,KAAMulF,GAAMhjE,EAAYw1D,CAAAA,GAAZ,CAAgBW,EAAhB,CAAoB4M,EAApB,CACN1M,GAAAA,CAAMr2D,EAAYw3D,CAAAA,KAAZ,CAAkBwL,EAAlB,CAAuBrpF,CAAvB,CAA+BqmB,EAAYq\/C,CAAAA,IAAZ,CAAiB1lE,CAAjB,CAAyBqpF,EAAzB,CAA\/B,EAAgE,CAAhE,CAAoEngB,CAApE,EACZggB,EAAkB5pF,CAAAA,IAAlB,CAAuBk9E,EAAvB,CAA2BE,EAA3B,CAAgC0M,EAAhC,CAPqD,CASvD,MAAOF,EAbkF,CAA3F,CAeAxa,GAAA,CA5DmBwZ,EA4DnB,CAA4B,qBAA5B,CAAmD,CAACpoF,CAAD,CAAOkvB,CAAA,CAAU,CAAjB,CAAoBk6C,CAAA,CAAQ,CAA5B,CAAA,EAAkC,CACnF,MAAM,CAAC3zB,CAAD,CAAKT,EAAL,CAAA,CAAWh1C,CACjB,KAAMwB,GAAK,CAALA,CAAS4nE,CACT1lE,EAAAA,CAAK,CAAC+xC,CAAD,CAAM,CAAN,CAASvmB,CAAT,CAAmB,CAAnB,CACLvrB,EAAAA,CAAK,CAAC8xC,CAAD,CAAMvmB,CAAN,CAAe8lB,EAAf,CAAoB9lB,CAApB,CACL2vC,EAAAA,CAAK,CAAC3vC,CAAD,CAAW,CAAX,CAAc8lB,EAAd,CAAmB9lB,CAAnB,CACX,OAAMs6D,GAAWpB,EAAcC,CAAAA,kBAAd,CAAiC,CAAC3kF,CAAD,CAAKC,CAAL,CAASk7D,CAAT,CAAjC,CAAjB,CACM18D,GAAKokB,EAAYw1D,CAAAA,GAAZ,CAAgBr4E,CAAhB,CAAoBC,CAApB,CADX,CAEM8lF,GAAKljE,EAAYw1D,CAAAA,GAAZ,CAAgBp4E,CAAhB,CAAoBk7D,CAApB,CAFX,CAGM6qB,GAAKnjE,EAAYw1D,CAAAA,GAAZ,CAAgBld,CAAhB,CAAoBn7D,CAApB,CAHX,CAIMimF,GAAMpjE,EAAYq\/C,CAAAA,IAAZ,CAAiBzjE,EAAjB,CAAqBqnF,EAArB,CAANG,CAAuCnoF,EAJ7C,CAKMooF,GAAMrjE,EAAYq\/C,CAAAA,IAAZ,CAAiB6jB,EAAjB,CAAqBD,EAArB,CAANI,CAAuCpoF,EACvCqoF,GAAAA,EAAMtjE,EAAYq\/C,CAAAA,IAAZ,CAAiB8jB,EAAjB,CAAqBF,EAArB,CACZ,OAAO,CACL9lF,CADK,CAELimF,EAAA,CAAMpjE,EAAYw3D,CAAAA,KAAZ,CAAkB57E,EAAlB,CAAsBqnF,EAAtB,CAAgCG,EAAhC,CAAN,CAA6CxnF,EAFxC,CAGLwB,CAHK,CAILimF,EAAA,CAAMrjE,EAAYw3D,CAAAA,KAAZ,CAAkB0L,EAAlB,CAAsBD,EAAtB,CAAgCI,EAAhC,CAAN,CAA6CH,EAJxC,CAKL5qB,CALK,CAMLgrB,EAAA,CAAMtjE,EAAYw3D,CAAAA,KAAZ,CAAkB2L,EAAlB,CAAsBF,EAAtB,CAAgCK,EAAhC,CAAN,CAA6CH,EANxC,CAb4E,CAArF,CAsBA9a,GAAA,CAlFmBwZ,EAkFnB,CAA4B,iBAA5B,CAA+C,CAACloF,CAAD,CAASF,CAAT,CAAempF,CAAf,CAAsB\/f,CAAA,CAAQ,CAA9B,CAAA,EAAoC,CACjF,MAAM0gB;AAAQvjE,EAAY0zD,CAAAA,GAAZ,CAAgBj6E,CAAhB,CAAsB,CAAtB,CAAd,CACM+pF,GAAQxjE,EAAY3jB,CAAAA,GAAZ,CAAgBknF,EAAhB,CAAuB1gB,CAAvB,CAA+B,CAA\/B,CADd,CAEMld,GAAO45B,EAAP55B,CAAai9B,CAAbj9B,CAAqB,CAC3B,OAAO1mD,MAAM4F,CAAAA,IAAN,CAAW5F,KAAA,CAAc,CAAd,CAAM2jF,CAAN,CAAX,CAA6BllF,CAAAA,GAA7B,CAAiC,CAACqJ,EAAD,CAAKnO,EAAL,CAAA,EAAY,CAC5C6qF,EAAAA,CAAQ,CAACnE,EAATmE,CAAe7qF,EAAf6qF,CAAoB99B,EAC1B,OAAM,CAAC5oD,EAAD,CAAKC,EAAL,CAAA,CAAWpE,EAAA,CAAK,CAAL,CAAS4qF,EAAT,CAAiBD,EAClC,OAAOvjE,GAAYhmB,CAAAA,GAAZ,CAAgBL,CAAhB,CAAwB,CAACoD,EAAD,CAAMjF,IAAK0oE,CAAAA,GAAL,CAASijB,EAAT,CAAN,CAAuBzmF,EAAvB,CAA4BlF,IAAKyoE,CAAAA,GAAL,CAASkjB,EAAT,CAA5B,CAAxB,CAH2C,CAA7C,CAJ0E,CAAnF,CAYA,KAAIC,GAAe,KAAA,CACVC,8BAAuB,CAACtqF,CAAD,CAAS,CACrC,GAAoB,CAApB,CAAIA,CAAOR,CAAAA,MAAX,CACE,MAAQ,wDAIV,OAAMmC,EAAK,CAAC,GAAD,CAAM,GAAG3B,CAAA,CAAO,CAAP,CAAUuL,CAAAA,KAAV,CAAgB,CAAhB,CAAmB,CAAnB,CAAT,CAAgC,GAAhC,CAAX,CACMG,EAAM1L,CAAOR,CAAAA,MACnB,KAAK,IAAID,EAAK,CAAd,CAAiBA,CAAjB,CAAsBmM,CAAtB,CAA2BnM,CAAA,EAA3B,CAAiC,CAC\/B,MAAM,CAACqmF,EAAD,CAAKC,EAAL,CAAA,CAAW7lF,CAAA,CAAOT,CAAP,CAAjB,CACM,CAACgC,EAAD,CAAKC,EAAL,CAAA,CAAWxB,CAAA,EAAQT,CAAR,CAAa,CAAb,EAAkBmM,CAAlB,CACjB\/J,EAAG\/B,CAAAA,IAAH,CAAQgmF,EAAR,CAAYC,EAAZ,EAAiBD,EAAjB,CAAsBrkF,EAAtB,EAA4B,CAA5B,EAAgCskF,EAAhC,CAAqCrkF,EAArC,EAA2C,CAA3C,CAH+B,CAKjCG,CAAG\/B,CAAAA,IAAH,CAAQ,GAAR,CACA,OAAO+B,EAAGoE,CAAAA,IAAH,CAAQ,GAAR,CAd8B,CAgBhCwkF,6BAAsB,CAACvqF,CAAD,CAAS,CACpC,GAAoB,CAApB;AAAIA,CAAOR,CAAAA,MAAX,CACE,MAAQ,wDAIV,OAAMmC,EAAK,CAAC,GAAD,CAAM,GAAG3B,CAAA,CAAO,CAAP,CAAUuL,CAAAA,KAAV,CAAgB,CAAhB,CAAmB,CAAnB,CAAT,CAAgC,GAAhC,CAAX,CACMG,EAAM1L,CAAOR,CAAAA,MACnB,KAAK,IAAID,EAAK,CAAd,CAAiBA,CAAjB,CAAsBmM,CAAtB,CAA4B,CAA5B,CAA+BnM,CAAA,EAA\/B,CAAqC,CACnC,MAAM,CAACqmF,EAAD,CAAKC,EAAL,CAAA,CAAW7lF,CAAA,CAAOT,CAAP,CAAjB,CACM,CAACgC,EAAD,CAAKC,EAAL,CAAA,CAAWxB,CAAA,CAAOT,CAAP,CAAY,CAAZ,CACjBoC,EAAG\/B,CAAAA,IAAH,CAAQgmF,EAAR,CAAYC,EAAZ,EAAiBD,EAAjB,CAAsBrkF,EAAtB,EAA4B,CAA5B,EAAgCskF,EAAhC,CAAqCrkF,EAArC,EAA2C,CAA3C,CAHmC,CAKrC,MAAOG,EAAGoE,CAAAA,IAAH,CAAQ,GAAR,CAb6B,CAe\/BykF,2BAAoB,CAACxqF,CAAD,CAASyqF,CAAA,CAAS,CAAA,CAAlB,CAAwB,CACjD,MAAM\/+E,EAAM1L,CAAOR,CAAAA,MACnB,IAAU,CAAV,CAAIkM,CAAJ,CACE,MAAQ,EAEV,KAAI9M,EAAKoB,CAAA,CAAO,CAAP,CAAT,CACInB,GAAKmB,CAAA,CAAO,CAAP,CACT,KAAMkD,GAAKlD,CAAA,CAAO,CAAP,CACP8V,GAAAA,CAAU,IAAGlX,CAAA,CAAG,CAAH,CAAMgoB,CAAAA,OAAN,CAAc,CAAd,CAAH,IAAuBhoB,CAAA,CAAG,CAAH,CAAMgoB,CAAAA,OAAN,CAAc,CAAd,CAAvB,KAA4C\/nB,EAAA,CAAG,CAAH,CAAM+nB,CAAAA,OAAN,CAAc,CAAd,CAA5C,IAAgE\/nB,EAAA,CAAG,CAAH,CAAM+nB,CAAAA,OAAN,CAC5E,CAD4E,CAAhE,IAEaA,EAAd\/nB,EAAAD,CAAG,CAAHA,CAAcgoB,CAAP1jB,EAAArE,CAAG,CAAHA,CAAO+nB,EAmCV,CAnCUA,EAAAA,OAAtB,CAA8B,CAA9B,CAFS,IAEiDA,EAAd\/nB,EAAAD,CAAG,CAAHA,CAAcgoB,CAAP1jB,EAAArE,CAAG,CAAHA,CAAO+nB,EAmC9C,CAnC8CA,EAAAA,OAAtB,CAA8B,CAA9B,CAF3B,IAGd,KAAK,IAAIrnB,GAAK,CAAT,CAAYb,GAAMgN,CAANhN,CAAY,CAA7B,CAAgCa,EAAhC;AAAqCb,EAArC,CAA0Ca,EAAA,EAA1C,CACEX,CAEA,CAFKoB,CAAA,CAAOT,EAAP,CAEL,CADAV,EACA,CADKmB,CAAA,CAAOT,EAAP,CAAY,CAAZ,CACL,CAAAuW,EAAA,EAAW,GAAwB8Q,EAAdhoB,CAAAA,CAAG,CAAHA,CAAcgoB,CAAP\/nB,EAAAA,CAAG,CAAHA,CAAO+nB,EA+BpB,CA\/BoBA,EAAAA,OAAtB,CAA8B,CAA9B,CAAF,IAA4DA,EAAdhoB,CAAAA,CAAG,CAAHA,CAAcgoB,CAAP\/nB,EAAAA,CAAG,CAAHA,CAAO+nB,EA+BxD,CA\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\/E,GAAiC56E,EAAA,EA\/jBrC,CAkoBI66E,GAAiC,CACnCj6E,KAAM,CAAA,CAD6B,CAEnCpK,KAAM,IAAK,EAFwB,CAGnCub,iBAAkB,IAAK,EAHY,CAInC1B,MAAO,CAAA,CAJ4B,CAMrCva,OAAO2jF,CAAAA,MAAP,CAAcoB,EAAd,CAIA,KAAI15E,GAAuCzB,EAAA,CAd1Bo7E,YAc0B,CAA3C,CACIC,GAA0Cr7E,EAAA,CAdzBs7E,gBAcyB,CAA2C,CACvFj7E,SAAU\/C,EAD6E,CAA3C,CAD9C,CAIIi+E,GAA8Cv7E,EAAA,CAhBzBw7E,oBAgByB,CAA+C,CAC\/Fn7E,SAxSFo7E,QAAwB,CAAC9+E,CAAD,CAAKC,CAAL,CAAS9F,CAAT,CAAe,CAIrC,GAHW,IAAK,EAGhB,GAHI6F,CAGJ,EAH4B,IAG5B,GAHqBA,CAGrB,EAAI0Q,EAAA,CAAmB1Q,CAAnB,CAAJ,EAA8BuR,EAAA,CAAkBvR,CAAlB,CAA9B,EAAuD2R,EAAA,CAAgB3R,CAAhB,CAAvD,EAA8EyR,EAAA,CAAgBzR,CAAhB,CAA9E,CACE,MAAOA,EAET,IAAI7H,KAAMsG,CAAAA,OAAN,CAAcuB,CAAd,CAAJ,CACE,MAAOG,GAAWC,CAAAA,KAAX,CAAiBJ,CAAjB,CAAqB,CAC1B7F,KAAAA,CAD0B,CAE1BoK,KAAM,CAAA,CAFoB,CAArB,CAKT,IAAIhL,CAAA,CAAcyG,CAAd,CAAJ,CACE,MAAOG,GAAWE,CAAAA,MAAX,CAAkBL,CAAlB,CAAsB,IAAK,EAA3B,CAA8B,CACnC7F,KAAAA,CADmC,CAEnCoK,KAAM,CAAA,CAF6B,CAA9B,CAKT,IAAIvJ,CAAA,CAASgF,CAAT,CAAJ,CACE,MAAOG,GAAWvJ,CAAAA,GAAX,CAAeoJ,CAAf,CAAmB,CACxB7F,KAAAA,CADwB,CAExBoK,KAAM,CAAA,CAFkB,CAAnB,CAKT,IAAIpJ,CAAA,CAAS6E,CAAT,CAAJ,CACE,MAAOG,GAAWG,CAAAA,GAAX,CAAeN,CAAf,CAAmB,CACxB7F,KAAAA,CADwB,CAExBoK,KAAM,CAAA,CAFkB,CAAnB,CA1B4B,CAuS0D,CAA\/C,CAJlD,CAOIw6E,GAA6C17E,EAAA,CAlBzB27E,mBAkByB;AAA8C,CAC7Ft7E,SArQFu7E,QAA0B,CAACj\/E,CAAD,CAAKkO,CAAL,CAAe,CAIvC,MAAI6I,GAAA,CAAU\/W,CAAV,CAAckO,CAAd,CAAJ,CACSA,CADT,CAGOlO,CAPgC,CAoQsD,CAA9C,CAPjD,CAUIk\/E,GAAgDtgF,EAAA,CAA0BkG,EAA1B,CAqCpDrL,OAAOiD,CAAAA,MAAP,CAAckI,EAAd,CAAgCs6E,EAAhC,CACA,KAAIC,GAAsB,CACxBp6E,IAAKA,QAAY,CAAC1L,CAAD,CAAQyH,CAAR,CAAiB,CAC5B7D,CAAAA,CAA+B6D,CAA\/B7D,EApDUuhF,EAqDd,OAAO,KAAIY,EAAJ,CAAoB\/lF,CAApB,CAA2BsL,EAAA,CAAuB1H,CAAvB,CAA3B,CAAuDA,CAAG9C,CAAAA,IAA1D,CAAgE,CAAA,CAAhE,CAAsE8C,CAAGgR,CAAAA,MAAzE,CAFyB,CADV,CAKxB7N,MAAOA,QAAc,CAACyT,CAAD,CAAgB\/S,CAAhB,CAAyB,CACxC7D,CAAAA,CAA+B6D,CAA\/B7D,EAxDUuhF,EAyDd,OAAO,CAA4B,CAAA,CAA3B,GAAAp8E,EAAYiN,CAAAA,UAAZ,EAAiD,CAAA,CAAjD,GAAoCpS,CAAG+W,CAAAA,KAAvC,CAAyDuC,EAAzD,CAA6E3C,EAA9E,EAAqGC,CAArG,CAAoHlP,EAAA,CAAuB1H,CAAvB,CAApH,CAAgJA,CAAG9C,CAAAA,IAAnJ,CAFqC,CALtB,CASxBvD,IAAKA,QAAY,CAACid,CAAD,CAAgB\/S,CAAhB,CAAyB,CACpC7D,CAAAA,CAA+B6D,CAA\/B7D,EA5DUuhF,EA6Dd,OAAO,KAAIa,EAAJ,CAAkBxrE,CAAlB,CAAiClP,EAAA,CAAuB1H,CAAvB,CAAjC,CAA6DA,CAAG9C,CAAAA,IAAhE,CAFiC,CATlB,CAaxBmG,IAAKA,QAAY,CAACuT,CAAD,CAAgB\/S,CAAhB,CAAyB,CACpC7D,CAAAA,CAA+B6D,CAA\/B7D,EAhEUuhF,EAiEd,OAAO,KAAIc,EAAJ,CAAkBzrE,CAAlB,CAAiClP,EAAA,CAAuB1H,CAAvB,CAAjC,CAA6DA,CAAG9C,CAAAA,IAAhE,CAFiC,CAblB,CAiBxBkG,OAAQA,QAAe,CAACnE,CAAD,CAAQmlE,CAAR,CAAoBvgE,CAApB,CAA6B,CAC1B,GAA2B,CAAA,CAA3B,GAAAsB,EAAYiN,CAAAA,UAAZ,EAAmF,CAAA,CAAnF,IAAgD,IAAX,EAAAvO,CAAA,CAAkB,IAAK,EAAvB,CAA2BA,CAAQkT,CAAAA,KAAxE,EAA2F,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAA3F,KAAA,CAA6H,IAAA,EAAA,EAAA,CAyiDnJurE,EAziDmJ,CAyiDpIC,EACnB5mF,EAAA,EACAmD,EAAA,CAASoU,EAAA,CAAmBpU,CAAnB,CA3iD8I+E,CA2iD9I,CACT,EAAA,CAA0E,IAAnE,GAAC0+E,EAAD,CAAwDl9E,CAA\/Bi9E,EAA+Bj9E,CAAfvG,CAAA,CAAOqU,EAAP,CAAe9N,EAAAA,MAAxD;AAA0Ek9E,EAA1E,CAAiGD,EAAcj9E,CAAAA,MAA\/G,CAAwH,IAAImN,KAAJ,CAAU1T,CAAV,CAAkB0jF,EAAlB,CA5iDrG,CAAxB,MAAO3vE,GAAA,CAAiB,CAAjB,CAAsL5T,CAAtL,CAA6LmlE,CAA7L,CAD2C,CAjB5B,CAoBxB78D,IAAqB5F,EAAA,CAA0B8\/E,EAA1B,CApBG,CAqBxBL,QAAyBz\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\/\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\/gF,CAAD,CAAU,CAC\/B,IAAKgG,CAAAA,kBAAL;AAA0BC,EAAkBE,CAAAA,aAC5C,KAAKM,CAAAA,UAAL,CAAkB,EAClB,KAAKQ,CAAAA,aAAL,CAAqB,IAErB,KAAKmC,CAAAA,uBAAL,CADA,IAAKK,CAAAA,gBACL,CADwB,CAAA,CAExB,KAAKtB,CAAAA,UAAL,CAAkC,IAAI7N,GAGtC,KAAKwP,CAAAA,eAAL,CADA,IAAK3C,CAAAA,MACL,CAFA,IAAKW,CAAAA,UAEL,CAFkB,CAGlB,KAAKO,CAAAA,oBAAL,CAA4BpC,EAAkBC,CAAAA,WAC9C,KAAKgB,CAAAA,iBAAL,CAAyB,CACzB,KAAKu4E,CAAAA,MAAL,CAAc,IAAIj4E,EAAJ,CAAoB,IAApB,CAEd,KAAKw5E,CAAAA,YAAL,CADA,IAAKvxE,CAAAA,KACL,CADa,IAAK,EAGlB,KAAKwxE,CAAAA,gBAAL,CADA,IAAKC,CAAAA,YACL,CADoB,CAAA,CAGpB,KAAKC,CAAAA,OAAL,CADA,IAAKp7E,CAAAA,UACL,CADkB,IAAK,EAEvB,KAAKoL,CAAAA,UAAL,CAAkBC,EAAUC,CAAAA,IAM5B,KAAKorE,CAAAA,MAAL,CADA,IAAKC,CAAAA,KACL,CAFA,IAAK0E,CAAAA,UAEL,CAHA,IAAKC,CAAAA,iBAGL,CAJA,IAAKC,CAAAA,OAIL,CALA,IAAKC,CAAAA,MAKL;AALc,IAAK,EAMdvhF,EAAQsC,CAAAA,GAAb,EACEtL,CAAA,CAAI,EAAJ,CAEF,KAAK+O,CAAAA,UAAL,CAAkB\/F,CAAQsC,CAAAA,GAC1B,KAAKmN,CAAAA,KAAL,CAAazP,CAAQ3G,CAAAA,IAArB,EAAuE,eACnE2G,EAAQR,CAAAA,GAAZ,GACE,IAAK2hF,CAAAA,OADP,CACiB1\/E,EAAA,CAA8C,sBAA9C,CAAsEzB,CAAQR,CAAAA,GAA9E,CADjB,CAGA,KAAK8hF,CAAAA,OAAL,CAAethF,CAAQmN,CAAAA,MAAvB,GAAkCnN,CAAQ2N,CAAAA,iBAAR,EAA6B3N,CAAQ4+E,CAAAA,MAArC,CAA8ChxE,EAASC,CAAAA,UAAvD,CAAoED,EAAA,CAAS,SAAT,CAAtG,CACA,KAAK2zE,CAAAA,MAAL,CAAcvhF,CAAQgH,CAAAA,OACtB,KAAKq6E,CAAAA,iBAAL,CAAyBrhF,CAAQwhF,CAAAA,gBACjC,KAAKJ,CAAAA,UAAL,CAAkB,CAAC,CAACphF,CAAQyhF,CAAAA,SArCG,CAuCjC,IAAI9E,EAASoE,CAAe9mF,CAAAA,SAC5B0iF,EAAOr0E,CAAAA,cAAP,CAAwBo5E,QAAuB,EAAG,CAChDt3E,EAAA,CAAsB,IAAtB,CADgD,CAGlDuyE,EAAO3yE,CAAAA,IAAP,CAAc4yE,QAAa,EAAG,CACxB,IAAKF,CAAAA,KAAT,EACE,IAAKA,CAAAA,KAAMxyE,CAAAA,OAAX,CAAmB,QAAQ,CAACa,CAAD,CAAW,CACpC,MAAOA,EAAA,EAD6B,CAAtC,CAF0B,CAO9B4xE,EAAOjzE,CAAAA,KAAP,CAAemzE,QAAc,EAAG,CAC1B,IAAKJ,CAAAA,MAAT,EACE,IAAKA,CAAAA,MAAOvyE,CAAAA,OAAZ,CAAoB,QAAQ,CAACa,CAAD,CAAW,CACrC,MAAOA,EAAA,EAD8B,CAAvC,CAF4B,CAOhC4xE;CAAOr6E,CAAAA,GAAP,CAAa89E,QAAa,EAAG,CACvB,IAAKc,CAAAA,YAAT,EACElqF,CAAA,CAAI,EAAJ,CAAQ,IAAKyY,CAAAA,KAAb,CAAoB,IAAK1J,CAAAA,UAAzB,CAEF,IAA4B,CAA5B,GAAIzE,EAAYgG,CAAAA,OAAhB,EAA0D,CAA1D,GAAiC,IAAKa,CAAAA,UAAWtW,CAAAA,IAAjD,EAAgE,IAAKuvF,CAAAA,UAArE,CASE,IADAv3E,EAAA,CAAe,IAAf,CACI,CAAA\/D,EAAA,CAAc,IAAd,CAAJ,CAAyB,CACvB,IAAI67E,EAAsBrgF,EAAYyI,CAAAA,eAClC,KAAKq3E,CAAAA,UAAT,EAAuB,CAACO,CAAxB,GACErgF,EAAYyI,CAAAA,eADd,CACgC,IADhC,CAGI,KAAK63E,CAAAA,eAAL,EAAJ,EACEz3E,EAAA,CAAyB,IAAzB,CAEF7I,GAAYyI,CAAAA,eAAZ,CAA8B43E,CARP,CAAzB,CATF,IACM77E,GAAA,CAAc,IAAd,CAAJ,GACE,IAAK+7E,CAAAA,uBAAL,EAGA,CAFAr9E,EAAA,EAEA,CADA,IAAKi7E,CAAAA,MACL,CADc,IAAKqC,CAAAA,aAAL,CAAmB,CAAA,CAAnB,CACd,CAAAt8E,EAAA,EAJF,CAmBE+B,EAAAA,CAAS,IAAKk4E,CAAAA,MAClB,IAAsBl4E,CAAtB,WAqImBC,GArInB,CACE,KAAMD,EAAOw6E,CAAAA,KAAb,CAEF,MAAOx6E,EA5BoB,CA8B7Bo1E,EAAOn9E,CAAAA,GAAP,CAAaqgF,QAAa,CAACtnF,CAAD,CAAQ,CAChC,GAAI,IAAK4oF,CAAAA,OAAT,CAAkB,CACZ,IAAKF,CAAAA,gBAAT,EACEjqF,CAAA,CAAI,EAAJ,CAAQ,IAAKyY,CAAAA,KAAb,CAEF;IAAKwxE,CAAAA,gBAAL,CAAwB,CAAA,CACxB,IAAI,CACF,IAAKE,CAAAA,OAAQpoF,CAAAA,IAAb,CAAkB,IAAKwoF,CAAAA,MAAvB,CAA+BhpF,CAA\/B,CADE,CAAJ,OAEU,CACR,IAAK0oF,CAAAA,gBAAL,CAAwB,CAAA,CADhB,CAPM,CAAlB,IAWEjqF,EAAA,CAAI,EAAJ,CAAQ,IAAKyY,CAAAA,KAAb,CAZ8B,CAelCktE,EAAOiF,CAAAA,eAAP,CAAyBI,QAAwB,EAAG,CAClD,IAAI50E,EAAW,IAAKqyE,CAAAA,MAApB,CACIwC,EAAe,IAAKj8E,CAAAA,kBAApBi8E,GAA2Ch8E,EAAkBE,CAAAA,aADjE,CAEIrG,GAAW,IAAKgiF,CAAAA,aAAL,CAAmB,CAAA,CAAnB,CAEf,IADI90E,CACJ,CADci1E,CACd,EADgD70E,CAChD,WA4GmB5F,GA5GnB,EAD+E1H,EAC\/E,WA4GmB0H,GA5GnB,EAD4F,CAAC,IAAK85E,CAAAA,OAAL,CAAal0E,CAAb,CAAuBtN,EAAvB,CAC7F,CACE,IAAK2\/E,CAAAA,MAAL,CAAc3\/E,EAYhB,OAAOkN,EAlB2C,CAoBpD2vE,EAAOmF,CAAAA,aAAP,CAAuBI,QAAsB,CAAC51E,CAAD,CAAQ,CACnD,IAAK40E,CAAAA,YAAL,CAAoB,CAAA,CACpB,KAAIr7E,EAAOjB,EAAA,CAAuB,CAAA,CAAvB,CAEX,IAAI0H,CAAJ,CACE,IAAAlI,GAAM0C,EAAA,CAAqB,IAArB,CAA2B,IAAKf,CAAAA,UAAhC,CAA4C,IAAKw7E,CAAAA,MAAjD,CADR,KAGE,IAA2C,CAAA,CAA3C,GAAIjgF,EAAYsF,CAAAA,sBAAhB,CACExC,EAAA,CAAM,IAAK2B,CAAAA,UAAWhN,CAAAA,IAAhB,CAAqB,IAAKwoF,CAAAA,MAA1B,CADR;IAGE,IAAI,CACFn9E,EAAA,CAAM,IAAK2B,CAAAA,UAAWhN,CAAAA,IAAhB,CAAqB,IAAKwoF,CAAAA,MAA1B,CADJ,CAEF,MAAO1sF,EAAP,CAAW,CACXuP,EAAA,CAAM,IAAIoD,EAAJ,CAAoB3S,EAApB,CADK,CAjRnByM,EAAYoD,CAAAA,iBAAZ,CAsRuBmB,CACrB,KAAKq7E,CAAAA,YAAL,CAAoB,CAAA,CACpB,OAAO98E,GAnB4C,CAqBrDu4E,EAAO\/yE,CAAAA,QAAP,CAAkBu4E,QAAiB,EAAG,CAC\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\/\/B,EAAc+\/B,EAAAA,OAAjF,GACEngC,EADF,CACwB,CAAA,CADxB,CAGA,IAAKA,EAAL,CAOO,CAAA,GAAIC,CAAQE,CAAAA,aAAZ,CAKL,MAJAF,EAAQC,CAAAA,mBAIOC,EAJgB,CAIhBA,CAHVF,CAAQE,CAAAA,aAAc82E,CAAAA,SAGZ92E,GAFbF,CAAQE,CAAAA,aAAc82E,CAAAA,SAET92E,CAFqB,EAErBA,EAARF,CAAQE,CAAAA,aAEfF,EAAQC,CAAAA,mBAAR,CAA8B,CAC9B,OAAOD,EAAQE,CAAAA,aAAf,CAA+C,IAAIC,EAR9C,CANLyD,UAAA,CAAW,QAAQ,EAAG,CACf9D,EAAL,EACE7R,CAAA,CAAI,EAAJ,CAFkB,CAAtB,CAIG,CAJH,CAKA,OAAO,KAAIkS,EAd8B,CAAX,EAhNlC,CA6VIkD,GAA2B,QAAQ,EAAG,CACxCy2E,QAASA,EAAS,CAACpzE,CAAD,CAAQqzE,CAAR,CAAuBC,EAAvB,CAAsCC,EAAtC,CAA2D,CAC7D,IAAK,EAAnB,GAAIvzE,CAAJ,GACEA,CADF,CAC8C,UAD9C,CAMA,KAAKuzE,CAAAA,mBAAL,CADA,IAAKD,CAAAA,aACL;AAFA,IAAKD,CAAAA,aAEL,CAHA,IAAKrzE,CAAAA,KAGL,CAHa,IAAK,EAIlB,KAAKhJ,CAAAA,UAAL,CAAkB,EAClB,KAAKQ,CAAAA,aAAL,CAAqB,EACrB,KAAKjB,CAAAA,kBAAL,CAA0BC,EAAkBE,CAAAA,aAG5C,KAAKe,CAAAA,iBAAL,CADA,IAAKC,CAAAA,MACL,CAFA,IAAKW,CAAAA,UAEL,CAFkB,CAMlB,KAAKm7E,CAAAA,UAAL,CADA,IAAKC,CAAAA,eACL,CAFA,IAAKC,CAAAA,YAEL,CAHA,IAAK92E,CAAAA,WAGL,CAHmB,CAAA,CAInB,KAAK8E,CAAAA,UAAL,CAAkBC,EAAUC,CAAAA,IAC5B,KAAK5B,CAAAA,KAAL,CAAaA,CACb,KAAKqzE,CAAAA,aAAL,CAAqBA,CACrB,KAAKC,CAAAA,aAAL,CAAqBA,EACrB,KAAKC,CAAAA,mBAAL,CAA2BA,EAtBgD,CAwB7E,IAAIrG,EAASkG,CAAU5oF,CAAAA,SACvB0iF,EAAOr0E,CAAAA,cAAP,CAAwBo5E,QAAuB,EAAG,CAChD,IAAKj1E,CAAAA,SAAL,EADgD,CAGlDkwE,EAAOlwE,CAAAA,SAAP,CAAmB22E,QAAkB,EAAG,CACjC,IAAKD,CAAAA,YAAV,GACE,IAAKA,CAAAA,YA4HT,CA5HwB,CAAA,CA4HxB,CA3HI7hF,EAAYqH,CAAAA,gBAAiBtX,CAAAA,IAA7B,CAAkC,IAAlC,CA2HJ;AAA0B,CAA1B,CAAIiQ,EAAYgG,CAAAA,OAAhB,EAA+BhG,EAAYsH,CAAAA,kBAA3C,EAGAU,EAAA,CAAkBC,EAAlB,CAhIE,CADsC,CAOxCozE,EAAOxwE,CAAAA,WAAP,CAAqBk3E,QAAoB,EAAG,CAC1C,MAAO,KAAKF,CAAAA,YAD8B,CAG5CxG,EAAOhyE,CAAAA,YAAP,CAAsB24E,QAAqB,EAAG,CAC5C,GAAI,CAAC,IAAKj3E,CAAAA,WAAV,CAAuB,CACrB7H,EAAA,EACA,KAAK2+E,CAAAA,YAAL,CAAoB,CAAA,CACpB,KAAIt9E,EAAOvE,EAAYyI,CAAAA,eACvBzI,GAAYyI,CAAAA,eAAZ,CAA8B,IAC9B,IAAIjE,EAAA,CAAc,IAAd,CAAJ,CAAyB,CACvB,IAAKo9E,CAAAA,eAAL,CAAuB,CAAA,CACvB,IAAI,CACF,IAAKJ,CAAAA,aAAL,EADE,CAQF,MAAOjuF,CAAP,CAAW,CACX,IAAK0uF,CAAAA,4BAAL,CAAkC1uF,CAAlC,CADW,CAVU,CAczByM,EAAYyI,CAAAA,eAAZ,CAA8BlE,CAC9BL,GAAA,EApBqB,CADqB,CAwB9Cm3E,EAAOrwE,CAAAA,KAAP,CAAek3E,QAAc,CAACnrF,CAAD,CAAK,CAChC,GAASgU,CAAL,IAAKA,CAAAA,WAAT,CAAA,CAGA7H,EAAA,EAUA,KAAKy+E,CAAAA,UAAL,CAAkB,CAAA,CAClB,KAAIQ,EAAeniF,EAAYyI,CAAAA,eAC\/BzI,GAAYyI,CAAAA,eAAZ,CAA8B,IAC1BxC,EAAAA,CAAST,EAAA,CAAqB,IAArB,CAA2BzO,CAA3B,CAA+B,IAAK,EAApC,CACbiJ,GAAYyI,CAAAA,eAAZ;AAA8B05E,CAE9B,KAAKP,CAAAA,eAAL,CADA,IAAKD,CAAAA,UACL,CADkB,CAAA,CAEd,KAAK52E,CAAAA,WAAT,EACE9D,EAAA,CAAe,IAAf,CAEoBhB,EAAtB,WA\/amBC,GA+anB,EACE,IAAK+7E,CAAAA,4BAAL,CAAkCh8E,CAAOw6E,CAAAA,KAAzC,CAOFv8E,GAAA,EA\/BA,CADgC,CAkClCm3E,EAAO4G,CAAAA,4BAAP,CAAsCG,QAAqC,CAACzsF,CAAD,CAAQ,CACjF,IAAIsoF,EAAQ,IACZ,IAAI,IAAKwD,CAAAA,aAAT,CACE,IAAKA,CAAAA,aAAL,CAAmB9rF,CAAnB,CAA0B,IAA1B,CADF,KAAA,CAIA,GAAIqK,EAAYsF,CAAAA,sBAAhB,CACE,KAAM3P,EAAN,CAGGqK,EAAYgE,CAAAA,sBAAjB,EACEkF,OAAQvT,CAAAA,KAAR,CAFyI,4BAEzI,CAFwK,IAExK,CAF+K,GAE\/K,CAAuBA,CAAvB,CAYFqK,GAAYohF,CAAAA,2BAA4Bx4E,CAAAA,OAAxC,CAAgD,QAAQ,CAACnD,EAAD,CAAK,CAC3D,MAAOA,GAAA,CAAG9P,CAAH,CAAUsoF,CAAV,CADoD,CAA7D,CArBA,CAFiF,CA2BnF5C,EAAOzlD,CAAAA,OAAP,CAAiBysD,QAAgB,EAAG,CAC7B,IAAKt3E,CAAAA,WAAV,GACE,IAAKA,CAAAA,WACL,CADmB,CAAA,CACnB,CAAK,IAAK42E,CAAAA,UAAV;CACEz+E,EAAA,EAEA,CADA+D,EAAA,CAAe,IAAf,CACA,CAAA\/C,EAAA,EAHF,CAFF,CADkC,CAUpCm3E,EAAOjwE,CAAAA,YAAP,CAAsBk3E,QAAqB,EAAG,CAC5C,IAAIvwF,EAAK,IAAK6jC,CAAAA,OAAQ\/nC,CAAAA,IAAb,CAAkB,IAAlB,CACTkE,EAAA,CAAGic,EAAH,CAAA,CAAY,IACZ,OAAOjc,EAHqC,CAK9CspF,EAAO1jF,CAAAA,QAAP,CAAkBgkF,QAAkB,EAAG,CACrC,MAAO,WAAP,CAAqB,IAAKxtE,CAAAA,KAA1B,CAAkC,GADG,CAGvCktE,EAAO1rE,CAAAA,KAAP,CAAe4yE,QAAgB,CAAC3yE,CAAD,CAAkB,CACvB,IAAK,EAA7B,GAAIA,CAAJ,GACEA,CADF,CACoB,CAAA,CADpB,CAGAD,GAAA,CAAM,IAAN,CAAYC,CAAZ,CAJ+C,CAMjD,OAAO2xE,EApJiC,CAAX,EA7V\/B,CAmfIt4E,GAA0B,GAnf9B,CAofIjB,GAAoBA,QAA2B,CAACvC,CAAD,CAAK,CACtD,MAAOA,EAAA,EAD+C,CApfxD,CA6gBIiJ,GAA6BjW,CAAA,CAA0B,UAA1B,CAAsCqS,EAAtC,CA7gBjC,CAuiBIb,GAAS,QAviBb,CA4iBIF,GAAmCtL,EAAA,CAAuBwL,EAAvB,CA5iBvC,CA6iBIu4E,GAAwC\/jF,EAAA,CALzBgkF,cAKyB,CAAqC,CAC\/EvjF,MAAO,CAAA,CADwE,CAArC,CA7iB5C,CAgjBI4K,GAAuCrL,EAAA,CAP1BuL,YAO0B,CAAmC,CAC5E1L,WAAY,CAAA,CADgE,CAAnC,CAhjB3C,CAmjBIokF,GAA4CjkF,EAAA,CATzBkkF,kBASyB,CAAyC,CACvFrkF,WAAY,CAAA,CAD2E,CAEvFY,MAAO,CAAA,CAFgF,CAAzC,CAnjBhD,CA8kBIgN,GAAyBvC,EAAA,CAAoB,CAAA,CAApB,CAC7BtS,OAAOiD,CAAAA,MAAP,CAAc4R,EAAd,CAAsBnC,EAAtB,CACA,KAAIzL,GAA6BqL,EAAA,CAAoB,CAAA,CAApB,CACjCtS,OAAOiD,CAAAA,MAAP,CAAcgE,EAAd,CAA0BwL,EAA1B,CACAoC,GAAOhN,CAAAA,KAAP,CAA+B1C,EAAA,CAA0BgmF,EAA1B,CAC\/BlkF,GAAWY,CAAAA,KAAX;AAAmC1C,EAAA,CAA0BkmF,EAA1B,CA6CnC,KAAIp3E,GAAMA,QAAa,CAAC7F,CAAD,CAAK,CAC1B,MAAOA,EAAA,EADmB,CAA5B,CAuEIjI,GAAqB,MAvEzB,CAwEIkP,GAAuB,OAxE3B,CAmLIk2E,GAAc,CAIlBv0E,GAAsB1V,CAAAA,SAAtB,CAAkDtB,MAAOsD,CAAAA,MAAP,CAAc7M,KAAM6K,CAAAA,SAApB,CAClD,KAAIkqF,GAAiCxiF,EAAA,CAAqB,MAArB,CAArC,CACIyiF,GAAsCziF,EAAA,CAAqB,YAArB,CAAmC,CAC3EnB,MAAO,CAAA,CADoE,CAAnC,CAD1C,CAIIb,GAAuBhH,MAAOiD,CAAAA,MAAP,CAAcyoF,QAAc,CAACn5E,CAAD,CAAOnH,CAAP,CAAa,CAClE,GAAIzL,CAAA,CAAYyL,CAAZ,CAAJ,CACE,MAAO7F,GAAA,CAAgBgN,CAAhB,CAAsBnH,CAAtB,CAA4BogF,EAA5B,CAMT,KAAI9qF,EADY6R,CACK7R,CAAAA,IAAjBA,EAAyB,sBACzB+K,EAAAA,CAAMA,QAAa,EAAG,CAExB,IAAIhN,EAAOD,SAAX,CACIiQ,GAAQ,EAAE88E,EADd,CAEII,GAAM92E,EAAA,CAAOnU,CAAP,CAAc,YAAd,CAA6B+N,EAA7B,CAAqC,SAArC,CANI8D,CAMJ,CAA2D\/S,CAAAA,KAA3D,CAHAosF,IAGA,CAAsEntF,CAAtE,CAFV,CAGIotF,EAHJ,CAIIC,GAAiB,IAAK,EACtBC,EAAAA,CAAU,IAAInnE,OAAJ,CAAY,QAAQ,CAAC2B,EAAD,CAAUC,EAAV,CAAkB,CAGlDwlE,QAASA,GAAW,CAACC,EAAD,CAAO,CACzBH,EAAA,CAAiB,IAAK,EAEtB,IAAI,CACF,IAAAI,GAAMr3E,EAAA,CAAOnU,CAAP,CAAc,YAAd,CAA6B+N,EAA7B,CAAqC,WAArC,CAAmD09E,EAAA,EAAnD,CAA6DR,EAAI5mF,CAAAA,IAAjE,CAAuE3E,CAAAA,IAAvE,CAA4EurF,EAA5E,CAAiFM,EAAjF,CADJ,CAEF,MAAO\/vF,EAAP,CAAW,CACX,MAAOsqB,GAAA,CAAOtqB,EAAP,CADI,CAGb6I,EAAA,CAAKmnF,EAAL,CARyB;AAU3BE,QAASA,GAAU,CAAC5\/E,EAAD,CAAM,CACvBs\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\/Hb,CAiII\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\/2F,CAAAA,MAA\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\/tF,CAAf,CAAoB\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\/B,IAAIC,EAAS,IACb\/4E,GAAA,CAAY,QAAQ,EAAG,CACrBjJ,EAAA,CAAU,QAAQ,EAAG,CACnB,IADmB,IACVy\/C,EAAa5qD,EAAA,CAAgCmtF,CAAOhwF,CAAAA,IAAP,EAAhC,CADH;AACmD2tD,EAAtE,CAA8E,CAAyBvqD,CAAvBuqD,EAAuBvqD,CAAdqqD,CAAA,EAAcrqD,EAAAA,IAAvG,CAAA,CAEE4sF,CAAA,CAAO,QAAP,CAAA,CADUriC,EAAO5vD,CAAAA,KACjB,CAHiB,CAArB,CADqB,CAAvB,CAF+B,CAWjCokF,EAAOpwD,CAAAA,OAAP,CAAiBk+D,QAAiB,CAACrzE,CAAD,CAAS,CACzC,IAAIszE,EAAS,IACbj5E,GAAA,CAAY,QAAQ,EAAG,CAIrB,IAHA,IAAIk5E,GAAiBp2E,EAAA,CAAa6C,CAAb,CAArB,CACIwzE,GAA8B,IAAIxwF,GADtC,CAEIywF,GAA0B,CAAA,CAF9B,CAGSvhC,GAAajsD,EAAA,CAAgCqtF,CAAO\/0E,CAAAA,KAAMnb,CAAAA,IAAb,EAAhC,CAHtB,CAG4E+uD,EAA5E,CAAoF,CAAyB3rD,CAAvB2rD,EAAuB3rD,CAAd0rD,EAAA,EAAc1rD,EAAAA,IAA7G,CAAA,CAEE,GADItC,EACA,CADMiuD,EAAOhxD,CAAAA,KACb,CAAA,CAACoyF,EAAe76E,CAAAA,GAAf,CAAmBxU,EAAnB,CAAL,CAEE,GADcovF,CAAA,CAAO,QAAP,CAAAI,CAAiBxvF,EAAjBwvF,CACd,CACED,EAAA,CAA0B,CAAA,CAD5B,KAEO,CACL,IAAItyF,GAAQmyF,CAAO\/0E,CAAAA,KAAMrT,CAAAA,GAAb,CAAiBhH,EAAjB,CACZsvF,GAAYprF,CAAAA,GAAZ,CAAgBlE,EAAhB,CAAqB\/C,EAArB,CAFK,CAMX,IAASwyF,EAAT,CAAsB1tF,EAAA,CAAgCstF,EAAe\/zE,CAAAA,OAAf,EAAhC,CAAtB,CAAyF,CAAyBhZ,CAAvBotF,EAAuBptF,CAAdmtF,EAAA,EAAcntF,EAAAA,IAAlH,CAAA,CACMqtF,EAGJ,CAHmBD,EAAOzyF,CAAAA,KAG1B,CAHiCjB,EAGjC,CAHwC2zF,EAAA,CAAa,CAAb,CAGxC,CAHyDC,EAGzD,CAHkED,EAAA,CAAa,CAAb,CAGlE,CAFIE,EAEJ,CAFiBT,CAAO\/0E,CAAAA,KAAM7F,CAAAA,GAAb,CAAiBxY,EAAjB,CAEjB,CADAozF,CAAOlrF,CAAAA,GAAP,CAAWlI,EAAX,CAAiB4zF,EAAjB,CACA,CAAIR,CAAO\/0E,CAAAA,KAAM7F,CAAAA,GAAb,CAAiBxY,EAAjB,CAAJ,GACM8zF,EAEJ,CAFcV,CAAO\/0E,CAAAA,KAAMrT,CAAAA,GAAb,CAAiBhL,EAAjB,CAEd,CADAszF,EAAYprF,CAAAA,GAAZ,CAAgBlI,EAAhB,CAAsB8zF,EAAtB,CACA,CAAKD,EAAL,GACEN,EADF,CAC4B,CAAA,CAD5B,CAHF,CAQF,IAAI,CAACA,EAAL,CACE,GAAIH,CAAO\/0E,CAAAA,KAAM9jB,CAAAA,IAAjB,GAA0B+4F,EAAY\/4F,CAAAA,IAAtC,CACE64F,CAAOh1E,CAAAA,SAAUqnE,CAAAA,aAAjB,EADF,KAOE,KAJIsO,EAGAC;AAHQZ,CAAO\/0E,CAAAA,KAAMnb,CAAAA,IAAb,EAGR8wF,CAFAC,EAEAD,CAFQV,EAAYpwF,CAAAA,IAAZ,EAER8wF,CADAE,EACAF,CADQD,EAAM3tF,CAAAA,IAAN,EACR4tF,CAAAA,EAAAA,CAAQC,EAAM7tF,CAAAA,IAAN,EACZ,CAAO,CAAC8tF,EAAM5tF,CAAAA,IAAd,CAAA,CAAoB,CAClB,GAAI4tF,EAAMjzF,CAAAA,KAAV,GAAoB+yF,EAAM\/yF,CAAAA,KAA1B,CAAiC,CAC\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\/cKi3E,QA8c4B,CAEjC\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\/C,CAAN,CAAaqI,EAAb,CAAwB,CAC\/B,IAAK,EAAvB,GAAIA,EAAJ,GACEA,EADF,CACc,CAAA,CADd,CAGA,IAAI5F,CAAA,CAAQ,IAAKyF,CAAAA,OAAb,CAAsBnF,CAAtB,CAAJ,CAAgC,CAC9B,GAAI,IAAKuU,CAAAA,OAAQC,CAAAA,GAAb,CAAiBxU,CAAjB,CAAJ,CACE,MAAO,KAAK2Z,CAAAA,uBAAL,CAA6B3Z,CAA7B,CAAkC\/C,CAAlC,CACF,IAAIqI,EAAJ,CACL,MAAOgxD,QAAQpyD,CAAAA,GAAR,CAAY,IAAKiB,CAAAA,OAAjB,CAA0BnF,CAA1B,CAA+B\/C,CAA\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\/E,GAAqB9\/F,EAAA,CAAQ,GAAR,CAAzB,CACI+\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\/sE,EAAD,EAAY,CAC\/C,MAAM,CACJ,cAAAq7F,EADI,CAEJ,MAAO,CAAE,SAAAj9F,EAAA,CAAW,CAAb,CAFH,CAAA,CAGF,IAHJ,CAIMggF,GAAUlB,EAAYmB,CAAAA,iBAAZ,CAA8B,IAAKr+E,CAAAA,MAAnC,CAA2C5B,EAA3C,CAChB,OAAO8+E,GAAYI,CAAAA,aAAZ,CAA0Bt9E,EAA1B,CAAkCq7F,EAAlC,CAAP,EAA4G,CAA5G,CAr4IGl4F,CAAA,CACL,CAo4I6FnD,EAp4IrFC,CAAAA,IAAR,CAo4I6FD,EAp4IxEE,CAAAA,IAArB,CADK;AAEL,CAm4I6FF,EAn4IrF3C,CAAAA,KAAR,CAm4I6F2C,EAn4IvE5C,CAAAA,MAAtB,CAFK,CAq4I+EghF,EAr4I\/E,CAq4IgG7gF,CAAAA,MANpD,CAAjD,CAQAwvE,GAAA,CAAc,IAAd,CAAoB,mBAApB,CAAyC,EAAA,EAChCmQ,EAAYE,CAAAA,YAAZ,CAAyB,IAAK4E,CAAAA,SAAL,EAAzB,CAA2C,IAAKsZ,CAAAA,eAAhD,CADT,CAGAvuB,GAAA,CAAc,IAAd,CAAoB,iBAApB,CAAuC,CAAC7uE,EAAD,CAAQY,EAAR,CAAgBC,EAAhB,CAA2BulB,EAA3B,CAAA,EAA4C,CACjF,IAAMtkB,GAAS,IAAKgiF,CAAAA,SAAL,EAAf,CACMuZ,GAAiB,IAAKhd,CAAAA,iBAAL,EACvB,IAAKmF,EAAWV,CAAAA,aAAX,CAAyB9kF,EAAzB,CAAgCq9F,EAAhC,CAAL,CAAA,CAEA,IAAMC,GAAgBz7F,CAAA,CAAmBjB,EAAnB,CAA2BC,EAA3B,CAAsCw8F,EAAtC,CAAsDr5F,CAAAA,MAAtD,CAA8DM,EAAD,EAASA,EAAIxE,CAAAA,YAA1E,CAAwFoE,CAAAA,GAAxF,CAA6FI,EAAD,EAASA,EAAIzE,CAAAA,MAAJ,CAAW,CAAX,CAArG,CACtB,IAAKy9F,EAAcj+F,CAAAA,MAAnB,CA6BA,MA3BMc,GA2BC,CA3BQ,IAAK0mB,CAAAA,SAAL,EA2BR,CA1BDniB,EA0BC,CA1Bc44F,EAAc9+F,CAAAA,IAAd,CAAmB,CAACC,EAAD,CAAKC,EAAL,CAAA,EAAY8nB,EAAYq\/C,CAAAA,IAAZ,CAAiBnnE,EAAjB,CAAqBkC,EAArB,CAAZ,CAA2C4lB,EAAYq\/C,CAAAA,IAAZ,CAAiBpnE,EAAjB,CAAqBmC,EAArB,CAA9D,CAAA,CAA4F,CAA5F,CA0Bd,CAzBD28F,EAyBC,CAzBa\/2E,EAAYw1D,CAAAA,GAAZ,CAAgBh8E,EAAhB,CAAuB0E,EAAvB,CAyBb,CAtBH0hB,EAAJ,EACE87D,EACA,CAD2C,CAAlC,CAAA17D,EAAYq\/C,CAAAA,IAAZ,CAAiB7lE,EAAjB,CAAwBG,EAAxB,CAAA,CAAyDA,EAAzD,CAAkEH,EAC3E,CAAA0mB,EAAA,CAAW,CAFb,GAKIw7D,EAKA,CANkE,CAApE,CAAI17D,EAAYs3D,CAAAA,qBAAZ,CAAkC99E,EAAlC,CAAyCu9F,EAAzC,CAAsDp9F,EAAtD,CAAJ;AACWA,EADX,CAGWo9F,EAGT,CAAA72E,EAAA,CADE8+D,EAAWV,CAAAA,aAAX,CAAyB9kF,EAAzB,CAAgC8B,EAAhC,CAAJ,CACa,IAAKs7F,CAAAA,eADlB,CAGa9+F,IAAKC,CAAAA,GAAL,CACT,IAAK6+F,CAAAA,eADI,CAETpe,EAAYC,CAAAA,cAAZ,CAA2Bn9E,EAA3B,CAAmCoC,CAAAA,GAAnC,CAAwCg5C,EAAD,EAAU12B,EAAYs3D,CAAAA,qBAAZ,CAAkC5gC,EAAA,CAAK,CAAL,CAAA,CAAQ,CAAR,CAAlC,CAA8CA,EAAA,CAAK,CAAL,CAAA,CAAQ,CAAR,CAA9C,CAA0Dl9C,EAA1D,CAAjD,CAAmHxB,CAAAA,IAAnH,CAAwH,CAACC,EAAD,CAAKC,EAAL,CAAA,EAAYD,EAAZ,CAAiBC,EAAzI,CAAA,CAA6I,CAA7I,CAFS,CAZf,CAsBO,CAJD2nB,EAIC,CAJcG,EAAY4zD,CAAAA,IAAZ,CAAiB5zD,EAAYnkB,CAAAA,GAAZ,CAAgB6\/E,EAAhB,CAAwB,CAACmb,EAAet7F,CAAAA,IAAhB,CAAsBs7F,EAAer7F,CAAAA,IAArC,CAAxB,CAAjB,CAAsF,CACzGq7F,EAAel+F,CAAAA,KAD0F,CAEzGk+F,EAAen+F,CAAAA,MAF0F,CAAtF,CAId,CAAA,CACLc,MAAOwmB,EAAY2yD,CAAAA,MAAZ,CAAmB9yD,EAAnB,CAAiC,CAAjC,CAAoC,CAApC,CADF,CAELK,SAAAA,EAFK,CAhCP,CAHiF,CAAnF,CAwCAmoD,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAC5BzvD,EAAA,CAAKva,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmB,IAAK0E,CAAAA,KAAxB,CAAd,CAA8C,CAAEiX,KAAM,IAAKA,CAAAA,IAAb,CAAmB+8E,MAAO,IAAKA,CAAAA,KAA\/B,CAA9C,CAAL,CADT,CAGA3uB,GAAA,CAAc,IAAd,CAAoB,qBAApB,CAA2C,EAAA,EAAM,CACtC4uB,CAAL,IAAKA,CAAAA,OAAT,EAAqB,IAAKC,CAAAA,cAA1B,EACE79E,EAAA,CAAY,EAAA,EAAM,CAChB,IAAK89E,CAAAA,UAAL,CAAgB,CAAA,CAAhB,CACA,KAAKC,CAAAA,iBAAL,CAAuB,IAAKC,CAAAA,aAAL,EAAvB,CAFgB,CAAlB,CAKF;GAAI,IAAKH,CAAAA,cAAT,CACE,MAAO,KAAKA,CAAAA,cAEd,MAAUlgG,MAAJ,CAAU,6CAAV,CAAN,CAV+C,CAAjD,CAYAqxE,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsCrlE,EAAD,EAC5BA,EADT,CAGAqlE,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,CAACrlE,EAAD,CAAQs0F,EAAA,CAAkB,CAAA,CAA1B,CAAiCC,EAAA,CAAa,CAAA,CAA9C,CAAA,EAAwD,CAC9ED,EAAN,EAAyB,IAAKL,CAAAA,OAA9B,EACE,IAAKE,CAAAA,UAAL,CAAgB,CAAA,CAAhB,CACGG,GAAL,EAAyBC,EAAzB,EACE,IAAKC,CAAAA,QAAL,EACFj3F,OAAOiD,CAAAA,MAAP,CAAc,IAAKR,CAAAA,KAAnB,CAA0B,IAAKy0F,CAAAA,aAAL,CAAmBz0F,EAAnB,CAA1B,CACA,OAAO,KAN6E,CAAtF,CAQAqlE,GAAA,CAAc,IAAd,CAAoB,OAApB,CAA6B,EAAA,EACpB,IAAI,IAAKznE,CAAAA,WAAT,CAAqB,IAAK82F,CAAAA,UAA1B,CADT,CAGArvB,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsC9C,EAAD,EAC5B,IADT,CAGA8C,GAAA,CAAc,IAAd,CAAoB,OAApB,CAA6B,CAAC,CAAD,CAAI,CAAJ,CAA7B,CACAA,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsC9C,EAAD,EAAU,CAC7C,IAAI9jD,EACJ,KAAKi+C,CAAAA,KAAL,CAAa,CAAC,IAA+B,IAA5B,GAACj+C,EAAD,CAAO,IAAKze,CAAAA,KAAM08D,CAAAA,KAAlB;AAAmCj+C,EAAnC,CAAyC,CAAC,CAAD,CAAI,CAAJ,CAA5C,CAAD,CACb,OAAO,KAHsC,CAA\/C,CAKA4mD,GAAA,CAAc,IAAd,CAAoB,UAApB,CAAgC,CAACsvB,EAAD,CAAepyB,EAAf,CAAA,EAAwB,CACtD,MAAM,CACJ,OAAAjqE,EADI,CAEJ,SAAA5B,EAFI,CAGJ,MAAO,CAAC+gF,EAAD,CAASC,EAAT,CAHH,CAAA,CAIFnV,EACEqyB,GAAAA,CAAY,CAAC,GAAG,IAAKl4B,CAAAA,KAAT,CACL,EAAb,CAAI+a,EAAJ,GACEmd,EAAA,CAAU,CAAV,CADF,EACkB,CAAC,CADnB,CAEa,EAAb,CAAIld,EAAJ,GACEkd,EAAA,CAAU,CAAV,CADF,EACkB,CAAC,CADnB,CAEA,KAAKp2D,CAAAA,MAAL,CAAY,CAAEhoC,MAAO,CAAC8B,EAAOC,CAAAA,IAAR,CAAcD,EAAOE,CAAAA,IAArB,CAAT,CAAqCkkE,MAAOk4B,EAA5C,CAAuDl+F,SAAAA,EAAvD,CAAZ,CACA,OAAO,KAZ+C,CAAxD,CAcA2uE,GAAA,CAAc,IAAd,CAAoB,gBAApB,CAAsC,CAACwvB,EAAD,CAAe,CAAE,GAAIjsE,EAAN,CAAW,MAAAtM,EAAX,CAAf,CAAA,EAAsC,CAC1E,GAA6B,IAAK,EAAlC,GAAIu4E,EAAa72E,CAAAA,OAAjB,CAAA,CAEA,IAAM82E,GAAcC,EAAA,CAASF,EAAa72E,CAAAA,OAAtB,CACpB82E,GAAA,CAAYlsE,EAAZ,CAAA,CAAmBvtB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBw5F,EAAA,CAAYlsE,EAAZ,CAAnB,CAAd,CAAoD,CACrEpyB,MAAOwmB,EAAYhmB,CAAAA,GAAZ,CAAgBslB,EAAhB,CAAuBu4E,EAAa72E,CAAAA,OAAb,CAAqB4K,EAArB,CAA0BpyB,CAAAA,KAAjD,CAD8D,CAApD,CAGnB,KAAMw+F,GAAUxf,EAAY0D,CAAAA,gBAAZ,CAA6B37E,MAAOye,CAAAA,MAAP,CAAc84E,EAAd,CAA2Bp6F,CAAAA,GAA3B,CAAgC+wC,EAAD,EAAQA,EAAGj1C,CAAAA,KAA1C,CAA7B,CAChB+G,OAAOye,CAAAA,MAAP,CAAc84E,EAAd,CAA2BhmF,CAAAA,OAA3B,CAAoC28B,EAAD,EAAQ,CACzCA,EAAGj1C,CAAAA,KAAH,CAAWwmB,EAAYnkB,CAAAA,GAAZ,CAAgB4yC,EAAGj1C,CAAAA,KAAnB;AAA0Bw+F,EAA1B,CAD8B,CAA3C,CAGA,KAAKx2D,CAAAA,MAAL,CAAY,CACVhoC,MAAOwmB,EAAYhmB,CAAAA,GAAZ,CAAgB69F,EAAar+F,CAAAA,KAA7B,CAAoCw+F,EAApC,CADG,CAEVh3E,QAAS82E,EAFC,CAAZ,CAVA,CAD0E,CAA5E,CAxJiB,KAwKbr2E,CAxKa,CAwKRkI,CACT,OAAM1P,EAAO,IAAKrZ,CAAAA,WAAL,CAAA,EAAb,CACM+f,GAA2D,IAA5C,GAACc,CAAD,CAAO,IAAK7gB,CAAAA,WAAL,CAAA,YAAP,EAAmD6gB,CAAnD,CAAyD,EAC9E,KAAKxH,CAAAA,IAAL,CAAYA,CACZ,KAAKjX,CAAAA,KAAL,CAAa1E,EAAA,CAAeA,EAAA,CAAe,CAAEohE,MAAO,CAAC,CAAD,CAAI,CAAJ,CAAT,CAAf,CAAkC\/+C,EAAlC,CAAf,CAAgE3d,CAAhE,CACb,KAAKg0F,CAAAA,KAAL,CAAmC,IAAtB,GAACrtE,CAAD,CAAM3mB,CAAMg0F,CAAAA,KAAZ,EAA6BrtE,CAA7B,CAAkCxR,IAAK6U,CAAAA,GAAL,EAC\/CxS,GAAA,CAAe,IAAf,CA9KiB,CAgLf,MAAK,EAAA,CACP,MAAO,KAAKxX,CAAAA,KAAM+c,CAAAA,EADX,CAGTk4E,QAAQ,CAACjB,CAAD,CAAQ,CACd,IAAKA,CAAAA,KAAL,CAAaA,CADC,CAGhBQ,QAAQ,EAAG,CACT,IAAKR,CAAAA,KAAL,EADS,CAGXG,UAAU,CAACF,CAAD,CAAU,CAClB,IAAKA,CAAAA,OAAL,CAAeA,CADG,CAGpBG,iBAAiB,CAACM,CAAD,CAAa,CAC5B,IAAKR,CAAAA,cAAL,CAAsBQ,CADM,CAG1B,UAAS,EAAA,CACX,MAAO,KAAKr3E,CAAAA,SAAL,EADI,CAGT,UAAS,EAAA,CACX,MAAO,KAAKi9D,CAAAA,SAAL,EADI,CAGT,iBAAgB,EAAA,CAClB,MAAO,KAAK7D,CAAAA,gBAAL,EADW,CAGhB,cAAa,EAAA,CACf,MAAO,KAAKye,CAAAA,mBAAL,EADQ,CAGjBC,cAAc,CAACpxF,CAAD,CAAK,CACXzL,CAAAA;AAAS,IAAKgiF,CAAAA,SAAL,EACf,OAAM,CAAE,OAAApf,CAAF,CAAU,YAAAL,CAAV,CAAuB,WAAAu6B,CAAvB,CAAmC,QAAAvvE,EAAnC,CAA4C,KAAA3vB,EAA5C,CAAkD,OAAA4kE,EAAlD,CAA0D,aAAAS,EAA1D,CAAA,CAA2E,IAAKv7D,CAAAA,KACtF,OAAuB,GAAIuzF,EAAmBrvD,CAAAA,GAAvB,EAA4B,MAA5B,CAAoC,CACzDhuC,KAAM4kE,EAAA,CAAS,MAAT,CAAkB71C,EAAA,CAAiB\/uB,EAAjB,CAAuB,YAAvB,CADiC,CAEzDglE,OAAQj2C,EAAA,CAAiBi2C,CAAjB,CAAyB,QAAzB,CAFiD,CAGzDL,YAA4B,IAAf,EAAAA,CAAA,CAAsBA,CAAtB,CAAoC,CAHQ,CAIzDw6B,gBAAgC,QAAf,GAAAD,CAAA,CAA0B,KAA1B,CAAkC,IAAK,EAJC,CAKzDE,YAAwB,IAAX,EAAAzvE,EAAA,CAAkBA,EAAlB,CAA4B,EALgB,CAMzDlwB,MAAO2C,CAAO3C,CAAAA,KAN2C,CAOzDD,OAAQ4C,CAAO5C,CAAAA,MAP0C,CAQzDqE,GAAIwhE,EARqD,CASzDvhE,GAAIuhE,EATqD,CAApC,CAHN,CA5MP,CA4Nd8J,GAAA,CAAcmuB,EAAd,CAAuB,MAAvB,CACAtuB,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEGuvF,EAAQ30F,CAAAA,SAFX,CAEsB,OAFtB,CAE+B,CAF\/B,CAGAqmE,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEGuvF,EAAQ30F,CAAAA,SAFX,CAEsB,WAFtB,CAEmC,CAFnC,CAGAqmE,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEGuvF,EAAQ30F,CAAAA,SAFX,CAEsB,OAFtB,CAE+B,CAF\/B,CAGAqmE,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEGuvF,EAAQ30F,CAAAA,SAFX,CAEsB,SAFtB,CAEiC,CAFjC,CAGAqmE,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEGuvF,EAAQ30F,CAAAA,SAFX;AAEsB,gBAFtB,CAEwC,CAFxC,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGyrF,EAAQ30F,CAAAA,SAFX,CAEsB,IAFtB,CAE4B,CAF5B,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEGohF,EAAQ30F,CAAAA,SAFX,CAEsB,UAFtB,CAEkC,CAFlC,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEGohF,EAAQ30F,CAAAA,SAFX,CAEsB,UAFtB,CAEkC,CAFlC,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEGohF,EAAQ30F,CAAAA,SAFX,CAEsB,YAFtB,CAEoC,CAFpC,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEGohF,EAAQ30F,CAAAA,SAFX,CAEsB,mBAFtB,CAE2C,CAF3C,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGyrF,EAAQ30F,CAAAA,SAFX,CAEsB,QAFtB,CAEgC,CAFhC,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGyrF,EAAQ30F,CAAAA,SAFX,CAEsB,QAFtB,CAEgC,CAFhC,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGyrF,EAAQ30F,CAAAA,SAFX,CAEsB,eAFtB,CAEuC,CAFvC,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGyrF,EAAQ30F,CAAAA,SAFX,CAEsB,YAFtB,CAEoC,CAFpC,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEGohF,EAAQ30F,CAAAA,SAFX,CAEsB,QAFtB,CAEgC,CAFhC,CAKA,KAAI02F,GAAa,aAAc\/B,GAAd,CACf51F,WAAW,CAACoC,CAAA,CAAQ,EAAT,CAAa,CACtB,KAAA,CAAMA,CAAN,CACAqlE,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,CAAA,CAA\/B,CACAA,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAA,EAAM,CACrC,MAAM,CAAC7tE,CAAD,CAAKC,CAAL,CAAA,CAAW,IAAKuI,CAAAA,KAAMxJ,CAAAA,KAA5B;AACM,CAACb,CAAD,CAAQD,EAAR,CAAA,CAAkB,IAAKsK,CAAAA,KAAMvJ,CAAAA,IACnC,OAAO,CACL8B,KAAMf,CADD,CAELgB,KAAMf,CAFD,CAGL+zB,KAAMh0B,CAANg0B,CAAW71B,CAHN,CAIL81B,KAAMh0B,CAANg0B,CAAW\/1B,EAJN,CAKLC,MAAAA,CALK,CAMLD,OAAAA,EANK,CAH8B,CAAvC,CAYA2vE,GAAA,CAAc,IAAd,CAAoB,kBAApB,CAAwC,EAAA,EAC\/BmQ,EAAYO,CAAAA,mBAAZ,CACLP,EAAYmB,CAAAA,iBAAZ,CAA8B,IAAKr+E,CAAAA,MAAnC,CAA2C,IAAK0H,CAAAA,KAAMtJ,CAAAA,QAAtD,CADK,CADT,CAKA2uE,GAAA,CAAc,IAAd,CAAoB,UAApB,CAAgC,CAACsvB,CAAD,CAAepyB,CAAf,CAAA,EAAwB,CACtD,MAAM,CACJ,OAAAjqE,CADI,CAEJ,SAAA5B,EAFI,CAGJ,MAAO,CAAC+gF,EAAD,CAASC,EAAT,CAHH,CAAA,CAIFnV,CACEqyB,EAAAA,CAAY,CAAC,GAAG,IAAKl4B,CAAAA,KAAT,CACL,EAAb,CAAI+a,EAAJ,GACEmd,CAAA,CAAU,CAAV,CADF,EACkB,CAAC,CADnB,CAEa,EAAb,CAAIld,EAAJ,GACEkd,CAAA,CAAU,CAAV,CADF,EACkB,CAAC,CADnB,CAEA,KAAKp2D,CAAAA,MAAL,CAAY,CAAEhoC,MAAO,CAAC8B,CAAOC,CAAAA,IAAR,CAAcD,CAAOE,CAAAA,IAArB,CAAT,CAAqCkkE,MAAOk4B,CAA5C,CAAuDl+F,SAAAA,EAAvD,CAAZ,CACA,OAAO,KAAK8nC,CAAAA,MAAL,CAAY,CACjB9nC,SAAAA,EADiB,CAEjBF,MAAO,CAAC8B,CAAOC,CAAAA,IAAR,CAAcD,CAAOE,CAAAA,IAArB,CAFU,CAGjB\/B,KAAM,CAAC3B,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYuD,CAAO3C,CAAAA,KAAnB,CAAD,CAA4Bb,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYuD,CAAO5C,CAAAA,MAAnB,CAA5B,CAHW,CAIjBgnE,MAAOk4B,CAJU,CAAZ,CAZ+C,CAAxD,CAmBAvvB,GAAA,CAAc,IAAd,CAAoB,eAApB;AAAsCrlE,CAAD,EAAW,CAC3B,IAAK,EAAxB,GAAIA,CAAMvJ,CAAAA,IAAV,GACEuJ,CAAMvJ,CAAAA,IAAN,CAAW,CAAX,CACA,CADgB3B,IAAKC,CAAAA,GAAL,CAASiL,CAAMvJ,CAAAA,IAAN,CAAW,CAAX,CAAT,CAAwB,CAAxB,CAChB,CAAAuJ,CAAMvJ,CAAAA,IAAN,CAAW,CAAX,CAAA,CAAgB3B,IAAKC,CAAAA,GAAL,CAASiL,CAAMvJ,CAAAA,IAAN,CAAW,CAAX,CAAT,CAAwB,CAAxB,CAFlB,CAIA,OAAOuJ,EALuC,CAAhD,CAOAwX,GAAA,CAAe,IAAf,CA9CsB,CADT,CAkDjB6tD,GAAA,CAAckwB,EAAd,CAA0B,IAA1B,CAAgC,KAAhC,CACAlwB,GAAA,CAAckwB,EAAd,CAA0B,cAA1B,CAA0C,CACxCx4E,GAAI,KADoC,CAExC9F,KAAM,KAFkC,CAGxC2G,SAAU,MAH8B,CAIxCpnB,MAAO,CAAC,CAAD,CAAI,CAAJ,CAJiC,CAKxCC,KAAM,CAAC,GAAD,CAAM,GAAN,CALkC,CAA1C,CASA,KAAI++F,GAAc,aAAchC,GAAd,CAChB51F,WAAW,CAACoC,CAAA,CAAQ,EAAT,CAAa,CACtB,KAAA,CAAMA,CAAN,CACAqlE,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAA,EAAM,CACrC,MAAM,CACJ,YAAAowB,CADI,CAEJ,MAAO,CAAE,MAAAj\/F,CAAF,CAFH,CAAA,CAGF,IACJ,OAAOg\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\/F,CAAf,CAA\/B,CAAyDv\/F,CAAzD,CAJsC,CAA\/C,CAMAgvE,GAAA,CAAc,IAAd,CAAoB,oBAApB,CAA0C,CAAClrE,CAAD,CAAKC,CAAL,CAAA,EAAY,CACpD,MAAM,CACJ,OAAA9B,CADI,CAEJ,MAAO,CAAE,OAAAjC,EAAF,CAAU,MAAAG,EAAV,CAFH,CAAA,CAGF,IACJ,IAAIwlF,EAAWV,CAAAA,aAAX,CAAyBnhF,CAAzB,CAA6B7B,CAA7B,CAAJ,EAA4C0jF,EAAWV,CAAAA,aAAX,CAAyBlhF,CAAzB,CAA6B9B,CAA7B,CAA5C,EAAwI,CAAxI,CAAoFqD,CAAA,CAA2BrD,CAA3B,CAAmC6B,CAAnC,CAAuCC,CAAvC,CAA2CvE,CAAAA,MAA\/H,CAA2I,CACzI,MAAMggG,GAAKh\/F,EAAIgC,CAAAA,GAAJ,CAAQsB,CAAR,CAAY3D,EAAZ,CAAX,CACMs\/F,GAAKj\/F,EAAIgC,CAAAA,GAAJ,CAAQuB,CAAR,CAAY5D,EAAZ,CACX,OAAOoE,EAAA,CAA6Bi7F,EAA7B,CAAiCC,EAAjC,CAAqCz\/F,EAArC,CAA6CC,CAAAA,YAApD,EAAoE,CAAC,CAACD,EAAOspD,CAAAA,IAAP,CAAao2C,EAAD,EAAmC,CAAnC,CAAYl\/F,EAAIwlE,CAAAA,IAAJ,CAASw5B,EAAT,CAAaE,EAAb,CAAZ;AAA+D,CAA\/D,CAAwCl\/F,EAAIwlE,CAAAA,IAAJ,CAASy5B,EAAT,CAAaC,EAAb,CAApD,CAHmE,CAK3I,MAAO,CAAA,CAV6C,CAAtD,CAYA1wB,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsC\/sE,CAAD,EAAY,CAC\/C,MAAM,CACJ,cAAAq7F,CADI,CAEJ,MAAO,CAAE,OAAAt9F,CAAF,CAAU,MAAAG,EAAV,CAFH,CAAA,CAGF,IAHJ,CAIMw\/F,GAAUxgB,EAAYY,CAAAA,eAAZ,CAA4B99E,CAA5B,CAAoCzB,EAAIg5E,CAAAA,GAAJ,CAAQr5E,EAAR,CAApC,CAChB,OAAOg\/E,GAAYI,CAAAA,aAAZ,CAA0Bt9E,CAA1B,CAAkCq7F,CAAlC,CAAP,EAA2Dt9F,CAAOipD,CAAAA,KAAP,CAAc22C,EAAD,EAAUja,EAAWV,CAAAA,aAAX,CAAyB2a,EAAzB,CAA+BD,EAA\/B,CAAvB,CAA3D,EAA8HxgB,EAAYG,CAAAA,aAAZ,CAA0Br9E,CAA1B,CAAkCq7F,CAAlC,CAA9H,EAAoO,CAApO,CA5uJGn4F,CAAA,CACL,CA2uJoNw6F,EA3uJ5Mz9F,CAAAA,IAAR,CA2uJoNy9F,EA3uJ\/Lx9F,CAAAA,IAArB,CADK,CAEL,CA0uJoNw9F,EA1uJ5MrgG,CAAAA,KAAR,CA0uJoNqgG,EA1uJ9LtgG,CAAAA,MAAtB,CAFK,CA4uJuMW,CA5uJvM,CA4uJwNR,CAAAA,MAN5K,CAAjD,CAQA2hB,GAAA,CAAe,IAAf,CAjFsB,CAmFpB,eAAc,EAAA,CAChB,MAAM,CACJ,MAAO,CAAE,OAAAnhB,CAAF,CADH,CAAA,CAEF,IACJ,OAAOm\/E,GAAYO,CAAAA,mBAAZ,CAAgC1\/E,CAAhC,CAJS,CAMd,iBAAgB,EAAA,CAClB,MAAM,CACJ,MAAO,CAAE,MAAAG,CAAF,CAAS,OAAAH,CAAT,CAAiB,SAAAK,CAAjB,CADH,CAEJ,OAAAC,CAFI,CAAA,CAGF,IACJ,IAAI,CAACD,CAAL,CACE,MAAOL,EACT,OAAM6\/F,GAAiBr\/F,EAAIgC,CAAAA,GAAJ,CAAQlC,CAAR,CAAgBH,CAAhB,CACvB,OAAOH,EAAOqE,CAAAA,GAAP,CAAYq7F,EAAD;AAAYl\/F,EAAIC,CAAAA,OAAJ,CAAYi\/F,EAAZ,CAAoBG,EAApB,CAAoCx\/F,CAApC,CAAvB,CARW,CA1FJ,CAqGlB2uE,GAAA,CAAcmwB,EAAd,CAA2B,IAA3B,CAAiC,MAAjC,CACAnwB,GAAA,CAAcmwB,EAAd,CAA2B,cAA3B,CAA2C,CACzCz4E,GAAI,MADqC,CAEzC9F,KAAM,MAFmC,CAGzC2G,SAAU,MAH+B,CAIzCpnB,MAAO,CAAC,CAAD,CAAI,CAAJ,CAJkC,CAKzCH,OAAQ,EALiC,CAMzC8\/F,WAAY,CAAA,CAN6B,CAA3C,CAQAjxB,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGytF,EAAY32F,CAAAA,SAFf,CAE0B,aAF1B,CAEyC,CAFzC,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGytF,EAAY32F,CAAAA,SAFf,CAE0B,eAF1B,CAE2C,CAF3C,CAKA,KAAIu3F,GAAiB,aAAcb,GAAd,CACnB33F,WAAW,CAACoC,CAAA,CAAQ,EAAT,CAAa,CACtB,KAAA,CAAMA,CAAN,CACAqlE,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAA,EAAM,CACrC,MAAM,CACJ,MAAO,CACL,MAAO,CAAC7tE,CAAD,CAAKC,CAAL,CADF,CAEL,KAAM,CAACy0C,CAAD,CAAKT,EAAL,CAFD,CADH,CAAA,CAKF,IACJ,OAAO+pC,GAAYoB,CAAAA,uBAAZ,CAAoCp\/E,CAApC,CAAwCC,CAAxC,CAA4Cy0C,CAA5C,CAAiD,CAAjD,CAAoDT,EAApD,CAAyD,CAAzD,CAA4D,CAA5D,CAP8B,CAAvC,CASA45B,GAAA,CAAc,IAAd,CAAoB,kBAApB,CAAwC,EAAA,EAAM,CAC5C,MAAM,CACJ,MAAO,CACL,MAAO,CAAC7tE,CAAD,CAAKC,CAAL,CADF,CAEL,KAAM,CAACy0C,CAAD,CAAKT,EAAL,CAFD,CAGL,SAAA\/0C,EAHK,CADH,CAAA,CAMF,IACJ,OAAO8+E,GAAYoB,CAAAA,uBAAZ,CAAoCp\/E,CAApC;AAAwCC,CAAxC,CAA4Cy0C,CAA5C,CAAiD,CAAjD,CAAoDT,EAApD,CAAyD,CAAzD,CAA4D\/0C,EAA5D,CARqC,CAA9C,CAUA2uE,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAqC7uE,CAAD,EAAW,CAC7C,MAAM,CACJ,MAAO,CAAE,KAAAC,CAAF,CAAQ,SAAAC,CAAR,CADH,CAEJ,OAAAC,EAFI,CAAA,CAGF,IACJ,OAAOqlF,GAAWhB,CAAAA,cAAX,CAA0BxkF,CAA1B,CAAiCG,EAAjC,CAAyCF,CAAA,CAAK,CAAL,CAAzC,CAAkDA,CAAA,CAAK,CAAL,CAAlD,CAA2DC,CAA3D,EAAuE,CAAvE,CALsC,CAA\/C,CAOA2uE,GAAA,CAAc,IAAd,CAAoB,oBAApB,CAA0C,CAAClrE,CAAD,CAAKC,CAAL,CAAA,EAAY,CACpD,MAAM,CACJ,MAAO,CACL,KAAM,CAAC8xC,CAAD,CAAKT,EAAL,CADD,CAEL,SAAA\/0C,EAAA,CAAW,CAFN,CADH,CAKJ,OAAAC,EALI,CAAA,CAMF,IACJ,OAAOmD,EAAA,CAA4BK,CAA5B,CAAgCC,CAAhC,CAAoCzD,EAApC,CAA4Cu1C,CAA5C,CAAgDT,EAAhD,CAAoD\/0C,EAApD,CAA8DJ,CAAAA,YARjB,CAAtD,CAUA+uE,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsC\/sE,CAAD,EAAY,CAC\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\/8F,GAAK+8F,CACP\/8F,GAAG+lD,CAAAA,KAAH,CAAS,CAACx7C,EAAD,CAAKlO,EAAL,CAAA,EAAmB,CAAnB,GAAYA,EAAZ,EAAwBkO,EAAxB,GAA+BvK,EAAA,CAAG3D,EAAH;AAAQ,CAAR,CAAxC,CAAJ,GACE0gG,CADF,CACa\/8F,EAAA,CAAG,CAAH,CADb,CAFuC,CAMzC,MAAO,KAAKilC,CAAAA,MAAL,CAAY,CACjBhoC,MAAO,CAAC8B,CAAOC,CAAAA,IAAR,CAAcD,CAAOE,CAAAA,IAArB,CADU,CAEjB\/B,KAAM,CAAC3B,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYuD,CAAO3C,CAAAA,KAAnB,CAAD,CAA4Bb,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYuD,CAAO5C,CAAAA,MAAnB,CAA5B,CAFW,CAGjB4gG,SAAAA,CAHiB,CAAZ,CAjC+C,CAAxD,CAuCA9+E,GAAA,CAAe,IAAf,CA9DsB,CADP,CAkEnB6tD,GAAA,CAAcgxB,EAAd,CAA4B,IAA5B,CAAkC,SAAlC,CACAhxB,GAAA,CAAcgxB,EAAd,CAA4B,cAA5B,CAA4C,CAC1Ct5E,GAAI,SADsC,CAE1C9F,KAAM,SAFoC,CAG1C2G,SAAU,MAHgC,CAI1CpnB,MAAO,CAAC,CAAD,CAAI,CAAJ,CAJmC,CAK1CC,KAAM,CAAC,GAAD,CAAM,GAAN,CALoC,CAM1C6\/F,SAAU,CANgC,CAO1CI,UAAW,MAP+B,CAQ1CC,QAAS,EARiC,CAA5C,CAYA,KAAIC,GAAmB,aAAcpD,GAAd,CACrB51F,WAAW,CAACoC,CAAA,CAAQ,EAAT,CAAa,CACtB,KAAA,CAAMA,CAAN,CACAqlE,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAA,EAAM,CACrC,MAAM,CACJ,OAAAhvE,CADI,CAEJ,MAAO,CAAE,MAAAG,CAAF,CAFH,CAAA,CAGF,IACJ,OAAOg\/E,GAAYY,CAAAA,eAAZ,CAA4BZ,EAAYO,CAAAA,mBAAZ,CAAgC1\/E,CAAhC,CAA5B,CAAqEG,CAArE,CAL8B,CAAvC,CAOA6uE,GAAA,CAAc,IAAd,CAAoB,kBAApB,CAAwC,EAAA,EAAM,CAC5C,MAAM,CACJ,cAAAqwB,CADI;AAEJ,MAAO,CAAE,MAAAl\/F,CAAF,CAFH,CAAA,CAGF,IACJ,OAAOg\/E,GAAYY,CAAAA,eAAZ,CAA4BZ,EAAYO,CAAAA,mBAAZ,CAAgC2f,CAAhC,CAA5B,CAA4El\/F,CAA5E,CALqC,CAA9C,CAOA6uE,GAAA,CAAc,IAAd,CAAoB,mBAApB,CAAyC,EAAzC,CACAA,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,IAAI5mD,CACJ,OAAM,CACJ,MAAO,CAAE,QAAAT,CAAF,CADH,CAEJ,OAAA1lB,CAFI,CAAA,CAGF,IACJ,KAAKokE,CAAAA,KAAL,CAAa,CAAC,IAA+B,IAA5B,GAACj+C,CAAD,CAAO,IAAKze,CAAAA,KAAM08D,CAAAA,KAAlB,EAAmCj+C,CAAnC,CAAyC,CAAC,CAAD,CAAI,CAAJ,CAA5C,CAAD,CACb,OAAMhoB,GAAO,CAAC6B,CAAO3C,CAAAA,KAAR,CAAe2C,CAAO5C,CAAAA,MAAtB,CACb,KAAKmhG,CAAAA,iBAAL,CAAyBt5F,MAAOye,CAAAA,MAAP,CAAcgC,CAAd,CAAuBtjB,CAAAA,GAAvB,CAA4B+wC,EAAD,EAAQ50C,EAAI+5E,CAAAA,IAAJ,CAASnlC,EAAGj1C,CAAAA,KAAZ,CAAmBC,EAAnB,CAAnC,CACzB,OAAO,KATkC,CAA3C,CAWA4uE,GAAA,CAAc,IAAd,CAAoB,UAApB,CAAgC,CAACsvB,CAAD,CAAepyB,CAAf,CAAA,EAAwB,CACtD,MAAM,CACJ,OAAAjqE,CADI,CAEJ,MAAO,CAACm\/E,EAAD,CAASC,EAAT,CAFH,CAAA,CAGFnV,CAHJ,CAIM,CACJ,MAAO,CAAE,QAAAvkD,EAAF,CADH,CAEJ,kBAAA64E,EAFI,CAAA,CAGF,IAPJ,CAQMpgG,GAAO,CAAC6B,CAAO3C,CAAAA,KAAR,CAAe2C,CAAO5C,CAAAA,MAAtB,CACPk\/F,EAAAA,CAAY,CAAC,GAAG,IAAKl4B,CAAAA,KAAT,CACL,EAAb,CAAI+a,EAAJ;CACEmd,CAAA,CAAU,CAAV,CADF,EACkB,CAAC,CADnB,CAEa,EAAb,CAAIld,EAAJ,GACEkd,CAAA,CAAU,CAAV,CADF,EACkB,CAAC,CADnB,CAEA,OAAO,KAAKp2D,CAAAA,MAAL,CAAY,CACjBhoC,MAAO,CAAC8B,CAAOC,CAAAA,IAAR,CAAcD,CAAOE,CAAAA,IAArB,CADU,CAEjBwlB,QAASzgB,MAAOye,CAAAA,MAAP,CAAcgC,EAAd,CAAuBtjB,CAAAA,GAAvB,CAA2B,CAACyuB,EAAD,CAASvzB,EAAT,CAAA,EAAgByF,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmB6tB,EAAnB,CAAd,CAA0C,CAC5F3yB,MAAOK,EAAI25E,CAAAA,IAAJ,CAASqmB,EAAA,CAAkBjhG,EAAlB,CAAT,CAAgCa,EAAhC,CADqF,CAA1C,CAA3C,CAFQ,CAKjBimE,MAAOk4B,CALU,CAAZ,CAf+C,CAAxD,CAuBAvvB,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAqC7uE,CAAD,EAAW,CAC7C,MAAM,CAAE,OAAAH,CAAF,CAAA,CAAa,IACnB,OAAO2lF,GAAWD,CAAAA,mBAAX,CAA+BllF,EAAIgC,CAAAA,GAAJ,CAAQrC,CAAR,CAAe,IAAKwJ,CAAAA,KAAMxJ,CAAAA,KAA1B,CAA\/B,CAAiEH,CAAjE,CAFsC,CAA\/C,CAIAgvE,GAAA,CAAc,IAAd,CAAoB,oBAApB,CAA0C,CAAClrE,CAAD,CAAKC,CAAL,CAAA,EAAY,CACpD,MAAM,CACJ,OAAA9B,CADI,CAEJ,OAAAjC,EAFI,CAGJ,MAAO,CAAE,MAAAG,EAAF,CAHH,CAAA,CAIF,IACJ,IAAIwlF,EAAWV,CAAAA,aAAX,CAAyBnhF,CAAzB,CAA6B7B,CAA7B,CAAJ,EAA4C0jF,EAAWV,CAAAA,aAAX,CAAyBlhF,CAAzB,CAA6B9B,CAA7B,CAA5C,EAAwI,CAAxI,CAAoFqD,CAAA,CAA2BrD,CAA3B,CAAmC6B,CAAnC,CAAuCC,CAAvC,CAA2CvE,CAAAA,MAA\/H,CAA2I,CACzI,MAAMggG,GAAKh\/F,EAAIgC,CAAAA,GAAJ,CAAQsB,CAAR,CAAY3D,EAAZ,CAAX,CACMs\/F,GAAKj\/F,EAAIgC,CAAAA,GAAJ,CAAQuB,CAAR,CAAY5D,EAAZ,CACX,OAAOoE,EAAA,CAA6Bi7F,EAA7B,CAAiCC,EAAjC,CAAqCz\/F,EAArC,CAA6CC,CAAAA,YAApD,EAAoE,CAAC,CAACD,EAAOspD,CAAAA,IAAP,CAAao2C,EAAD;AAAmC,CAAnC,CAAYl\/F,EAAIwlE,CAAAA,IAAJ,CAASw5B,EAAT,CAAaE,EAAb,CAAZ,EAA+D,CAA\/D,CAAwCl\/F,EAAIwlE,CAAAA,IAAJ,CAASy5B,EAAT,CAAaC,EAAb,CAApD,CAHmE,CAK3I,MAAO,CAAA,CAX6C,CAAtD,CAaA1wB,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsC\/sE,CAAD,EAAY,CAC\/C,MAAM,CACJ,cAAAq7F,CADI,CAEJ,OAAAt9F,CAFI,CAGJ,MAAO,CAAE,MAAAG,EAAF,CAHH,CAAA,CAIF,IAJJ,CAKMw\/F,GAAUxgB,EAAYY,CAAAA,eAAZ,CAA4B99E,CAA5B,CAAoCzB,EAAIg5E,CAAAA,GAAJ,CAAQr5E,EAAR,CAApC,CAChB,OAAOg\/E,GAAYI,CAAAA,aAAZ,CAA0Bt9E,CAA1B,CAAkCq7F,CAAlC,CAAP,EAA2Dt9F,CAAOipD,CAAAA,KAAP,CAAc22C,EAAD,EAAUja,EAAWV,CAAAA,aAAX,CAAyB2a,EAAzB,CAA+BD,EAA\/B,CAAvB,CAA3D,EAA8HxgB,EAAYG,CAAAA,aAAZ,CAA0Br9E,CAA1B,CAAkCq7F,CAAlC,CAA9H,EAAoO,CAApO,CA3+JGn4F,CAAA,CACL,CA0+JoNw6F,EA1+J5Mz9F,CAAAA,IAAR,CA0+JoNy9F,EA1+J\/Lx9F,CAAAA,IAArB,CADK,CAEL,CAy+JoNw9F,EAz+J5MrgG,CAAAA,KAAR,CAy+JoNqgG,EAz+J9LtgG,CAAAA,MAAtB,CAFK,CA2+JuMW,CA3+JvM,CA2+JwNR,CAAAA,MAP5K,CAAjD,CASAwvE,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsCrlE,CAAD,EAAW,CAC1CA,CAAMxJ,CAAAA,KAAV,GACEwJ,CAAMxJ,CAAAA,KADR,CACgB,CAAC,CAAD,CAAI,CAAJ,CADhB,CAEsB,KAAK,EAA3B,GAAIwJ,CAAMge,CAAAA,OAAV,EAAsE,CAAtE,CAAgCzgB,MAAOye,CAAAA,MAAP,CAAchc,CAAMge,CAAAA,OAApB,CAA6BnoB,CAAAA,MAA7D,GACEmK,CAAMge,CAAAA,OADR,CACkB44E,EAAiBj5E,CAAAA,YAAjB,CAAA,OADlB,CAEA,OAAO3d,EALuC,CAAhD,CAOAwX,GAAA,CAAe,IAAf,CApFsB,CAsFpB,UAAS,EAAA,CACX,MAAOja,OAAOye,CAAAA,MAAP,CAAc,IAAKhc,CAAAA,KAAMge,CAAAA,OAAzB,CAAkCtjB,CAAAA,GAAlC,CAAuC+wC,CAAD;AAAQA,CAAGj1C,CAAAA,KAAjD,CADI,CAGT,YAAW,EAAA,CACb,MAAM,CAAE,OAAAH,CAAF,CAAA,CAAa,IACnB,OAn+JewoF,GAm+JKC,CAAAA,kBAAb,CAAgCzoF,CAAhC,CAFM,CAIX,iBAAgB,EAAA,CAClB,MAAM,CACJ,SAAA4pF,CADI,CAEJ,MAAO,CAAE,QAAAjiE,CAAF,CAAW,SAAAtnB,CAAX,CAFH,CAAA,CAGF,IACJ,OAAKA,EAAL,CAEO6G,MAAOye,CAAAA,MAAP,CAAcgC,CAAd,CAAuBtjB,CAAAA,GAAvB,CAA4B+wC,CAAD,EAAQ50C,EAAIC,CAAAA,OAAJ,CAAY20C,CAAGj1C,CAAAA,KAAf,CAAsBypF,CAAtB,CAAgCvpF,CAAhC,CAAnC,CAFP,CACS,IAAKL,CAAAA,MANI,CA9FC,CAAvB,CAwGIygG,GAAkBF,EACtBvxB,GAAA,CAAcyxB,EAAd,CAA+B,IAA\/B,CAAqC,UAArC,CACAzxB,GAAA,CAAcyxB,EAAd,CAA+B,cAA\/B,CAA+C,CAC7C\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\/sE,CAAD,EAAY,CAC\/C,MAAM,CACJ,cAAAq7F,CADI,CAEJ,OAAAv\/F,CAFI,CAGJ,gBAAAgjG,EAHI,CAIJ,MAAO,CAAE,MAAA5gG,EAAF,CAJH,CAAA,CAKF,IALJ,CAMMw\/F,GAAUxgB,EAAYY,CAAAA,eAAZ,CAA4B99E,CAA5B,CAAoCzB,EAAIg5E,CAAAA,GAAJ,CAAQh5E,EAAIG,CAAAA,GAAJ,CAAQR,EAAR,CAAepC,CAAf,CAAR,CAApC,CAChB,OAAOohF,GAAYI,CAAAA,aAAZ,CAA0Bt9E,CAA1B;AAAkCq7F,CAAlC,CAAP,EAA2DyD,EAAgB93C,CAAAA,KAAhB,CAAuB22C,EAAD,EAAUja,EAAWV,CAAAA,aAAX,CAAyB2a,EAAzB,CAA+BD,EAA\/B,CAAhC,CAA3D,EAAiM,CAAjM,CAhnKGv6F,CAAA,CACL,CA+mKiLu6F,EA\/mKzKz9F,CAAAA,IAAR,CA+mKiLy9F,EA\/mK5Jx9F,CAAAA,IAArB,CADK,CAEL,CA8mKiLw9F,EA9mKzKrgG,CAAAA,KAAR,CA8mKiLqgG,EA9mK3JtgG,CAAAA,MAAtB,CAFK,CAgnK2J0hG,EAhnK3J,CAgnKqLvhG,CAAAA,MARzI,CAAjD,CAUAwvE,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsCrlE,CAAD,EAAW,CAC1CA,CAAMxJ,CAAAA,KAAV,GACEwJ,CAAMxJ,CAAAA,KADR,CACgB,CAAC,CAAD,CAAI,CAAJ,CADhB,CAEoB,KAAK,EAAzB,GAAIwJ,CAAM4\/E,CAAAA,KAAV,EAA4C,CAA5C,CAA8B5\/E,CAAM4\/E,CAAAA,KAApC,GACE5\/E,CAAM4\/E,CAAAA,KADR,CACgB,CADhB,CAEA,OAAO5\/E,EALuC,CAAhD,CAOAwX,GAAA,CAAe,IAAf,CAzCsB,CA2CpB,YAAW,EAAA,CACb,MAAO,KAAK8\/E,CAAAA,WAAL,EADM,CAGX,gBAAe,EAAA,CACjB,MAAM,CACJ,MAAO,CAAE,MAAA9gG,CAAF,CADH,CAEJ,SAAA6gG,CAFI,CAAA,CAGF,IACJ,OAAOA,EAAS38F,CAAAA,GAAT,CAAcu7F,CAAD,EAAUp\/F,EAAIG,CAAAA,GAAJ,CAAQi\/F,CAAR,CAAcz\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\/0D,CAAAA,QAAS\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\/wC,CAAvC,CAH4B,CAvBD,CA4B7B\/G,cAAe,CAAC83C,CAAD,CAAO\/wC,CAAP,CAAA\/G,EAAiB,CAC9B,IAAIhM,EAC0B,KAA9B,GAACA,EAAD,CAAO,IAAKgM,CAAAA,aAAZ,EAAqC,IAAK,EAA1C,CAA8ChM,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CAC9C,KAAKunE,CAAAA,YAAL,CAAkB,eAAlB;AAAmCx2B,CAAnC,CAAyC\/wC,CAAzC,CAH8B,CA5BH,CAiC7B9G,eAAgB,CAAC63C,CAAD,CAAO\/wC,CAAP,CAAA9G,EAAiB,CAC\/B,IAAIjM,EAC2B,KAA\/B,GAACA,EAAD,CAAO,IAAKiM,CAAAA,cAAZ,EAAsC,IAAK,EAA3C,CAA+CjM,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CAC\/C,KAAKunE,CAAAA,YAAL,CAAkB,gBAAlB,CAAoCx2B,CAApC,CAA0C\/wC,CAA1C,CAH+B,CAjCJ,CAsC7B7G,eAAgB,CAAC43C,CAAD,CAAO\/wC,CAAP,CAAA7G,EAAiB,CAC\/B,IAAIlM,EAC2B,KAA\/B,GAACA,EAAD,CAAO,IAAKkM,CAAAA,cAAZ,EAAsC,IAAK,EAA3C,CAA+ClM,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CAC\/C,KAAKunE,CAAAA,YAAL,CAAkB,gBAAlB,CAAoCx2B,CAApC,CAA0C\/wC,CAA1C,CAH+B,CAtCJ,CA2C7BpH,cAAe,CAACm4C,CAAD,CAAO\/wC,CAAP,CAAApH,EAAiB,CAC9B,IAAI3L,EAC0B,KAA9B,GAACA,EAAD,CAAO,IAAK2L,CAAAA,aAAZ,EAAqC,IAAK,EAA1C,CAA8C3L,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CAC9C,KAAKunE,CAAAA,YAAL,CAAkB,eAAlB,CAAmCx2B,CAAnC,CAAyC\/wC,CAAzC,CAH8B,CA3CH,CAgD7B5G,UAAW,CAAC23C,CAAD,CAAO\/wC,CAAP,CAAA5G,EAAiB,CAC1B,IAAInM,EACJ,KAAK65E,CAAAA,OAAQU,CAAAA,aAAb,CAA2Bz2B,CAA3B,CAAiC\/wC,CAAjC,CAC0B,KAA1B,GAAC\/S,EAAD,CAAO,IAAKmM,CAAAA,SAAZ,EAAiC,IAAK,EAAtC,CAA0CnM,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CAC1C,KAAKunE,CAAAA,YAAL,CAAkB,WAAlB;AAA+Bx2B,CAA\/B,CAAqC\/wC,CAArC,CAJ0B,CAhDC,CAsD7B3G,QAAS,CAAC03C,CAAD,CAAO\/wC,CAAP,CAAA3G,EAAiB,CACxB,IAAIpM,EACJ,KAAK65E,CAAAA,OAAQU,CAAAA,aAAb,CAA2Bz2B,CAA3B,CAAiC\/wC,CAAjC,CACwB,KAAxB,GAAC\/S,EAAD,CAAO,IAAKoM,CAAAA,OAAZ,EAA+B,IAAK,EAApC,CAAwCpM,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CACxC,KAAKunE,CAAAA,YAAL,CAAkB,SAAlB,CAA6Bx2B,CAA7B,CAAmC\/wC,CAAnC,CAJwB,CAtDG,CA4D7BiI,aAAc,CAAC8oC,CAAD,CAAO\/wC,CAAP,CAAAiI,EAAiB,CAC7B,IAAIhb,EACyB,KAA7B,GAACA,EAAD,CAAO,IAAKgb,CAAAA,YAAZ,EAAoC,IAAK,EAAzC,CAA6Chb,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CAC7C,KAAKunE,CAAAA,YAAL,CAAkB,cAAlB,CAAkCx2B,CAAlC,CAAwC\/wC,CAAxC,CAH6B,CA5DF,CAiE7BqI,QAAS,CAAC0oC,CAAD,CAAO\/wC,CAAP,CAAAqI,EAAiB,CACxB,IAAIpb,EACoB,KAAxB,GAACA,EAAD,CAAO,IAAKob,CAAAA,OAAZ,EAA+B,IAAK,EAApC,CAAwCpb,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CACxC,KAAKunE,CAAAA,YAAL,CAAkB,SAAlB,CAA6Bx2B,CAA7B,CAAmC\/wC,CAAnC,CAHwB,CAjEG,CAsE7BoI,WAAY,CAAC2oC,CAAD,CAAO\/wC,CAAP,CAAAoI,EAAiB,CAC3B,IAAInb,EACuB,KAA3B,GAACA,EAAD,CAAO,IAAKmb,CAAAA,UAAZ,EAAkC,IAAK,EAAvC,CAA2Cnb,EAAI9gB,CAAAA,IAAJ,CAAS,IAAT,CAAe4kE,CAAf,CAAqB\/wC,CAArB,CAC3C,KAAKunE,CAAAA,YAAL,CAAkB,YAAlB,CAAgCx2B,CAAhC,CAAsC\/wC,CAAtC,CAH2B,CAtEA,CA2E7BwnE,cAAe,CAACz2B,CAAD;AAAO\/wC,CAAP,CAAAwnE,EAAiB,CAC9B,OAAQxnE,CAAMtxB,CAAAA,GAAd,EACE,KAAK,OAAL,CACA,KAAK,KAAL,CACA,KAAK,MAAL,CACA,KAAK,MAAL,CACE,IAAKo4F,CAAAA,OAAQ7tE,CAAAA,aAAb,CAA2B83C,CAA3B,CAAiC\/wC,CAAjC,CALJ,CAD8B,CA3EH,CAA\/B,CAuFA6zC,GAAA,CAAc,IAAd,CAAoB,SAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,QAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,cAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,eAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,aAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,eAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,gBAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,gBAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,eAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,WAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,cAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,YAApB,CAEA,OAAMtc,EAAU,IAAKnrD,CAAAA,WAAL,CAAA,OAAhB,CACMu6F,EAAS,IAAKv6F,CAAAA,WAAL,CAAA,MACf,KAAKq7F,CAAAA,GAAL,CAHY,IAAKr7F,CAAAA,WAALgrB,CAAAA,EAIZ;IAAKswE,CAAAA,QAAL,CAAgBnwC,CAChB,KAAKowC,CAAAA,OAAL,CAAehB,CApLH,CAsLdr8D,OAAO,EAAG,CACR,IAAKs9D,CAAAA,YAAatqF,CAAAA,OAAlB,CAA2BuqF,CAAD,EAAgBA,CAAA,EAA1C,CACA,KAAKD,CAAAA,YAAL,CAAoB,EACpB,OAAO,KAHC,CAKN,WAAU,EAAA,CACZ,MAAO,KAAKF,CAAAA,QADA,CAGV,UAAS,EAAA,CACX,MAAO,KAAKC,CAAAA,OADD,CAGT,MAAK,EAAA,CACP,MAAO,KAAKF,CAAAA,GADL,CAGL,YAAW,EAAA,CACb,MAAO,KAAKH,CAAAA,SADC,CAGX,cAAa,EAAA,CACf,MAAO,CAAC,IAAD,CADQ,CAGb,eAAc,EAAA,CAChB,MAAO78F,MAAM4F,CAAAA,IAAN,CAAW,IAAKshC,CAAAA,QAASnnB,CAAAA,MAAd,EAAX,CAAmC49D,CAAAA,OAAnC,CAA4Cj6D,CAAD,EAAW,CAACA,CAAD,CAAQ,GAAGA,CAAM25E,CAAAA,WAAjB,CAAtD,CADS,CAGlBd,eAAe,CAAC74E,CAAD,CAAQ,CACrB,IAAK04E,CAAAA,YAAL,CAAoB14E,CADC,CA9MP,CAkNlB0lD,GAAA,CAAc2yB,EAAd,CAA2B,IAA3B,CACA3yB,GAAA,CAAc2yB,EAAd,CAA2B,WAA3B,CACA9yB,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEG+zF,EAAYn5F,CAAAA,SAFf,CAE0B,cAF1B,CAE0C,CAF1C,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEG4lF,EAAYn5F,CAAAA,SAFf,CAE0B,iBAF1B;AAE6C,CAF7C,CAGA,KAAI06F,GAAU,aAAcvB,GAAd,CACZp6F,WAAW,CAAC47F,CAAD,CAASj\/F,CAAT,CAAe,CAAA,IACpBkkB,CADoB,CACfkI,CACT,MAAA,EACA0+C,GAAA,CAAc,IAAd,CAAoB,OAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,UAApB,CAAgD,IAAIrmE,GAAJ,CAAQ,EAAR,CAAhD,CACAqmE,GAAA,CAAc,IAAd,CAAoB,gBAApB,CAAuC4yB,EAAD,EAAkB,CACtDA,EAAanpF,CAAAA,OAAb,CACGopF,EAAD,EAAgB,IAAK\/0D,CAAAA,QAAS\/+B,CAAAA,GAAd,CAAkB8zF,EAAWn7E,CAAAA,EAA7B,CAAiC,IAAIm7E,EAAJ,CAAe,IAAf,CAAqB,IAAKuB,CAAAA,KAA1B,CAAjC,CADlB,CAGA,OAAO,KAJ+C,CAAxD,CAMAp0B,GAAA,CAAc,IAAd,CAAoB,kBAApB,CAAyC8yB,EAAD,EAAY,CAClDA,EAAOrpF,CAAAA,OAAP,CAAgBopF,EAAD,EAAgB,CAC7B,IAAIz5E,EACwC,KAA5C,GAACA,EAAD,CAAO,IAAK0kB,CAAAA,QAASj8B,CAAAA,GAAd,CAAkBgxF,EAAWn7E,CAAAA,EAA7B,CAAP,EAAmD,IAAK,EAAxD,CAA4D0B,EAAIqd,CAAAA,OAAJ,EAC5D,KAAKqH,CAAAA,QAAS9V,CAAAA,MAAd,CAAqB6qE,EAAWn7E,CAAAA,EAAhC,CAH6B,CAA\/B,CAKA,OAAO,KAN2C,CAApD,CAQA,KAAK28E,CAAAA,OAAL,CAAeF,CACf,KAAKC,CAAAA,KAAL,CAAal\/F,CACT,KAAK49F,CAAAA,MAAT,EAAwC,CAAxC,CAAmB,IAAKA,CAAAA,MAAOtiG,CAAAA,MAA\/B,GACE,IAAK8jG,CAAAA,cAAL,CAAoB,IAAKxB,CAAAA,MAAzB,CAEMx4E,CADAi6E,CACAj6E,CADoC,IAAxB,GAAClB,CAAD,CAAO,IAAKsqC,CAAAA,OAAZ;AAA+BtqC,CAA\/B,CAAqC,IAAK05E,CAAAA,MAAL,CAAY,CAAZ,CAAep7E,CAAAA,EAChE4C,CAAAA,CAAAA,CAAQ,IAAKwjB,CAAAA,QAASj8B,CAAAA,GAAd,CAAkB0yF,CAAlB,CAHhB,IAKI,IAAKpB,CAAAA,eAAL,CAAqB74E,CAArB,CACA,CAA4B,IAA5B,GAACgH,CAAD,CAAM,IAAK0xE,CAAAA,YAAX,EAAmC,IAAK,EAAxC,CAA4C1xE,CAAG2xE,CAAAA,OAAQI,CAAAA,OAAX,CAAmB,CAAEt8E,OAAQ,SAAV,CAAnB,CANhD,CASA5E,GAAA,CAAe,IAAf,CA\/BwB,CAiCtB,QAAO,EAAA,CACT,MAAO,KAAKiiF,CAAAA,KADH,CAGP,UAAS,EAAA,CACX,MAAO,KAAKC,CAAAA,OADD,CAGT,cAAa,EAAA,CACf,MAAK,KAAKF,CAAAA,MAAV,CAEM,YAAN,EAAsB,KAAKA,CAAAA,MAA3B,CAEO,CAAC,GAAG,IAAKA,CAAAA,MAAOK,CAAAA,UAAhB,CAA4B,IAA5B,CAFP,CACS,CAAC,IAAKL,CAAAA,MAAN,CAAc,IAAd,CAHT,CACS,CAAC,IAAD,CAFM,CAxCL,CAgDdn0B,GAAA,CAAck0B,EAAd,CAAuB,QAAvB,CAGA,KAAIO,GAAS,aAAcP,GAAd,CACX37F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,UAApB,CAAgC,CAAA,CAAhC,CACAA,GAAA,CAAc,IAAd,CAAoB,UAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,CAAC,CAAE,OAAAjpD,CAAF,CAAD,CAAA,EAAgB,CAC7C,IAAK6jC,CAAAA,QAAL;AAAgB7jC,CACZ,KAAK6gB,CAAAA,MAAT,EACE,IAAKlP,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CAA2B,IAAK\/8D,CAAAA,MAAhC,CAH2C,CAA\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\/9E,CAA7B,CAn\/LDuiG,CAm\/LC,CADX,CAGA,KAAKJ,CAAAA,aAAcj8D,CAAAA,MAAnB,CAA0B,CACxBhoC,MAAO,CAAC8B,CAAOC,CAAAA,IAAR,CAAcD,CAAOE,CAAAA,IAArB,CADiB,CAExB\/B,KAAM,CAAC6B,CAAO3C,CAAAA,KAAR,CAAe2C,CAAO5C,CAAAA,MAAtB,CAFkB,CAA1B,CAjBA,CAD6C,CAA\/C,CAuBA2vE,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,IAAKv2C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CACI,KAAK82B,CAAAA,aAAT,EACE,IAAK1sE,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2B,CAAC,IAAKF,CAAAA,aAAN,CAA3B,CACA,CAAA,IAAK1sE,CAAAA,GAAIvF,CAAAA,GAAIsyE,CAAAA,SAAb,CAAuB,IAAKL,CAAAA,aAA5B,CAFF,EAIE,IAAK1sE,CAAAA,GAAI41C,CAAAA,UAAT,CAAoB,QAApB,CAEF,KAAK51C,CAAAA,GAAI80C,CAAAA,OAAT,EARuC,CAAzC,CAUAwC,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA;AAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACE,GAAI,CAAC,IAAKu6F,CAAAA,aAAV,CACE,KAAMzmG,MAAA,CAAM,4BAAN,CAAN,CACF,IAAK+5B,CAAAA,GAAI8pE,CAAAA,YAAT,CAAsB,CAAC,IAAK4C,CAAAA,aAAN,CAAtB,CACA,KAAK3rE,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CALJ,CAD6C,CAA\/C,CA\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\/B,CAZA,IAAK\/kG,CAAAA,MAYL,CAZc,CAAC,CAAC,CAAD,CAAI,CAAJ,CAAgC,IAAzB,GAACswB,EAAD,CAAMyzE,CAAA,CAAY,CAAZ,CAAN,EAAgCzzE,EAAhC,CAAqC,EAA5C,CAAD,CAYd,CAXA,IAAKlK,CAAAA,KAWL,CAXa,IAAI69E,CAAJ,CAAW,CACtBv9E,GAuuJDS,EAAA,EAxuJuB,CAEtBvG,KAAMqjF,CAAOv9E,CAAAA,EAFS,CAGtBa,SAAU,IAAKmQ,CAAAA,GAAI4yC,CAAAA,WAAY5jD,CAAAA,EAHT;AAItBvmB,MAAO4jG,CAAYx4F,CAAAA,KAAZ,CAAkB,CAAlB,CAAqB,CAArB,CAJe,CAKtBvL,OAAQ,IAAKA,CAAAA,MALS,CAMtB8\/F,WAAY,CAAA,CANU,CAOtBjgG,KAAM,IAAK63B,CAAAA,GAAIG,CAAAA,QAASpJ,CAAAA,KAPF,CAQtBo2C,OAAQ,IAAKntC,CAAAA,GAAIG,CAAAA,QAASpJ,CAAAA,KARJ,CAAX,CAWb,CADA,IAAKrI,CAAAA,KAAMsqC,CAAAA,aAAX,CAAyB,IAAKh5B,CAAAA,GAAIG,CAAAA,QAASw4B,CAAAA,UAA3C,CACA,CAAA,IAAK34B,CAAAA,GAAI4yC,CAAAA,WAAY+5B,CAAAA,SAArB,CAA+B,IAAKj+E,CAAAA,KAApC,CAhCiC,CAArC,CAmCA4oD,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CAAE,MAAA5oD,CAAF,CAAA,CAAY,IAAlB,CACM,CAAE,aAAA49E,CAAF,CAAgB,cAAAqB,CAAhB,CAAA,CAAkC,IAAK3tE,CAAAA,GAAIkK,CAAAA,MAC7CphC,GAAIoD,CAAAA,OAAJ,CAAYyhG,CAAZ,CAA2BrB,CAA3B,CAAJ,EAEA,IAAKoB,CAAAA,YAAL,CAAkB5kG,EAAIgC,CAAAA,GAAJ,CAAQwhG,CAAR,CAAsB59E,CAAMzc,CAAAA,KAAMxJ,CAAAA,KAAlC,CAAyCgJ,CAAAA,MAAzC,CAAgD66F,CAAA,CAAa,CAAb,CAAhD,CAAlB,CALyC,CAA3C,CAOAh1B,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,GAAI,CAAC,IAAK5oD,CAAAA,KAAV,CACE,KAAMzoB,MAAA,CAAM,4BAAN,CAAN,CACF,IAAK+5B,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EACA,KAAKlxD,CAAAA,KAAM+hB,CAAAA,MAAX,CAAkB,CAChB23D,WAAY,CAAA,CADI;AAEhB9\/F,OAAQ,IAAKy4B,CAAAA,IAAKstD,CAAAA,QAAV,CAAqBJ,EAAWH,CAAAA,SAAX,CAAqB,IAAKxlF,CAAAA,MAA1B,CAAkC,IAAKy4B,CAAAA,IAAK6sE,CAAAA,iBAA5C,CAArB,CAAsF,IAAKl\/E,CAAAA,KAAMzc,CAAAA,KAAM3J,CAAAA,MAF\/F,CAAlB,CAIA,KAAKy4B,CAAAA,IAAKssE,CAAAA,aAAV,CAA0B,IAAK3+E,CAAAA,KAC\/B,KAAKqS,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CACA,KAAI70C,EAAO,IAAKf,CAAAA,GAAIgB,CAAAA,YAAahS,CAAAA,EACpB,SAAb,GAAI+R,CAAJ,EAAkC,aAAlC,GAAyBA,CAAzB,CACE,IAAK8sE,CAAAA,gBAAL,EADF,CAGE,IAAK7tE,CAAAA,GAAI80C,CAAAA,OAAT,EAdqC,CAAzC,CAiBAwC,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACE,GAAI,CAAC,IAAKuc,CAAAA,KAAV,CACE,KAAMzoB,MAAA,CAAM,4BAAN,CAAN,CACF,IAAK+5B,CAAAA,GAAI8pE,CAAAA,YAAT,CAAsB,CAAC,IAAKp7E,CAAAA,KAAN,CAAtB,CACA,KAAKqS,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CALJ,CAD6C,CAA\/C,CAnEY,CA+Ed83B,YAAY,CAACjlG,CAAD,CAAQ,CAClB,MAAM,CAAE,MAAAimB,CAAF,CAAA,CAAY,IAAlB,CACMroB,EAASyC,EAAI8sB,CAAAA,GAAJ,CAAQntB,CAAR;AAAe,CAAC,CAAD,CAAI,CAAJ,CAAf,CACf,KAAKH,CAAAA,MAAOJ,CAAAA,IAAZ,CAAiBO,CAAjB,CACgB,EAAhB,CAAIpC,CAAA,CAAO,CAAP,CAAJ,EAAiC,CAAjC,CAAqBA,CAAA,CAAO,CAAP,CAArB,EACE,IAAKiC,CAAAA,MACL,CADc,IAAKA,CAAAA,MAAOqE,CAAAA,GAAZ,CAAiBs7E,CAAD,EAASn\/E,EAAIgC,CAAAA,GAAJ,CAAQm9E,CAAR,CAAa5hF,CAAb,CAAqBoL,CAAAA,MAArB,CAA4Bw2E,CAAA,CAAI,CAAJ,CAA5B,CAAzB,CACd,CAAAv5D,CAAM+hB,CAAAA,MAAN,CAAa,CACXhoC,MAAOK,EAAIG,CAAAA,GAAJ,CAAQylB,CAAMzc,CAAAA,KAAMxJ,CAAAA,KAApB,CAA2BpC,CAA3B,CADI,CAEXiC,OAAQ,IAAKA,CAAAA,MAFF,CAAb,CAFF,EAOEomB,CAAM+hB,CAAAA,MAAN,CAAa,CACXnoC,OAAQ,IAAKA,CAAAA,MADF,CAAb,CAXgB,CAhFD,CAiGrBgvE,GAAA,CAAc81B,EAAd,CAA8B,IAA9B,CAAoC,UAApC,CAGA,KAAIU,GAAa,aAAc3B,GAAd,CACft8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C8oE,CAAK54C,CAAAA,KAAT,EAAkB,IAAKoE,CAAAA,GAAI8N,CAAAA,QAA3B,EAEA,IAAK\/M,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAHiD,CAAnD,CAKA0B,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC9C,CAAD,CAAO\/wC,CAAP,CAAA,EAAiB,CACnD,IAAK1C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAAiC,CAAEpB,KAAAA,CAAF,CAAQ\/wC,MAAAA,CAAR,CAAjC,CADmD,CAArD,CAGA6zC,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACE,IAAK6tB,CAAAA,GAAI41C,CAAAA,UAAT,CAAoB,QAApB,CAFJ,CAD6C,CAA\/C,CAVY,CADC,CAqBjB0B;EAAA,CAAcw2B,EAAd,CAA0B,IAA1B,CAAgC,MAAhC,CAGA,KAAIC,GAAgB,aAAc5B,GAAd,CAClBt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,CAAC,CAAD,CAAI,CAAJ,CAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC,CAAD,CAAI,CAAJ,CAAjC,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CACvC,IAAKw5B,CAAAA,SAAL,CAAiBx5B,CAAKA,CAAAA,IAAKjmD,CAAAA,KAC3B,KAAKllB,CAAAA,MAAL,CAAcmrE,CAAKA,CAAAA,IAAK\/rE,CAAAA,KAFe,CAAzC,CAIA6uE,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CACvC,IAAKx0C,CAAAA,GAAI7C,CAAAA,QAAS8wE,CAAAA,SAAlB,CAA4Bz5B,CAAK\/rE,CAAAA,KAAjC,CAAwC+rE,CAAKjmD,CAAAA,KAA7C,CAAoDimD,CAAKjmD,CAAAA,KAAL,CAAW,CAAX,CAApD,CADuC,CAAzC,CAGA+oD,GAAA,CAAc,IAAd,CAAoB,YAApB,CAAkC,EAAA,EAAM,CACtC,IAAKv2C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CADsC,CAAxC,CAXY,CADI,CAiBpB0B,GAAA,CAAcy2B,EAAd,CAA6B,IAA7B,CAAmC,UAAnC,CAGA,KAAIG,GAAa,aAAcnC,GAAd,CACfl8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,WAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,UAApB,CAAgC,CAAA,CAAhC,CACAA,GAAA,CAAc,IAAd,CAAoB,mBAApB;AAAyC,CAAzC,CACAA,GAAA,CAAc,IAAd,CAAoB,eAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC9C,CAAD,CAAO\/wC,CAAP,CAAA,EAAiB,CACnD,IAAKmyC,CAAAA,UAAL,CAAgB,UAAhB,CAA4B,CAAEpB,KAAAA,CAAF,CAAQ\/wC,MAAAA,CAAR,CAA5B,CADmD,CAArD,CANY,CADC,CAYjB6zC,GAAA,CAAc42B,EAAd,CAA0B,IAA1B,CAAgC,MAAhC,CACA52B,GAAA,CAAc42B,EAAd,CAA0B,QAA1B,CAAoC,CAACJ,EAAD,CAAaV,EAAb,CAA6BW,EAA7B,CAApC,CACAz2B,GAAA,CAAc42B,EAAd,CAA0B,SAA1B,CAAqC,MAArC,CAGA,KAAIC,GAAe,aAAchC,GAAd,CACjBt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,CAAC,CAAC,CAAD,CAAI,CAAJ,CAAO,EAAP,CAAD,CAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiD,IAAInmE,GAArD,CACAmmE,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,EAAA,EAAM,CACnC,MAAM,CAAE,YAAA+0B,CAAF,CAAA,CAAkB,IAAKrsE,CAAAA,GAAIkK,CAAAA,MACjC,KAAK5hC,CAAAA,MAAL,CAAc,CAAC+jG,CAAD,CACd,KAAK+B,CAAAA,SAAU76D,CAAAA,KAAf,EAHmC,CAArC,CAKA+jC,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CAAE,aAAAg1B,CAAF,CAAgB,cAAAqB,CAAhB,CAAA,CAAkC,IAAK3tE,CAAAA,GAAIkK,CAAAA,MAC7CphC,GAAIoD,CAAAA,OAAJ,CAAYyhG,CAAZ,CAA2BrB,CAA3B,CAAJ,GAEA,IAAKhkG,CAAAA,MAAOJ,CAAAA,IAAZ,CAAiBokG,CAAjB,CAEA;AADA,IAAKtsE,CAAAA,GAAIquE,CAAAA,gBAAiB5hG,CAAAA,MAA1B,CAAkCiiB,CAAD,EAAWA,CAAM4\/E,CAAAA,kBAAN,CAAyBX,CAAzB,CAAwCrB,CAAxC,CAA5C,CAAmGvrF,CAAAA,OAAnG,CAA4G2N,CAAD,EAAW,IAAK0\/E,CAAAA,SAAUnlG,CAAAA,GAAf,CAAmBylB,CAAnB,CAAtH,CACA,CAAA,IAAKsR,CAAAA,GAAIuuE,CAAAA,gBAAT,CAA0BrgG,KAAM4F,CAAAA,IAAN,CAAW,IAAKs6F,CAAAA,SAAUngF,CAAAA,MAAf,EAAX,CAA1B,CAJA,CAFyC,CAA3C,CAQAqpD,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,IAAKt3C,CAAAA,GAAI8pE,CAAAA,YAAT,CAAsB57F,KAAM4F,CAAAA,IAAN,CAAW,IAAKs6F,CAAAA,SAAUngF,CAAAA,MAAf,EAAX,CAAtB,CACA,KAAK8S,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAFuC,CAAzC,CAIA0B,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACE,IAAK6tB,CAAAA,GAAIuuE,CAAAA,gBAAT,CAA0B,EAA1B,CACA,CAAA,IAAKxtE,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAHJ,CAD6C,CAA\/C,CArBY,CADG,CAiCnB0B,GAAA,CAAc62B,EAAd,CAA4B,IAA5B,CAAkC,SAAlC,CAGA,KAAIK,GAAa,aAAcrC,GAAd,CACft8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,eAApB;AAAqC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C8oE,CAAK54C,CAAAA,KAAT,EAEA,IAAKmF,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAHiD,CAAnD,CAKA0B,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC,GAAGrpE,CAAJ,CAAA,EAAa,CAAA,IAC3CyiB,CAD2C,CACtCkI,CACT,KAAKoH,CAAAA,GAAI41C,CAAAA,UAAT,CAAoB,QAApB,CAA8B,CAAEq3B,SAAU,IAAKjtE,CAAAA,GAAIsqE,CAAAA,YAAat7E,CAAAA,EAAlC,CAA9B,CACgD,KAAhD,GAAC4J,CAAD,CAA+B8S,CAAxBhb,CAAwBgb,CAAlB,IAAK1L,CAAAA,GAAIuqE,CAAAA,OAAS7+D,EAAAA,YAA\/B,EAAuD,IAAK,EAA5D,CAAgE9S,CAAGhpB,CAAAA,IAAH,CAAQ8gB,CAAR,CAAa,GAAGziB,CAAhB,CAHjB,CAAjD,CAKAqpE,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACE,IAAK6tB,CAAAA,GAAI41C,CAAAA,UAAT,CAAoB,QAApB,CAFJ,CAD6C,CAA\/C,CAZY,CADC,CAuBjB0B,GAAA,CAAck3B,EAAd,CAA0B,IAA1B,CAAgC,MAAhC,CAGA,KAAIC,GAAiB,aAActC,GAAd,CACnBt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,EAAA,EAAM,CACnC,MAAM,CAAE,aAAAg1B,CAAF,CAAA,CAAmB,IAAKtsE,CAAAA,GAAIkK,CAAAA,MAClC,KAAKlK,CAAAA,GAAIuuE,CAAAA,gBAAT,CACE,IAAKvuE,CAAAA,GAAIquE,CAAAA,gBAAiB5hG,CAAAA,MAA1B,CAAkCiiB,CAAD;AAAWA,CAAMggF,CAAAA,YAAN,CAAmBpC,CAAnB,CAA5C,CADF,CAFmC,CAArC,CAMAh1B,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CAAE,aAAAg1B,CAAF,CAAgB,YAAAD,CAAhB,CAAA,CAAgC,IAAKrsE,CAAAA,GAAIkK,CAAAA,MACL,EAA1C,CAAIphC,EAAIwlE,CAAAA,IAAJ,CAASg+B,CAAT,CAAuBD,CAAvB,CAAJ,GACE,IAAKtrE,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,SAArB,CACA,CAAA,IAAK51C,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2B,EAA3B,CAFF,CAFyC,CAA3C,CAOAt1B,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,MAAMq3B,EAAiB,CAAC,GAAG,IAAK3uE,CAAAA,GAAI4uE,CAAAA,aAAb,CACvB,KAAK5uE,CAAAA,GAAIuuE,CAAAA,gBAAT,CAA0B,EAA1B,CACA,KAAKvuE,CAAAA,GAAI8pE,CAAAA,YAAT,CAAsB6E,CAAtB,CACA,KAAK5tE,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAJuC,CAAzC,CAfY,CADK,CAwBrB0B,GAAA,CAAcm3B,EAAd,CAA8B,IAA9B,CAAoC,UAApC,CAGA,KAAII,GAAc,aAAc9C,GAAd,CAChBl8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,WAA9B,CAFY,CADE,CAMlBA,GAAA,CAAcu3B,EAAd,CAA2B,IAA3B,CAAiC,OAAjC,CACAv3B,GAAA,CAAcu3B,EAAd,CAA2B,QAA3B,CAAqC,CAACL,EAAD,CAAaC,EAAb,CAA6BN,EAA7B,CAArC,CACA72B,GAAA,CAAcu3B,EAAd;AAA2B,SAA3B,CAAsC,MAAtC,CAGA,KAAIC,GAAyB,aAAc3C,GAAd,CAC3Bt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,EAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,UAApB,CAAgC,KAAhC,CACAA,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,EAApC,CACAA,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,EAApC,CACAA,GAAA,CAAc,IAAd,CAAoB,kBAApB,CAAwC,EAAxC,CACAA,GAAA,CAAc,IAAd,CAAoB,qBAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,mBAApB,CAAyC,EAAzC,CACAA,GAAA,CAAc,IAAd,CAAoB,kBAApB,CAAwC,EAAxC,CACAA,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CACJ,OAAQ,CAAE,SAAA9rC,CAAF,CAAY,cAAAmiE,CAAZ,CAA2B,YAAAtB,CAA3B,CAAwC,aAAAC,CAAxC,CAAsD,OAAQyC,EAA9D,CAAuE,OAAA7jE,EAAvE,CADJ,CAEJ,SAAU,CAAE,WAAA2hE,EAAF,CAFN,CAAA,CAGF,IAAK7sE,CAAAA,GACT,KAAMtR,GAAQ,IAAKsR,CAAAA,GAAIgvE,CAAAA,YAAT,CAAsB,IAAKlI,CAAAA,YAAa93E,CAAAA,EAAxC,CAAd;AACM,CAAE,QAAAiB,EAAF,CAAA,CAAc,IAAK62E,CAAAA,YADzB,CAEMn4E,GAAW,IAAKA,CAAAA,QAFtB,CAGMsgF,GAAkC,OAAlB,GAAA,IAAKtgF,CAAAA,QAAL,CAA4B,KAA5B,CAAoC,OAC1D,IAAI,CAAAM,EAAY\/iB,CAAAA,OAAZ,CAAoByhG,CAApB,CAAmCrB,CAAnC,CAAJ,CAAA,CAEA,IAAI\/9E,GAAQU,EAAYnkB,CAAAA,GAAZ,CAAgBwhG,CAAhB,CAA8BD,CAA9B,CACZ,IAAI7gE,CAAJ,CAAc,CACZ,IAAMp\/B,GAAK6jB,EAAA,CAAQg\/E,EAAR,CAAuBxmG,CAAAA,KAAlC,CAEM8+D,GAAKt4C,EAAYhmB,CAAAA,GAAZ,CADAgnB,EAAA,CAAQtB,EAAR,CAAkBlmB,CAAAA,KAClB,CAAoB8lB,EAApB,CAFX,CAGM6V,GAAQnV,EAAYmV,CAAAA,KAAZ,CAAkBh4B,EAAlB,CAAsBm7D,EAAtB,CACR2nC,GAAAA,CAAWjgF,EAAYlmB,CAAAA,OAAZ,CAAoBw+D,EAApB,CAAwBn7D,EAAxB,CAA4BijC,EAAUogD,CAAAA,mBAAV,CAA8BrrD,EAA9B,CAAqC,EAArC,CAA5B,CAAuEA,EAAvE,CACjB7V,GAAA,CAAQU,EAAYhmB,CAAAA,GAAZ,CAAgBslB,EAAhB,CAAuBU,EAAYnkB,CAAAA,GAAZ,CAAgBokG,EAAhB,CAA0B3nC,EAA1B,CAAvB,CANI,CAQRkmC,EAAAA,CAAYx+E,EAAYhmB,CAAAA,GAAZ,CAAgBgnB,EAAA,CAAQtB,EAAR,CAAkBlmB,CAAAA,KAAlC,CAAyC8lB,EAAzC,CACZ4gF,GAAAA,CAAgB,CACpB,CAACxgF,EAAD,EAAYrhB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmB0iB,EAAA,CAAQtB,EAAR,CAAnB,CAAd,CAAqD,CAC\/DlmB,MAAOokG,EAAA,CAAa59E,EAAY4yD,CAAAA,IAAZ,CAAiB4rB,EAAjB,CAl3MdX,CAk3Mc,CAAb,CAAsD79E,EAAYC,CAAAA,OAAZ,CAAoBu+E,EAApB,CADE,CAE\/D7+E,UAAW,IAAK,EAF+C,CAArD,CADQ,CAMtB,KAAIwgF,GAAU,IAAKC,CAAAA,YAAaC,CAAAA,gBAAlB,CAAmC,IAAKxI,CAAAA,YAAxC,CAAsDqI,EAAtD,CACd,IAAKC,EAAL,CAAA,CAGS,EAAA,CAAAt6E,EAAA,CAAUpG,EAAMzc,CAAAA,KAAhB,CAAuBm9F,EAAvB,CACG,KAAA,GAAA,EAAA,CAERG,EACEC,GAAAA;AAAsB9gF,EAAMuB,CAAAA,OAAX,CAAmBtB,EAAnB,CACjB8gF,GAAAA,CAAsB\/gF,EAAMuB,CAAAA,OAAX,CAAmBg\/E,EAAnB,CACvB,IAAI,IAAKS,CAAAA,mBAAT,CAA8B,CAC5B,IAAIC,EAEJ,IADMC,EACN,CADoB,IAAK5vE,CAAAA,GAAIgvE,CAAAA,YAAT,CAAsB,IAAKU,CAAAA,mBAA3B,CACpB,CAAiB,CACT9mG,EAAAA,CAASgnG,EAAYtgF,CAAAA,SAAZ,EAETugF,GAAAA,CAAiBnhF,EAAMuB,CAAAA,OAAQE,CAAAA,GACrC,KAAM2\/E,GAAW7gF,EAAYhmB,CAAAA,GAAZ,CAFQylB,EAAMuB,CAAAA,OAAQC,CAAAA,KAEMznB,CAAAA,KAA5B,CAAwCimB,EAAMjmB,CAAAA,KAA9C,CACbwmB,GAAY\/iB,CAAAA,OAAZ,CAAoB4jG,EAApB,CAA8BlnG,EAA9B,CAAJ,EACEknG,EAAA,CAAS,CAAT,CAAA,EAEIC,GAAAA,CAAgBH,EAAYlB,CAAAA,YAAZ,CAAyBpC,CAAzB,CAChB0D,GAAAA,CAAe\/gF,EAAYc,CAAAA,GAAZ,CAAgBd,EAAYnkB,CAAAA,GAAZ,CAAgBglG,EAAhB,CAFnBlnG,EAEmB,CAAhB,CACrB,OAAMqnG,GAA4E,IAAK,EAAjFA,GAAkB,IAAKjwE,CAAAA,GAAI4yC,CAAAA,WAAY\/kD,CAAAA,QAArB,CAA8B,IAAKqiF,CAAAA,iBAAnC,CACnBnB,GAAL,EAAiBa,EAAYlB,CAAAA,YAAZ,CAAyBz\/E,EAAYhmB,CAAAA,GAAZ,CAAqBylB,EAAMjmB,CAAAA,KAA3B,CAAkConG,EAAUpnG,CAAAA,KAA5C,CAAzB,CAAjB,GACEknG,EADF,CACqBlhF,EAAA,CACjBC,EAAMzc,CAAAA,KADW,CAEjB29F,EAFiB,CAGjB,OAHiB,CAIjB,IAAKM,CAAAA,iBAJY,CAKjBtnG,EALiB,CALHA,EAKG,CAOjBonG,EAPiB,CAQjBD,EARiB,CADrB,CAYIJ,GAAJ,EAAwB,CAACM,EAAzB,EACOpiF,EAAL,CAAc,IAAKqiF,CAAAA,iBAAnB,CACA;AADwCP,EACxC,CAAKjhF,EAAMuB,CAAAA,OAAQC,CAAAA,KAAMtB,CAAAA,SAAzB,CAAqC+gF,EAAiB3gF,CAAAA,EAFxD,EAGW,CAAC2gF,EAHZ,EAGgCM,EAHhC,GAIE5uF,OAAQ8G,CAAAA,GAAR,CAAY,wBAAZ,CAEA,CADA,OAAY0F,EAAL,CAAc,IAAKqiF,CAAAA,iBAAnB,CACP,CAAKxhF,EAAMuB,CAAAA,OAAQC,CAAAA,KAAMtB,CAAAA,SAAzB,CAAqC,IAAK,EAN5C,CAvBe,CAHW,CAoC9B,GAAI,CAACmgF,EAAL,CAAc,CACNoB,EAAAA,CAAYlhF,EAAYhmB,CAAAA,GAAZ,CAAgBwmG,EAAehnG,CAAAA,KAA\/B,CAA2CimB,EAAMjmB,CAAAA,KAAjD,CACZqnG,GAAAA,CAAW7gF,EAAYhmB,CAAAA,GAAZ,CAAgBumG,EAAe\/mG,CAAAA,KAA\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\/F,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBg\/F,CAAO38E,CAAAA,YAA1B,CAAd,CAAuD,CAC9EZ,GA40ICS,EAAA,EA70I6E,CAE9EvG,KAAMqjF,CAAOv9E,CAAAA,EAFiE,CAG9Ea,SAAU,IAAKmQ,CAAAA,GAAI4yC,CAAAA,WAAY5jD,CAAAA,EAH+C,CAI9EvmB,MAAO,IAAKu3B,CAAAA,GAAIG,CAAAA,QAAS0sE,CAAAA,UAAlB,CAA+B59E,EAAY4yD,CAAAA,IAAZ,CAAiBwqB,CAAjB,CAxgN9BS,CAwgN8B,CAA\/B,CAA0ET,CAJH,CAK9ElkG,KAAM,IAAK63B,CAAAA,GAAIG,CAAAA,QAASpJ,CAAAA,KALsD;AAM9Eo2C,OAAQ,IAAKntC,CAAAA,GAAIG,CAAAA,QAASpJ,CAAAA,KANoD,CAO9E4hC,WAAY,IAAK34B,CAAAA,GAAIG,CAAAA,QAASw4B,CAAAA,UAPgD,CAAvD,CAAX,CASd,KAAKmuC,CAAAA,YAAL,CAAoBj\/E,EAAA,CAAK6G,CAAMzc,CAAAA,KAAX,CACpB,KAAKo9F,CAAAA,YAAL,CAAoB3gF,CACpB,KAAKsR,CAAAA,GAAI4yC,CAAAA,WAAY+5B,CAAAA,SAArB,CAA+Bj+E,CAA\/B,CACA,KAAKsR,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2B,CAACl+E,CAAD,CAA3B,CAEA,IADA,IAAKghF,CAAAA,mBACL,CADyK,IAA9I,GAACh\/E,CAAD,CAAO,IAAK6\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\/C1sD,KAAM,OADyC,CAE\/CwF,MAAO,IAAKg+E,CAAAA,aAFmC,CAG\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\/B,CAAcC,CAAAA,OAAnB,EAAkDn\/B,CAApBk\/B,CAAczgG,CAAAA,KAAMuhE,CAAAA,QAAlD,CAEA,OAAQgB,CAAKtrD,CAAAA,IAAb,EACE,KAAK,OAAL,CACE,IAAK6X,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,cAArB,CAAqCpB,CAArC,CACA,MAEF,MAAK,WAAL,CAC8C,CAA5C,GAAI,IAAKx0C,CAAAA,GAAIszC,CAAAA,mBAAoBxrE,CAAAA,MAAjC,EACE,IAAKi5B,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,cAArB,CAAqC,CACnC1sD,KAAM,OAD6B,CAEnCpX,OAAQ4gG,CAF2B,CAArC,CAPN,CALA,CAD6C,CAA\/C,CAsBAp7B,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,CAAM,CAAE,oBAAA4nE,CAAF,CAAN,CAAgC,IAAKtzC,CAAAA,GAArC,CACA,QAAQt0B,CAAGyG,CAAAA,GAAX,EACE,KAAK,OAAL,CACqC,CAAnC,GAAImhE,CAAoBxrE,CAAAA,MAAxB,EAAwCwrE,CAAA,CAAoB,CAApB,CAAuBq\/B,CAAAA,OAA\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\/C,CAAmDtiF,CAAI8iF,CAAAA,KAAJ,EAC\/CtpE,EAAOgB,CAAAA,MAAX,CACE,IAAKuoE,CAAAA,YAAL,EADF;AAGE,IAAKC,CAAAA,2BAAL,EAbiC,CAArC,CAgBAp8B,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,EAAA,EAAM,CAClC,IAAKt3C,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EAEA,KAAK+zB,CAAAA,SAAL,CADA,IAAKC,CAAAA,QACL,CADgB,CAAA,CAEhB,KAAKC,CAAAA,MAAL,CAAc,EACd,KAAKT,CAAAA,aAAL,CAAqB,EACrB,KAAKC,CAAAA,kBAAL,CAA0B,EAC1B,KAAKS,CAAAA,kBAAL,CAA0B,EAPQ,CAApC,CASAx8B,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CACJ,OAAQ,CAAE,aAAAg1B,CAAF,CADJ,CAAA,CAEF,IAAKtsE,CAAAA,GACT,KAAK0zE,CAAAA,2BAAL,EACA,KAAK1zE,CAAAA,GAAI7C,CAAAA,QAASk1E,CAAAA,wBAAlB,CAA2C\/F,CAA3C,CALyC,CAA3C,CAOAh1B,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,IAAKt3C,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EACA,KAAK5\/C,CAAAA,GAAI80C,CAAAA,OAAT,EACA,KAAK\/zC,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAHyC,CAA3C,CAKA0B,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,IAAKt3C,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EACA;IAAK5\/C,CAAAA,GAAI80C,CAAAA,OAAT,EACA,KAAK\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\/E33E,GAmtHDS,EAAA,EAptHgF,CAE\/EvG,KAAMwF,CAAMxF,CAAAA,IAFmE,CAG\/EzgB,MAAO,IAAK2qG,CAAAA,aAAL,CAAmB1kF,CAAMM,CAAAA,EAAzB,CAHwE,CAI\/ErmB,SAAU+lB,CAAMzc,CAAAA,KAAMtJ,CAAAA,QAJyD,CAK\/E6qE,SAAU,CAAA,CALqE,CAApD,CAAf7hD,CAJ6C,CAA\/C,CAgBd,CAHA,IAAKmiF,CAAAA,kBAGL,CAH0BtkG,MAAOq9E,CAAAA,WAAP,CACxB,IAAKgnB,CAAAA,MAAOlnG,CAAAA,GAAZ,CAAgB,CAAC,CAAE,GAAIkuB,CAAN,CAAW,MAAO,CAAE,MAAApyB,CAAF,CAAlB,CAAD,CAAA,EAAmC,CAACoyB,CAAD,CAAMpyB,CAAMoL,CAAAA,KAAN,EAAN,CAAnD,CADwB,CAG1B,CAAA,IAAK+\/F,CAAAA,QAAL,CAAgB,CAAA,CAjBlB,CAmBA,KAAK5zE,CAAAA,GAAI+zE,CAAAA,iBAAkBhzF,CAAAA,OAA3B,CAAoC2N,CAAD,EAAW,CAC5CA,CAAM+hB,CAAAA,MAAN,CAAa,CAAEhoC,MAAO,IAAK2qG,CAAAA,aAAL,CAAmB1kF,CAAMM,CAAAA,EAAzB,CAAT,CAAb,CAD4C,CAA9C,CAGA,KAAKokF,CAAAA,aAAL,CAAqB,IAAKU,CAAAA,kBAC1B,KAAK9zE,CAAAA,GAAI4yC,CAAAA,WAAY+5B,CAAAA,SAArB,CAA+B,GAAG,IAAKkH,CAAAA,MAAvC,CACA;IAAK7zE,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2Bp9F,MAAO6B,CAAAA,IAAP,CAAY,IAAKyiG,CAAAA,kBAAjB,CAA3B,CACA,KAAKJ,CAAAA,2BAAL,EACA,KAAKC,CAAAA,SAAL,CAAiB,CAAA,CA3BJ,CA1GM,CAwIvBr8B,GAAA,CAAc47B,EAAd,CAAgC,IAAhC,CAAsC,aAAtC,CAGA,KAAIiB,GAA6B,aAAchI,GAAd,CAC\/Bt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,sBAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CACvC,IAAK4\/B,CAAAA,oBAAL,CAA4B5\/B,CAAK9lD,CAAAA,KADM,CAAzC,CAGA4oD,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,EAAA,EAAM,CAClC,IAAK88B,CAAAA,oBAAL,CAA4B,IAAK,EADC,CAApC,CAGA98B,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CAAE,aAAAg1B,CAAF,CAAgB,YAAAD,CAAhB,CAAA,CAAgC,IAAKrsE,CAAAA,GAAIkK,CAAAA,MACL,EAA1C,CAAIphC,EAAIwlE,CAAAA,IAAJ,CAASg+B,CAAT,CAAuBD,CAAvB,CAAJ,EAA+C,CAAC,IAAKrsE,CAAAA,GAAI8N,CAAAA,QAAzD,EACE,IAAK\/M,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,aAArB,CAHuC,CAA3C,CAMA0B;EAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,MAAM,CAAE,SAAA9rC,CAAF,CAAY,aAAA8gE,CAAZ,CAAA,CAA6B,IAAKtsE,CAAAA,GAAIkK,CAAAA,MAC5C,KAAM,CAAE,oBAAAopC,CAAF,CAAA,CAA0B,IAAKtzC,CAAAA,GACrC,IAAI,CAAC,IAAKo0E,CAAAA,oBAAV,CACE,KAAMnuG,MAAA,CAAM,mCAAN,CAAN,CACF,GAAIulC,CAAJ,CAIE,CAHM,CAAE,YAAAkF,CAAF,CAGN,CAHwB,IAAK1Q,CAAAA,GAG7B,EAFMzrB,CAEN,CAFarG,KAAM4F,CAAAA,IAAN,CAAW48B,CAAYziB,CAAAA,MAAZ,EAAX,CAEb,CADA1Z,CAAK+M,CAAAA,MAAL,CAAY\/M,CAAKuU,CAAAA,OAAL,CAAa,IAAKsrF,CAAAA,oBAAqBplF,CAAAA,EAAvC,CAAZ,CAAwD,CAAxD,CACA,CAAA,IAAKgR,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2Br4F,CAA3B,CAJF,KAKO,CAAA,GAAmC,CAAnC,GAAI++D,CAAoBxrE,CAAAA,MAAxB,EAAwC,IAAKssG,CAAAA,oBAAqBzB,CAAAA,OAAlE,EAA6E,CAAC,IAAK3yE,CAAAA,GAAI8N,CAAAA,QAAvF,EAAmG,CAAC,IAAKsmE,CAAAA,oBAAqBniG,CAAAA,KAAMuhE,CAAAA,QAApI,EAAgJ,IAAK4gC,CAAAA,oBAArJ,WAAqL5M,GAArL,EAAmMvZ,EAAWV,CAAAA,aAAX,CAAyB+e,CAAzB;AAAuC,IAAK8H,CAAAA,oBAAqB7pG,CAAAA,MAAjE,CAAnM,CAA6Q,CAClR,IAAKw2B,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,cAArB,CAAqC,CACnClnD,MAAO,IAAK0lF,CAAAA,oBADuB,CAEnCx4E,MAAO,CAF4B,CAGnC1S,KAAM,OAH6B,CAArC,CAKA,OANkR,CAQlR,IAAK8W,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2B,CAAC,IAAKwH,CAAAA,oBAAqBplF,CAAAA,EAA3B,CAA3B,CARK,CAUP,IAAK+R,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CApBuC,CAAzC,CAsBA0B,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC9C,CAAD,CAAO\/wC,CAAP,CAAA,EAAiB,CACnD,IAAK1C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAAiC,CAAEpB,KAAAA,CAAF,CAAQ\/wC,MAAAA,CAAR,CAAjC,CADmD,CAArD,CArCY,CADiB,CA2CjC6zC,GAAA,CAAc68B,EAAd,CAA0C,IAA1C,CAAgD,uBAAhD,CAGA,KAAIE,GAA4B,aAAclI,GAAd,CAC9Bt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,MAApB,CAA4B,EAA5B,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CACvC,IAAKA,CAAAA,IAAL,CAAYA,CACZ,KAAK8\/B,CAAAA,YAAL,EAFuC,CAAzC,CAIAh9B,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,EAAA,EAAM,CAClC,IAAKt3C,CAAAA,GAAIgsE,CAAAA,OAAQ1xC,CAAAA,KAAjB,EADkC,CAApC,CAGAgd;EAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CAAE,aAAAg1B,CAAF,CAAgB,YAAAD,CAAhB,CAAA,CAAgC,IAAKrsE,CAAAA,GAAIkK,CAAAA,MACL,EAA1C,CAAIphC,EAAIwlE,CAAAA,IAAJ,CAASg+B,CAAT,CAAuBD,CAAvB,CAAJ,EACE,IAAKtrE,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAAiC,IAAKpB,CAAAA,IAAtC,CAHuC,CAA3C,CAMA8C,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,IAAKv2C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,yBAArB,CAAgD,IAAKpB,CAAAA,IAArD,CADuC,CAAzC,CAGA8C,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC9C,CAAD,CAAO\/wC,CAAP,CAAA,EAAiB,CACnD,IAAK1C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAAiC,CAAEpB,KAAAA,CAAF,CAAQ\/wC,MAAAA,CAAR,CAAjC,CADmD,CAArD,CAnBY,CAuBd6wE,YAAY,EAAG,CAGb,IAAKt0E,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CADevd,EAAAx\/C,CAAQ,IAAKslC,CAAAA,IAAKp5C,CAAAA,MAAlB8T,CACf,CAFiB,IAAKlP,CAAAA,GAAIyyE,CAAAA,eAAgB9pG,CAAAA,QAE1C,CAHa,CAxBe,CA8BhC2uE,GAAA,CAAc+8B,EAAd,CAAyC,IAAzC,CAA+C,sBAA\/C,CAGA,KAAIE,GAAiB,aAAcpI,GAAd,CACnBt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE;EAAA,CAAc,IAAd,CAAoB,UAApB,CAAgC,CAAA,CAAhC,CACAA,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,qBAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAjC,CACAA,GAAA,CAAc,IAAd,CAAoB,qBAApB,CAA2C,EAA3C,CACAA,GAAA,CAAc,IAAd,CAAoB,mBAApB,CAAyC,CAAzC,CACAA,GAAA,CAAc,IAAd,CAAoB,YAApB,CAAkC,QAAlC,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CAAA,IACnC9jD,CADmC,CAC9BkI,CACT,OAAM,CAAE,QAAA00E,CAAF,CAAW,oBAAAh6B,EAAX,CAAgC,gBAAAm\/B,EAAhC,CAAA,CAAoD,IAAKzyE,CAAAA,GAC\/D,IAAI,CAACyyE,EAAL,CACE,KAAMxsG,MAAA,CAAM,6BAAN,CAAN,CACF,IAAKm1B,CAAAA,MAAL,CAAco5C,CAAKp5C,CAAAA,MACnB,KAAKo5E,CAAAA,UAAL,CAAkC,WAAhB,GAAAhgC,CAAKp5C,CAAAA,MAAL,EAA0D,YAA1D,GAA0Co5C,CAAKp5C,CAAAA,MAA\/C,CAAqF,iBAArF,CAAyH,UAAhB,GAAAo5C,CAAKp5C,CAAAA,MAAL,EAAwD,aAAxD,GAAwCo5C,CAAKp5C,CAAAA,MAA7C,CAAqF,eAArF,CAAuG,QAClO;IAAK4E,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CACEsI,EAAe7lB,CAAAA,OAAf,CAAuBla,CAAKp5C,CAAAA,MAA5B,CADF,CAEsC,IAApC,GAAC1K,CAAD,CAAO,IAAKsP,CAAAA,GAAIyyE,CAAAA,eAAhB,EAA2C,IAAK,EAAhD,CAAoD\/hF,CAAI\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\/C,CAAAA,GAAI80C,CAAAA,OAAT,EACA,KAAK\/zC,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAHuC,CAAzC,CAKA0B,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACE,IAAK6tB,CAAAA,GAAI4V,CAAAA,cAAe70B,CAAAA,OAAxB,CAAiC2N,CAAD,EAAW,CACzCA,CAAM+hB,CAAAA,MAAN,CAAaljC,EAAA,CAAe,EAAf,CAAmB,IAAKsnG,CAAAA,SAAL,CAAenmF,CAAMM,CAAAA,EAArB,CAAyB\/c,CAAAA,KAA5C,CAAb,CADyC,CAA3C,CAGA,CAAA,IAAK8uB,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CALJ,CAD6C,CAA\/C,CArJY,CAiKd0+B,YAAY,CAAC5qB,CAAD,CAASC,CAAT,CAAiB,CAAA,IACvBj5D,CADuB,CAClBkI,CADkB,CACdC,EADc,CACVi0D,EACjB,OAAMrC,GAAsB,CAAtBA,CAAaf,CAAbe,EAAqC,CAArCA,EAA2Bd,CAC3Be,EAAAA,CAAsB,CAAtBA;AAAaf,CAAbe,EAAqC,CAArCA,EAA2BhB,CACjC,QAAQ,IAAKtuD,CAAAA,MAAb,EACE,KAAK,iBAAL,CACA,KAAK,qBAAL,CACMqvD,EAAJ,EAAkBC,CAAlB,CACkC,aADlC,GACM,IAAK1qD,CAAAA,GAAIgsE,CAAAA,OAAQ98D,CAAAA,MADvB,EAEI,IAAKlP,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CAA2B,aAA3B,CAA+F,IAApC,GAACv7E,CAAD,CAAO,IAAKsP,CAAAA,GAAIyyE,CAAAA,eAAhB,EAA2C,IAAK,EAAhD,CAAoD\/hF,CAAI\/nB,CAAAA,QAAnH,CAFJ,CAKkC,aALlC,GAKM,IAAKq3B,CAAAA,GAAIgsE,CAAAA,OAAQ98D,CAAAA,MALvB,EAMI,IAAKlP,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CAA2B,aAA3B,CAA8F,IAAnC,GAACrzE,CAAD,CAAM,IAAKoH,CAAAA,GAAIyyE,CAAAA,eAAf,EAA0C,IAAK,EAA\/C,CAAmD75E,CAAGjwB,CAAAA,QAAjH,CAGJ,MAEF,MAAK,kBAAL,CACA,KAAK,oBAAL,CACM8hF,EAAJ,EAAkBC,CAAlB,CACkC,aADlC,GACM,IAAK1qD,CAAAA,GAAIgsE,CAAAA,OAAQ98D,CAAAA,MADvB,EAEI,IAAKlP,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CAA2B,aAA3B,CAA8F,IAAnC;CAACpzE,EAAD,CAAM,IAAKmH,CAAAA,GAAIyyE,CAAAA,eAAf,EAA0C,IAAK,EAA\/C,CAAmD55E,EAAGlwB,CAAAA,QAAjH,CAFJ,CAKkC,aALlC,GAKM,IAAKq3B,CAAAA,GAAIgsE,CAAAA,OAAQ98D,CAAAA,MALvB,EAMI,IAAKlP,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CAA2B,aAA3B,CAA8F,IAAnC,GAACnf,EAAD,CAAM,IAAK9sD,CAAAA,GAAIyyE,CAAAA,eAAf,EAA0C,IAAK,EAA\/C,CAAmD3lB,EAAGnkF,CAAAA,QAAjH,CAtBR,CAJ2B,CAlKV,CAArB,CAoMI6sG,GAAgBjB,EACpBj9B,GAAA,CAAck+B,EAAd,CAA6B,IAA7B,CAAmC,UAAnC,CACAl+B,GAAA,CAAck+B,EAAd,CAA6B,SAA7B,CAAwC,CACtC,YAA8B,WADQ,CAEtC,SAAwB,WAFc,CAGtC,UAA0B,WAHY,CAItC,WAA4B,WAJU,CAKtC,mBAAyC,aALH,CAMtC,oBAA2C,aANL,CAOtC,gBAAmC,aAPG,CAQtC,iBAAqC,aARC,CAAxC,CAYA,KAAIC,GAA4B,aAActJ,GAAd,CAC9Bt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE;EAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,QAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,EAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CACvC,IAAKx0C,CAAAA,GAAIstE,CAAAA,OAAQC,CAAAA,KAAjB,EACA,KAAKnyE,CAAAA,MAAL,CAAco5C,CAAKp5C,CAAAA,MACnB,KAAKk5E,CAAAA,YAAL,EAHuC,CAAzC,CAKAh9B,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CAAE,aAAAg1B,CAAF,CAAgB,YAAAD,CAAhB,CAAA,CAAgC,IAAKrsE,CAAAA,GAAIkK,CAAAA,MACL,EAA1C,CAAIphC,EAAIwlE,CAAAA,IAAJ,CAASg+B,CAAT,CAAuBD,CAAvB,CAAJ,EACE,IAAKtrE,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAAiC,CAAEx6C,OAAQ,IAAKA,CAAAA,MAAf,CAAjC,CAHuC,CAA3C,CAMAk8C,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,IAAKt3C,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EACA,KAAK5\/C,CAAAA,GAAI80C,CAAAA,OAAT,EACA,KAAK\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\/B,CAAhC,CAAA,CAAoD,IAAKzyE,CAAAA,GAC\/D;GAAI,CAACyyE,CAAL,CACE,KAAMxsG,MAAA,CAAM,2BAAN,CAAN,CACFqnG,CAAQC,CAAAA,KAAR,EACA,KAAKnyE,CAAAA,MAAL,CAAco5C,CAAKp5C,CAAAA,MACnB,KAAKw6E,CAAAA,wBAAL,CAAgC,IAAK51E,CAAAA,GAAI00E,CAAAA,iBACzC,KAAKE,CAAAA,mBAAL,CAA2BrnG,EAAA,CAAe,EAAf,CAAmBklG,CAAnB,CAC3B,KAAKoD,CAAAA,mBAAL,CAA2BpuB,EAAYW,CAAAA,eAAZ,CAA4BqqB,CAA5B,CAC3B,KAAKqD,CAAAA,YAAL,CAAoBhtG,EAAIs7B,CAAAA,KAAJ,CAAU,IAAKyxE,CAAAA,mBAAf,CAAoC,IAAK71E,CAAAA,GAAIkK,CAAAA,MAAOoiE,CAAAA,YAApD,CACpB,KAAKyJ,CAAAA,QAAL,CAAgBvmG,MAAOq9E,CAAAA,WAAP,CACdvZ,CAAoB3mE,CAAAA,GAApB,CAAyB+hB,EAAD,EAAW,CACjCA,EAAMM,CAAAA,EAD2B,CAEjC,CACEvmB,MAAO,CAAC,GAAGimB,EAAMzc,CAAAA,KAAMxJ,CAAAA,KAAhB,CADT,CAEEG,OAAQ,CAAC,GAAG8lB,EAAM9lB,CAAAA,MAAV,CAFV,CAGED,SAAU+lB,EAAMzc,CAAAA,KAAMtJ,CAAAA,QAHxB,CAIEsnB,QAAS,SAAA,EAAavB,GAAb,CAAqBs4E,EAAA,CAASt4E,EAAMuB,CAAAA,OAAf,CAArB,CAA+C,IAAK,EAJ\/D,CAFiC,CAAnC,CADc,CAWhB,KAAKqkF,CAAAA,YAAL,EArBuC,CAAzC,CAuBAh9B,GAAA,CAAc,IAAd;AAAoB,QAApB,CAA8B,EAAA,EAAM,CAClC,IAAKt3C,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EACA,KAAKm2B,CAAAA,QAAL,CAAgB,EAFkB,CAApC,CAIAz+B,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,MAAM,CACJ,eAAA1hC,CADI,CAEJ,OAAQ,CAAE,SAAApK,CAAF,CAAY,aAAA8gE,CAAZ,CAFJ,CAAA,CAGF,IAAKtsE,CAAAA,GAHT,CAIM,CAAE,SAAA+1E,CAAF,CAAY,oBAAAF,EAAZ,CAAiC,aAAAC,EAAjC,CAA+C,yBAAAF,EAA\/C,CAAA,CAA4E,IAElF,KAAItmB,GADiBxmF,EAAIs7B,CAAAA,KAAJ4xE,CAAUH,EAAVG,CAA+B1J,CAA\/B0J,CACjB1mB,CAA4BwmB,EAC5BtqE,EAAJ,GACE8jD,EADF,CACejgD,EAAUogD,CAAAA,mBAAV,CAA8BH,EAA9B,CAA0C,EAA1C,CADf,CAGA15C,EAAe70B,CAAAA,OAAf,CAAwB2N,EAAD,EAAW,CAChC,IAAMo4E,GAAeiP,CAAA,CAASrnF,EAAMM,CAAAA,EAAf,CACrB,KAAIinF,GAAgB,CACpB,IAAIzqE,CAAJ,CAAc,CACZ,IAAM,CAAE,SAAA7iC,EAAA,CAAW,CAAb,CAAA,CAAmBm+F,EACzBmP,GAAA,CAAgB5mE,EAAUogD,CAAAA,mBAAV,CAA8B9mF,EAA9B,CAAwC,EAAxC,CAAhB,CAA8DA,EAFlD,CAId,MAAMw\/F,GAAiBr\/F,EAAIgC,CAAAA,GAAJ,CAAQg8F,EAAal+F,CAAAA,MAArB,CAA6Bk+F,EAAar+F,CAAAA,KAA1C,CACjBytG,GAAAA,CAAgBptG,EAAIC,CAAAA,OAAJ,CAAY+9F,EAAal+F,CAAAA,MAAzB,CAAiCitG,EAAjC,CAAsDvmB,EAAtD,CACtB,IAAI,SAAJ,EAAiB5gE,GAAjB,CAAwB,CAChBynF,EAAAA,CAAiBrP,EAAa72E,CAAAA,OACpC;MAAMmmF,GAAeD,EAAexpG,CAAAA,GAAf,CAClByuB,EAAD,EAAYtyB,EAAIC,CAAAA,OAAJ,CAAYqyB,EAAO3yB,CAAAA,KAAnB,CAA0B0\/F,EAA1B,CAA0C7Y,EAA1C,CADO,CAArB,CAGM2X,GAAUxf,EAAY0D,CAAAA,gBAAZ,CAA6BirB,EAA7B,CAChB1nF,GAAM+hB,CAAAA,MAAN,CAAa,CACXhoC,MAAOK,EAAIG,CAAAA,GAAJ,CAAQg+F,EAAR,CAAiBn+F,EAAIgC,CAAAA,GAAJ,CAAQorG,EAAR,CAAuB\/N,EAAvB,CAAjB,CADI,CAEXl4E,QAASkmF,EAAexpG,CAAAA,GAAf,CAAmB,CAAC+wC,EAAD,CAAK71C,EAAL,CAAA,EAAYyF,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBmwC,EAAnB,CAAd,CAAsC,CAC5Ej1C,MAAOK,EAAIgC,CAAAA,GAAJ,CAAQsrG,EAAA,CAAavuG,EAAb,CAAR,CAA0Bo\/F,EAA1B,CADqE,CAAtC,CAA\/B,CAFE,CAAb,CANsB,CAAxB,IAaEv4E,GAAM+hB,CAAAA,MAAN,CAAa,CACXhoC,MAAOK,EAAIgC,CAAAA,GAAJ,CAAQorG,EAAR,CAAuB\/N,EAAvB,CADI,CAEXx\/F,SAAU0mC,EAAUmgD,CAAAA,YAAV,EACPsX,EAAan+F,CAAAA,QADN,EACkB,CADlB,EACuB2mF,EADvB,CACoC2mB,EADpC,CAFC,CAAb,CAtB8B,CAAlC,CA8BA,OAAMvB,GAAoBrlE,EAAUmgD,CAAAA,YAAV,CAAuBomB,EAAvB,CAAkDtmB,EAAlD,CAC1B,KAAKtvD,CAAAA,GAAIq2E,CAAAA,oBAAT,CACE7qE,CAAA,CAAW6D,EAAUogD,CAAAA,mBAAV,CAA8BilB,EAA9B,CAAiD,EAAjD,CAAX,CAAkEA,EADpE,CAGA,KAAKJ,CAAAA,YAAL,EA7CyC,CAA3C,CA+CAh9B,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,IAAKt3C,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EACA,KAAK5\/C,CAAAA,GAAI80C,CAAAA,OAAT,EACA,KAAK\/zC,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAHuC,CAAzC,CAKA0B,GAAA,CAAc,IAAd;AAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACE,IAAK6tB,CAAAA,GAAI4V,CAAAA,cAAe70B,CAAAA,OAAxB,CAAiC2N,CAAD,EAAW,CACzCA,CAAM+hB,CAAAA,MAAN,CAAa,IAAKslE,CAAAA,QAAL,CAAcrnF,CAAMM,CAAAA,EAApB,CAAb,CADyC,CAA3C,CAGA,CAAA,IAAK+R,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CALJ,CAD6C,CAA\/C,CAxFY,CAoGd0+B,YAAY,EAAG,CACb,IAAKt0E,CAAAA,GAAIgsE,CAAAA,OAAQC,CAAAA,SAAjB,CAA2Bvd,EAAA,CAAQ,IAAKtzD,CAAAA,MAAb,CAA3B,CAAiD,IAAK4E,CAAAA,GAAI00E,CAAAA,iBAA1D,CADa,CArGG,CAyGpBp9B,GAAA,CAAcq+B,EAAd,CAA6B,IAA7B,CAAmC,UAAnC,CAGA,KAAIW,GAAiB,aAAcnK,GAAd,CACnBt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,CAAC9C,CAAD,CAAO\/wC,CAAP,CAAA,EAAiB,CAC9C,IAAKzD,CAAAA,GAAI7C,CAAAA,QAAS8wE,CAAAA,SAAlB,CAA4Bz5B,CAAK\/rE,CAAAA,KAAjC,CAAwC+rE,CAAKjmD,CAAAA,KAA7C,CAAoDimD,CAAKjmD,CAAAA,KAAL,CAAW,CAAX,CAApD,CAD8C,CAAhD,CAGA+oD,GAAA,CAAc,IAAd,CAAoB,YAApB,CAAkC,EAAA,EAAM,CACtC,IAAKv2C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CADsC,CAAxC,CAGA0B,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,EAAA,EAAM,CACzC,IAAKv2C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CADyC,CAA3C,CARY,CADK,CAcrB0B;EAAA,CAAcg\/B,EAAd,CAA8B,IAA9B,CAAoC,UAApC,CAGA,KAAIC,GAAyB,aAAczH,GAAd,CAC3Bj\/F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,UAA9B,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CACvC,IAAKx0C,CAAAA,GAAIstE,CAAAA,OAAQC,CAAAA,KAAjB,EACA,KAAK2C,CAAAA,iBAAL,CAotGGzgF,EAAA,EAntGH,KAAKghF,CAAAA,gBAAL,CAmtGGhhF,EAAA,EAjtGH,KAAK8gF,CAAAA,gBAAL,CADa,IAAKvwE,CAAAA,GAAI4yC,CAAAA,WACOo+B,CAAAA,iBAAL,EACxB,KAAKriF,CAAAA,QAAL,CAAgB6lD,CAAKxlD,CAAAA,EACrB,KAAKqgF,CAAAA,YAAL,CAAoB76B,CAAK9lD,CAAAA,KACzB,KAAKo4E,CAAAA,YAAL,CAAoBj\/E,EAAA,CAAK,IAAKwnF,CAAAA,YAAap9F,CAAAA,KAAvB,CACpB,KAAK+tB,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2B,CAAC,IAAKyC,CAAAA,YAAN,CAA3B,CATuC,CAAzC,CAHY,CADa,CAiB7B\/3B,GAAA,CAAci\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\/C,CA1CY,CADmB,CA8EnCp7B,GAAA,CAAcm\/B,EAAd,CAA4C,IAA5C,CAAkD,yBAAlD,CAGA,KAAIG,GAAoB,aAAczK,GAAd,CACtBt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,EAApC,CACAA,GAAA,CAAc,IAAd,CAAoB,SAApB,CAAgC9C,CAAD,EAAU,CACvC,IAAK\/+B,CAAAA,YAAL,CAAoB++B,CAAK9lD,CAAAA,KACzB,KAAKsR,CAAAA,GAAI+yE,CAAAA,eAAT,CAAyBv+B,CAAK9lD,CAAAA,KAA9B,CAFuC,CAAzC,CAIA4oD,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,EAAA,EAAM,CAClC,IAAI5mD,CACJ,IAAI,IAAK+kB,CAAAA,YAAT,EAAyB,MAAzB,EAAmC,KAAKA,CAAAA,YAAaxjC,CAAAA,KAArD,CAA4D,CAC1D,MAAM4kG;AAAU,IAAKphE,CAAAA,YAAaxjC,CAAAA,KAAlB,CAAA,IAAgC2iE,CAAAA,IAAhC,EACA,GAAhB,GAAIiiC,CAAJ,EAAuD,MAAvD,GAAsB,IAAKphE,CAAAA,YAAaxjC,CAAAA,KAAMiX,CAAAA,IAA9C,CACE,IAAK8W,CAAAA,GAAI8pE,CAAAA,YAAT,CAAsB,CAAC,IAAKr0D,CAAAA,YAAN,CAAtB,CADF,EAGE,IAAKA,CAAAA,YAAaihE,CAAAA,aAAlB,EACA,CAAA,IAAKjhE,CAAAA,YAAahF,CAAAA,MAAlB,CAAyB,CACvB\/X,KAAMm+E,CADiB,CAAzB,CAJF,CAF0D,CAW5D,IAAK72E,CAAAA,GAAI80C,CAAAA,OAAT,EACA,KAAK90C,CAAAA,GAAI+yE,CAAAA,eAAT,EACgD,KAAhD,GAACriF,CAAD,CAAOwF,QAASmI,CAAAA,aAAT,CAAuB,YAAvB,CAAP,EAAuD,IAAK,EAA5D,CAAgE3N,CAAI4N,CAAAA,KAAJ,EAf9B,CAApC,CAiBAg5C,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC9C,CAAD,CAAO\/wC,CAAP,CAAA,EAAiB,CACnD,IAAK1C,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,UAArB,CAAiC,CAAEpB,KAAAA,CAAF,CAAQ\/wC,MAAAA,CAAR,CAAjC,CADmD,CAArD,CAGA6zC,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsC9C,CAAD,EAAU,CAC7C,OAAQA,CAAKtrD,CAAAA,IAAb,EACE,KAAK,OAAL,CACE,GAAIsrD,CAAK9lD,CAAAA,KAAT,GAAmB,IAAK+mB,CAAAA,YAAxB,CACE,KACF,KAAK1U,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB;AAA6BpB,CAA7B,CACA,MAQF,MAAK,QAAL,CACOA,CAAK54C,CAAAA,KAAV,EACE,IAAKmF,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAA6BpB,CAA7B,CAfN,CAD6C,CAA\/C,CAsBA8C,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,CAAC9C,CAAD,CAAO9oE,CAAP,CAAA,EAAc,CAC7C,OAAQA,CAAGyG,CAAAA,GAAX,EACE,KAAK,QAAL,CACEmW,EAAA,CAAY,EAAA,EAAM,CAChB5c,CAAGysD,CAAAA,eAAH,EACA,KAAKn4B,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2B,CAAC,IAAKn3D,CAAAA,YAAN,CAA3B,CACA,KAAK1U,CAAAA,IAAK60C,CAAAA,UAAV,CAAqB,MAArB,CAHgB,CAAlB,CAFJ,CAD6C,CAA\/C,CAjDY,CADQ,CAgExB0B,GAAA,CAAcs\/B,EAAd,CAAiC,IAAjC,CAAuC,cAAvC,CAGA,KAAIE,GAAuB,aAAc3K,GAAd,CACzBt8F,WAAW,EAAG,CACZ,KAAA,CAAM,GAAG7B,SAAT,CACAspE,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,CAAnC,CACAA,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,CACjC9sE,KAAM,CAD2B,CAEjCC,KAAM,CAF2B,CAGjCgzB,KAAM,CAH2B,CAIjCC,KAAM,CAJ2B,CAKjC91B,MAAO,CAL0B,CAMjCD,OAAQ,CANyB,CAAnC,CAQA2vE,GAAA,CAAc,IAAd,CAAoB,gBAApB,CAAuCy\/B,CAAD,EAAiB,CACrD,MAAMC,EAAmB9gF,QAASmI,CAAAA,aAAT,CAAuB,yBAAvB,CACzB;IAAM44E,EAAgB\/gF,QAASmI,CAAAA,aAAT,CACpB,0CADoB,CAGtB,IAAI24E,CAAJ,EAAwBC,CAAxB,CAAuC,CACrC,MAAMx9E,EAAOu9E,CAAiBt9E,CAAAA,qBAAjB,EACb,KAAKw9E,CAAAA,WAAYvvG,CAAAA,MAAjB,CAA0B8xB,CAAK9xB,CAAAA,MAC\/B,KAAKuvG,CAAAA,WAAYtvG,CAAAA,KAAjB,CAAyB6xB,CAAK7xB,CAAAA,KAC9B,KAAKsvG,CAAAA,WAAY1sG,CAAAA,IAAjB,CAAwBivB,CAAKxB,CAAAA,IAC7B,KAAKi\/E,CAAAA,WAAYzsG,CAAAA,IAAjB,CAAwBgvB,CAAKzB,CAAAA,GAC7B,KAAKk\/E,CAAAA,WAAYz5E,CAAAA,IAAjB,CAAwBhE,CAAK6jB,CAAAA,KAC7B,KAAK45D,CAAAA,WAAYx5E,CAAAA,IAAjB,CAAwBjE,CAAK8jB,CAAAA,MAC7B,KAAK45D,CAAAA,WAAL,CAAmB,CAACH,CAAiB31C,CAAAA,OAAQ+1C,CAAAA,gBAA7C,CAAgE,IAAKF,CAAAA,WAAYtvG,CAAAA,KAC3EyvG,EAAAA,CAAcvuG,EAAIgC,CAAAA,GAAJ,CAAQisG,CAAR,CAAqB,CAAC,IAAKG,CAAAA,WAAY1sG,CAAAA,IAAlB,CAAwB,IAAK0sG,CAAAA,WAAYzsG,CAAAA,IAAzC,CAArB,CACd6sG,EAAAA,CAAoBL,CAAcv9E,CAAAA,qBAAd,EAKpBnL,EAAAA,CAAQzlB,EAAIwC,CAAAA,GAAJ,CAAQxC,EAAIgC,CAAAA,GAAJ,CAAQusG,CAAR,CAJME,CAC1BD,CAAkBr\/E,CAAAA,IADQs\/E,CACDD,CAAkB1vG,CAAAA,KADjB2vG,CACyB,CADzBA,CAE1BD,CAAkBt\/E,CAAAA,GAFQu\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\/+E,EAAZ,CACX,KAAK++E,CAAAA,MAAL,CAAY\/+E,EAAZ,CAAA,CAAsB,IAAK++E,CAAAA,MAAL,CAAY\/+E,EAAZ,CAAqB,CAArB,CACtB,KAAK++E,CAAAA,MAAL,CAAY\/+E,EAAZ,CAAqB,CAArB,CAAA,CAA0Bpe,EAJ1B,CAJ8I,CAAhJ,CAUA,KAAKszB,CAAAA,GAAI80C,CAAAA,OAAT,EACA,OAAO,KAbwC,CAAjD,CAeAwC,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAqCgV,EAAD,EAAa,CAC\/C,MAAM+rB,GAAe,IAAKC,CAAAA,cAAL,CAAoBhsB,EAApB,CACrB+rB,GAAapxG,CAAAA,IAAb,CAAkB,CAACC,EAAD,CAAKC,EAAL,CAAA,EAAY,IAAK0iG,CAAAA,MAAO\/gF,CAAAA,OAAZ,CAAoB5hB,EAApB,CAAZ,CAAsC,IAAK2iG,CAAAA,MAAO\/gF,CAAAA,OAAZ,CAAoB3hB,EAApB,CAAxD,CAAiFwF,CAAAA,GAAjF,CAAsF+hB,EAAD,EAAW,IAAKm7E,CAAAA,MAAO\/gF,CAAAA,OAAZ,CAAoB4F,EAApB,CAAhG,CAA4H3N,CAAAA,OAA5H,CAAqI+J,EAAD,EAAY,CAC9I,GAAe,CAAf;AAAIA,EAAJ,EAGI,CAAAutF,EAAaphF,CAAAA,QAAb,CADS,IAAK4yE,CAAAA,MAALt1F,CAAYuW,EAAZvW,CAAqB,CAArBA,CACT,CAHJ,CAGA,CAEA,IAAM7H,GAAK,IAAKm9F,CAAAA,MAAL,CAAY\/+E,EAAZ,CACX,KAAK++E,CAAAA,MAAL,CAAY\/+E,EAAZ,CAAA,CAAsB,IAAK++E,CAAAA,MAAL,CAAY\/+E,EAAZ,CAAqB,CAArB,CACtB,KAAK++E,CAAAA,MAAL,CAAY\/+E,EAAZ,CAAqB,CAArB,CAAA,CAA0Bpe,EAJ1B,CAJ8I,CAAhJ,CAUA,KAAKszB,CAAAA,GAAI80C,CAAAA,OAAT,EACA,OAAO,KAbwC,CAAjD,CAeAwC,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAqCgV,EAAD,EAAa,CAC\/C,MAAM+rB,GAAe,IAAKC,CAAAA,cAAL,CAAoBhsB,EAApB,CACrB,KAAKud,CAAAA,MAAL,CAAc,IAAKA,CAAAA,MAAOp9F,CAAAA,MAAZ,CAAoBiiB,EAAD,EAAW,CAAC2pF,EAAaphF,CAAAA,QAAb,CAAsBvI,EAAtB,CAA\/B,CAA6Djd,CAAAA,MAA7D,CAAoE4mG,EAApE,CACd,KAAKr4E,CAAAA,GAAI80C,CAAAA,OAAT,EACA,OAAO,KAJwC,CAAjD,CAMAwC,GAAA,CAAc,IAAd,CAAoB,YAApB,CAAmCgV,EAAD,EAAa,CAC7C,MAAM+rB,GAAe,IAAKC,CAAAA,cAAL,CAAoBhsB,EAApB,CACrB,KAAKud,CAAAA,MAAL,CAAcwO,EAAa5mG,CAAAA,MAAb,CAAoB,IAAKo4F,CAAAA,MAAOp9F,CAAAA,MAAZ,CAAoBiiB,EAAD,EAAW,CAAC2pF,EAAaphF,CAAAA,QAAb,CAAsBvI,EAAtB,CAA\/B,CAApB,CACd,KAAKsR,CAAAA,GAAI80C,CAAAA,OAAT,EACA,OAAO,KAJsC,CAA\/C,CAMAwC,GAAA,CAAc,IAAd,CAAoB,MAApB,CAA4B,CAACgV,EAAD,CAAUhjF,EAAV,CAAA,EAAwB,CAC5C+uG,EAAAA,CAAe,IAAKC,CAAAA,cAAL,CAAoBhsB,EAApB,CACrB;MAAME,GAAe\/E,EAAYsB,CAAAA,eAAZ,CAA4BsvB,EAAa1rG,CAAAA,GAAb,CAAkB+hB,EAAD,EAAWA,EAAMnkB,CAAAA,MAAlC,CAA5B,CACrB8tG,GAAat3F,CAAAA,OAAb,CAAsB2N,EAAD,EAAW,CAC9B,IAAIgC,EACJ,OAAMykF,GAAiB1tB,EAAYmD,CAAAA,iCAAZ,CACrB4B,EADqB,CAErBA,EAFqB,CAGrB99D,EAAMnkB,CAAAA,MAHe,CAIP,YAJO,GAIrBjB,EAJqB,CAKP,UALO,GAKrBA,EALqB,CAOvB,IAAIolB,EAAMi4E,CAAAA,UAAV,CACEj4E,EAAM6mF,CAAAA,QAAN,CAAe7mF,EAAMi4E,CAAAA,UAArB,CAAiC,CAC\/Bp8F,OAAQ4qG,EADuB,CAE\/BvsG,OAAQ6+E,EAAYW,CAAAA,eAAZ,CAA4B+sB,EAA5B,CAFuB,CAG\/BxsG,SAA0C,IAAhC,GAAC+nB,EAAD,CAAOhC,EAAMzc,CAAAA,KAAMtJ,CAAAA,QAAnB,EAAuC+nB,EAAvC,CAA6C,CAAA,CAHxB,CAI\/BxH,KAAM,iBAJyB,CAK\/BylD,MAAOjgD,EAAM2mF,CAAAA,OAAN,EAAiB3mF,EAAMzc,CAAAA,KAAM08D,CAAAA,KAA7B,CAAmD,YAAd,GAAArlE,EAAA,CAA6B,CAAC,CAAColB,EAAMzc,CAAAA,KAAM08D,CAAAA,KAAZ,CAAkB,CAAlB,CAAF,CAAwB,CAAxB,CAA7B,CAA0D,CAAC,CAAD,CAAI,CAACjgD,EAAMzc,CAAAA,KAAM08D,CAAAA,KAAZ,CAAkB,CAAlB,CAAL,CAA\/F,CAA4H,CAAC,CAAD,CAAI,CAAJ,CALpG,CAM\/B85B,KAAM,CAAA,CANyB,CAO\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\/E,CAAAA,gBAAV,CAA2B5\/E,EAAUzd,CAAAA,KAArC,CAA4CmM,EAA5C,CAxJiD,CAA1D,CA0JA,OAAM,CAAE,GAAIyc,CAAN,CAAW,KAAA3qB,CAAX,CAAiB,OAAQo8E,EAAA,CAAU,EAAnC,CAAuC,SAAAz+D,EAAA,CAAW,EAAlD,CAAsD,MAAAo4E,EAAtD,CAAA,CAAgEh0F,CACtE,KAAK+c,CAAAA,EAAL,CAAU6L,CACV,KAAK3qB,CAAAA,IAAL,CAAYA,CACZ,KAAK2d,CAAAA,QAAL,CAAgBre,MAAOiD,CAAAA,MAAP,CAAc,EAAd,CAAkBob,EAAlB,CAChB,KAAKmS,CAAAA,GAAL,CAAWA,CACX,KAAKimE,CAAAA,KAAL,CAAaA,EAAb,EAAsB,CACtB,KAAK0G,CAAAA,SAAL,CAAe,GAAGrgB,EAAlB,CACA7iE,GAAA,CAAe,IAAf,CACApH,GAAA,CAAQ,EAAA,EAAM,CACZ,MAAMs3F,GAA2C,CAArB,CAAA,IAAK9P,CAAAA,MAAO\/hG,CAAAA,MAAZ,CAAyB0H,MAAOq9E,CAAAA,WAAP,CAAmB,IAAKgd,CAAAA,MAAOl9F,CAAAA,GAAZ,CAAiB+hB,EAAD;AAAW,CAACA,EAAMM,CAAAA,EAAP,CAAWN,EAAMu3E,CAAAA,KAAjB,CAA3B,CAAnB,CAAzB,CAAmG,IAC\/H,IAAI,IAAK2T,CAAAA,iBAAT,EAA8BD,EAA9B,CAAmD,CACjD,MAAMC,GAAoB,IAAKA,CAAAA,iBAA\/B,CAKM7rF,GAAkB,CAAC,IAJM8rF,IAAI1oG,GAAJ0oG,CAAQ,CACrC,GAAGrqG,MAAO6B,CAAAA,IAAP,CAAYsoG,EAAZ,CADkC,CAErC,GAAGnqG,MAAO6B,CAAAA,IAAP,CAAYuoG,EAAZ,CAFkC,CAARC,CAIN,CAAD,CAAYptG,CAAAA,MAAZ,CAAoBtC,EAAD,EAClCyvG,EAAA,CAAkBzvG,EAAlB,CADkC,GACRwvG,EAAA,CAAoBxvG,EAApB,CADX,CAGxBi5C,sBAAA,CAAsB,EAAA,EAAM,CAC1B,IAAK02D,CAAAA,OAAL,CAAa\/rF,EAAb,CAD0B,CAA5B,CATiD,CAa\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\/1E,CAAkB+1E,CAAA,CAAS,CAAT,CAAlB\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\/E,CAAAA,GAAZ,EAAlB,CACM2\/E,EAAUruG,EAAA,CAAe,EAAf,CAAmB,IAAKytG,CAAAA,WAAxB,CADhB,CAEMpmD,EAAO,EAAAA,EAAM,CACjB,IAAM14B,GAAUy\/E,WAAY1\/E,CAAAA,GAAZ,EAAVC,CAA8Bw\/E,CAC9BG,GAAAA,CAAWlB,EAAA,CAAgBz+E,EAAhB,CAET,KAAA,GAAA0\/E,CAAQpxG,CAAAA,IAAR,EAAgB8X,CAAK9X,CAAAA,IAArB,CAA4BoxG,CAAQpxG,CAAAA,IAApC,EAA4CqxG,EAOpD,KAAKprE,CAAAA,MAAL,CAAY,CAAEhoC,MAFAA,CAAC,CAAM+B,EAAP\/B,CAAa,EAJnBmzG,CAAQnxG,CAAAA,IAIW,EAJH6X,CAAK7X,CAAAA,IAIF,CAJSmxG,CAAQnxG,CAAAA,IAIjB,EAJyBoxG,EAIzB,CAAbpzG,CAEF,CAAS4iC,KADR,IAAK9gC,CAAAA,MAAO3C,CAAAA,KACJyjC,EALbuwE,CAAQn+E,CAAAA,IAKK4N,EALG\/oB,CAAKmb,CAAAA,IAKR4N,CALeuwE,CAAQn+E,CAAAA,IAKvB4N,EAL+BwwE,EAK\/BxwE,CAD8B7gC,EAC9B6gC,CAAT,CAAZ,CACe,EAAf,CAAIwwE,EAAJ,EACEz4D,qBAAA,CAAsBwR,CAAtB,CAbe,CAgBnBA;CAAA,EAnBiD,CAAnD,CAqBA0iB,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC,CAAE,MAAA1vE,CAAF,CAAS,OAAAD,CAAT,CAAiB,KAAA6C,CAAjB,CAAuB,KAAAC,CAAvB,CAAD,CAAA,EAAmC,CACrE,MAAM,CAAE,OAAAF,EAAF,CAAU,OAAA+gC,EAAV,CAAA,CAAqB,IAC3B,KAAID,GAAOtkC,IAAK6uB,CAAAA,GAAL,EACRrrB,EAAO3C,CAAAA,KADC,CAvuRWk0G,GAuuRX,EACgCl0G,CADhC,EAER2C,EAAO5C,CAAAA,MAFC,CAvuRWm0G,GAuuRX,EAEiCn0G,CAFjC,CAIX0jC,GAAA,CAAOtkC,IAAK6uB,CAAAA,GAAL,CACL,CADK,CAEL7uB,IAAKC,CAAAA,GAAL,CACE6zG,EAAYzuE,CAAAA,OADd,CAEEd,EAAOD,CAAAA,IAAP,GAAgBA,EAAhB,EAAsC,CAAtC,CAAwBC,EAAOD,CAAAA,IAA\/B,CAA0CtkC,IAAK6uB,CAAAA,GAAL,CAAS,CAAT,CAAYyV,EAAZ,CAA1C,CAA8DA,EAFhE,CAFK,CAWD5iC,EAAAA,CAAQK,EAAIG,CAAAA,GAAJ,CAAQ,CAAC,CAACuB,CAAF,CAAQ,CAACC,CAAT,CAAR,CAJA8jB,EACXhkB,EAAO3C,CAAAA,KADI2mB,CACI3mB,CADJ2mB,CACY8c,EADZ9c,EACoB,CADpBA,CACwB8c,EADxB9c,EAEXhkB,EAAO5C,CAAAA,MAFI4mB,CAEK5mB,CAFL4mB,CAEc8c,EAFd9c,EAEsB,CAFtBA,CAE0B8c,EAF1B9c,CAIA,CACd,KAAK+sF,CAAAA,aAAL,CAAmB,CAAE7yG,MAAAA,CAAF,CAAS4iC,KAAAA,EAAT,CAAnB,CAlBqE,CAAvE,CAoBA5hB,GAAA,CAAe,IAAf,CAlIY,CAoIV,eAAc,EAAA,CAChB,MAAM,CACJ,OAAAlf,CADI,CAEJ,OAAQ,CAAE,MAAA9B,CAAF,CAAS,KAAA4iC,CAAT,CAFJ,CAAA,CAGF,IAHJ,CAIM8S,EAAK5zC,CAAO3C,CAAAA,KAAZu2C,CAAoB9S,CAJ1B,CAKMqS,GAAKnzC,CAAO5C,CAAAA,MAAZ+1C,CAAqBrS,CAC3B,OAAO,CACL7gC,KAAM,CAAC\/B,CAAA,CAAM,CAAN,CADF,CAELgC,KAAM,CAAChC,CAAA,CAAM,CAAN,CAFF,CAGLg1B,KAAM0gB,CAAN1gB,CAAWh1B,CAAA,CAAM,CAAN,CAHN,CAILi1B,KAAMggB,EAANhgB,CAAWj1B,CAAA,CAAM,CAAN,CAJN,CAKLb,MAAOu2C,CALF,CAMLx2C,OAAQ+1C,EANH,CAPS,CArIF,CAHlB;AAyJIxR,GAAa2uE,EACjBvjC,GAAA,CAAcprC,EAAd,CAA0B,SAA1B,CAAqC,EAArC,CACAorC,GAAA,CAAcprC,EAAd,CAA0B,SAA1B,CAAqC,CAArC,CACAorC,GAAA,CAAcprC,EAAd,CAA0B,eAA1B,CAA2C,GAA3C,CACAorC,GAAA,CAAcprC,EAAd,CAA0B,cAA1B,CAA0C,GAA1C,CACAirC,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEGg2B,EAAWp7B,CAAAA,SAFd,CAEyB,QAFzB,CAEmC,CAFnC,CAGAqmE,GAAA,CAAgB,CACdjhE,EADc,CAAhB,CAEGg2B,EAAWp7B,CAAAA,SAFd,CAEyB,QAFzB,CAEmC,CAFnC,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEG6nB,EAAWp7B,CAAAA,SAFd,CAEyB,cAFzB,CAEyC,CAFzC,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEG6nB,EAAWp7B,CAAAA,SAFd,CAEyB,QAFzB,CAEmC,CAFnC,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGkyB,EAAWp7B,CAAAA,SAFd,CAEyB,aAFzB,CAEwC,CAFxC,CAKA,KAAIirG,GAAQ,KAAA,CACVlsG,WAAW,CAACmwB,CAAD,CAAM,CACfs3C,EAAA,CAAc,IAAd,CAAoB,KAApB,CACAA,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAkC5oD,CAAD,EAAW,CAC1C,CAAe,IAAT,EAAAA,CAAA,CAAgB,CAAhB,CAAyBA,CAAMzc,CAAAA,KAAMuhE,CAAAA,QAA3C,GACE,IAAKxzC,CAAAA,GAAI41C,CAAAA,UAAT,CAAoB,QAApB,CAA8B50C,CAAAA,YAAa40C,CAAAA,UAA3C,CAAsD,cAAtD,CAAsE,CAAElnD,MAAAA,CAAF,CAAtE,CACF,OAAO,KAHmC,CAA5C,CAKA4oD,GAAA,CAAc,IAAd,CAAoB,YAApB,CAAmC5oD,CAAD,EAAW,CAC3C,IAAKsR,CAAAA,GAAIkxE,CAAAA,eAAT,CAAyBxiF,CAAzB,CACA;MAAO,KAFoC,CAA7C,CAIA4oD,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC,GAAGgV,CAAJ,CAAA,EAAgB,CAClD,IAAKtsD,CAAAA,GAAIg8E,CAAAA,YAAT,CAAsB1vB,CAAtB,CACA,OAAO,KAF2C,CAApD,CAIAhV,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC,GAAGgV,CAAJ,CAAA,EAAgB,CAClD,IAAKtsD,CAAAA,GAAIi8E,CAAAA,YAAT,CAAsB3vB,CAAtB,CACA,OAAO,KAF2C,CAApD,CAIAhV,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC,GAAGgV,CAAJ,CAAA,EAAgB,CAClD,IAAKtsD,CAAAA,GAAI8pE,CAAAA,YAAT,CAAsBxd,CAAQxkF,CAAAA,MAAR,CAAiBwkF,CAAjB,CAA2B,IAAKtsD,CAAAA,GAAIszC,CAAAA,mBAA1D,CACA,OAAO,KAF2C,CAApD,CAIAgE,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC,GAAGgV,CAAJ,CAAA,EAAgB,CAClD,IAAKtsD,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2BtgB,CAA3B,CACA,OAAO,KAF2C,CAApD,CAIAhV,GAAA,CAAc,IAAd,CAAoB,gBAApB,CAAsC,CAAC,GAAGgV,CAAJ,CAAA,EAAgB,CACpD,MAAMx+D,EAA4B,QAAtB,GAAA,MAAOw+D,EAAA,CAAQ,CAAR,CAAP,CAAiCA,CAAjC,CAA2CA,CAAQ3\/E,CAAAA,GAAR,CAAa+hB,CAAD,EAAWA,CAAMM,CAAAA,EAA7B,CACvD,KAAKgR,CAAAA,GAAI4sE,CAAAA,iBAAT,CACE,IAAK5sE,CAAAA,GAAIszC,CAAAA,mBAAoB7mE,CAAAA,MAA7B,CAAqCiiB,CAAD,EAAW,CAACZ,CAAImJ,CAAAA,QAAJ,CAAavI,CAAMM,CAAAA,EAAnB,CAAhD,CADF,CAGA;MAAO,KAL6C,CAAtD,CAOAsoD,GAAA,CAAc,IAAd,CAAoB,gBAApB,CAAsC,CAAC,GAAGgV,CAAJ,CAAA,EAAgB,CACpD,IAAKtsD,CAAAA,GAAIk8E,CAAAA,cAAT,CAAwB5vB,CAAxB,CACA,OAAO,KAF6C,CAAtD,CAIAhV,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC,GAAGgV,CAAJ,CAAA,EAAgB,CAClD,IAAKtsD,CAAAA,GAAIm8E,CAAAA,YAAT,CAAsB7vB,CAAtB,CACA,OAAO,KAF2C,CAApD,CAIAhV,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAA,EAAM,CACrC,IAAKt3C,CAAAA,GAAI4sE,CAAAA,iBAAT,CACE,IAAK5sE,CAAAA,GAAI4yC,CAAAA,WAAYi3B,CAAAA,MAAOp9F,CAAAA,MAA5B,CAAoCtC,CAAD,EAAQ,CAAC,IAAK61B,CAAAA,GAAIo8E,CAAAA,cAAT,EAA0BnlF,CAAAA,QAA1B,CAAmC9sB,CAAnC,CAA5C,CADF,CAGA,OAAO,KAJ8B,CAAvC,CAMAmtE,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,EAAA,EAAM,CACvC,IAAKt3C,CAAAA,GAAI4sE,CAAAA,iBAAT,CAA2B,EAA3B,CACA,OAAO,KAFgC,CAAzC,CAIAt1B,GAAA,CAAc,IAAd,CAAoB,QAApB,CAA8B,EAAA,EAAM,CAClC,IAAKt3C,CAAAA,GAAI7C,CAAAA,QAASk\/E,CAAAA,MAAlB,EACA,OAAO,KAF2B,CAApC,CAIA\/kC,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,EAAA,EAAM,CACnC,IAAKt3C,CAAAA,GAAI7C,CAAAA,QAASm\/E,CAAAA,OAAlB,EACA,OAAO,KAF4B,CAArC,CAIAhlC;EAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAA,EAAM,CACrC,IAAKt3C,CAAAA,GAAI7C,CAAAA,QAASo\/E,CAAAA,SAAlB,EACA,OAAO,KAF8B,CAAvC,CAIAjlC,GAAA,CAAc,IAAd,CAAoB,WAApB,CAAiC,EAAA,EAAM,CACrC,IAAM,CAAE,OAAQgV,CAAV,CAAA,CAAsB,IAAKtsD,CAAAA,GAAI4yC,CAAAA,WACrC,IAAuB,CAAvB,GAAI0Z,CAAQxkF,CAAAA,MAAZ,CACE,MAAO,KACH0kF,EAAAA,CAAe\/E,EAAYsB,CAAAA,eAAZ,CAA4BuD,CAAQ3\/E,CAAAA,GAAR,CAAa+hB,CAAD,EAAWA,CAAMnkB,CAAAA,MAA7B,CAA5B,CACrB,KAAKy1B,CAAAA,GAAI7C,CAAAA,QAASq\/E,CAAAA,YAAlB,CAA+BhwB,CAA\/B,CACA,OAAO,KAN8B,CAAvC,CAQAlV,GAAA,CAAc,IAAd,CAAoB,gBAApB,CAAsC,EAAA,EAAM,CAC1C,IAAM,CAAE,OAAQgV,CAAV,CAAA,CAAsB,IAAKtsD,CAAAA,GAAI4yC,CAAAA,WACrC,IAAuB,CAAvB,GAAI0Z,CAAQxkF,CAAAA,MAAZ,CACE,MAAO,KACH0kF,EAAAA,CAAe\/E,EAAYsB,CAAAA,eAAZ,CAA4BuD,CAAQ3\/E,CAAAA,GAAR,CAAa+hB,CAAD,EAAWA,CAAMnkB,CAAAA,MAA7B,CAA5B,CACrB,KAAKy1B,CAAAA,GAAI7C,CAAAA,QAASsT,CAAAA,MAAlB,CAAyB,CACvBhoC,MAAOwmB,EAAYhmB,CAAAA,GAAZ,CAAgBgmB,EAAY6yD,CAAAA,GAAZ,CAAgB2F,EAAYW,CAAAA,eAAZ,CAA4BoE,CAA5B,CAAhB,CAAhB,CAA4E,CACjF,IAAKxsD,CAAAA,GAAI7C,CAAAA,QAAS69E,CAAAA,WAAYpzG,CAAAA,KADmD,CAC3C,CAD2C,CAEjF,IAAKo4B,CAAAA,GAAI7C,CAAAA,QAAS69E,CAAAA,WAAYrzG,CAAAA,MAFmD;AAE1C,CAF0C,CAA5E,CADgB,CAAzB,CAMA,OAAO,KAXmC,CAA5C,CAaA2vE,GAAA,CAAc,IAAd,CAAoB,iBAApB,CAAuC,EAAA,EAAM,CAC3C,MAAM,CAAE,gBAAAm7B,CAAF,CAAA,CAAsB,IAAKzyE,CAAAA,GACjC,IAAI,CAACyyE,CAAL,CACE,MAAO,KACT,KAAKzyE,CAAAA,GAAI7C,CAAAA,QAASq\/E,CAAAA,YAAlB,CAA+B\/J,CAA\/B,CACA,OAAO,KALoC,CAA7C,CAOAn7B,GAAA,CAAc,IAAd,CAAoB,mBAApB,CAAyC,EAAA,EAAM,CAC5B,IAAKt3C,CAAAA,GAAI7C,CAAAA,QACjBm+E,CAAAA,aAAT,CAAuB,CACrBjwE,KAAM,CADe,CAErB5iC,MAAOwmB,EAAYnkB,CAAAA,GAAZ,CAAgB,IAAKk1B,CAAAA,GAAIkK,CAAAA,MAAOowE,CAAAA,iBAAhC,CAAmD,IAAKt6E,CAAAA,GAAIkK,CAAAA,MAAOmiE,CAAAA,WAAnE,CAFc,CAAvB,CAIA,OAAO,KANsC,CAA\/C,CAQA\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\/E33E,GAg4DCS,EAAA,EAj4D8E,CAE\/Ew2E,MAAO7+E,IAAK6U,CAAAA,GAAL,EAFwE,CAG\/E8a,KAAM,EAHyE,CAI\/Ewd,MAAO,EAJwE,CAK\/E9rD,MAAAA,EAL+E,CAApD,CAAf,CAOd,KAAKu3B,CAAAA,GAAIstE,CAAAA,OAAQC,CAAAA,KAAjB,EACA,KAAKvtE,CAAAA,GAAI4yC,CAAAA,WAAY+5B,CAAAA,SAArB,CAA+Bh7E,EAA\/B,CACA,KAAKqO,CAAAA,GAAI5Q,CAAAA,oBAAT,CAA8BV,CAA9B,CAAqCiD,EAArC,CACA,KAAKqO,CAAAA,GAAIstE,CAAAA,OAAQ1tB,CAAAA,MAAjB,EACA,KAAK5\/C,CAAAA,GAAI80C,CAAAA,OAAT,EACAtxD,WAAA,CAAW,EAAA,EAAM,IAAKupF,CAAAA,SAAL,CAAep7E,EAAf,CAAjB,CArCA,CAD0C,CAA5C,CAwCA2lD,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,CAAC,CAClC,OAAQgV,CAD0B,CAElC,OAAAqqB,CAFkC,CAGlC,SAAA9oF,CAHkC,CAIlC,MAAAplB,EAAA,CAAQ,CAAC,CAAD,CAAI,CAAJ,CAJ0B,CAAD,CAAA,EAK7B,CACJ,MAAM+jF;AAAe\/E,EAAYsB,CAAAA,eAAZ,CACnBuD,CAAQ7\/E,CAAAA,MAAR,CAAgBtC,EAAD,EAAoB,OAApB,GAAQA,EAAG+e,CAAAA,IAA1B,CAA4Cvc,CAAAA,GAA5C,CAAiD+hB,EAAD,EAAW,CAAA,IACrDgC,EADqD,CAChDkI,EADgD,CAC5CC,EAD4C,CACxCi0D,EADwC,CACpCgwB,EADoC,CAC\/BC,EAD+B,CAC3BC,EAD2B,CACvBC,EADuB,CACnBne,EADmB,CACfoe,EADe,CACXC,EADW,CACPC,EADO,CACHC,EADG,CACCC,EADD,CACKC,EADL,CACSC,EAClE,OAAO,CACLhzG,KAA8D,IAAxD,GAACouB,EAAD,CAA6B,IAAvB,GAAClI,EAAD,CAAOhC,EAAMjmB,CAAAA,KAAb,EAA8B,IAAK,EAAnC,CAAuCioB,EAAA,CAAI,CAAJ,CAA7C,EAA+DkI,EAA\/D,CAAoEnwB,EAAA,CAAM,CAAN,CADrE,CAELgC,KAA4D,IAAtD,GAACqiF,EAAD,CAA4B,IAAtB,GAACj0D,EAAD,CAAMnK,EAAMjmB,CAAAA,KAAZ,EAA6B,IAAK,EAAlC,CAAsCowB,EAAA,CAAG,CAAH,CAA5C,EAA6Di0D,EAA7D,CAAkErkF,EAAA,CAAM,CAAN,CAFnE,CAGLb,MAA8D,IAAvD,GAACm1G,EAAD,CAA4B,IAAtB,GAACD,EAAD,CAAOpuF,EAAMhmB,CAAAA,IAAb,EAA6B,IAAK,EAAlC,CAAsCo0G,EAAA,CAAI,CAAJ,CAA5C,EAA8DC,EAA9D,CAAmE,CAHrE,CAILp1G,OAA6D,IAArD,GAACs1G,EAAD,CAA2B,IAArB,GAACD,EAAD,CAAMtuF,EAAMhmB,CAAAA,IAAZ,EAA4B,IAAK,EAAjC,CAAqCs0G,EAAA,CAAG,CAAH,CAA3C,EAA4DC,EAA5D,CAAiE,CAJpE,CAKLx\/E,MAA6D,IAAtD,GAACy\/E,EAAD,CAA4B,IAAtB,GAACpe,EAAD,CAAMpwE,EAAMjmB,CAAAA,KAAZ,EAA6B,IAAK,EAAlC,CAAsCq2F,EAAA,CAAG,CAAH,CAA5C,EAA6Doe,EAA7D,CAAkEz0G,EAAA,CAAM,CAAN,CAAzEg1B,GAA2I,IAArD,GAAC2\/E,EAAD,CAA2B,IAArB,GAACD,EAAD,CAAMzuF,EAAMhmB,CAAAA,IAAZ,EAA4B,IAAK,EAAjC,CAAqCy0G,EAAA,CAAG,CAAH,CAA3C,EAA4DC,EAA5D,CAAiE,CAAvJ3\/E,CALK,CAMLC,MAA6D,IAAtD,GAAC4\/E,EAAD,CAA4B,IAAtB,GAACD,EAAD,CAAM3uF,EAAMjmB,CAAAA,KAAZ,EAA6B,IAAK,EAAlC,CAAsC40G,EAAA,CAAG,CAAH,CAA5C;AAA6DC,EAA7D,CAAkE70G,EAAA,CAAM,CAAN,CAAzEi1B,GAA2I,IAArD,GAAC8\/E,EAAD,CAA2B,IAArB,GAACD,EAAD,CAAM7uF,EAAMhmB,CAAAA,IAAZ,EAA4B,IAAK,EAAjC,CAAqC60G,EAAA,CAAG,CAAH,CAA3C,EAA4DC,EAA5D,CAAiE,CAAvJ9\/E,CANK,CAFkD,CAA3D,CADmB,CAArB,CAaM+\/E,GAAenxB,CAAQ3\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\/E;AAAmF\/5C,CAAA,CAAI,CAAJ,CACrG,IAAIutF,EAAJ,CAAe,CATf,GAAI,CACF,IAAA,GAAO5tE,IAAKE,CAAAA,KAAL,CASc0tE,EATd,CADL,CAEF,MAAOvyG,EAAP,CAAW,CACX,EAAA,CAAO,IADI,CAQX,IAAA,GAAO,EADM,CAAf,IAH4C,GAAA,CAAA,IAAA,EAAA,CAQtCw4C,CAAAA,CAAO,EACb,IAAI,CAACA,CAAL,CACE,MAAO,KACT,OAAM,CAAE,OAAQooC,EAAV,CAAmB,SAAAz+D,EAAnB,CAA6B,OAAA8oF,EAA7B,CAAA,CAAwCzyD,CAC9C,OAAO,KAAKg6D,CAAAA,WAAL,CAAiB,CACtBrU,OAAQvd,EADc,CAEtBz+D,SAAAA,EAFsB,CAGtB8oF,OAAAA,EAHsB,CAItBluG,MAAAA,CAJsB,CAAjB,CALL,CAWF,MAAOuT,EAAP,CAAY,CACZqF,OAAQ8G,CAAAA,GAAR,CAAYnM,EAAZ,CADY,CAGd,MAAO,KA7B6D,CAAtE,CA+BAs7D,GAAA,CAAc,IAAd,CAAoB,4BAApB,CAAmD\/0D,CAAD,EAAU,CAE1D,CADM2hC,CACN,CADa,IAAKg6D,CAAAA,WAAL,CAAiB37F,CAAjB,CACb,GACE,IAAK47F,CAAAA,eAAL,CAAqBj6D,CAArB,CAEF,OAAO,KALmD,CAA5D,CAOAozB,GAAA,CAAc,IAAd,CAAoB,iBAApB,CAAwC\/0D,CAAD,EAAU,CAC\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\/E,CAAAA,GAAIi\/D,CAAAA,MAAT,CAAgB,SAAhB,CAA2B,CAAE77D,QAAS27E,CAAX,CAA3B,CAHmD,CAArD,CAKAznC,GAAA,CAAc,IAAd,CAAoB,MAApB,CAA4B,EAAA,EAAM,CAC5B,IAAKwnC,CAAAA,QAAT,EAE8C,MAF9C,GAEI,IAAK9+E,CAAAA,GAAIgB,CAAAA,YAAaspE,CAAAA,YAAat7E,CAAAA,EAFvC,EAII,IAAKgR,CAAAA,GAAIi\/E,CAAAA,OAJb,EAKE,IAAKj\/E,CAAAA,GAAIi\/E,CAAAA,OAAT,EAN8B,CAAlC,CASA3nC,GAAA,CAAc,IAAd,CAAoB,MAApB,CAA4B,EAAA,EAAM,CAC5B,IAAKwnC,CAAAA,QAAT,EAE8C,MAF9C,GAEI,IAAK9+E,CAAAA,GAAIgB,CAAAA,YAAaspE,CAAAA,YAAat7E,CAAAA,EAFvC,EAII,IAAKgR,CAAAA,GAAIk\/E,CAAAA,OAJb,EAKE,IAAKl\/E,CAAAA,GAAIk\/E,CAAAA,OAAT,EAN8B,CAAlC,CASA5nC;EAAA,CAAc,IAAd,CAAoB,kBAApB,CAAyC6nC,CAAD,EAE\/B,KADY,IAAKn\/E,CAAAA,GAAIk0E,CAAAA,aAATD,CAAuBkL,CAAgBj2F,CAAAA,IAAvC+qF,CACZ,EAAekL,CAAf,CAFT,CAIA7nC,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAoCy+B,CAAD,EAAc,CAC\/CztF,EAAA,CAAY,EAAA,EAAM,CAChB,IAAIoI,CAAJ,CACM,CAAE,MAAA0uF,CAAF,CAAA,CAAYrJ,CAClB,OAAMsJ,GAAY,IAAKP,CAAAA,QACvB,KAAKvR,CAAAA,KAAL,EACA,OAAM+R,GAAiB,CAAC,GAAG,IAAKt\/E,CAAAA,GAAI0Q,CAAAA,WAAb,CACvB,IAAI,CACF,MAAM6uE,GAAW,IAAItuG,GAAJ,CAAQ,IAAK+uB,CAAAA,GAAIo\/E,CAAAA,KAAjB,CAAjB,CACMI,GAAa,EACnB,KAAK,MAAMC,EAAX,GAA6BL,EAA7B,CAAoC,CAClC,MAAMM,GAAOH,EAASpmG,CAAAA,GAAT,CAAasmG,EAAezwF,CAAAA,EAA5B,CACb,IAAa,IAAK,EAAlB,GAAI0wF,EAAJ,CAAqB,CACnB,MAAMC,GAAY,IAAI1uG,GAAJ,CAAQyuG,EAAK7V,CAAAA,MAAOl9F,CAAAA,GAAZ,CAAiB+hB,EAAD,EAAW,CAACA,EAAMzc,CAAAA,KAAM+c,CAAAA,EAAb,CAAiBN,EAAjB,CAA3B,CAAR,CACZkxF,EAAAA,CAAc,EACpB,KAAK,MAAMT,EAAX,GAA8BM,GAAe5V,CAAAA,MAA7C,CAAqD,CACnD,MAAMn7E,GAAQixF,EAAUxmG,CAAAA,GAAV,CAAcgmG,EAAgBnwF,CAAAA,EAA9B,CACA,KAAK,EAAnB,GAAIN,EAAJ,EACMA,EAAMu3E,CAAAA,KAKV,GALoBkZ,EAAgBlZ,CAAAA,KAKpC,GAJEv3E,EAAM+hB,CAAAA,MAAN,CAAa0uE,EAAb,CAA8B,CAAA,CAA9B,CAEA,CADAzwF,EAAMu3E,CAAAA,KACN,CADckZ,EAAgBlZ,CAAAA,KAC9B,CAAAv3E,EAAM23E,CAAAA,iBAAN,CAAwB8Y,EAAxB,CAEF,EAAAQ,EAAUrgF,CAAAA,MAAV,CAAiB6\/E,EAAgBnwF,CAAAA,EAAjC,CANF;AAQE4wF,CAAY13G,CAAAA,IAAZ,CAAiB,IAAK23G,CAAAA,gBAAL,CAAsBV,EAAtB,CAAjB,CAViD,CAahC,CAArB,CAAIQ,EAAUj3G,CAAAA,IAAd,EAA0B,CAAC,IAAKs3B,CAAAA,GAAIgB,CAAAA,YAAa8+E,CAAAA,OAAtB,CAA8B,UAA9B,CAA0C,cAA1C,CAA3B,EACEJ,EAAK1L,CAAAA,YAAL,CAAkB,GAAG2L,EAAU1xF,CAAAA,MAAV,EAArB,CAEuB,EAAzB,CAAI2xF,CAAY93G,CAAAA,MAAhB,EACE43G,EAAK\/S,CAAAA,SAAL,CAAe,GAAGiT,CAAlB,CACFL,GAASjgF,CAAAA,MAAT,CAAgBmgF,EAAezwF,CAAAA,EAA\/B,CACA0wF,GAAK\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\/vE,CAAAA,MAAT,CAAgB\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\/0B,EAAtB,CAA+B,YAA\/B,CACA;MAAO,KAFqE,CAA9E,CAIAhV,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAACgV,EAAA,CAAU,IAAKhZ,CAAAA,mBAAhB,CAAA,EAAwC,CAC1E,IAAKV,CAAAA,WAAYyuC,CAAAA,IAAjB,CAAsB\/0B,EAAtB,CAA+B,UAA\/B,CACA,OAAO,KAFmE,CAA5E,CAIAhV,GAAA,CAAc,IAAd,CAAoB,OAApB,CAA6B,CAACpuD,EAAD,CAAOojE,EAAA,CAAU,IAAKhZ,CAAAA,mBAAtB,CAAA,EAA8C,CACzE,GAAqB,CAArB,CAAIgZ,EAAQxkF,CAAAA,MAAZ,EAA0B,IAAKgmC,CAAAA,QAA\/B,CACE,MAAO,KACT,OAAMwzE,GAAkBh1B,EAAQ3\/E,CAAAA,GAAR,CAAa+hB,EAAD,EAAW,CAC7C,MAAMnkB,GAASmkB,EAAM69D,CAAAA,SAAN,EACf,OAAO,CACLv9D,GAAIN,EAAMM,CAAAA,EADL,CAELvmB,MAAO,CAAC8B,EAAOC,CAAAA,IAAR,CAAcD,EAAOE,CAAAA,IAArB,CAFF,CAGLF,OAAAA,EAHK,CAFsC,CAAvB,CAAxB,CAQMiiF,GAAe\/E,EAAYsB,CAAAA,eAAZ,CAA4Bu4B,EAAgB30G,CAAAA,GAAhB,CAAoB,CAAC,CAAE,OAAApC,EAAF,CAAD,CAAA,EAAgBA,EAApC,CAA5B,CARrB,CASM0gF,GAAOuB,EAAahiF,CAAAA,IAApBygF,CAA2BuB,EAAa5kF,CAAAA,KAAxCqjF,CAAgD,CATtD,CAUMC,GAAOsB,EAAa\/hF,CAAAA,IAApBygF,CAA2BsB,EAAa7kF,CAAAA,MAAxCujF,CAAiD,CAVvD,CAWMq2B,GAAW\/xG,MAAOq9E,CAAAA,WAAP,CACfy0B,EAAgB30G,CAAAA,GAAhB,CAAoB,CAAC,CAAE,GAAIkuB,EAAN,CAAW,MAAApyB,EAAX,CAAkB,OAAA8B,EAAlB,CAAD,CAAA,EACX,CACLswB,EADK,CAEL,CACEne,KAAMjU,EADR,CAEE8L,KAAM,CACJ,IAAmB,CAAC9L,EAAA,CAAM,CAAN,CAAD,CAAW+jF,EAAa\/hF,CAAAA,IAAxB,CADf;AAEJ,eAAyC,CAAChC,EAAA,CAAM,CAAN,CAAD,CAAWyiF,EAAX,CAAkB3gF,EAAO5C,CAAAA,MAAzB,CAAkC,CAAlC,CAFrC,CAGJ,OAAyB,CAACc,EAAA,CAAM,CAAN,CAAD,CAAW+jF,EAAa9uD,CAAAA,IAAxB,CAA+BnzB,EAAO5C,CAAAA,MAAtC,CAHrB,CAIJ,KAAqB,CAAC6kF,EAAahiF,CAAAA,IAAd,CAAoB\/B,EAAA,CAAM,CAAN,CAApB,CAJjB,CAKJ,iBAA6C,CAACwiF,EAAD,CAAQ1gF,EAAO3C,CAAAA,KAAf,CAAuB,CAAvB,CAA0Ba,EAAA,CAAM,CAAN,CAA1B,CALzC,CAMJ,MAAuB,CAAC+jF,EAAa\/uD,CAAAA,IAAd,CAAqBlzB,EAAO3C,CAAAA,KAA5B,CAAmCa,EAAA,CAAM,CAAN,CAAnC,CANnB,CAAA,CAOJygB,EAPI,CAFR,CAFK,CADT,CADe,CAkBjBojE,GAAQvrE,CAAAA,OAAR,CAAiB2N,EAAD,EAAW,CACrB6yF,EAAA,CAAS7yF,EAAMM,CAAAA,EAAf,CAAJ,EACEN,EAAM+hB,CAAAA,MAAN,CAAa,CAAEhoC,MAAO84G,EAAA,CAAS7yF,EAAMM,CAAAA,EAAf,CAAmBza,CAAAA,IAA5B,CAAb,CAFuB,CAA3B,CAIA,KAAKugE,CAAAA,OAAL,EACA,OAAO,KArCkE,CAA3E,CAuCAwC,GAAA,CAAc,IAAd,CAAoB,YAApB,CAAkC,CAACpuD,EAAD,CAAOojE,EAAA,CAAU,IAAKhZ,CAAAA,mBAAtB,CAAA,EAA8C,CAC9E,GAAqB,CAArB,CAAIgZ,EAAQxkF,CAAAA,MAAZ,EAA0B,IAAKgmC,CAAAA,QAA\/B,CACE,MAAO,KACT,OAAMyzE,GAAW\/xG,MAAOq9E,CAAAA,WAAP,CACfpF,EAAY4E,CAAAA,gBAAZ,CAA6BC,EAA7B,CAAsCpjE,EAAtC,CAA4Cvc,CAAAA,GAA5C,CAAiD1C,EAAD,EAAQ,CAACA,EAAG+kB,CAAAA,EAAJ,CAAQ\/kB,EAAR,CAAxD,CADe,CAGjBqiF,GAAQvrE,CAAAA,OAAR,CAAiB2N,EAAD,EAAW,CACrB6yF,EAAA,CAAS7yF,EAAMM,CAAAA,EAAf,CAAJ,EACEN,EAAM+hB,CAAAA,MAAN,CAAa,CAAEhoC,MAAO84G,EAAA,CAAS7yF,EAAMM,CAAAA,EAAf,CAAmBza,CAAAA,IAA5B,CAAb,CAFuB,CAA3B,CAIA,KAAKugE,CAAAA,OAAL,EACA;MAAO,KAXuE,CAAhF,CAaAwC,GAAA,CAAc,IAAd,CAAoB,mBAApB,CAAyC,CAACgV,EAAA,CAAU,IAAKhZ,CAAAA,mBAAhB,CAAA,EAAwC,CAC\/E,GAAqB,CAArB,CAAIgZ,EAAQxkF,CAAAA,MAAZ,EAA0B,IAAKgmC,CAAAA,QAA\/B,CACE,MAAO,KACT,OAAMyzE,GAAW\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\/D,CAArB,CAH2C,CAA\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\/8D,CAAAA,YAA7B,CACE\/pC,EAAG80B,CAAAA,cAAH,EACA,CAAA,IAAKo1C,CAAAA,UAAL,CAAgB,QAAhB,CAFF,KAKA,IAAI,SAAJ,EAAiBlqE,GAAjB,CACE,IAAKw+B,CAAAA,MAAO5N,CAAAA,aAAZ,CACE,CAAC,GAAG,IAAKa,CAAAA,QAAS6kF,CAAAA,YAAd,CAA2B,CAACt2G,EAAGi1B,CAAAA,OAAJ;AAAaj1B,EAAGk1B,CAAAA,OAAhB,CAA3B,CAAJ,CAA0Dl1B,EAAG0kE,CAAAA,QAA7D,CADF,CAEE1kE,EAFF,CAX+C,CAAnD,CAiBA4rE,GAAA,CAAc,IAAd,CAAoB,aAApB,CAAmC,CAAC9C,EAAD,CAAO9oE,EAAP,CAAA,EAAc,CAC\/C,GAAI,CAAC,IAAK+pC,CAAAA,YAAV,EAAwC,CAAxC,GAA0B\/pC,EAAG8mG,CAAAA,MAA7B,EAA6C,IAAK3H,CAAAA,IAAL,CAAU,MAAV,CAA7C,CACE,IAAK7pE,CAAAA,YAAa40C,CAAAA,UAAlB,CAA6B,MAA7B,CAAqC,CAAEoiC,KAAM,CAAA,CAAR,CAArC,CAEA,CADAtsG,EAAGysD,CAAAA,eAAH,EACA,CAAAzsD,EAAG80B,CAAAA,cAAH,EAHF,KAMA,IAAI,SAAJ,EAAiB90B,GAAjB,CACE,IAAKw+B,CAAAA,MAAOvO,CAAAA,WAAZ,CACE,CAAC,GAAG,IAAKwB,CAAAA,QAAS6kF,CAAAA,YAAd,CAA2B,CAACt2G,EAAGi1B,CAAAA,OAAJ,CAAaj1B,EAAGk1B,CAAAA,OAAhB,CAA3B,CAAJ,CAA0Dl1B,EAAG0kE,CAAAA,QAA7D,CADF,CAEE1kE,EAFF,CAR6C,CAAjD,CAcA4rE,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAqC,CAAC9C,EAAD,CAAO9oE,EAAP,CAAA,EAAc,CACjD,GAAI,SAAJ,EAAiBA,GAAjB,CACE,IAAKw+B,CAAAA,MAAOxN,CAAAA,aAAZ,CAA0B,CAAC,GAAG,IAAKS,CAAAA,QAAS6kF,CAAAA,YAAd,CAA2B,CAACt2G,EAAGi1B,CAAAA,OAAJ,CAAaj1B,EAAGk1B,CAAAA,OAAhB,CAA3B,CAAJ,CAA0Dl1B,EAAG0kE,CAAAA,QAA7D,CAA1B,CAAkG1kE,EAAlG,CAF+C,CAAnD,CAKA4rE,GAAA,CAAc,IAAd,CAAoB,WAApB;AAAiC,CAAC9C,EAAD,CAAO9oE,EAAP,CAAA,EAAc,CAC7C,GAAK,IAAK+pC,CAAAA,YAAV,EAAwC,GAAxC,GAA0B\/pC,EAAA,CAAA,GAA1B,EAAgD,IAAKm\/F,CAAAA,IAAL,CAAU,MAAV,CAAhD,CAIA,IAAK3gE,CAAAA,MAAOrN,CAAAA,SAAZ,CAAsBnxB,EAAtB,CAJA,KACE,KAAKk3G,CAAAA,yBAAL,CAA+Bl3G,EAA\/B,CAF2C,CAA\/C,CAOA4rE,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,CAAC9C,EAAD,CAAO9oE,EAAP,CAAA,EAAc,CAC3C,GAAI,CAAC,IAAK+pC,CAAAA,YAAV,EAAwC,GAAxC,GAA0B\/pC,EAAA,CAAA,GAA1B,EAA+C,IAAKm\/F,CAAAA,IAAL,CAAU,MAAV,CAA\/C,CACE,IAAK7pE,CAAAA,YAAa40C,CAAAA,UAAlB,CAA6B,MAA7B,CAAqC,CAAEoiC,KAAM,CAAA,CAAR,CAArC,CAEA,CADAtsG,EAAGysD,CAAAA,eAAH,EACA,CAAAzsD,EAAG80B,CAAAA,cAAH,EAHF,KAMA,KAAK0J,CAAAA,MAAOpN,CAAAA,OAAZ,CAAoBpxB,EAApB,CAP2C,CAA7C,CASA4rE,GAAA,CAAc,IAAd,CAAoB,cAApB,CAAoC,CAAC9C,EAAD,CAAO9oE,EAAP,CAAA,EAAc,CAChD,IAAKw+B,CAAAA,MAAOwB,CAAAA,YAAZ,CAAyB,CAAC,GAAG,IAAKvO,CAAAA,QAAS6kF,CAAAA,YAAd,CAA2BxtC,EAAK\/rE,CAAAA,KAAhC,CAAJ,CAA4C,EAA5C,CAAzB,CAA2EiD,EAA3E,CADgD,CAAlD,CAGA4rE,GAAA,CAAc,IAAd,CAAoB,SAApB,CAA+B,CAAC9C,EAAD,CAAO9oE,EAAP,CAAA,EAAc,CAC3C,IAAKw+B,CAAAA,MAAO4B,CAAAA,OAAZ,CAAoB,CAAC,GAAG,IAAK3O,CAAAA,QAAS6kF,CAAAA,YAAd,CAA2BxtC,EAAK\/rE,CAAAA,KAAhC,CAAJ;AAA4C,EAA5C,CAApB,CAAsEiD,EAAtE,CAD2C,CAA7C,CAGA4rE,GAAA,CAAc,IAAd,CAAoB,YAApB,CAAkC,CAAC9C,EAAD,CAAO9oE,EAAP,CAAA,EAAc,CAC9C,IAAKw+B,CAAAA,MAAO2B,CAAAA,UAAZ,CAAuB,CAAC,GAAG,IAAK1O,CAAAA,QAAS6kF,CAAAA,YAAd,CAA2BxtC,EAAK\/rE,CAAAA,KAAhC,CAAJ,CAA4C,EAA5C,CAAvB,CAAyEiD,EAAzE,CAD8C,CAAhD,CAGA,KAAK0\/F,CAAAA,OAAL,CAAe,CAACsM,EAAD,CAAeS,EAAf,CACf,KAAKrqE,CAAAA,QAAL,CAAgBA,CAChB,KAAKw\/D,CAAAA,OAAQC,CAAAA,KAAb,EACI,KAAKnD,CAAAA,MAAT,EAAwC,CAAxC,CAAmB,IAAKA,CAAAA,MAAOtiG,CAAAA,MAA\/B,GACE,IAAK8jG,CAAAA,cAAL,CAAoB,IAAKxB,CAAAA,MAAzB,CAEMx4E,CADAi6E,CACAj6E,CADoC,IAAxB,GAAClB,EAAD,CAAO,IAAKsqC,CAAAA,OAAZ,EAA+BtqC,EAA\/B,CAAqC,IAAK05E,CAAAA,MAAL,CAAY,CAAZ,CAAep7E,CAAAA,EAChE4C,CAAAA,EAAAA,CAAQ,IAAKwjB,CAAAA,QAASj8B,CAAAA,GAAd,CAAkB0yF,CAAlB,CAHhB,IAKI,IAAKvB,CAAAA,YACL,CADoB14E,EACpB,CAA4B,IAA5B,GAACgH,EAAD,CAAM,IAAK0xE,CAAAA,YAAX,EAAmC,IAAK,EAAxC,CAA4C1xE,EAAG2xE,CAAAA,OAAQI,CAAAA,OAAX,CAAmB,CAAEt8E,OAAQ,SAAV,CAAnB,CANhD,CASIuf,EAAJ,EACE,IAAKi1E,CAAAA,cAAL,CAAoBj1E,CAApB,CACEC,EAAJ,EACE,IAAKi1E,CAAAA,aAAL,CAAmBj1E,CAAnB,CACF,KAAKy\/D,CAAAA,OAAQ1tB,CAAAA,MAAb,EACI\/N,EAAJ,EACE,IAAKy7B,CAAAA,OAAQyV,CAAAA,WAAb,CAAyBlxC,CAAzB,CACF;IAAKp3C,CAAAA,GAAL,CAAW,IAAIshF,EAAJ,CAAU,IAAV,CACXtyF,GAAA,CAAe,IAAf,CACA,KAAKw1E,CAAAA,MAAL,CAAY,OAAZ,CAAqB,IAArB,CApgBkD,CAsgBpD\/wD,iBAAiB,CAACP,CAAD,CAAQ,CACvB,IAAK2\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\/C,EAO2D,CAACwlC,CAAoB\/hB,CAAAA,KAApB,CAA2B7iC,CAAD,EAAWA,CAAMm1F,CAAAA,iBAA3C,CATtC,CAWpB,oBAAmB,EAAA,CACrB,MAAM,CAAE,oBAAAvwC,CAAF,CAAA;AAA0B,IAChC,OAAO,KAAKwsC,CAAAA,OAAL,CACL,aADK,CAEL,gCAFK,CAGL,sBAHK,CAIL,8BAJK,CAAP,EAKoC,CALpC,GAKKxsC,CAAoBxrE,CAAAA,MALzB,EAKyC0H,MAAOye,CAAAA,MAAP,CAAc0yD,EAAd,CAAwB3hC,CAAAA,IAAxB,CAA8B49D,CAAD,EAAcA,CAAd,GAA2B,IAAKtpC,CAAAA,mBAAL,CAAyB,CAAzB,CAA4BpqD,CAAAA,IAApF,CALzC,EAKsI,CAAC,IAAK4kB,CAAAA,QAPvH,CASvB80E,yBAAyB,CAACn\/E,CAAD,CAAQ,CAC\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\/qB,CAAAA,MAAvC,CAA+CgjB,CAA\/C,CAAwD05F,EAAxD,CAAkE,EAAE15F,CAApE,CACE6G,CAAA,CAAM7G,CAAN,CAAA,CAAgB8G,CAAMI,CAAAA,MAAN,CAAaa,CAAA,CAAO\/H,CAAP,CAAb,CAA6B8G,CAA7B,CAElB,OAAOD,EAN8B,CA8FX,CAE1B4B,YAnFFkxF,QAAwB,CAAClxF,CAAD,CAAcb,CAAd,CAAsB,CAC5C,MAAOa,EAAY1f,CAAAA,KAAZ,CAAkB,CAAlB,CADqC,CAiFlB,CAG1B4f,KAjFFixF,QAAiB,CAACjxF,CAAD,CAAOf,CAAP,CAAe,CAC9B,MAAOe,EAAK5f,CAAAA,KAAL,CAAW,CAAX,CAAc4f,CAAK\/qB,CAAAA,IAAnB,CAAyB+qB,CAAKvK,CAAAA,IAA9B,CADuB,CA8EJ,CAI1B0K,SA\/EF+wF,QAAqB,CAAC\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\/G,EAAtB,CAA0C,CAClCC,CAAAA,CAAiB\/3G,EAAM03G,CAAAA,WAAN,CAAkB,IAAlB,CAAwBrB,CAAxB,CAAyC,CAAzC,CAAjB0B,CAA+D,CACrE,KAAMC,GAAev8F,CAAQzb,CAAAA,KAAMyE,CAAAA,KAAd,CAAoBszG,CAApB,CAAoCzB,CAApC,CAAmD,CAAnD,CACf2B,GAAAA,CAAeD,EAAahkF,CAAAA,OAAb,CACnB,OADmB,CAElB,KAAIiiF,EAAWiC,CAAAA,MAAf,EAFkB,CAIfC,GAAAA,CAAoBF,EAAav\/G,CAAAA,MAAjCy\/G,CAA0CH,EAAat\/G,CAAAA,MAC7D+iB,EAAQ28F,CAAAA,iBAAR,CAA0BL,CAA1B,CAA0CzB,CAA1C,CAAyD,CAAzD,CACAL,GAAWhsC,CAAAA,MAAX,CAAkBxuD,CAAlB,CAA2Bw8F,EAA3B,CACAx8F,EAAQ28F,CAAAA,iBAAR,CAA0B\/B,CAA1B,CAA2C,CAA3C,CAA8CC,CAA9C,CAA6D6B,EAA7D,CAVwC,CAA1C,IAYElC,GAAWhsC,CAAAA,MAAX,CAAkBxuD,CAAlB,CAA2Bw6F,EAAWiC,CAAAA,MAAtC,CAjBmB,CAoBhBG,eAAQ,CAAC58F,CAAD,CAAU,CACvB,MAAM,CAAE,eAAA46F,CAAF,CAAkB,aAAAC,CAAlB,CAAgC,MAAAt2G,CAAhC,CAAA,CAA0Cyb,CAChD,KAAMs8F,GAAiB\/3G,CAAM03G,CAAAA,WAAN,CAAkB,IAAlB,CAAwBrB,CAAxB,CAAyC,CAAzC,CAAjB0B,CAA+D,CACrE,OAAMO,GAAsBrC,EAAWsB,CAAAA,WAAX,CAAuBv3G,CAAvB,CAA8Bs2G,CAA9B,CAC5B,KAAM0B,GAAev8F,CAAQzb,CAAAA,KAAMyE,CAAAA,KAAd,CAAoBszG,EAApB;AAAoCO,EAApC,CACrB,OAAML,GAAeD,EAAahkF,CAAAA,OAAb,CAAqB,oBAArB,CAA2C,IAA3C,CACfmkF,GAAAA,CAAoBH,EAAat\/G,CAAAA,MAAjCy\/G,CAA0CF,EAAav\/G,CAAAA,MAC7D+iB,EAAQ28F,CAAAA,iBAAR,CAA0BL,EAA1B,CAA0CO,EAA1C,CACArC,GAAWhsC,CAAAA,MAAX,CAAkBxuD,CAAlB,CAA2Bw8F,EAA3B,CAEMM,GAAAA,CAAa,CADbC,EACa,CADU,WAAY18C,CAAAA,IAAZ,CAAiB97D,CAAMyE,CAAAA,KAAN,CAAYszG,EAAZ,CAA4B1B,CAA5B,CAAjB,CACV,EAAuBmC,EAAA,CAAqB,CAArB,CAAwB9\/G,CAAAA,MAA\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\/sC,EAAM+3F,CAAAA,WAAN,CAAoB,CAAA,CACpB\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\/B,EA\/K+BmjH,EA+K\/B,CAAuC3pC,EAAvC,IACE5vD,CAAMrD,CAAAA,KAKN,CALcq6F,EAAE99G,CAAAA,GAAF,CAAM8mB,CAAMvrB,CAAAA,MAAZ,CAAoBwkH,EAApB,CAKd,CAJMO,CAIN,CAJsBx5F,CAAMrD,CAAAA,KAAM5hB,CAAAA,GAAZ,CAAgB5F,IAAKq6B,CAAAA,GAArB,CAItB,CAHAwnF,EAAEG,CAAAA,KAAF,CAAQn3F,CAAMzC,CAAAA,QAAd,CAAwBi8F,CAAxB,CAGA,CAFAx5F,CAAMtoB,CAAAA,SAEN,CAFkBsoB,CAAMrD,CAAAA,KAAM5hB,CAAAA,GAAZ,CAAgB5F,IAAK8jC,CAAAA,IAArB,CAElB,CADAjZ,CAAMsU,CAAAA,UACN,CADmBtU,CAAMmU,CAAAA,MAAOp5B,CAAAA,GAAb,CAAiB5F,IAAK8jC,CAAAA,IAAtB,CACnB,CAAI,CAACjZ,CAAM+W,CAAAA,KAAX,EAA0B,CAA1B,CAAoB64C,EAApB,GACE5vD,CAAMo4F,CAAAA,QADR,CACmB,CAACoB,CAAA,CAAc,CAAd,CAAD,CAAoB5pC,EAApB,CAAyB4pC,CAAA,CAAc,CAAd,CAAzB,CAA4C5pC,EAA5C,CADnB,CANF,CAvCA,CA7Ca,CA+Ff6pC,IAAI,EAAG,CACL,MAAMz5F,EAAQ,IAAKA,CAAAA,KACnB,KAAM6V;AAAS,IAAKA,CAAAA,MACpB,OAAMd,EAAS,IAAKA,CAAAA,MACf\/U,EAAM23F,CAAAA,OAAX,EACE,IAAKrgF,CAAAA,KAAL,EACF,IAAWugF,CAAN73F,CAAM63F,CAAAA,QAAX,EAAwB73F,CAAM+3F,CAAAA,WAA9B,EAA+C\/3F,CAAM83F,CAAAA,MAArD,EAAgE\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\/G,CACd5xF,KAAM+0F,CAAU\/0F,CAAAA,IAAhBA,CAAuBg1F,CAAWh1F,CAAAA,IAAlCA,CAAyCrG,CAAMvrB,CAAAA,MAAN,CAAa,CAAb,CAD3BwjH,CAEdvsE,MAAO0vE,CAAU1vE,CAAAA,KAAjBA,CAAyB2vE,CAAW3vE,CAAAA,KAApCA,CAA4C1rB,CAAMvrB,CAAAA,MAAN,CAAa,CAAb,CAF9BwjH,CAGd7xF,IAAKg1F,CAAUh1F,CAAAA,GAAfA,CAAqBi1F,CAAWj1F,CAAAA,GAAhCA,CAAsCpG,CAAMvrB,CAAAA,MAAN,CAAa,CAAb,CAHxBwjH,CAIdtsE,OAAQyvE,CAAUzvE,CAAAA,MAAlBA,CAA2B0vE,CAAW1vE,CAAAA,MAAtCA,CAA+C3rB,CAAMvrB,CAAAA,MAAN,CAAa,CAAb,CAJjCwjH,CAMA,CATwB,CAFpC,CAcRhuB,MAAM,EAAG,CACP,MAAMjqE;AAAQ,IAAKA,CAAAA,KACfA,EAAMme,CAAAA,QAAV,GAEAne,CAAMme,CAAAA,QAEN,CAFiB,CAAA,CAEjB,CADAne,CAAM23F,CAAAA,OACN,CADgB,CAAA,CAChB,CAAA\/lG,UAAA,CAAW,EAAA,EAAM,CACf,IAAK0mG,CAAAA,OAAL,EACA,KAAKmB,CAAAA,IAAL,EAFe,CAAjB,CAGG,CAHH,CAJA,CAFO,CAWT6B,SAAS,EAAG,CACV,IAAKt7F,CAAAA,KAAM23F,CAAAA,OAAX,CAAqB,IAAK33F,CAAAA,KAAM+6F,CAAAA,cAAhC,EAAkD,IAAK\/6F,CAAAA,KAAMg7F,CAAAA,eADnD,CAGZ1jF,KAAK,EAAG,CACN,IAAKikF,CAAAA,YAAL,EACA,KAAKv7F,CAAAA,KAAM+6F,CAAAA,cAAX,CAA4B,CAAA,CAC5B,KAAK\/6F,CAAAA,KAAMg7F,CAAAA,eAAX,CAA6B,CAAA,CAC7B,MAAM1jF,CAAAA,KAAN,EAJM,CAMRkkF,WAAW,CAAC3pF,CAAD,CAAQ,CACjB,MAAMkD,EAAS,IAAKA,CAAAA,MAApB,CACM\/U,EAAQ,IAAKA,CAAAA,KACnB,IAAqB,IAArB,EAAI6R,CAAM0H,CAAAA,OAAV,GAA8Bj9B,KAAMsG,CAAAA,OAAN,CAAcmyB,CAAO0mF,CAAAA,cAArB,CAAA,CAAwC1mF,CAAO0mF,CAAAA,cAAep2F,CAAAA,QAAtB,CAA+BwM,CAAM0H,CAAAA,OAArC,CAAxC,CAAkH,CAAC,CAAnH,GAAwFxE,CAAO0mF,CAAAA,cAA\/F,EAAwH1mF,CAAO0mF,CAAAA,cAA\/H,GAAkJ5pF,CAAM0H,CAAAA,OAAtL,EAAA,CAEA,IAAMmiF,EAAU,IAAKzlF,CAAAA,IAAK0lF,CAAAA,WAAV,CAAsB9pF,CAAtB,CACZkD;CAAO6mF,CAAAA,cAAX,EACE\/pF,CAAM3xB,CAAAA,MAAO2qB,CAAAA,iBAAb,CAA+BgH,CAAMzH,CAAAA,SAArC,CAEEsxF,EAAJ,EAA8B,CAA9B,CAAeA,CAAQ5kH,CAAAA,IAAvB,EAAmCkpB,CAAM+6F,CAAAA,cAAzC,GAEA,IAAKz8F,CAAAA,KAAL,CAAWuT,CAAX,CAMA,CALA,IAAKgqF,CAAAA,YAAL,CAAkBhqF,CAAlB,CAKA,CAJA7R,CAAM86F,CAAAA,UAIN,CAJmB1wF,EAAA,CAAUyH,CAAV,CAInB,CAHA7R,CAAM+6F,CAAAA,cAGN,CAHuB,CAAA,CAGvB,CAFA,IAAKvD,CAAAA,aAAL,CAAmBvkF,EAAA,CAAcpB,CAAd,CAAnB,CAEA,CADA,IAAK4lF,CAAAA,cAAL,EACA,CAAI1iF,CAAO+mF,CAAAA,iBAAX,EAA0D,OAA1D,GAAgClqF,EAAA,CAAeC,CAAf,CAAhC,EACE7R,CAAM23F,CAAAA,OACN,CADgB,CAAA,CAChB,CAAA,IAAKoE,CAAAA,qBAAL,CAA2BlqF,CAA3B,CAFF,EAG0B,CAAnB,CAAIkD,CAAO7jB,CAAAA,KAAX,EACL,IAAK8qG,CAAAA,iBAAL,CAAuBnqF,CAAvB,CACA,CAAIkD,CAAO2kF,CAAAA,gBAAX,GACE,IAAKpB,CAAAA,OAAL,CAAazmF,CAAb,CACA,CAAA,IAAK4nF,CAAAA,IAAL,EAFF,CAFK,EAOL,IAAKwC,CAAAA,gBAAL,CAAsBpqF,CAAtB,CAlBF,CANA,CAHiB,CA8BnBoqF,gBAAgB,CAACpqF,CAAD,CAAQ,CACtB,MAAM7R,EAAQ,IAAKA,CAAAA,KACnBA,EAAM23F,CAAAA,OAAN,CAAgB,CAAA,CAChB33F,EAAMi7F,CAAAA,cAAN,CAAuB,CAAA,CACvBj7F,EAAMk7F,CAAAA,QAAN,CAAiB,CAAA,CACjB,KAAK5C,CAAAA,OAAL,CAAazmF,CAAb,CACA;IAAK4nF,CAAAA,IAAL,EANsB,CAQxByC,WAAW,CAACrqF,CAAD,CAAQ,CACjB,MAAM7R,EAAQ,IAAKA,CAAAA,KAAnB,CACM+U,EAAS,IAAKA,CAAAA,MACpB,IAAK\/U,CAAM+6F,CAAAA,cAAX,GAEI\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\/mF,EACnB,EAAIj\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\/C,CAA7C,CAhC\/C4gH,GAgC+C,CAAoF,IAAK,EACvK,IAAaC,EAAb,EAA8C,CAAA,CAA9C,GAA4BnhE,CAA5B,CAEA,MAAO1\/C,EAAA,CAAQA,CAAR,CAAkC,IAAK,EAAvB,GAAA0\/C,CAAA,CAA2B,GAA3B,CAAiC,IAAK,EAJ5D,CArBsF,CA2BzF0+D,cAAc,CAACxB,CAAD,CAAK7O,CAAL,CAAS,CACrB,QAAS,CACP,QAAAz6E,CAAA,CAAU,CAAA,CADH,CAEP,QAAAyI,CAAA,CAAU,CAFH,CAGP,KAAA95B,EAAA,CAAO,CAAA,CAHA,CAAA,CAIL,EALiB,CAAT,CAMX,CACD,IAAKg8G,CAAAA,cAAL,CAAsBliF,CACtB,KAAK95B,CAAAA,IAAL,CAAYA,EACZ,OAAO,CAAC,IAAK09G,CAAAA,WAAb,EAA4C,SAA5C,GAA4B,IAAKjsF,CAAAA,MAAjC,EAAyDJ,CAHxD,CAjCsF,CAsCzF8C,SAAS,CAACp2B,CAAD,CAAQ+tG,CAAR,CAAY,CACnB,WAAAkR,CAAA,CAAa,CAAA,CADM,CAEnB,cAAAD,CAAA,CAAgB,CAFG,CAGnB,KAAAtE,EAHmB,CAAZ,CAIN,CACKtkF,CAAAA,CAAYojF,EAAEC,CAAAA,QAAF,CAAWz5G,CAAX,CAAkBi\/G,CAAA,CAAaD,CAAb,CAA6BtE,EAAA,CAAO,CAAP,CAAW,CAA1D,CAClB,KAAKuE,CAAAA,UAAL,CAAkBA,CAClB,KAAKD,CAAAA,aAAL,CAAqBA,CACrB,OAAO5oF,EAJN,CA1CsF,CAgDzFunF,KAAK,CAAC,CACJ,SAAA\/C,CAAA,CAzDyBkG,EAwDrB,CAEJ,SAAA\/gG,CAAA,CAzDyBghG,EAuDrB,CAGJ,SAAAvV,CAAA,CAzDyBwV,GAsDrB,CAAA,CAIF,EAJC,CAIG,CACN,MAAO,CACLpG,SAAU,IAAK5iF,CAAAA,SAAL,CAAewhF,EAAEC,CAAAA,QAAF,CAAWmB,CAAX,CAAf,CADL,CAEL76F,SAAU,IAAKiY,CAAAA,SAAL,CAAewhF,EAAEC,CAAAA,QAAF,CAAW15F,CAAX,CAAf,CAFL;AAGLyrF,SAAAA,CAHK,CADD,CApDiF,CA2DzF93F,KAAK,CAAC1T,CAAA,CAAQ,CAAT,CAAY,CACf,OAAQA,CAAR,EACE,KAAK,CAAA,CAAL,CACE,MAvEiBihH,IAwEnB,MAAK,CAAA,CAAL,CACE,MAAO,EACT,SACE,MAAOjhH,EANX,CADe,CA3DwE,CAqEzFu8G,aAAa,CAACv8G,CAAD,CAAQ,CACnB,MAAKA,EAAL,CAEOgzB,EAAA,CAAeA,EAAA,CAAe,EAAf,CAAmBwtF,EAAnB,CAAf,CAAgExgH,CAAhE,CAFP,CACSwgH,EAFU,CArEoE,CAAlE,CAhBd,CA0IPU,GAAc,aAAcnH,GAAd,CAChBt5G,WAAW,CAAC,GAAG5B,CAAJ,CAAU,CACnB,KAAA,CAAM,GAAGA,CAAT,CACA+zB,GAAA,CAAgB,IAAhB,CAAsB,QAAtB,CAAgC,UAAhC,CACAA,GAAA,CAAgB,IAAhB,CAAsB,UAAtB,CAAkC,IAAlC,CAHmB,CAKrB27B,IAAI,EAAG,CACL,IAAK\/rC,CAAAA,KAAMvrB,CAAAA,MAAX,CAAoB,CAAC,CAAD,CAAI,CAAJ,CACpB,KAAKurB,CAAAA,KAAM+yC,CAAAA,UAAX,CAAwB,CAAC,CAAD,CAAI,CAAJ,CACxB,KAAK\/yC,CAAAA,KAAM2+F,CAAAA,cAAX,CAA4C,IAAIt\/G,GAH3C,CAKPqpD,KAAK,EAAG,CACN,KAAMA,CAAAA,KAAN,EACA,OAAM1oC,EAAQ,IAAKA,CAAAA,KACnBA,EAAM4+F,CAAAA,SAAN,CAAkB,EAClB5+F,EAAMme,CAAAA,QAAN,CAAiB,CAAA,CACjBne,EAAMiqE,CAAAA,MAAN,CAAe,IAAKA,CAAAA,MAAO71F,CAAAA,IAAZ,CAAiB,IAAjB,CACf4rB,EAAM6+F,CAAAA,KAAN,CAAc,CANR,CAQRzF,aAAa,EAAG,CACd,MAAM,CACJ,KAAA9hG,CADI,CAEJ,SAAA+gG,CAFI,CAGJ,WAAAtlD,CAHI,CAAA;AAIF,IAAK\/yC,CAAAA,KAEP,KAAKA,CAAAA,KAAMvrB,CAAAA,MAAX,CADW,OAAb,GAAI6iB,CAAJ,CACsB0\/F,EAAE3\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\/gH,CAAAA,MACvB,KAAK+\/G,CAAAA,aAAL,CAAmB,CAACgB,CAAQj7F,CAAAA,QAAT,CAAmBi7F,CAAQhmF,CAAAA,KAA3B,CAAnB,CACA,KAAKilF,CAAAA,cAAL,EACA,KAAKa,CAAAA,OAAL,CAAazmF,CAAb,CACA,KAAK4nF,CAAAA,IAAL,EANyB,CAQ3B4F,SAAS,CAACxtF,CAAD,CAAQ,CACf,GAAK,IAAK7R,CAAAA,KAAM23F,CAAAA,OAAhB,CAAA,CAEA,IAAMa,EAAUzlF,EAAA,CAAmBlB,CAAnB,CAA0B,IAAK7R,CAAAA,KAAM4+F,CAAAA,SAArC,CAChB,KAAKU,CAAAA,SAAL,CAAeztF,CAAf,CAAsB2mF,CAAtB,CAHA,CADe,CAMjB0D,WAAW,CAACrqF,CAAD,CAAQ,CACjB,IAAM8sF,EAAiB,IAAK3+F,CAAAA,KAAM2+F,CAAAA,cAC9BA,EAAe5pG,CAAAA,GAAf,CAAmB8c,CAAMzH,CAAAA,SAAzB,CAAJ,EACEu0F,CAAel6G,CAAAA,GAAf,CAAmBotB,CAAMzH,CAAAA,SAAzB,CAAoCyH,CAApC,CAEG,KAAK7R,CAAAA,KAAM23F,CAAAA,OAAhB,GAEMa,CACN,CADgBnmF,EAAA,CAAc,GAAG\/1B,KAAM4F,CAAAA,IAAN,CAAWy8G,CAAetiG,CAAAA,MAAf,EAAX,CAAjB,CAChB,CAAA,IAAKijG,CAAAA,SAAL,CAAeztF,CAAf;AAAsB2mF,CAAtB,CAHA,CALiB,CAUnB8G,SAAS,CAACztF,CAAD,CAAQ2mF,CAAR,CAAiB,CACxB,MAAMx4F,EAAQ,IAAKA,CAAAA,KAAnB,CAEMu\/F,EAAU\/G,CAAQhmF,CAAAA,KAAlB+sF,CADSv\/F,CAAMoyF,CAAAA,OAANoN,CAAc,CAAdA,CAEf,KAAIC,GAAc,CACM,IAAxB,CAAItqH,IAAKq6B,CAAAA,GAAL,CAAS+vF,CAAT,CAAJ,GACEE,EADF,EACiBtqH,IAAK8jC,CAAAA,IAAL,CAAUsmF,CAAV,CADjB,CAEA,KAAK\/H,CAAAA,aAAL,CAAmB,CAACgB,CAAQj7F,CAAAA,QAAT,CAAmBi7F,CAAQhmF,CAAAA,KAA3B,CAAmC,GAAnC,CAAyCitF,EAAzC,CAAnB,CACAz\/F,EAAMvoB,CAAAA,MAAN,CAAe+gH,CAAQ\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\/B,CACAJ,GAAA,CAAmC\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\/d,CA\/sCpBjH,CAAAA,aACV,KAAA,GAAO,CAA4E,IAA3E,IAAC+nB,CAAD,CAAoB,IAAZ,GAAA2uE,EAAA,EAAgC,IAAK,EAArC,GAAoBA,EAApB,CAAyCA,EAAzC,CAAmD3xE,EAA3D,GAA4F,IAAK,EAAjG,GAAmFgD,CAAnF,CAAqGA,CAArG,CAA4G,CAA7G,CAA2L,IAA3E,IAACC,CAAD,CAAqB,IAAZ,GAAA2uE,EAAA,EAAgC,IAAK,EAArC,GAAoBA,EAApB,CAAyCA,EAAzC,CAAmD3xE,EAA5D,GAA6F,IAAK,EAAlG,GAAmFgD,CAAnF,CAAsGA,CAAtG,CAA8G,CAA9N,CA+sCL5yB,EAAMmU,CAAAA,MAAN,CAAe6iF,EAAE99G,CAAAA,GAAF,CADAmjB,EACA,CAAc2D,CAAMoyF,CAAAA,OAApB,CACf4E,GAAEG,CAAAA,KAAF,CAAQn3F,CAAMuU,CAAAA,SAAd,CAAyBvU,CAAMmU,CAAAA,MAA\/B,CACA,KAAKqjF,CAAAA,aAAL,CAHen7F,EAGf,CACA;IAAKi8F,CAAAA,OAAL,CAAazmF,CAAb,CACA,KAAK4nF,CAAAA,IAAL,EATkB,CAWpB4H,SAAS,EAAG,CACL,IAAKrhG,CAAAA,KAAM23F,CAAAA,OAAhB,GAEA,IAAK33F,CAAAA,KAAM23F,CAAAA,OAEX,CAFqB,CAAA,CAErB,CADA,IAAKW,CAAAA,OAAL,EACA,CAAA,IAAKmB,CAAAA,IAAL,EAJA,CADU,CAOZrlH,IAAI,CAACwpH,CAAD,CAAe,CACjBA,CAAA,CAAa,QAAb,CAAuB,EAAvB,CAA2B,IAAKuD,CAAAA,MAAO\/sH,CAAAA,IAAZ,CAAiB,IAAjB,CAA3B,CADiB,CA7BF,CAnfR,CAohBPotH,GAAuBrH,EAphBhB,CAqhBPsH,GAAc,aAAc3H,GAAd,CAChB77G,WAAW,CAAC,GAAG5B,CAAJ,CAAU,CACnB,KAAA,CAAM,GAAGA,CAAT,CACA+zB,GAAA,CAAgB,IAAhB,CAAsB,QAAtB,CAAgC,UAAhC,CAFmB,CAIrB4vF,KAAK,CAACnuF,CAAD,CAAQ,CACN,IAAK7R,CAAAA,KAAM23F,CAAAA,OAAhB,EACE,IAAKr5F,CAAAA,KAAL,CAAWuT,CAAX,CACF,KAAKquF,CAAAA,WAAL,CAAiBruF,CAAjB,CACA,KAAKgoF,CAAAA,YAAaxiH,CAAAA,GAAlB,CAAsB,UAAtB,CAAkC,IAAK+oH,CAAAA,QAAShsH,CAAAA,IAAd,CAAmB,IAAnB,CAAlC,CAJW,CAMb8rH,WAAW,CAACruF,CAAD,CAAQ,CACjB,MAAM7R,EAAQ,IAAKA,CAAAA,KACnBA,EAAMmU,CAAAA,MAAN,CAAejB,EAAA,CAAYrB,CAAZ,CACfmlF,GAAEG,CAAAA,KAAF,CAAQn3F,CAAMuU,CAAAA,SAAd,CAAyBvU,CAAMmU,CAAAA,MAA\/B,CACAJ,GAAA,CAAmC\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\/sB,CAFxC,CADW,CAOzB+3B,OAAO,CAAC\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\/Y,YAAa,CAAA,CALM,CA8BrB+kC,GAAkB\/kC,CAAAA,WAAlB,CAAgC,UAGZzK,GAAA,CAAQ,CAAR,CAGCA,GAAA,CAAQ,CAAR,CAGDA,GAAA,CAAQ,CAAR,CAlXpBgwH,UAAyB,CAACC,CAAD,CAAqB,CAE1CA,CADF,GACuB9kF,EAKvB1rB,GAAA,CAAU,CAAEhF,kBAAmBw1G,CAArB,CAAV,CAP4C,CAA9CD,CAqXA,CAAiBP,EAAiBS,CAAAA,uBAAlC,CAGA;IAAIC,GAAU7+C,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CAAd,CACIowH,GAAsBpwH,EAAA,CAAQ,GAAR,CAD1B,CAEIqwH,GAAgBF,EAAQrhF,CAAAA,UAAR,CAClBwhF,QAAuB,CAACtlG,CAAD,CAAMnW,CAAN,CAAW,CAAA,IAClB,CAAE,SAAA66B,CAAF,CAAY,QAAAtd,CAAZ,CAAqB,SAAAm+F,EAArB,CAA+B,UAAA9oG,EAAA,CAAY,EAA3C,CAAA,CAALuD,CADuB,CACoCiX,GAAOsO,EAAA,CAAlEvlB,CAAkE,CAAc,CAAC,UAAD,CAAa,SAAb,CAAwB,UAAxB,CAAoC,WAApC,CAAd,CAC3E,OAAuB,GAAIolG,EAAoB3\/E,CAAAA,GAAxB,EAA6BjB,EAA7B,CAAgD,CACrEE,SAAU,EAAAA,EAAsB,GAAI0gF,EAAoB3\/E,CAAAA,GAAxB,EAA6B,KAA7B,CAAoC,CAClE57B,IAAAA,CADkE,CAElE4S,UAAY,qBAAoBA,EAApB,EAFsD,CAGlEoK,MAAOO,CAAA,CAAU,CAAEA,QAAAA,CAAF,CAAV,CAAwB,IAAK,EAH8B,CAIlEo+F,UAAW,CAAA,CAJuD,CAKlE9gF,SAA0B,GAAI0gF,EAAoB3\/E,CAAAA,GAAxB,EAA6B,KAA7B,CAAoC7oC,EAAA,CAAcC,EAAA,CAAe,CACzF4f,UAAY,uBAAsB8oG,EAAA,CAAW,aAAX,CAA2B,EAAjD,EAD6E,CAAf,CAEzEtuF,EAFyE,CAAd,CAEpD,CACRyN,SAAAA,CADQ,CAFoD,CAApC,CALwC,CAApC,CADqC,CAAhD,CAFS,CADhB,CAFpB,CAsBI+gF,GAAUn\/C,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CAtBd,CAuBI0wH,GAAsB1wH,EAAA,CAAQ,GAAR,CAvB1B,CAwBI2wH,GAAeF,EAAQ3hF,CAAAA,UAAR,CACjB8hF,QAAsB,CAAC5lG,CAAD,CAAMnW,CAAN,CAAW,CAAA,IACjB,CAAE,GAAIsgB,CAAN,CAAW,UAAA1N,CAAA,CAAY,EAAvB,CAA2B,MAAAoK,EAA3B;AAAkC,SAAA6d,EAAlC,CAAA,CAAL1kB,CADsB,CACkCiX,GAAOsO,EAAA,CAA\/DvlB,CAA+D,CAAc,CAAC,IAAD,CAAO,WAAP,CAAoB,OAApB,CAA6B,UAA7B,CAAd,CACxE,OAAuB,GAAI0lG,EAAoBjgF,CAAAA,GAAxB,EAA6BjB,EAA7B,CAAgD,CACrEE,SAAU,EAAAA,EAAsB,GAAIghF,EAAoBjgF,CAAAA,GAAxB,EAA6B,KAA7B,CAAoC,CAClE57B,IAAAA,CADkE,CAElEgd,MAAAA,EAFkE,CAGlEpK,UAAY,qBAAoBA,CAApB,EAHsD,CAIlEioB,SAA0B,GAAIghF,EAAoBjgF,CAAAA,GAAxB,EAA6B,GAA7B,CAAkC7oC,EAAA,CAAcC,EAAA,CAAe,CACvFyhB,GAAI6L,CADmF,CAEvF1N,UAAW,eAF4E,CAAf,CAGvEwa,EAHuE,CAAd,CAGlD,CACRyN,SAAAA,EADQ,CAHkD,CAAlC,CAJwC,CAApC,CADqC,CAAhD,CAFQ,CADhB,CAxBnB,CA4CImhF,GAAUv\/C,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA5Cd,CA+CI6vC,GAAUyhC,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA\/Cd,CA+FI8wH,GAAUx\/C,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA\/Fd,CAgGI+wH,GAAsB\/wH,EAAA,CAAQ,GAAR,CAhG1B,CAiGIgxH,GAAYtiF,EAAA,CAASuiF,QAAmB,CAACjmG,CAAD,CAAM,CAAA,IAClC,CACZ,GAAImK,CADQ,CAEZ,OAAAtwB,CAFY,CAGZ,OAAA2tB,CAHY,CAIZ,SAAAvvB,EAAA,CAAW,CAJC,CAKZ,UAAAwkB,EAAA,CAAY,EALA,CAMZ,SAAAioB,EANY,CAAA,CAAL1kB,CAODze,EAAAA,CAAQgkC,EAAA,CAPPvlB,CAOO,CAAc,8CAAA,CAAA,KAAA,CAAA,GAAA,CAAd,CAQhB,OAAMkmG,GAAUJ,EAAQh7F,CAAAA,MAAR,CAAe,IAAf,CAChBg7F,GAAQz4F,CAAAA,eAAR,CAAwB,EAAA;AAAM,CAChB64F,EAAQz6F,CAAAA,OAChB5E,CAAAA,KAAM6P,CAAAA,SAAV,CAAuB;eACZ78B,CAAOC,CAAAA,IADK;eAEZD,CAAOE,CAAAA,IAFK;iBAGV9B,EAHU,EAGE4B,CAAO5B,CAAAA,QAHT,EAGqB,CAHrB,OAFK,CAA9B,CAMG,CAAC4B,CAAOC,CAAAA,IAAR,CAAcD,CAAOE,CAAAA,IAArB,CAA2B9B,EAA3B,CAAqC4B,CAAO5B,CAAAA,QAA5C,CANH,CAOA6tH,GAAQz4F,CAAAA,eAAR,CAAwB,EAAA,EAAM,CAC5B,MAAMlC,GAAM+6F,EAAQz6F,CAAAA,OACpBN,GAAItE,CAAAA,KAAM3vB,CAAAA,KAAV,CAAmB,QAAOb,IAAKwlC,CAAAA,KAAL,CAAWhiC,CAAO3C,CAAAA,KAAlB,CAAP,+BACnBi0B,GAAItE,CAAAA,KAAM5vB,CAAAA,MAAV,CAAoB,QAAOZ,IAAKwlC,CAAAA,KAAL,CAAWhiC,CAAO5C,CAAAA,MAAlB,CAAP,+BAHQ,CAA9B,CAIG,CAAC4C,CAAO3C,CAAAA,KAAR,CAAe2C,CAAO5C,CAAAA,MAAtB,CAJH,CAKA6uH,GAAQz4F,CAAAA,eAAR,CAAwB,EAAA,EAAM,CAC5B,MAAMlC,GAAM+6F,EAAQz6F,CAAAA,OACL,KAAK,EAApB,GAAIjE,CAAJ,GACE2D,EAAItE,CAAAA,KAAMW,CAAAA,MADZ,CACqBA,CAAOpoB,CAAAA,QAAP,EADrB,CAF4B,CAA9B,CAIG,CAACooB,CAAD,CAJH,CAKA,OAAuB,GAAIu+F,EAAoBtgF,CAAAA,GAAxB,EAA6B,KAA7B,CAAoC7oC,EAAA,CAAcC,EAAA,CAAe,CACtFyhB,GAAI6L,CADkF,CAEtFtgB,IAAKq8G,EAFiF,CAGtFzpG,UAAY,iBAAgBA,EAAhB,EAH0E,CAItF,aAAc,WAJwE,CAAf,CAKtElb,CALsE,CAAd,CAKhD,CACTmjC,SAAAA,EADS,CALgD,CAApC,CAlCyB,CAAlC,CAjGhB;AA8IIyhF,GAAU7\/C,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA9Id,CA+IIoxH,GAAsBpxH,EAAA,CAAQ,GAAR,CA\/I1B,CAgJIqxH,GAAsB3iF,EAAA,CAAS4iF,QAA6B,CAAC,CAC\/D,OAAQ1qC,CADuD,CAE\/D,OAAAl+B,CAF+D,CAG\/D,OAAA7jD,CAH+D,CAI\/D,SAAA5B,CAAA,CAAW,CAJoD,CAAD,CAK7D,CACD,MAAM,CACJ,WAAY,CAAE,WAAYsuH,EAAd,CADR,CAEJ,SAAU,CACR,OAAQC,EADA,CAER,OAAQ,CACN,MAAO,CAACztH,EAAD,CAAKC,EAAL,CADD,CAEN,KAAA2hC,EAFM,CAFA,CAFN,CAAA,CASFpQ,EAAA,EATJ,CAUM27F,GAAUC,EAAQr7F,CAAAA,MAAR,CAAe,IAAf,CAChB,KAAMoqE,GAAgBne,EAAYiB,CAAAA,gBAAZ,CAA6Bn+E,CAA7B,CAAqC5B,CAArC,CAChBwuH,GAAAA,CAAe1vC,EAAYe,CAAAA,cAAZ,CAA2Bod,EAA3B,CAA0Cv6D,EAA1C,CACrBgB,GAAA,CAAyBuqF,EAAzB,CAAkCrsH,CAAlC,CAA0C5B,CAA1C,CAAoD,KAApD,CACA,IAAI,CAACsuH,EAAL,CACE,KAAMhxH,MAAA,CAAM,kCAAN,CAAN,CACF,MAAMmxH,GAAe3vC,EAAYY,CAAAA,eAAZ,CAA4B8uC,EAA5B,CAA0C,CAAC1tH,EAAD,CAAM4hC,EAAN,CAAY3hC,EAAZ,CAAiB2hC,EAAjB,CAA1C,CASrB,OAAuB,GAAIyrF,EAAoB3gF,CAAAA,GAAxB,EAA6B,KAA7B,CAAoC,CACzD57B,IAAKq8G,EADoD,CAEzDzpG,UAAW,8BAF8C,CAGzD,aAAc,uBAH2C,CAIzD,0BAA2B,MAJ8B;AAKzDioB,SAA0B,GAAI0hF,EAAoB3gF,CAAAA,GAAxB,EAA6B8gF,EAA7B,CAA0C,CAClE7oE,OAAAA,CADkE,CAElEy7C,OAAQvd,CAF0D,CAGlE\/hF,OAAAA,CAHkE,CAIlE8sH,QAjBYA,CACdp\/F,KAAMm\/F,EAAa5sH,CAAAA,IADL6sH,CAEd\/5E,MAAO45E,EAAStvH,CAAAA,KAAhB01C,CAAwB85E,EAAa35F,CAAAA,IAFvB45F,CAGdr\/F,IAAKo\/F,EAAa3sH,CAAAA,IAHJ4sH,CAId95E,OAAQ25E,EAASvvH,CAAAA,MAAjB41C,CAA0B65E,EAAa15F,CAAAA,IAJzB25F,CAKdzvH,MAAOwvH,EAAaxvH,CAAAA,KALNyvH,CAMd1vH,OAAQyvH,EAAazvH,CAAAA,MANP0vH,CAasD,CAKlEF,aAAAA,EALkE,CAMlExuH,SAAAA,CANkE,CAA1C,CAL+B,CAApC,CA1BtB,CALuB,CAhJ1B,CAgMI2uH,GAAUtgD,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CAhMd,CAiMI6xH,GAAsB7xH,EAAA,CAAQ,GAAR,CAjM1B,CAkMI8xH,GAAYpjF,EAAA,CAASqjF,QAAmB,CAAC,CAAE,SAAAriF,CAAF,CAAD,CAAe,CACzD,MAAMsiF,EAASJ,EAAQ97F,CAAAA,MAAR,CAAe,IAAf,CAAf,CACM,CAAE,SAAA2B,CAAF,CAAA,CAAelC,EAAA,EADrB,CAEM08F,EAAQD,CAAOv7F,CAAAA,OAFrB,CAGM,CAAE,KAAAkP,EAAF,CAAQ,MAAA5iC,EAAR,CAAA,CAAkB00B,CAASmO,CAAAA,MACjCgsF,GAAQ35F,CAAAA,SAAR,CAAkB,EAAA,EAAM,CACjBg6F,CAAL,GAEAA,CAAMpgG,CAAAA,KAAM6P,CAAAA,SAFZ,CAEyB,SAAQiE,EAAR,iBAA6B5iC,EAAA,CAAM,CAAN,CAA7B,OAA4CA,EAAA,CAAM,CAAN,CAA5C,QAFzB,CADsB,CAAxB,CAIG,CAAC4iC,EAAD,CAAO5iC,EAAP,CAAckvH,CAAd,CAJH,CAKA,OAAuB,GAAIJ,EAAoBphF,CAAAA,GAAxB,EAA6B,KAA7B,CAAoC,CACzD57B,IAAKm9G,CADoD,CAEzDvqG,UAAW,sBAF8C;AAGzDioB,SAAAA,CAHyD,CAApC,CAVkC,CAA3C,CAlMhB,CAoNIwiF,GAAsBlyH,EAAA,CAAQ,GAAR,CApN1B,CAqNImyH,GAAYzjF,EAAA,CAAS0jF,QAAc,CAAC,CACtC,MAAAppG,CADsC,CAEtC,UAAAqpG,CAAA,CAAY,CAAA,CAF0B,CAGtC,WAAAC,CAAA,CAAa,CAAA,CAHyB,CAItC,UAAAC,CAAA,CAAY,CAAA,CAJ0B,CAKtC,UAAAC,EAAA,CAAY,CAAA,CAL0B,CAMtC,SAAA1kD,EAAA,CAAW,CAAA,CAN2B,CAOtC,KAAAn9B,EAPsC,CAAD,CAQpC,CACD,MAAM,CACJ,OAAA9rC,EADI,CAEJ,MAAO,CAAE,MAAAokE,EAAF,CAAS,SAAAhmE,EAAA,CAAW,CAApB,CAFH,CAGJ,eAAAwvH,EAHI,CAAA,CAIFzpG,CACJ,OAAuB,GAAIkpG,EAAoBzhF,CAAAA,GAAxB,EAA6BugF,EAA7B,CAAwC,CAC7D,YAAa,WADgD,CAE7D,0BAA2B,MAFkC,CAG7DnsH,OAAAA,EAH6D,CAI7D5B,SAAAA,EAJ6D,CAK7DgmE,MAAAA,EAL6D,CAM7Dz2C,OAAQggG,EAAA,CAAY,GAAZ,CAAkB,GANmC,CAO7D9iF,SAA0B,GAAIwiF,EAAoBzhF,CAAAA,GAAxB,EAA6BkgF,EAA7B,CAA2C,CACnEjhF,SAA0B,GAAIwiF,EAAoBzhF,CAAAA,GAAxB,EAA6B,GAA7B,CAAkC,CAC1DhpB,UAAY,0BAAyB6qG,CAAA,CAAa,aAAb,CAA6B,YAAtD,IAAsExkD,EAAA,CAAW,WAAX,CAAyB,EAA\/F,EAD8C,CAE1Dp+B,SAA0B,GAAIwiF,EAAoBzhF,CAAAA,GAAxB,EAA6BgiF,EAA7B,CAA6C,CACrED,UAAAA,EADqE;AAErED,UAAAA,CAFqE,CAGrEF,UAAAA,CAHqE,CAIrEvkD,SAAAA,EAJqE,CAKrEwkD,WAAAA,CALqE,CAMrEI,UAAW,CAAA,CAN0D,CAOrE\/hF,KAAAA,EAPqE,CAA7C,CAFgC,CAAlC,CADyC,CAA3C,CAPmC,CAAxC,CANtB,CARa,CArNhB,CA4PIP,GAAUkhC,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA5Pd,CAmVI2yH,GAAsB3yH,EAAA,CAAQ,GAAR,CAnV1B,CAoVI4yH,GAAsBlkF,EAAA,CAASmkF,QAA6B,CAAC,CAC\/D,OAAAhuH,CAD+D,CAE\/D,MAAAmkB,CAF+D,CAAD,CAG7D,CACD,MAAM,CACJ,SAAU,CACR,OAAQ,CAAE,KAAA2c,CAAF,CADA,CADN,CAIJ,WAAY,CAAE,WAAYmtF,CAAd,CAJR,CAAA,CAKFv9F,EAAA,EACJ,KAAM+E,GAAMF,EAAA,EACZ,OAAMpE,GAASma,EAAA,CAAennB,CAAf,CACf,IAAI,CAAC8pG,CAAL,CACE,KAAMvyH,MAAA,CAAM,kCAAN,CAAN,CAEIwyH,EAAAA,CAAiC,EAAjCA,CAAUluH,CAAO5C,CAAAA,MAAjB8wH,CAA0BptF,CAA1BotF,EAAuC,CAACz4F,EAAIszC,CAAAA,mBAAoBr8C,CAAAA,QAAxB,CAAiCvI,CAAjC,CAC9C,OAAuB,GAAI2pG,EAAoBliF,CAAAA,GAAxB,EAA6BugF,EAA7B,CAAwC,CAC7DnsH,OAAAA,CAD6D,CAE7D4iB,UAAW,0BAFkD,CAG7D,0BAA2B,MAHkC,CAI7DioB,SAA0B,GAAIijF,EAAoBliF,CAAAA,GAAxB,EAA6B4\/E,EAA7B,CAA4C,CACpE3gF,SAA0B,GAAIijF,EAAoBliF,CAAAA,GAAxB,EAA6B,MAA7B,CAAqC7oC,EAAA,CAAcC,EAAA,CAAe,CAC1FgqB,MAAO,CACLQ,SAAU,UADL;AAELC,IAAK,MAFA,CAGLI,cAAe,KAHV,CAIL08E,gBAAiB,UAJZ,CAKL4jB,WAAY,KALP,CAMLtxF,UAAW,wBANN,CAOLuxF,SAAU,OAPL,CADmF,CAAf,CAU1Ej9F,EAV0E,CAAd,CAUnD,CACVY,cAlBS5wB,EAADktH,EAAQltH,EAAGysD,CAAAA,eAAH,EAiBN,CAEV\/iB,SAA0B,GAAIijF,EAAoBliF,CAAAA,GAAxB,EAA6BqiF,CAA7B,CAA0C,CAClErrG,UAAW,qBAAXA,EAAoCsrG,EAAA,CAAU,4BAAV,CAAyC,EAA7EtrG,CADkE,CAElE6B,GAAIN,CAAMM,CAAAA,EAFwD,CAGlEN,MAAAA,CAHkE,CAA1C,CAFhB,CAVmD,CAArC,CAD0C,CAA5C,CAJmC,CAAxC,CAbtB,CAHuB,CApV1B,CAgYImqG,GAAsBnzH,EAAA,CAAQ,GAAR,CAhY1B,CAiYIozH,GAA0B1kF,EAAA,CAAS2kF,QAAiC,CAAC,CAAE,OAAAxuH,CAAF,CAAU,MAAAmkB,CAAV,CAAD,CAAoB,CAC1F,MAAM,CACJ,SAAU,CACR,OAAQ,CAAE,KAAA2c,CAAF,CADA,CADN,CAIJ,WAAY,CAAE,eAAgB2tF,CAAlB,CAJR,CAAA,CAKF\/9F,EAAA,EACJ,KAAM+E,GAAMF,EAAA,EACZ,IAAI,CAACk5F,CAAL,CACE,KAAM\/yH,MAAA,CAAM,sCAAN,CAAN,CACF,MAAM2yH,GAASltH,EAADktH,EAAQltH,EAAGysD,CAAAA,eAAH,EAChBsgE;EAAAA,CAAiC,EAAjCA,CAAUluH,CAAO5C,CAAAA,MAAjB8wH,CAA0BptF,CAA1BotF,EAAuC,CAACz4F,EAAIszC,CAAAA,mBAAoBr8C,CAAAA,QAAxB,CAAiCvI,CAAjC,CAAxC+pG,EAAmF\/pG,CAAM80F,CAAAA,aAC\/F,OAAuB,GAAIqV,EAAoB1iF,CAAAA,GAAxB,EAA6BugF,EAA7B,CAAwC,CAC7DnsH,OAAAA,CAD6D,CAE7D4iB,UAAW,8BAFkD,CAG7DioB,SAA0B,GAAIyjF,EAAoB1iF,CAAAA,GAAxB,EAA6B4\/E,EAA7B,CAA4C,CACpE3gF,SAA0B,GAAIyjF,EAAoB1iF,CAAAA,GAAxB,EAA6B,MAA7B,CAAqC,CAC7D5e,MAAO,CACLQ,SAAU,UADL,CAELE,KAAM,MAFD,CAGLG,cAAe,KAHV,CAIL08E,gBAAiB,UAJZ,CAKL1tE,UAAW,wCALN,CADsD,CAQ7D9K,cAAes8F,EAR8C,CAS7DK,eAAgBL,EAT6C,CAU7D\/7F,UAAW+7F,EAVkD,CAW7DM,MAAO,iBAXsD,CAY7D9jF,SAA0B,GAAIyjF,EAAoB1iF,CAAAA,GAAxB,EAA6B6iF,CAA7B,CAA8C,CACtE7rG,UAAW,qBAAXA,EAAoCsrG,EAAA,CAAU,4BAAV,CAAyC,EAA7EtrG,CADsE,CAEtE6B,GAAIN,CAAMM,CAAAA,EAF4D;AAGtEN,MAAAA,CAHsE,CAA9C,CAZmC,CAArC,CAD0C,CAA5C,CAHmC,CAAxC,CAZmE,CAA9D,CAjY9B,CAwaIyqG,GAAUniD,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CAxad,CAyaI0zH,GAAuB1zH,EAAA,CAAQ,GAAR,CAza3B,CA0aI2zH,GAA2BjlF,EAAA,CAASklF,QAAwB,CAAC,CAC\/D,OAAA\/uH,CAD+D,CAE\/D,OAAA6jD,CAF+D,CAG\/D,OAAQk+B,CAHuD,CAI\/D,SAAA3jF,CAAA,CAAW,CAJoD,CAK\/D,OAAAuzC,EAAA,CAAS,MALsD,CAAD,CAM7D,CACD,MAAM,CACJ,WAAY,CAAE,gBAAiBq9E,EAAnB,CADR,CAEJ,SAAU,CACR,OAAQ,CAAE,KAAAluF,EAAF,CADA,CAFN,CAAA,CAKFpQ,EAAA,EALJ,CAMM27F,GAAUuC,EAAQ39F,CAAAA,MAAR,CAAe,IAAf,CANhB,CAOM27F,GAAe1vC,EAAYe,CAAAA,cAAZ,CAA2Bj+E,CAA3B,CAAmC8gC,EAAnC,CACrBgB,GAAA,CAAyBuqF,EAAzB,CAAkCrsH,CAAlC,CAA0C5B,CAA1C,CAAoD,KAApD,CACA,IAAI,CAAC4wH,EAAL,CACE,KAAMtzH,MAAA,CAAM,uCAAN,CAAN,CACF,MAAuB,GAAImzH,EAAqBjjF,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CAC1D57B,IAAKq8G,EADqD,CAE1DzpG,UAAY,gCAA+BihC,CAAA,CAAU,aAAV,CAAyB,EAAxD,EAF8C,CAG1D,aAAc,yBAH4C,CAI1D,0BAA2B,MAJ+B,CAK1DhZ,SAA0B,GAAIgkF,EAAqBjjF,CAAAA,GAAzB,EAA8BojF,EAA9B;AAAgD,CACxE1vB,OAAQvd,CADgE,CAExE\/hF,OAAAA,CAFwE,CAGxE4sH,aAAAA,EAHwE,CAIxE9rF,KAAAA,EAJwE,CAKxE1iC,SAAAA,CALwE,CAMxEuzC,OAAAA,EANwE,CAAhD,CALgC,CAArC,CAZtB,CAN4B,CA1a\/B,CA6cIs9E,GAAuB9zH,EAAA,CAAQ,GAAR,CA7c3B,CA8cI+zH,GAASrlF,EAAA,CAASslF,QAAe,CAAC,CACpC,MAAAhrG,CADoC,CAEpC,UAAAqpG,CAAA,CAAY,CAAA,CAFwB,CAGpC,WAAAC,CAAA,CAAa,CAAA,CAHuB,CAIpC,UAAAC,CAAA,CAAY,CAAA,CAJwB,CAKpC,UAAAG,EAAA,CAAY,CAAA,CALwB,CAMpC,UAAAF,EAAA,CAAY,CAAA,CANwB,CAOpC,aAAAyB,EAPoC,CAQpC,MAAAnxB,EARoC,CASpC,KAAAnyD,EAToC,CAUpC,OAAAne,EAVoC,CAAD,CAWlC,CACD,MAAM,CACJ,OAAA3tB,EADI,CAEJ,MAAO,CAAE,SAAA5B,EAAF,CAAY,MAAAgmE,EAAZ,CAFH,CAGJ,eAAAirD,EAHI,CAAA,CAIFlrG,CAJJ,CAKMsR,GAAMF,EAAA,EALZ,CAMMpE,GAASma,EAAA,CAAennB,CAAf,CACf,KAAMiyF,GAAc3gF,EAAImyE,CAAAA,cAAJ,CAAmBzjF,CAAnB,CACdmrG,GAAAA,CAAwB75F,EAAI0Q,CAAAA,WAAY\/pB,CAAAA,GAAhB,CAAmC,IAAf,EAAAg6F,EAAA,CAAsB,IAAK,EAA3B,CAA+BA,EAAY3xF,CAAAA,EAA\/D,CAE9B,OAAuB,GAAIwqG,EAAqBrjF,CAAAA,GAAzB,EAA8BugF,EAA9B,CAAyC,CAC9D,gBAAiBhoG,CAAMM,CAAAA,EADuC,CAE9D,0BAHmB,CAACgpG,CAGpB,EAHkC,CAAC6B,EAGnC,EAHwF,CAGxF,GAH4D75F,EAAI4V,CAAAA,cAAeltC,CAAAA,IAG\/E,EAH6F,IAC\/B,CAG9DwvB,OAAAA,EAH8D;AAI9D,YAAa,OAJiD,CAK9D3tB,OAAAA,EAL8D,CAM9D5B,SAAAA,EAN8D,CAO9DgmE,MAAAA,EAP8D,CAQ9Dv5B,SAA0B,GAAIokF,EAAqBrjF,CAAAA,GAAzB,EAA8ByjF,EAA9B,CAA8C,CACtEvjF,KAAAA,EADsE,CAEtE6hF,UAAAA,EAFsE,CAGtED,UAAAA,CAHsE,CAItEF,UAAAA,CAJsE,CAKtEC,WAAAA,CALsE,CAMtEI,UAAAA,EANsE,CAOtE18F,OAAAA,EAPsE,CAQtE8sE,MAAAA,EARsE,CAStEmxB,aAAAA,EATsE,CAA9C,CARoC,CAAzC,CAXtB,CAXU,CA9cb,CA2fIG,GAAuBp0H,EAAA,CAAQ,GAAR,CA3f3B,CA4fIq0H,GAAQ,CACV,CAAC,CAAC,CAAF,CAAK,GAAL,CAAW,EAAX,CADU,CAEV,CAAC,GAAD,CAAO,IAAP,CAAc,EAAd,CAFU,CAGV,CAAC,GAAD,CAAO,CAAP,CAAU,CAAV,CAHU,CAIV,CAAC,EAAD,CAAM,GAAN,CAAW,CAAX,CAJU,CA5fZ,CAkgBIC,GAAU5lF,EAAA,CAAS6lF,QAAmB,CAAC,CAAE,KAAAvxH,CAAF,CAAD,CAAW,CACnD,MAAM,CACJ,SAAU,CACR,OAAQ,CAAE,MAAAD,CAAF,CAAS,KAAA4iC,CAAT,CADA,CADN,CAAA,CAIFpQ,EAAA,EACJ,OAAuB,GAAI6+F,EAAqBtwE,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC3Dr8B,UAAW,SADgD,CAE3D2yB,QAAS,KAFkD,CAG3Do6E,MAAO,4BAHoD,CAI3D,0BAA2B,MAJgC,CAK3D9kF,SAAU,CACQ,GAAI0kF,EAAqB3jF,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CACpDf,SAAU2kF,EAAMptH,CAAAA,GAAN,CAAU,CAAC,CAACipB,CAAD,CAAMq8D,EAAN;AAAWkoC,EAAX,CAAD,CAAoBtyH,EAApB,CAAA,EAA2B,CACvCsC,EAAAA,CAAKgwH,EAALhwH,CAAazB,CAAbyB,CAAoBkhC,CAC1B,KAAM+uF,GAAK3xH,CAAA,CAAM,CAAN,CAAL2xH,CAAgB\/uF,CAAtB,CACMgvF,GAAK5xH,CAAA,CAAM,CAAN,CAAL4xH,CAAgBhvF,CAChBivF,GAAAA,CAAW,CAAL,CAAAF,EAAA,CAASA,EAAT,CAAcjwH,EAAd,CAAmBA,EAAnB,CAAwBiwH,EAAxB,CAA6BjwH,EACnCowH,GAAAA,CAAW,CAAL,CAAAF,EAAA,CAASA,EAAT,CAAclwH,EAAd,CAAmBA,EAAnB,CAAwBkwH,EAAxB,CAA6BlwH,EACnC2tB,EAAAA,CAAU1C,EAAA,CAASiW,CAAT,CAAe,CAACzV,CAAD,CAAMq8D,EAAN,CAAf,CAA2B,CAAC,CAAD,CAAI,CAAJ,CAA3B,CAEhB,OAAuB,GAAI6nC,EAAqB3jF,CAAAA,GAAzB,EAA8B,SAA9B,CAAyC,CAC9DnnB,GAAK,QAAOnnB,EAAP,EADyD,CAE9DD,MAAOuC,EAFuD,CAG9DxC,OAAQwC,EAHsD,CAI9DqwH,aAAc,gBAJgD,CAK9DplF,SAAU,EANW,CAMX,CANCtd,CAMD,EAN0B,EAM1B,CANgBA,CAMhB,CAAVsd,EAAmC,GAAI0kF,EAAqB3jF,CAAAA,GAAzB,EAA8B,QAA9B,CAAwC,CACzEhpB,UAAY,aAD6D,CAEzEstG,GAAIH,EAFqE,CAGzErpC,GAAIspC,EAHqE,CAIzEv9E,EAAG,GAJsE,CAKzEllB,QA\/0IL\/wB,IAAKC,CAAAA,GAAL,CA+0I6B4uB,CA\/0I7B,CAA2C7uB,IAAK6uB,CAAAA,GAAL,CA+0IvBkC,CA\/0IuB,CA+0IX9wB,CA\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\/C,CACD,MAAM9\/F,GAASP,EAAA,CAAgBogG,EAAhB,CACf,OAAuB,GAAIL,EAAqB1xE,CAAAA,IAAzB,EAA+B,GAA\/B,CAAoCl8C,EAAA,CAAcC,EAAA,CAAe,CACtFuqB,QAAS0jG,EAAA,CAAW,CAAX,CAAe,CAD8D,CAAf,CAEtE9\/F,EAFsE,CAAd,CAE\/C,CACV0Z,SAAU,CACQ,GAAI8lF,EAAqB\/kF,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CACpDhpB,UAAW,iBAAXA,EAAgCquG,EAAA,CAAW,EAAX,CAAgBL,EAAA,CAAmBI,EAAnB,CAAhDpuG,CADoD,CAEpD,aAAe,GAAEouG,EAAF,SAFqC,CAGpDl0H,EAAG2pF,CAAH3pF,CAAsB,IAAtBA,CAASi0H,CAH2C,CAIpDh0H,EAAG2pF,CAAH3pF,CAAqB,IAArBA,CAAQg0H,CAJ4C,CAKpD1zH,MAAoB,GAApBA,CAAO0zH,CAL6C,CAMpD3zH,OAAqB,GAArBA,CAAQ2zH,CAN4C,CAOpDljG,cAAeojG,EAAA,CAAW,MAAX,CAAoB,KAPiB,CAAtC,CADR,CAUQ,GAAIN,EAAqB\/kF,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CACpDhpB,UAAW,kBADyC,CAEpD,aAAe,GAAEouG,EAAF,SAFqC,CAGpDl0H,EAAG2pF,CAAH3pF,CAASqB,CAATrB,CAAgB,CAHoC,CAIpDC,EAAG2pF,CAAH3pF,CAAQoB,CAARpB,CAAe,CAJqC,CAKpDM,MAAOc,CAL6C,CAMpDf,OAAQe,CAN4C,CAOpD0vB,cAAe,MAPqC,CAAtC,CAVR,CADA,CAF+C,CAApC,CAFtB,CAPgB,CApCnB;AAwEIqjG,GAAuB\/1H,EAAA,CAAQ,GAAR,CAxE3B,CAyEIg2H,GAActnF,EAAA,CAASunF,QAAqB,CAAC,CAC\/C,GAAI3qC,CAD2C,CAE\/C,GAAAC,CAF+C,CAG\/C,KAAAvoF,CAH+C,CAI\/C,UAAAY,CAJ+C,CAK\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\/C,CACD,MAAM9\/F,GAASP,EAAA,CAAgB,QAAhB,CACf,OAAuB,GAAI6gG,EAAqBxyE,CAAAA,IAAzB,EAA+B,GAA\/B,CAAoCl8C,EAAA,CAAcC,EAAA,CAAe,CACtFuqB,QAAS0jG,EAAA,CAAW,CAAX,CAAe,CAD8D,CAAf,CAEtE9\/F,EAFsE,CAAd,CAE\/C,CACV0Z,SAAU,CACQ,GAAI4mF,EAAqB7lF,CAAAA,GAAzB,EAA8B,QAA9B;AAAwC,CACtDhpB,UAAW,iBAD2C,CAEtD,aAAc,eAFwC,CAGtDstG,GAAIzpC,CAHkD,CAItDC,GAAAA,CAJsD,CAKtDj0C,EAAGs+E,CALmD,CAMtDljG,cAAeojG,EAAA,CAAW,MAAX,CAAoB,KANmB,CAAxC,CADR,CASQ,GAAIQ,EAAqB7lF,CAAAA,GAAzB,EAA8B,QAA9B,CAAwC,CACtDhpB,UAAW,kBAD2C,CAEtD,aAAc,eAFwC,CAGtDstG,GAAIzpC,CAHkD,CAItDC,GAAAA,CAJsD,CAKtDj0C,EAAGt0C,CAAHs0C,CAAU,CAL4C,CAMtD5kB,cAAe,MANuC,CAAxC,CATR,CADA,CAF+C,CAApC,CAFtB,CANgB,CAiCL1yB,GAAA,CAAQ,CAAR,CACd,KAAIw2H,GAAuBx2H,EAAA,CAAQ,GAAR,CAA3B,CACIy2H,GAAqB\/nF,EAAA,CAASgoF,QAA4B,CAAC,CAC7D,GAAIprC,CADyD,CAE7D,GAAAC,CAF6D,CAG7D,WAAAqqC,CAH6D,CAI7D,OAAAC,CAJ6D,CAK7D,SAAAC,EAL6D,CAAD,CAM3D,CACD,MAAM9\/F,GAASP,EAAA,CAAgBogG,CAAhB,CACf,OAAuB,GAAIW,EAAqB\/lF,CAAAA,GAAzB,EAA8B,GAA9B,CAAmC7oC,EAAA,CAAcC,EAAA,CAAe,CACrFuqB,QAAS0jG,EAAA,CAAW,CAAX,CAAe,CAD6D,CAAf,CAErE9\/F,EAFqE,CAAd,CAE9C,CACV0Z,SAA0B,GAAI8mF,EAAqB\/lF,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CAC9DhpB,UAAW,gBADmD,CAE9D,aAAe,GAAEouG,CAAF,SAF+C,CAG9Dl0H,EAAG2pF,CAAH3pF,CAAsB,GAAtBA,CAASi0H,CAHqD,CAI9Dh0H,EAAG2pF,CAAH3pF,CAAqB,GAArBA,CAAQg0H,CAJsD,CAK9D1zH,MAAoB,CAApBA,CAAO0zH,CALuD,CAM9D3zH,OAAqB,CAArBA,CAAQ2zH,CANsD,CAO9DljG,cAAeojG,EAAA;AAAW,MAAX,CAAoB,KAP2B,CAAtC,CADhB,CAF8C,CAAnC,CAFtB,CANsB,CADzB,CAyBIa,GAAuB32H,EAAA,CAAQ,GAAR,CAzB3B,CA0BI42H,GAAsBloF,EAAA,CAASmoF,QAA6B,CAAC,CAC\/D,OAAAhyH,CAD+D,CAE\/D,kBAAAiyH,CAF+D,CAG\/D,kBAAAC,CAH+D,CAI\/D,iBAAAC,CAJ+D,CAK\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\/E,EADsF,CAA\/C,CADvC,CAIQ,GAAIo1C,EAAqBn0E,CAAAA,IAAzB,EAA+BguE,EAA\/B,CAA0C,CACxDpiF,SAAU,CACRY,EAAW6kF,CAAAA,mBADH;AAC0BjlF,EAD1B,EAC4C68D,EAD5C,EAC+DsrB,EAD\/D,EACgG,GAAIJ,EAAqBxnF,CAAAA,GAAzB,EAA8BugF,EAA9B,CAAyC,CAC\/I,YAAa,qBADkI,CAE\/InsH,OAAQkoG,EAFuI,CAG\/Iv6E,OAAQ,CAHuI,CAI\/I,0BAA2B,MAJoH,CAK\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\/Hj0H,UAAWu0H,EADoH,CAE\/HtzH,OAAQkoG,EAFuH,CAG\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\/tB,CAApB,CACAu6B,GAAA,CAASxM,CAAT,CAAc\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\/6H,EAAA,CAAQ,CAAR,CA\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\/tH,CAAAA,KAFqD,CAE\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\/I,GAAKozC,EAAA,CAAE9\/B,CAAF,CAJ2B,CAIpB3Q,GAAK,CAAEvF,EAAG8C,EAAL,CAAS7C,EAAGkE,EAAZ,CAJe,CAIGkyC,GAAKX,EAAA,CAAEn\/B,EAAF,CAJR,CAIelU,GAAOkU,EAxEpDk\/B,CAAAA,KAAH,CAAS,GAAT,CAAA,CAAc,CAAd,CAoEiC,CAI2BrzC,GAAKuzC,EAAA,CAAEU,EAAF,CAJhC,KAIuCS,GAAK,KAAMf,GAAGomF,CAAAA,aAAH,CAAiBxwH,CAAjB,CAJlD,OAIwE+C,GAAK,GAAA,GAAQ2nC,EAAR,CAAa,KAAb,CAAqB,MAJlG,CAI0Gv2C,GAAK,GAAA,GAAQu2C,EAAR,CAAa,QAAb,CAAwB,OAJvI,KAIgJ+lF,GAAKtmF,EAAGkB,CAAAA,SAAH,CAAa50C,EAAb,CAALg6H,CAAwBtmF,EAAGkB,CAAAA,SAAH,CAAaX,EAAb,CAAxB+lF,CAA2C72H,EAAA,CAAG8wC,EAAH,CAA3C+lF,CAAoDtmF,EAAGY,CAAAA,QAAH,CAAYt0C,EAAZ,CAJpM,OAIqN2C,GAAKQ,EAAA,CAAG8wC,EAAH,CAALtxC,CAAc+wC,EAAGkB,CAAAA,SAAH,CAAaX,EAAb,CAAzQ,KAA2R6zB,GAAK,KAAM,KAAA,EAAQn0B,EAAGmB,CAAAA,eAAX,CAA6B,IAAK,EAAlC,CAAsCnB,EAAGmB,CAAAA,eAAH,CAAmBvrC,CAAnB,CAC5U,KAAIy0D,GAAK8J,EAAA,CAAK,GAAA,GAAQ7zB,EAAR,CAAa6zB,EAAG9uB,CAAAA,YAAhB,EAAgC,CAAhC,CAAoC8uB,EAAG\/uB,CAAAA,WAAvC,EAAsD,CAA3D,CAA+D,CACxE,EAAA,GAAMilB,EAAN,GAAaA,EAAb,CAAkBtqB,EAAGY,CAAAA,QAAH,CAAYt0C,EAAZ,CAAlB,CAC4BomE,GAAAA,CAAK5lE,EAAA,CAAG8L,EAAH,CAPK,OAOG2tH,GAAKj8D,EAALi8D,CAAUvlF,EAAA,CAAG10C,EAAH,CAAVi6H;AAAmBz5H,EAAA,CAAG9C,EAAH,CAAQqqE,GAAAA,CAAK\/J,EAAL+J,CAAU,CAAVA,CAAcrzB,EAAA,CAAG10C,EAAH,CAAd+nE,CAAuB,CAAvBA,EAAzDiyD,EAAyDjyD,CAApD,CAAoDA,CAAhDplE,EAAgDolE,CAA3C,CAA2CA,CAA+BX,GAAAA,CAV9Fkb,EAAA,CAUqGlc,EAVrG,CAAMyzD,EAAA,CAUmG9xD,EAVnG,CAUuGkyD,EAVvG,CAAN,CAWL,OAAO,CAAE,CAAChmF,EAAD,EAAM9wC,EAAA,CAAG8wC,EAAH,CAAN,EADwJ,CACxI,EADoG,OAAA,GAAYh0C,EAAZ,CAAiBO,EAAA,CAAG8L,EAAH,CAAjB,CAA0B9L,EAAA,CAAG9C,EAAH,CAC9H,GAD6IqqE,EAC7I,GADoJX,EACpJ,EAD0J1zB,EAAGkB,CAAAA,SAAH,CAAa50C,EAAb,CAC1J,EAD8K0zC,EAAGY,CAAAA,QAAH,CAAYt0C,EAAZ,CAC9K,CAAK+nE,EAAA,CAAK3B,EAAL,CAAUA,EAAV,CAAe2B,EAAf,CAAoBkyD,EAApB,CAAyBlyD,EAA9B,CAAmC,CAAnD,CAAF,CAAyDttB,KAAM,CAAE,CAACxG,EAAD,EAAMmzB,EAAR,CAAY8yD,aAAcnyD,EAAdmyD,CAAmB9yD,EAA\/B,CAA\/D,CAR+B,CAAjC,CAD6C,CAArC,EAxZjB,CAoaInyB,GAAI,CAAEzmB,KAAM,OAAR,CAAiBqlB,MAAO,MAAxB,CAAgCC,OAAQ,KAAxC,CAA+CvlB,IAAK,QAApD,CApaR,CA8aIlxB,GAAI,CAAEopB,MAAO,KAAT,CAAgBC,IAAK,OAArB,CA9aR,CAkbI9oB,GAAI,CAAC,KAAD,CAAQ,OAAR,CAAiB,QAAjB,CAA2B,MAA3B,CACAA,GAAE2F,CAAAA,MAAF,CAAS,CAACN,CAAD,CAAKhB,CAAL,CAAA,EAAYgB,CAAG+E,CAAAA,MAAH,CAAU\/F,CAAV,CAAcA,CAAd,CAAmB,QAAnB,CAA6BA,CAA7B,CAAkC,MAAlC,CAArB,CAAgE,EAAhE,CACR,KAAIk4H,GAAIA,QAAQ,CAACl4H,CAAD,CAAK,CACnB,MAAO,KAAK,EAAL,GAAWA,CAAX,GAAkBA,CAAlB,CAAuB,EAAvB,EAA4B,CAAEwE,KAAM,MAAR,CAAgB2G,QAASnL,CAAzB,CAA6BwD,EAAE,CAAC0E,CAAD,CAAK,CACrE,MAAO2sB,GAAA,CAAQ,IAAR,CAAc,IAAd,CAAoB,SAAU,EAAG,CACtC,IAAIr2B,CADkC,OAEhC,CAAE,UAAWrC,CAAb;AAAiB,eAAgBmL,EAAjC,CAAqC,MAAO9L,EAA5C,CAAgD,iBAAkBqW,EAAlE,CAAsE,SAAU\/R,EAAhF,CAAoF,SAAUoS,EAA9F,CAAA,CAAqGhK,CAFrE,KAEyEk3F,GAAMp\/F,CAF\/E,OAEmF,CAAE,SAAUwxC,EAAA,CAAK,CAAA,CAAjB,CAAuB,UAAWC,EAAA,CAAK,CAAA,CAAvC,CAA6C,mBAAoBC,EAAjE,CAAqE,iBAAkBM,EAAA,CAAK,SAA5F,CAAuG,cAAej0C,EAAA,CAAK,CAAA,CAA3H,CAAA,CAAoIqhG,EAAK3sD,GAAAA,CAAKlI,EAAA,CAAU60D,EAAV,CAAe,CAAC,UAAD,CAAa,WAAb,CAA0B,oBAA1B,CAAgD,kBAAhD,CAAoE,eAApE,CAAf,CAFjO,OAEuU\/0F,GAAK8mC,EAAA,CAAEh1C,CAAF,CAF5U,KAEmVV,GAAKi2C,EAALj2C,GAAY4O,EAAA,GAAOwH,EAAP,EAAc9T,EAAd,CAA6B,QAAQ,CAACiD,EAAD,CAAK,CAC7a,MAAMu1C,GAAKzD,EAAA,CAAE9xC,EAAF,CACX,OAAO,CAACpF,EAAA,CAAEoF,EAAF,CAAD,CAAQu1C,EAAR,CAAY36C,EAAA,CAAE26C,EAAF,CAAZ,CAFsa,CAAb,CAGha1kC,EAHga,CAA7B,CAAmB,CAACihC,EAAA,CAAEjhC,EAAF,CAAD,CAA\/BpW,CAGjXs8H,GAAAA,CAAK,CAAClmH,EAAD,CAAK,GAAGpW,EAAR,CALyB,OAKZiF,GAAK,KAAMqxC,GAAA,CAAE7pC,CAAF,CAAMuqC,EAAN,CALC,CAKUozB,GAAK,EACjD9J,GAAAA,EAAM,IAAA,GAASv9D,CAAT,CAAc8I,EAAGquG,CAAAA,IAAjB,EAAyB,IAAK,EAA9B,CAAkCn3G,CAAG25H,CAAAA,SAA3Cp8D,GAAyD,EAC7D,IAAIvqB,EAAA,EAAMq0B,EAAGrpE,CAAAA,IAAH,CAAQkE,EAAA,CAAG2J,EAAH,CAAR,CAAN;AAAuBonC,EAA3B,CAA+B,CAC7B,MAAM,CAAE,KAAMzwC,EAAR,CAAY,MAAOu1C,EAAnB,CAAA,CAA0BtD,EAAA,CAAE92C,CAAF,CAAMX,EAAN,CAAU,KAAM,KAAA,EAAQsE,EAAG03H,CAAAA,KAAX,CAAmB,IAAK,EAAxB,CAA4B13H,EAAG03H,CAAAA,KAAH,CAAStlH,EAAGmgC,CAAAA,QAAZ,CAA5C,CAChCwzB,GAAGrpE,CAAAA,IAAH,CAAQkE,EAAA,CAAGM,EAAH,CAAR,CAAgBN,EAAA,CAAG61C,EAAH,CAAhB,CAF6B,CAI\/B,GAAIwlB,EAAA,CAAK,CAAC,GAAGA,EAAJ,CAAQ,CAAE3jB,UAAWj8C,CAAb,CAAiBg8H,UAAWtyD,EAA5B,CAAR,CAAL,CAAgD,CAACA,EAAGhgB,CAAAA,KAAH,CAAU7kD,EAAD,EAAc,CAAd,EAAQA,EAAjB,CAArD,CAAgF,CAAA,IAC1EkkE,EAD0E,CACtEf,EACFnjE,EAAAA,EAAM,IAAA,GAASkkE,EAAT,CAAc,IAAA,GAASf,EAAT,CAAc78D,EAAGquG,CAAAA,IAAjB,EAAyB,IAAK,EAA9B,CAAkCxxC,EAAGvO,CAAAA,KAAnD,EAA4DsP,EAA5D,CAAiE,CAAvElkE,EAA4E,CAClF,IADqFu1C,EACrF,CAD0FwhF,EAAA,CAAG\/2H,CAAH,CAC1F,CACE,MAAO,CAAEw3C,KAAM,CAAEod,MAAO50D,CAAT,CAAam3H,UAAWp8D,EAAxB,CAAR,CAAsCnN,MAAO,CAAExW,UAAW7B,EAAb,CAA7C,CACLK,GAAAA,CAAK,QACT,QAAQ5E,EAAR,EACE,KAAK,SAAL,CACE,IAAIgmF,EAEJ,EADMjlF,EACN,CADW,IAAA,GAASilF,EAAT,CAAcj8D,EAAG96D,CAAAA,GAAH,CAAQs2C,EAAD,EAAQ,CAACA,EAAD,CAAKA,EAAG4gF,CAAAA,SAAUp3H,CAAAA,MAAb,CAAqBq3H,EAAD,EAAa,CAAb,CAAQA,EAA5B,CAAoC92H,CAAAA,MAApC,CAA2C,CAAC82H,EAAD,CAAK1rD,EAAL,CAAA,EAAY0rD,EAAZ,CAAiB1rD,EAA5D,CAAgE,CAAhE,CAAL,CAAf,CAAyFnxE,CAAAA,IAAzF,CAA8F,CAACg8C,EAAD,CAAKm1B,EAAL,CAAA,EAAYn1B,EAAA,CAAG,CAAH,CAAZ,CAAoBm1B,EAAA,CAAG,CAAH,CAAlH,CAAA,CAAyH,CAAzH,CAAd,EAA6I,IAAK,EAAlJ,CAAsJsrD,EAAA,CAAG,CAAH,CAAM5\/E,CAAAA,SACvK,IAAOxB,EAAP;AAAY7D,EAAZ,CACA,MAEF,MAAK,kBAAL,CACE6D,EAAA,CAAK\/kC,EART,CAUA,GAAI1V,CAAJ,GAAWy6C,EAAX,CACE,MAAO,CAAEgY,MAAO,CAAExW,UAAWxB,EAAb,CAAT,CAjBqE,CAmBhF,MAAO,EA9B+B,CAAjC,CAD8D,CAApC,CADhB,CAArB,CA0CIyhF,GAAIA,QAAQ,CAACr3H,CAAD,CAAK,CACfgkB,CAAAA,CAAM,IAAK,EAAL,GAAWhkB,CAAX,CAAgB,EAAhB,CAAqBA,CADZ,KACgB,CAAE,SAAUhB,CAAA,CAAK,iBAAjB,CAAA,CAAuCglB,CADvD,CAC4D9c,EAAKqiC,EAAA,CAAUvlB,CAAV,CAAe,CAAC,UAAD,CAAf,CACpF,OAAO,CAAExgB,KAAM,MAAR,CAAgBhB,EAAE,CAACuvC,CAAD,CAAK,CAC5B,MAAOle,GAAA,CAAQ,IAAR,CAAc,IAAd,CAAoB,SAAU,EAAG,CACtC,IAAM,CAAE,MAAOr2B,EAAT,CAAA,CAAgBu0C,CACtB,QAAQ\/yC,CAAR,EACE,KAAK,iBAAL,CAEE,MADMu2C,GACC,CADInD,EAAA,CAAE,KAAMrB,GAAA,CAAEgB,CAAF,CAAMnxC,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBqG,CAAnB,CAAd,CAAsC,CAAEowH,eAAgB,WAAlB,CAAtC,CAAN,CAAR,CAAuF95H,EAAGm0C,CAAAA,SAA1F,CACJ,CAAA,CAAE6F,KAAM,CAAE+\/E,uBAAwBhiF,EAA1B,CAA8BiiF,gBAAiBnlF,EAAA,CAAEkD,EAAF,CAA\/C,CAAR,CAET,MAAK,SAAL,CAEE,MADMA,GACC,CADInD,EAAA,CAAE,KAAMrB,GAAA,CAAEgB,CAAF,CAAMnxC,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBqG,CAAnB,CAAd,CAAsC,CAAEuwH,YAAa,CAAA,CAAf,CAAtC,CAAN,CAAR,CAA6Ej6H,EAAG6zC,CAAAA,QAAhF,CACJ;AAAA,CAAEmG,KAAM,CAAEkgF,eAAgBniF,EAAlB,CAAsBoiF,QAAStlF,EAAA,CAAEkD,EAAF,CAA\/B,CAAR,CAET,SACE,MAAO,EAVX,CAFsC,CAAjC,CADqB,CAAvB,CAFY,CA1CrB,CA8DIqiF,GAAIA,QAAQ,CAACp6H,CAAD,CAAK,CACnB,MAAO,KAAK,EAAL,GAAWA,CAAX,GAAkBA,CAAlB,CAAuB,CAAvB,EAA2B,CAAEgG,KAAM,QAAR,CAAkB2G,QAAS3M,CAA3B,CAA+BgF,EAAE,CAACrH,CAAD,CAAK,CACtE,MAAO04B,GAAA,CAAQ,IAAR,CAAc,IAAd,CAAoB,SAAU,EAAG,CAAA,MAChC,CAAE,EAAGvtB,CAAL,CAAS,EAAG9L,CAAZ,CAAA,CAAmBW,CADa,CACT0V,GAAK,KAAM,SAAQ,CAACglC,EAAD,CAAK2e,EAAL,CAAS,CACvD,MAAO3gC,GAAA,CAAQ,IAAR,CAAc,IAAd,CAAoB,SAAU,EAAG,CAAA,MAChC,CAAE,UAAWptB,EAAb,CAAiB,SAAUguD,EAA3B,CAA+B,SAAUC,EAAzC,CAAA,CAAgD7e,EADhB,KACoBp4C,GAAK,KAAM,KAAA,EAAQg3D,EAAG+hE,CAAAA,KAAX,CAAmB,IAAK,EAAxB,CAA4B\/hE,EAAG+hE,CAAAA,KAAH,CAAS9hE,EAAGrjB,CAAAA,QAAZ,CAD3D,CACkFvyC,GAAKqxC,EAAA,CAAE1pC,EAAF,CADvF,OAC8FyK,GAAOzK,EAlKzI2pC,CAAAA,KAAH,CAAS,GAAT,CAAA,CAAc,CAAd,CAiKuC,CAC0GI,GAAK,GAALA,GAAaH,EAAA,CAAE5pC,EAAF,CAAOgqC,GAAAA,CAAK,CAAC,MAAD,CAAS,KAAT,CAAgBlmB,CAAAA,QAAhB,CAAyBzrB,EAAzB,CAAA,CAA+B,CAAC,CAAhC,CAAoC,CAAG4xC,GAAAA,CAAKjzC,EAAA,EAAM+yC,EAAN,CAAW,CAAC,CAAZ,CAAgB,CAArO,OAAwOjzC,GAAK,UAAA,EAAc,MAAOi3D,GAArB,CAA0BA,EAAA,CAAG3e,EAAH,CAA1B,CAAmC2e,EAChR,KAAI,CAAE,SAAUt0D,EAAZ;AAAgB,UAAW8wC,EAA3B,CAA+B,cAAeh0C,EAA9C,CAAA,CAAqD,QAAA,EAAY,MAAOO,GAAnB,CAAwB,CAAEs6H,SAAUt6H,EAAZ,CAAgBu6H,UAAW,CAA3B,CAA8BC,cAAe,IAA7C,CAAxB,CAA8El3H,EAAA,CAAe,CAAEg3H,SAAU,CAAZ,CAAeC,UAAW,CAA1B,CAA6BC,cAAe,IAA5C,CAAf,CAAmEx6H,EAAnE,CACvI,OAAO2T,GAAA,EAAM,QAAN,EAAkB,MAAOlU,GAAzB,GAAgCg0C,EAAhC,CAAqC,KAAA,GAAU9\/B,EAAV,CAAe,CAAC,CAAhB,CAAoBlU,EAApB,CAAyBA,EAA9D,EAAmEwzC,EAAA,CAAK,CAAE71C,EAAGq2C,EAAHr2C,CAAQ+1C,EAAV,CAAc91C,EAAGsF,EAAHtF,CAAQ61C,EAAtB,CAAL,CAAkC,CAAE91C,EAAGuF,EAAHvF,CAAQ81C,EAAV,CAAc71C,EAAGo2C,EAAHp2C,CAAQ81C,EAAtB,CAHtE,CAAjC,CADgD,CAAjB,CAMtCv1C,CANsC,CAMlCqC,CANkC,CAOxC,OAAO,CAAE7C,EAAG2L,CAAH3L,CAAQkW,EAAGlW,CAAAA,CAAb,CAAgBC,EAAGJ,CAAHI,CAAQiW,EAAGjW,CAAAA,CAA3B,CAA8B48C,KAAM3mC,EAApC,CAR+B,CAAjC,CAD+D,CAAtC,CADf,CA9DrB,CA+EImnH,GAAIA,QAAQ,CAACh5H,CAAD,CAAK,CACnB,MAAO,KAAK,EAAL,GAAWA,CAAX,GAAkBA,CAAlB,CAAuB,EAAvB,EAA4B,CAAEwE,KAAM,OAAR,CAAiB2G,QAASnL,CAA1B,CAA8BwD,EAAE,CAAChF,CAAD,CAAK,CACtE,MAAOq2B,GAAA,CAAQ,IAAR,CAAc,IAAd,CAAoB,SAAU,EAAG,CAAA,MAChC,CAAE,EAAG14B,CAAL,CAAS,EAAGmL,CAAZ,CAAgB,UAAW9L,EAA3B,CAAA,CAAkCgD,CADF,KACM4gG,GAAMp\/F,CADZ,OACgB,CAAE,SAAU6R,EAAA,CAAK,CAAA,CAAjB,CAAuB,UAAW\/R,EAAA,CAAK,CAAA,CAAvC,CAA8C,QAASoS,EAAA,CAAK,CAAE1O,GAAKxC,EAADwC,EAAQ,CAC9H,IAAI,CAAE,EAAG+yC,EAAL;AAAS,EAAGruC,EAAZ,CAAA,CAAmBlH,EACvB,OAAO,CAAErF,EAAG46C,EAAL,CAAS36C,EAAGsM,EAAZ,CAFuH,CAAd,CAA5D,CAAA,CAG9Ck3F,EAJ8B,KAIzB3tD,GAAKlH,EAAA,CAAU60D,EAAV,CAAe,CAAC,UAAD,CAAa,WAAb,CAA0B,SAA1B,CAAf,CAAsD1tD,GAAAA,CAAK,CAAE\/1C,EAAGQ,CAAL,CAASP,EAAG0L,CAAZ,CAAkB\/I,GAAAA,CAAK,KAAMwzC,GAAA,CAAEvzC,CAAF,CAAMizC,EAAN,CAJpE,OAI+EvwC,GAAKmwC,EAAA,CAAEF,EAAA,CAAE31C,EAAF,CAAF,CAJpF,CAI8Fw2C,GARjI,GAAA,GAQwI9wC,EARxI,CAAa,GAAb,CAAmB,GAIgB,KAKlClD,GAAK0zC,EAAA,CAAGxwC,EAAH,CAAQnD,GAAAA,CAAK2zC,EAAA,CAAGM,EAAH,CAClBngC,GAAJ,GAEE7T,EAFF,CArHGqiF,EAAA,CAuHMriF,EAvHN,CAuHWO,EAAA,CAAG,GAAA,GAAQ2C,EAAR,CAAa,KAAb,CAAqB,MAAxB,CAvHX,CAAM02H,EAAA,CAuHsC55H,EAvHtC,CAuH0CA,EAvH1C,CAuH+CO,EAAA,CAD3C,GAAAyC,GAAQE,EAARF,CAAa,QAAbA,CAAwB,OACmB,CAvH\/C,CAAN,CAqHH,CAIIlB,GAAJ,GAEE\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\/H,GAAiBv\/H,EAAA,CAAQ,CAAR,CAvVrB,CAwVIk\/C,GAAWoyB,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CAA8B,CAA9B,CAxVf,CAyVIg+C,GAA6B,WAApB,GAAA,MAAOxtB,SAAP,CAAkC+uG,EAAelnG,CAAAA,eAAjD,CAAmEknG,EAAetnG,CAAAA,SAzV\/F,CA4eI22B,GAASz9C,CAADy9C,EAAa,CACvB,MAAM,CACJ,QAAAzpC,CADI,CAEJ,QAAA+M,CAFI,CAAA,CAGF\/gB,CAIJ,OAAO,CACL3G,KAAM,OADD,CAEL2G,QAAAA,CAFK,CAGL3H,EAAE,CAACjB,CAAD,CAAO,CACP,GANKuB,MAAOsB,CAAAA,SAAUnB,CAAAA,cAAeC,CAAAA,IAAhC,CAMKib,CANL,CAA4C,SAA5C,CAML,CACE,IAAuB,IAAvB;AAAIA,CAAQsR,CAAAA,OAAZ,CACE,MAAOonG,GAAA,CAAE,CACP14G,QAASA,CAAQsR,CAAAA,OADV,CAEPvE,QAAAA,CAFO,CAAF,CAGJ1oB,CAAAA,EAHI,CAGDjB,CAHC,CADT,CADF,IAQO,IAAI4c,CAAJ,CACL,MAAO04G,GAAA,CAAE,CACP14G,QAAAA,CADO,CAEP+M,QAAAA,CAFO,CAAF,CAGJ1oB,CAAAA,EAHI,CAGDjB,CAHC,CAKT,OAAO,EAfA,CAHJ,CARgB,CA5ezB,CA4gBIi3H,GAAiBx\/H,EAAA,CAAQ,CAAR,CA5gBrB,CAyhBIy\/H,GAZ4DC,GAAIF,EAAe1wF,CAAAA,UAAnB4wF,EAA+B,CAACnzH,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MACnG,CAAE,SAAAlW,CAAF,CAAY,MAAAxtC,CAAA,CAAQ,EAApB,CAAwB,OAAAD,EAAA,CAAS,CAAjC,CAAA,CAAPsK,CAD0G,CACvDozH,GAAapvF,EAAA,CAAhEhkC,CAAgE,CAAe,CAAC,UAAD,CAAa,OAAb,CAAsB,QAAtB,CAAf,CAC5E,OAAuB,GAAIizH,EAAe\/uG,CAAAA,aAAnB,EAAkCirG,EAA0CryF,CAAAA,GAA5E,CAAiFwH,EAAA,CAAU,EAAV,CAAc8uF,EAAd,CAA0B,CAChI9qH,IAAK+wC,CAD2H,CAEhI1jD,MAAAA,CAFgI,CAGhID,OAAAA,EAHgI,CAIhI29H,QAAS,WAJuH,CAKhIC,oBAAqB,MAL2G,CAA1B,CAAjF,CAMnBtzH,CAAM03C,CAAAA,OAAN,CAAgBvU,CAAhB,CAA2C,GAAI8vF,EAAe\/uG,CAAAA,aAAnB,EAAkC,SAAlC,CAA6C,CAC1F7tB,OAAQ,gBADkF,CAA7C,CANxB,CAF+F,CAAxD88H,CA7gBhE,CA4hBIjgF,GAAiBz\/C,EAAA,CAAQ,CAAR,CA5hBrB,CAykBI,CAAC8\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\/C,YAAag7H,EADkC,CAE\/C,aAAcC,EAFiC,CAAf,CAG\/Bf,CAH+B,CAAd,CAGF,CAChBltH,IAAKgxC,CADW,CAEhBh0B,MAAOjqB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBk6H,CAAalwG,CAAAA,KAAhC,CAAd,CAAsD,CAC3DyxG,UAAYV,EAAD,CAAqB,IAAK,EAA1B,CAAY,MADoC,CAE3DxwG,QAA0D,IAAjD,IAACkvG,EAAD,CAAwB5iF,EAAe6kF,CAAAA,IAAvC,GAAkF,IAAK,EAAvF,GAAyDjC,EAAzD,EAA4FA,EAAqB9C,CAAAA,eAAjH,CAAmI,CAAnI,CAAuI,IAAK,EAF1F,CAAtD,CAFS,CAHE,CAUpB,OAAuB,GAAIlB,EAAe7sG,CAAAA,aAAnB,EAAkC,KAAlC;AAAyC,CAC9D5b,IAAKwjC,EADyD,CAE9D,oCAAqC,EAFyB,CAG9DxmB,MAAO,CACLQ,SAAUmmB,EADL,CAELjmB,KAAM,CAFD,CAGLD,IAAK,CAHA,CAILoP,UAAWkhG,EAAA,CAAY,eAAcvhI,IAAKusD,CAAAA,KAAL,CAAW7pD,EAAX,CAAd,OAAmC1C,IAAKusD,CAAAA,KAAL,CAAW5pD,EAAX,CAAnC,QAAZ,CAAwE,0BAJ9E,CAKLivH,SAAU,aALL,CAMLzgG,OAAQ0wG,EANH,CAOL,CAAC,iCAAD,EAAqC,CAC0B,IAA7D,IAAC3B,EAAD,CAAyB7iF,EAAe0wD,CAAAA,eAAxC,GAA+F,IAAK,EAApG,GAAqEmyB,EAArE,CAAwG,IAAK,EAA7G,CAAiHA,EAAsB5\/H,CAAAA,CADpG,CAE2B,IAA9D,IAAC6\/H,EAAD,CAA0B9iF,EAAe0wD,CAAAA,eAAzC,GAAiG,IAAK,EAAtG,GAAsEoyB,EAAtE,CAA0G,IAAK,EAA\/G,CAAmHA,EAAuB5\/H,CAAAA,CAFvG,CAGnC+G,CAAAA,IAHmC,CAG9B,GAH8B,CAPhC,CAHuD,CAAzC,CAeJ,GAAI20H,EAAe7sG,CAAAA,aAAnB,EAAkCgwG,EAAlC,CAA+E,CAChGpqH,MAAO+pH,EADyF,CAEhGyC,WAAAA,EAFgG,CAGhGW,cAAetB,EAHiF,CAIhGa,OAAAA,EAJgG,CAKhGC,OAAAA,EALgG,CAMhGS,gBAAiBR,EAN+E,CAA\/E,CAOhBG,EAAA,CAAyB,GAAI9F,EAAe7sG,CAAAA,aAAnB,EAAkCmwG,EAAlC;AAAiF,CAC3GvqH,MAAO+pH,EADoG,CAE3GU,UAAW,CAAA,CAFgG,CAG3GC,kBAAAA,EAH2G,CAAjF,CAIT,GAAIzD,EAAe7sG,CAAAA,aAAnB,EAAkCirG,EAA0Cz+C,CAAAA,GAA5E,CAAiFomD,EAAjF,CAJS,CAAzB,CAIiI,GAAI\/F,EAAe7sG,CAAAA,aAAnB,EAAkCirG,EAA0Cz+C,CAAAA,GAA5E,CAAiFomD,EAAjF,CAXjH,CAfI,CA7G8F,CAAxD,CAvmB\/D,CAivBIK,GAAsC,CACxCpxG,IAAK,QADmC,CAExCslB,MAAO,MAFiC,CAGxCC,OAAQ,KAHgC,CAIxCtlB,KAAM,OAJkC,CAjvB1C,CAuvBIoxG,GAA4D,GAAIrG,EAAexuF,CAAAA,UAAnB,EAA+B80F,QAAmD,CAACr3H,CAAD,CAAQq5C,CAAR,CAAsB,CAAA,IACnJ,CAAE,cAAAw6E,CAAF,CAAA,CAAP7zH,CAAgCozH,EAAAA,CAAapvF,EAAA,CAA7ChkC,CAA6C,CAAe,CAAC,eAAD,CAAf,CACnDs3H,EAAAA,CAAiBnD,EAAA,CATcoD,aASd,CAA0E1D,CAA1E,CAEvB,OAAuB,GAAI9C,EAAe7sG,CAAAA,aAAnB,EAAkC,MAAlC,CAA0C,CAC\/D5b,IAAKgvH,CAAeL,CAAAA,aAD2C,CAE\/D3xG,MAAO,CACLQ,SAAU,UADL,CAELE,KAAMsxG,CAAed,CAAAA,MAFhB,CAGLzwG,IAAKuxG,CAAeb,CAAAA,MAHf,CAIL,CAPaU,EAAAK,CAAoCF,CAAehB,CAAAA,UAAnDkB,CAOb,EAAY,CAJP,CAKL30B,gBAAiB,CACf98E,IAAK,EADU,CAEfslB,MAAO,KAFQ,CAGfC,OAAQ,UAHO,CAIftlB,KAAM,QAJS,CAAA,CAKfsxG,CAAehB,CAAAA,UALA,CALZ,CAWLnhG,UAAW,CACTpP,IAAK,kBADI;AAETslB,MAAO,gDAFE,CAGTC,OAAS,gBAHA,CAITtlB,KAAM,gDAJG,CAAA,CAKTsxG,CAAehB,CAAAA,UALN,CAXN,CAiBL15E,WAAY06E,CAAeJ,CAAAA,eAAf,CAAiC,QAAjC,CAA4C,IAAK,EAjBxD,CAFwD,CAA1C,CAqBJ,GAAInG,EAAe7sG,CAAAA,aAAnB,EAAkCgvG,EAAlC,CAA6E5uF,EAAA,CAAU,EAAV,CAAc8uF,CAAd,CAA0B,CACxH9qH,IAAK+wC,CADmH,CAExH\/zB,MAAOjqB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmB83H,CAAW9tG,CAAAA,KAA9B,CAAd,CAAoD,CACzD+vB,QAAS,OADgD,CAApD,CAFiH,CAA1B,CAA7E,CArBI,CAJ+I,CAAxG,CAvvBhE,CA6xBI+gF,GAAyCxxH,CAADwxH,EAAc,EACxDn4H,KAAM,iBADkD,CAExD2G,QAAAA,CAFwD,CAGxD3H,EAAE,CAACg1C,CAAD,CAAO,CAAA,IACHwlF,CADG,CACqBC,CADrB,CAC6CC,EAD7C,CACqEC,EADrE,CAC6FC,EACpG,OAAM,CAAE,UAAAhmF,EAAF,CAAa,MAAAu\/E,EAAb,CAAoB,eAAAj\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\/4H,CAAD,CAAQq5C,CAAR,CAAA,EACtE,GAAIw\/E,EAAe30G,CAAAA,aAAnB,EAAkCirG,EAA0C30C,CAAAA,IAA5E,CAAkFl2C,EAAA,CAAU,EAAV,CAActkC,CAAd,CAAqB,CAC5HsI,IAAK+wC,CADuH,CAE5H\/zB,MAAOhqB,EAAA,CAAe,CACpBwqB,SAAU,UADU,CAEpBs8B,OAAQ,CAFY,CAGpBzsD,MAAO,CAHa,CAIpBD,OAAQ,CAJY,CAKpBiwB,QAAS,CALW,CAMpBC,OAAQ,CAAC,CANW,CAOpBiO,SAAU,QAPU,CAQpB2iE,KAAM,kBARc,CASpBjxE,WAAY,QATQ,CAUpByzG,SAAU,QAVU,CAAf,CAWJh5H,CAAMslB,CAAAA,KAXF,CAFqH,CAArB,CAAlF,CADuCyzG,CAjDhE,CAqEI,CAACE,EAAD,CAAA,CAA0Fh0F,EAAA,CAAyC,SAAzC,CAAoD,CAChJuuF,EADgJ,CAApD,CArE9F,CAwEI0F,GAAuC1F,EAAA,EAxE3C,CA4EI,CAAC2F,EAAD,CAAuDC,EAAvD,CAAA,CAA0GH,EAAA,CAHpEI,iBAGoE,CA5E9G,CA+GI,CAACC,EAAD,CAA+CC,EAA\/C,CAAA;AAA0FN,EAAA,CADrDO,SACqD,CA\/G9F,CAqMIC,GAA4D,GAAIjL,EAAejsF,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,IACnG,CAAE,eAAAqgF,CAAF,CAAA,CAAP15H,CAAZ,OAA6C25H,EAAe31F,EAAA,CAAhDhkC,CAAgD,CAAe,CAAC,gBAAD,CAAf,CAA5D,CACM4L,GAAU2tH,EAAA,CAHuBK,gBAGvB,CAA4EF,CAA5E,CADhB,CAEMG,GAAkBT,EAAA,CAJeQ,gBAIf,CAAoFF,CAApF,CAClBI,EAAAA,CAAcZ,EAAA,CAAqCQ,CAArC,CACpB,OAAMpxH,GAAM,GAAIkmH,EAAejlG,CAAAA,MAAnB,EAA2B,IAA3B,CACN+vB,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwD\/wC,EAAxD,CAA6DsD,EAAQmuH,CAAAA,eAArE,CACrB,OAAMC,GAAmB,GAAIxL,EAAejlG,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CAAzB,CACM0wG,GAA0B,GAAIzL,EAAejlG,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CADhC,CAEM2wG,GAAkB,GAAI1L,EAAejjG,CAAAA,WAAnB,EACtB,EAAA,EAAMyuG,EAAiB9vG,CAAAA,OAAvB,CAAiC,CAAA,CADX,CAEtB,EAFsB,CAIxB,IAAIskG,EAAe9iG,CAAAA,SAAnB,EAA8B,EAAA,EACrB,EAAA,EAAMzH,QAAS4F,CAAAA,mBAAT,CAA6B,WAA7B,CAA0CqwG,EAA1C,CADf,CAEG,CACDA,EADC,CAFH,CAKA,OAAuB,GAAI1L,EAAetqG,CAAAA,aAAnB,EA1VuB0vG,EA0VvB,CAA6EtvF,EAAA,CAAU,CAC5GoT,QAAS,CAAA,CADmG,CAAV,CAEjGoiF,CAFiG,CAA7E,CAEU,GAAItL,EAAetqG,CAAAA,aAAnB,EAAkCirG,EAA0C5uB,CAAAA,MAA5E,CAAoFj8D,EAAA,CAAU,CAC7H,mBAAoB14B,EAAQ+5C,CAAAA,IAAR,CAAe\/5C,EAAQuuH,CAAAA,SAAvB;AAAmC,IAAK,EADiE,CAE7H,aAAcvuH,EAAQwuH,CAAAA,cAFuG,CAAV,CAGlHT,CAHkH,CAGpG,CACfrxH,IAAKgxC,CADU,CAEf7uB,cAAe8Z,EAAA,CAA0CvkC,CAAMyqB,CAAAA,aAAhD,CAAgE+G,EAAD,EAAW,CAC7D,OAA1B,GAAIA,EAAMrD,CAAAA,WAAV,EAEK8rG,EAAwB\/vG,CAAAA,OAF7B,EAEyC2vG,EAAgBQ,CAAAA,qBAAsBnwG,CAAAA,OAF\/E,GAGEte,EAAQ0uH,CAAAA,cAAR,EACA,CAAAL,EAAwB\/vG,CAAAA,OAAxB,CAAkC,CAAA,CAJpC,CADuF,CAA1E,CAFA,CAUfS,eAAgB4Z,EAAA,CAA0CvkC,CAAM2qB,CAAAA,cAAhD,CAAgE,EAAA,EAAM,CACpF\/e,EAAQ2uH,CAAAA,cAAR,EACAN,GAAwB\/vG,CAAAA,OAAxB,CAAkC,CAAA,CAFkD,CAAtE,CAVD,CAcfG,cAAeka,EAAA,CAA0CvkC,CAAMqqB,CAAAA,aAAhD,CAA+D,EAAA,EAAM,CAClF2vG,EAAiB9vG,CAAAA,OAAjB,CAA2B,CAAA,CAC3BjG,SAASE,CAAAA,gBAAT,CAA0B,WAA1B,CAAuC+1G,EAAvC,CAAwD,CACtDt9H,KAAM,CAAA,CADgD,CAAxD,CAFkF,CAArE,CAdA,CAoBf49H,QAASj2F,EAAA,CAA0CvkC,CAAMw6H,CAAAA,OAAhD,CAAyD,EAAA,EAAM,CACtE,GAAI,CAACR,EAAiB9vG,CAAAA,OAAtB,CACEte,EAAQ6uH,CAAAA,MAAR,EAFoE,CAA\/D,CApBM,CAwBfC,OAAQn2F,EAAA,CAA0CvkC,CAAM06H,CAAAA,MAAhD,CAAwD9uH,EAAQ+uH,CAAAA,OAAhE,CAxBO,CAyBfp4E,QAAShe,EAAA,CAA0CvkC,CAAMuiD,CAAAA,OAAhD,CAAyD32C,EAAQ+uH,CAAAA,OAAjE,CAzBM,CAHoG,CAApF,CAFV,CAlB+F,CAAxD,CArMhE;AAyPI,CAACC,EAAD,CAAuCC,EAAvC,CAAA,CAAiF5B,EAAA,CAD7C6B,eAC6C,CAA8E,CACjKC,WAAY,IAAK,EADgJ,CAA9E,CAzPrF,CA0QIC,GAA4D,GAAIxM,EAAejsF,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CACtH,IAAM4hF,EAAgBJ,EAAA,CAFiBK,gBAEjB,CAA2El7H,CAAM05H,CAAAA,cAAjF,CADgG,OAEnG,CAAE,WAAAqB,CAAA,CAAaE,CAAcF,CAAAA,UAA7B,CAAyC,KAAArnF,EAAA,CAAO,KAAhD,CAAA,CAAP1zC,CAAsEw1H,EAAAA,CAAexxF,EAAA,CAArFhkC,CAAqF,CAAe,CAAC,YAAD,CAAe,MAAf,CAAf,CAC3F4L,EAAAA,CAAU2tH,EAAA,CAJuB2B,gBAIvB,CAA4El7H,CAAM05H,CAAAA,cAAlF,CAChB,OAAuB,GAAIlL,EAAetqG,CAAAA,aAAnB,EAAkCy0G,EAAlC,CAA6E,CAClGxkF,QAAS4mF,CAAT5mF,EAAuBvoC,CAAQ+5C,CAAAA,IADmE,CAA7E,CAEpB\/5C,CAAQuvH,CAAAA,uBAAR,CAAkD,GAAI3M,EAAetqG,CAAAA,aAAnB,EAAkCk3G,EAAlC,CAA4E92F,EAAA,CAAU,CACzIoP,KAAAA,EADyI,CAAV,CAE9H8hF,CAF8H,CAEhH,CACfltH,IAAK+wC,CADU,CAFgH,CAA5E,CAAlD,CAImB,GAAIm1E,EAAetqG,CAAAA,aAAnB,EAAkCm3G,EAAlC,CAAiF\/2F,EAAA,CAAU,CAC\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\/kF,GAAQ\/yB,CAAAA,gBAAR,CAAyB,cAAzB,CAAyC+3G,EAAzC,CACA,OAAO,EAAA,EAAM,CACXV,EAAQ3xG,CAAAA,mBAAR,CAA4B,cAA5B,CAA4CoyG,EAA5C,CACA\/kF,GAAQrtB,CAAAA,mBAAR,CAA4B,cAA5B,CAA4CqyG,EAA5C,CAFW,CALS,CADU,CAApC,CAWG,CACDV,EADC,CAEDtkF,EAFC,CAGDykF,EAHC,CAIDD,EAJC,CAXH,CAiBA,IAAIlN,EAAe9iG,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,GAAI4vG,EAAJ,CAAsB,CACpB,MAAMa,GAA2B3qG,EAAD2qG,EAAW,CACzC,IAAMt8H,GAAS2xB,EAAM3xB,CAAAA,MACfu8H,GAAAA,CAAkB,CACtBhnI,EAAGo8B,EAAM9C,CAAAA,OADa,CAEtBr5B,EAAGm8B,EAAM7C,CAAAA,OAFa,CAIlB0tG,GAAAA,EAAgC,IAAZ;AAAAb,EAAA,EAAgC,IAAK,EAArC,GAAoBA,EAApB,CAAyC,IAAK,EAA9C,CAAkDA,EAAQzuG,CAAAA,QAAR,CAAiBltB,EAAjB,CAAtEw8H,IAAgH,IAAZ,GAAAnlF,EAAA,EAAgC,IAAK,EAArC,GAAoBA,EAApB,CAAyC,IAAK,EAA9C,CAAkDA,EAAQnqB,CAAAA,QAAR,CAAiBltB,EAAjB,CAAtJw8H,CA8HZ,OAAM,CAAE,EAAG7kI,EAAL,CAAS,EAAGC,EAAZ,CAAA,CA7H0E2kI,EA8H5EE,GAAAA,CAAS,CAAA,CACb,KAAK,IAAI1mI,GAAK,CAAT,CAAYioE,GA\/HgFy9D,EA+HnEzlI,CAAAA,MAAbgoE,CAAsB,CAAvC,CAA0CjoE,EAA1C,CA\/HiG0lI,EA+H1CzlI,CAAAA,MAAvD,CAA+DgoE,EAA\/D,CAAoEjoE,EAAA,EAApE,CAA0E,CACxE,MAAM2mI,GAhIyFjB,EAgIpF,CAAQ1lI,EAAR,CAAYR,CAAAA,CAAvB,CACMonI,GAjIyFlB,EAiIpF,CAAQ1lI,EAAR,CAAYP,CAAAA,CADvB,CAEMonI,GAlIyFnB,EAkIpF,CAAQz9D,EAAR,CAAYzoE,CAAAA,CAFvB,CAGMsnI,GAnIyFpB,EAmIpF,CAAQz9D,EAAR,CAAYxoE,CAAAA,CACLmnI,GAClB,CADuB\/kI,EACvB,GAD8BilI,EAC9B,CADmCjlI,EACnC,EADyCD,EACzC,EAD+CilI,EAC\/C,CADoDF,EACpD,GAD2D9kI,EAC3D,CADgE+kI,EAChE,GADuEE,EACvE,CAD4EF,EAC5E,EADkFD,EAClF,GACED,EADF,CACW,CAACA,EADZ,CANwE,CA\/H9DK,EAAAA,CAA4B,CAwIjCL,EAvIGD,GAAJ,CACEX,EAAA,EADF,CAESiB,EAFT,GAGEjB,EAAA,EACA,CAAAf,EAAA,EAJF,CARyC,CAe3C12G,SAASE,CAAAA,gBAAT,CAA0B,aAA1B,CAAyCg4G,EAAzC,CACA,OAAO,EAAA,EAAMl4G,QAAS4F,CAAAA,mBAAT,CAA6B,aAA7B,CAA4CsyG,EAA5C,CAjBO,CADY,CAApC,CAoBG,CACDX,EADC,CAEDtkF,EAFC,CAGDokF,EAHC,CAIDX,EAJC,CAKDe,EALC,CApBH,CA2BA,OAAuB,GAAIlN,EAAetqG,CAAAA,aAAnB,EAAkCk3G,EAAlC,CAA4E92F,EAAA,CAAU,EAAV,CAActkC,CAAd,CAAqB,CACtHsI,IAAKgxC,CADiH,CAArB,CAA5E,CA1FmG,CAAxD,CA1RpE,CAwXI,CAACsjF,EAAD,CAA6DC,EAA7D,CAAA,CAAsH5D,EAAA,CA1QjFO,SA0QiF,CAA+E,CACvMsD,SAAU,CAAA,CAD6L,CAA\/E,CAxX1H;AA2XI1B,GAA2D,GAAI5M,EAAejsF,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MAClG,CAAE,eAAAqgF,CAAF,CAAkB,SAAAv2F,CAAlB,CAA4B,aAAc45F,EAA1C,CAAqD,gBAAA30F,EAArD,CAAsE,qBAAAI,EAAtE,CAAA,CAAPxoC,CAA2Gw1H,EAAAA,CAAexxF,EAAA,CAA1HhkC,CAA0H,CAAe,CAAC,gBAAD,CAAmB,UAAnB,CAA+B,YAA\/B,CAA6C,iBAA7C,CAAgE,sBAAhE,CAAf,CACtI,OAAM4L,GAAU2tH,EAAA,CApHuB2B,gBAoHvB,CAA4ExB,CAA5E,CAAhB,CACMI,GAAcZ,EAAA,CAAqCQ,CAArC,CADpB,CAEM,CAAE,QAAAiB,EAAF,CAAA,CAAc\/uH,EACpB,IAAI4iH,EAAe9iG,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClCzH,QAASE,CAAAA,gBAAT,CAtTqC64G,cAsTrC,CAA8DrC,EAA9D,CACA,OAAO,EAAA,EAAM12G,QAAS4F,CAAAA,mBAAT,CAvTwBmzG,cAuTxB,CAAiErC,EAAjE,CAFqB,CAApC,CAGG,CACDA,EADC,CAHH,CAMA,IAAInM,EAAe9iG,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,GAAI9f,EAAQ4vH,CAAAA,OAAZ,CAAqB,CACnB,MAAMyB,GAAiBzrG,EAADyrG,EAAW,CACzBp9H,EAAAA,CAAS2xB,EAAM3xB,CAAAA,MACN,KAAf,GAAIA,EAAJ,EAAkC,IAAK,EAAvC,GAAuBA,EAAvB,EAA4CA,EAAOktB,CAAAA,QAAP,CAAgBnhB,EAAQ4vH,CAAAA,OAAxB,CAA5C;AACEb,EAAA,EAH6B,CAKjCp+H,OAAO4nB,CAAAA,gBAAP,CAAwB,QAAxB,CAAkC84G,EAAlC,CAAiD,CAC\/CxsG,QAAS,CAAA,CADsC,CAAjD,CAGA,OAAO,EAAA,EAAMl0B,MAAOstB,CAAAA,mBAAP,CAA2B,QAA3B,CAAqCozG,EAArC,CAAoD,CAC\/DxsG,QAAS,CAAA,CADsD,CAApD,CATM,CADa,CAApC,CAcG,CACD7kB,EAAQ4vH,CAAAA,OADP,CAEDb,EAFC,CAdH,CAkBA,OAAuB,GAAInM,EAAetqG,CAAAA,aAAnB,EAAkC2rG,EAAlC,CAA6E,CAClGn4E,QAAS,CAAA,CADyF,CAElGq4E,4BAA6B,CAAA,CAFqE,CAGlG3nF,gBAAAA,EAHkG,CAIlGI,qBAAAA,EAJkG,CAKlGe,eAAiB\/X,EAAD+X,EAAW\/X,EAAMjD,CAAAA,cAAN,EALuE,CAMlG0hG,UAAW0K,EANuF,CAA7E,CAOJ,GAAInM,EAAetqG,CAAAA,aAAnB,EAjiB2BuwG,EAiiB3B,CAA6EnwF,EAAA,CAAU,CACxG,aAAc14B,EAAQwuH,CAAAA,cADkF,CAAV,CAE7FN,EAF6F,CAEhFtE,CAFgF,CAElE,CAC5BltH,IAAK+wC,CADuB,CAE5B\/zB,MAAOjqB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBk6H,CAAalwG,CAAAA,KAAhC,CAAd,CAAsD,CAC3D,CAAC,0CAAD,EAA8C,sCADa,CAAtD,CAFqB,CAFkE,CAA7E,CAOC,GAAIkpG,EAAetqG,CAAAA,aAAnB,EAAkC+iB,EAAlC;AAA6E,IAA7E,CAAmF9D,CAAnF,CAPD,CAO+G,GAAIqrF,EAAetqG,CAAAA,aAAnB,EAAkC04G,EAAlC,CAA8F,CAC9N9yH,MAAO4vH,CADuN,CAE9NoD,SAAU,CAAA,CAFoN,CAA9F,CAG\/G,GAAItO,EAAetqG,CAAAA,aAAnB,EAAkC40G,EAAlC,CAA6E,CAC9F\/7G,GAAInR,EAAQuuH,CAAAA,SADkF,CAE9F+C,KAAM,SAFwF,CAA7E,CAGhBH,EAHgB,EAGH55F,CAHG,CAH+G,CAP\/G,CAPI,CA7B8F,CAAxD,CA3X\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\/0E,EAAA,EAA0C,IAAK,EAA\/C,GAAyBA,EAAzB,EAAoDA,EAAA,CAAaD,EAAb,CANlC,CAHoD,CAAzC,CANjC,CAkBMy0E,GAAiB,GAAI5L,EAAehlG,CAAAA,OAAnB,EAA4B,EAAA,EAC1C80G,EAAA,CAAQD,EAAkBn0G,CAAAA,OAAlB;AAA4B,cAA5B,CAA6C,cAArD,CAAsE,QADxD,CAEpB,CACDo0G,EADC,CAFoB,CAlBvB,CAuBME,GAAa,GAAIhQ,EAAejjG,CAAAA,WAAnB,EAAgC,EAAA,EAAM,CACvDhvB,MAAO2rB,CAAAA,YAAP,CAAoBk2G,EAAal0G,CAAAA,OAAjC,CACAm0G,GAAkBn0G,CAAAA,OAAlB,CAA4B,CAAA,CAC5Bq0G,GAAA,CAAQ,CAAA,CAAR,CAHuD,CAAtC,CAIhB,CACDA,EADC,CAJgB,CAvBnB,CA8BME,GAAc,GAAIjQ,EAAejjG,CAAAA,WAAnB,EAAgC,EAAA,EAAM,CACxDhvB,MAAO2rB,CAAAA,YAAP,CAAoBk2G,EAAal0G,CAAAA,OAAjC,CACAq0G,GAAA,CAAQ,CAAA,CAAR,CAFwD,CAAtC,CAGjB,CACDA,EADC,CAHiB,CA9BpB,CAoCMG,GAAoB,GAAIlQ,EAAejjG,CAAAA,WAAnB,EAAgC,EAAA,EAAM,CAC9DhvB,MAAO2rB,CAAAA,YAAP,CAAoBk2G,EAAal0G,CAAAA,OAAjC,CACAk0G,GAAal0G,CAAAA,OAAb,CAAuB3tB,MAAOgV,CAAAA,UAAP,CAAkB,EAAA,EAAM,CAC7C8sH,EAAkBn0G,CAAAA,OAAlB,CAA4B,CAAA,CAC5Bq0G,GAAA,CAAQ,CAAA,CAAR,CAF6C,CAAxB,CAGpBjnF,EAHoB,CAFuC,CAAtC,CAMvB,CACDA,EADC,CAEDinF,EAFC,CANuB,CAU1B,IAAI\/P,EAAe9iG,CAAAA,SAAnB,EAA8B,EAAA,EACrB,EAAA,EAAMnvB,MAAO2rB,CAAAA,YAAP,CAAoBk2G,EAAal0G,CAAAA,OAAjC,CADf,CAEG,EAFH,CAGA,OAAuB,GAAIskG,EAAetqG,CAAAA,aAAnB,EAAkCg0G,EAAlC,CAA6E4B,CAA7E,CAA0G,GAAItL,EAAetqG,CAAAA,aAAnB,EAAkCo1G,EAAlC,CAAgF,CAC\/MxvH,MAAO4vH,CADwM,CAE\/MS,UAAAA,EAF+M,CAG\/Mx0E,KAAM24E,EAHyM,CAI\/MlE,eAAAA,EAJ+M,CAK\/MoB,QAAAA,EAL+M;AAM\/MzB,gBAAiBoE,EAN8L,CAO\/M7D,eAAgB,GAAI9L,EAAejjG,CAAAA,WAAnB,EAAgC,EAAA,EAAM,CAChDsuG,EAAgB4D,CAAAA,aAApB,CACEiB,EAAA,EADF,CAGEF,EAAA,EAJkD,CAAtC,CAKb,CACD3E,EAAgB4D,CAAAA,aADf,CAEDiB,EAFC,CAGDF,EAHC,CALa,CAP+L,CAiB\/MjE,eAAgB,GAAI\/L,EAAejjG,CAAAA,WAAnB,EAAgC,EAAA,EAAM,CAChD4vG,EAAJ,CACEsD,EAAA,EADF,CAGEliI,MAAO2rB,CAAAA,YAAP,CAAoBk2G,EAAal0G,CAAAA,OAAjC,CAJkD,CAAtC,CAKb,CACDu0G,EADC,CAEDtD,EAFC,CALa,CAjB+L,CA0B\/MV,OAAQ+D,EA1BuM,CA2B\/M7D,QAAS8D,EA3BsM,CA4B\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\/zG,CAAAA,WAAnB,EAAiCiG,EAAD,EAAW,CAC\/D,IAAKiuG,CAAL,EAAcC,CAAd,GAEeS,CAAXD,EAAWC,CAAAA,MAFf,CAEA,CAGA,IAAMU,GAAiB58G,QAASsf,CAAAA,aAChC,IAF+B,KAE\/B,GAFiB\/R,EAAMtxB,CAAAA,GAEvB,EAFwC,CAACsxB,EAAMyH,CAAAA,MAE\/C,EAFyD,CAACzH,EAAMiH,CAAAA,OAEhE,EAF2E,CAACjH,EAAMkH,CAAAA,OAElF,EAAgBmoG,EAAhB,CAAgC,CAC9B,MAAMnlF,GAAYlqB,EAAMjH,CAAAA,aACqCmxB,KAAAA,GAAAA,EA4CjE,OAAMN;AAAaK,EAAA,CAA4CC,EAA5C,CAAnB,CACMhlB,GAAQ8lB,EAAA,CAAkCpB,EAAlC,CAA8CM,EAA9C,CACR3lD,GAAAA,CAAOymD,EAAA,CAAkCpB,EAAW4Y,CAAAA,OAAX,EAAlC,CAAwDtY,EAAxD,CA9CT,OAAM,CAAChlB,EAAD,CAAQ3gC,EAAR,CAAA,CA+CH,CACL2gC,EADK,CAEL3gC,EAFK,CA9C+B2gC,GAClC,EAD2C3gC,EAC3C,CAIOy7B,EAAM+H,CAAAA,QAAX,EAAuBsnG,EAAvB,GAA0C9qI,EAA1C,CAMWy7B,EAAM+H,CAAAA,QANjB,EAM6BsnG,EAN7B,GAMgDnqG,EANhD,GAOElF,EAAMjD,CAAAA,cAAN,EACA,CAAIkxG,CAAJ,EACEjkF,EAAA,CAA4BzlD,EAA5B,CAAkC,CAChCslD,OAAQ,CAAA,CADwB,CAAlC,CATJ,GACE7pB,EAAMjD,CAAAA,cAAN,EACA,CAAIkxG,CAAJ,EACEjkF,EAAA,CAA4B9kB,EAA5B,CAAmC,CACjC2kB,OAAQ,CAAA,CADyB,CAAnC,CAHJ,CAJF,CACMwlF,EADN,GACyBnlF,EADzB,EAEIlqB,EAAMjD,CAAAA,cAAN,EAN0B,CAJhC,CAH+D,CAA3C,CA8BnB,CACDkxG,CADC,CAEDC,CAFC,CAGDQ,EAAWC,CAAAA,MAHV,CA9BmB,CAmCtB,OAAuB,GAAIb,EAAep7G,CAAAA,aAAnB,EAAkCirG,EAA0Cz+C,CAAAA,GAA5E,CAAiFpsC,EAAA,CAAU,CAChHje,SAAU,CAAC,CADqG,CAAV,CAErGugB,CAFqG,CAEzF,CACbt+B,IAAKgxC,CADQ,CAEb1uB,UAAW0d,EAFE,CAFyF,CAAjF,CA5H+F,CAAxD,CAvyBhE,CA4+BIi4F,GACJO,QAAqD,EAAG,CACtD,IAAIC,EAAQ,EACZ,OAAO,CACL\/pI,GAAG,CAACkpI,CAAD,CAAa,CACd,MAAMc,EAAmBD,CAAA,CAAM,CAAN,CACrBb,EAAJ,GAAmBc,CAAnB,EACuB,IADvB,GACEA,CADF,EACoD,IAAK,EADzD,GAC+BA,CAD\/B,EAC8DA,CAAiB1lC,CAAAA,KAAjB,EAC9DylC,EAAA,CAAQhkF,EAAA,CAAkCgkF,CAAlC,CAAyCb,CAAzC,CACRa,EAAM1zC,CAAAA,OAAN,CAAc6yC,CAAd,CALc,CADX,CAQL96G,MAAM,CAAC86G,CAAD,CAAa,CACjB,IAAIe,CACJF,EAAA,CAAQhkF,EAAA,CAAkCgkF,CAAlC,CAAyCb,CAAzC,CACiB,KAAzB,IAACe,CAAD,CAAWF,CAAA,CAAM,CAAN,CAAX,GAA6C,IAAK,EAAlD,GAAiCE,CAAjC,EAAuDA,CAAQtzD,CAAAA,MAAR,EAHtC,CARd,CAF+C,CADX,EA5+B7C;AA8gCIuzD,GAAiBztI,EAAA,CAAQ,CAAR,CA9gCrB,CAghCI0tI,GAAsC,CACxCj3F,QAAS,CAAA,CAD+B,CAExCC,WAAY,CAAA,CAF4B,CAhhC1C,CAqhCI,CAACi3F,EAAD,CAAmCC,EAAnC,CAAwEC,EAAxE,CAAA,CAAuH7oF,EAAA,CADpF8oF,kBACoF,CArhC3H,CAshCI,CAACC,EAAD,CAAsDC,EAAtD,CAAA,CAAkGx8F,EAAA,CAF\/Ds8F,kBAE+D,CAA2E,CAC\/KD,EAD+K,CAA3E,CAthCtG,CAyhCI,CAACI,EAAD,CAA4CC,EAA5C,CAAA,CAA2FH,EAAA,CALxDD,kBAKwD,CAzhC\/F,CA0hCIK,GAA4D,GAAIV,EAAe3+F,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EACtE,GAAI6nF,EAAeh9G,CAAAA,aAAnB,EAAkCk9G,EAAiCv7F,CAAAA,QAAnE,CAA6E,CAClG\/7B,MAAO9J,CAAM6hI,CAAAA,uBADqF,CAA7E,CAEJ,GAAIX,EAAeh9G,CAAAA,aAAnB,EAAkCk9G,EAAiCxnF,CAAAA,IAAnE,CAAyE,CAC1F9vC,MAAO9J,CAAM6hI,CAAAA,uBAD6E,CAAzE,CAEA,GAAIX,EAAeh9G,CAAAA,aAAnB,EAAkC49G,EAAlC,CAA8Ex9F,EAAA,CAAU,EAAV,CAActkC,CAAd,CAAqB,CACpHsI,IAAK+wC,CAD+G,CAArB,CAA9E,CAFA,CAFI,CADuC,CA1hChE,CAmiCIyoF,GAA6D,GAAIZ,EAAe3+F,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MACpG,CAAE,wBAAAwoF,CAAF,CAA2B,YAAAzkF,CAA3B,CAAwC,KAAAqiF,EAAA,CAAO,CAAA,CAA\/C,CAAsD,IAAApiF,EAAtD,CAA2D,iBAAkB0kF,EAA7E,CAAmG,wBAAAC,EAAnG,CAA4H,yBAAAC,EAA5H;AAAsJ,aAAAC,EAAtJ,CAAA,CAAPliI,CAD2G,CACwEmiI,GAAan+F,EAAA,CAAhMhkC,CAAgM,CAAe,6HAAA,CAAA,KAAA,CAAA,GAAA,CAAf,CADrF,CAEjHsI,GAAM,GAAI44H,EAAe33G,CAAAA,MAAnB,EAA2B,IAA3B,CACN+vB,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwD\/wC,EAAxD,CACrB,OAAMjR,GAAYgjD,EAAA,CAA0CgD,EAA1C,CAAlB,CACM,CAAC+kF,EAAA,CAAmB,IAApB,CAA0BC,EAA1B,CAAA,CAAiDzsF,EAAA,CAAyC,CAC9F91C,KAAMiiI,EADwF,CAE9FlsF,YAAamsF,EAFiF,CAG9FlsF,SAAUmsF,EAHoF,CAAzC,CADvD,CAMM,CAACK,EAAD,CAAmBC,EAAnB,CAAA,CAA0C,GAAIrB,EAAe1lG,CAAAA,QAAnB,EAA6B,CAAA,CAA7B,CANhD,CAOMgnG,GAAmB36F,EAAA,CAA0Cq6F,EAA1C,CAPzB,CAQMnoF,GAAWsnF,EAAA,CAAoCQ,CAApC,CARjB,CASMY,GAAkB,GAAIvB,EAAe33G,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CATxB,CAUM,CAACm5G,EAAD,CAAsBC,EAAtB,CAAA,CAAgD,GAAIzB,EAAe1lG,CAAAA,QAAnB,EAA6B,CAA7B,CACtD,IAAI0lG,EAAex1G,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,MAAM1e,GAAO1E,EAAI4hB,CAAAA,OACjB,IAAIld,EAAJ,CAEE,MADAA,GAAKmX,CAAAA,gBAAL,CAtCkCy+G,+BAsClC,CAAyDJ,EAAzD,CACO,CAAA,EAAA,EAAMx1H,EAAK6c,CAAAA,mBAAL,CAvCqB+4G,+BAuCrB;AAA4DJ,EAA5D,CAJmB,CAApC,CAMG,CACDA,EADC,CANH,CASA,OAAuB,GAAItB,EAAeh9G,CAAAA,aAAnB,EAAkCw9G,EAAlC,CAA6E,CAClG53H,MAAO+3H,CAD2F,CAElGzkF,YAAAA,CAFkG,CAGlGC,IAAKhmD,EAH6F,CAIlGooI,KAAAA,EAJkG,CAKlG2C,iBAAAA,EALkG,CAMlGS,YAAa,GAAI3B,EAAe31G,CAAAA,WAAnB,EACVu3G,EAAD,EAAeT,EAAA,CAAoBS,EAApB,CADJ,CAEX,CACET,EADF,CAFW,CANqF,CAYlGU,eAAgB,GAAI7B,EAAe31G,CAAAA,WAAnB,EACd,EAAA,EAAMg3G,EAAA,CAAoB,CAAA,CAApB,CADQ,CAEd,EAFc,CAZkF,CAgBlGS,mBAAoB,GAAI9B,EAAe31G,CAAAA,WAAnB,EAClB,EAAA,EAAMo3G,EAAA,CACHM,EAAD,EAAeA,EAAf,CAA2B,CADvB,CADY,CAIlB,EAJkB,CAhB8E,CAsBlGC,sBAAuB,GAAIhC,EAAe31G,CAAAA,WAAnB,EACrB,EAAA,EAAMo3G,EAAA,CACHM,EAAD,EAAeA,EAAf,CAA2B,CADvB,CADe,CAIrB,EAJqB,CAtB2E,CAA7E,CA4BJ,GAAI\/B,EAAeh9G,CAAAA,aAAnB,EAAkCirG,EAA0Cz+C,CAAAA,GAA5E,CAAiFpsC,EAAA,CAAU,CAC5Gje,SAAUi8G,EAAA,EAA4C,CAA5C,GAAoBI,EAApB,CAAgD,CAAC,CAAjD,CAAqD,CAD6C,CAE5G,mBAAoBtlF,CAFwF,CAAV,CAGjG+kF,EAHiG,CAGrF,CACb75H,IAAKgxC,CADQ,CAEbh0B,MAAOhqB,EAAA,CAAe,CACpB6nI,QAAS,MADW,CAAf,CAEJnjI,CAAMslB,CAAAA,KAFF,CAFM,CAKb89G,YAAa7+F,EAAA,CAA0CvkC,CAAMojI,CAAAA,WAAhD,CAA6D,EAAA,EAAM,CAC9EX,EAAgBv4G,CAAAA,OAAhB,CAA0B,CAAA,CADoD,CAAnE,CALA,CAQbswG,QAASj2F,EAAA,CAA0CvkC,CAAMw6H,CAAAA,OAAhD;AAA0DhpG,EAAD,EAAW,CAC3E,IAAM6xG,GAAkB,CAACZ,EAAgBv4G,CAAAA,OACzC,IAAIsH,EAAM3xB,CAAAA,MAAV,GAAqB2xB,EAAMjH,CAAAA,aAA3B,EAA4C84G,EAA5C,EAA+D,CAACf,EAAhE,GACQgB,EAEF,CAFoB,IAAIv5F,WAAJ,CAtFQ64F,+BAsFR,CAAmDzB,EAAnD,CAEpB,CADJ3vG,EAAMjH,CAAAA,aAAcqd,CAAAA,aAApB,CAAkC07F,EAAlC,CACI,CAAA,CAACA,EAAgB1+F,CAAAA,gBAHvB,EAGyC,CAC\/BuV,EAAAA,CAAQJ,EAAA,EAAWv\/C,CAAAA,MAAX,CACXwiD,EAAD,EAAUA,EAAKumF,CAAAA,SADH,CAGRC,GAAAA,CAAarpF,EAAMwF,CAAAA,IAAN,CAChB3C,EAAD,EAAUA,EAAKu6D,CAAAA,MADE,CAGnB,OAAM1yD,GAAc1K,EAAMwF,CAAAA,IAAN,CACjB3C,EAAD,EAAUA,EAAKjgC,CAAAA,EAAf,GAAsBqlH,EADJ,CAQdqB,GAAAA,CALiB,CACrBD,EADqB,CAErB3+E,EAFqB,CAGrB,GAAG1K,EAHkB,CAIrB3\/C,CAAAA,MAJqBkpI,CAIdjiH,OAJciiH,CAKehpI,CAAAA,GAAf,CACpBsiD,EAAD,EAAUA,EAAK10C,CAAAA,GAAI4hB,CAAAA,OADE,CAGvBqzB,GAAA,CAAiCkmF,EAAjC,CAlBqC,CAqBzChB,EAAgBv4G,CAAAA,OAAhB,CAA0B,CAAA,CA1BiD,CAApE,CARI,CAoCbwwG,OAAQn2F,EAAA,CACNvkC,CAAM06H,CAAAA,MADA,CAEN,EAAA,EAAM6H,EAAA,CAAoB,CAAA,CAApB,CAFA,CApCK,CAHqF,CAAjF,CA5BI,CAxBgG,CAAxD,CAniCjE,CAqoCIoB,GAA2D,GAAIzC,EAAe3+F,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MAClG,CAAE,wBAAAwoF,CAAF,CAA2B,UAAA0B,CAAA,CAAY,CAAA,CAAvC,CAA6C,OAAAhsB,EAAA,CAAS,CAAA,CAAtD,CAAA,CAAPv3G,CADyG,CAC7B4jI,GAAY5\/F,EAAA,CAAxFhkC,CAAwF,CAAe,CAAC,yBAAD;AAA4B,WAA5B,CAAyC,QAAzC,CAAf,CADiB,CAE\/G4oB,GAAMwhB,EAAA,EAFyG,CAG\/Gx+B,GAAU+1H,EAAA,CAJoBkC,sBAIpB,CAA6EhC,CAA7E,CAHqG,CAI\/GiC,GAAmBl4H,EAAQw2H,CAAAA,gBAA3B0B,GAAgDl7G,EAJ+D,CAK\/GmxB,GAAWsnF,EAAA,CAAoCQ,CAApC,CALoG,CAM\/G,CAAE,mBAAAmB,EAAF,CAAsB,sBAAAE,EAAtB,CAAA,CAAgDt3H,EACtD,IAAIs1H,EAAex1G,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,GAAI63G,CAAJ,CAEE,MADAP,GAAA,EACO,CAAA,EAAA,EAAME,EAAA,EAHmB,CAApC,CAKG,CACDK,CADC,CAEDP,EAFC,CAGDE,EAHC,CALH,CAUA,OAAuB,GAAIhC,EAAeh9G,CAAAA,aAAnB,EAAkCk9G,EAAiCvnF,CAAAA,QAAnE,CAA6E,CAClG\/vC,MAAO+3H,CAD2F,CAElG9kH,GAAI6L,EAF8F,CAGlG26G,UAAAA,CAHkG,CAIlGhsB,OAAAA,EAJkG,CAA7E,CAKJ,GAAI2pB,EAAeh9G,CAAAA,aAAnB,EAAkCirG,EAA0C30C,CAAAA,IAA5E,CAAkFl2C,EAAA,CAAU,CAC7Gje,SAAUy9G,EAAA,CAAmB,CAAnB,CAAuB,CAAC,CAD2E,CAE7G,mBAAoBl4H,EAAQwxC,CAAAA,WAFiF,CAAV,CAGlGwmF,EAHkG,CAGvF,CACZt7H,IAAK+wC,CADO,CAEZ+pF,YAAa7+F,EAAA,CAA0CvkC,CAAMojI,CAAAA,WAAhD,CAA8D5xG,EAAD,EAAW,CACnF,GAAK+xG,CAAL,CAGE33H,EAAQi3H,CAAAA,WAAR,CAAoBj6G,EAApB,CAHF,KACE4I,GAAMjD,CAAAA,cAAN,EAFiF,CAAxE,CAFD,CAQZisG,QAASj2F,EAAA,CACPvkC,CAAMw6H,CAAAA,OADC,CAEP,EAAA,EAAM5uH,EAAQi3H,CAAAA,WAAR,CAAoBj6G,EAApB,CAFC,CARG;AAYZgC,UAAW2Z,EAAA,CAA0CvkC,CAAM4qB,CAAAA,SAAhD,CAA4D4G,EAAD,EAAW,CAC\/E,GAAkB,KAAlB,GAAIA,EAAMtxB,CAAAA,GAAV,EAA2BsxB,EAAM+H,CAAAA,QAAjC,CACE3tB,EAAQm3H,CAAAA,cAAR,EADF,KAIA,IAAIvxG,EAAM3xB,CAAAA,MAAV,GAAqB2xB,EAAMjH,CAAAA,aAA3B,CAAA,CAEA,IAAMw5G,GAAc5mF,EAAA,CAAqC3rB,EAArC,CAA4C5lB,EAAQwxC,CAAAA,WAApD,CAAiExxC,EAAQyxC,CAAAA,GAAzE,CACpB,IAAoB,IAAK,EAAzB,GAAI0mF,EAAJ,CAA4B,CAC1BvyG,EAAMjD,CAAAA,cAAN,EAIA,KAAIk1G,GAHU1pF,EAAA,EAAWv\/C,CAAAA,MAAX2\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\/CIqyI,GAAU\/gE,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA\/\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\/F,EAAA,CAAQ,CAAR,CADD,CAELr\/F,IAAKq\/F,EAAA,CAAQ,CAAR,CAFA,CAGL\/5E,MAAO+5E,EAAA,CAAQ,CAAR,CAHF,CAILvrC,IAAK\/kF,IAAKC,CAAAA,GAAL,CAAS,CAAT,CALWwH,MAAOmtI,CAAAA,UAKlB,CANazlH,QAASkrB,CAAAA,eAAgBoB,CAAAA,WAMtC;AAA0C60E,EAAA,CAAQ,CAAR,CAA1C,CAAuDA,EAAA,CAAQ,CAAR,CAAvD,CAJA,CANP,CA8BE,MAAO,GAD4B,CAA3B,CAEP,CAAC+jB,CAAD,CAFO,CAGV,OAAOrB,GAAQ5jH,CAAAA,aAAR,CAAsB8kH,EAAtB,CAA6B,CAAE57G,OAAQ67G,EAAA,CAAUpvD,CAAV,CAAe,CAAC2vD,CAAhB,CAA4BL,CAA5B,CAAsCM,CAAD,CAA8B,EAA9B,CAAe,YAApD,CAAV,CAA7B,CAL6B,CA\/ItC,CAwJIE,GAAmB,CAAA,CACvB,IAAsB,WAAtB,GAAI,MAAOptI,OAAX,CACE,GAAI,CACF,IAAAqI,GAAUrH,MAAOe,CAAAA,cAAP,CAAsB,EAAtB,CAA0B,SAA1B,CAAqC,CAC7C4I,IAAKA,QAAQ,EAAG,CAEd,MADAyiI,GACA,CADmB,CAAA,CADL,CAD6B,CAArC,CAMVptI,OAAO4nB,CAAAA,gBAAP,CAAwB,MAAxB,CAAgCvf,EAAhC,CAAyCA,EAAzC,CACArI,OAAOstB,CAAAA,mBAAP,CAA2B,MAA3B,CAAmCjlB,EAAnC,CAA4CA,EAA5C,CARE,CASF,MAAOmF,CAAP,CAAY,CACZ4\/H,EAAA,CAAmB,CAAA,CADP,CAIhB,IACIC,GAAaD,EAAA,CAAmB,CAAEz4G,QAAS,CAAA,CAAX,CAAnB,CAAwC,CAAA,CADzD,CAOI24G,GAAuBA,QAAQ,CAAC78H,CAAD,CAAO6mB,CAAP,CAAiB,CAClD,IAAIqhB,EAAU34C,MAAO+wC,CAAAA,gBAAP,CAAwBtgC,CAAxB,CACd,OAA6B,QAA7B,GAAOkoC,CAAA,CAAQrhB,CAAR,CAAP,EAAyC,EAAEqhB,CAAQ+gE,CAAAA,SAAV,GAAwB\/gE,CAAQ40F,CAAAA,SAAhC,EAJjB,UAIiB,GAAmE98H,CAJhGy2B,CAAAA,OAI6B,EAAkG,SAAlG,GAA4EyR,CAAA,CAAQrhB,CAAR,CAA5E,CAFS,CAPpD,CAiBIk2G,GAA0BA,QAAQ,CAAClyB,CAAD,CAAO7qG,CAAP,CAAa,CAEjD,EAAG,CACyB,WAA1B;AAAI,MAAOohC,WAAX,EAAyClkB,CAAzC,WAA4DkkB,WAA5D,GACElkB,CADF,CACYA,CAAQ2lB,CAAAA,IADpB,CAIA,IADmBm6F,EAAAC,CAAuBpyB,CAAvBoyB,CAA6B\/\/G,CAA7B+\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\/B,CAAG,CAAH,CA8EhC,OAAO,GADwD,CAA\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\/I,CAA+J,kBAAAymF,EAA\/J,CAAkL,UAAAC,EAAlL,CAA6L,qBAAAue,EAA7L,CAAA,CAAPxuI,CADsG,CAC4Hw1H,GAAexxF,EAAA,CAAjPhkC,CAAiP,CAAe,8LAAA,CAAA,KAAA,CAAA,GAAA,CAAf,CAD3I,CAE5G4L,GAAU2hI,EAAA,CAvDuBS,aAuDvB,CAAyEL,CAAzE,CAFkG,CAG5GO,GAAcT,EAAA,CAxDmBO,aAwDnB,CAA6EL,CAA7E,CAH8F,CAI5G7T,GAAcsT,EAAA,CAAqCO,CAArC,CAJ8F,CAK5GgB,GAAwBtB,EAAA,CAA+CM,CAA\/C,CALoF,CAM5G5zF,GAAWgzF,EAAA,CAAoCY,CAApC,CANiG,CAO5G,CAACiB,EAAD,CAAgBC,EAAhB,CAAA,CAAoC,GAAIxP,EAAe7jG,CAAAA,QAAnB,EAA6B,IAA7B,CAPwE,CAQ5GszG,GAAa,GAAIzP,EAAe91G,CAAAA,MAAnB,EAA2B,IAA3B,CACb+vB,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwDy1F,EAAxD,CAAoEljI,EAAQmjI,CAAAA,eAA5E,CACrB,OAAMvqF,GAAW,GAAI66E,EAAe91G,CAAAA,MAAnB,EAA2B,CAA3B,CAAjB;AACM+6B,GAAY,GAAI+6E,EAAe91G,CAAAA,MAAnB,EAA2B,EAA3B,CADlB,CAEMylH,GAAuB,GAAI3P,EAAe91G,CAAAA,MAAnB,EAA2B,CAA3B,CAF7B,CAGM0lH,GAAwB,GAAI5P,EAAe91G,CAAAA,MAAnB,EAA2B,IAA3B,CAH9B,CAIM2lH,GAAgB,GAAI7P,EAAe91G,CAAAA,MAAnB,EAA2B,OAA3B,CAJtB,CAKM4lH,GAAkB,GAAI9P,EAAe91G,CAAAA,MAAnB,EAA2B,CAA3B,CALxB,CAMM6lH,GAAoBZ,EAAA,CAhLF9B,EAgLE,CAA6CrN,EAAevnF,CAAAA,QANtF,CAOMu3F,GAAyBb,EAAA,CAAuB,CACpDrH,GAAI5tF,EADgD,CAEpD2tF,eAAgB,CAAA,CAFoC,CAAvB,CAG3B,IAAK,EAVT,CAWMziF,GAAyBvkD,EAADukD,EAAS,CAAA,IACjC6qF,EADiC,CACpBC,EACXpwF,GAAAA,CAASmF,EAAUp6B,CAAAA,OAAnBi1B,CAA6Bj\/C,EACnC,OAAMi6C,GAAQJ,EAAA,EAAWv\/C,CAAAA,MAAX,CACXwiD,EAAD,EAAU,CAACA,EAAKd,CAAAA,QADJ,CAAd,CAGM2I,GAAc5gC,QAASsf,CAAAA,aAH7B,CAIM6b,GAEC,IAFc,IAACkwF,EAAD,CAAen1F,EAAMwF,CAAAA,IAAN,CACjC3C,EAAD,EAAUA,EAAK10C,CAAAA,GAAI4hB,CAAAA,OAAnB,GAA+B26B,EADG,CAAf,GAEU,IAAK,EAFf,GAENyqF,EAFM,CAEmB,IAAK,EAFxB,CAE4BA,EAAYpqF,CAAAA,SACvDlpC,GAAAA,CAASm+B,EAAMz\/C,CAAAA,GAAN,CACZsiD,EAAD,EAAUA,EAAKkI,CAAAA,SADF,CAGf,OAAMxF,GAAYR,EAAA,CAAmCljC,EAAnC,CAA2CmjC,EAA3C,CAAmDC,EAAnD,CAAlB,CACMowF,GAEC,IAFS,IAACD,EAAD,CAAgBp1F,EAAMwF,CAAAA,IAAN,CAC7B3C,EAAD,EAAUA,EAAKkI,CAAAA,SAAf,GAA6BxF,EADC,CAAhB,GAEgB,IAAK,EAFrB,GAED6vF,EAFC,CAEyB,IAAK,EAF9B,CAEkCA,EAAajnI,CAAAA,GAAI4hB,CAAAA,OAClEw6B,UAASA,GAAY,CAACvnD,EAAD,CAAQ,CAC5BmnD,EAAUp6B,CAAAA,OAAV;AAAoB\/sB,EACpBZ,OAAO2rB,CAAAA,YAAP,CAAoBs8B,EAASt6B,CAAAA,OAA7B,CACc,GAAd,GAAI\/sB,EAAJ,GACEqnD,EAASt6B,CAAAA,OADX,CACqB3tB,MAAOgV,CAAAA,UAAP,CACjB,EAAA,EAAMmzC,EAAA,CAAa,EAAb,CADW,CAEjB,GAFiB,CADrB,CAH4B,CAA7BA,CAAD,CAQGvF,EARH,CASIqwF,GAAJ,EACEj+H,UAAA,CACE,EAAA,EAAMi+H,EAAQnjH,CAAAA,KAAR,EADR,CA3BmC,CA+BvC,IAAIgzG,EAAe3zG,CAAAA,SAAnB,EAA8B,EAAA,EACrB,EAAA,EAAMnvB,MAAO2rB,CAAAA,YAAP,CAAoBs8B,EAASt6B,CAAAA,OAA7B,CADf,CAEG,EAFH,CAGAwwB,GAAA,EACA,OAAM+0F,GAA2B,GAAIpQ,EAAe9zG,CAAAA,WAAnB,EAAiCiG,EAAD,EAAW,CAAA,IACtEk+G,EADsE,CAC\/CC,EAD+C,CAGnE,EAAA,IAAAC,EAAA,CADiBV,EAAchlH,CAAAA,OAC\/B,IADwG,IAA5D,IAACwlH,EAAD,CAAyBT,EAAsB\/kH,CAAAA,OAA\/C,GAA8F,IAAK,EAAnG,GAAoEwlH,EAApE,CAAuG,IAAK,EAA5G,CAAgHA,EAAsBh8F,CAAAA,IAClL,EAAA,CA+RT,GA\/R4B,EA+R5B,CA\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\/+G,EAAMiH,CAAAA,OAAtB83G,EAAiC\/+G,EAAMyH,CAAAA,MAAvCs3G,EAAiD\/+G,EAAMkH,CAAAA,OAA7D,CACM83G,GAAsC,CAAtCA,GAAiBh\/G,EAAMtxB,CAAAA,GAAIrK,CAAAA,MAC7Bw6I,GAAJ,GACoB,KAElB,GAFI7+G,EAAMtxB,CAAAA,GAEV,EADEsxB,EAAMjD,CAAAA,cAAN,EACF,CAAI,CAACgiH,EAAL,EAAsBC,EAAtB,EACE\/rF,EAAA,CAAsBjzB,EAAMtxB,CAAAA,GAA5B,CAJJ,CAOIsxB,GAAM3xB,CAAAA,MAAV;AADgBivI,EAAW5kH,CAAAA,OAC3B,EAEK2iH,EAAsC7nH,CAAAA,QAAtC,CAA+CwM,EAAMtxB,CAAAA,GAArD,CAFL,GAIAsxB,EAAMjD,CAAAA,cAAN,EASA,CALMk1G,EAKN,CARc1pF,EAAA,EAAWv\/C,CAAAA,MAAX2\/C,CACX6C,EAAD,EAAU,CAACA,EAAKd,CAAAA,QADJ\/B,CAGez\/C,CAAAA,GAAN,CACpBsiD,EAAD,EAAUA,EAAK10C,CAAAA,GAAI4hB,CAAAA,OADE,CAKvB,CAFI0iH,EAAgC5nH,CAAAA,QAAhC,CAAyCwM,EAAMtxB,CAAAA,GAA\/C,CAEJ,EADEujI,EAAezvE,CAAAA,OAAf,EACF,CAAAhV,EAAA,CAAiCykF,EAAjC,CAbA,CAZsF,CAA7E,CALiB,CAgC5B\/I,OAAQn2F,EAAA,CAA0CvkC,CAAM06H,CAAAA,MAAhD,CAAyDlpG,EAAD,EAAW,CACpEA,EAAMjH,CAAAA,aAAcwC,CAAAA,QAApB,CAA6ByE,EAAM3xB,CAAAA,MAAnC,CAAL,GACEtD,MAAO2rB,CAAAA,YAAP,CAAoBs8B,EAASt6B,CAAAA,OAA7B,CACA,CAAAo6B,EAAUp6B,CAAAA,OAAV,CAAoB,EAFtB,CADyE,CAAnE,CAhCoB,CAsC5BO,cAAe8Z,EAAA,CAA0CvkC,CAAMyqB,CAAAA,aAAhD,CAA+Do1B,EAAA,CAAiCruB,EAAD,EAAW,CAEvH,MAAMi\/G,GAAqBtB,EAAgBjlH,CAAAA,OAArCumH,GAAiDj\/G,EAAM9C,CAAAA,OACzD8C,GAAMjH,CAAAA,aAAcwC,CAAAA,QAApB,CAFWyE,EAAM3xB,CAAAA,MAEjB,CAAJ,EAA4C4wI,EAA5C,GAEEvB,EAAchlH,CAAAA,OACd,CAFesH,EAAM9C,CAAAA,OAANgiH,CAAgBvB,EAAgBjlH,CAAAA,OAAhCwmH,CAA0C,OAA1CA,CAAoD,MAEnE,CAAAvB,EAAgBjlH,CAAAA,OAAhB,CAA0BsH,EAAM9C,CAAAA,OAHlC,CAHuH,CAA3C,CAA\/D,CAtCa,CANmE,CAA7E,CAZD,CARA,CAT6F,CAA7F,CA5BI,CA7D2F,CAAxD,CAhI5D,CA+SIiiH,GAA4D,GAAItR,EAAe98F,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MACnG,CAAE,SAAA6C,CAAA;AAAW,CAAA,CAAb,CAAoB,SAAA00F,CAApB,CAAA,CAAP5wI,CAD0G,CAC7D4jI,GAAY5\/F,EAAA,CAAzDhkC,CAAyD,CAAe,CAAC,UAAD,CAAa,UAAb,CAAf,CADiD,CAEhHsI,GAAM,GAAI+2H,EAAe91G,CAAAA,MAAnB,EAA2B,IAA3B,CAF0G,CAGhH2kH,GAAcT,EAAA,CALgBoD,UAKhB,CAA0E7wI,CAAM2tI,CAAAA,WAAhF,CAHkG,CAIhHrW,GAAiByW,EAAA,CANa8C,UAMb,CAA6E7wI,CAAM2tI,CAAAA,WAAnF,CACjBr0F,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwD\/wC,EAAxD,CACrB,OAAM0xH,GAAmB,GAAIqF,EAAe91G,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CAsBzB,OAAuB,GAAI81G,EAAen7G,CAAAA,aAAnB,EAAkC4sH,EAAlC,CAAsExsG,EAAA,CAAU,EAAV,CAAcs\/F,EAAd,CAAyB,CACpHt7H,IAAKgxC,CAD+G,CAEpH4C,SAAAA,CAFoH,CAGpHqG,QAAShe,EAAA,CAA0CvkC,CAAMuiD,CAAAA,OAAhD,CAxBU,EAAAwuF,EAAM,CACzB,MAAMC,GAAW1oI,EAAI4hB,CAAAA,OACrB,IAAI,CAACgyB,CAAL,EAAiB80F,EAAjB,CAA2B,CACzB,MAAMC,GAAkB,IAAIlnG,WAAJ,CAXUmnG,iBAWV,CAAmD,CACzEhnG,QAAS,CAAA,CADgE,CAEzEC,WAAY,CAAA,CAF6D,CAAnD,CAIxB6mG,GAAS7sH,CAAAA,gBAAT,CAfkC+sH,iBAelC,CAEG1\/G,EAAD,EAAwB,IAAb,GAAAo\/G,CAAA,EAAkC,IAAK,EAAvC,GAAqBA,CAArB,CAA2C,IAAK,EAAhD,CAAoDA,CAAA,CAASp\/G,EAAT,CAFjE,CAGE,CACE50B,KAAM,CAAA,CADR,CAHF,CAOA6qC,GAAA,CAA0CupG,EAA1C,CAAoDC,EAApD,CACA,IAAIA,EAAgBrsG,CAAAA,gBAApB,CACEo1F,EAAiB9vG,CAAAA,OAAjB,CAA2B,CAAA,CAD7B,KAGEgkH,GAAYvT,CAAAA,OAAZ,EAhBuB,CAFF,CAwBhB,CAH2G;AAIpHtwG,cAAgBmH,EAADnH,EAAW,CACxB,IAAI8mH,EAC6C,KAAjD,IAACA,EAAD,CAAwBnxI,CAAMqqB,CAAAA,aAA9B,GAAkF,IAAK,EAAvF,GAAyD8mH,EAAzD,EAA4FA,EAAqBxzI,CAAAA,IAArB,CAA0BqC,CAA1B,CAAiCwxB,EAAjC,CAC5FwoG,GAAiB9vG,CAAAA,OAAjB,CAA2B,CAAA,CAHH,CAJ0F,CASpHR,YAAa6a,EAAA,CAA0CvkC,CAAM0pB,CAAAA,WAAhD,CAA8D8H,EAAD,EAAW,CACnF,IAAIG,EACCqoG,GAAiB9vG,CAAAA,OAAtB,EACmD,IADnD,IACGyH,EADH,CAC0BH,EAAMjH,CAAAA,aADhC,GACoF,IAAK,EADzF,GAC2DoH,EAD3D,EAC8FA,EAAqBy\/G,CAAAA,KAArB,EAHX,CAAxE,CATuG,CAcpHxmH,UAAW2Z,EAAA,CAA0CvkC,CAAM4qB,CAAAA,SAAhD,CAA4D4G,EAAD,EAAW,CAC\/E,MAAM6\/G,GAAqD,EAArDA,GAAgB\/Z,EAAehzE,CAAAA,SAAUp6B,CAAAA,OAC3CgyB,EAAJ,EAAgBm1F,EAAhB,EAA+C,GAA\/C,GAAiC7\/G,EAAMtxB,CAAAA,GAAvC,EAEI,CAAAysI,EAAqC3nH,CAAAA,QAArC,CAA8CwM,EAAMtxB,CAAAA,GAApD,CAFJ,GAGEsxB,EAAMjH,CAAAA,aAAc6mH,CAAAA,KAApB,EACA,CAAA5\/G,EAAMjD,CAAAA,cAAN,EAJF,CAF+E,CAAtE,CAdyG,CAAzB,CAAtE,CA5B+F,CAAxD,CA\/ShE,CAoWIuiH,GAAqD,GAAIzR,EAAe98F,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MAC5F,CAAE,YAAAs0F,CAAF,CAAe,SAAAzxF,CAAA,CAAW,CAAA,CAA1B,CAAiC,UAAAgJ,EAAjC,CAAA,CAAPllD,CADmG,CACxC4jI,GAAY5\/F,EAAA,CAAvEhkC,CAAuE,CAAe,CAAC,aAAD,CAAgB,UAAhB,CAA4B,WAA5B,CAAf,CAD4B,CAEzGs3H,GAAiByW,EAAA,CAzDa8C,UAyDb;AAA6ElD,CAA7E,CAFwF,CAGzGgB,GAAwBtB,EAAA,CAA+CM,CAA\/C,CAHiF,CAIzGrlI,GAAM,GAAI+2H,EAAe91G,CAAAA,MAAnB,EAA2B,IAA3B,CACN+vB,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwD\/wC,EAAxD,CACrB,OAAM,CAACgpI,EAAD,CAAYC,EAAZ,CAAA,CAA4B,GAAIlS,EAAe7jG,CAAAA,QAAnB,EAA6B,CAAA,CAA7B,CAAlC,CACM,CAACg2G,EAAD,CAAcC,EAAd,CAAA,CAAgC,GAAIpS,EAAe7jG,CAAAA,QAAnB,EAA6B,EAA7B,CACtC,IAAI6jG,EAAe3zG,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,MAAMslH,GAAW1oI,EAAI4hB,CAAAA,OACrB,IAAI8mH,EAAJ,CAAc,CACZ,IAAIU,EACJD,GAAA,CAA0I9uE,CAAvE,IAAnD,IAAC+uE,EAAD,CAAyBV,EAASQ,CAAAA,WAAlC,GAAqF,IAAK,EAA1F,GAA2DE,EAA3D,CAA8FA,EAA9F,CAAsH,EAAI\/uE,EAAAA,IAA3H,EAAf,CAFY,CAFoB,CAApC,CAMG,CACDihE,EAAUzgG,CAAAA,QADT,CANH,CASA,OAAuB,GAAIk8F,EAAen7G,CAAAA,aAAnB,EAAkC4oH,EAAiCjzF,CAAAA,QAAnE,CAA6E,CAClG\/vC,MAAO6jI,CAD2F,CAElGzxF,SAAAA,CAFkG,CAGlGgJ,UAAyB,IAAd,GAAAA,EAAA,EAAoC,IAAK,EAAzC,GAAsBA,EAAtB,CAA6CA,EAA7C,CAAyDssF,EAH8B,CAA7E,CAIJ,GAAInS,EAAen7G,CAAAA,aAAnB,EA1nC2By\/G,EA0nC3B,CAA6Er\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\/5C,EAAQ+5C,CAAAA,IAAR,CAAe\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\/B,CAA0E,CAC\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\/BsDwvH,CA+BtD,CA\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\/I,CAADk\/I,EACP,IAAGl\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\/B,CAA0E,CAC\/F90G,SAAU,CACQ,GAAIo1G,EAAqBr0G,CAAAA,GAAzB,EA\/C0B4yG,EA+C1B,CAAyE,CACvFp\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\/B,EAA3B,CAAjC,CAAoEA,EAApE,CAA2Eh\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\/F,EAAPw\/F,EAAmB7B,EAAA,CAAal2H,EAAb,CAAkB,CAAlB,CAAqB,CACrDu2H,OAAQ,CAAA,CAD6C,CAArB,CAZpB,CAedyB,aAAc,EAAAA,EAAM,CAACz\/F,EAAPy\/F,EAAmB9B,EAAA,CAAa9kJ,EAAb,CAAkBinB,EAAOnmB,CAAAA,MAAzB,CAAkC,CAAlC,CAAqC,CACpEqkJ,OAAQ,CAAA,CAD4D,CAArC,CAfnB,CAkBd0B,cAAe,CAAC,CAAE,MAAApqH,EAAF,CAAS,UAAWqqH,EAApB,CAAD,CAAAD,EAAyC,CACtD,GAAI,CAAC1\/F,EAAL,CAAe,CAEP4\/F,EAAAA,CADY9C,EAAgCh0H,CAAAA,QAAhC+2H,CAAyCvqH,EAAMtxB,CAAAA,GAA\/C67I,CACZD,EAAyBtqH,EAAM+H,CAAAA,QAA\/BuiH,EAA2C7C,EAAiCj0H,CAAAA,QAAjC,CAA0CwM,EAAMtxB,CAAAA,GAAhD,CAEjD,OAAMkgD,GAAU25F,EAAsB7vH,CAAAA,OAGtC2vH,GAAA,CAFc79H,EAAA7e,CAAOijD,EAAPjjD,CAEd,CADwBwlD,EACxB,EAJmBm5F,EAAAE,CAAY,EAAZA,CAAiB,CAIpC,EAD4CH,EAC5C,CAAsCz7F,EAAtC,CAA+C,CAC7C85F,OAAQ,CAAA,CADqC,CAA\/C,CAPa,CADuC,CAlB1C,CAHwD,CAArD,CAFA,CAFA,CATI;AA+ChBc,EA\/CgB,EA+CCh\/H,EAAOthB,CAAAA,GAAP,CACtB,CAACyC,EAAD,CAAQ0b,EAAR,CAAA,EAAmC,GAAIkgI,EAAe70H,CAAAA,aAAnB,EAAkC+3H,EAAlC,CAAqE,CACtG\/7I,IAAK2Y,EADiG,CAEtG5a,KAAMA,EAAA,CAAOA,EAAP,EAA+B,CAAhB,CAAA+d,EAAOnmB,CAAAA,MAAP,CAAoB,IAApB,CAA2B,EAA1C,EAAgD,IAAK,EAF2C,CAGtGsH,MAAAA,EAHsG,CAArE,CADb,CA\/CD,CAhE+F,CAAxD,CAniBhE,CA0pBI,CAAC++I,EAAD,CAAkDC,EAAlD,CAAA,CAAuG5C,EAAA,CA7HnED,QA6HmE,CAA6E,CACtL8C,UAAW,MAD2K,CAEtLC,QAAS,OAF6K,CAGtL5lJ,KAAM,OAHgL,CAItLY,UAAW,CAJ2K,CAA7E,CA1pB3G,CAgqBI6jJ,GAAyD,GAAInC,EAAex2G,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAWnHijG,QAASA,EAAmB,CAAClgB,EAAD,CAAkB,CAC5C,MAAM50G,GAAO+0H,EAAQryH,CAAAA,OAAf1C,EAA0BozH,EAAOnzH,CAAAA,qBAAP,EAAhC,CAYMtqB,GAAQ2jD,EAAA,CAXAn5B,CACZ,CADYA,CAEZH,EAAK7xB,CAAAA,KAFOgyB,CAWA,CAPC60H,EAAAv7F,CAAoB,CACjCt9B,CADiC,CAEjC5uB,EAFiC,CAApBksD,CAGX,CACFlsD,EADE,CAEF4uB,CAFE,CAIU,CACd44H,GAAQryH,CAAAA,OAAR,CAAkB1C,EAClB,OAAOrqB,GAAA,CAAMi\/H,EAAN,CAAwB50G,EAAKxB,CAAAA,IAA7B,CAfqC,CAXqE,MAChG,CAAE,IAAArC,CAAF,CAAO,IAAA5uB,EAAP,CAAY,IAAAsoD,EAAZ,CAAiB,SAAAq9F,EAAjB,CAA2B,aAAAa,EAA3B,CAAyC,YAAAC,EAAzC,CAAsD,WAAAC,EAAtD,CAAkE,cAAAG,EAAlE,CAAA,CAAP57I,CADuG,CACP26I,GAAc32G,EAAA,CAA9GhkC,CAA8G,CAAe,wEAAA,CAAA,KAAA,CAAA,GAAA,CAAf,CADP;AAE7G,CAAC46I,EAAD,CAASC,EAAT,CAAA,CAAsB,GAAI9B,EAAev9G,CAAAA,QAAnB,EAA6B,IAA7B,CACtB8d,EAAAA,CAAevU,EAAA,CACnBsU,CADmB,CAElBrsC,EAAD,EAAU6tI,EAAA,CAAU7tI,EAAV,CAFS,CAIrB,OAAMuvI,GAAU,GAAIxD,EAAexvH,CAAAA,MAAnB,GAAhB,CACMlyB,GAAYgjD,EAAA,CAA0CgD,EAA1C,CADlB,CAEMo\/F,GAA+B,KAA\/BA,GAAiBplJ,EAFvB,CAGMmlJ,GAAoBC,EAApBD,EAAsC,CAAC9B,EAAvC8B,EAAmD,CAACC,EAApDD,EAAsE9B,EAkB5E,OAAuB,GAAI3B,EAAe70H,CAAAA,aAAnB,EAAkCg4H,EAAlC,CAAmF,CACxGpyI,MAAO9J,CAAMs7I,CAAAA,aAD2F,CAExGc,UAAWI,EAAA,CAAoB,MAApB,CAA6B,OAFgE,CAGxGH,QAASG,EAAA,CAAoB,OAApB,CAA8B,MAHiE,CAIxGnlJ,UAAWmlJ,EAAA,CAAoB,CAApB,CAAwB,CAAC,CAJoE,CAKxG\/lJ,KAAM,OALkG,CAAnF,CAMJ,GAAIsiJ,EAAe70H,CAAAA,aAAnB,EAAkCw4H,EAAlC,CAAoEp4G,EAAA,CAAU,CAC\/F+Y,IAAKhmD,EAD0F,CAE\/F,mBAAoB,YAF2E,CAAV,CAGpFsjJ,EAHoF,CAGvE,CACdryI,IAAKgxC,CADS,CAEdh0B,MAAOjqB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBq\/I,EAAYr1H,CAAAA,KAA\/B,CAAd,CAAqD,CAC1D,CAAC,gCAAD,EAAoC,kBADsB,CAArD,CAFO,CAKdi2H,aAAe\/pH,EAAD+pH,EAAW,CACjBp+I,EAAAA,CAAQm\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\/I,EAAYr1H,CAAAA,KAA\/B,CAAd,CAAqD,CAC1D,CAAC,gCAAD,EAAoC,iBADsB,CAArD,CAFO,CAKdi2H,aAAe\/pH,EAAD+pH,EAAW,CACjBp+I,EAAAA,CAAQm\/I,CAAA,CAAoB9qH,EAAM7C,CAAAA,OAA1B,CACG,KAAjB;AAAA4sH,EAAA,EAA0C,IAAK,EAA\/C,GAAyBA,EAAzB,EAAoDA,EAAA,CAAap+I,EAAb,CAF7B,CALX,CASdq+I,YAAchqH,EAADgqH,EAAW,CAChBr+I,EAAAA,CAAQm\/I,CAAA,CAAoB9qH,EAAM7C,CAAAA,OAA1B,CACE,KAAhB,GAAA6sH,EAAA,EAAwC,IAAK,EAA7C,GAAwBA,EAAxB,EAAkDA,EAAA,CAAYr+I,EAAZ,CAF5B,CATV,CAads+I,WAAY,EAAAA,EAAM,CAChBc,EAAQryH,CAAAA,OAAR,CAAkB,IAAK,EACR,KAAf,GAAAuxH,EAAA,EAAsC,IAAK,EAA3C,GAAuBA,EAAvB,EAAgDA,EAAA,EAFhC,CAbJ,CAiBdG,cAAgBpqH,EAADoqH,EAAW,CAExB,MAAMe,GAAYzD,EAAA,CADK4D,EAAAF,CAAsB,aAAtBA,CAAsC,UAC3C,CAAgD53H,CAAAA,QAAhD,CAAyDwM,EAAMtxB,CAAAA,GAA\/D,CACA,KAAlB,GAAA07I,EAAA,EAA4C,IAAK,EAAjD,GAA0BA,EAA1B,EAAsDA,EAAA,CAAc,CAClEpqH,MAAAA,EADkE,CAElEn6B,UAAWslJ,EAAA,CAAY,CAAC,CAAb,CAAiB,CAFsC,CAAd,CAH9B,CAjBZ,CAFuE,CAApE,CANI,CAvB0F,CAAxD,CAhuB3D,CA0xBID,GAAmD,GAAI3D,EAAex2G,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MAC1F,CAAE,cAAAiiG,CAAF,CAAiB,aAAAC,CAAjB,CAA+B,YAAAC,EAA\/B,CAA4C,WAAAC,EAA5C,CAAwD,cAAAC,EAAxD,CAAuE,aAAAC,EAAvE,CAAqF,cAAAC,EAArF,CAAA,CAAP57I,CADiG,CACkB26I,GAAc32G,EAAA,CAAjIhkC,CAAiI,CAAe,4FAAA,CAAA,KAAA,CAAA,GAAA,CAAf,CADhC;AAEvG4L,GAAU6tI,EAAA,CA\/PsBH,QA+PtB,CAA0EgC,CAA1E,CAChB,OAAuB,GAAIvC,EAAe70H,CAAAA,aAAnB,EAAkCirG,EAA0C30C,CAAAA,IAA5E,CAAkFl2C,EAAA,CAAU,EAAV,CAAcq2G,EAAd,CAA2B,CAClIryI,IAAK+wC,CAD6H,CAElIzuB,UAAW2Z,EAAA,CAA0CvkC,CAAM4qB,CAAAA,SAAhD,CAA4D4G,EAAD,EAAW,CAC7D,MAAlB,GAAIA,EAAMtxB,CAAAA,GAAV,EACEw7I,EAAA,CAAclqH,EAAd,CACA,CAAAA,EAAMjD,CAAAA,cAAN,EAFF,EAGyB,KAAlB,GAAIiD,EAAMtxB,CAAAA,GAAV,EACLy7I,EAAA,CAAanqH,EAAb,CACA,CAAAA,EAAMjD,CAAAA,cAAN,EAFK,EAGIyqH,EAAgCx5I,CAAAA,MAAhC,CAAuCy5I,EAAvC,CAAyEj0H,CAAAA,QAAzE,CAAkFwM,EAAMtxB,CAAAA,GAAxF,CAHJ,GAIL07I,EAAA,CAAcpqH,EAAd,CACA,CAAAA,EAAMjD,CAAAA,cAAN,EALK,CAJwE,CAAtE,CAFuH,CAclIlE,cAAeka,EAAA,CAA0CvkC,CAAMqqB,CAAAA,aAAhD,CAAgEmH,EAAD,EAAW,CACvF,MAAM3xB,GAAS2xB,EAAM3xB,CAAAA,MACrBA,GAAO2qB,CAAAA,iBAAP,CAAyBgH,EAAMzH,CAAAA,SAA\/B,CACAyH,GAAMjD,CAAAA,cAAN,EACI3iB,GAAQyvI,CAAAA,MAAO3mI,CAAAA,GAAf,CAAmB7U,EAAnB,CAAJ,CACEA,EAAOwsB,CAAAA,KAAP,EADF,CAGEkvH,CAAA,CAAa\/pH,EAAb,CAPqF,CAA1E,CAdmH,CAuBlI\/G,cAAe8Z,EAAA,CAA0CvkC,CAAMyqB,CAAAA,aAAhD,CAAgE+G,EAAD,EAAW,CACxEA,EAAM3xB,CAAAA,MACVo8G,CAAAA,iBAAP,CAAyBzqF,EAAMzH,CAAAA,SAA\/B,CAAJ,EACEyxH,EAAA,CAAYhqH,EAAZ,CAHqF,CAA1E,CAvBmH,CA4BlI9H,YAAa6a,EAAA,CAA0CvkC,CAAM0pB,CAAAA,WAAhD;AAA8D8H,EAAD,EAAW,CACnF,MAAM3xB,GAAS2xB,EAAM3xB,CAAAA,MACjBA,GAAOo8G,CAAAA,iBAAP,CAAyBzqF,EAAMzH,CAAAA,SAA\/B,CAAJ,GACElqB,EAAOiqB,CAAAA,qBAAP,CAA6B0H,EAAMzH,CAAAA,SAAnC,CACA,CAAA0xH,EAAA,CAAWjqH,EAAX,CAFF,CAFmF,CAAxE,CA5BqH,CAA3B,CAAlF,CAHsF,CAAxD,CA1xBvD,CAm0BIurH,GAA4D,GAAIhE,EAAex2G,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,IACnG,CAAE,cAAAiiG,CAAF,CAAA,CAAPt7I,CAAgCg9I,EAAAA,CAAah5G,EAAA,CAA7ChkC,CAA6C,CAAe,CAAC,eAAD,CAAf,CACnD4L,EAAAA,CAAU6tI,EAAA,CAHqBwD,aAGrB,CAAyE3B,CAAzE,CAChB,OAAuB,GAAIvC,EAAe70H,CAAAA,aAAnB,EAAkCirG,EAA0C30C,CAAAA,IAA5E,CAAkFl2C,EAAA,CAAU,CACjH,gBAAiB14B,CAAQswC,CAAAA,QAAR,CAAmB,EAAnB,CAAwB,IAAK,EADmE,CAEjH,mBAAoBtwC,CAAQwxC,CAAAA,WAFqF,CAAV,CAGtG4\/F,CAHsG,CAG1F,CACb10I,IAAK+wC,CADQ,CAH0F,CAAlF,CAH+F,CAAxD,CAn0BhE,CA80BI6jG,GAA4D,GAAInE,EAAex2G,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,IACnG,CAAE,cAAAiiG,CAAF,CAAA,CAAPt7I,CAAZ,OAA4Cm9I,EAAan5G,EAAA,CAA7ChkC,CAA6C,CAAe,CAAC,eAAD,CAAf,CAAzD,CACM4L,GAAU6tI,EAAA,CAHqB2D,aAGrB,CAAyE9B,CAAzE,CACVl+F,EAAAA,CAAc++F,EAAA,CAJiBiB,aAIjB,CAAoF9B,CAApF,CACpB,KAAMhzI,GAAM,GAAIywI,EAAexvH,CAAAA,MAAnB,EAA2B,IAA3B,CACN+vB,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C;AAAwD\/wC,EAAxD,CACrB,KAAM+0I,GAAczxI,EAAQoQ,CAAAA,MAAOnmB,CAAAA,MAC7BynJ,GAAAA,CAAc1xI,EAAQoQ,CAAAA,MAAOthB,CAAAA,GAAf,CACjByC,EAAD,EAAWmjD,EAAA,CAA+CnjD,EAA\/C,CAAsDyO,EAAQ+X,CAAAA,GAA9D,CAAmE\/X,EAAQ7W,CAAAA,GAA3E,CADO,CAGdwoJ,GAAAA,CAA4B,CAAd,CAAAF,EAAA,CAAkBvoJ,IAAK6uB,CAAAA,GAAL,CAAS,GAAG25H,EAAZ,CAAlB,CAA6C,CAC3DE,GAAAA,CAAY,GAAZA,CAAkB1oJ,IAAKC,CAAAA,GAAL,CAAS,GAAGuoJ,EAAZ,CACxB,OAAuB,GAAIvE,EAAe70H,CAAAA,aAAnB,EAAkCirG,EAA0C30C,CAAAA,IAA5E,CAAkFl2C,EAAA,CAAU,CACjH,mBAAoB14B,EAAQwxC,CAAAA,WADqF,CAEjH,gBAAiBxxC,EAAQswC,CAAAA,QAAR,CAAmB,EAAnB,CAAwB,IAAK,EAFmE,CAAV,CAGtGihG,CAHsG,CAG1F,CACb70I,IAAKgxC,CADQ,CAEbh0B,MAAOjqB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmB0E,CAAMslB,CAAAA,KAAzB,CAAd,CAA+C,CACpD,CAAC83B,CAAYg\/F,CAAAA,SAAb,EAAyBmB,EAAzB,CAAuC,GADa,CAEpD,CAACngG,CAAYi\/F,CAAAA,OAAb,EAAuBmB,EAAvB,CAAmC,GAFiB,CAA\/C,CAFM,CAH0F,CAAlF,CAZ+F,CAAxD,CA90BhE,CAs2BIC,GAA4D,GAAI1E,EAAex2G,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CACtH,MAAMU,EAAWq\/F,EAAA,CAAoCp5I,CAAMs7I,CAAAA,aAA1C,CAAjB,CACM,CAACoC,CAAD,CAAQC,EAAR,CAAA,CAAoB,GAAI5E,EAAev9G,CAAAA,QAAnB,EAA6B,IAA7B,CACpB8d,EAAAA,CAAevU,EAAA,CACnBsU,CADmB,CAElBrsC,EAAD,EAAU2wI,EAAA,CAAS3wI,EAAT,CAFS,CAIrB,OAAM6L,GAAS,GAAIkgI,EAAevvH,CAAAA,OAAnB,EACb,EAAA,EAAMk0H,CAAA,CAAQ3jG,CAAA,EAAW2xD,CAAAA,SAAX,CACX1uD,EAAD,EAAUA,EAAK10C,CAAAA,GAAI4hB,CAAAA,OAAnB,GAA+BwzH,CADnB,CAAR,CAEF,CAAC,CAHQ,CAIb,CACE3jG,CADF,CAEE2jG,CAFF,CAJa,CASf,OAAuB,GAAI3E,EAAe70H,CAAAA,aAAnB,EAAkC05H,EAAlC;AAAyEt5G,EAAA,CAAU,EAAV,CAActkC,CAAd,CAAqB,CACnHsI,IAAKgxC,CAD8G,CAEnH+V,MAAOx2C,EAF4G,CAArB,CAAzE,CAhB+F,CAAxD,CAt2BhE,CA23BI+kI,GAAwD,GAAI7E,EAAex2G,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MAC\/F,CAAE,cAAAiiG,CAAF,CAAiB,MAAOziI,CAAxB,CAAA,CAAP7Y,CADsG,CACvD69I,GAAa75G,EAAA,CAA5DhkC,CAA4D,CAAe,CAAC,eAAD,CAAkB,OAAlB,CAAf,CAD0C,CAE5G4L,GAAU6tI,EAAA,CAxBqBqE,aAwBrB,CAAyExC,CAAzE,CAFkG,CAG5Gl+F,GAAc++F,EAAA,CAzBiB2B,aAyBjB,CAAoFxC,CAApF,CAH8F,CAI5G,CAACoC,EAAD,CAAQC,EAAR,CAAA,CAAoB,GAAI5E,EAAev9G,CAAAA,QAAnB,EAA6B,IAA7B,CACpB8d,EAAAA,CAAevU,EAAA,CACnBsU,CADmB,CAElBrsC,EAAD,EAAU2wI,EAAA,CAAS3wI,EAAT,CAFS,CAIrB,KAAMvW,GAAOu8C,EAAA,CAA0C0qG,EAA1C,CACb,OAAMvgJ,GAAQyO,EAAQoQ,CAAAA,MAAR,CAAenD,CAAf,CAAd,CACMklI,GAAoB,IAAK,EAAf,GAAA5gJ,EAAA,CAAmB,CAAnB,CAAuBmjD,EAAA,CAA+CnjD,EAA\/C,CAAsDyO,EAAQ+X,CAAAA,GAA9D,CAAmE\/X,EAAQ7W,CAAAA,GAA3E,CADvC,CAEMutD,GAAQ\/B,EAAA,CAA+B1nC,CAA\/B,CAAuCjN,EAAQoQ,CAAAA,MAAOnmB,CAAAA,MAAtD,CAERmoJ,GAAAA,CAAsB,CADtBC,EACsB,CADK,IAAT,GAAAxnJ,EAAA,EAA0B,IAAK,EAA\/B,GAAiBA,EAAjB,CAAmC,IAAK,EAAxC,CAA4CA,EAAA,CAAK2mD,EAAY3mD,CAAAA,IAAjB,CACxC,EAAkBmqD,EAAA,CAA6Cq9F,EAA7C,CAA8DF,EAA9D,CAAuE3gG,EAAY\/lD,CAAAA,SAAnF,CAAlB,CAAkH,CAC9I,IAAI0hJ,EAAertH,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,GAAIgyH,EAAJ,CAEE,MADA9xI,GAAQyvI,CAAAA,MAAOrkJ,CAAAA,GAAf,CAAmB0mJ,EAAnB,CACO,CAAA,EAAA,EAAM,CACX9xI,EAAQyvI,CAAAA,MAAOhuH,CAAAA,MAAf,CAAsBqwH,EAAtB,CADW,CAHmB,CAApC,CAOG,CACDA,EADC,CAED9xI,EAAQyvI,CAAAA,MAFP,CAPH,CAWA,OAAuB,GAAItC,EAAe70H,CAAAA,aAAnB,EAAkC,MAAlC;AAA0C,CAC\/DoB,MAAO,CACL6P,UAAW,qCADN,CAELrP,SAAU,UAFL,CAGL,CAACs3B,EAAYg\/F,CAAAA,SAAb,EAA0B,QAAO2B,EAAP,OAAqBC,EAArB,KAHrB,CADwD,CAA1C,CAMJ,GAAIjF,EAAe70H,CAAAA,aAAnB,EAAkCi1H,EAAiCt\/F,CAAAA,QAAnE,CAA6E,CAC9F\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\/B,CAA0E,CAC\/FryF,aAAe7kD,EAAD6kD,EAAQL,EAAA,CAAUxkD,EAAV,CADyE,CAE\/FoiC,SAAU,CACQ,GAAIk7G,EAAqBn6G,CAAAA,GAAzB,EAxrBwB4yG,EAwrBxB,CAAyEz7I,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBo6B,CAAnB,CAAd,CAAwC,CAC\/H,cAAe0sB,EADgH,CAE\/HlnC,UAAW,qCAFoH,CAG\/HioB,SAAUmf,EAHqH,CAAxC,CAAzE,CADR,CAMQ,GAAI+7F,EAAqB9mG,CAAAA,IAAzB,EA5rBwB8\/F,EA4rBxB,CAA0E,CACxF\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\/tH,CAAAA,KAFqD,CAE\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\/B,GAFiB\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\/C,YAAag7H,EADkC,CAE\/C,aAAcC,EAFiC,CAAf,CAG\/Bf,EAH+B,CAAd,CAGF,CAChBltH,IAAKgxC,CADW,CAEhBh0B,MAAOjqB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBk6H,EAAalwG,CAAAA,KAAhC,CAAd,CAAsD,CAC3DyxG,UAAYV,EAAD,CAAqB,IAAK,EAA1B,CAAY,MADoC,CAE3DxwG,QAA0D,IAAjD,IAACkvG,EAAD,CAAwB5iF,EAAe6kF,CAAAA,IAAvC,GAAkF,IAAK,EAAvF,GAAyDjC,EAAzD,EAA4FA,EAAqB9C,CAAAA,eAAjH,CAAmI,CAAnI,CAAuI,IAAK,EAF1F,CAAtD,CAFS,CAHE,CAUpB,OAAuB,GAAIytB,EAAex7H,CAAAA,aAAnB,EAAkC,KAAlC,CAAyC,CAC9D5b,IAAKwjC,EADyD,CAE9D,oCAAqC,EAFyB,CAG9DxmB,MAAO,CACLQ,SAAUmmB,EADL,CAELjmB,KAAM,CAFD,CAGLD,IAAK,CAHA,CAILoP,UAAWkhG,EAAA,CAAY,eAAcvhI,IAAKusD,CAAAA,KAAL,CAAW7pD,EAAX,CAAd,OAAmC1C,IAAKusD,CAAAA,KAAL,CAAW5pD,EAAX,CAAnC,QAAZ,CAAwE,0BAJ9E,CAKLivH,SAAU,aALL,CAMLzgG,OAAQ0wG,EANH,CAOL,CAAC,iCAAD,EAAqC,CAC0B,IAA7D,IAAC3B,EAAD,CAAyB7iF,EAAe0wD,CAAAA,eAAxC;AAA+F,IAAK,EAApG,GAAqEmyB,EAArE,CAAwG,IAAK,EAA7G,CAAiHA,EAAsB5\/H,CAAAA,CADpG,CAE2B,IAA9D,IAAC6\/H,EAAD,CAA0B9iF,EAAe0wD,CAAAA,eAAzC,GAAiG,IAAK,EAAtG,GAAsEoyB,EAAtE,CAA0G,IAAK,EAA\/G,CAAmHA,EAAuB5\/H,CAAAA,CAFvG,CAGnC+G,CAAAA,IAHmC,CAG9B,GAH8B,CAPhC,CAHuD,CAe9DihD,IAAKr9C,CAAMq9C,CAAAA,GAfmD,CAAzC,CAgBJ,GAAIqiG,EAAex7H,CAAAA,aAAnB,EAAkCg8H,EAAlC,CAAgF,CACjGp2I,MAAO+pH,EAD0F,CAEjGyC,WAAAA,EAFiG,CAGjGW,cAAetB,EAHkF,CAIjGa,OAAAA,EAJiG,CAKjGC,OAAAA,EALiG,CAMjGS,gBAAiBR,EANgF,CAAhF,CAOhBG,EAAA,CAAyB,GAAI6oB,EAAex7H,CAAAA,aAAnB,EAAkCk8H,EAAlC,CAAkF,CAC5Gt2I,MAAO+pH,EADqG,CAE5GU,UAAW,CAAA,CAFiG,CAG5GC,kBAAAA,EAH4G,CAAlF,CAIT,GAAIkrB,EAAex7H,CAAAA,aAAnB,EAAkC46H,EAA2CpuE,CAAAA,GAA7E,CAAkFomD,EAAlF,CAJS,CAAzB,CAIkI,GAAI4oB,EAAex7H,CAAAA,aAAnB,EAAkC46H,EAA2CpuE,CAAAA,GAA7E,CAAkFomD,EAAlF,CAXlH,CAhBI,CA5H+F,CAAxD,CAtzDhE,CAq9DI0pB,GAA4C,EAAAA,EAAO,EACrDviJ,KAAM,qBAD+C,CAErDhB,EAAE,CAACg1C,CAAD,CAAO,CACP,MAAM,CAAE,MAAAm\/E,CAAF,CAAS,SAAA30E,CAAT,CAAA,CAAsBxK,CAA5B,CACM,CAAE,MAAAt8C,CAAF,CAAS,OAAAD,EAAT,CAAA,CAAoB07H,CAAMhlF,CAAAA,SAChCqQ,EAAS3Q,CAAAA,QAASxmB,CAAAA,KAAMmY,CAAAA,WAAxB,CAAoC,6BAApC;AAAoE,GAAE9nC,CAAF,IAApE,CACA8mD,EAAS3Q,CAAAA,QAASxmB,CAAAA,KAAMmY,CAAAA,WAAxB,CAAoC,8BAApC,CAAqE,GAAE\/nC,EAAF,IAArE,CACA,OAAO,EALA,CAF4C,EAr9DvD,CA+9DI+qJ,GAA0C77I,CAAD67I,EAAc,EACzDxiJ,KAAM,iBADmD,CAEzD2G,QAAAA,CAFyD,CAGzD3H,EAAE,CAACg1C,CAAD,CAAO,CAAA,IACHwlF,CADG,CACqBC,CADrB,CAC6CC,EAD7C,CACqEC,EADrE,CAC6FC,EACpG,OAAM,CAAE,UAAAhmF,EAAF,CAAa,MAAAu\/E,EAAb,CAAoB,eAAAj\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\/G,GAAsC,EAAtCA,GAAgB\/sF,EAAUp6B,CAAAA,OACVsH,GAAMiH,CAAAA,OAC5B,EADuCjH,EAAMyH,CAAAA,MAC7C,EADuDzH,EAAMkH,CAAAA,OAC7D,EAA2C,CAA3C,GAAsBlH,EAAMtxB,CAAAA,GAAIrK,CAAAA,MAAhC,EACE4uD,EAAA,CAAsBjzB,EAAMtxB,CAAAA,GAA5B,CACEmxI,GAAJ,EAAmC,GAAnC,GAAqB7\/G,EAAMtxB,CAAAA,GAA3B,EAEI,CAAAghJ,EAAgCl8H,CAAAA,QAAhC,CAAyCwM,EAAMtxB,CAAAA,GAA\/C,CAFJ,GA1CGgiJ,EA8CD,GA7CFt2I,EAAQg6C,CAAAA,YAAR,CAAqB,CAAA,CAArB,CACA,CAAAjB,EAAA,EA4CE,EAAAnzB,EAAMjD,CAAAA,cAAN,EAJF,CALsF,CAA7E,CAlBI,CAZqG,CAArF,CAFV,CAxB8F,CAAxD,CA7oE\/D,CAotEI+zH,GAA4D,GAAI\/9F,EAAehiB,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MACnG,CAAE,cAAA2oG,CAAF,CAAmC,SAAA7+G,CAAnC,CAA6C,YAAao\/G,EAA1D,CAAA,CAAPviJ,CAAuFwiJ,EAAAA,CAAax+G,EAAA,CAApGhkC,CAAoG,CAAe,CAAC,eAAD,CAAkB,WAAlB,CAA+B,OAA\/B,CAAwC,UAAxC,CAAoD,aAApD,CAAf,CAChH,OAAM4L,GAAUg2I,EAAA,CAHqBa,aAGrB,CAAyET,CAAzE,CAAhB,CACM,CAAE,6BAAAU,EAAF,CAAA,CAAmC92I,EADzC,CAEM+2I,GAA2B,IAAK,EAAhCA,GAAcx\/G,CACdmW,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwDztC,EAAQg3I,CAAAA,iBAAhE,CACrBn4G;EAAA,CAA0C,EAAA,EAAM,CAC9Ci4G,EAAA,CAA6BC,EAA7B,CAD8C,CAAhD,CAEG,CACDD,EADC,CAEDC,EAFC,CAFH,CAMA,OAAuB,GAAIp+F,EAAergC,CAAAA,aAAnB,EAAkC46H,EAA2CtkE,CAAAA,IAA7E,CAAmFl2C,EAAA,CAAU,EAAV,CAAck+G,CAAd,CAA0B,CAClIl6I,IAAKgxC,CAD6H,CAElIh0B,MAAO,CACLa,cAAe,MADV,CAF2H,CAA1B,CAAnF,CAKD,IAAK,EAAvB,GAAAva,EAAQzO,CAAAA,KAAR,EAA6C,IAAK,EAAlD,GAA4BolJ,EAA5B,CAAsDA,EAAtD,CAAqEp\/G,CALlD,CAZ+F,CAAxD,CAptEhE,CAuuEI0\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\/F,EAAe\/oB,CAAAA,QAAnB,EAA6B,IAA7B,CAC1B8d,EAAAA,CAAevU,EAAA,CACnBsU,CADmB,CAElBrsC,EAAD,EAAUyoH,EAAA,CAAWzoH,EAAX,CAFS,CAIrB,OAAM,CAACw2I,EAAD,CAAeC,EAAf,CAAA,CAAkC,GAAIl\/F,EAAe\/oB,CAAAA,QAAnB,EAA6B,IAA7B,CAAxC,CACM,CAACkoH,EAAD,CAAmBC,EAAnB,CAAA,CAA0C,GAAIp\/F,EAAe\/oB,CAAAA,QAAnB,EAA6B,IAA7B,CADhD,CAEMue,GAAWsnG,EAAA,CAAoCW,CAApC,CAFjB,CAGM,CAAC4B,EAAD,CAAeC,EAAf,CAAA,CAAkC,GAAIt\/F,EAAe\/oB,CAAAA,QAAnB,EAA6B,CAAA,CAA7B,CAHxC,CAIMsoH,GAAyB,GAAIv\/F,EAAeh7B,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CAC\/B,IAAIg7B,EAAe74B,CAAAA,SAAnB,EAA8B,EAAA,EAAM,CAClC,GAAIwrB,EAAJ,CACE,MAAO0tF,GAAA,CAAW1tF,EAAX,CAFyB,CAApC,CAGG,CACDA,EADC,CAHH,CAMAwD;EAAA,EACA,OAAMqpG,GAAa,GAAIx\/F,EAAeh5B,CAAAA,WAAnB,EAAiC6vB,EAAD,EAAgB,CACjE,MAAM,CAAC4oG,EAAD,CAAY,GAAGC,EAAf,CAAA,CAA4BlqG,EAAA,EAAWr\/C,CAAAA,GAAX,CAC\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\/H,CAAA,CAAwBm\/H,EAAxB,CAAqEC,EAtC5F,CAuCMC,GAAqBH,EAAA,GAAmBC,EAAnB,CAAgE,CACzFvxG,KAAAA,EADyF,CAEzFyD,WAAAA,EAFyF,CAGzFxD,MAAAA,EAHyF,CAIzFuhF,YAAAA,EAJyF,CAKzFC,aAAAA,EALyF;AAMzFC,kBAAAA,EANyF,CAOzFY,iBAAAA,EAPyF,CAQzFh3G,OAAAA,EARyF,CASzFs2G,iBAAAA,EATyF,CAUzFC,gBAAAA,EAVyF,CAAhE,CAWvB,EACJ,OAAuB,GAAIhxE,EAAergC,CAAAA,aAAnB,EAAkCm\/H,EAAlC,CAA+E,CACpGv5I,MAAOk4I,CAD6F,CAEpG9qG,QAAAA,EAFoG,CAGpGhsB,SAAAA,EAHoG,CAIpGk6H,iBAAkB7B,EAJkF,CAKpGqB,gBAAAA,EALoG,CAMpGpB,aAAAA,EANoG,CAOpGzT,YAAa+U,EAPuF,CAQpGC,oBAAAA,EARoG,CASpGV,kBAAAA,EAToG,CAUpGX,iBAAAA,EAVoG,CAWpG59H,SAAAA,CAXoG,CAYpG89H,aAAAA,EAZoG,CAapGt\/F,UAAAA,EAboG,CAA\/E,CAcJ,GAAIC,EAAergC,CAAAA,aAAnB,EAlwGKwoH,EAkwGL,CAAuD,CACxEvF,GAAI5tF,EADoE,CAExE2tF,eAAgB,CAAA,CAFwD,CAAvD,CAGA,GAAI3iF,EAAergC,CAAAA,aAAnB,EAAkCm7H,EAAlC,CAA8E,CAC\/F3nG,QAAS,CAAA,CADsF,CAE\/FgoF,QAAS9zH,EAAQ+5C,CAAAA,IAF8E,CAG\/Fo6E,iBAAmBvuG,EAADuuG,EAAW,CAC3BvuG,EAAMjD,CAAAA,cAAN,EAD2B,CAHkE,CAM\/FyxG,mBAAoBz7F,EAAA,CAA0CmqG,EAA1C;AAA6Dl9G,EAAD,EAAW,CACzF,IAAI6zH,EACqC,KAAzC,IAACA,EAAD,CAAoBz5I,EAAQ4vH,CAAAA,OAA5B,GAAsE,IAAK,EAA3E,GAAiD6pB,EAAjD,EAAgFA,EAAiBh5H,CAAAA,KAAjB,CAAuB,CACrGwwB,cAAe,CAAA,CADsF,CAAvB,CAGhFrrB,GAAMjD,CAAAA,cAAN,EALyF,CAAvE,CAN2E,CAA9E,CAaA,GAAIg2B,EAAergC,CAAAA,aAAnB,EAAkCg7H,EAAlC,CAA8E,CAC\/FxnG,QAAS,CAAA,CADsF,CAE\/Fq4E,4BAA6B,CAAA,CAFkE,CAG\/F3nF,gBAAAA,EAH+F,CAI\/FI,qBAAAA,EAJ+F,CAK\/Fe,eAAiB\/X,EAAD+X,EAAW\/X,EAAMjD,CAAAA,cAAN,EALoE,CAM\/F0hG,UAAW,EAAAA,EAAMrkH,EAAQg6C,CAAAA,YAAR,CAAqB,CAAA,CAArB,CAN8E,CAA9E,CAOA,GAAIrB,EAAergC,CAAAA,aAAnB,EAAkC8gI,EAAlC,CAAkD1gH,EAAA,CAAU,CAC7E44F,KAAM,SADuE,CAE7EngH,GAAInR,EAAQuuH,CAAAA,SAFiE,CAG7E,aAAcvuH,EAAQ+5C,CAAAA,IAAR,CAAe,MAAf,CAAwB,QAHuC,CAI7EtI,IAAKzxC,EAAQyxC,CAAAA,GAJgE,CAK7EioG,cAAgB9zH,EAAD8zH,EAAW9zH,EAAMjD,CAAAA,cAAN,EALmD,CAAV,CAMlEinG,CANkE,CAMpD2vB,EANoD,CAMhC,CACnC5E,SAAU,EAAAA,EAAMsD,EAAA,CAAgB,CAAA,CAAhB,CADmB,CAEnCv7I,IAAKgxC,CAF8B,CAGnCh0B,MAAOhqB,EAAA,CAAe,CACpB+5C,QAAS,MADW,CAEpBkwG,cAAe,QAFK;AAGpBpiB,QAAS,MAHW,CAAf,CAIJ3N,CAAalwG,CAAAA,KAJT,CAH4B,CAQnCsF,UAAW2Z,EAAA,CAA0CixF,CAAa5qG,CAAAA,SAAvD,CAAmE4G,EAAD,EAAW,CACtF,IAAM++G,GAAgB\/+G,EAAMiH,CAAAA,OAAtB83G,EAAiC\/+G,EAAMyH,CAAAA,MAAvCs3G,EAAiD\/+G,EAAMkH,CAAAA,OAC3C,MAAlB,GAAIlH,EAAMtxB,CAAAA,GAAV,EACEsxB,EAAMjD,CAAAA,cAAN,EACGgiH,GAAL,EAA2C,CAA3C,GAAsB\/+G,EAAMtxB,CAAAA,GAAIrK,CAAAA,MAAhC,EACE4uD,EAAA,CAAsBjzB,EAAMtxB,CAAAA,GAA5B,CACF,IAAI,CACF,SADE,CAEF,WAFE,CAGF,MAHE,CAIF,KAJE,CAKF8kB,CAAAA,QALE,CAKOwM,EAAMtxB,CAAAA,GALb,CAAJ,CAKuB,CAIrB,IAAIujI,GAHU1pF,EAAA,EAAWv\/C,CAAAA,MAAX2\/C,CACX6C,EAAD,EAAU,CAACA,EAAKd,CAAAA,QADJ\/B,CAGaz\/C,CAAAA,GAAN,CAClBsiD,EAAD,EAAUA,EAAK10C,CAAAA,GAAI4hB,CAAAA,OADA,CAGjB,EACF,SADE,CAEF,KAFE,CAGFlF,CAAAA,QAHE,CAGOwM,EAAMtxB,CAAAA,GAHb,CAAJ,GAIEujI,EAJF,CAImBA,EAAe7hI,CAAAA,KAAf,EAAuBoyD,CAAAA,OAAvB,EAJnB,CAKI,EACF,SADE,CAEF,WAFE,CAGFhvC,CAAAA,QAHE,CAGOwM,EAAMtxB,CAAAA,GAHb,CAAJ,GAKQ8jI,EACN,CADqBP,EAAe5sH,CAAAA,OAAf,CADE2a,EAAM3xB,CAAAA,MACR,CACrB,CAAA4jI,EAAA,CAAiBA,EAAe7hI,CAAAA,KAAf,CAAqBoiI,EAArB,CAAoC,CAApC,CANnB,CAQAzyH,WAAA,CACE,EAAA,EAAMwyI,EAAA,CAAWtgB,EAAX,CADR,CAGAjyG,GAAMjD,CAAAA,cAAN,EAvBqB,CAX+D,CAA7E,CARwB,CANgC,CAAlD,CAPA,CAbA,CAHA,CAdI,CAtM6F,CAAxD,CAzwE9D,CAyiFI22H,GAAkE,GAAI3gG,EAAehiB,CAAAA,UAAnB,EAA+B,CAACviC,CAAD;AAAQq5C,CAAR,CAAA,EAAyB,CAAA,MACzG,CAAE,cAAA2oG,CAAF,CAAiB,SAAAzB,CAAjB,CAAA,CAAPvgJ,CAA0CwlJ,EAAAA,CAAcxhH,EAAA,CAAxDhkC,CAAwD,CAAe,CAAC,eAAD,CAAkB,UAAlB,CAAf,CACpE,OAAM4L,GAAUg2I,EAAA,CAvTuBoB,eAuTvB,CAA2EhB,CAA3E,CAChB,KAAM1qB,GAAiBgsB,EAAA,CAxTgBN,eAwThB,CAAkFhB,CAAlF,CACvB,OAAM,CAACyD,EAAD,CAAiBC,EAAjB,CAAA,CAAsC,GAAInhG,EAAe\/oB,CAAAA,QAAnB,EAA6B,IAA7B,CAA5C,CACM,CAAC0b,EAAD,CAAUu+E,EAAV,CAAA,CAAwB,GAAIlxE,EAAe\/oB,CAAAA,QAAnB,EAA6B,IAA7B,CACxB8d,EAAAA,CAAevU,EAAA,CACnBsU,CADmB,CAElBrsC,EAAD,EAAUyoH,EAAA,CAAWzoH,EAAX,CAFS,CAIrB,OAAM+sC,GAAWsnG,EAAA,CAAoCW,CAApC,CAAjB,CACM2D,GAA0B,GAAIphG,EAAeh7B,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CADhC,CAEMq8H,GAAsB,GAAIrhG,EAAeh7B,CAAAA,MAAnB,EAA2B,CAAA,CAA3B,CAF5B,CAGM,CAAE,SAAA2B,EAAF,CAAY,aAAAs4H,EAAZ,CAA0B,iBAAAE,EAA1B,CAA4C,kBAAAW,EAA5C,CAAA,CAAkE\/sB,EAHxE,CAIMxxG,GAAW,GAAIy+B,EAAeh5B,CAAAA,WAAnB,EAAgC,EAAA,EAAM,CACrD,GAAI3f,EAAQ4vH,CAAAA,OAAZ,EAAuB5vH,EAAQi6I,CAAAA,SAA\/B,EAA4CJ,EAA5C,EAA8DvuG,EAA9D,EAAyEhsB,EAAzE,EAAqFs4H,EAArF,EAAqGE,EAArG,CAAuH,CACrH,IAAMoC,GAAcl6I,EAAQ4vH,CAAAA,OAAQ\/zG,CAAAA,qBAAhB,EAApB,CACMwE,GAAcirB,EAAQzvB,CAAAA,qBAAR,EADpB;AAEMs+H,GAAgBn6I,EAAQi6I,CAAAA,SAAUp+H,CAAAA,qBAAlB,EAFtB,CAGMu+H,GAAetC,EAAiBj8H,CAAAA,qBAAjB,EACD,MAApB,GAAI7b,EAAQyxC,CAAAA,GAAZ,EAEQr3B,EAUN,CAVa+\/H,EAAc\/\/H,CAAAA,IAU3B,EAXuBggI,EAAahgI,CAAAA,IAWpC,CAX2CiG,EAAYjG,CAAAA,IAWvD,EARMigI,EAQN,CARwBH,EAAYnwJ,CAAAA,KAQpC,EATkBmwJ,EAAY9\/H,CAAAA,IAS9B,CATqCA,EASrC,EALMkgI,EAKN,CALoBpmG,EAAA,CAA0C95B,EAA1C,CAAgD,CA7TjCmgI,EA6TiC,CADlD5pJ,MAAOmtI,CAAAA,UAC2C,CA7TjCyc,EA6TiC,CAF\/CrxJ,IAAKC,CAAAA,GAALqxJ,CAASH,EAATG,CAA0Bn6H,EAAYt2B,CAAAA,KAAtCywJ,CAE+C,CAAhD,CAKpB,CADAX,EAAengI,CAAAA,KAAMohG,CAAAA,QACrB,CADgCu\/B,EAChC,CADkD,IAClD,CAAAR,EAAengI,CAAAA,KAAMU,CAAAA,IAArB,CAA4BkgI,EAA5B,CAA0C,IAZ5C,GAeQ76G,EAUN,CAVc9uC,MAAOmtI,CAAAA,UAUrB,CAVkCqc,EAAc16G,CAAAA,KAUhD,EAXuBpf,EAAYof,CAAAA,KAWnC,CAX2C26G,EAAa36G,CAAAA,KAWxD,EARM46G,EAQN,CARwBH,EAAYnwJ,CAAAA,KAQpC,EATmB4G,MAAOmtI,CAAAA,UAS1B,CATuCoc,EAAYz6G,CAAAA,KASnD,CAT2DA,EAS3D,EALMg7G,EAKN,CALqBvmG,EAAA,CAA0CzU,EAA1C,CAAiD,CA1UnC86G,EA0UmC,CADrD5pJ,MAAOmtI,CAAAA,UAC8C,CA1UnCyc,EA0UmC,CAFjDrxJ,IAAKC,CAAAA,GAALqxJ,CAASH,EAATG,CAA0Bn6H,EAAYt2B,CAAAA,KAAtCywJ,CAEiD,CAAjD,CAKrB,CADAX,EAAengI,CAAAA,KAAMohG,CAAAA,QACrB,CADgCu\/B,EAChC,CADkD,IAClD,CAAAR,EAAengI,CAAAA,KAAM+lB,CAAAA,KAArB,CAA6Bg7G,EAA7B,CAA4C,IAzB9C,CA2BA,OAAMlsG,GAAQJ,EAAA,EACR44E,GAAAA,CAAkBp2H,MAAO4zD,CAAAA,WAAzBwiE,CAAuC,EAC7C,KAAM2zB,GAAcp7H,EAAS2lB,CAAAA,YAA7B;AACM01G,GAAgBhqJ,MAAO+wC,CAAAA,gBAAP,CAAwB4J,EAAxB,CAChBsvG,GAAAA,CAAwB3+H,QAAA,CAAS0+H,EAAcE,CAAAA,cAAvB,CAAuC,EAAvC,CAC9B,KAAMC,GAAoB7+H,QAAA,CAAS0+H,EAAc9\/B,CAAAA,UAAvB,CAAmC,EAAnC,CACpBkgC,GAAAA,CAA2B9+H,QAAA,CAAS0+H,EAAcK,CAAAA,iBAAvB,CAA0C,EAA1C,CAC3BC,GAAAA,CAAuBh\/H,QAAA,CAAS0+H,EAAcO,CAAAA,aAAvB,CAAsC,EAAtC,CAC7B,KAAMC,GAAoBP,EAApBO,CAA4CL,EAA5CK,CAAgET,EAAhES,CAA8EF,EAA9EE,CAAqGJ,EACrGK,GAAAA,CAAmBlyJ,IAAK6uB,CAAAA,GAAL,CAAqC,CAArC,CAAS6\/H,EAAa10G,CAAAA,YAAtB,CAAwCi4G,EAAxC,CACzB,KAAME,GAAiB1qJ,MAAO+wC,CAAAA,gBAAP,CAAwBpiB,EAAxB,CACjBg8H,GAAAA,CAAqBr\/H,QAAA,CAASo\/H,EAAexgC,CAAAA,UAAxB,CAAoC,EAApC,CACrB0gC,GAAAA,CAAwBt\/H,QAAA,CAASo\/H,EAAeH,CAAAA,aAAxB,CAAuC,EAAvC,CAC9B,OAAMM,GAAyBtB,EAAY\/\/H,CAAAA,GAArCqhI,CAA2CtB,EAAYpwJ,CAAAA,MAAvD0xJ,CAAgE,CAAhEA,CA9V+BjB,EA8VrC,CACMkB,GAA4B10B,EAA5B00B,CAA8CD,EAC9CE,GAAAA,CAAyB9D,EAAa10G,CAAAA,YAAtCw4G,CAAqD,CAErDC,GAAAA,CAAyBf,EAAzBe,CAAiDb,EAAjDa,EADmB\/D,EAAav0G,CAAAA,SAChCs4G,CAD4CD,EAC5CC,CAC4BR,GAA5BS,EAAgDD,EAClBA,GACpC,EAD8DH,EAC9D,EACQK,EAKN,CALmBjE,EAKnB,GALoCrpG,EAAA,CAAMA,EAAMtkD,CAAAA,MAAZ,CAAqB,CAArB,CAAwByS,CAAAA,GAAI4hB,CAAAA,OAKhE,CAJAu7H,EAAengI,CAAAA,KAAMgmB,CAAAA,MAIrB,CAJ8B,KAI9B,CAAAm6G,EAAengI,CAAAA,KAAM5vB,CAAAA,MAArB,CADe6xJ,EACf;AAFyCzyJ,IAAKC,CAAAA,GAAL2yJ,CAASL,EAATK,CAAoCJ,EAApCI,EAA8DD,EAAA,CAAaN,EAAb,CAAqC,CAAnGO,GADZxwG,EAAQ1G,CAAAA,YACIk3G,CADWx8H,EAAS+jB,CAAAA,SACpBy4G,CADgCx8H,EAAS4jB,CAAAA,YACzC44G,EAA+Hf,EAA\/He,CAEzC,CAAuC,IANzC,GAQQC,EAKN,CALoBnE,EAKpB,GALqCrpG,EAAA,CAAM,CAAN,CAAS7xC,CAAAA,GAAI4hB,CAAAA,OAKlD,CAJAu7H,EAAengI,CAAAA,KAAMS,CAAAA,GAIrB,CAJ2B,KAI3B,CADA0\/H,EAAengI,CAAAA,KAAM5vB,CAAAA,MACrB,CAHsCZ,IAAKC,CAAAA,GAAL6yJ,CAASR,EAATQ,CAAiCpB,EAAjCoB,CAAyD18H,EAAS+jB,CAAAA,SAAlE24G,EAA+ED,EAAA,CAAcT,EAAd,CAAmC,CAAlHU,EAAuHN,EAAvHM,CAGtC,CAF+CJ,EAE\/C,CADuC,IACvC,CAAAt8H,EAASqkB,CAAAA,SAAT,CAAqBg4G,EAArB,CAA8CH,EAA9C,CAAuEl8H,EAAS+jB,CAAAA,SAblF,CAeAw2G,GAAengI,CAAAA,KAAMM,CAAAA,MAArB,CAA+B,QAC\/B6\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\/\/I,IAAKgxC,CADW,CAEhBh0B,MAAOhqB,EAAA,CAAe,CACpBwqB,SAAU,UADU,CAEpBkwH,KAAM,CAFc,CAGpBniH,SAAU,MAHU,CAAf,CAIJw0H,CAAc\/iI,CAAAA,KAJV,CAFS,CAOhBqjI,SAAUpkH,EAAA,CAA0C8jH,CAAcM,CAAAA,QAAxD,CAAmEn3H,EAAD,EAAW,CAC\/EtG,EAAAA,CAAWsG,EAAMjH,CAAAA,aACvB,OAAM,CAAE,eAAAk7H,EAAF,CAAkB,wBAAAE,EAAlB,CAAA,CAA8C4C,EACpD,IAAgC,IAAhC,GAAI5C,EAAJ,EAAoE,IAAK,EAAzE,GAAwCA,EAAxC,EAA8EA,EAAwBz7H,CAAAA,OAAtG,EAAiHu7H,EAAjH,CAAiI,CAC\/H,IAAMmD,GAAa9zJ,IAAKq6B,CAAAA,GAAL,CAASq5H,EAAiBt+H,CAAAA,OAA1B,CAAoCgB,EAASqkB,CAAAA,SAA7C,CACnB,IAAiB,CAAjB,CAAIq5G,EAAJ,CAAoB,CAClB,IAAMj2B,GAAkBp2H,MAAO4zD,CAAAA,WAAzBwiE,CAAuC,EAA7C,CACMk2B,GAAer5F,UAAA,CAAWi2F,EAAengI,CAAAA,KAAMuiI,CAAAA,SAAhC,CACrB,OAAMiB,GAAYt5F,UAAA,CAAWi2F,EAAengI,CAAAA,KAAM5vB,CAAAA,MAAhC,CACZqzJ,GAAAA,CAAaj0J,IAAKC,CAAAA,GAAL,CAAS8zJ,EAAT;AAAuBC,EAAvB,CACfC,GAAJ,CAAiBp2B,EAAjB,GACQq2B,EAIN,CAJmBD,EAInB,CAJgCH,EAIhC,CAHMK,EAGN,CAH0Bn0J,IAAK6uB,CAAAA,GAAL,CAASgvG,EAAT,CAA0Bq2B,EAA1B,CAG1B,CAFmBA,EAEnB,EAFgCC,EAEhC,CADAxD,EAAengI,CAAAA,KAAM5vB,CAAAA,MACrB,CAD8BuzJ,EAC9B,CADkD,IAClD,CAAoC,KAApC,GAAIxD,EAAengI,CAAAA,KAAMgmB,CAAAA,MAAzB,GACEpgB,EAASqkB,CAAAA,SACT,CADkC,CAAb,CAAA25G,EAAA,CAAiBA,EAAjB,CAA8B,CACnD,CAAAzD,EAAengI,CAAAA,KAAM6jI,CAAAA,cAArB,CAAsC,UAFxC,CALF,CALkB,CAF2G,CAmBjIX,EAAiBt+H,CAAAA,OAAjB,CAA2BgB,EAASqkB,CAAAA,SAtBiD,CAA7E,CAPM,CAHmF,CAAlF,CAFC,CAJG,CAN+F,CAAxD,CAiDsCkyG,GAAA,CAD\/D2H,aAC+D,CAEtG,KAAI,CAACC,EAAD,CAAkDC,EAAlD,CAAA,CAAgG7H,EAAA,CAD9D8H,YAC8D,CAApG,CACIC,GAA4D,GAAIjlG,EAAehiB,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CAAA,MACnG,CAAE,cAAA2oG,CAAF,CAAiB,MAAA7kJ,CAAjB,CAAwB,SAAA++C,EAAA,CAAW,CAAA,CAAnC,CAA0C,UAAWutG,EAArD,CAAA,CAAPzpJ,CAAmF4jI,EAAAA,CAAY5\/F,EAAA,CAA\/FhkC,CAA+F,CAAe,CAAC,eAAD,CAAkB,OAAlB,CAA2B,UAA3B,CAAuC,WAAvC,CAAf,CAC3G,OAAM4L,GAAUg2I,EAAA,CAJoB2H,YAIpB,CAAwEvH,CAAxE,CAAhB,CACM1qB,GAAiBgsB,EAAA,CALaiG,YAKb,CAA+EvH,CAA\/E,CADvB,CAEMj8B,GAAan6G,EAAQzO,CAAAA,KAArB4oH,GAA+B5oH,CAFrC,CAGM,CAAC+nD,EAAD,CAAYwkG,EAAZ,CAAA,CAA4B,GAAInlG,EAAe\/oB,CAAAA,QAAnB,EAA+C,IAAlB,GAAAiuH,EAAA,EAA4C,IAAK,EAAjD,GAA0BA,EAA1B,CAAqDA,EAArD;AAAqE,EAAlG,CAHlC,CAIM,CAACnY,EAAD,CAAYC,EAAZ,CAAA,CAA4B,GAAIhtF,EAAe\/oB,CAAAA,QAAnB,EAA6B,CAAA,CAA7B,CAC5B8d,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAyDrsC,EAAD,EAAU,CACrF,IAAI28I,EACJ,OAAoE,KAA7D,IAACA,EAAD,CAAyBryB,EAAestB,CAAAA,eAAxC,GAA+F,IAAK,EAApG,GAAqE+E,EAArE,CAAwG,IAAK,EAA7G,CAAiHA,EAAsBhsJ,CAAAA,IAAtB,CAA2B25H,EAA3B,CAA2CtqH,EAA3C,CAAiD7P,CAAjD,CAAwD++C,EAAxD,CAFnC,CAAlE,CAIrB,OAAM0tG,GAASx\/G,EAAA,EAAf,CACM2mG,GAAe,EAAAA,EAAM,CACpB70F,EAAL,GACEtwC,EAAQy5C,CAAAA,aAAR,CAAsBloD,CAAtB,CACA,CAAAyO,EAAQg6C,CAAAA,YAAR,CAAqB,CAAA,CAArB,CAFF,CADyB,CAM3B,OAAuB,GAAIrB,EAAergC,CAAAA,aAAnB,EAAkCmlI,EAAlC,CAAmF,CACxGv\/I,MAAOk4I,CADiG,CAExG7kJ,MAAAA,CAFwG,CAGxG++C,SAAAA,EAHwG,CAIxG0tG,OAAAA,EAJwG,CAKxG7jC,WAAAA,EALwG,CAMxG8jC,iBAAkB,GAAItlG,EAAeh5B,CAAAA,WAAnB,EAAiCve,EAAD,EAAU,CAC1D08I,EAAA,CAAcI,EAAD,EAAmB,CAC9B,IAAIC,EACJ,OAAOD,GAAP,EAA+KnnF,CAA\/D,IAAvF,IAAConF,EAAD,CAA8B,IAAT,GAAA\/8I,EAAA,EAA0B,IAAK,EAA\/B,GAAiBA,EAAjB,CAAmC,IAAK,EAAxC,CAA4CA,EAAKwkI,CAAAA,WAAtE,GAAqH,IAAK,EAA1H,GAA+FuY,EAA\/F,CAA8HA,EAA9H,CAAkJ,EAAIpnF,EAAAA,IAAvJ,EAFM,CAAhC,CAD0D,CAA1C,CAKf,EALe,CANsF,CAAnF,CAYJ,GAAIpe,EAAergC,CAAAA,aAAnB,EAAkCk9H,EAAiCvnG,CAAAA,QAAnE,CAA6E,CAC9F\/vC,MAAOk4I,CADuF,CAE9F7kJ,MAAAA,CAF8F,CAG9F++C,SAAAA,EAH8F;AAI9FgJ,UAAAA,EAJ8F,CAA7E,CAKA,GAAIX,EAAergC,CAAAA,aAAnB,EAAkC46H,EAA2CpuE,CAAAA,GAA7E,CAAkFpsC,EAAA,CAAU,CAC7G44F,KAAM,QADuG,CAE7G,kBAAmB0sB,EAF0F,CAG7G,mBAAoBtY,EAAA,CAAY,EAAZ,CAAiB,IAAK,EAHmE,CAI7G,gBAAiBvrB,EAAjB,EAA+BurB,EAJ8E,CAK7G,aAAcvrB,EAAA,CAAa,SAAb,CAAyB,WALsE,CAM7G,gBAAiB7pE,EAAjB,EAA6B,IAAK,EAN2E,CAO7G,gBAAiBA,EAAA,CAAW,EAAX,CAAgB,IAAK,EAPuE,CAQ7G71B,SAAU61B,EAAA,CAAW,IAAK,EAAhB,CAAoB,CAAC,CAR8E,CAAV,CASlG0nF,CATkG,CASvF,CACZt7H,IAAKgxC,CADO,CAEZkhF,QAASj2F,EAAA,CACPq\/F,CAAUpJ,CAAAA,OADH,CAEP,EAAA,EAAM+W,EAAA,CAAa,CAAA,CAAb,CAFC,CAFG,CAMZ7W,OAAQn2F,EAAA,CACNq\/F,CAAUlJ,CAAAA,MADJ,CAEN,EAAA,EAAM6W,EAAA,CAAa,CAAA,CAAb,CAFA,CANI,CAUZ7nH,YAAa6a,EAAA,CAA0Cq\/F,CAAUl6G,CAAAA,WAApD,CAAiEqnH,EAAjE,CAVD,CAWZtmH,cAAe8Z,EAAA,CAA0Cq\/F,CAAUn5G,CAAAA,aAApD,CAAoE+G,EAAD,EAAW,CAC3F,GAAI0qB,EAAJ,CAAc,CACZ,IAAI8tG,EACqD,KAAzD,IAACA,EAAD,CAAyB1yB,EAAeyY,CAAAA,WAAxC,GAA2F,IAAK,EAAhG,GAAiEia,EAAjE,EAAqGA,EAAsBrsJ,CAAAA,IAAtB,CAA2B25H,EAA3B,CAFzF,CAAd,IAIE9lG,GAAMjH,CAAAA,aAAc8B,CAAAA,KAApB,CAA0B,CACxBwwB,cAAe,CAAA,CADS,CAA1B,CALyF,CAA9E,CAXH;AAoBZlyB,eAAgB4Z,EAAA,CAA0Cq\/F,CAAUj5G,CAAAA,cAApD,CAAqE6G,EAAD,EAAW,CAC7F,GAAIA,EAAMjH,CAAAA,aAAV,GAA4BtG,QAASsf,CAAAA,aAArC,CAAoD,CAClD,IAAI0mH,EACsD,KAA1D,IAACA,EAAD,CAA0B3yB,EAAeyY,CAAAA,WAAzC,GAA6F,IAAK,EAAlG,GAAkEka,EAAlE,EAAuGA,EAAuBtsJ,CAAAA,IAAvB,CAA4B25H,EAA5B,CAFrD,CADyC,CAA\/E,CApBJ,CA0BZ1sG,UAAW2Z,EAAA,CAA0Cq\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\/F,CAAiL,IAJ\/J,CAtC+F,CAAxD,CApFhE,CAiIIkF,GAA4D,GAAIxmG,EAAehiB,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CACtH,MAAMi+E,EAAiBgsB,EAAA,CAFyB0H,sBAEzB,CAA2FhrJ,CAAMgiJ,CAAAA,aAAjG,CAAvB,CACMuG,EAAkBJ,EAAA,CAHwB6C,sBAGxB,CAA4FhrJ,CAAMgiJ,CAAAA,aAAlG,CADxB,CAEM,CAACiJ,EAAD,CAAeC,EAAf,CAAA,CAAiC,GAAI3mG,EAAe\/oB,CAAAA,QAAnB,EAA6B,CAAA,CAA7B,CACjC8d,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwDkvG,CAAgBN,CAAAA,oBAAxE,CACrBx9G,GAAA,CAA0C,EAAA,EAAM,CAC9C,GAAI6sF,CAAepsG,CAAAA,QAAnB,EAA+BosG,CAAessB,CAAAA,YAA9C,CAA4D,CAC1D,IAAI3mB,GAAgBA,QAAQ,EAAG,CAE7BiuB,EAAA,CADyC,CACzC,CADoBhgI,EAASqkB,CAAAA,SAC7B,CAF6B,CAI\/B,OAAMrkB,GAAWosG,CAAepsG,CAAAA,QAChC+xG,GAAA,EACA\/xG,GAAS\/G,CAAAA,gBAAT,CAA0B,QAA1B,CAAoC84G,EAApC,CACA,OAAO,EAAA,EAAM\/xG,EAASrB,CAAAA,mBAAT,CAA6B,QAA7B;AAAuCozG,EAAvC,CAR6C,CADd,CAAhD,CAWG,CACD3F,CAAepsG,CAAAA,QADd,CAEDosG,CAAessB,CAAAA,YAFd,CAXH,CAeA,OAAOqH,GAAA,CAA+B,GAAI1mG,EAAergC,CAAAA,aAAnB,EAAkCinI,EAAlC,CAAgF7mH,EAAA,CAAU,EAAV,CAActkC,CAAd,CAAqB,CACzIsI,IAAKgxC,CADoI,CAEzI8xG,aAAc,EAAAA,EAAM,CAClB,MAAM,CAAE,SAAAlgI,EAAF,CAAY,aAAAs4H,EAAZ,CAAA,CAA6BlsB,CAC\/BpsG,GAAJ,EAAgBs4H,EAAhB,GACEt4H,EAASqkB,CAAAA,SADX,EAC4Ci0G,EAAa10G,CAAAA,YADzD,CAFkB,CAFqH,CAArB,CAAhF,CAA\/B,CAOD,IA3BgH,CAAxD,CAjIhE,CA+JIu8G,GAA2D,GAAI9mG,EAAehiB,CAAAA,UAAnB,EAA+B,CAACviC,CAAD,CAAQq5C,CAAR,CAAA,EAAyB,CACrH,MAAMi+E,EAAiBgsB,EAAA,CAF2BgI,wBAE3B,CAA6FtrJ,CAAMgiJ,CAAAA,aAAnG,CAAvB,CACMuG,EAAkBJ,EAAA,CAH0BmD,wBAG1B,CAA8FtrJ,CAAMgiJ,CAAAA,aAApG,CADxB,CAEM,CAACuJ,EAAD,CAAiBC,EAAjB,CAAA,CAAqC,GAAIjnG,EAAe\/oB,CAAAA,QAAnB,EAA6B,CAAA,CAA7B,CACrC8d,EAAAA,CAAevU,EAAA,CAA0CsU,CAA1C,CAAwDkvG,CAAgBN,CAAAA,oBAAxE,CACrBx9G,GAAA,CAA0C,EAAA,EAAM,CAC9C,GAAI6sF,CAAepsG,CAAAA,QAAnB,EAA+BosG,CAAessB,CAAAA,YAA9C,CAA4D,CAC1D,IAAI3mB,GAAgBA,QAAQ,EAAG,CAG7BuuB,EAAA,CADsB12J,IAAKS,CAAAA,IAAL,CAAU21B,EAASqkB,CAAAA,SAAnB,CACtB,CAFkBrkB,EAAS2lB,CAAAA,YAE3B,CAF0C3lB,EAASslB,CAAAA,YAEnD,CAH6B,CAK\/B,OAAMtlB;AAAWosG,CAAepsG,CAAAA,QAChC+xG,GAAA,EACA\/xG,GAAS\/G,CAAAA,gBAAT,CAA0B,QAA1B,CAAoC84G,EAApC,CACA,OAAO,EAAA,EAAM\/xG,EAASrB,CAAAA,mBAAT,CAA6B,QAA7B,CAAuCozG,EAAvC,CAT6C,CADd,CAAhD,CAYG,CACD3F,CAAepsG,CAAAA,QADd,CAEDosG,CAAessB,CAAAA,YAFd,CAZH,CAgBA,OAAO2H,GAAA,CAAiC,GAAIhnG,EAAergC,CAAAA,aAAnB,EAAkCinI,EAAlC,CAAgF7mH,EAAA,CAAU,EAAV,CAActkC,CAAd,CAAqB,CAC3IsI,IAAKgxC,CADsI,CAE3I8xG,aAAc,EAAAA,EAAM,CAClB,MAAM,CAAE,SAAAlgI,EAAF,CAAY,aAAAs4H,EAAZ,CAAA,CAA6BlsB,CAC\/BpsG,GAAJ,EAAgBs4H,EAAhB,GACEt4H,EAASqkB,CAAAA,SADX,EAC4Ci0G,EAAa10G,CAAAA,YADzD,CAFkB,CAFuH,CAArB,CAAhF,CAAjC,CAOD,IA5B+G,CAAxD,CA\/J\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\/nG,EAAe\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\/8B,EAAjB,CADoD,CAA\/B,CAEpB,EAFoB,CAJvB,CAOMmoI,EAAkB\/W,EAAQ3qH,CAAAA,WAAR,CAAqB9xB,EAAD,EAAQ,CAElD,CADMq1B,EACN,CADar1B,EAAG8wB,CAAAA,aAAc6kC,CAAAA,OAAQtgC,CAAAA,IACtC,GACEf,CAAIm\/H,CAAAA,UAAJ,CAAep+H,EAAf,CAHgD,CAA5B,CAIrB,EAJqB,CAPxB,CAYM,CAACq+H,EAAD,CAAeC,EAAf,CAAA,CAAkClX,EAAQ16G,CAAAA,QAAR,CACtC,EAAA,EAAM,CACJ,IAAI\/c,EACJ,OAAqF,KAA9E,GAACA,EAAD,CAAOlhB,MAAOye,CAAAA,MAAP,CAAc0yD,EAAd,CAAwB\/uB,CAAAA,IAAxB,CAA8Bm5F,EAAD,EAASA,EAAT,GAAiB\/qH,CAAIgB,CAAAA,YAAahS,CAAAA,EAA\/D,CAAP,EAAqF0B,EAArF,CAA2FlhB,MAAOye,CAAAA,MAAP,CAAc0yD,EAAd,CAAA,CAAwB,CAAxB,CAF9F,CADgC,CAMxCwnE,GAAQxqH,CAAAA,SAAR,CAAkB,EAAA,EAAM,CACtB0hI,EAAA,CAAiBC,EAAD,EAAY,CAC1B,IAAI5uI,EACJ,OAAqF,KAA9E,GAACA,EAAD,CAAOlhB,MAAOye,CAAAA,MAAP,CAAc0yD,EAAd,CAAwB\/uB,CAAAA,IAAxB,CAA8Bm5F,EAAD,EAASA,EAAT,GAAiB\/qH,CAAIgB,CAAAA,YAAahS,CAAAA,EAA\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\/H,EAAMF,EAAA,EACZ,OAAuB,GAAIy\/H,EAAqB\/1G,CAAAA,IAAzB,EAA+B,KAA\/B;AAAsC,CAC3Dr8B,UAAW,cADgD,CAE3D,0BAA2B,MAFgC,CAG3DioB,SAAU,CACRpV,CAAIgB,CAAAA,YAAahS,CAAAA,EADT,CAER,KAFQ,CAGRgR,CAAIgB,CAAAA,YAAaspE,CAAAA,YAAat7E,CAAAA,EAHtB,CAIQ,GAAIuwI,EAAqBppH,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnD5e,MAAO,CAAE0wH,KAAM,CAAR,CAD4C,CAArC,CAJR,CAOQ,GAAIsX,EAAqBppH,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnDnnB,GAAI,qBAD+C,CAEnD7B,UAAW,YAFwC,CAArC,CAPR,CAHiD,CAAtC,CAFsB,CAA\/B,CAzPhB,CA8QIuyI,GAAuBh6J,EAAA,CAAQ,GAAR,CA9Q3B,CA+QIi6J,GAAQvrH,EAAA,CAASwrH,QAAe,EAAG,CACrC,MAAM5\/H,EAAMF,EAAA,EACZ,OAAuB,GAAI4\/H,EAAqBl2G,CAAAA,IAAzB,EAA+Bk2G,EAAqB31G,CAAAA,QAApD,CAA8D,CACnF3U,SAAU,CACR7a,EAAA,EADQ,EACmB,GAAImlI,EAAqBvpH,CAAAA,GAAzB,EAA8BqpH,EAA9B,CAAyC,EAAzC,CADnB,CAERjlI,EAAA,EAFQ,EAEmB,GAAImlI,EAAqBvpH,CAAAA,GAAzB,EAA8ByxG,EAA9B,CAAwC,EAAxC,CAFnB,CAGR,CAAC5nH,CAAI8N,CAAAA,QAHG,EAGyB,GAAI4xH,EAAqBvpH,CAAAA,GAAzB,EAA8B4oH,EAA9B,CAA4C,EAA5C,CAHzB,CAIQ,GAAIW,EAAqBvpH,CAAAA,GAAzB,EAA8BgxG,EAA9B,CAAyC,EAAzC,CAJR,CADyE,CAA9D,CAFc,CAA3B,CA\/QZ,CA4RI0Y,GAAU7oF,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA5Rd,CA+RIo6J,GAAiB9oF,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA\/RrB,CAkSI6sE,GAAiByE,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CAlSrB,CAqSIq6J,GAAiB\/oF,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CArSrB,CAsSIs6J,GAAuBt6J,EAAA,CAAQ,GAAR,CAtS3B,CAuSI+sE,GAAY,CAAC,CACf,GAAI53C,CADW,CAEf,qBAAA63C,CAAA;AAAuB,CAAA,CAFR,CAAD,CAAAD,EAGV,CACJ,IAAI\/hD,CACJ,OAAM,CACJ,SAAU,CAAE,iBAAAuvI,CAAF,CAAoB,eAAAptF,EAApB,CAAoC,gBAAAC,EAApC,CAAqD,iBAAAotF,EAArD,CADN,CAEJ,UAAW,CAAE,WAAAC,EAAF,CAAc,SAAAC,EAAd,CAFP,CAAA,CAGFL,EAAe\/qI,CAAAA,OAAQkG,CAAAA,UAAvB,CAAkC+4B,EAAlC,CACJ,KAAIosG,GAAW,EACf,KAAIC,GAAW3mI,EAAA,CAAUkB,CAAV,CAAA,CAAiB,GAAjB,CAAuB,GAAtC,CACI0lI,GAAe,EACnB,IAAI5mI,EAAA,CAAUkB,CAAV,CAAJ,CAAoB,CACZw7H,EAAAA,CAAQ6J,EAAA,CAAiBrlI,CAAjB,CACd,IAAI,CAACw7H,EAAL,CACE,MAAuB,GAAI2J,EAAqB7pH,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CAC3DhpB,UAAW,KADgD,CAE3DioB,SAAU,uCAFiD,CAAtC,CAKzBmrH,GAAA,CAAelK,EAAMltG,CAAAA,OAEnBk3G,GAAA,CADmE,kBAArE,IAAiC,IAA5B,GAAC3vI,CAAD,CAAO2lI,EAAMvwI,CAAAA,UAAb,EAAmC,IAAK,EAAxC,CAA4C4K,CAAA,CAAI,SAAJ,CAAjD,EACa,oBADb,CAGa,eAZK,CAApB,IAgBI2vI,GAAA,CADEJ,CAAA,CAAiBplI,CAAjB,CAAJ,CACa,oBADb,CAGa,cAGT2lI,EAAAA,CAAgBD,EAAA;AAAsC,EAAtC,CAAgBA,EAAaz4J,CAAAA,MAA7B,CAA2Cy4J,EAAa1sJ,CAAAA,KAAb,CAAmB,CAAnB,CAAsB,EAAtB,CAA3C,CAAuE,KAAvE,CAA+E0sJ,EACrG,OAAuB,GAAIP,EAAqBx2G,CAAAA,IAAzB,EAA+B,QAA\/B,CAAyC,CAC9Dr8B,UAAW,uCADmD,CAE9DmP,cAAgB5wB,EAAD4wB,EAAQ,CACrB5wB,EAAGysD,CAAAA,eAAH,EACIzsD,GAAG8\/B,CAAAA,QAAP,CACEsnC,EAAA,CAAgBj4C,CAAhB,CAAkC,GAAb,GAAAylI,EAAA,CAAmB,OAAnB,CAA6B,MAAlD,CADF,CAGEztF,EAAA,CAAeh4C,CAAf,CALmB,CAFuC,CAU9Dua,SAAU,CACQ,GAAI4qH,EAAqB7pH,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CACxD1jD,KAAMmwJ,EADkD,CAA1C,CADR,CAIQ,GAAIL,EAAqB7pH,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CACpDhpB,UAAW,8CADyC,CAEpDioB,SAAuB,GAAb,GAAAkrH,EAAA,CAAmC,GAAIN,EAAqB7pH,CAAAA,GAAzB,EAA8BiqH,EAA9B,CAAwC,CACnFK,SAAU5lI,CADyE,CAAxC,CAAnC,CAEW,GAAImlI,EAAqBx2G,CAAAA,IAAzB,EAA+Bw2G,EAAqBj2G,CAAAA,QAApD,CAA8D,CACjF3U,SAAU,CACQ,GAAI4qH,EAAqB7pH,CAAAA,GAAzB,EAA8BgqH,EAA9B,CAA0C,CACxDO,WAAY,CAD4C,CAExDC,QAAS9lI,CAF+C,CAGxD+lI,aAAcluF,CAH0C,CAA1C,CADR,CAMRA,CANQ,EAMgB8tF,CANhB,CADuE,CAA9D,CAJ+B,CAAtC,CAJR,CAVoD,CAAzC,CA\/BnB,CA1SN,CA2WIK,GAAiB7pF,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA3WrB,CA8WIi6D,GAAiBj6D,EAAA,CAAQ,CAAR,CA9WrB,CAyyBIo6D,GAAa,CAAC,UAAD,CAzyBjB;AA0zBII,GAAgD,WAApB,GAAA,MAAOhqC,SAAP,CAAkCypC,EAAe5hC,CAAAA,eAAjD,CAAmE4hC,EAAehiC,CAAAA,SA1zBlH,CA+5BIupC,GAAK8P,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA\/5BT,CAg6BIq7D,GAAiBr7D,EAAA,CAAQ,CAAR,CAh6BrB,CAi6BI+8D,GAAqB\/8D,EAAA,CAAQ,CAAR,CAj6BzB,CA88BIo7J,EA98BJ,CA+8BIl\/F,EA\/8BJ,CAg9BI8F,GAAK,WAAA,EAAe,MAAOxxC,SAAtB,CAAiC6qC,EAAehjC,CAAAA,eAAhD,CAAkEgjC,EAAepjC,CAAAA,SAC1F,EAAC,QAAQ,CAACjyB,CAAD,CAAK,CACZA,CAAA,CAAGA,CAAGo5D,CAAAA,KAAN,CAAc,CAAd,CAAA,CAAmB,OAASp5D,EAAA,CAAGA,CAAGq1J,CAAAA,IAAN,CAAa,CAAb,CAAA,CAAkB,MAAQr1J,EAAA,CAAGA,CAAG22D,CAAAA,IAAN,CAAa,CAAb,CAAA,CAAkB,MAAQ32D,EAAA,CAAGA,CAAGm2D,CAAAA,KAAN,CAAc,CAAd,CAAA,CAAmB,OADvF,CAAb,CAEQD,EAFR,GAEa,EAFb,CAGD,KAAIo\/F,IAAM,CAACF,EAAD,CAAM,EAAN,EAAUl\/F,EAAGkD,CAAAA,KAAb,CAAA,CAAsB,OAAtB,CAA+Bg8F,EAAA,CAAGl\/F,EAAGm\/F,CAAAA,IAAN,CAA\/B,CAA6C,KAA7C,CAAoDD,EAAA,CAAGl\/F,EAAGS,CAAAA,IAAN,CAApD,CAAkE,MAAlE,CAA0Ey+F,EAAA,CAAGl\/F,EAAGC,CAAAA,KAAN,CAA1E,CAAyF,OAAzF,CAAkGi\/F,EAAxGE,CAAJ,CACIC,GAAKxjG,EAAA,CAAO,QAAQ,EAAG,CACzB,IAAI\/xD,EAAKqvD,EAAA,CAAe6G,EAAGC,CAAAA,KAAlB,CACT,OAAO,CAAE15C,IAAK4yC,EAAA,CAAe,QAAQ,CAACnnD,CAAD,CAAKZ,CAAL,CAAS9I,CAAT,CAAa,CAChD,IAAIrC,EACJ,KAAK,EAAL,GAAWqC,CAAX,GAAkBA,CAAlB,CAAuB03D,EAAGm\/F,CAAAA,IAA1B,CAAiC72J,EAAA,GAAO,IAAA,GAASrC,EAAT,CAAuEq5J,CAAxD,WAAA,EAAe,MAAO3yJ,WAAtB;AAAmCC,MAAnC,CAA4CD,UAAY2yJ,EAAAA,kBAAvE,EAA6Fr5J,EAA7F,CAA2G6D,CA5iB9I,CAzDGgvD,CAyDH,CA4iB4B,GAA0Hr5C,OAAA,CAAQ2\/I,EAAA,CAAG92J,CAAH,CAAR,CAAA,CAAgB,2BAAhB,CAA6C,mCAA7C,CAAkF,gBAAlF,CAAoG0J,CAApG,CAAwGZ,CAAxG,CAF3G,CAApC,CAAP,CAGHmuJ,SAAUz1J,CAHP,CAFkB,CAAlB,CAMN,EANM,CAMF,CAAEgyD,UAAW,CAAA,CAAb,CANE,CADT,CAoFI0jG,GAAK3jG,EAAA,CAAO,QAAQ,EAAG,CAAA,IACrB\/xD,EAAKmvD,EAAA,EADgB,CACNjnD,EAAKinD,EAAA,EADC,CACS7nD,EAAK+nD,EAAA,CAAe,CAAf,CADd,CACiC7wD,EAAK2wD,EAAA,EADtC,CACgDhzD,GAAKkzD,EAAA,CAAe,CAAf,CADrD,CACwE7zD,GAAK2zD,EAAA,EAD7E,CACuFt9C,GAAKs9C,EAAA,EAD5F,CACsG1wD,GAAK4wD,EAAA,CAAe,CAAf,CAD3G,CAC8H7d,GAAK6d,EAAA,CAAe,CAAf,CADnI,CACsJvvD,GAAKuvD,EAAA,CAAe,CAAf,CAD3J,CAC8K5d,GAAK4d,EAAA,CAAe,CAAf,CADnL,CACsM9wD,GAAK4wD,EAAA,EAD3M,CACqNj9C,GAAKi9C,EAAA,EAD1N,CACoOjuD,GAAKmuD,EAAA,CAAe,CAAA,CAAf,CADzO,CACgQrd,GAAKqd,EAAA,CAAe,CAAA,CAAf,CAC9R,OAAOJ,GAAA,CAAQgB,EAAA,CAAKjwD,CAAL,CAASuwD,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CACxC,MAAOA,GAAGT,CAAAA,SAD8B,CAAlB,CAAT,CAAR,CAEF5tC,CAFE,CAAA,CAEG+mD,EAAA,CAAQgB,EAAA,CAAKjwD,CAAL,CAASuwD,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CAC3C,MAAOA,GAAGa,CAAAA,YADiC,CAAlB,CAAT,CAAR,CAELvlC,EAFK,CAFH,CAIGo9C,EAAA,CAAQ\/mD,CAAR,CAAY\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\/G,OAAQ,EAAV,CAAcC,UAAW,CAAzB,CAA4B\/zI,SAAUg0B,EAAGsiB,CAAAA,QAAzC,CAHI,CAGiDw9F,CAAAA,MAPH,CAAlB,CAA7B,CAAR,CAQKl4J,CARL,CASA,KAAI\/C,GAAKi0D,EAAA,CAAkBO,EAAA,CAAKxxD,EAAL,CAASwyD,EAAA,CAAe4K,EAAf,CAAmBxxD,EAAnB,CAAT,CAAiCkmD,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CAC5E,MAAOkjB,GAAA,CAAE,CAACljB,EAAA,CAAG,CAAH,CAAH,CAAUA,EAAA,CAAG,CAAH,CAAMwiB,CAAAA,UAAhB,CAA4BxiB,EAAA,CAAG,CAAH,CAA5B,CADqE,CAAlB,CAAjC,CAAlB,CAGT,OAAO0Y,GAAA,CAAQgB,EAAA,CAAKxxD,EAAL,CAASwyD,EAAA,CAAe4K,EAAf,CAAmBxxD,EAAnB,CAAT,CAAiCkmD,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CAAA,IAC5Dv1C,GAAKu1C,EAAA,CAAG,CAAH,CADuD,CAChDK,GAAKL,EAAA,CAAG,CAAH,CAAO9uC,GAAAA,CAAK8uC,EAAA,CAAG,CAAH,CACjC,IAA6B,CAA7B,CAAIK,EAAG8iB,CAAAA,YAAat9D,CAAAA,MAApB,CACE,KAAU7B,MAAJ,CAAU,oDAAV,CAAN,CACF,IAAIs8C,GAAKwhB,EAAA,CAAGzhB,EAAGyiB,CAAAA,QAAN,CAAgB\/3D,CAAAA,MAAhB,CAAuB,QAAQ,CAACorE,EAAD;AAAKl1B,EAAL,CAAS,CAE\/C,MAAOygB,GAAA,CAAGyU,EAAH,CAAOrxE,IAAKC,CAAAA,GAAL,CAAS,CAAT,CAAYk8C,EAAGggB,CAAAA,CAAf,CAAmBx2D,EAAnB,CAAP,CADEw2C,EAAGigB,CAAAA,CACL,CAFwC,CAAxC,CA5QJF,EA4QI,CAIT,OAAOvC,GAAA,CAAG,EAAH,CAAOpe,EAAP,CAAW,CAAEyiB,SAAUxiB,EAAZ,CAAX,CAA6BiiB,EAAA,CAAEliB,EAAGmiB,CAAAA,UAAL,CAAiB,CAAjB,CAAoBliB,EAApB,CAAwBpvC,EAAxB,CAA7B,CARyD,CAAlB,CAAjC,CAAR,CASFo0D,EATE,CAAA,CASG,CAAErjB,KAAM9G,EAAR,CAAYwoB,WAAY\/9D,CAAxB,CAA4By6J,WAAYp4J,CAAxC,CAA4Ck7D,aAAcjoB,EAA1D,CAA8DolH,gBAAiB3kJ,EAA\/E,CAAmF4kJ,cAAev4J,EAAlG,CAAsGw4J,YAAallJ,EAAnH,CAAuHmlJ,UAAWv4J,EAAlI,CAAsIw4J,gBAAiBx7J,EAAvJ,CAA2Jy7J,kBAAmBn5J,CAA9K,CAAkLg9D,eAAgBvpB,EAAlM,CAAsM4uC,IAAK\/1E,EAA3M,CAA+MosJ,MAAO56F,EAAtN,CAA0Ns7F,YAAap7F,EAAvO,CAA2Oq7F,mBAAoB57J,EAA\/P,CAAmQ67J,eAAgBv7F,EAAnR,CAAuRw7F,SAAUp2J,EAAjS,CA9DiB,CAApB,CA+DN4sD,EAAA,CAAIynG,EAAJ,CAAQc,EAAR,CA\/DM,CA+DM,CAAErkG,UAAW,CAAA,CAAb,CA\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\/B,EAAN,CAAWx\/F,EAAA,CAAGnhB,EAAGwiB,CAAAA,QAAN,CAAgB0+D,EAAhB,CAAA,CAAoB,CAApB,CAAX,CAAoCtiE,EAApC,CAAyC6e,EAAzC,CAA6CyjD,EAA7C,GAAoD5yD,EAApD,GAA2D6yD,EAA3D,EAAiE1+D,EAAjE,CAAhB,EAAwF,QAAA,GAAa79D,EAAb,CAAkBu8H,EAAlB,GAAyBw\/B,EAAzB,CAA8Bx\/F,EAAA,CAAGnhB,EAAGwiB,CAAAA,QAAN,CAAgB0+D,EAAhB,CAAA,CAAoB,CAApB,CAA9B,CAAuDtiE,EAAvD,CAA4D6e,EAA5D,EAAkE,CAAlE,CAAsE0jD,EAAtE,EAA4EliE,EAAI2O,GAAA,GAAOuzD,EAAP,EAAavzD,EAAb,CACxK,KAAIQ,GAAKA,QAAQ,CAACyH,EAAD,CAAK,CACpB3uE,CAAA,EAAM2uE,GAAA,EAAM,EAAA,CAAA,uBAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAl7BhB,CAk7BgBhe,EAl7BhB,CAtDYC,CAsDZ,CAk7BgBjrD,EAl7BhB,CAk7BU,EAAkF,EAAA,CAAA,wCAAA,CAAA,EAAA,CAAA,EAAA,CAAA,KAAA,CADpE,CAGtB,IAAI3F,CAAA,EAAA,CAAM,QAAN,GAAmBC,EAAvB,CAA2B,CACzB,IAAIshC,GAAK,CAAA,CACTmT,GAAA,CAAK7Q,EAAA,CAAUzlC,EAAV,CAAc,QAAQ,CAACuwE,EAAD,CAAK,CAC9BptC,EAAA;AAAKA,EAAL,EAAWotC,EADmB,CAA3B,CAED5Q,GAAA,CAAK5M,EAAA,CAAWzd,EAAX,CAAe,QAAQ,EAAG,CACjCwzB,EAAA,CAAG3lC,EAAH,CADiC,CAA1B,CAJgB,CAA3B,IAQEw8B,GAAA,CAAK5M,EAAA,CAAWe,EAAA,CAAK9zD,EAAL,CAAS,QAAQ,CAACuwE,EAAD,CAAK,CACpC,IAAI1rE,GAAK8W,UAAA,CAAW,QAAQ,EAAG,CAC7B40D,EAAA,CAAG,CAAA,CAAH,CAD6B,CAAtB,CAEN,GAFM,CAGT,OAAO,SAAQ,CAACl1B,EAAD,CAAK,CAClBA,EAAA,GAAOk1B,EAAA,CAAG,CAAA,CAAH,CAAA,CAAUj+C,YAAA,CAAaztB,EAAb,CAAjB,CADkB,CAJgB,CAAtB,CAAX,CAODikE,EAPC,CAQAlJ,GAAA,CAAKjkD,UAAA,CAAW,QAAQ,EAAG,CAChC\/Z,CAAA,EADgC,CAAtB,CAET,IAFS,CAEMU,GAt8BpB,CAtDYkwD,CAsDZ,CAs8BwBjrD,CAAAA,CAt8BxB,CAo8BE,OAE6BmpE,GAAA,CAAG,yBAAH,CAA8B,CAAEjX,MAAOmiE,EAAT,CAAazrG,IAAK0rG,EAAlB,CAAsB5gE,SAAUp5D,EAAhC,CAA9B,CAAoEk4D,EAAGkD,CAAAA,KAAvE,CAFtB,CAEqG,CAAE9sC,IAAK0rG,EAAP,CAAW5gE,SAAUp5D,EAArB,CAxBI,CAAlB,CAAjF,CAAR,CAyBF8B,EAzBE,CAAA,CAyBG,CAAE43J,cAAen+F,EAAjB,CAAqBsB,cAAegB,EAApC,CA9BiB,CAApB,CA+BN\/N,EAAA,CAAI0oG,EAAJ,CAAQd,EAAR,CAAYH,EAAZ,CA\/BM,CA+BW,CAAEvjG,UAAW,CAAA,CAAb,CA\/BX,CA5XT,CA6ZI2lG,GAAK,CAAEC,SAAU,CAAA,CAAZ,CAAmBC,mBAAoB,uBAAvC,CAAgE3xI,MAAO,CAAE40C,aAAc,CAAhB,CAAmBhlB,UAAW,CAA9B,CAAiC2gB,eAAgB,CAAjD,CAAoDrf,aAAc,CAAlE,CAAvE,CA7ZT;AA8ZI0gH,GAAK\/lG,EAAA,CAAO,QAAQ,CAAC\/xD,CAAD,CAAK,CAAA,IACvBkI,EAAKlI,CAAA,CAAG,CAAH,CADkB,CACXsH,EAAKY,CAAGytJ,CAAAA,oBAAsBn3J,EAAAA,CAAK0J,CAAG4tC,CAAAA,SAD3B,KACsC35C,EAAK+L,CAAGuuD,CAAAA,cAD9C,CAC8Dj7D,GAAK0M,CAAG0tJ,CAAAA,YADtE,CACoF\/jJ,GAAK3J,CAAG6tJ,CAAAA,YAD5F,CAC0Gt3J,GAAKyJ,CAAGgvD,CAAAA,QAAU1lB,EAAAA,CAAK6d,EAAA,CAAe,CAAA,CAAf,CADjI,KACwJvvD,GAAKuvD,EAAA,CAAe,CAAA,CAAf,CAD7J,CACmL5d,GAAK0d,EAAA,EADxL,CACkM5wD,GAAK4wD,EAAA,EADvM,CACiNj9C,GAAKm9C,EAAA,CAAe,CAAf,CADtN,CACyOnuD,GAAKmuD,EAAA,CAAe,CAAf,CAD9O,CACiQrd,GAAK4d,EAAA,CAA0BK,EAAA,CAAK0B,EAAA,CAAM1B,EAAA,CAAK2B,EAAA,CAAIpzD,CAAJ,CAAL,CAAcmyD,EAAA,CAAK,CAAL,CAAd,CAAuBH,EAAA,CAAM,CAAA,CAAN,CAAvB,CAAN,CAA2CP,EAAA,CAAK2B,EAAA,CAAIpzD,CAAJ,CAAL,CAAcmyD,EAAA,CAAK,CAAL,CAAd,CAAuBH,EAAA,CAAM,CAAA,CAAN,CAAvB,CAAqCQ,EAAA,CAAa,GAAb,CAArC,CAA3C,CAAL,CAA0GZ,EAAA,EAA1G,CAA1B,CAA6J,CAAA,CAA7J,CADtQ,CAC2a1e,GAAKke,EAAA,CAA0BK,EAAA,CAAK0B,EAAA,CAAM1B,EAAA,CAAKxxD,EAAL,CAAS+xD,EAAA,CAAM,CAAA,CAAN,CAAT,CAAN,CAA6BP,EAAA,CAAKxxD,EAAL,CAAS+xD,EAAA,CAAM,CAAA,CAAN,CAAT,CAAuBQ,EAAA,CAAa,GAAb,CAAvB,CAA7B,CAAL,CAA8EZ,EAAA,EAA9E,CAA1B,CAAiI,CAAA,CAAjI,CAC3cnB,GAAA,CAAQgB,EAAA,CAAK4B,EAAA,CAAcD,EAAA,CAAIpzD,CAAJ,CAAd,CAAuBozD,EAAA,CAAI1wD,EAAJ,CAAvB,CAAL,CAAsCqvD,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CAC9D,MAAOA,GAAA,CAAG,CAAH,CAAP,EAAgBA,EAAA,CAAG,CAAH,CAD8C,CAAlB,CAAtC,CAEJ6Z,EAAA,EAFI,CAAR,CAE6BtwD,EAF7B,CAEkCmvD,GAAA,CAAQgB,EAAA,CAAKnwD,EAAL,CAAS+wD,EAAA,CAAa,EAAb,CAAT,CAAR,CAAoCtyD,EAApC,CAC9B8L,EAAAA,CAAKqlD,EAAA,CAAkBO,EAAA,CAAK4B,EAAA,CAAcvqD,CAAd,CAAkBsqD,EAAA,CAAIz1D,CAAJ,CAAlB,CAA2By1D,EAAA,CAAIp2D,EAAJ,CAA3B,CAAoCo2D,EAAA,CAAI\/\/C,EAAJ,CAApC,CAA6C+\/C,EAAA,CAAI1\/C,EAAJ,CAA7C,CAAL,CAA4Du+C,EAAA,CAAK,QAAQ,CAACla,EAAD,CAAKv1C,EAAL,CAAS,CAAA,IACvG41C,EADuG,CACnGnvC,EADmG,CAC\/FovC,GAAK71C,EAAA,CAAG,CAAH,CAD0F;AACnFw0D,GAAK3e,EAAGf,CAAAA,SAAW2f,GAAAA,CAAK5e,EAAGO,CAAAA,YADwD,KAC1Cse,GAAK10D,EAAA,CAAG,CAAH,CADqC,CAC9B60D,GAAK,CAAEY,eAAgBf,EAAlB,CAAsB5f,UAAW0f,EAAjC,CAAqCpe,aAAcqe,EAAnD,CAClF,OAAOD,GAAA,CAAKE,EAAL,CAAUD,EAAV,CAAe,CAACz0D,EAAA,CAAG,CAAH,CAAhB,EAAyBw0D,EAAA,CAAKjf,EAAGrwB,CAAAA,KAAM4vB,CAAAA,SAAd,EAA2Bc,EAAA,CAAK,eAAL,CAAsBnvC,EAAtB,CAA2B8uC,EAAGrwB,CAAAA,KAAM4vB,CAAAA,SAApC,CAAgD0f,EAA3E,GAAkF5e,EAAA,CAAK,gBAAL,CAAuBnvC,EAAvB,CAA4B8uC,EAAGrwB,CAAAA,KAAM4vB,CAAAA,SAArC,CAAiD0f,EAAjD,EAAuDjf,EAAGwhH,CAAAA,cAA5I,CAAA,CAA6J,CAAEH,SAAU,CAAA,CAAZ,CAAkB1xI,MAAO2vC,EAAzB,CAA6BmiG,gBAAiBphH,EAA9C,CAAkDmhH,eAAgBtwJ,EAAlE,CAAtL,EAAgQ,CAAEmwJ,SAAU,CAAA,CAAZ,CAAmBC,mBAAoBhiG,EAAGze,CAAAA,YAAH,CAAkBb,EAAGrwB,CAAAA,KAAMkxB,CAAAA,YAA3B,CAA0C,gBAA1C,CAA6Dse,EAAA,CAAKnf,EAAGrwB,CAAAA,KAAMuwC,CAAAA,cAAd,CAA+B,4BAA\/B,CAA8DjB,EAAA,CAAKjf,EAAGrwB,CAAAA,KAAM4vB,CAAAA,SAAd,CAA0B,mBAA1B;AAAgD,wCAAlN,CAA4P5vB,MAAO2vC,EAAnQ,CAF5J,CAAtB,CAGpF8hG,EAHoF,CAA5D,CAGnBvnG,EAAA,CAAqB,QAAQ,CAAC7Z,EAAD,CAAKv1C,EAAL,CAAS,CAC5C,MAAOu1C,GAAP,EAAaA,EAAGqhH,CAAAA,QAAhB,GAA6B52J,EAAG42J,CAAAA,QADY,CAAtC,CAHmB,CAAlB,CAKHr+F,GAAAA,CAAK3J,EAAA,CAA0BK,EAAA,CAAK3oD,CAAL,CAASmpD,EAAA,CAAK,QAAQ,CAACla,EAAD,CAAKv1C,EAAL,CAAS,CAAA,IAC9D41C,GAAK51C,EAAG80C,CAAAA,SADsD,CAC3CruC,GAAKzG,EAAGo2C,CAAAA,YAAcP,GAAAA,CAAK71C,EAAGy1D,CAAAA,cACrD,OAnXyB,KAmXlB,CAnXFp7D,IAAKq6B,CAAAA,GAAL,CAmXK6gB,EAAGa,CAAAA,YAnXR,CAmXsB3vC,EAnXtB,CAmXE,CAA0B,CAAEquC,UAAWc,EAAb,CAAiBQ,aAAc3vC,EAA\/B,CAAmCwwJ,KAAM,CAAzC,CAA4C9\/I,QAAS,CAAA,CAArD,CAA1B,CAAyFo+B,EAAGT,CAAAA,SAAH,GAAiBc,EAAjB,EAAwC,CAAxC,CAAuBnvC,EAAvB,EAA6BmvC,EAA7B,CAAkCC,EAAlC,EAA4C,CAAEO,aAAc3vC,EAAhB,CAAoBquC,UAAWc,EAA\/B,CAAmCqhH,KAAM1hH,EAAGT,CAAAA,SAATmiH,CAAqBrhH,EAAxD,CAA4Dz+B,QAAS,CAAA,CAArE,CAA5C,CAA0H,CAAEi\/B,aAAc3vC,EAAhB,CAAoBquC,UAAWc,EAA\/B,CAAmCqhH,KAAM,CAAzC,CAA4C9\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\/F,EAA\/N,CAtCiB,CAApB,CAuCNzL,EAAA,CAAI4nG,EAAJ,CAvCM,CA9ZT,CAscIoD,GAAK\/mG,EAAA,CAAO,QAAQ,CAAC\/xD,CAAD,CAAK,CAAA,IACvBkI,EAAKlI,CAAA,CAAG,CAAH,CAAMyc,CAAAA,GAAKnV,EAAAA,CAAK+nD,EAAA,CAAe,CAAA,CAAf,CAAzB,KAAgD7wD,EAAKkxD,EAAA,CAAkBO,EAAA,CAAK3oD,CAAL,CAASvG,EAAA,CAAO,QAAQ,CAACw1C,CAAD,CAAK,CAClG,MAAOA,EAD2F,CAApB,CAAT,CAEnE6Z,EAAA,EAFmE,CAAlB,CAGrD,OAAOxuB,GAAA,CAAUt6B,CAAV,CAAc,QAAQ,CAACivC,CAAD,CAAK,CAChCA,CAAA,EAAeruC,CAl\/BV,CAzDG8mD,CAyDH,CAk\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\/\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\/D,CAAwEogB,EAAA,CAAI\/\/C,EAAJ,CAAxE,CAAiF+\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\/F,GAAKpoG,EAAA,CAAO,QAAQ,CAAC\/xD,CAAD,CAAK,CAAA,IACvBkI,EAAKlI,CAAA,CAAG,CAAH,CADkB,CACXsH,EAAKY,CAAGuuJ,CAAAA,KADG,CACIj4J,EAAK0J,CAAGgyD,CAAAA,UADZ,CACwB\/9D,GAAK+L,CAAGswC,CAAAA,IADhC;AACsCh9C,GAAK0M,CAAG6yD,CAAAA,cAD9C,CAC8DlpD,GAAK3J,CAAGk4E,CAAAA,GADtE,CAC2E3hF,GAAKuB,CAAA,CAAG,CAAH,CADhF,CACuFwxC,GAAKxxC,CAAA,CAAG,CAAH,CAD5F,CACmGyxC,GAAKD,EAAGyoH,CAAAA,YAAc17J,EAAAA,CAAKizC,EAAGsoH,CAAAA,YAAc54J,GAAAA,CAAKswC,EAAGqpB,CAAAA,aADvJ,KACsK7oB,GAAKhyC,CAAA,CAAG,CAAH,CAD3K,CACkL0xC,GAAKM,EAAGknH,CAAAA,qBAD1L,CACiN7uJ,GAAK2nC,EAAGmnH,CAAAA,uBAAyB5\/F,GAAAA,CAAKv5D,CAAA,CAAG,CAAH,CAAM66D,CAAAA,aAD7P,KAC4QgB,GAAK77D,CAAA,CAAG,CAAH,CADjR,CACwR87D,GAAK97D,CAAA,CAAG,CAAH,CAAMg5J,CAAAA,QADnS,CAC6Sj9F,GAAK\/7D,CAAA,CAAG,CAAH,CAAMs2J,CAAAA,gBAAkB7jH,EAAAA,CAAK4c,EAAA,CAAe,EAAf,CAA1W,KAA8XtxD,GAAKoxD,EAAA,EACnYF,GAAA,CAAQxwD,EAAGm7J,CAAAA,eAAX,CAA4BnnH,CAA5B,CACIh3C,EAAAA,CAAKm0D,EAAA,CAA0BK,EAAA,CAAK4B,EAAA,CAAciK,EAAd,CAAkBC,EAAlB,CAAsBnK,EAAA,CAAIngB,EAAJ,CAAQ0oB,EAAR,CAAtB,CAAmCvI,EAAA,CAAIpzD,CAAJ,CAAnC,CAA4CozD,EAAA,CAAItqD,CAAJ,CAA5C,CAAqDsqD,EAAA,CAAIvnD,EAAJ,CAArD,CAA8DqnC,EAA9D,CAAkEkgB,EAAA,CAAInf,CAAJ,CAAlE,CAA2Emf,EAAA,CAAIp2D,EAAJ,CAA3E,CAAoFo2D,EAAA,CAAI\/\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\/\/J,OAAQ4\/J,EAA\/B,CAAmC\/hH,KAAM8gB,EAAN9gB,EAAY8gB,EAAA,CAAG6L,EAAH,CAA\/C,CAAR,CAAkE,CAAAo1F,EAAA,EAAMG,EAD1E,CADF,CAGF,GAAI,CAAChlG,EAAL,CACE,MAAOiF,GAAA,CAAG,EAAH,CAAO2Z,EAAP,CAAW9e,EAAX,CAAeY,EAAf,CAAmB1uD,EAAnB,CAAuBouD,EAAvB,CApBW,KAqBhBkiE,GAAiB,CAAZ,CAAAniE,EAAGz5D,CAAAA,MAAH,CAAgBy5D,EAAA,CAAGA,EAAGz5D,CAAAA,MAAN,CAAe,CAAf,CAAhB,CAAoC,CAApC,CAAwC,CArB7B,CAqBgC6oE,GAAK,QAAQ,CAACyH,EAAD,CAAK1rE,EAAL,CAASw2C,EAAT,CAAa4iH,EAAb,CAAiB,CAChF,MAAO,KAAK,EAAL,GAAWA,EAAX,GAAkBA,EAAlB,CAAuB,CAAvB,EAAgC,CAAhC,CAA2BA,EAA3B,GAAsCp5J,EAAtC,CAA2C3F,IAAKC,CAAAA,GAAL,CAAS0F,EAAT,CAAe0rE,EAhZ9D,CAAGjU,EAAA,CAgZ2DiU,EAhZ3D,CAgZ+D0tF,EAhZ\/D,CAgZmEzhG,EAhZnE,CAAH,CAgZyEh+D,CAAAA,MAA1B,CAA3C,EAA+E69D,EAAA,EAAImiG,EAAA,CAAKnjH,EAAL,CAASojH,EAAT,CAAcniG,EAAA,CAAEgU,EAAF,CAAOC,EAAP,CAAW1rE,EAAX,CAAe2rE,EAAf,CAAoB\/T,EAApB,CAAd,CAAsCiiG,EAAtC,CAA2CpiG,EAAA,CAAEgU,EAAF,CAAMkuF,EAAN,CAAUhuF,EAAV,CAAciuF,EAAd,CAA3C,CAA8DnuF,EAAGtkE,CAAAA,KAAH,CAASyyJ,EAAT,CAAaC,EAAb,CAAkB,CAAlB,CAAlE,EAAyFhiG,EAAzF,CADN,KAE5E4T,EAF4E,CAExEkuF,EAFwE,CAEpEhuF,EAFoE,CAEhEiuF,EAFgE,CAE5DC,EAF4D,CAAzB,CAGvDrD,EAHuD,CAGnD\/vJ,EAHmD,CAG\/CovC,EAH+C,CAG3CmhF,EAH2C,CAIzD,IAAI,CAAJ,GAAU\/yD,EAAG7oE,CAAAA,MAAb,CACE,MAAO,KACT,KAAIkjC;AAAKk2B,EAALl2B,CAAU,CACd,OAAOq7B,GAAA,CAAG9M,EAAA,CAAI,EAAJ,CAAQ,QAAQ,CAAC6e,EAAD,CAAK,CAC7B,IAD6B,IACpB1rE,EADoB,CAChBw2C,GAAK2d,EAAA,CAAG8P,EAAH,CAAlB,CAA0B,CAAal8D,CAAX\/H,EAAW+H,CAANyuC,EAAA,EAAMzuC,EAAAA,IAAvC,CAAA,CAA+C,CAAA,IACzC4xJ,GAAK35J,EAAG0C,CAAAA,KADiC,CAC1BipE,GAAKguF,EAAGj3J,CAAAA,KAAOk3J,GAAAA,CAAKjuF,EAAGhyE,CAAAA,MADG,KACKkgK,GAAKF,EAAGn2I,CAAAA,KADb,CACoBs2I,GAAKnuF,EAAG3vE,CAAAA,IACrE2vE,GAAGhyE,CAAAA,MAAP,CAAgB8M,EAAhB,GACM3H,EACJ,EADU+6J,EACV,EADgBx\/J,IAAKwlC,CAAAA,KAAL,EAAYp5B,EAAZ,CAAiBklE,EAAGhyE,CAAAA,MAApB,CAA6By7D,EAA7B,GAAoC0kG,EAApC,CAAyC1kG,EAAzC,EAChB,EADiEukG,EAAGn2I,CAAAA,KACpE,CAAAo2I,EAAA,EAAM96J,EAAN,CAAWg7J,EAAX,CAAgBh7J,EAAhB,CAAqBs2D,EAFvB,CAIAykG,GAAA,CAAK7iC,EAAL,GAAY4iC,EAAA,GAAO5iC,EAAP,CAAY6iC,EAAZ,EAAkBC,EAAlB,CAAsBD,EAAtB,CAA2B7iC,EAAvC,CACA,KAAS+iC,EAAT,CAAc1\/J,IAAK6uB,CAAAA,GAAL,CAASywI,EAAGl2I,CAAAA,GAAZ,CAAiB6a,EAAjB,CAAd,CAA6CstC,EAA7C,EAAmDmuF,EAAnD,EAAyD,EAAEH,EAAF,EAAQ\/jH,EAAR,CAAzD,CAAsE+1B,EAAA,EAAtE,CACEF,EAAGlwE,CAAAA,IAAH,CAAQ,CAAEo5D,MAAOgX,EAAT,CAAa5vE,KAAM89J,EAAnB,CAAuBngK,OAAQigK,EAA\/B,CAAmCpiH,KAAM8gB,EAAN9gB,EAAY8gB,EAAA,CAAGsT,EAAH,CAA\/C,CAAR,CAAkE,CAAAguF,EAAA,EAAME,EAAN,CAAW1kG,EARlC,CADlB,CAArB,CAAH,CAWHke,EAXG,CAWC9e,EAXD,CAWKY,EAXL,CAWS1uD,EAXT,CAWaouD,EAXb,CA5Ba,CAAlB,CAF+B,CA0C\/B\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\/E,OAAOJ,GAAA,CAAQgB,EAAA,CAAK\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\/B,EAAGwlH,CAAAA,eADvM,CACwN\/1J,GAAKuwC,EAAGglH,CAAAA,KAAO\/kH,GAAAA,CAAKD,EAAG2uC,CAAAA,GAD\/O,KACoP\/1E,GAAKrK,CAAA,CAAG,CAAH,CAAMyc,CAAAA,GAD\/P,CACoQ88C,GAAKv5D,CAAA,CAAG,CAAH,CAAMs2J,CAAAA,gBAAkBz6F;CAAAA,CAAKnM,EAAA,CAAkBO,EAAA,CAAKjwD,CAAA,CAAG,CAAH,CAAMg7J,CAAAA,SAAX,CAAsB\/pG,EAAA,CAAep\/C,EAAGgnJ,CAAAA,uBAAlB,CAAtB,CAAkEpoG,EAAA,CAAK,QAAQ,CAACla,EAAD,CAAKv1C,EAAL,CAAS,CAAA,IACra41C,GAAKL,EAAA,CAAG,CAAH,CADga,CACzZ9uC,GAAKzG,EAAA,CAAG,CAAH,CADoZ,CAC7Y61C,GAAKpvC,EAAGi5C,CAAAA,KADqY,CAC9X8U,GAAK\/tD,EAAGyyD,CAAAA,UAAYzE,GAAAA,CAAKhuD,EAAGoqC,CAAAA,MAAR4jB,CAAiBhuD,EAAGqzD,CAAAA,YAAnF,KAAiGpF,GAAK,CACtG,OAAOnf,GAAA,CAAG,CAAH,CAAA,GAAUif,EAAV,EAA4B,CAA5B,CAAgB5e,EAAGx6C,CAAAA,MAAnB,EAA6C,CAA7C,CAAiCy6C,EAAGz6C,CAAAA,MAApC,GAAmD,CAAnD,GAAyDy6C,EAAA,CAAG,CAAH,CAAM4jB,CAAAA,aAA\/D,EAAgF,CAAhF,GAAsF7jB,EAAA,CAAG,CAAH,CAAM6jB,CAAAA,aAA5F,EAA6G,CAA7G,GAAmH\/E,EAAnH,CAAwHD,EAAxH,CAA6Hlf,EAAA,CAAG,CAAH,CAA7H,IAAwImf,EAAxI,EAA8I10D,EAAA,CAAG,CAAH,CAA9I,GAAuJ,CAAC00D,EAAD,CAAK7e,EAAL,CAAS2e,EAAT,CAAaC,EAAb,CAF2Q,CAAtB,CAGlZ,CAAC,CAAD,CAAI,EAAJ,CAAQ,CAAR,CAAW,CAAX,CAHkZ,CAAlE,CAGhU10D,EAAA,CAAO,QAAQ,CAACw1C,EAAD,CAAK,CACrC,MAAO,EAAP,GAAaA,EAAA,CAAG,CAAH,CADwB,CAApB,CAHgU,CAK\/U0a,EAAA,CAAezyD,EAAf,CAAmBsB,EAAnB,CAAuBtE,EAAvB,CAA2Bg2C,EAA3B,CAA+BnnC,EAA\/B,CAL+U,CAK3StJ,EAAA,CAAO,QAAQ,CAACw1C,EAAD,CAAK,CAC1D,MAAO,CAACA,EAAA,CAAG,CAAH,CAAR,EAAiB,CAAjB,GAAuBA,EAAA,CAAG,CAAH,CAAvB,EAjUK+jB,IAiUL,GAAgC\/jB,EAAA,CAAG,CAAH,CAD0B,CAApB,CAL2S,CAO\/Uga,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CACpB,IAAIv1C,GAAKu1C,EAAA,CAAG,CAAH,CAAA,CAAM,CAAN,CACT,OAAO,GAAIA,EAAA,CAAG,CAAH,CAAJ,EAAW,+BAAX;AAA4C,CAAEwqB,OAAQ\/\/D,EAAV,CAA5C,CAA4Dk1D,EAAGkD,CAAAA,KAA\/D,CAAA,CAAuEp4D,EAF1D,CAAlB,CAP+U,CAAlB,CAcjU,OAAO4gC,GAAA,CAAUquB,EAAA,CAAK4L,CAAL,CAAS5K,EAAA,CAAe90D,EAAf,CAAmBsC,CAAnB,CAAT,CAAV,CAA4C,QAAQ,CAAC83C,EAAD,CAAK,CAAA,IAC1DK,GAAKL,EAAA,CAAG,CAAH,CADqD,CAC9C9uC,GAAK8uC,EAAA,CAAG,CAAH,CACrBA,GAAA,CAAG,CAAH,CAAA,EAASylH,EAAA,EAAT,CAAwB7\/J,EApxC1B,CAtDYwyD,CAsDZ,CAoxC8BlnD,EApxC9B,CAoxCmCmvC,EApxCnC,CAoxCE,CAAuCklB,CAAA,CAAG,CAACllB,EAAJ,CAFuB,CAAzD,CAAA,CAGHhV,EAAA,CAAUquB,EAAA,CAAK4B,EAAA,CAAcjC,EAAA,CAA0BnxD,CAA1B,CAA8B,CAAA,CAA9B,CAAd,CAAoDtC,EAApD,CAAwDo9D,EAAxD,CAAL,CAAkEx4D,EAAA,CAAO,QAAQ,CAACw1C,EAAD,CAAK,CAClG,MAAO,CAACA,EAAA,CAAG,CAAH,CAAR,EAAiB,CAACA,EAAA,CAAG,CAAH,CAAlB,EAA2B,CAA3B,GAAiCA,EAAA,CAAG,CAAH,CADiE,CAApB,CAAlE,CAEVga,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CACpB,MAAOA,GAAA,CAAG,CAAH,CADa,CAAlB,CAFU,CAIVsa,EAAA,CAAa,CAAb,CAJU,CAAV,CAIkBiL,CAJlB,CAHG,CAOoB7M,EAAA,CAAQgB,EAAA,CAAK\/9C,EAAL,CAASq+C,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CAC5D,MAAO,CAAEjqB,IAAK,CAACiqB,EAAR,CADqD,CAAlB,CAAT,CAAR,CAEtBjvC,CAFsB,CAPpB,CASGs6B,EAAA,CAAUquB,EAAA,CAAK1xD,EAAL,CAAS0yD,EAAA,CAAe\/vD,EAAf,CAAmBwwC,EAAnB,CAAT,CAAiC6e,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CACrE,IAAIv1C,GAAKu1C,EAAA,CAAG,CAAH,CACT,OAAOv1C,GAAP,CAAYu1C,EAAA,CAAG,CAAH,CAAM2iB,CAAAA,QAAlB,CAA6Bl4D,EAA7B,CAAkCu1C,EAAA,CAAG,CAAH,CAFmC,CAAlB,CAAjC,CAAV,CAGL,QAAQ,CAACA,EAAD,CAAK,CACRp6C,EA\/xCV,CAtDYwyD,CAsDZ,CA+xCcpY,EA\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\/qG,EAAA,CAAO,QAAQ,CAAC\/xD,CAAD,CAAK,CAAA,IACvBkI,EAAKlI,CAAA,CAAG,CAAH,CADkB,CACXsH,EAAKY,CAAGuuJ,CAAAA,KADG,CACIj4J,EAAK0J,CAAGgyD,CAAAA,UAAY\/9D,EAAAA,CAAK+L,CAAGk4E,CAAAA,GADhC,KACqC5kF,GAAKwE,CAAA,CAAG,CAAH,CAD1C,CACiD6R,GAAKrW,EAAGs6C,CAAAA,SADzD,CACoEr3C,GAAKjD,EAAGi7D,CAAAA,cAD5E,CAC4FjlB,GAAKh2C,EAAGo6J,CAAAA,YADpG,CACkHr3J,GAAK\/C,EAAGq6J,CAAAA,iBAD1H,CAC6I3jJ,GAAK1W,EAAGs6J,CAAAA,iBADrJ,CACwK50J,GAAK1F,EAAG46J,CAAAA,mBAAqBpkH,EAAAA,CAAKhyC,CAAA,CAAG,CAAH,CAAM03J,CAAAA,aAAehmH,GAAAA,CAAKyd,EAAA,EAC\/P,OAAOF,GAAA,CAAQgB,EAAA,CAAKve,EAAL,CAASuf,EAAA,CAAe3pD,CAAf,CAAmB7I,EAAnB,CAAuBD,CAAvB,CAA2BgzC,EAA3B,CAA+BjzC,EAA\/B,CAAmC2T,EAAnC,CAAuCL,EAAvC,CAAT,CAAqDo\/C,EAAA,CAAe90D,CAAf,CAArD,CAAyEo0D,EAAA,CAAK,QAAQ,CAACha,EAAD,CAAK,CAAA,IACpGK,GAAKL,EAAA,CAAG,CAAH,CAD+F,CACxF9uC,GAAKmvC,EAAA,CAAG,CAAH,CADmF,CAC5EC,GAAKD,EAAA,CAAG,CAAH,CADuE,CAChE4e,GAAK5e,EAAA,CAAG,CAAH,CAD2D,CACpD6e,GAAK7e,EAAA,CAAG,CAAH,CAD+C,CACxC8e,GAAK9e,EAAA,CAAG,CAAH,CADmC,CAC5Bif,GAAKjf,EAAA,CAAG,CAAH,CADuB,CAChBkf,GAAKlf,EAAA,CAAG,CAAH,CAAO0iB,GAAAA,CAAK1iB,EAAA,CAAG,CAAH,CADD,KACQi2B,GAAKt2B,EAAA,CAAG,CAAH,CAAOi2B;EAAAA,CAAK\/kE,EAAGsB,CAAAA,IAD5B,KACkCyuJ,GAAK\/vJ,EAAG2vD,CAAAA,QAD1C,CACoD\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\/J,EAAA,CAAG,QAAH,CAA7I,CAA2Jq\/J,gBAAiBr\/J,EAAA,CAAG,QAAH,CAA5K,CAA0Ls\/J,qBAAsBt\/J,EAAA,CAAG,aAAH,CAAhN,CAAmOu\/J,cAAev\/J,EAAA,CAAG,MAAH,CAAW,KAAX,CAAlP,CAAqQw\/J,cAAex\/J,EAAA,CAAG,MAAH,CAAW,KAAX,CAApR,CAAuSy\/J,eAAgBz\/J,EAAA,CAAG,OAAH,CAAY,KAAZ,CAAvT,CAA2U0\/J,kBAAmB1\/J,EAAA,CAAG,UAAH,CAAe,KAAf,CAA9V,CAAqX2\/J,iBAAkB3\/J,EAAA,CAAG,kBAAH,CAAvY,CAA+Z4\/J,sBAAuB5\/J,EAAA,CAAG,uBAAH,CAAtb,CAVkB,CAAlB,CA11BT;AA42BI6\/J,GAAKvsG,EAAA,CAAO,QAAQ,CAAC\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\/J,CAAD,CAAK,CACpB,MAAOw7D,GAAG\/wC,CAAAA,aAAH,CAAiB,KAAjB,CAAwB,CAAEoB,MAAO,CAAE5vB,OAAQ+D,CAAG\/D,CAAAA,MAAb,CAAT,CAAxB,CADa,CAj4BtB,CAo4BIsjK,GAAK,CAAElzI,SAAU+wI,EAAA,EAAZ,CAAkB5wI,OAAQ,CAA1B,CAA6BgzI,eAAgB,MAA7C,CAp4BT,CAq4BIC,GAAK,CAAED,eAAgB,MAAlB,CAr4BT,CAs4BIE,GAAKlkG,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,CAACppC,CAAD,CAAK,CACxBsH,CAAAA,CAAKtH,CAAG2\/J,CAAAA,WAAanhK,EAAAA,CAAK,IAAK,EAAVA,GAAgB8I,CAAhB9I,EAAsB8I,CADnB,KACuBnL,EAAKyjK,EAAA,CAAG,WAAH,CAD5B,CAC6CpkK,EAAKqkK,EAAA,CAAG,YAAH,CADlD,CACoEphK,EAAKmhK,EAAA,CAAG,iBAAH,CADzE,CACgGpuH,GAAKouH,EAAA,CAAG,oBAAH,CADrG,CAC+HnuH,GAAKouH,EAAA,CAAG,4BAAH,CADpI,CACsKthK,GAAKshK,EAAA,CAAG,sBAAH,CAA4B3tJ;CAAAA,CAAKs\/B,EAAA,EAAM\/yC,CAAN,CAAWgzC,EAAX,CAAgBlzC,EAD5N,KACgO2C,GAAK0+J,EAAA,CAAG,aAAH,CADrO,CACwP5tH,GAAK4tH,EAAA,CAAG,SAAH,CAD7P,CAC4QluH,GAAKkuH,EAAA,CAAG,cAAH,CAAoBv1J,GAAAA,CAAKu1J,EAAA,CAAG,gBAAH,CAAsBrmG,GAAAA,CAAKqmG,EAAA,CAAG,UAAH,CADrU,KACqV\/jG,GAAK+jG,EAAA,CAAG,KAAH,CAD1V,CACqW9jG,GAAK+jG,EAAA,CAAG,KAAH,CAAWptH,EAAAA,CAAK8iB,EAAA,CAAG\/5D,CAAH,CAAO+9D,EAAP,CAAWlvD,EAAX,CAAe7L,CAAA,CAAK6vD,EAAL,CAAan8C,CAA5B,CAAgC2pD,EAAhC,CAAoCC,EAApC,CAAwCtqB,EAAxC,CAA4CnD,CAAAA,WAAatwC,GAAAA,CAAKy9D,EAAGz5B,CAAAA,QAAH,CAAY,CAAZ,CADxb,KACwctmC,GAAKsC,EAAA,CAAG,CAAH,CAD7c,CACodC,GAAKD,EAAA,CAAG,CAAH,CACrf+hK,GAAA,CAAG,WAAH,CAAgB,QAAQ,CAACvpH,EAAD,CAAK,CAC3B96C,EAAA,GAAO86C,EAAP,EAAav4C,EAAA,CAAGu4C,EAAH,CADc,CAA7B,CAGIkuB,GAAAA,CAAKm7F,EAAA,CAAG,kBAAH,CALmB,KAKKz6F,GAAKy6F,EAAA,CAAG,uBAAH,CAALz6F,EAAoCm6F,EAAIvnC,EAAAA,CAAK6nC,EAAA,CAAG,eAAH,CALlD,KAKuE5nC,GAAK4nC,EAAA,CAAG,eAAH,CAL5E,CAKiG36F,GAAK26F,EAAA,CAAG,gBAAH,CALtG,CAK4H95F,GAAK85F,EAAA,CAAG,gBAAH,CALjI,CAKuJtgI,GAAKsgI,EAAA,CAAG,WAAH,CAL5J,CAK6Kj\/J,GAAiC,CAAjCA,CAAKi\/J,EAAA,CAAG,cAAH,CAAmBxjK,CAAAA,MAAYypE,GAAAA,CAAK+5F,EAAA,CAAG,oBAAH,CAA0B16F;EAAAA,CAAK1mE,CAAA,CAAK,EAAL,CAAU,CAAEiwJ,UAAW,YAAb,CAA2BzhC,WAAY7wH,CAAGq5C,CAAAA,SAAfw3E,CAA2BnnD,EAAtD,CAA0DwnF,cAAelxJ,CAAG2+D,CAAAA,YAA5E,CAA0FilG,UAAWtkK,EAArG,CAC3R,OAAO,CAAC+C,CAAD,EAAO,CAAP,GAAarC,CAAG+9D,CAAAA,UAAhB,EAA8BuK,EAA9B,CAAmC,GAAIpP,EAAe5qC,CAAAA,aAAnB,EAAkCg6C,EAAlC,CAAsCnJ,EAAA,CAAGmJ,EAAH,CAAOzyB,EAAP,CAAtC,CAAnC,CAAuF,GAAIqjB,EAAe5qC,CAAAA,aAAnB,EAAkCstG,CAAlC,CAAsC\/iE,EAAA,CAAG,EAAH,CAAOsG,EAAA,CAAGy8D,CAAH,CAAO\/lF,EAAP,CAAP,CAAmB,CAAEnjC,IAAK4jC,CAAP,CAAW5mB,MAAOq5C,EAAlB,CAAsB,eAAgB1mE,CAAA,CAAK,wBAAL,CAAgC,oBAAtE,CAAnB,CAAtC,CAAsLyC,CAA7BzC,CAAA,CAAKrC,CAAGy+D,CAAAA,QAAR,CAAmBz+D,CAAGukD,CAAAA,KAAOz\/C,EAAAA,GAA9B,CAAkC,QAAQ,CAACs1C,EAAD,CAAK,CAAA,IAC\/Rv1C,GAAKu1C,EAAGkkB,CAAAA,aADuR,CACxQvyD,GAAK49D,EAAA,CAAG9kE,EAAH,CAAQ7E,CAAG4+D,CAAAA,cAAX,CAA2BxkB,EAAGiC,CAAAA,IAA9B,CAAoCxG,EAApC,CAChC,OAAO1S,GAAA,CAAK,GAAI+1B,EAAe5qC,CAAAA,aAAnB,EAAkC06C,EAAlC,CAAsCnQ,EAAA,CAAG,EAAH,CAAOsG,EAAA,CAAG6J,EAAH,CAAOnzB,EAAP,CAAP,CAAmB,CAAEvrC,IAAKyB,EAAP,CAAW0tD,MAAOrf,EAAGqf,CAAAA,KAArB,CAA4B35D,OAAQs6C,EAAGv5C,CAAAA,IAAvC,CAA6CwgB,KAAM+4B,EAAG\/4B,CAAAA,IAATA,EAAiB,MAA9D,CAAnB,CAA2F,OAAA;AAAY+4B,EAAG\/4B,CAAAA,IAAf,CAAsB,EAAtB,CAA2B,CAAEo8C,WAAYrjB,EAAGqjB,CAAAA,UAAjB,CAAtH,CAAtC,CAAL,CAAmM,OAAA,GAAYrjB,EAAG\/4B,CAAAA,IAAf,CAAsB,GAAI63C,EAAe5qC,CAAAA,aAAnB,EAAkCw6C,EAAlC,CAAsCjQ,EAAA,CAAG,EAAH,CAAOsG,EAAA,CAAG2J,EAAH,CAAOjzB,EAAP,CAAP,CAAmB,CAAEvrC,IAAKyB,EAAP,CAAW,aAAclH,EAAzB,CAA6B,kBAAmBu1C,EAAGv5C,CAAAA,IAAnD,CAAyD,kBAAmBu5C,EAAGqf,CAAAA,KAA\/E,CAAsF\/pC,MAAO0zI,EAA7F,CAAnB,CAAtC,CAA6J7tH,EAAA,CAAG6E,EAAGqf,CAAAA,KAAN,CAA7J,CAAtB,CAAmM,GAAIP,EAAe5qC,CAAAA,aAAnB,EAAkCutG,EAAlC,CAAsChjE,EAAA,CAAG,EAAH,CAAOsG,EAAA,CAAG08D,EAAH,CAAOhmF,EAAP,CAAP,CAAmB,CAAEvrC,IAAKyB,EAAP,CAAW,aAAclH,EAAzB,CAA6B,kBAAmBu1C,EAAGv5C,CAAAA,IAAnD,CAAyD,kBAAmBu5C,EAAGqf,CAAAA,KAA\/E,CAAsF,wBAAyBrf,EAAGqjB,CAAAA,UAAlH,CAA8H\/tC,MAAO4zI,EAArI,CAAnB,CAAtC,CAAqM9+J,EAAA,CAAKO,EAAA,CAAGq1C,EAAGqf,CAAAA,KAAN,CAAarf,EAAGqjB,CAAAA,UAAhB,CAA4BrjB,EAAGiC,CAAAA,IAA\/B,CAAqCxG,EAArC,CAAL,CAAgD9wC,EAAA,CAAGq1C,EAAGqf,CAAAA,KAAN,CAAarf,EAAGiC,CAAAA,IAAhB,CAAsBxG,EAAtB,CAArP,CAF1G,CAA\/C,CAAxJ,CANlE,CAArB,CAt4BT,CAi5BI0pB,GAAK,CAAEz\/D,OAAQ,MAAV,CAAkBytI,QAAS,MAA3B,CAAmCltB,UAAW,MAA9C,CAAsDnwF,SAAU,UAAhE;AAA4E2zI,wBAAyB,OAArG,CAj5BT,CAk5BIC,GAAK,CAAE\/jK,MAAO,MAAT,CAAiBD,OAAQ,MAAzB,CAAiCowB,SAAU,UAA3C,CAAuDC,IAAK,CAA5D,CAl5BT,CAm5BI4zI,GAAK,CAAEhkK,MAAO,MAAT,CAAiBmwB,SAAU+wI,EAAA,EAA3B,CAAiC9wI,IAAK,CAAtC,CAn5BT,CAw5BI6zI,GAAK3kG,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,EAAG,CAAA,IACtBppC,EAAK4\/J,EAAA,CAAG,iBAAH,CADiB,CACM5+J,EAAK6+J,EAAA,CAAG,cAAH,CADX,CAC+B33J,EAAK03J,EAAA,CAAG,iBAAH,CADpC,CAC2Dt4J,EAAKguD,EAAA,CAAE,QAAQ,CAAC\/e,EAAD,CAAK,CACvG,MAAOv1C,EAAA,CAAG61D,EAAA,CAAGtgB,EAAH,CAAO,QAAP,CAAH,CADgG,CAAf,CADhE,CAGtB\/3C,GAAKohK,EAAA,CAAG,SAAH,CACT,OAAO5\/J,EAAA,CAAK,GAAIq1D,EAAe5qC,CAAAA,aAAnB,EAAkCviB,CAAlC,CAAsC,CAAE2G,IAAKvH,CAAP,CAAtC,CAAmD,GAAI+tD,EAAe5qC,CAAAA,aAAnB,EAAkCzqB,CAAlC,CAAsCs7D,EAAA,CAAGt7D,CAAH,CAAOxB,EAAP,CAAtC,CAAnD,CAAL,CAA6G,IAJ1F,CAAnB,CAx5BT,CA85BI4hK,GAAK5kG,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,EAAG,CAAA,IACtBppC,EAAK4\/J,EAAA,CAAG,iBAAH,CADiB,CACM5+J,EAAK6+J,EAAA,CAAG,cAAH,CADX,CAC+B33J,EAAK03J,EAAA,CAAG,iBAAH,CADpC,CAC2Dt4J,EAAKguD,EAAA,CAAE,QAAQ,CAAC\/e,EAAD,CAAK,CACvG,MAAOv1C,EAAA,CAAG61D,EAAA,CAAGtgB,EAAH,CAAO,QAAP,CAAH,CADgG,CAAf,CADhE;AAGtB\/3C,GAAKohK,EAAA,CAAG,SAAH,CACT,OAAO5\/J,EAAA,CAAK,GAAIq1D,EAAe5qC,CAAAA,aAAnB,EAAkCviB,CAAlC,CAAsC,CAAE2G,IAAKvH,CAAP,CAAtC,CAAmD,GAAI+tD,EAAe5qC,CAAAA,aAAnB,EAAkCzqB,CAAlC,CAAsCs7D,EAAA,CAAGt7D,CAAH,CAAOxB,EAAP,CAAtC,CAAnD,CAAL,CAA6G,IAJ1F,CAAnB,CA95BT,CAs7BI6hK,GAAKA,QAAQ,CAACrgK,CAAD,CAAK,CAChBsH,CAAAA,CAAKtH,CAAG0pC,CAAAA,QADQ,KACElrC,EAAK,GAAI62D,EAAe7lC,CAAAA,UAAnB,EAA+B6tI,EAA\/B,CADP,CAC2ClhK,EAAK0jK,EAAA,CAAG,gBAAH,CADhD,CACsErkK,EAAKqkK,EAAA,CAAG,iBAAH,CAD3E,CACkGhuJ,GAAKyjD,EAAA,CAAE\/H,EAAA,CAAQpxD,CAAR,CAAY,QAAQ,CAACo6C,EAAD,CAAK,CACpJ,MAAOsgB,GAAA,CAAGtgB,EAAH,CAAO,QAAP,CAD6I,CAAzB,CAAF,CAG3H,OAAOilB,GAAGvpC,CAAAA,SAAH,CAAa,QAAQ,EAAG,CAC7BzzB,CAAA,GAAOrC,CAAA,CAAGqC,CAAGi4D,CAAAA,cAAN,CAAA,CAAuBj7D,CAAA,CAAGgD,CAAG+\/J,CAAAA,UAAN,CAA9B,CAD6B,CAAxB,CAEJ,CAAC\/\/J,CAAD,CAAKrC,CAAL,CAASX,CAAT,CAFI,CAAA,CAEWggE,EAAG\/wC,CAAAA,aAAH,CAAiB,KAAjB,CAAwB,CAAEoB,MAAOo0I,EAAT,CAAapxJ,IAAKgD,EAAlB,CAAsB,qBAAsB,SAA5C,CAAxB,CAAiFvK,CAAjF,CANE,CAt7BtB,CA87BIg5J,GAAKA,QAAQ,CAACtgK,CAAD,CAAK,CAChBgB,CAAAA,CAAKhB,CAAG0pC,CAAAA,QADQ,KACEpiC,EAAK,GAAI+tD,EAAe7lC,CAAAA,UAAnB,EAA+B6tI,EAA\/B,CADP,CAC2C7+J,EAAKqhK,EAAA,CAAG,oBAAH,CADhD,CAC0E1jK,EAAK0jK,EAAA,CAAG,iBAAH,CAD\/E;AACsGrkK,GAAKokK,EAAA,CAAG,oBAAH,CAA0B\/tJ,GAAAA,CAAKopD,EAAA,CAAGz8D,CAAH,CAAOhD,EAAP,CAC9J,OAAOggE,GAAGvpC,CAAAA,SAAH,CAAa,QAAQ,EAAG,CAC7B3qB,CAAA,GAAOnL,CAAA,CAAGmL,CAAGi3J,CAAAA,UAAN,CAAA,CAAmB\/\/J,CAAA,CAAG,CAAEg3C,UAAW,CAAb,CAAgB0lB,cAAe5zD,CAAGmvD,CAAAA,cAAlC,CAAkD0E,aAAc,GAAhE,CAAH,CAA1B,CAD6B,CAAxB,CAEJ,CAAC7zD,CAAD,CAAK9I,CAAL,CAASrC,CAAT,CAFI,CAAA,CAEWq\/D,EAAG\/wC,CAAAA,aAAH,CAAiB,KAAjB,CAAwB,CAAE5b,IAAKgD,EAAP,CAAWga,MAAOo0I,EAAlB,CAAsB,qBAAsB,QAA5C,CAAxB,CAAgFj\/J,CAAhF,CAJE,CA97BtB,CAo8BIu\/J,GAAKA,QAAQ,CAACvgK,CAAD,CAAK,CAChBgB,CAAAA,CAAKhB,CAAG0pC,CAAAA,QADQ,KACExhC,EAAK03J,EAAA,CAAG,sBAAH,CADP,CACmCt4J,EAAKs4J,EAAA,CAAG,cAAH,CAAoBphK,EAAAA,CAAKw2D,EAAA,CAAG,EAAH,CAAOkrG,EAAP,CAAW,CAAEH,UAAWz4J,CAAXy4J,CAAgB,IAAlB,CAAX,CAArF,KAA2H5jK,EAAKyjK,EAAA,CAAG,SAAH,CAChI,OAAO,GAAIvqG,EAAe5qC,CAAAA,aAAnB,EAAkCviB,CAAlC,EAAwC,KAAxC,CAA+C,CAAE2jB,MAAOrtB,CAAT,CAAa2T,QAAShW,CAAtB,CAA\/C,CAA2E6E,CAA3E,CAFa,CAp8BtB,CAw8BIw\/J,GAAK5tG,EAAA,CAAkB0rG,EAAlB,CAAsB,CAAEnrG,SAAU,EAAZ,CAAgBM,SAAU,CAAEthD,QAAS,SAAX,CAAsBqnJ,aAAc,cAApC;AAAoDz+F,eAAgB,gBAApE,CAAsF0iG,YAAa,aAAnG,CAAkHC,aAAc,cAAhI,CAAgJ3D,SAAU,UAA1J,CAAsKC,mBAAoB,oBAA1L,CAAgN9\/F,WAAY,YAA5N,CAA0O0hG,aAAc,cAAxP,CAAwQzC,wBAAyB,yBAAjS,CAA4T7uH,WAAY,YAAxU,CAAsVqvH,YAAa,aAAnW,CAAkXjB,kBAAmB,mBAArY,CAA0ZC,eAAgB,gBAA1a,CAA4bgF,eAAgB,gBAA5c,CAA8dR,kBAAmB,mBAAjf,CAAsgBD,gBAAiB,iBAAvhB,CAA0iB5F,SAAU,UAApjB,CAAgkBmE,wBAAyB,yBAAzlB;AAAonBmC,gBAAiB,iBAAroB,CAAwpBplH,KAAM,MAA9pB,CAAsqB8iH,iBAAkB,kBAAxrB,CAA4sBa,iBAAkB,kBAA9tB,CAAkvBE,cAAe,eAAjwB,CAAkxBG,gBAAiB,iBAAnyB,CAAszBC,mBAAoB,oBAA10B,CAAg2BzlG,YAAa,aAA72B,CAA43By+F,SAAU,UAAt4B,CAAk5BQ,2BAA4B,4BAA96B,CAA48B1yG,KAAM,MAAl9B,CAA09BuvD,MAAO,OAAj+B,CAA0+Bl4C,SAAU,UAAp\/B,CAAggC2jG,WAAY,YAA5gC,CAA0hCC,qBAAsB,sBAAhjC,CAAwkCE,mBAAoB,oBAA5lC,CAAknCC,OAAQ,QAA1nC,CAAooCC,OAAQ,QAA5oC;AAAspCG,cAAe,eAArqC,CAAsrCC,gBAAiB,iBAAvsC,CAA0tCE,cAAe,eAAzuC,CAA0vCD,eAAgB,gBAA1wC,CAA4xCE,eAAgB,gBAA5yC,CAA8zCN,gBAAiB,iBAA\/0C,CAAk2CC,gBAAiB,iBAAn3C,CAAs4CM,WAAY,YAAl5C,CAA1B,CAA47CvrG,QAAS,CAAE6jG,cAAe,eAAjB,CAAkChN,eAAgB,gBAAlD,CAAoErzF,SAAU,UAA9E,CAA0FH,SAAU,UAApG,CAAgHunG,wBAAyB,yBAAzI,CAAoKhF,mBAAoB,oBAAxL,CAAr8C,CAAqpDzpI,OAAQ,CAAEmoI,YAAa,aAAf,CAA8B8C,WAAY,YAA1C;AAAwDC,aAAc,cAAtE,CAAsFC,aAAc,cAApG,CAAoH3C,oBAAqB,qBAAzI,CAAgKD,iBAAkB,kBAAlL,CAAsMwD,uBAAwB,wBAA9N,CAAwPX,cAAe,eAAvQ,CAAwR1hG,aAAc,cAAtS,CAA7pD,CAAtB,CAA6+D8B,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,CAACppC,CAAD,CAAK,CAAA,IACrgEgB,EAAK4+J,EAAA,CAAG,iBAAH,CADggE,CACz+Dt4J,EAAoC,CAApCA,CAAKs4J,EAAA,CAAG,iBAAH,CAAsBxjK,CAAAA,MAD88D,CACl8DoC,EAAKohK,EAAA,CAAG,oBAAH,CAD67D,CACn6DzjK,GAAKqC,CAAA,EAAMwC,CAAN,CAAWs\/J,EAAX,CAAgBD,EAC3H,OAAO7kG,GAAG\/wC,CAAAA,aAAH,CAAiBjsB,CAAA,EAAMwC,CAAN,CAAWy\/J,EAAX,CAAgBC,EAAjC,CAAqC1rG,EAAA,CAAG,EAAH,CAAOh1D,CAAP,CAArC,CAAiDw7D,EAAG\/wC,CAAAA,aAAH,CAAiBtuB,EAAjB,CAAqB,IAArB,CAA2Bq\/D,EAAG\/wC,CAAAA,aAAH,CAAiB01I,EAAjB,CAAqB,IAArB,CAA3B,CAAuD3kG,EAAG\/wC,CAAAA,aAAH,CAAiBi1I,EAAjB,CAAqB,IAArB,CAAvD,CAAmFlkG,EAAG\/wC,CAAAA,aAAH,CAAiB21I,EAAjB;AAAqB,IAArB,CAAnF,CAAjD,CAAiK94J,CAAjK,EAAuKk0D,EAAG\/wC,CAAAA,aAAH,CAAiB81I,EAAjB,CAAqB,IAArB,CAA2B\/kG,EAAG\/wC,CAAAA,aAAH,CAAiBi1I,EAAjB,CAAqB,CAAEC,YAAa,CAAA,CAAf,CAArB,CAA3B,CAAvK,CAFkgE,CAArB,CAA7+D,CAx8BT,CA48BIgB,GAAKH,EAAGtsG,CAAAA,SA58BZ,CA68BI2rG,GAAKW,EAAG5rG,CAAAA,YA78BZ,CA88BIgrG,GAAKY,EAAG3rG,CAAAA,eA98BZ,CA+8BIirG,GAAKU,EAAGzrG,CAAAA,UA\/8BZ,CAg9BI2rG,GAAKnlG,EAAA,CAAG,CAAE3G,aAAcirG,EAAhB,CAAoBhrG,gBAAiB+qG,EAArC,CAAyC7qG,WAAY+qG,EAArD,CAAH,CAh9BT,CAi9BIW,GAAK9kG,EAAA,CAAG,CAAE\/G,aAAcirG,EAAhB,CAAoBhrG,gBAAiB+qG,EAArC,CAAyC7qG,WAAY+qG,EAArD,CAAH,CAj9BT,CAk9BIc,GAAK,CAAElgH,MAAO,EAAT,CAAaoa,aAAc,CAA3B,CAA8BtlB,UAAW,CAAzC,CAA4ClpB,IAAK,CAAjD,CAAoDulB,OAAQ,CAA5D,CAA+D0sH,WAAY,CAA3E,CAA8EsC,UAAW,CAAzF,CAl9BT,CAm9BIC,GAAK,CAAEpgH,MAAO,CAAC,CAAEkV,MAAO,CAAT,CAAD,CAAT,CAAyBkF,aAAc,CAAvC,CAA0CtlB,UAAW,CAArD,CAAwDlpB,IAAK,CAA7D,CAAgEulB,OAAQ,CAAxE,CAA2E0sH,WAAY,CAAvF,CAA0FsC,UAAW,CAArG,CAn9BT,CAo9BIE,GAAK1lK,IAAKusD,CAAAA,KAp9Bd,CAq9BIo5G,GAAK3lK,IAAKS,CAAAA,IAr9Bd,CAs9BI0gE,GAAKnhE,IAAKwlC,CAAAA,KAt9Bd,CAu9BIogI,GAAK5lK,IAAK6uB,CAAAA,GAv9Bd,CAw9BIqyC,GAAKlhE,IAAKC,CAAAA,GAx9Bd;AAi+BI4lK,GAAKnvG,EAAA,CAAO,QAAQ,CAAC\/xD,CAAD,CAAK,CAAA,IACvBkI,EAAKlI,CAAA,CAAG,CAAH,CADkB,CACXsH,EAAKY,CAAG6xJ,CAAAA,QADG,CACOv7J,EAAK0J,CAAG+xJ,CAAAA,YADf,CAC6B99J,GAAK+L,CAAG4xJ,CAAAA,YADrC,CACmDt+J,GAAKwE,CAAA,CAAG,CAAH,CAAO6R,EAAAA,CAAKrW,EAAGs6C,CAAAA,SADvE,KACkFr3C,GAAKjD,EAAGi7D,CAAAA,cAD1F,CAC0GjlB,GAAKh2C,EAAG07D,CAAAA,QADlH,CAC4HzlB,GAAKj2C,EAAG67D,CAAAA,QADpI,CAC8I94D,GAAK\/C,EAAGw6J,CAAAA,yBADtJ,CACiL9jJ,GAAK1W,EAAGm6J,CAAAA,oBADzL,CAC+Mz0J,GAAK1F,EAAGu6J,CAAAA,YAAc\/jH,GAAAA,CAAKx2C,EAAGo6J,CAAAA,YAD7O,KAC2PlkH,GAAK1xC,CAAA,CAAG,CAAH,CADhQ,CACuQqK,GAAKrK,CAAA,CAAG,CAAH,CAD5Q,CACmRu5D,GAAKv5D,CAAA,CAAG,CAAH,CADxR,CAC+R67D,GAAKtC,EAAGw\/F,CAAAA,UADvS,CACmTj9F,GAAKvC,EAAGy\/F,CAAAA,QAD3T,CACqUj9F,GAAK\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\/F,aAAc2\/F,EAAd3\/F,CAAmB+R,EAAnB\/R,EAAyB2\/F,EAAzB3\/F,CAA8B,CAA9BA,EAAmC1E,EAAnC0E,CAAwC0\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\/I,CAAmJimH,cAAe\/2J,EAAlK,CAAsKq1J,0BAA2Bz3J,EAAjM,CAAqMo+J,mBAAoBlqH,EAAzN,CAA6NmqH,eAAgB7+J,EAA7O,CAAiPy+J,gBAAiB\/gK,EAAlQ,CAAsQghK,mBAAoBz+J,EAA1R,CAA8R0+J,2BAA4Bj4F,EAA1T,CAA8T0xF,UAAWjxF,EAAzU,CAA6UywF,qBAAsBzjJ,EAAnW,CAAuW6jJ,aAAc70J,EAArX,CAAyX00J,aAAc5jH,EAAvY,CAA2YspH,iBAAkBtjC,EAA7Z,CAAia53C,IAAKxb,EAAta,CAAH,CAA+av6D,EAA\/a,CAAmb,CAAEg3J,UAAWp8F,EAAb;AAAiB62F,gBAAiB91F,EAAlC,CAAnb,CAA2dt0B,EAA3d,CAA+d,CAAEwpH,aAAcp2F,EAAhB,CAAoBm2F,WAAYviF,CAAhC,CAAoCyiF,aAAcz6J,EAAlD,CAAsDq4J,WAAYl9F,EAAlE,CAA\/d,CAAuiBsJ,CAAviB,CAzDiB,CAApB,CA0DNrX,EAAA,CAAI+rG,EAAJ,CAAQnE,EAAR,CAAYoC,EAAZ,CAAgByD,EAAhB,CAAoBzC,EAApB,CAAwByD,EAAxB,CAA4BhH,EAA5B,CA1DM,CAj+BT,CAuiCI+L,GAAK,CAAC,aAAD,CAviCT,CAwiCIC,GAAKxvG,EAAA,CAAO,QAAQ,EAAG,CAAA,IACrB\/xD,EAAKqvD,EAAA,CAAe,QAAQ,CAAC9Y,EAAD,CAAK,CACnC,MAAO,OAAP,CAAiBA,EADkB,CAA5B,CADgB,CAGrBruC,EAAKmnD,EAAA,CAAe,EAAf,CAHgB,CAGI\/nD,EAAK+nD,EAAA,CAAe,IAAf,CAHT,CAG+B7wD,EAAK6wD,EAAA,CAAe,oBAAf,CAHpC,CAG0ElzD,GAAKkzD,EAAA,CAAe,oBAAf,CAH\/E,CAGqH7zD,GAAK6zD,EAAA,CAAe+L,EAAf,CAH1H,CAG8IvpD,GAAKw9C,EAAA,CAAe,KAAf,CAHnJ,CAG0K5wD,GAAK4wD,EAAA,CAAehB,EAAf,CAH\/K,CAGsM7c,GAAKA,QAAQ,CAAC+E,EAAD,CAAK9uC,EAAL,CAAS,CACnP,MAAO,KAAK,EAAL,GAAWA,EAAX,GAAkBA,EAAlB,CAAuB,IAAvB,EAA8BmoD,EAAA,CAA0BK,EAAA,CAAK\/nD,CAAL,CAASqoD,EAAA,CAAK,QAAQ,CAACvvD,EAAD,CAAK,CACxF,MAAOA,GAAA,CAAGu1C,EAAH,CADiF,CAAlB,CAAT,CAE3D6Z,EAAA,EAF2D,CAA1B,CAER3oD,EAFQ,CAD8M,CAKrP,OAAO,CAAE0K,QAAS7K,CAAX,CAAem2J,YAAaz9J,CAA5B,CAAgCsqC,WAAYpiC,CAA5C,CAAgDy1J,eAAgBniK,EAAhE,CAAoEgmK,cAAehjK,CAAnF,CAAuFijK,cAAetlK,EAAtG,CAA0GyhK,gBAAiB\/rJ,EAA3H;AAA+HmlD,YAAav4D,EAA5I,CAAgJo\/J,gBAAiBrsH,EAAA,CAAG,QAAH,CAAjK,CAA+KssH,gBAAiBtsH,EAAA,CAAG,QAAH,CAAhM,CAA8MwsH,cAAexsH,EAAA,CAAG,MAAH,CAAW,KAAX,CAA7N,CAAgPysH,cAAezsH,EAAA,CAAG,MAAH,CAAW,KAAX,CAA\/P,CAAkR2sH,kBAAmB3sH,EAAA,CAAG,UAAH,CAAe,KAAf,CAArS,CAA4T6sH,sBAAuB7sH,EAAA,CAAG,uBAAH,CAA4B,KAA5B,CAAnV,CARkB,CAAlB,CAxiCT,CAkjCIkwH,GAAK3vG,EAAA,CAAO,QAAQ,CAAC\/xD,CAAD,CAAK,CAE3B7D,QAASA,EAAE,CAACo6C,EAAD,CAAKK,EAAL,CAASC,EAAT,CAAa,CACtBoY,EAAA,CAAQgB,EAAA,CAAK1Z,EAAL,CAAS0a,EAAA,CAAe3pD,CAAGgjC,CAAAA,UAAlB,CAAT,CAAwCimB,EAAA,CAAK,QAAQ,CAACmc,EAAD,CAAK,CAAA,IAC5D1rE,EAD4D,CACxDyG,GAAKilE,EAAA,CAAG,CAAH,CAAOlX,GAAAA,CAAKkX,EAAA,CAAG,CAAH,CACzB,OAAO\/2D,QAAQQ,CAAAA,IAAR,CAAa,kBAAb,CAAkC0gC,EAAlC,CAAuC,2CAAvC,CAAqFD,EAArF,CAA0F,WAA1F,CAAA,CAAwGoe,EAAA,CAAG,EAAH,CAAOQ,EAAP,EAAY,CAACx0D,EAAD,CAAM,EAAN,EAAU41C,EAAV,CAAA,CAAgBnvC,EAAhB,CAAoBzG,EAAhC,EAF\/C,CAAlB,CAAxC,CAAR,CAGKsG,CAAGgjC,CAAAA,UAHR,CADsB,CAFG,IACvBpiC,EAAKlI,CAAA,CAAG,CAAH,CADkB,CACXsH;AAAKtH,CAAA,CAAG,CAAH,CAAOxB,EAAAA,CAAK,CAAE+kD,KAAM8X,EAAA,CAAG\/zD,CAAGm2J,CAAAA,WAAN,CAAmB,4CAAnB,CAAR,CAA0EsB,cAAe5vG,EAAA,EAAzF,CAAmG6vG,gBAAiB7vG,EAAA,EAApH,CAA8H+vG,cAAe\/vG,EAAA,EAA7I,CAAuJgwG,eAAgBhwG,EAAA,EAAvK,CAAiLiwG,WAAYjwG,EAAA,EAA7L,CAOjC,OAAOvtB,GAAA,CAAUpjC,CAAG4gK,CAAAA,UAAb,CAAyB,QAAQ,CAAC7oH,EAAD,CAAK,CAAA,IACvCM,GAAKN,EAAG8oH,CAAAA,WAAa7pG,GAAAA,CAAKP,EAAA,CAAG1e,EAAH,CAAO+qH,EAAP,CAC9B3rJ,QAAQQ,CAAAA,IAAR,CAAa,0JAAb,CAAiM,GAAA,CAAA6+C,EAAA,CAAG,EAAH,CAnmD5L,GAmmD4M1tD,CAAGgjC,CAAAA,UAnmD\/M,EAzDG0kB,CAyDH,CAmmD4L,CAAgC,CAAEqvG,sBAAuBxnH,EAAzB,CAAhC,CAzmDnM,IAymDoLvvC,CAAGgjC,CAAAA,UAzmDvL,EAtDYqkB,CAsDZ,CAAmBjrD,EAAnB,CAAA,IAymD4QwE,CAAGuzJ,CAAAA,uBAzmD\/Q,EAtDY9sG,CAsDZ;AAymDwS6G,EAzmDxS,CAumD6C,CAAtC,CAAA,CAGHr5D,CAAA,CAAGqC,CAAGugK,CAAAA,aAAN,CAAqB,MAArB,CAA6B,eAA7B,CAHG,CAG4C5iK,CAAA,CAAGqC,CAAG0gK,CAAAA,aAAN,CAAqB,MAArB,CAA6B,eAA7B,CAH5C,CAG2F\/iK,CAAA,CAAGqC,CAAGwgK,CAAAA,eAAN,CAAuB,UAAvB,CAAmC,iBAAnC,CAH3F,CAGkJhqG,EAAA,CAAG,EAAH,CAAO9sD,CAAP,CAAWZ,CAAX,CAAe9I,CAAf,CAX9H,CAApB,CAYNsvD,EAAA,CAAIozG,EAAJ,CAAQK,EAAR,CAZM,CAljCT,CA+jCII,GAAKnmG,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,EAAG,CAAA,IACtBppC,EAAK4hK,EAAA,CAAG,WAAH,CADiB,CACA5gK,EAAK4gK,EAAA,CAAG,eAAH,CADL,CAC0B15J,EAAK05J,EAAA,CAAG,eAAH,CAD\/B,CACoDt6J,EAAKs6J,EAAA,CAAG,aAAH,CADzD,CAC4EpjK,GAAKojK,EAAA,CAAG,gBAAH,CADjF,CACuGzlK,GAAKylK,EAAA,CAAG,WAAH,CAD5G,CAC6HpmK,GAAKqmK,EAAA,CAAG,cAAH,CADlI,CACsJpjK,GAAKmjK,EAAA,CAAG,eAAH,CAD3J,CACgLpwH,GAAKowH,EAAA,CAAG,eAAH,CADrL,CAC0MnwH,GAAKmwH,EAAA,CAAG,uBAAH,CAD\/M,CAC4OrjK,GAAKqjK,EAAA,CAAG,SAAH,CADjP,CACgQ1vJ,GAAK2vJ,EAAA,CAAG,gBAAH,CADrQ,CAC2R3gK,GAAK2gK,EAAA,CAAG,KAAH,CADhS,CAC2S7vH,GAAK4vH,EAAA,CAAG,KAAH,CADhT,CAC2TlwH,GAAK4jB,EAAA,CAAE,QAAQ,CAAC\/e,EAAD,CAAK,CACvW\/6C,EAAA,CAAG+6C,EAAGhlB,CAAAA,aAAcA,CAAAA,aAAc6lB,CAAAA,YAAlC,CACA;IAAIrE,GAAKwD,EAAGurH,CAAAA,UACZ\/uH,GAAA,EAAM7gC,EAAA,CAAG6gC,EAAG\/kB,CAAAA,qBAAH,EAAH,CAAgC9sB,GAAA,CAAG,CAAEk7D,IAAKK,EAAA,CAAG,SAAH,CAAc5oB,gBAAA,CAAiB0C,EAAjB,CAAqBqgB,CAAAA,MAAnC,CAA2C5kB,EAA3C,CAAP,CAAuDmqB,OAAQM,EAAA,CAAG,YAAH,CAAiB5oB,gBAAA,CAAiB0C,EAAjB,CAAqBwrH,CAAAA,SAAtC,CAAiD\/vH,EAAjD,CAA\/D,CAAH,CAHiU,CAAf,CAK1V,OAAO,GAAIqjB,EAAe5qC,CAAAA,aAAnB,EAAkC+mB,EAAlC,CAAsCwjB,EAAA,CAAG,CAAEnmD,IAAK6iC,EAAP,CAAWjwB,UAAWzgB,CAAtB,CAAH,CAA+Bs6D,EAAA,CAAG9pB,EAAH,CAAOjzC,EAAP,CAA\/B,CAA2C,CAAEstB,MAAO,CAAEmhG,WAAYhtH,CAAGw1C,CAAAA,SAAjB,CAA4B63G,cAAertJ,CAAG86D,CAAAA,YAA9C,CAAT,CAA3C,CAAtC,CAA2J96D,CAAG0gD,CAAAA,KAAMz\/C,CAAAA,GAAT,CAAa,QAAQ,CAAC8xC,EAAD,CAAK,CAC1L,IAAI0iB,GAAKj3D,EAAA,CAAGu0C,EAAG6iB,CAAAA,KAAN,CAAa7iB,EAAGyF,CAAAA,IAAhB,CAAsBj6C,EAAtB,CACT,OAAOpC,GAAA,CAAK,GAAIk5D,EAAe5qC,CAAAA,aAAnB,EAAkCgnB,EAAlC,CAAsCujB,EAAA,CAAG,CAAEvuD,IAAKgvD,EAAP,CAAH,CAAgB6F,EAAA,CAAG7pB,EAAH,CAAOlzC,EAAP,CAAhB,CAA4B,CAAEq3D,MAAO7iB,EAAG6iB,CAAAA,KAAZ,CAAmB35D,OAAQ+D,CAAGu+J,CAAAA,UAA9B,CAA0CriK,MAAO8D,CAAG6gK,CAAAA,SAApD,CAA5B,CAAtC,CAAL,CAA2I,GAAIxrG,EAAe5qC,CAAAA,aAAnB,EAAkChsB,EAAlC,CAAsCu2D,EAAA,CAAG,EAAH,CAAOsG,EAAA,CAAG78D,EAAH;AAAOF,EAAP,CAAP,CAAmB,CAAEkjB,UAAWvZ,CAAb,CAAiB,aAAc6qC,EAAG6iB,CAAAA,KAAlC,CAAyCnvD,IAAKgvD,EAA9C,CAAnB,CAAtC,CAA8GnuD,CAAA,CAAGyrC,EAAG6iB,CAAAA,KAAN,CAAa7iB,EAAGyF,CAAAA,IAAhB,CAAsBj6C,EAAtB,CAA9G,CAFwC,CAA1B,CAA3J,CANmB,CAAnB,CA\/jCT,CA0kCIyjK,GAAKxmG,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,EAAG,CAAA,IACtBppC,EAAK4hK,EAAA,CAAG,iBAAH,CADiB,CACM5gK,EAAK6gK,EAAA,CAAG,cAAH,CADX,CAC+B35J,EAAK05J,EAAA,CAAG,iBAAH,CADpC,CAC2Dt6J,EAAKguD,EAAA,CAAE,QAAQ,CAAC\/e,EAAD,CAAK,CACvG,MAAOv1C,EAAA,CAAG61D,EAAA,CAAGtgB,EAAH,CAAO,QAAP,CAAH,CADgG,CAAf,CADhE,CAGtB\/3C,GAAKojK,EAAA,CAAG,SAAH,CACT,OAAO5hK,EAAA,CAAK,GAAIq1D,EAAe5qC,CAAAA,aAAnB,EAAkCviB,CAAlC,CAAsC,CAAE2G,IAAKvH,CAAP,CAAtC,CAAmD,GAAI+tD,EAAe5qC,CAAAA,aAAnB,EAAkCzqB,CAAlC,CAAsCs7D,EAAA,CAAGt7D,CAAH,CAAOxB,EAAP,CAAtC,CAAnD,CAAL,CAA6G,IAJ1F,CAAnB,CA1kCT,CAglCIyjK,GAAKzmG,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,EAAG,CAAA,IACtBppC,EAAK4hK,EAAA,CAAG,iBAAH,CADiB,CACM5gK,EAAK6gK,EAAA,CAAG,cAAH,CADX,CAC+B35J,EAAK05J,EAAA,CAAG,iBAAH,CADpC,CAC2Dt6J,EAAKguD,EAAA,CAAE,QAAQ,CAAC\/e,EAAD,CAAK,CACvG,MAAOv1C,EAAA,CAAG61D,EAAA,CAAGtgB,EAAH,CAAO,QAAP,CAAH,CADgG,CAAf,CADhE,CAGtB\/3C,GAAKojK,EAAA,CAAG,SAAH,CACT,OAAO5hK,EAAA,CAAK,GAAIq1D,EAAe5qC,CAAAA,aAAnB,EAAkCviB,CAAlC;AAAsC,CAAE2G,IAAKvH,CAAP,CAAtC,CAAmD,GAAI+tD,EAAe5qC,CAAAA,aAAnB,EAAkCzqB,CAAlC,CAAsCs7D,EAAA,CAAGt7D,CAAH,CAAOxB,EAAP,CAAtC,CAAnD,CAAL,CAA6G,IAJ1F,CAAnB,CAhlCT,CAslCI0jK,GAAKA,QAAQ,CAACliK,CAAD,CAAK,CAChBgB,CAAAA,CAAKhB,CAAG0pC,CAAAA,QADQ,KACEpiC,EAAK,GAAI+tD,EAAe7lC,CAAAA,UAAnB,EAA+B8tI,EAA\/B,CADP,CAC2C9+J,EAAKqjK,EAAA,CAAG,gBAAH,CADhD,CACsE1lK,EAAK0lK,EAAA,CAAG,oBAAH,CAD3E,CACqGrmK,GAAK85D,EAAA,CAAE,QAAQ,CAAC\/e,EAAD,CAAK,CAC3Ip6C,CAAA,CAAGo6C,EAAGvoB,CAAAA,qBAAH,EAAH,CAD2I,CAAf,CAG9H,OAAOwtC,GAAGvpC,CAAAA,SAAH,CAAa,QAAQ,EAAG,CAC7B3qB,CAAA,GAAOnL,CAAA,CAAG,CAAEF,OAAQqL,CAAGmvD,CAAAA,cAAb,CAA6Bv6D,MAAOoL,CAAG66J,CAAAA,aAAvC,CAAH,CAAA,CAA4D3jK,CAAA,CAAG,CAAEvC,OAAQqL,CAAGi3J,CAAAA,UAAb,CAAyBriK,MAAOoL,CAAGu5J,CAAAA,SAAnC,CAAH,CAAnE,CAD6B,CAAxB,CAEJ,CAACv5J,CAAD,CAAKnL,CAAL,CAASqC,CAAT,CAFI,CAAA,CAEWg9D,EAAG\/wC,CAAAA,aAAH,CAAiB,KAAjB,CAAwB,CAAEoB,MAAOo0I,EAAT,CAAapxJ,IAAKrT,EAAlB,CAAxB,CAAgDwF,CAAhD,CANE,CAtlCtB,CA8lCIohK,GAAKA,QAAQ,CAACpiK,CAAD,CAAK,CAChBgB,CAAAA,CAAKhB,CAAG0pC,CAAAA,QADQ,KACEpiC,EAAK,GAAI+tD,EAAe7lC,CAAAA,UAAnB,EAA+B8tI,EAA\/B,CADP,CAC2C9+J,EAAKqjK,EAAA,CAAG,oBAAH,CADhD,CAC0E1lK,EAAK0lK,EAAA,CAAG,gBAAH,CAD\/E,CACqGrmK,GAAKomK,EAAA,CAAG,oBAAH,CAA0B\/vJ;EAAAA,CAAKopD,EAAA,CAAGz8D,CAAH,CAAOhD,EAAP,CAC7J,OAAOggE,GAAGvpC,CAAAA,SAAH,CAAa,QAAQ,EAAG,CAC7B3qB,CAAA,GAAOnL,CAAA,CAAG,CAAEF,OAAQqL,CAAGi3J,CAAAA,UAAb,CAAyBriK,MAAOoL,CAAGu5J,CAAAA,SAAnC,CAAH,CAAA,CAAoDriK,CAAA,CAAG,CAAEg3C,UAAW,CAAb,CAAgB0lB,cAAe5zD,CAAGmvD,CAAAA,cAAlC,CAAkD0E,aAAc7zD,CAAG66J,CAAAA,aAAnE,CAAH,CAA3D,CAD6B,CAAxB,CAEJ,CAAC76J,CAAD,CAAK9I,CAAL,CAASrC,CAAT,CAFI,CAAA,CAEWq\/D,EAAG\/wC,CAAAA,aAAH,CAAiB,KAAjB,CAAwB,CAAE5b,IAAKgD,EAAP,CAAWga,MAAOo0I,EAAlB,CAAxB,CAAgDj\/J,CAAhD,CAJE,CA9lCtB,CAomCIqhK,GAAKzvG,EAAA,CAAkB8uG,EAAlB,CAAsB,CAAEjuG,SAAU,CAAEthD,QAAS,SAAX,CAAsB+nD,WAAY,YAAlC,CAAgD6\/F,SAAU,UAA1D,CAAsE0D,YAAa,aAAnF,CAAkGnzH,WAAY,YAA9G,CAA4HqzH,eAAgB,gBAA5I,CAA8JnlH,KAAM,MAApK,CAA4K8iH,iBAAkB,kBAA9L,CAAkNG,wBAAyB,yBAA3O,CAAsQmC,gBAAiB,iBAAvR;AAA0S6D,cAAe,eAAzT,CAA0UD,cAAe,eAAzV,CAA0WhF,gBAAiB,iBAA3X,CAA8YC,mBAAoB,oBAAla,CAAwbzlG,YAAa,aAArc,CAAodzT,KAAM,MAA1d,CAAkew7G,cAAe,eAAjf,CAAkgBC,gBAAiB,iBAAnhB,CAAsiBE,cAAe,eAArjB,CAAskBE,WAAY,YAAllB,CAAZ,CAA8mBvrG,QAAS,CAAEwD,SAAU,UAAZ,CAAwBH,SAAU,UAAlC,CAA8CwgG,cAAe,eAA7D,CAAvnB,CAAusB1nI,OAAQ,CAAEmoI,YAAa,aAAf,CAA8B8C,WAAY,YAA1C,CAAwDC,aAAc,cAAtE,CAAsFC,aAAc,cAApG,CAAoH3C,oBAAqB,qBAAzI;AAAgKD,iBAAkB,kBAAlL,CAA\/sB,CAAtB,CAA+6B\/8F,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,CAACppC,CAAD,CAAK,CACv8BgB,CAAAA,CAAKg0D,EAAA,CAAG,EAAH,CAAOh1D,CAAP,CADk8B,KACt7BsH,EAAKs6J,EAAA,CAAG,iBAAH,CADi7B,CAC15BpjK,EAAKojK,EAAA,CAAG,oBAAH,CADq5B,CAC33BzlK,EAAKqC,CAAA,EAAM8I,CAAN,CAAW86J,EAAX,CAAgBF,EACrG,OAAO1mG,GAAG\/wC,CAAAA,aAAH,CAAiBjsB,CAAA,EAAM8I,CAAN,CAAWg7J,EAAX,CAAgBC,EAAjC,CAAqCvtG,EAAA,CAAG,EAAH,CAAOh0D,CAAP,CAArC,CAAiDw6D,EAAG\/wC,CAAAA,aAAH,CAAiBtuB,CAAjB,CAAqB,IAArB,CAA2Bq\/D,EAAG\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\/B,CAA0C,IAAK,EAA\/C,CAAkD9kK,CAAlD,CAAuD0T,EAAAA,CAAK3T,CAAG8vC,CAAAA,WAD1S,KACuTntC,GAAK3C,CAAGsQ,CAAAA,GAAKmjC,EAAAA,CAAKwpB,EAAGz5B,CAAAA,QAAH,CAAY,CAAZ,CADzU,KACyV2P,GAAKM,CAAA,CAAG,CAAH,CAD9V,CACqW3nC,GAAK2nC,CAAA,CAAG,CAAH,CACpYwxH,GAAA,CAAG,WAAH,CAAgB,QAAQ,CAACjtH,EAAD,CAAK,CAC3B7E,EAAA,GAAO6E,EAAP,GAAcr1C,EAAGuvB,CAAAA,OAAQ5E,CAAAA,KAAMk0I,CAAAA,SAAjB,CAA6BxpH,EAA7B,CAAkC,IAAlC,CAAwClsC,EAAA,CAAGksC,EAAH,CAAtD,CAD2B,CAA7B,CAGIgjB,GAAAA,CAAK+pG,EAAA,CAAG,kBAAH,CALiB,KAKOznG,GAAKynG,EAAA,CAAG,uBAAH,CAALznG,EAAoCsnG,EAAIrnG,EAAAA,CAAKwnG,EAAA,CAAG,WAAH,CAALxnG,EAAwBsnG,EAAI3wH,EAAAA,CAAK6wH,EAAA,CAAG,oBAAH,CALhF,KAK0GvlK,GAAKulK,EAAA,CAAG,mBAAH,CAL\/G;AAKwI7nK,GAAK6nK,EAAA,CAAG,gBAAH,CAL7I,CAKmKtlK,GAAKslK,EAAA,CAAG,WAAH,CAAiB7+F,GAAAA,CAAK6+F,EAAA,CAAG,oBAAH,CAL9L,KAKwNn+F,GAAKm+F,EAAA,CAAG,gBAAH,CAL7N,CAKmPvrC,GAAKurC,EAAA,CAAG,oBAAH,CALxP,CAKkRtrC,GAAKsrC,EAAA,CAAG,SAAH,CACjT,IAAI,CAAJ,GAAUvrC,EAAV,EAAgBx+D,EAAhB,CACE,MAAO,GAAIlE,EAAe5qC,CAAAA,aAAnB,EAAkC8uC,EAAlC,CAAsC+B,EAAA,CAAG\/B,EAAH,CAAOy+D,EAAP,CAAtC,CACL\/yD,GAAAA,CAAKjlE,CAAGw1C,CAAAA,SAARyvB,CAAoBR,EAApBQ,CAAyBvzB,EAAIo0B,GAAAA,CAAK9lE,CAAG86D,CAAAA,YAAcx7B,GAAAA,CAAU,CAAL,CAAA2lC,EAAA,CAASzJ,EAAG\/wC,CAAAA,aAAH,CAAiBqxC,CAAjB,CAAqB,CAAE7\/D,OAAQgpE,EAAV,CAAcx+D,IAAK,aAAnB,CAArB,CAAT,CAAoE,IAAM9F,EAAAA,CAAU,CAAL,CAAAmlE,EAAA,CAAStK,EAAG\/wC,CAAAA,aAAH,CAAiBqxC,CAAjB,CAAqB,CAAE7\/D,OAAQ6pE,EAAV,CAAcr\/D,IAAK,gBAAnB,CAArB,CAAT,CAAuE,IAAMo\/D,EAAAA,CAAK7lE,CAAG0gD,CAAAA,KAAMz\/C,CAAAA,GAAT,CAAa,QAAQ,CAACs1C,EAAD,CAAK,CAAA,IACjPxD,GAAKwD,EAAGkkB,CAAAA,aADyO,CAC1NvyD,GAAKzM,EAAA,CAAGs3C,EAAH,CAAQoyB,EAAR,CAAY5uB,EAAGiC,CAAAA,IAAf,CAAqBw\/E,EAArB,CAChC,OAAOh6H,GAAA,CAAK,GAAIq3D,EAAe5qC,CAAAA,aAAnB,EAAkCoxC,EAAlC,CAAsC7G,EAAA,CAAG,EAAH,CAAOsG,EAAA,CAAGO,EAAH,CAAOm8D,EAAP,CAAP,CAAmB,CAAEvxH,IAAKyB,EAAP,CAAW0tD,MAAOrf,EAAGqf,CAAAA,KAArB;AAA4B35D,OAAQs6C,EAAGv5C,CAAAA,IAAvC,CAA6CwgB,KAAM+4B,EAAG\/4B,CAAAA,IAATA,EAAiB,MAA9D,CAAnB,CAAtC,CAAL,CAAyI,GAAI63C,EAAe5qC,CAAAA,aAAnB,EAAkC1sB,EAAlC,CAAsCi3D,EAAA,CAAG,EAAH,CAAOsG,EAAA,CAAGv9D,EAAH,CAAOi6H,EAAP,CAAP,CAAmB,CAAEvxH,IAAKyB,EAAP,CAAW,aAAc6qC,EAAzB,CAA6B,kBAAmBwD,EAAGv5C,CAAAA,IAAnD,CAAyD,kBAAmBu5C,EAAGqf,CAAAA,KAA\/E,CAAsF\/pC,MAAO,CAAE2zI,eAAgB,MAAlB,CAA7F,CAAnB,CAAtC,CAAqLhuH,EAAA,CAAG+E,EAAGqf,CAAAA,KAAN,CAAarf,EAAGiC,CAAAA,IAAhB,CAAsBw\/E,EAAtB,CAArL,CAFqG,CAA1B,CAI7N,OAAO,GAAI3iE,EAAe5qC,CAAAA,aAAnB,EAAkCgoB,CAAlC,CAAsCuiB,EAAA,CAAG,CAAEnmD,IAAKqD,CAAP,CAAW,eAAgB,oBAA3B,CAAH,CAAsDopD,EAAA,CAAG7oB,CAAH,CAAOulF,EAAP,CAAtD,CAAtC,CAAyG,CAAC14F,EAAD,CAAKv5B,CAAAA,MAAL,CAAY8\/D,CAAZ,CAAgB,CAACllE,CAAD,CAAhB,CAAzG,CAZmB,CAAnB,CApoCT,CAkpCI8iK,GAAKA,QAAQ,CAACzjK,CAAD,CAAK,CAChBsH,CAAAA,CAAKtH,CAAG0pC,CAAAA,QADQ,KACElrC,EAAK,GAAI62D,EAAe7lC,CAAAA,UAAnB,EAA+B6tI,EAA\/B,CADP,CAC2ClhK,EAAKonK,EAAA,CAAG,gBAAH,CADhD,CACsE\/nK,EAAK+nK,EAAA,CAAG,iBAAH,CAD3E,CACkG1xJ,GAAKyjD,EAAA,CAAE\/H,EAAA,CAAQpxD,CAAR,CAAY,QAAQ,CAACo6C,EAAD,CAAK,CACpJ,MAAOsgB,GAAA,CAAGtgB,EAAH,CAAO,QAAP,CAD6I,CAAzB,CAAF,CAG3H,OAAOilB,GAAGvpC,CAAAA,SAAH,CAAa,QAAQ,EAAG,CAC7BzzB,CAAA;CAAOrC,CAAA,CAAGqC,CAAGi4D,CAAAA,cAAN,CAAA,CAAuBj7D,CAAA,CAAGgD,CAAG+\/J,CAAAA,UAAN,CAA9B,CAD6B,CAAxB,CAEJ,CAAC\/\/J,CAAD,CAAKrC,CAAL,CAASX,CAAT,CAFI,CAAA,CAEWggE,EAAG\/wC,CAAAA,aAAH,CAAiB,KAAjB,CAAwB,CAAEoB,MAAOo0I,EAAT,CAAapxJ,IAAKgD,EAAlB,CAAsB,qBAAsB,SAA5C,CAAxB,CAAiFvK,CAAjF,CANE,CAlpCtB,CA0pCIo8J,GAAKA,QAAQ,CAAC1jK,CAAD,CAAK,CAChBgB,CAAAA,CAAKhB,CAAG0pC,CAAAA,QADQ,KACEpiC,EAAK,GAAI+tD,EAAe7lC,CAAAA,UAAnB,EAA+B6tI,EAA\/B,CADP,CAC2C7+J,EAAK+kK,EAAA,CAAG,oBAAH,CADhD,CAC0EpnK,EAAKonK,EAAA,CAAG,iBAAH,CAD\/E,CACsG\/nK,GAAK8nK,EAAA,CAAG,oBAAH,CAA0BzxJ,GAAAA,CAAKopD,EAAA,CAAGz8D,CAAH,CAAOhD,EAAP,CAC9J,OAAOggE,GAAGvpC,CAAAA,SAAH,CAAa,QAAQ,EAAG,CAC7B3qB,CAAA,GAAOnL,CAAA,CAAGmL,CAAGi3J,CAAAA,UAAN,CAAA,CAAmB\/\/J,CAAA,CAAG,CAAEg3C,UAAW,CAAb,CAAgB0lB,cAAe5zD,CAAGmvD,CAAAA,cAAlC,CAAkD0E,aAAc,GAAhE,CAAH,CAA1B,CAD6B,CAAxB,CAEJ,CAAC7zD,CAAD,CAAK9I,CAAL,CAASrC,CAAT,CAFI,CAAA,CAEWq\/D,EAAG\/wC,CAAAA,aAAH,CAAiB,KAAjB,CAAwB,CAAE5b,IAAKgD,EAAP,CAAWga,MAAOo0I,EAAlB,CAAsB,qBAAsB,QAA5C,CAAxB,CAAgFj\/J,CAAhF,CAJE,CA1pCtB,CAgqCI2iK,GAAK\/wG,EAAA,CAAkBswG,EAAlB,CAAsB,CAAE\/vG,SAAU,EAAZ,CAAgBM,SAAU,CAAEthD,QAAS,SAAX;AAAsBqnJ,aAAc,cAApC,CAAoDz+F,eAAgB,gBAApE,CAAsF0iG,YAAa,aAAnG,CAAkHiF,mBAAoB,oBAAtI,CAA4JC,mBAAoB,oBAAhL,CAAsM5I,SAAU,UAAhN,CAA4NC,mBAAoB,oBAAhP,CAAsQ9\/F,WAAY,YAAlR,CAAgS0hG,aAAc,cAA9S,CAA8TzC,wBAAyB,yBAAvV,CAAkX7uH,WAAY,YAA9X,CAA4YqvH,YAAa,aAAzZ,CAAwajB,kBAAmB,mBAA3b,CAAgdC,eAAgB,gBAAhe,CAAkfgF,eAAgB,gBAAlgB,CAAohBR,kBAAmB,mBAAviB;AAA4jBD,gBAAiB,iBAA7kB,CAAgmB5F,SAAU,UAA1mB,CAAsnBmE,wBAAyB,yBAA\/oB,CAA0qBjjH,KAAM,MAAhrB,CAAwrB8iH,iBAAkB,kBAA1sB,CAA8tBa,iBAAkB,kBAAhvB,CAAowBE,cAAe,eAAnxB,CAAoyBG,gBAAiB,iBAArzB,CAAw0BC,mBAAoB,oBAA51B,CAAk3BzlG,YAAa,aAA\/3B,CAA84By+F,SAAU,UAAx5B,CAAo6BQ,2BAA4B,4BAAh8B,CAA1B,CAA0\/BpiG,QAAS,CAAE6jG,cAAe,eAAjB,CAAkChN,eAAgB,gBAAlD,CAAoErzF,SAAU,UAA9E,CAA0FH,SAAU,UAApG,CAAngC;AAAqnClnC,OAAQ,CAAEmoI,YAAa,aAAf,CAA8B8C,WAAY,YAA1C,CAAwDC,aAAc,cAAtE,CAAsFC,aAAc,cAApG,CAAoH3C,oBAAqB,qBAAzI,CAAgKD,iBAAkB,kBAAlL,CAAsMwD,uBAAwB,wBAA9N,CAAwPX,cAAe,eAAvQ,CAAwR1hG,aAAc,cAAtS,CAA7nC,CAAtB,CAA68C8B,EAAGpyB,CAAAA,IAAH,CAAQ,QAAQ,CAACppC,CAAD,CAAK,CAAA,IACr+CsH,EAAKg8J,EAAA,CAAG,iBAAH,CADg+C,CACz8C9kK,EAAK8kK,EAAA,CAAG,oBAAH,CADo8C,CAC16CnnK,EAAKonK,EAAA,CAAG,mBAAH,CADq6C,CAC54C\/nK,GAAK+nK,EAAA,CAAG,mBAAH,CADu4C,CAC92C1xJ,GAAKyxJ,EAAA,CAAG,oBAAH,CADy2C,CAC\/0C7kK,GAAK6kK,EAAA,CAAG,oBAAH,CAD00C,CAChzC9xH,GAAK8xH,EAAA,CAAG,SAAH,CAAe7xH;CAAAA,CAAK6jB,EAAA,CAAE\/H,EAAA,CAAQpxD,CAAR,CAAY,QAAQ,CAACo6C,EAAD,CAAK,CAC3O,MAAOsgB,GAAA,CAAGtgB,EAAH,CAAO,QAAP,CADoO,CAAzB,CAAF,CADuxC,KAGp+Ch4C,GAAK+2D,EAAA,CAAE\/H,EAAA,CAAQ\/xD,EAAR,CAAY,QAAQ,CAAC+6C,EAAD,CAAK,CACnC,MAAOsgB,GAAA,CAAGtgB,EAAH,CAAO,QAAP,CAD4B,CAAzB,CAAF,CAELrkC,GAAAA,CAAK1T,CAAA,EAAM8I,CAAN,CAAWs8J,EAAX,CAAgBC,EAAI3iK,EAAAA,CAAK1C,CAAA,EAAM8I,CAAN,CAAWo8J,EAAX,CAAgBD,EAAIzxH,EAAAA,CAAKsxH,EAAA,CAAG,gBAAH,CAL66C,KAKv5C5xH,GAAK4xH,EAAA,CAAG,oBAAH,CALk5C,CAKx3Cj5J,GAAKi5J,EAAA,CAAG,sBAAH,CAA4B\/pG,GAAAA,CAAK1nD,EAAA,CAAK2pD,EAAG\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\/CInuG,GAAW,mBAl\/Cf,CAm\/CIC,GAAe,mBAn\/CnB,CAo\/CIE,GAAkB,mBAp\/CtB,CAq\/CIC,GAAsB,mBAr\/C1B,CAs\/CIG,GAAW,qEAt\/Cf;AAu\/CIG,GAAY,8GAv\/ChB,CAw\/CIE,GAAW,6GAx\/Cf,CAy\/CII,GAAY,sJAz\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\/G,EAAtB,CAA0C,CAClCC,CAAAA,CAAiB\/3G,EAAM03G,CAAAA,WAAN,CAAkB,IAAlB,CAAwBrB,CAAxB,CAAyC,CAAzC,CAAjB0B,CAA+D,CACrE,KAAMC,GAAev8F,CAAQzb,CAAAA,KAAMyE,CAAAA,KAAd,CAAoBszG,CAApB,CAAoCzB,CAApC,CAAmD,CAAnD,CACf2B,GAAAA,CAAeD,EAAahkF,CAAAA,OAAb,CACnB,OADmB,CAElB,SAFkB,CAIfmkF,GAAAA,CAAoBF,EAAav\/G,CAAAA,MAAjCy\/G,CAA0CH,EAAat\/G,CAAAA,MAC7D+iB,EAAQ28F,CAAAA,iBAAR,CAA0BL,CAA1B,CAA0CzB,CAA1C,CAAyD,CAAzD,CACAuzD,GAAc5\/F,CAAAA,MAAd,CAAqBxuD,CAArB,CAA8Bw8F,EAA9B,CACAx8F,EAAQ28F,CAAAA,iBAAR,CAA0B\/B,CAA1B,CAA2C,CAA3C,CAA8CC,CAA9C,CAA6D6B,EAA7D,CAVwC,CAA1C,IAYE0xD,GAAc5\/F,CAAAA,MAAd,CAAqBxuD,CAArB,CAxFOy8F,IAwFP,CAjBmB,CAoBhBG,eAAQ,CAAC58F,CAAD,CAAU,CACvB,MAAM,CAAE,eAAA46F,CAAF,CAAkB,aAAAC,CAAlB,CAAgC,MAAAt2G,CAAhC,CAAA,CAA0Cyb,CAChD,KAAMs8F,GAAiB\/3G,CAAM03G,CAAAA,WAAN,CAAkB,IAAlB;AAAwBrB,CAAxB,CAAyC,CAAzC,CAAjB0B,CAA+D,CACrE,OAAMO,GAAsBuxD,EAActyD,CAAAA,WAAd,CAA0Bv3G,CAA1B,CAAiCs2G,CAAjC,CAC5B,KAAM0B,GAAev8F,CAAQzb,CAAAA,KAAMyE,CAAAA,KAAd,CAAoBszG,EAApB,CAAoCO,EAApC,CACrB,OAAML,GAAeD,EAAahkF,CAAAA,OAAb,CAAqB,oBAArB,CAA2C,IAA3C,CACfmkF,GAAAA,CAAoBH,EAAat\/G,CAAAA,MAAjCy\/G,CAA0CF,EAAav\/G,CAAAA,MAC7D+iB,EAAQ28F,CAAAA,iBAAR,CAA0BL,EAA1B,CAA0CO,EAA1C,CACAuxD,GAAc5\/F,CAAAA,MAAd,CAAqBxuD,CAArB,CAA8Bw8F,EAA9B,CAEMM,GAAAA,CAAa,CADbC,EACa,CADU,WAAY18C,CAAAA,IAAZ,CAAiB97D,CAAMyE,CAAAA,KAAN,CAAYszG,EAAZ,CAA4B1B,CAA5B,CAAjB,CACV,EAAuBmC,EAAA,CAAqB,CAArB,CAAwB9\/G,CAAAA,MAA\/C,CAAwD,CAE3E+iB,EAAQ28F,CAAAA,iBAAR,CACE\/B,CADF,CACmBkC,EADnB,CAEE5gH,IAAKC,CAAAA,GAAL,CAHwBy+G,CAGxB,CAHyCkC,EAGzC,CAA4BjC,CAA5B,CAA2C6B,EAA3C,CAFF,CAZuB,CA1FP,CA\/xDpB,CA64DI2xD,GAAuBxzK,EAAA,CAAQ,GAAR,CA74D3B,CA84DIyyD,GAAmBzsD,CAADysD,EAAQzsD,CAAGysD,CAAAA,eAAH,EA94D9B,CAg5DIghH,GAAYH,EAAQlkI,CAAAA,IAAR,CAAaskI,QAAmB,CAAC,CAC\/C,KAAMtgJ,CADyC,CAE\/C,KAAAJ,CAF+C,CAG\/C,MAAA3B,CAH+C,CAI\/C,UAAAgC,CAJ+C,CAK\/C,SAAAG,EAL+C,CAM\/C,WAAAD,EAN+C,CAO\/C,QAAAogJ,EAAA,CAAU,CAPqC,CAQ\/C,QAAAC,EAAA,CAAU,CARqC,CAS\/C,MAAA3qG,EAAA,CAAQ,CATuC,CAU\/C,UAAAupD,EAAA,CAAY,CAAA,CAVmC,CAW\/C,cAAA9\/F,EAAA,CAAgB,CAAA,CAX+B,CAY\/C,OAAAu0G,EAZ+C,CAa\/C,SAAA5kF,EAb+C,CAAD,CAc7C,CACD,MAAMwxH;AAASP,EAAQx9I,CAAAA,MAAR,CAAe,IAAf,CAAf,CACM6B,GAAa27I,EAAQx9I,CAAAA,MAAR,CAAe,CAAA,CAAf,CADnB,CAEM6sB,GAAe2wH,EAAQx7I,CAAAA,WAAR,CAClB9xB,EAAD,EAAQ,CACNq8C,EAAA,CAASggE,EAAUF,CAAAA,aAAV,CAAwBn8G,EAAG8wB,CAAAA,aAAcptB,CAAAA,KAAzC,CAAT,CADM,CADW,CAInB,CAAC24C,EAAD,CAJmB,CAFrB,CAQMxN,GAAgBy+H,EAAQx7I,CAAAA,WAAR,CACnB9xB,EAAD,EAAQ,CACN,GAAe,QAAf,GAAIA,EAAGyG,CAAAA,GAAP,CAEA,GAAe,KAAf,GAAIzG,EAAGyG,CAAAA,GAAP,EAAwC,CAAxC,GAAwBumB,CAAK5wB,CAAAA,MAA7B,CACE4D,EAAG80B,CAAAA,cAAH,EADF,KAAA,CAIA,GAAiB,MAAjB,GAAM90B,EAAGyG,CAAAA,GAAT,EAA8Bw4B,CAAHj\/B,EAAGi\/B,CAAAA,OAA9B,CACEj\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\/C,CAZH,CAaA,OAAuB,GAAIuqG,EAAqB\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\/B,CAA6C\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\/B,CAA6C\/oH,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBmuB,CAAnB,CAAd,CAA0C,CAC5GvO,UAAW,oBADiG,CAE5GioB,SAAU,CACQ,GAAI8lI,EAAqB\/kI,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CACpDhpB,UAAW,iBADyC,CAEpD9lB,EAAG,CAFiD,CAGpDC,EAAG,CAHiD,CAIpDM,MAAOb,IAAKC,CAAAA,GAAL,CAAS,GAAT,CAAeuD,CAAO3C,CAAAA,KAAtB,CAdOklE,CAcP,CAJ6C,CAKpDnlE,OAAQZ,IAAKC,CAAAA,GAAL,CAAS,GAAT,CAAeuD,CAAO5C,CAAAA,MAAtB,CAfMmlE,CAeN,CAL4C,CAMpD10C,cAAe,KANqC,CAAtC,CADR,CASRgjJ,CATQ,EASyB,GAAIF,EAAqB\/kI,CAAAA,GAAzB,EAA8B,GAA9B,CAAmC,CAClEg3B,OAAQ,2BAD0D;AAElE\/3B,SAA0B,GAAI8lI,EAAqB\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\/E5e,MAAO,CACLuO,SAAU,QADL,CAEL\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\/1C,EAAc+E,EAAd\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\/C,EAAYq\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\/C,EAAYq\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\/C,EAAYq\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\/\/I,EAAI7C,CAAAA,QAAS5yB,CAAAA,MAAO3C,CAAAA,KAArB,CAA4Bo4B,EAAI7C,CAAAA,QAAS5yB,CAAAA,MAAO5C,CAAAA,MAAhD,CAAnB,CACMq4K,GAAoBhgJ,EAAI7C,CAAAA,QAAS8iJ,CAAAA,cAAb,CAA4B,CAAC,IAAK11K,CAAAA,MAAOC,CAAAA,IAAb,CAAmB,IAAKD,CAAAA,MAAOE,CAAAA,IAA\/B,CAA5B,CAC1B,EAAIu1K,EAAA,CAAkB,CAAlB,CAAJ,CAA2BD,EAAA,CAAW,CAAX,CAA3B,CAA2C,GAA3C,EAAkDC,EAAA,CAAkB,CAAlB,CAAlD,CAAyED,EAAA,CAAW,CAAX,CAAzE,CAAyF,GAAzF,EAA2H,GAA3H,CAAgG\/\/I,EAAI7C,CAAAA,QAASmO,CAAAA,MAAOD,CAAAA,IAApH,EAA6J,EAA7J,CAAkIrL,EAAI7C,CAAAA,QAASmO,CAAAA,MAAOD,CAAAA,IAAtJ,GACErL,EAAI7C,CAAAA,QAASq\/E,CAAAA,YAAb,CAA0BlvG,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmB,IAAKhD,CAAAA,MAAxB,CAAd,CAA+C,CAAEE,KAAM,IAAKF,CAAAA,MAAOmzB,CAAAA,IAAlBjzB,CAAyB,EAA3B,CAA\/C,CAA1B,CAJY,CADM,CAAxB,CAQG,CAACu1B,EAAI7C,CAAAA,QAAS5yB,CAAAA,MAAO5C,CAAAA,MAAOunB,CAAAA,OAA3B,CAAmC,CAAnC,CAAD,CARH,CASA,OAAMgxJ,GAAoBhC,EAAQ1gJ,CAAAA,WAAR,CAAqB3C,EAAD,EAAS,CACrD,IAAKmkJ,CAAAA,uBAAL,CAA+B,CAAA,CAC\/B,OAAMP,GAAY9kJ,EAAA,CAAUkB,EAAV,CAAA,CAAiB,GAAjB,CAAuB,GACzC,KAAK4V,CAAAA,MAAL,CAAY,CACV2vE,OAAQvlF,EADE;AAEVnyB,KAAM,CAAC,GAAD,CAAM,GAAN,CAFI,CAGV+1K,UAAAA,EAHU,CAIV7lH,QAAuB,GAAvBA,GAAS6lH,EAJC,CAAZ,CAMAz+I,GAAIm\/H,CAAAA,UAAJ,CAAe,QAAf,CACAn\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\/tJ,CAAvC,CAA6C,GAD4D,CAE\/GvoB,KAAAA,EAF+G,CAG\/G2vB,QAAAA,EAH+G,CAI\/Gsd,SAAmC,GAAzB,GAAA,IAAKnjC,CAAAA,KAAMwsK,CAAAA,SAAX,CAA+C,GAAIN,EAAqBhoI,CAAAA,GAAzB,EAA8BiqH,EAA9B,CAAwC,CAC\/FK,SAAUrgD,EADqF,CAAxC,CAA\/C,CAEW,GAAI+9D,EAAqBhoI,CAAAA,GAAzB,EAA8BgqH,EAA9B,CAA0C,CAC7DQ,QAASvgD,EADoD,CAA1C,CAN0F,CAAvD,CADlD;AAWRggE,EAXQ,EAW0B,GAAIjC,EAAqBhoI,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACrEhpB,UAAW,qBAD0D,CAErEioB,SAAU,kBAF2D,CAArC,CAX1B,CAeRirI,EAfQ,EAeyB,GAAIlC,EAAqBhoI,CAAAA,GAAzB,EAA8BgqI,EAA9B,CAA+C5yK,EAAA,CAAe,EAAf,CAAmBoyK,CAAnB,CAA\/C,CAfzB,CAP+C,CAAtC,CApB8B,CAArC,CANR,CADA,CAJyD,CAA9C,CAlF0C,CAA7B,CAAtC,CA8IAroG,GAAA,CAAc,IAAd,CAAoB,gBAApB,CAAsCljC,EAAA,CAAS,EAAA,EAAM,CACnD,MAAM7pC,EAAS,IAAKgiF,CAAAA,SAAL,EACf,OAAuB,GAAI4xF,EAAqBhoI,CAAAA,GAAzB,EAA8B,MAA9B,CAAsC,CAC3DvuC,MAAO2C,CAAO3C,CAAAA,KAD6C,CAE3DD,OAAQ4C,CAAO5C,CAAAA,MAF4C,CAG3DQ,KAAM,aAHqD,CAI3D6D,GAAI,CAJuD,CAK3DC,GAAI,CALuD,CAM3Dq7F,gBAAiB,IAAKr1F,CAAAA,KAAMuhE,CAAAA,QAAX,CAAsB,KAAtB,CAA8B,WANY,CAAtC,CAF4B,CAAf,CAAtC,CAWA8D,GAAA,CAAc,IAAd,CAAoB,eAApB,CAAsCrlE,CAAD,EAAW,CAC9C,IAAIye,CACJ,IAAmB,IAAK,EAAxB,GAAIze,CAAMvJ,CAAAA,IAAV,CAA2B,CACzB,MAAMimE,GAAQyvG,EAAA,CAA+C,IAAjC,GAAC1tJ,CAAD,CAAO,IAAKze,CAAAA,KAAM0mD,CAAAA,UAAlB,EAAwCjoC,CAAxC,CAA8C,IAA5D,CACdze,EAAMvJ,CAAAA,IAAN,CAAW,CAAX,CAAA,CAAgB3B,IAAKC,CAAAA,GAAL,CAASiL,CAAMvJ,CAAAA,IAAN,CAAW,CAAX,CAAT,CAAwB,EAAxB,CAA6BimE,EAA7B,CAChB18D,EAAMvJ,CAAAA,IAAN,CAAW,CAAX,CAAA,CAAgB3B,IAAKC,CAAAA,GAAL,CAASiL,CAAMvJ,CAAAA,IAAN,CAAW,CAAX,CAAT,CAnVJg4K,EAmVI,CAAwC\/xG,EAAxC,CAHS,CAK3B,MAAO9B,GAAA,CAAkB,IAAlB;AAAwB56D,CAAxB,CAPuC,CAAhD,CASAwX,GAAA,CAAe,IAAf,CACIxX,EAAMysG,CAAAA,SAAV,EACElvG,MAAOiD,CAAAA,MAAP,CAAc,IAAKs3F,CAAAA,SAAnB,CAA8B,CAAC,CAAA,CAAD,CAAO,CAAA,CAAP,CAA9B,CAEqD,EAAvD,IAA2B,IAAtB,GAACr5E,CAAD,CAAOze,CAAMvJ,CAAAA,IAAb,EAA6B,IAAK,EAAlC,CAAsCgoB,CAAA,CAAI,CAAJ,CAA3C,IACE,IAAKsuJ,CAAAA,uBADP,CACiC,CAAA,CADjC,CArTsB,CAyTjB2B,oBAAa,CAAC9lJ,CAAD,CAAM,CAExB,MAAIA,EAAJ,CACS,cAAe9mB,CAAAA,IAAf,CAAoB8mB,CAApB,CAAA,EAAsD\/yB,EAAtD,GAA4B+yB,CAAI\/yB,CAAAA,MAAhC,CAA+D,GAA\/D,CAAqE,GAD9E,CAGO,CAAA,CALiB,CAOtB,aAAY,EAAA,CACd,MAAgC,GAAzB,GAAA,IAAKmK,CAAAA,KAAMwsK,CAAAA,SAAX,CAA+B,IAAKxsK,CAAAA,KAAM2mD,CAAAA,OAA1C,CAAoD,IAAK3mD,CAAAA,KAAMysG,CAAAA,SADxD,CAGZ,cAAa,EAAA,CACf,IAAIhuF,CACJ,OAAwC,KAAjC,GAACA,CAAD,CAAO,IAAKze,CAAAA,KAAM0mD,CAAAA,UAAlB,EAAwCjoC,CAAxC,CAA8C,IAFtC,CAIjBwuJ,gBAAgB,CAAC3kK,CAAD,CAAMokB,CAAA,CAAW,EAAjB,CAAqB,CACnC,MAAM,CAACj2B,CAAD,CAAOw8C,CAAP,CAAA,CAAkBg5H,EAAQzwI,CAAAA,QAAR,CAAiB,CAAC,CAAD,CAAI,CAAJ,CAAjB,CAAxB,CACMzN,GAAMF,EAAA,EACZo+I,GAAQvgJ,CAAAA,SAAR,CAAkB,EAAA,EAAM,CACtBna,UAAA,CAAW,EAAA,EAAM,CACf,GAAW,IAAP,EAAAjJ,CAAA,CAAc,CAAd,CAAuBA,CAAI4hB,CAAAA,OAA\/B,CAAwC,CACtC,MAAMm3E;AAAK30E,CAAA,CAAWpkB,CAAI4hB,CAAAA,OAAQkC,CAAAA,aAAZ,CAA0BM,CAA1B,CAAX,CAAiDpkB,CAAI4hB,CAAAA,OAChE,IAAIm3E,EAAJ,CAAQ,CACN,MAAMstE,GAAa,EAAAA,EAAM,CACvB,MAAM,CAAE,MAAAh5K,EAAF,CAAS,OAAAD,EAAT,CAAA,CAAoB2rG,EAAG55E,CAAAA,qBAAH,EAA1B,CACMriB,GAAQ4X,EAAY0zD,CAAAA,GAAZ,CAAgB,CAAC\/6E,EAAD,CAAQD,EAAR,CAAhB,CAAiCq4B,EAAI7C,CAAAA,QAASmO,CAAAA,MAAOD,CAAAA,IAArD,CACd6Z,EAAA,CAAQ7tC,EAAR,CACA,OAAOA,GAJgB,CAMzBupK,GAAA,EACA,KAAKnB,CAAAA,cAAL,CAAsB,EAAAoB,EAAMD,EAAA,EAAA,CAAa,CAAb,CAC5B,OAAM5iJ,GAAiB,IAAIC,cAAJ,CAAmB,EAAA,EAAM,CAC9C2iJ,EAAA,EAD8C,CAAzB,CAGvB5iJ,GAAeG,CAAAA,OAAf,CAAuBm1E,EAAvB,CACA,OAAO,EAAA,EAAM,CACXt1E,EAAeI,CAAAA,UAAf,EADW,CAbP,CAF8B,CAoBxC,MAAO,EAAA,EAAM,EArBE,CAAjB,CAuBG,EAvBH,CADsB,CAAxB,CAyBG,CAAC7jB,CAAD,CAAMokB,CAAN,CAzBH,CA0BA,OAAOj2B,EA7B4B,CA+BrCk2K,eAAe,EAAG,CAChB,IAAIluJ,CACJ,OAAMi+C,EAAQyvG,EAAA,CAA+C,IAAjC,GAAC1tJ,CAAD,CAAO,IAAKze,CAAAA,KAAM0mD,CAAAA,UAAlB,EAAwCjoC,CAAxC,CAA8C,IAA5D,CACd,OAAO,KAAKze,CAAAA,KAAM2mD,CAAAA,OAAX,CAAqB,CAArB,CA\/YS8nH,EA+YT,CAAyC\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\/CxvJ,GAAI,eAD2C,CAE\/C9F,KAAM,eAFyC,CAG\/C2G,SAAU,MAHqC,CAI\/CpnB,MAAO,CAAC,CAAD,CAAI,CAAJ,CAJwC,CAK\/CC,KAAM,CAAC,GAAD,CAAM,EAAN,CALyC,CAM\/Cm2K,gBAAiB,CAN8B,CAO\/C1xG,OAAQ,EAPuC,CAQ\/ChlE,KAAM,EARyC,CAS\/C4kE,OAAQ,CAAA,CATuC,CAU\/CS,aAAc,CAViC,CAW\/CV,YAAa,CAXkC,CAY\/Cu6B,WAAY,MAZmC,CAa\/CvvE,QAAS,CAbsC,CAc\/CsoF,OAAQ,EAduC,CAe\/C1B,UAAW,CAAA,CAfoC,CAgB\/C9lD,QAAS,CAAA,CAhBsC,CAiB\/CD,WAAY,IAjBmC,CAkB\/CgmH,eAAgB,CAAA,CAlB+B,CAAjD,CAoBAxnG,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGwkK,EAAkB1tK,CAAAA,SAFrB,CAEgC,WAFhC;AAE6C,CAF7C,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEGm6J,EAAkB1tK,CAAAA,SAFrB,CAEgC,cAFhC,CAEgD,CAFhD,CAGAqmE,GAAA,CAAgB,CACdn9D,EADc,CAAhB,CAEGwkK,EAAkB1tK,CAAAA,SAFrB,CAEgC,YAFhC,CAE8C,CAF9C,CAGAqmE,GAAA,CAAgB,CACd9yD,EADc,CAAhB,CAEGm6J,EAAkB1tK,CAAAA,SAFrB,CAEgC,eAFhC,CAEiD,CAFjD,CAyDA,KAAI,CAAE,IAAKu\/D,EAAP,CAAW,GAAIywG,EAAf,CAAA,CAAuB\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\/E,CAAAA,KAAV,GACE5\/E,CAAM4\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\/B,EAAGi\/B,CAAAA,OAA9B,CACEj\/B,EAAGysD,CAAAA,eAAH,EADF;IAEO,IAAe,GAAf,GAAIzsD,EAAGyG,CAAAA,GAAP,EAAsBzG,EAAGi\/B,CAAAA,OAAzB,CAAkC,CACnCj\/B,EAAG8\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\/xG,EAAQ+xG,CAAI\/xG,CAAAA,KAAJ,CAAUi4G,EAAV,CAEd,OADwF,KAAxEE,GAAChqJ,CAADgqJ,CAAmD,IAA7C,GAAClyJ,CAAD,CAAgB,IAAT,EAAA+5C,CAAA,CAAgB,IAAK,EAArB,CAAyBA,CAAA,CAAM,CAAN,CAAhC,EAAoD\/5C,CAApD,CAA0D8rJ,CAAhEoG,EAA+EhqJ,CAA\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\/xG,EAAQ+xG,CAAI\/xG,CAAAA,KAAJ,CAAU24G,EAAV,CAEd,OADwF,KAAxER,GAAChqJ,CAADgqJ,CAAmD,IAA7C,GAAClyJ,CAAD,CAAgB,IAAT,EAAA+5C,CAAA,CAAgB,IAAK,EAArB,CAAyBA,CAAA,CAAM,CAAN,CAAhC,EAAoD\/5C,CAApD,CAA0D8rJ,CAAhEoG,EAA+EhqJ,CAA\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\/BQ,CA1JD,CAHlB,CA+LIo8E,GAAaH,EACjB\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\/K,GAAuBn\/K,EAAA,CAAQ,GAAR,CAD3B,CAGIo\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\/D,CAEnCn\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\/b,EACN,CADyB,IAAZ,EAAA\/E,EAAA,CAAmB,IAAK,EAAxB,CAA4BA,EAASi\/I,CAAAA,WAAT,CAAqBn+H,EAArB,CACzC,CACEi+H,EAAA,CAAgBh6I,EAAhB,CACA,CAAc,IAAd,EAAAozI,EAAA,CAAqB,IAAK,EAA1B,CAA8BA,EAAA,CAAWpzI,EAAX,CAEhC,OAAOA,GANI,CADQ,CASrB,CAACozI,EAAD,CATqB,CAhBvB,CA2BM+G,GAAoB1mB,EAAe7rI,CAAAA,OAAQwG,CAAAA,MAAvB,CAA8B,IAA9B,CA3B1B,CA4BM,CAACgsJ,EAAD,CAAmBC,EAAnB,CAAA,CAA0C5mB,EAAe7rI,CAAAA,OAAQyY,CAAAA,QAAvB,CAAgC,CAAhC,CA5BhD,CA6BMi6I,GAAef,EAAA,CAAU59H,EAAV,CAAc69H,EAAd,CA7BrB,CA8BM,CAACe,EAAD,CAAaC,EAAb,CAAA,CAA8B\/mB,EAAe7rI,CAAAA,OAAQyY,CAAAA,QAAvB,CAAgC,aAAhC,CA9BpC,CA+BM,CAACo6I,EAAD,CAAYC,EAAZ,CAAA,CAA4BjnB,EAAe7rI,CAAAA,OAAQyY,CAAAA,QAAvB,CAAgC,CAAA,CAAhC,CAClCozH,GAAe7rI,CAAAA,OAAQ2I,CAAAA,SAAvB,CAAiC,EAAA,EAAM,CACrCna,UAAA,CAAW,EAAA,EAAM,CACf,IAAIkN,EACsB,KAA1B,GAACA,EAAD,CAAO6oJ,EAAOp9I,CAAAA,OAAd;AAAiC,IAAK,EAAtC,CAA0CzL,EAAI4N,CAAAA,KAAJ,EAF3B,CAAjB,CADqC,CAAvC,CAKG,CAACsoJ,EAAD,CALH,CAMA\/lB,GAAe7rI,CAAAA,OAAQ2I,CAAAA,SAAvB,CAAiC,EAAA,EAAM,CACrC6gJ,EAAkByI,CAAAA,kBAAlB,CAAuCl+H,EACvCy1H,GAAkB2I,CAAAA,mBAAlB,CAAwCP,EAFH,CAAvC,CAGG,CAAC79H,EAAD,CAAK69H,EAAL,CAHH,CAIA,OAAM\/vK,GAAUgqJ,EAAe7rI,CAAAA,OAAQyG,CAAAA,OAAvB,CAA+B,EAAA,EAAM,CACnD,IAAI\/K,EACJ,OAAMq3J,GAAW,EAAjB,CACM5nB,GAA0B,IAAb,EAAApa,EAAA,CAAoB,IAAK,EAAzB,CAA6BA,EAAUoa,CAAAA,UAC1D,IAAI,CAACA,EAAL,EAAmB,CAAC93H,EAApB,CACE,MAAO,EAELm4I,GAAJ,EACEuH,EAAS7\/K,CAAAA,IAAT,CAAc,CACZ8\/K,WAAY,aADA,CAEZC,SAAU,EAAAA,EACD,CAAC,CAACZ,EAAA,CAAet+H,EAAf,CAHC,CAKZl+B,QAAyB,GAAIi7J,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC7Dr8B,UAAW,4BADkD,CAE7DioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B4vI,EAA9B,CAA6C,CAC3Dv8D,OAAQ,CAAA,CADmD,CAE3DtgG,KAAM,IAFqD,CAA7C,CADR,CAKI,CAAZ,CAAA6\/B,EAAGjhD,CAAAA,MAAH,CAAgC,GAAIg+K,EAAqBt8H,CAAAA,IAAzB,EAA+Bs8H,EAAqB\/7H,CAAAA,QAApD,CAA8D,CAC5F3U,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B,QAA9B,CAAwC,CACtDf,SAAU1oC,EAAA,CAAG,sBAAH,CAD4C,CAAxC,CADR,CAIRq8C,EAJQ,CADkF,CAA9D,CAAhC;AAOqB,GAAI+8H,EAAqB3vI,CAAAA,GAAzB,EAA8B,QAA9B,CAAwC,CAC3Df,SAAU1oC,EAAA,CAAG,+BAAH,CADiD,CAAxC,CAZb,CAFmD,CAAtC,CALb,CAAd,CA0BF,EAAoE,IAA9D,GAACgkB,EAAD,CAAuB,IAAhB,EAAAg3J,EAAA,CAAuB,IAAK,EAA5B,CAAgCA,EAAatoE,CAAAA,KAApD,EAAqE,CAArE,CAA8E1uF,EAAIsuB,CAAAA,IAAJ,CAAUpyC,EAAD,EAAQA,EAAGtG,CAAAA,WAAH,EAAR,GAA6ByiD,EAAGziD,CAAAA,WAAH,EAAtC,CAApF,GAAgJyiD,CAAAA,EAAhJ,EACEg\/H,EAAS7\/K,CAAAA,IAAT,CACE,CACE8\/K,WAAY,aADd,CAEEC,SAAU,EAAAA,EAAM,CACdb,EAAA,CAAgBr+H,EAAhB,CACA,OAAO,CAAA,CAFO,CAFlB,CAMEl+B,QAAyB,GAAIi7J,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC7Dr8B,UAAW,4BADkD,CAE7DioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B4vI,EAA9B,CAA6C,CAC3Dv8D,OAAQ,CAAA,CADmD,CAE3DtgG,KAAM,IAFqD,CAA7C,CADR,CAKQ,GAAI48J,EAAqB3vI,CAAAA,GAAzB,EAA8B,QAA9B,CAAwC,CACtDf,SAAU1oC,EAAA,CAAG,qBAAH,CAD4C,CAAxC,CALR,CAQRq8C,EARQ,CAFmD,CAAtC,CAN3B,CADF,CAqBE,CACEi\/H,WAAY,aADd,CAEEC,SAAU,EAAAA,EAAM,CACF,IAAZ,EAAA5\/I,EAAA,CAAmB,IAAK,EAAxB,CAA4BA,EAAS6\/I,CAAAA,gBAAT,CAA0Bn\/H,EAA1B,CAC5Bq+H,GAAA,CAAgBr+H,EAAhB,CACA,OAAO,CAAA,CAHO,CAFlB;AAOEl+B,QAAyB,GAAIi7J,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC7Dr8B,UAAW,4BADkD,CAE7DioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B4vI,EAA9B,CAA6C,CAC3Dv8D,OAAQ,CAAA,CADmD,CAE3DtgG,KAAM,IAFqD,CAA7C,CADR,CAKQ,GAAI48J,EAAqB3vI,CAAAA,GAAzB,EAA8B,QAA9B,CAAwC,CACtDf,SAAU1oC,EAAA,CAAG,2BAAH,CAD4C,CAAxC,CALR,CAQRq8C,EARQ,CAFmD,CAAtC,CAP3B,CArBF,CA4CgB,EAAlB,GAAIA,EAAGjhD,CAAAA,MAAP,EAAwC,IAAxC,GAAuB8+K,EAAvB,EACEmB,EAAS7\/K,CAAAA,IAAT,CACE,CACE8\/K,WAAY,QADd,CAEEC,SAAU,EAAAA,EAAM,CACdf,EAAA,CAAgB,GAAhB,CACA,OAAO,CAAA,CAFO,CAFlB,CAMEr8J,QAAyB,GAAIi7J,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC7Dr8B,UAAW,4BADkD,CAE7DioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B4vI,EAA9B,CAA6C,CAC3D78J,KAAM,IADqD,CAA7C,CADR,CAIRxc,EAAA,CAAG,+BAAH,CAJQ,CAFmD,CAAtC,CAN3B,CADF,CAiBE,CACEs7K,WAAY,QADd,CAEEC,SAAU,EAAAA,EAAM,CACdf,EAAA,CAAgB,GAAhB,CACA,OAAO,CAAA,CAFO,CAFlB,CAMEr8J,QAAyB,GAAIi7J,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC7Dr8B,UAAW,4BADkD;AAE7DioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B4vI,EAA9B,CAA6C,CAC3D78J,KAAM,IADqD,CAA7C,CADR,CAIRxc,EAAA,CAAG,8BAAH,CAJQ,CAFmD,CAAtC,CAN3B,CAjBF,CAmCIk6K,GAAN,EAAuC,GAAvC,GAAsBA,EAAtB,EAA+Cc,CAAAA,EAA\/C,EAA4EtoE,CAAbsoE,EAAatoE,CAAAA,KAA5E,EACE2oE,EAAS7\/K,CAAAA,IAAT,CACE,GAAGw\/K,EAAatoE,CAAAA,KAAMzyG,CAAAA,GAAnB,CAAwB+yG,EAAD,EACjB,EACLsoE,WAAY,QADP,CAELC,SAAU,EAAAA,EAAM,CACdb,EAAA,CAAgB1nE,EAAhB,CACA,OAAO,CAAA,CAFO,CAFX,CAML70F,QAAyB,GAAIi7J,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CAC7Dr8B,UAAW,4BADkD,CAE7DioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B4vI,EAA9B,CAA6C,CAC3D78J,KAAMmf,EAAS43H,CAAAA,gBAAT,CAA0BvgD,EAA1B,CAAA,CAAkC,IAAlC,CAAyC,GADY,CAA7C,CADR,CAIR6mE,EAAA,CAAe7mE,EAAf,CAAqB32D,EAArB,CAJQ,CAFmD,CAAtC,CANpB,EADN,CADL,CAqBI69H,GAAN,EAAuC,GAAvC,GAAsBA,EAAtB,EAA+Cc,CAAAA,EAA\/C,EAA4ES,CAAbT,EAAaS,CAAAA,MAA5E,EACEJ,EAAS7\/K,CAAAA,IAAT,CACE,GAAGw\/K,EAAaS,CAAAA,MAAO17K,CAAAA,MAApB,CAA4B4pJ,EAAD,EAAWA,EAAMltG,CAAAA,OAAjB,EAA4BktG,EAAMjpH,CAAAA,IAA7D,CAAmEzgC,CAAAA,GAAnE,CAAuE,CAAC,CAAE,QAAAw8C,EAAF,CAAW,KAAA\/b,EAAX,CAAD,CAAA,EAAuB,CAC\/F,MAAMipH,GAAQhuH,EAAS63H,CAAAA,gBAAT,CAA0B9yH,EAA1B,CACd,OAAO,CACL46I,WAAY,QADP;AAELC,SAAU,EAAAA,EAAM,CAAA,IACVn9E,EADU,CACLlyE,EADK,CACDC,EACb,OAAIw9H,GAAJ,EACE+wB,EAAA,CAAgBh6I,EAAhB,CAEO,CAD+F,IAAtG,GAACvU,EAAD,CAAiE,IAA3D,GAACD,EAAD,CAA+B,IAAzB,GAACkyE,EAAD,CAAOt8F,MAAOgsB,CAAAA,MAAd,EAAgC,IAAK,EAArC,CAAyCswE,EAAIrwE,CAAAA,GAAnD,EAAkE,IAAK,EAAvE,CAA2E7B,EAAGwvJ,CAAAA,aAApF,EAA6G,IAAK,EAAlH,CAAsHvvJ,EAAGjpB,CAAAA,IAAH,CAAQgpB,EAAR,CAAY,CAACwU,EAAD,CAAZ,CAC\/G,CAAA,CAAA,CAHT,EAKO,CAAA,CAPO,CAFX,CAWLviB,QAASwrI,EAAA,CAAwB,GAAIyvB,EAAqBt8H,CAAAA,IAAzB,EAA+Bs8H,EAAqB\/7H,CAAAA,QAApD,CAA8D,CAC7F3U,SAAU,CACQ,GAAI0wI,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CACpDr8B,UAAW,4BADyC,CAEpDioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B4vI,EAA9B,CAA6C,CAC3D78J,KAAM,GADqD,CAA7C,CADR,CAIQ,GAAI48J,EAAqB3vI,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnDhpB,UAAW,mCADwC,CAEnDioB,SAA0B,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8BgqH,EAA9B,CAA0C,CAClEQ,QAASvzH,EADyD,CAA1C,CAFyB,CAArC,CAJR,CAF0C,CAAtC,CADR,CAeQ,GAAI04I,EAAqBt8H,CAAAA,IAAzB,EAA+B,KAA\/B,CAAsC,CACpDr8B,UAAW,4BADyC,CAEpDioB,SAAU,CACQ,GAAI0wI,EAAqB3vI,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnDhpB,UAAW,oCADwC,CAArC,CADR;AAIRo5J,EAAA,CAAep9H,EAAf,CAAwBJ,EAAxB,CAJQ,CAF0C,CAAtC,CAfR,CADmF,CAA9D,CAAxB,CA0BY,GAAI+8H,EAAqB3vI,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACxDhpB,UAAW,4BAD6C,CAExDioB,SAAU1oC,EAAA,CAAG,2BAAH,CAF8C,CAArC,CArChB,CAFwF,CAA9F,CADL,CAgDF,OAAOq7K,GA1L4C,CAArC,CA2Lb,CAACh\/H,EAAD,CAAK69H,EAAL,CAAmBc,EAAnB,CAA8C,IAAb,EAAA3hC,EAAA,CAAoB,IAAK,EAAzB,CAA6BA,EAAUoa,CAAAA,UAAxE,CAAoF93H,EAApF,CA3La,CA4LhBw4H,GAAe7rI,CAAAA,OAAQ2I,CAAAA,SAAvB,CAAiC,EAAA,EAAM,CACrC,MAAM0qJ,GAAmB38K,EAAD28K,EAAQ,CAAA,IAC1B33J,EAD0B,CACrBkI,EACT,KAAI0vJ,GAAWd,EACA,YAAf,GAAI97K,EAAGyG,CAAAA,GAAP,CACEm2K,EADF,CACavhL,IAAK6uB,CAAAA,GAAL,CAAS\/e,EAAQ\/O,CAAAA,MAAjB,CAA0B,CAA1B,CAA6B0\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\/uD,EAAQ\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\/hI,EADF,CAN6B,CAU\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\/G,EAukXD,CAAgFr\/F,EAAA,CAAU,CACrIoT,QAAS,CAAA,CAD4H,CAAV,CAE1Hi3F,EAF0H,CAEnG,CACxBpL,UAAW,CAACrnF,EADY,CAExBq7D,OAAQl\/D,CAFgB,CAGxB\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\/oB,EAAUgiC,CAAQ\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\/DC,WAAAA,CAD+D,CAE\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\/H,EAAAA,CAASuf,CAAQ\/6B,CAAAA,KAAR,CAAepnD,EAAD,EAAQA,EAAG8H,CAAAA,KAAM86D,CAAAA,MAA\/B,CACf,OAAuB,GAAIi+G,EAAqB70I,CAAAA,GAAzB,EAA8BiU,EAA9B,CAA2C,CAChEH,QAASv9C,CAAA,CAAG,iBAAH,CADuD,CAEhEygB,UAAW,WAFqD,CAGhEm9B,QAASyiB,CAHuD,CAIhExiB,gBAAiBlC,CAJ+C,CAKhEjT,SAA0B,GAAI41I,EAAqB70I,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAM68D,CAAA,CAAS,aAAT,CAAyB,SADmC,CAA1C,CALsC,CAA3C,CAXS,CAAf,CAxrCnB,CA6sCI8\/G,GAAez4I,EAAA,CAAS,EAAA,EAAM,CAChC,MAAMpU,EAAMF,EAAA,EAAZ,CACMwsD,EAAUjZ,EAAA,CAAoB,QAApB,CADhB,CAEM4rF,EAAiBa,EAAe9qI,CAAAA,OAAQwI,CAAAA,WAAvB,CAAoCi2B,EAAD,EAAY,CACpEzzB,CAAIszC,CAAAA,mBAAoBvyD,CAAAA,OAAxB,CAAiC5W,EAAD,EAAQ,CACtCA,EAAGsmC,CAAAA,MAAH,CAAU,CAAEtoC,KAAMsrD,EAAR,CAAgB0Z,OAAQ1Z,EAAxB,CAAV,CADsC,CAAxC,CAGAzzB,EAAI80C,CAAAA,OAAJ,EAJoE,CAA\/C,CAKpB,EALoB,CAFvB,CAQMg4G,EAAmBhtB,EAAe9qI,CAAAA,OAAQwI,CAAAA,WAAvB,CAAoC1F,EAAD,EAAa,CACvEkI,CAAIszC,CAAAA,mBAAoBvyD,CAAAA,OAAxB,CAAiC5W,EAAD,EAAQ,CACtCA,EAAGsmC,CAAAA,MAAH,CAAU,CAAE3Y,QAAAA,EAAF,CAAV,CADsC,CAAxC,CAGAkI,EAAI80C,CAAAA,OAAJ,EAJuE,CAAhD,CAKtB,EALsB,CAOzB,OAAuB,GAAIk2G,EAAqB70I,CAAAA,GAAzB,EAA8Bod,EAA9B,CAA0C,CAC\/DM,YAAa,KADkD,CAE\/D98B,MAHYu1D,CAAA,CAAQ,CAAR,CAAWr6E,CAAAA,KAAM86D,CAAAA,MAAjBh2C;AAA0Bu1D,CAAA,CAAQ,CAAR,CAAWr6E,CAAAA,KAAMk7D,CAAAA,MAA3Cp2C,CAAoDu1D,CAAA,CAAQ,CAAR,CAAWr6E,CAAAA,KAAM9J,CAAAA,IAClB,CAG\/D2vB,QAASw0D,CAAA,CAAQ,CAAR,CAAWr6E,CAAAA,KAAM6lB,CAAAA,OAHqC,CAI\/Di8B,WAAY+4H,CAJmD,CAK\/Dh5H,SAAUmrG,CALqD,CAA1C,CAhBS,CAAf,CA7sCnB,CAquCI8tB,GAAiB34I,EAAA,CAAS,EAAA,EAAM,CAClC,MAAMpU,EAAMF,EAAA,EAAZ,CACMktJ,EAAoBltB,EAAe9qI,CAAAA,OAAQwI,CAAAA,WAAvB,CAAoC9xB,CAAD,EAAQ,CAEnEs0B,CAAIvF,CAAAA,GAAIgmF,CAAAA,aAAR,CADa\/0G,CAAG8wB,CAAAA,aAAc6kC,CAAAA,OAAQtgC,CAAAA,IACtC,CAFmE,CAA3C,CAGvB,EAHuB,CAI1B,OAAuB,GAAIiqJ,EAAqB70I,CAAAA,GAAzB,EAA8Bs0G,EAA9B,CAA6C,CAClE52F,YAAa,KADqD,CAElEwD,QAAS,CAAA,CAFyD,CAGlEszF,YAAaqiC,CAHqD,CAA7C,CANW,CAAf,CAruCrB,CAivCIC,GAAmB74I,EAAA,CAAS,EAAA,EAAM,CACpC,MAAMpU,EAAMF,EAAA,EAAZ,CACM,CACJ,SAAU,CAAE,EAAGpzB,CAAL,CADN,CAAA,CAEFozJ,EAAe9qI,CAAAA,OAAQkG,CAAAA,UAAvB,CAAkC+4B,EAAlC,CAHJ,CAIMq4B,EAAUjZ,EAAA,CAAoB,YAApB,CAJhB,CAiBMjkE,EAAQk9E,CAAQ\/6B,CAAAA,KAAR,CAAepnD,EAAD,EAAgC,QAAhC,GAAQA,EAAG8H,CAAAA,KAAMo1F,CAAAA,UAA\/B,CAAA,CAA0D,QAA1D,CAAqE\/a,CAAQ\/6B,CAAAA,KAAR,CAAepnD,EAAD,EAAgC,MAAhC,GAAQA,EAAG8H,CAAAA,KAAMo1F,CAAAA,UAA\/B,CAAA,CAAwD,MAAxD,CAAiE,OACpJ,OAAuB,GAAI2jF,EAAqB70I,CAAAA,GAAzB,EAA8B48B,EAA9B,CAAgD,CACrEmmD,MAAOxsH,CAAA,CAAG,wBAAH,CAD8D;AAErEmK,QAfwBq2K,CACxB,CACE99K,MAAO,MADT,CAEE+jE,KAAM,QAFR,CAGElpB,QAAS,OAHX,CADwBijI,CAMxB,CACE99K,MAAO,QADT,CAEE+jE,KAAM,eAFR,CAGElpB,QAAS,QAHX,CANwBijI,CAa6C,CAGrE99K,MAAAA,CAHqE,CAIrEkoD,cAAgBvhD,EAADuhD,EAAQ,CACrBg1B,CAAQvrE,CAAAA,OAAR,CAAiB2N,EAAD,EAAW,CACzBA,EAAM+hB,CAAAA,MAAN,CAAa,CACX42D,WAAYtxF,EADD,CAAb,CADyB,CAA3B,CAKAiqB,EAAI80C,CAAAA,OAAJ,EANqB,CAJ8C,CAAhD,CAnBa,CAAf,CAjvCvB,CAkxCIq4G,GAAkB\/4I,EAAA,CAAS,EAAA,EAAM,CACnC,MAAMpU,EAAMF,EAAA,EAAZ,CACM,CACJ,SAAU,CAAE,EAAGpzB,CAAL,CADN,CAAA,CAEFozJ,EAAe9qI,CAAAA,OAAQkG,CAAAA,UAAvB,CAAkC+4B,EAAlC,CAHJ,CAIMq4B,EAAUjZ,EAAA,CAAoB,WAApB,CAWhB,KAAM+5G,EAAa9gG,CAAQ\/6B,CAAAA,KAAR,CAAepnD,EAAD,EAAQ,CACvC,IAAIumB,EACJ,OAAuE,OAAvE,IAAwC,IAAhC,GAACA,EAAD,CAAOvmB,EAAG8H,CAAAA,KAAMknG,CAAAA,WAAhB,EAAuC,IAAK,EAA5C,CAAgDzoF,EAAIR,CAAAA,KAA5D,CAFuC,CAAtB,CAInB,OAAMm9J,GAAW\/gG,CAAQ\/6B,CAAAA,KAAR,CAAepnD,EAAD,EAAQ,CACrC,IAAIumB,EACJ,OAAqE,OAArE,IAAwC,IAAhC,GAACA,EAAD,CAAOvmB,EAAG8H,CAAAA,KAAMknG,CAAAA,WAAhB,EAAuC,IAAK,EAA5C,CAAgDzoF,EAAIP,CAAAA,GAA5D,CAFqC,CAAtB,CAIX\/gB,EAAAA,CAAQ,CAACg+K,CAAA,CAAa,OAAb,CAAuB,IAAxB,CAA8BC,EAAA,CAAW,KAAX,CAAmB,IAAjD,CAAuD5gL,CAAAA,MAAvD,CAA8DkuB,EAA9D,CAOd;MAAuB,GAAIqwJ,EAAqB70I,CAAAA,GAAzB,EAA8Bi9B,EAA9B,CAAwD,CAC7E8lD,MAAOxsH,CAAA,CAAG,uBAAH,CADsE,CAE7EmK,QA3BwBq2K,CACxB,CACE99K,MAAO,OADT,CAEE+jE,KAAM,mBAFR,CADwB+5G,CAKxB,CACE99K,MAAO,KADT,CAEE+jE,KAAM,oBAFR,CALwB+5G,CAyBqD,CAG7E99K,MAAAA,CAH6E,CAI7EkoD,cAAgBvhD,EAADuhD,EAAQ,CACrBg1B,CAAQvrE,CAAAA,OAAR,CAAiB2N,EAAD,EAAW,CACnB+hB,IAAAA,GAAN\/hB,EAAM+hB,CAAAA,MAXV,KAAA,GAAO,CACLvgB,MAWoCna,EAXtBkhB,CAAAA,QAAP,CAAgB,OAAhB,CAAA,CAA2B,OAA3B,CAAiD,IADnD,CAEL9G,IAUoCpa,EAVxBkhB,CAAAA,QAAP,CAAgB,KAAhB,CAAA,CAAyB,OAAzB,CAA+C,IAF\/C,CAWGwZ,GAAN,CAAA,IAAA,CAAA\/hB,EAAA,CAAa,CACXyqF,YAAa,EADF,CAAb,CADyB,CAA3B,CAKAn5E,EAAI80C,CAAAA,OAAJ,EANqB,CAJsD,CAAxD,CA\/BY,CAAf,CAlxCtB,CA+zCIw4G,GAAkBl5I,EAAA,CAAS,EAAA,EAAM,CACnC,MAAMpU,EAAMF,EAAA,EAAZ,CACM,CACJ,SAAU,CAAE,EAAGpzB,CAAL,CADN,CAAA,CAEFozJ,EAAe9qI,CAAAA,OAAQkG,CAAAA,UAAvB,CAAkC+4B,EAAlC,CAHJ,CAIMq4B,EAAUjZ,EAAA,CAAoB,WAApB,CAJhB,CAKMk6G,EAAOjhG,CAAQ\/6B,CAAAA,KAAR,CAAepnD,EAAD,EAA8B,GAA9B,CAAQA,EAAG8H,CAAAA,KAAMgnB,CAAAA,UAA\/B,CALb,CAMMwhJ,GAASnuF,CAAQ\/6B,CAAAA,KAAR,CAAepnD,EAAD,EAAQA,EAAG8H,CAAAA,KAAMwoK,CAAAA,MAA\/B,CACf,OAAuB,GAAIuQ,EAAqBxhI,CAAAA,IAAzB,EAA+B,MAA\/B;AAAuC,CAC5Dr8B,UAAW,YADiD,CAE5DioB,SAAU,CACQ,GAAI41I,EAAqB70I,CAAAA,GAAzB,EAA8BiU,EAA9B,CAA2C,CACzDH,QAASv9C,CAAA,CAAG,iBAAH,CADgD,CAEzDygB,UAAW,WAF8C,CAGzDm9B,QAASijI,CAHgD,CAIzDhjI,gBAAkBx0C,EAADw0C,EAAQ,CACvB+hC,CAAQvrE,CAAAA,OAAR,CAAiB2N,EAAD,EAAW,CACzBA,EAAM+hB,CAAAA,MAAN,CAAa,CACXxX,WAAYljB,EAAA,CAAK,GAAL,CAAW,GADZ,CAAb,CAGA2Y,GAAMgoF,CAAAA,aAAN,EAJyB,CAA3B,CAMA12E,EAAI80C,CAAAA,OAAJ,EAPuB,CAJgC,CAazD1\/B,SAA0B,GAAI41I,EAAqB70I,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAM,MAD4D,CAA1C,CAb+B,CAA3C,CADR,CAkBQ,GAAI86K,EAAqB70I,CAAAA,GAAzB,EAA8BiU,EAA9B,CAA2C,CACzDH,QAASv9C,CAAA,CAAG,mBAAH,CADgD,CAEzDygB,UAAW,WAF8C,CAGzDm9B,QAASmwH,EAHgD,CAIzDlwH,gBAAkBx0C,EAADw0C,EAAQ,CACvB+hC,CAAQvrE,CAAAA,OAAR,CAAiB2N,EAAD,EAAW,CACzBA,EAAM+hB,CAAAA,MAAN,CAAa,CACXgqI,OAAQ1kK,EADG,CAAb,CAGA2Y,GAAMgoF,CAAAA,aAAN,EAJyB,CAA3B,CAMA12E,EAAI80C,CAAAA,OAAJ,EAPuB,CAJgC,CAazD1\/B,SAA0B,GAAI41I,EAAqB70I,CAAAA,GAAzB,EAA8Byd,EAA9B,CAA0C,CAClE1jD,KAAM,QAD4D,CAA1C,CAb+B,CAA3C,CAlBR,CAFkD,CAAvC,CARY,CAAf,CA\/zCtB,CA+2CIs9K,GAAcp5I,EAAA,CAAS,EAAA,EAAM,CAC\/B,IAAI1jB,CACJ,OAAMsP,EAAMF,EAAA,EAAZ;AACMpR,EAAQsR,CAAIszC,CAAAA,mBAAJ,CAAwB,CAAxB,CAKd,OAAuB,GAAI03G,EAAqB70I,CAAAA,GAAzB,EAA8BwyI,EAA9B,CAA+C,CACpEG,aALoB\/xI,CAADsR,EAAU,CAC7B35B,CAAM+hB,CAAAA,MAAN,CAAa,CAAEsG,KAAAA,CAAF,CAAb,CACA\/W,EAAI80C,CAAAA,OAAJ,EAF6B,CAIuC,CAEpE\/9B,KAAkC,IAA5B,GAACrmB,CAAD,CAAOhC,CAAMzc,CAAAA,KAAM8kC,CAAAA,IAAnB,EAAmCrmB,CAAnC,CAAyC,EAFqB,CAGpE+8J,UAAW\/+J,CAAMzc,CAAAA,KAAMiX,CAAAA,IAH6C,CAIpEy8B,KAAM,OAJ8D,CAKpEy6D,OAA6B,eAArB,GAAA1xF,CAAMzc,CAAAA,KAAMiX,CAAAA,IAAZ,CAAuCwF,CAAMzc,CAAAA,KAAMmuG,CAAAA,MAAnD,CAA4D,IAAK,EALL,CAMpEyoE,WAAiC,eAArB,GAAAn6J,CAAMzc,CAAAA,KAAMiX,CAAAA,IAAZ,CAAuCwF,CAAMzc,CAAAA,KAAMwsK,CAAAA,SAAnD,CAA+D,IAAK,EANZ,CAA\/C,CARQ,CAAf,CAiBlB0M,GAAwB90K,CAAAA,GAAxB,CAA4B,UAA5B,CAAwC02K,EAAxC,CACA5B,GAAwB90K,CAAAA,GAAxB,CAA4B,cAA5B,CAA4Cw1K,EAA5C,CACAV,GAAwB90K,CAAAA,GAAxB,CAA4B,sBAA5B,CAAoDy1K,EAApD,CACAX,GAAwB90K,CAAAA,GAAxB,CAA4B,YAA5B,CAA0C01K,EAA1C,CACAZ,GAAwB90K,CAAAA,GAAxB,CAA4B,aAA5B,CAA2Cg2K,EAA3C,CACAlB,GAAwB90K,CAAAA,GAAxB,CAA4B,aAA5B,CAA2Cm2K,EAA3C,CACArB,GAAwB90K,CAAAA,GAAxB,CAA4B,cAA5B,CAA4C41K,EAA5C,CACAd,GAAwB90K,CAAAA,GAAxB,CAA4B,QAA5B,CAAsCu2K,EAAtC,CACAzB,GAAwB90K,CAAAA,GAAxB,CAA4B,QAA5B;AAAsCw2K,EAAtC,CACA1B,GAAwB90K,CAAAA,GAAxB,CAA4B,YAA5B,CAA0C42K,EAA1C,CACA9B,GAAwB90K,CAAAA,GAAxB,CAA4B,WAA5B,CAAyC82K,EAAzC,CACAhC,GAAwB90K,CAAAA,GAAxB,CAA4B,WAA5B,CAAyCi3K,EAAzC,CACAnC,GAAwB90K,CAAAA,GAAxB,CAA4B,OAA5B,CAAqCm3K,EAArC,CACArC,GAAwB90K,CAAAA,GAAxB,CAA4B,SAA5B,CAAuCq2K,EAAvC,CACA,KAAIgB,GAA4BxkK,CAADwkK,EAAU,CACvC,IAAIh9J,CACJ,OAAuDjkB,CAAjB,IAA9B,GAACikB,CAAD,CAAO+iD,EAAA,CAAavqD,CAAb,CAAP,EAAqCwH,CAArC,CAA2C,EAAIjkB,EAAAA,MAAhD,CAAuDkuB,EAAvD,CAFgC,CAAzC,CAIIgzJ,GAAiCrhG,CAADqhG,EAAa,CAC\/C,MAAMz5G,EAAQoY,CAAQ3\/E,CAAAA,GAAR,CAAaxC,CAAD,EAAQA,CAAG8H,CAAAA,KAAMiX,CAAAA,IAA7B,CAAd,CACM0kK,EAAc,IAAIz8K,GAAJ,CAAyB,CAAjB,CAAAm7E,CAAQxkF,CAAAA,MAAR,CAAqB4lL,EAAA,CAAyBx5G,CAAA,CAAM,CAAN,CAAzB,CAArB,CAA0D,EAAlE,CACpB,KAAK,IAAIrsE,EAAK,CAAd,CAAiBA,CAAjB,CAAsBqsE,CAAMpsE,CAAAA,MAA5B,EAAyD,CAAzD,CAAsC8lL,CAAYllL,CAAAA,IAAlD,CAA4Db,CAAA,EAA5D,CAAkE,CAChE,MAAMgmL,GAAmBH,EAAA,CAAyBx5G,CAAA,CAAMrsE,CAAN,CAAzB,CACzB+lL,EAAY7sK,CAAAA,OAAZ,CAAqBzB,EAAD,EAAa,CAC1BuuK,EAAiB52J,CAAAA,QAAjB,CAA0B3X,EAA1B,CAAL,EACEsuK,CAAYtuJ,CAAAA,MAAZ,CAAmBhgB,EAAnB,CAF6B,CAAjC,CAFgE,CAQ7C,CAArB,CAAIgtE,CAAQxkF,CAAAA,MAAZ,EACEojL,EAAmBnqK,CAAAA,OAAnB,CAA4BzB,CAAD,EAAa,CAClCsuK,CAAYjnK,CAAAA,GAAZ,CAAgBrH,CAAhB,CAAJ,EACEsuK,CAAYtuJ,CAAAA,MAAZ,CAAmBhgB,CAAnB,CAFoC,CAAxC,CAMF,OAAOpR,MAAM4F,CAAAA,IAAN,CAAW85K,CAAX,CAAwB3mL,CAAAA,IAAxB,CAA6B,CAACC,CAAD,CAAKC,EAAL,CAAA,EAAY8jL,EAAsBniK,CAAAA,OAAtB,CAA8B5hB,CAA9B,CAAZ,CAAgD+jL,EAAsBniK,CAAAA,OAAtB,CAA8B3hB,EAA9B,CAA7E,CAAgHwF,CAAAA,GAAhH,CAAqH2S,CAAD,EAAa6rK,EAAwBhyK,CAAAA,GAAxB,CAA4BmG,CAA5B,CAAjI,CAlBwC,CAJjD,CA0BIwuK,GAAuBpoL,EAAA,CAAQ,GAAR,CA1B3B,CAyEIm5H,GAAazqF,EAAA,CA9CC,CAAC,CAAE,OAAQk4C,CAAV;AAAmB,QAAA+qC,CAAnB,CAA4B,OAAAjpE,CAA5B,CAAD,CAAA2\/H,EAA0C,CAC1D,MAAM\/tJ,EAAMF,EAAA,EAAZ,CACMkuJ,GAAQnuB,EAAQrkI,CAAAA,MAAR,CAAe,IAAf,CADd,CAEMyyJ,GAAcpuB,EAAQrkI,CAAAA,MAAR,CAAe,IAAf,CACpBqkI,GAAQ9hI,CAAAA,eAAR,CAAwB,EAAA,EAAM,CAC5Bva,UAAA,CAAW,EAAA,EAAM,CACf,MAAMqY,GAAMoyJ,EAAY9xJ,CAAAA,OACxB,IAAKN,EAAL,CAAA,CAEA,IAAM,CAAE,YAAAglB,EAAF,CAAe,aAAAE,EAAf,CAAA,CAAgCllB,EACtCmyJ,GAAM7xJ,CAAAA,OAAN,CAAgB,CAAC0kB,EAAD,CAAcE,EAAd,CAHhB,CAFe,CAAjB,CAD4B,CAA9B,CASA8+G,GAAQ9hI,CAAAA,eAAR,CAAwB,EAAA,EAAM,CAC5B,IAAIrN,EACJ,OAAMmL,GAAMoyJ,EAAY9xJ,CAAAA,OACxB,IAAKN,EAAL,CAAA,CAEA,IAAMnzB,GAAgC,IAAzB,GAACgoB,EAAD,CAAOs9J,EAAM7xJ,CAAAA,OAAb,EAAgCzL,EAAhC,CAAsC,CAAC,CAAD,CAAI,CAAJ,CAjgejDjnB,GAAAA,CAAK,CAET,IAAiB,GAAjB,CAggekD4tH,CAhgevCr\/F,CAAAA,GAAX,CAAsB,CACpB,IAAAtuB,GA+\/dgD2tH,CA\/\/dpC1vH,CAAAA,MAAZ+B,CAAqB,CAArBA,CAAyB,EACL,IAApB,CA8\/dgD2tH,CA9\/drC95E,CAAAA,MAAX,GACE7zC,EADF,EA8\/dgD2tH,CA7\/djC95E,CAAAA,MADf,CACwB,GADxB,CAFoB,CAAtB,IAME7zC,GAAA,CAAK,EA0\/d2C2tH,CA1\/dlC1vH,CAAAA,MAAT,CAAkB,CAAlB,CAAsB,EAAtB,CAE+C,GAAtD,CAw\/dkD0vH,CAx\/dvCp\/F,CAAAA,IAAX,CAw\/dkDo\/F,CAx\/dzBzvH,CAAAA,KAAzB,CAAiC,CAAjC,CAw\/d4Cc,EAx\/dP,CAAQ,CAAR,CAArC,CAAkD,CAAlD,CACEe,EADF,EACQ,EAu\/d0C4tH,CAv\/djCp\/F,CAAAA,IAAT,CAu\/d0Co\/F,CAv\/dnBzvH,CAAAA,KAAvB,CAA+B,CAA\/B,CAu\/doCc,EAv\/dD,CAAQ,CAAR,CAAnC,CAAgD,CAAhD,CAAoD,EAApD,CADR,CAE8D,EAF9D,CAw\/dkD2uH,CAt\/dhC\/5E,CAAAA,KAFlB,CAw\/dkD+5E,CAt\/djBzvH,CAAAA,KAFjC,CAEyC,CAFzC,CAw\/d4Cc,EAt\/dC,CAAQ,CAAR,CAF7C,CAE0D,CAF1D,GAGEe,EAHF,EAw\/dkD4tH,CAr\/dnC\/5E,CAAAA,KAHf;AAw\/dkD+5E,CAr\/dpBzvH,CAAAA,KAH9B,CAGsC,CAHtC,CAw\/d4Cc,EAr\/dF,CAAQ,CAAR,CAH1C,CAGuD,CAHvD,CAG2D,EAH3D,CAw\/dE,KAAM,CAACe,EAAD,CAAKC,EAAL,CAAA,CAn\/dD,CAACD,EAAD,CAAKC,EAAL,CAo\/dLmyB,GAAItE,CAAAA,KAAM6P,CAAAA,SAAV,CAAuB,cAAa39B,EAAb,kBAAiCC,EAAjC,KAJvB,CAH4B,CAA9B,CAQG,CAAC2tH,CAAD,CARH,CASA,IAAI,CAACr3F,CAAL,CACE,MAAO,KACT,OAAMkuJ,GAAUP,EAAA,CAA8BrhG,CAA9B,CAChB,OAAuB,GAAIwhG,EAAqB33I,CAAAA,GAAzB,EAA8B4\/E,EAA9B,CAA6C,CAClEE,SAAU,CAAA,CADwD,CAElE7gF,SAA2B,CAA3BA,CAAU84I,EAAQpmL,CAAAA,MAAlBstC,EAAgD,GAAI04I,EAAqB33I,CAAAA,GAAzB,EAA8B,KAA9B,CAAqC,CACnF57B,IAAK0zK,EAD8E,CAEnF9gK,UAAW,2BAFwE,CAGnFoK,MAAO,CACLs3B,WAAYT,CAAA,CAAS,QAAT,CAAoB,SAD3B,CAELh2B,cAAeg2B,CAAA,CAAS,MAAT,CAAkB,KAF5B,CAH4E,CAOnFhZ,SAAU84I,EAAQvhL,CAAAA,GAAR,CAAY,CAACwhL,EAAD,CAAS5mK,EAAT,CAAA,EAAiC,GAAIumK,EAAqBtkI,CAAAA,IAAzB,EAA+Bq2G,EAAQ91G,CAAAA,QAAvC,CAAiD,CACtG3U,SAAU,CACQ,GAAI04I,EAAqB33I,CAAAA,GAAzB,EAA8Bg4I,EAA9B,CAAsC,EAAtC,CADR,CAER5mK,EAFQ,CAEF2mK,EAAQpmL,CAAAA,MAFN,CAEe,CAFf,EAEoC,GAAIgmL,EAAqB33I,CAAAA,GAAzB,EAlqVNowG,EAkqVM,CAAyE,CACnHp5H,UAAW,sBADwG,CAEnHkiC,YAAa,UAFsG,CAAzE,CAFpC,CAD4F,CAAjD,CAQpD9nC,EARoD,CAA7C,CAPyE,CAArC,CAFkB,CAA7C,CAzBmC,CA8C3C,CAzEjB;AA4EI6mK,GAAUp3G,EAAA,CAAQtxE,EAAA,CAAQ,CAAR,CAAR,CA5Ed,CA6EI2oL,GAAuB3oL,EAAA,CAAQ,GAAR,CA7E3B,CA8EI4oL,GAAO9\/K,MAAO8\/K,CAAAA,IA9ElB,CA+EIC,GAAcn6I,EAAA,CAASo6I,QAAqB,CAAC,CAC\/C,SAAAp5I,CAD+C,CAE\/C,aAAAq5I,CAF+C,CAAD,CAG7C,CAAA,IACG\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\/C\/oC,EAAG24B,EAAIyyE,CAAAA,eAAgBjoG,CAAAA,IAAvBnD,CAA8B24B,EAAI7C,CAAAA,QAASmO,CAAAA,MAAO7iC,CAAAA,KAApB,CAA0B,CAA1B,CAA9BpB;AApl+BHmoL,CAml+BkD,CAE\/CloL,EAAG04B,EAAIyyE,CAAAA,eAAgBhoG,CAAAA,IAAvBnD,CAA8B04B,EAAI7C,CAAAA,QAASmO,CAAAA,MAAO7iC,CAAAA,KAApB,CAA0B,CAA1B,CAA9BnB,CArl+BHkoL,CAml+BkD,CAG\/C5nL,OAAuC,IAA\/B,GAACkjG,EAAD,CAAO9qE,EAAIyyE,CAAAA,eAAX,EAAsC,IAAK,EAA3C,CAA+C3H,EAAIljG,CAAAA,KAA3DA,EAAoE,EAHrB,CAI\/CD,QAAwC,IAA\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\/K,EACJ,OAAMq\/J,GAAS,CAAC,IAA+B,IAA5B,GAACr\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\/E,KAAAA,EAFYs\/E,CAGZjyE,IAAKimJ,EAHOh0E,CAIZ9\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\/F,EAAM9\/F,CAAAA,IAAN,CAAW,CAAX,CAAZ,CAA4B,CAA5B,CAAgC,EAAhC,CAAoCD,EAAA,CAAM,CAAN,CAApC,CAA+C+\/F,EAAM9\/F,CAAAA,IAAN,CAAW,CAAX,CAA\/C,CAA+D,CAA\/D,CAAmE,EAAnE,CADe,CAEtBA,KAAMumB,EAAY0zD,CAAAA,GAAZ,CAAgB6lB,EAAM9\/F,CAAAA,IAAtB;AAA4B,CAA5B,CAFgB,CAAxB,CAKF,OAAO,CAAC8oL,EAAD,CAlB+B,CAAjC,CADiC,CAsB1CV,QAASA,GAAuB,CAAC7hI,EAAD,CAAO,CACrC,MAAO1uB,GAAA,CAAQ,IAAR,CAAc,IAAd,CAAoB,SAAU,EAAG,CACtC,IAAM8vJ,GAAQniL,KAAM4F,CAAAA,IAAN,CAAWm7C,EAAKohI,CAAAA,KAAhB,CACd,OAAmB,EAAnB,CAAIA,EAAMvoL,CAAAA,MAAV,EAEE2pL,EACO,CAFD96E,EAEC,CAFQ,KAAMy5E,GAAA,CAAsBC,EAAtB,CAEd,CAAA15E,EAAOhqG,CAAAA,GAAP,CAAW,CAAC67F,EAAD,CAAQ3gG,EAAR,CAAA,EAAe,CAE\/B,OAAQ2gG,EAAMt\/E,CAAAA,IAAd,EACE,KAAK,OAAL,CACE,IAAA0G,GAAe2yJ,EAAW3yJ,CAAAA,YAC1B,MACF,MAAK,OAAL,CACEA,EAAA,CAAektJ,EAAWltJ,CAAAA,YAC1B,MACF,MAAK,KAAL,CACEA,EAAA,CAAe+zJ,EAAS\/zJ,CAAAA,YACxB,MACF,SACE,MAAO,KAXX,CAaM4hK,EAAAA,CAAWlkL,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBqiB,EAAnB,CAAd,CAAgD,CAC\/DZ,GA\/npBHS,EAAA,EA8npBkE,CAE\/Dm5E,QAASJ,EAAMx5E,CAAAA,EAFgD,CAG\/D8I,QAAS,CAHsD,CAAhD,CAKb0wE,GAAM9\/F,CAAAA,IAAV,EACE8G,MAAOiD,CAAAA,MAAP,CAAc++K,EAAd,CAAwB,CACtB\/oL,MAAO,CAACA,EAAA,CAAM,CAAN,CAAD,CAAY+\/F,EAAM9\/F,CAAAA,IAAN,CAAW,CAAX,CAAZ,CAA4B,CAA5B,CAAqC,EAArC,CAAgCb,EAAhC,CAAyCY,EAAA,CAAM,CAAN,CAAzC,CAAoD+\/F,EAAM9\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\/E,EAAA,CAAmB,IAAK,EAAxB,CAA4BA,EAASi\/I,CAAAA,WAAT,CAAqB5uJ,EAArB,CAF3C,EAIW,CACLprB,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmBixK,EAAkB5uJ,CAAAA,YAArC,CAAd,CAAkE,CAChElnB,KAAM,CAAC,GAAD,CAAM,CAAN,CAD0D,CAEhED,MAAO,CAACA,EAAA,CAAM,CAAN,CAAD,CAAWA,EAAA,CAAM,CAAN,CAAX,CAFyD,CAGhE23G,OAAQhzE,EAHwD,CAIhEjlC,KAAM63B,CAAIG,CAAAA,QAASpJ,CAAAA,KAJ6C,CAKhEo2C,OAAQntC,CAAIG,CAAAA,QAASpJ,CAAAA,KAL2C,CAMhE4hC,WAAY34B,CAAIG,CAAAA,QAASw4B,CAAAA,UANuC,CAOhE8lH,UAAW,GAPqD,CAQhE7lH,QAAS,CAAA,CARuD,CAAlE,CADK,CAJX,CAkBO,IApB+B,CAAjC,CAD4C,CAvQyF,IAC1IloC,EAD0I,CACrIkI,EACT,KAAI64J,GAAsB,EAA1B,CACIU,GAAgB,EACpB,OAAMC,GAAmB,EA2RzBpyJ,EAAIgsE,CAAAA,OAAQC,CAAAA,SAAZ,CAAsB,UAAtB,CACA,KAAIsU,GAAY,EAChB,IAAI,CACE7\/E,EAAJ;AACE6\/E,EAAUr4G,CAAAA,IAAV,CAAe,IAAkE,IAA\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\/BI\/lD,GAAkBzsH,CAADysH,EAAW,CAC9B,MAAM,CAAE,UAAAqnB,CAAF,CAAA,CAAgB3lB,EAAQllG,CAAAA,UAAR,CAAmB+4B,EAAnB,CAEtB,OAAuB,GAAI2+H,EAAqBz8I,CAAAA,GAAzB,EAA8B4vG,CAAUrnB,CAAAA,cAAxC,CAAwDpxH,EAAA,CAAcC,EAAA,CAAe,EAAf,CAAmB0E,CAAnB,CAAd,CAAyC,CACtH4E,QAFcA,CAAE,UAAW,CAAA,CAAbA,CACwG,CAAzC,CAAxD,CAHO,CAv\/BhC,CA8\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","sources":["frontend\/tldraw-logseq.js"],"sourcesContent":["shadow$provide[593] = function(global,require,module,exports) {\n\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a5, b5) => {\n for (var prop in b5 || (b5 = {}))\n if (__hasOwnProp.call(b5, prop))\n __defNormalProp(a5, prop, b5[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b5)) {\n if (__propIsEnum.call(b5, prop))\n __defNormalProp(a5, prop, b5[prop]);\n }\n return a5;\n};\nvar __spreadProps = (a5, b5) => __defProps(a5, __getOwnPropDescs(b5));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i4 = decorators.length - 1, decorator; i4 >= 0; i4--)\n if (decorator = decorators[i4])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e2) {\n reject(e2);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e2) {\n reject(e2);\n }\n };\n var step = (x4) => x4.done ? resolve(x4.value) : Promise.resolve(x4.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n\/\/ ..\/..\/node_modules\/rbush\/rbush.min.js\nvar require_rbush_min = __commonJS({\n \"..\/..\/node_modules\/rbush\/rbush.min.js\"(exports, module2) {\n !function(t2, i4) {\n \"object\" == typeof exports && \"undefined\" != typeof module2 ? module2.exports = i4() : \"function\" == typeof define && define.amd ? define(i4) : (t2 = t2 || self).RBush = i4();\n }(exports, function() {\n \"use strict\";\n function t2(t3, r5, e3, a6, h5) {\n !function t4(n5, r6, e4, a7, h6) {\n for (; a7 > e4; ) {\n if (a7 - e4 > 600) {\n var o5 = a7 - e4 + 1, s5 = r6 - e4 + 1, l6 = Math.log(o5), f5 = 0.5 * Math.exp(2 * l6 \/ 3), u5 = 0.5 * Math.sqrt(l6 * f5 * (o5 - f5) \/ o5) * (s5 - o5 \/ 2 < 0 ? -1 : 1), m5 = Math.max(e4, Math.floor(r6 - s5 * f5 \/ o5 + u5)), c5 = Math.min(a7, Math.floor(r6 + (o5 - s5) * f5 \/ o5 + u5));\n t4(n5, r6, m5, c5, h6);\n }\n var p5 = n5[r6], d5 = e4, x4 = a7;\n for (i4(n5, e4, r6), h6(n5[a7], p5) > 0 && i4(n5, e4, a7); d5 < x4; ) {\n for (i4(n5, d5, x4), d5++, x4--; h6(n5[d5], p5) < 0; )\n d5++;\n for (; h6(n5[x4], p5) > 0; )\n x4--;\n }\n 0 === h6(n5[e4], p5) ? i4(n5, e4, x4) : i4(n5, ++x4, a7), x4 <= r6 && (e4 = x4 + 1), r6 <= x4 && (a7 = x4 - 1);\n }\n }(t3, r5, e3 || 0, a6 || t3.length - 1, h5 || n4);\n }\n function i4(t3, i5, n5) {\n var r5 = t3[i5];\n t3[i5] = t3[n5], t3[n5] = r5;\n }\n function n4(t3, i5) {\n return t3 < i5 ? -1 : t3 > i5 ? 1 : 0;\n }\n var r4 = function(t3) {\n void 0 === t3 && (t3 = 9), this._maxEntries = Math.max(4, t3), this._minEntries = Math.max(2, Math.ceil(0.4 * this._maxEntries)), this.clear();\n };\n function e2(t3, i5, n5) {\n if (!n5)\n return i5.indexOf(t3);\n for (var r5 = 0; r5 < i5.length; r5++)\n if (n5(t3, i5[r5]))\n return r5;\n return -1;\n }\n function a5(t3, i5) {\n h4(t3, 0, t3.children.length, i5, t3);\n }\n function h4(t3, i5, n5, r5, e3) {\n e3 || (e3 = p4(null)), e3.minX = 1 \/ 0, e3.minY = 1 \/ 0, e3.maxX = -1 \/ 0, e3.maxY = -1 \/ 0;\n for (var a6 = i5; a6 < n5; a6++) {\n var h5 = t3.children[a6];\n o4(e3, t3.leaf ? r5(h5) : h5);\n }\n return e3;\n }\n function o4(t3, i5) {\n return t3.minX = Math.min(t3.minX, i5.minX), t3.minY = Math.min(t3.minY, i5.minY), t3.maxX = Math.max(t3.maxX, i5.maxX), t3.maxY = Math.max(t3.maxY, i5.maxY), t3;\n }\n function s4(t3, i5) {\n return t3.minX - i5.minX;\n }\n function l5(t3, i5) {\n return t3.minY - i5.minY;\n }\n function f4(t3) {\n return (t3.maxX - t3.minX) * (t3.maxY - t3.minY);\n }\n function u4(t3) {\n return t3.maxX - t3.minX + (t3.maxY - t3.minY);\n }\n function m4(t3, i5) {\n return t3.minX <= i5.minX && t3.minY <= i5.minY && i5.maxX <= t3.maxX && i5.maxY <= t3.maxY;\n }\n function c4(t3, i5) {\n return i5.minX <= t3.maxX && i5.minY <= t3.maxY && i5.maxX >= t3.minX && i5.maxY >= t3.minY;\n }\n function p4(t3) {\n return { children: t3, height: 1, leaf: true, minX: 1 \/ 0, minY: 1 \/ 0, maxX: -1 \/ 0, maxY: -1 \/ 0 };\n }\n function d4(i5, n5, r5, e3, a6) {\n for (var h5 = [n5, r5]; h5.length; )\n if (!((r5 = h5.pop()) - (n5 = h5.pop()) <= e3)) {\n var o5 = n5 + Math.ceil((r5 - n5) \/ e3 \/ 2) * e3;\n t2(i5, o5, n5, r5, a6), h5.push(n5, o5, o5, r5);\n }\n }\n return r4.prototype.all = function() {\n return this._all(this.data, []);\n }, r4.prototype.search = function(t3) {\n var i5 = this.data, n5 = [];\n if (!c4(t3, i5))\n return n5;\n for (var r5 = this.toBBox, e3 = []; i5; ) {\n for (var a6 = 0; a6 < i5.children.length; a6++) {\n var h5 = i5.children[a6], o5 = i5.leaf ? r5(h5) : h5;\n c4(t3, o5) && (i5.leaf ? n5.push(h5) : m4(t3, o5) ? this._all(h5, n5) : e3.push(h5));\n }\n i5 = e3.pop();\n }\n return n5;\n }, r4.prototype.collides = function(t3) {\n var i5 = this.data;\n if (!c4(t3, i5))\n return false;\n for (var n5 = []; i5; ) {\n for (var r5 = 0; r5 < i5.children.length; r5++) {\n var e3 = i5.children[r5], a6 = i5.leaf ? this.toBBox(e3) : e3;\n if (c4(t3, a6)) {\n if (i5.leaf || m4(t3, a6))\n return true;\n n5.push(e3);\n }\n }\n i5 = n5.pop();\n }\n return false;\n }, r4.prototype.load = function(t3) {\n if (!t3 || !t3.length)\n return this;\n if (t3.length < this._minEntries) {\n for (var i5 = 0; i5 < t3.length; i5++)\n this.insert(t3[i5]);\n return this;\n }\n var n5 = this._build(t3.slice(), 0, t3.length - 1, 0);\n if (this.data.children.length)\n if (this.data.height === n5.height)\n this._splitRoot(this.data, n5);\n else {\n if (this.data.height < n5.height) {\n var r5 = this.data;\n this.data = n5, n5 = r5;\n }\n this._insert(n5, this.data.height - n5.height - 1, true);\n }\n else\n this.data = n5;\n return this;\n }, r4.prototype.insert = function(t3) {\n return t3 && this._insert(t3, this.data.height - 1), this;\n }, r4.prototype.clear = function() {\n return this.data = p4([]), this;\n }, r4.prototype.remove = function(t3, i5) {\n if (!t3)\n return this;\n for (var n5, r5, a6, h5 = this.data, o5 = this.toBBox(t3), s5 = [], l6 = []; h5 || s5.length; ) {\n if (h5 || (h5 = s5.pop(), r5 = s5[s5.length - 1], n5 = l6.pop(), a6 = true), h5.leaf) {\n var f5 = e2(t3, h5.children, i5);\n if (-1 !== f5)\n return h5.children.splice(f5, 1), s5.push(h5), this._condense(s5), this;\n }\n a6 || h5.leaf || !m4(h5, o5) ? r5 ? (n5++, h5 = r5.children[n5], a6 = false) : h5 = null : (s5.push(h5), l6.push(n5), n5 = 0, r5 = h5, h5 = h5.children[0]);\n }\n return this;\n }, r4.prototype.toBBox = function(t3) {\n return t3;\n }, r4.prototype.compareMinX = function(t3, i5) {\n return t3.minX - i5.minX;\n }, r4.prototype.compareMinY = function(t3, i5) {\n return t3.minY - i5.minY;\n }, r4.prototype.toJSON = function() {\n return this.data;\n }, r4.prototype.fromJSON = function(t3) {\n return this.data = t3, this;\n }, r4.prototype._all = function(t3, i5) {\n for (var n5 = []; t3; )\n t3.leaf ? i5.push.apply(i5, t3.children) : n5.push.apply(n5, t3.children), t3 = n5.pop();\n return i5;\n }, r4.prototype._build = function(t3, i5, n5, r5) {\n var e3, h5 = n5 - i5 + 1, o5 = this._maxEntries;\n if (h5 <= o5)\n return a5(e3 = p4(t3.slice(i5, n5 + 1)), this.toBBox), e3;\n r5 || (r5 = Math.ceil(Math.log(h5) \/ Math.log(o5)), o5 = Math.ceil(h5 \/ Math.pow(o5, r5 - 1))), (e3 = p4([])).leaf = false, e3.height = r5;\n var s5 = Math.ceil(h5 \/ o5), l6 = s5 * Math.ceil(Math.sqrt(o5));\n d4(t3, i5, n5, l6, this.compareMinX);\n for (var f5 = i5; f5 <= n5; f5 += l6) {\n var u5 = Math.min(f5 + l6 - 1, n5);\n d4(t3, f5, u5, s5, this.compareMinY);\n for (var m5 = f5; m5 <= u5; m5 += s5) {\n var c5 = Math.min(m5 + s5 - 1, u5);\n e3.children.push(this._build(t3, m5, c5, r5 - 1));\n }\n }\n return a5(e3, this.toBBox), e3;\n }, r4.prototype._chooseSubtree = function(t3, i5, n5, r5) {\n for (; r5.push(i5), !i5.leaf && r5.length - 1 !== n5; ) {\n for (var e3 = 1 \/ 0, a6 = 1 \/ 0, h5 = void 0, o5 = 0; o5 < i5.children.length; o5++) {\n var s5 = i5.children[o5], l6 = f4(s5), u5 = (m5 = t3, c5 = s5, (Math.max(c5.maxX, m5.maxX) - Math.min(c5.minX, m5.minX)) * (Math.max(c5.maxY, m5.maxY) - Math.min(c5.minY, m5.minY)) - l6);\n u5 < a6 ? (a6 = u5, e3 = l6 < e3 ? l6 : e3, h5 = s5) : u5 === a6 && l6 < e3 && (e3 = l6, h5 = s5);\n }\n i5 = h5 || i5.children[0];\n }\n var m5, c5;\n return i5;\n }, r4.prototype._insert = function(t3, i5, n5) {\n var r5 = n5 ? t3 : this.toBBox(t3), e3 = [], a6 = this._chooseSubtree(r5, this.data, i5, e3);\n for (a6.children.push(t3), o4(a6, r5); i5 >= 0 && e3[i5].children.length > this._maxEntries; )\n this._split(e3, i5), i5--;\n this._adjustParentBBoxes(r5, e3, i5);\n }, r4.prototype._split = function(t3, i5) {\n var n5 = t3[i5], r5 = n5.children.length, e3 = this._minEntries;\n this._chooseSplitAxis(n5, e3, r5);\n var h5 = this._chooseSplitIndex(n5, e3, r5), o5 = p4(n5.children.splice(h5, n5.children.length - h5));\n o5.height = n5.height, o5.leaf = n5.leaf, a5(n5, this.toBBox), a5(o5, this.toBBox), i5 ? t3[i5 - 1].children.push(o5) : this._splitRoot(n5, o5);\n }, r4.prototype._splitRoot = function(t3, i5) {\n this.data = p4([t3, i5]), this.data.height = t3.height + 1, this.data.leaf = false, a5(this.data, this.toBBox);\n }, r4.prototype._chooseSplitIndex = function(t3, i5, n5) {\n for (var r5, e3, a6, o5, s5, l6, u5, m5 = 1 \/ 0, c5 = 1 \/ 0, p5 = i5; p5 <= n5 - i5; p5++) {\n var d5 = h4(t3, 0, p5, this.toBBox), x4 = h4(t3, p5, n5, this.toBBox), v4 = (e3 = d5, a6 = x4, o5 = void 0, s5 = void 0, l6 = void 0, u5 = void 0, o5 = Math.max(e3.minX, a6.minX), s5 = Math.max(e3.minY, a6.minY), l6 = Math.min(e3.maxX, a6.maxX), u5 = Math.min(e3.maxY, a6.maxY), Math.max(0, l6 - o5) * Math.max(0, u5 - s5)), M2 = f4(d5) + f4(x4);\n v4 < m5 ? (m5 = v4, r5 = p5, c5 = M2 < c5 ? M2 : c5) : v4 === m5 && M2 < c5 && (c5 = M2, r5 = p5);\n }\n return r5 || n5 - i5;\n }, r4.prototype._chooseSplitAxis = function(t3, i5, n5) {\n var r5 = t3.leaf ? this.compareMinX : s4, e3 = t3.leaf ? this.compareMinY : l5;\n this._allDistMargin(t3, i5, n5, r5) < this._allDistMargin(t3, i5, n5, e3) && t3.children.sort(r5);\n }, r4.prototype._allDistMargin = function(t3, i5, n5, r5) {\n t3.children.sort(r5);\n for (var e3 = this.toBBox, a6 = h4(t3, 0, i5, e3), s5 = h4(t3, n5 - i5, n5, e3), l6 = u4(a6) + u4(s5), f5 = i5; f5 < n5 - i5; f5++) {\n var m5 = t3.children[f5];\n o4(a6, t3.leaf ? e3(m5) : m5), l6 += u4(a6);\n }\n for (var c5 = n5 - i5 - 1; c5 >= i5; c5--) {\n var p5 = t3.children[c5];\n o4(s5, t3.leaf ? e3(p5) : p5), l6 += u4(s5);\n }\n return l6;\n }, r4.prototype._adjustParentBBoxes = function(t3, i5, n5) {\n for (var r5 = n5; r5 >= 0; r5--)\n o4(i5[r5], t3);\n }, r4.prototype._condense = function(t3) {\n for (var i5 = t3.length - 1, n5 = void 0; i5 >= 0; i5--)\n 0 === t3[i5].children.length ? i5 > 0 ? (n5 = t3[i5 - 1].children).splice(n5.indexOf(t3[i5]), 1) : this.clear() : a5(t3[i5], this.toBBox);\n }, r4;\n });\n }\n});\n\n\/\/ ..\/..\/node_modules\/fast-deep-equal\/index.js\nvar require_fast_deep_equal = __commonJS({\n \"..\/..\/node_modules\/fast-deep-equal\/index.js\"(exports, module2) {\n \"use strict\";\n module2.exports = function equal(a5, b5) {\n if (a5 === b5)\n return true;\n if (a5 && b5 && typeof a5 == \"object\" && typeof b5 == \"object\") {\n if (a5.constructor !== b5.constructor)\n return false;\n var length, i4, keys;\n if (Array.isArray(a5)) {\n length = a5.length;\n if (length != b5.length)\n return false;\n for (i4 = length; i4-- !== 0; )\n if (!equal(a5[i4], b5[i4]))\n return false;\n return true;\n }\n if (a5.constructor === RegExp)\n return a5.source === b5.source && a5.flags === b5.flags;\n if (a5.valueOf !== Object.prototype.valueOf)\n return a5.valueOf() === b5.valueOf();\n if (a5.toString !== Object.prototype.toString)\n return a5.toString() === b5.toString();\n keys = Object.keys(a5);\n length = keys.length;\n if (length !== Object.keys(b5).length)\n return false;\n for (i4 = length; i4-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(b5, keys[i4]))\n return false;\n for (i4 = length; i4-- !== 0; ) {\n var key = keys[i4];\n if (!equal(a5[key], b5[key]))\n return false;\n }\n return true;\n }\n return a5 !== a5 && b5 !== b5;\n };\n }\n});\n\n\/\/ ..\/..\/..\/node_modules\/deepmerge\/dist\/cjs.js\nvar require_cjs = __commonJS({\n \"..\/..\/..\/node_modules\/deepmerge\/dist\/cjs.js\"(exports, module2) {\n \"use strict\";\n var isMergeableObject = function isMergeableObject2(value) {\n return isNonNullObject(value) && !isSpecial(value);\n };\n function isNonNullObject(value) {\n return !!value && typeof value === \"object\";\n }\n function isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === \"[object RegExp]\" || stringValue === \"[object Date]\" || isReactElement(value);\n }\n var canUseSymbol = typeof Symbol === \"function\" && Symbol.for;\n var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for(\"react.element\") : 60103;\n function isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n }\n function emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n }\n function cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge2(emptyTarget(value), value, options) : value;\n }\n function defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function(element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n }\n function getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge2;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === \"function\" ? customMerge : deepmerge2;\n }\n function getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n return Object.propertyIsEnumerable.call(target, symbol);\n }) : [];\n }\n function getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n }\n function propertyIsOnObject(object2, property) {\n try {\n return property in object2;\n } catch (_2) {\n return false;\n }\n }\n function propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key));\n }\n function mergeObject(target, source, options) {\n var destination = {};\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function(key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n getKeys(source).forEach(function(key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n }\n function deepmerge2(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject;\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n }\n deepmerge2.all = function deepmergeAll(array2, options) {\n if (!Array.isArray(array2)) {\n throw new Error(\"first argument should be an array\");\n }\n return array2.reduce(function(prev, next) {\n return deepmerge2(prev, next, options);\n }, {});\n };\n var deepmerge_1 = deepmerge2;\n module2.exports = deepmerge_1;\n }\n});\n\n\/\/ ..\/..\/node_modules\/tslib\/tslib.js\nvar require_tslib = __commonJS({\n \"..\/..\/node_modules\/tslib\/tslib.js\"(exports, module2) {\n var __extends2;\n var __assign2;\n var __rest2;\n var __decorate2;\n var __param2;\n var __metadata2;\n var __awaiter2;\n var __generator2;\n var __exportStar2;\n var __values3;\n var __read3;\n var __spread2;\n var __spreadArrays2;\n var __spreadArray2;\n var __await2;\n var __asyncGenerator2;\n var __asyncDelegator2;\n var __asyncValues2;\n var __makeTemplateObject2;\n var __importStar2;\n var __importDefault2;\n var __classPrivateFieldGet2;\n var __classPrivateFieldSet2;\n var __classPrivateFieldIn2;\n var __createBinding2;\n (function(factory) {\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\n if (typeof define === \"function\" && define.amd) {\n define(\"tslib\", [\"exports\"], function(exports2) {\n factory(createExporter(root, createExporter(exports2)));\n });\n } else if (typeof module2 === \"object\" && typeof module2.exports === \"object\") {\n factory(createExporter(root, createExporter(module2.exports)));\n } else {\n factory(createExporter(root));\n }\n function createExporter(exports2, previous) {\n if (exports2 !== root) {\n if (typeof Object.create === \"function\") {\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n } else {\n exports2.__esModule = true;\n }\n }\n return function(id3, v4) {\n return exports2[id3] = previous ? previous(id3, v4) : v4;\n };\n }\n })(function(exporter) {\n var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b5) {\n d4.__proto__ = b5;\n } || function(d4, b5) {\n for (var p4 in b5)\n if (Object.prototype.hasOwnProperty.call(b5, p4))\n d4[p4] = b5[p4];\n };\n __extends2 = function(d4, b5) {\n if (typeof b5 !== \"function\" && b5 !== null)\n throw new TypeError(\"Class extends value \" + String(b5) + \" is not a constructor or null\");\n extendStatics(d4, b5);\n function __() {\n this.constructor = d4;\n }\n d4.prototype = b5 === null ? Object.create(b5) : (__.prototype = b5.prototype, new __());\n };\n __assign2 = Object.assign || function(t2) {\n for (var s4, i4 = 1, n4 = arguments.length; i4 < n4; i4++) {\n s4 = arguments[i4];\n for (var p4 in s4)\n if (Object.prototype.hasOwnProperty.call(s4, p4))\n t2[p4] = s4[p4];\n }\n return t2;\n };\n __rest2 = function(s4, e2) {\n var t2 = {};\n for (var p4 in s4)\n if (Object.prototype.hasOwnProperty.call(s4, p4) && e2.indexOf(p4) < 0)\n t2[p4] = s4[p4];\n if (s4 != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) {\n if (e2.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4]))\n t2[p4[i4]] = s4[p4[i4]];\n }\n return t2;\n };\n __decorate2 = function(decorators, target, key, desc) {\n var c4 = arguments.length, r4 = c4 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d4;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\")\n r4 = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i4 = decorators.length - 1; i4 >= 0; i4--)\n if (d4 = decorators[i4])\n r4 = (c4 < 3 ? d4(r4) : c4 > 3 ? d4(target, key, r4) : d4(target, key)) || r4;\n return c4 > 3 && r4 && Object.defineProperty(target, key, r4), r4;\n };\n __param2 = function(paramIndex, decorator) {\n return function(target, key) {\n decorator(target, key, paramIndex);\n };\n };\n __metadata2 = function(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\")\n return Reflect.metadata(metadataKey, metadataValue);\n };\n __awaiter2 = function(thisArg, _arguments, P3, generator) {\n function adopt(value) {\n return value instanceof P3 ? value : new P3(function(resolve) {\n resolve(value);\n });\n }\n return new (P3 || (P3 = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e2) {\n reject(e2);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e2) {\n reject(e2);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n __generator2 = function(thisArg, body) {\n var _2 = { label: 0, sent: function() {\n if (t2[0] & 1)\n throw t2[1];\n return t2[1];\n }, trys: [], ops: [] }, f4, y4, t2, g4;\n return g4 = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g4[Symbol.iterator] = function() {\n return this;\n }), g4;\n function verb(n4) {\n return function(v4) {\n return step([n4, v4]);\n };\n }\n function step(op) {\n if (f4)\n throw new TypeError(\"Generator is already executing.\");\n while (_2)\n try {\n if (f4 = 1, y4 && (t2 = op[0] & 2 ? y4[\"return\"] : op[0] ? y4[\"throw\"] || ((t2 = y4[\"return\"]) && t2.call(y4), 0) : y4.next) && !(t2 = t2.call(y4, op[1])).done)\n return t2;\n if (y4 = 0, t2)\n op = [op[0] & 2, t2.value];\n switch (op[0]) {\n case 0:\n case 1:\n t2 = op;\n break;\n case 4:\n _2.label++;\n return { value: op[1], done: false };\n case 5:\n _2.label++;\n y4 = op[1];\n op = [0];\n continue;\n case 7:\n op = _2.ops.pop();\n _2.trys.pop();\n continue;\n default:\n if (!(t2 = _2.trys, t2 = t2.length > 0 && t2[t2.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _2 = 0;\n continue;\n }\n if (op[0] === 3 && (!t2 || op[1] > t2[0] && op[1] < t2[3])) {\n _2.label = op[1];\n break;\n }\n if (op[0] === 6 && _2.label < t2[1]) {\n _2.label = t2[1];\n t2 = op;\n break;\n }\n if (t2 && _2.label < t2[2]) {\n _2.label = t2[2];\n _2.ops.push(op);\n break;\n }\n if (t2[2])\n _2.ops.pop();\n _2.trys.pop();\n continue;\n }\n op = body.call(thisArg, _2);\n } catch (e2) {\n op = [6, e2];\n y4 = 0;\n } finally {\n f4 = t2 = 0;\n }\n if (op[0] & 5)\n throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n };\n __exportStar2 = function(m4, o4) {\n for (var p4 in m4)\n if (p4 !== \"default\" && !Object.prototype.hasOwnProperty.call(o4, p4))\n __createBinding2(o4, m4, p4);\n };\n __createBinding2 = Object.create ? function(o4, m4, k3, k22) {\n if (k22 === void 0)\n k22 = k3;\n var desc = Object.getOwnPropertyDescriptor(m4, k3);\n if (!desc || (\"get\" in desc ? !m4.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() {\n return m4[k3];\n } };\n }\n Object.defineProperty(o4, k22, desc);\n } : function(o4, m4, k3, k22) {\n if (k22 === void 0)\n k22 = k3;\n o4[k22] = m4[k3];\n };\n __values3 = function(o4) {\n var s4 = typeof Symbol === \"function\" && Symbol.iterator, m4 = s4 && o4[s4], i4 = 0;\n if (m4)\n return m4.call(o4);\n if (o4 && typeof o4.length === \"number\")\n return {\n next: function() {\n if (o4 && i4 >= o4.length)\n o4 = void 0;\n return { value: o4 && o4[i4++], done: !o4 };\n }\n };\n throw new TypeError(s4 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n };\n __read3 = function(o4, n4) {\n var m4 = typeof Symbol === \"function\" && o4[Symbol.iterator];\n if (!m4)\n return o4;\n var i4 = m4.call(o4), r4, ar = [], e2;\n try {\n while ((n4 === void 0 || n4-- > 0) && !(r4 = i4.next()).done)\n ar.push(r4.value);\n } catch (error) {\n e2 = { error };\n } finally {\n try {\n if (r4 && !r4.done && (m4 = i4[\"return\"]))\n m4.call(i4);\n } finally {\n if (e2)\n throw e2.error;\n }\n }\n return ar;\n };\n __spread2 = function() {\n for (var ar = [], i4 = 0; i4 < arguments.length; i4++)\n ar = ar.concat(__read3(arguments[i4]));\n return ar;\n };\n __spreadArrays2 = function() {\n for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++)\n s4 += arguments[i4].length;\n for (var r4 = Array(s4), k3 = 0, i4 = 0; i4 < il; i4++)\n for (var a5 = arguments[i4], j2 = 0, jl = a5.length; j2 < jl; j2++, k3++)\n r4[k3] = a5[j2];\n return r4;\n };\n __spreadArray2 = function(to, from, pack) {\n if (pack || arguments.length === 2)\n for (var i4 = 0, l5 = from.length, ar; i4 < l5; i4++) {\n if (ar || !(i4 in from)) {\n if (!ar)\n ar = Array.prototype.slice.call(from, 0, i4);\n ar[i4] = from[i4];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n __await2 = function(v4) {\n return this instanceof __await2 ? (this.v = v4, this) : new __await2(v4);\n };\n __asyncGenerator2 = function(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g4 = generator.apply(thisArg, _arguments || []), i4, q2 = [];\n return i4 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i4[Symbol.asyncIterator] = function() {\n return this;\n }, i4;\n function verb(n4) {\n if (g4[n4])\n i4[n4] = function(v4) {\n return new Promise(function(a5, b5) {\n q2.push([n4, v4, a5, b5]) > 1 || resume(n4, v4);\n });\n };\n }\n function resume(n4, v4) {\n try {\n step(g4[n4](v4));\n } catch (e2) {\n settle(q2[0][3], e2);\n }\n }\n function step(r4) {\n r4.value instanceof __await2 ? Promise.resolve(r4.value.v).then(fulfill, reject) : settle(q2[0][2], r4);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f4, v4) {\n if (f4(v4), q2.shift(), q2.length)\n resume(q2[0][0], q2[0][1]);\n }\n };\n __asyncDelegator2 = function(o4) {\n var i4, p4;\n return i4 = {}, verb(\"next\"), verb(\"throw\", function(e2) {\n throw e2;\n }), verb(\"return\"), i4[Symbol.iterator] = function() {\n return this;\n }, i4;\n function verb(n4, f4) {\n i4[n4] = o4[n4] ? function(v4) {\n return (p4 = !p4) ? { value: __await2(o4[n4](v4)), done: n4 === \"return\" } : f4 ? f4(v4) : v4;\n } : f4;\n }\n };\n __asyncValues2 = function(o4) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m4 = o4[Symbol.asyncIterator], i4;\n return m4 ? m4.call(o4) : (o4 = typeof __values3 === \"function\" ? __values3(o4) : o4[Symbol.iterator](), i4 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i4[Symbol.asyncIterator] = function() {\n return this;\n }, i4);\n function verb(n4) {\n i4[n4] = o4[n4] && function(v4) {\n return new Promise(function(resolve, reject) {\n v4 = o4[n4](v4), settle(resolve, reject, v4.done, v4.value);\n });\n };\n }\n function settle(resolve, reject, d4, v4) {\n Promise.resolve(v4).then(function(v5) {\n resolve({ value: v5, done: d4 });\n }, reject);\n }\n };\n __makeTemplateObject2 = function(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", { value: raw });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n };\n var __setModuleDefault = Object.create ? function(o4, v4) {\n Object.defineProperty(o4, \"default\", { enumerable: true, value: v4 });\n } : function(o4, v4) {\n o4[\"default\"] = v4;\n };\n __importStar2 = function(mod) {\n if (mod && mod.__esModule)\n return mod;\n var result = {};\n if (mod != null) {\n for (var k3 in mod)\n if (k3 !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k3))\n __createBinding2(result, mod, k3);\n }\n __setModuleDefault(result, mod);\n return result;\n };\n __importDefault2 = function(mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n };\n __classPrivateFieldGet2 = function(receiver, state, kind, f4) {\n if (kind === \"a\" && !f4)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f4 : !state.has(receiver))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f4 : kind === \"a\" ? f4.call(receiver) : f4 ? f4.value : state.get(receiver);\n };\n __classPrivateFieldSet2 = function(receiver, state, value, kind, f4) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f4)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f4 : !state.has(receiver))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f4.call(receiver, value) : f4 ? f4.value = value : state.set(receiver, value), value;\n };\n __classPrivateFieldIn2 = function(state, receiver) {\n if (receiver === null || typeof receiver !== \"object\" && typeof receiver !== \"function\")\n throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n };\n exporter(\"__extends\", __extends2);\n exporter(\"__assign\", __assign2);\n exporter(\"__rest\", __rest2);\n exporter(\"__decorate\", __decorate2);\n exporter(\"__param\", __param2);\n exporter(\"__metadata\", __metadata2);\n exporter(\"__awaiter\", __awaiter2);\n exporter(\"__generator\", __generator2);\n exporter(\"__exportStar\", __exportStar2);\n exporter(\"__createBinding\", __createBinding2);\n exporter(\"__values\", __values3);\n exporter(\"__read\", __read3);\n exporter(\"__spread\", __spread2);\n exporter(\"__spreadArrays\", __spreadArrays2);\n exporter(\"__spreadArray\", __spreadArray2);\n exporter(\"__await\", __await2);\n exporter(\"__asyncGenerator\", __asyncGenerator2);\n exporter(\"__asyncDelegator\", __asyncDelegator2);\n exporter(\"__asyncValues\", __asyncValues2);\n exporter(\"__makeTemplateObject\", __makeTemplateObject2);\n exporter(\"__importStar\", __importStar2);\n exporter(\"__importDefault\", __importDefault2);\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet2);\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet2);\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn2);\n });\n }\n});\n\n\/\/ src\/index.ts\nvar src_exports = {};\n__export(src_exports, {\n App: () => App3,\n PreviewManager: () => PreviewManager,\n generateJSXFromModel: () => generateJSXFromModel,\n generateSVGFromModel: () => generateSVGFromModel\n});\nmodule.exports = __toCommonJS(src_exports);\n\n\/\/ ..\/..\/packages\/core\/src\/types\/types.ts\nvar Color = \/* @__PURE__ *\/ ((Color2) => {\n Color2[\"Yellow\"] = \"yellow\";\n Color2[\"Red\"] = \"red\";\n Color2[\"Pink\"] = \"pink\";\n Color2[\"Green\"] = \"green\";\n Color2[\"Blue\"] = \"blue\";\n Color2[\"Purple\"] = \"purple\";\n Color2[\"Gray\"] = \"gray\";\n Color2[\"Default\"] = \"\";\n return Color2;\n})(Color || {});\nvar Geometry = \/* @__PURE__ *\/ ((Geometry2) => {\n Geometry2[\"Box\"] = \"box\";\n Geometry2[\"Ellipse\"] = \"ellipse\";\n Geometry2[\"Polygon\"] = \"polygon\";\n return Geometry2;\n})(Geometry || {});\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/rng.js\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n getRandomValues = typeof crypto !== \"undefined\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error(\"crypto.getRandomValues() not supported. See https:\/\/github.com\/uuidjs\/uuid#getrandomvalues-not-supported\");\n }\n }\n return getRandomValues(rnds8);\n}\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/regex.js\nvar regex_default = \/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$\/i;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/validate.js\nfunction validate(uuid) {\n return typeof uuid === \"string\" && regex_default.test(uuid);\n}\nvar validate_default = validate;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/stringify.js\nvar byteToHex = [];\nfor (let i4 = 0; i4 < 256; ++i4) {\n byteToHex.push((i4 + 256).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + \"-\" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + \"-\" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + \"-\" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + \"-\" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/v1.js\nvar _nodeId;\nvar _clockseq;\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\nfunction v1(options, buf, offset) {\n let i4 = buf && offset || 0;\n const b5 = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq;\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || rng)();\n if (node == null) {\n node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n if (clockseq == null) {\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;\n }\n }\n let msecs = options.msecs !== void 0 ? options.msecs : Date.now();\n let nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1;\n const dt2 = msecs - _lastMSecs + (nsecs - _lastNSecs) \/ 1e4;\n if (dt2 < 0 && options.clockseq === void 0) {\n clockseq = clockseq + 1 & 16383;\n }\n if ((dt2 < 0 || msecs > _lastMSecs) && options.nsecs === void 0) {\n nsecs = 0;\n }\n if (nsecs >= 1e4) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids\/sec\");\n }\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n msecs += 122192928e5;\n const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;\n b5[i4++] = tl >>> 24 & 255;\n b5[i4++] = tl >>> 16 & 255;\n b5[i4++] = tl >>> 8 & 255;\n b5[i4++] = tl & 255;\n const tmh = msecs \/ 4294967296 * 1e4 & 268435455;\n b5[i4++] = tmh >>> 8 & 255;\n b5[i4++] = tmh & 255;\n b5[i4++] = tmh >>> 24 & 15 | 16;\n b5[i4++] = tmh >>> 16 & 255;\n b5[i4++] = clockseq >>> 8 | 128;\n b5[i4++] = clockseq & 255;\n for (let n4 = 0; n4 < 6; ++n4) {\n b5[i4 + n4] = node[n4];\n }\n return buf || unsafeStringify(b5);\n}\nvar v1_default = v1;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/parse.js\nfunction parse(uuid) {\n if (!validate_default(uuid)) {\n throw TypeError(\"Invalid UUID\");\n }\n let v4;\n const arr = new Uint8Array(16);\n arr[0] = (v4 = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v4 >>> 16 & 255;\n arr[2] = v4 >>> 8 & 255;\n arr[3] = v4 & 255;\n arr[4] = (v4 = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v4 & 255;\n arr[6] = (v4 = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v4 & 255;\n arr[8] = (v4 = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v4 & 255;\n arr[10] = (v4 = parseInt(uuid.slice(24, 36), 16)) \/ 1099511627776 & 255;\n arr[11] = v4 \/ 4294967296 & 255;\n arr[12] = v4 >>> 24 & 255;\n arr[13] = v4 >>> 16 & 255;\n arr[14] = v4 >>> 8 & 255;\n arr[15] = v4 & 255;\n return arr;\n}\nvar parse_default = parse;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/nil.js\nvar nil_default = \"00000000-0000-0000-0000-000000000000\";\n\n\/\/ ..\/..\/packages\/utils\/vec\/src\/index.ts\nvar _Vec = class {\n static clamp(n4, min, max) {\n return Math.max(min, typeof max !== \"undefined\" ? Math.min(n4, max) : n4);\n }\n static clampV(A4, min, max) {\n return A4.map((n4) => max ? _Vec.clamp(n4, min, max) : _Vec.clamp(n4, min));\n }\n static cross(x4, y4, z3) {\n return (y4[0] - x4[0]) * (z3[1] - x4[1]) - (z3[0] - x4[0]) * (y4[1] - x4[1]);\n }\n static snap(a5, step = 1) {\n return [Math.round(a5[0] \/ step) * step, Math.round(a5[1] \/ step) * step];\n }\n};\nvar Vec = _Vec;\nVec.neg = (A4) => {\n return [-A4[0], -A4[1]];\n};\nVec.add = (A4, B3) => {\n return [A4[0] + B3[0], A4[1] + B3[1]];\n};\nVec.addScalar = (A4, n4) => {\n return [A4[0] + n4, A4[1] + n4];\n};\nVec.sub = (A4, B3) => {\n return [A4[0] - B3[0], A4[1] - B3[1]];\n};\nVec.subScalar = (A4, n4) => {\n return [A4[0] - n4, A4[1] - n4];\n};\nVec.vec = (A4, B3) => {\n return [B3[0] - A4[0], B3[1] - A4[1]];\n};\nVec.mul = (A4, n4) => {\n return [A4[0] * n4, A4[1] * n4];\n};\nVec.mulV = (A4, B3) => {\n return [A4[0] * B3[0], A4[1] * B3[1]];\n};\nVec.div = (A4, n4) => {\n return [A4[0] \/ n4, A4[1] \/ n4];\n};\nVec.divV = (A4, B3) => {\n return [A4[0] \/ B3[0], A4[1] \/ B3[1]];\n};\nVec.per = (A4) => {\n return [A4[1], -A4[0]];\n};\nVec.dpr = (A4, B3) => {\n return A4[0] * B3[0] + A4[1] * B3[1];\n};\nVec.cpr = (A4, B3) => {\n return A4[0] * B3[1] - B3[0] * A4[1];\n};\nVec.len2 = (A4) => {\n return A4[0] * A4[0] + A4[1] * A4[1];\n};\nVec.len = (A4) => {\n return Math.hypot(A4[0], A4[1]);\n};\nVec.pry = (A4, B3) => {\n return _Vec.dpr(A4, B3) \/ _Vec.len(B3);\n};\nVec.uni = (A4) => {\n return _Vec.div(A4, _Vec.len(A4));\n};\nVec.normalize = (A4) => {\n return _Vec.uni(A4);\n};\nVec.tangent = (A4, B3) => {\n return _Vec.uni(_Vec.sub(A4, B3));\n};\nVec.dist2 = (A4, B3) => {\n return _Vec.len2(_Vec.sub(A4, B3));\n};\nVec.dist = (A4, B3) => {\n return Math.hypot(A4[1] - B3[1], A4[0] - B3[0]);\n};\nVec.fastDist = (A4, B3) => {\n const V4 = [B3[0] - A4[0], B3[1] - A4[1]];\n const aV = [Math.abs(V4[0]), Math.abs(V4[1])];\n let r4 = 1 \/ Math.max(aV[0], aV[1]);\n r4 = r4 * (1.29289 - (aV[0] + aV[1]) * r4 * 0.29289);\n return [V4[0] * r4, V4[1] * r4];\n};\nVec.ang = (A4, B3) => {\n return Math.atan2(_Vec.cpr(A4, B3), _Vec.dpr(A4, B3));\n};\nVec.angle = (A4, B3) => {\n return Math.atan2(B3[1] - A4[1], B3[0] - A4[0]);\n};\nVec.med = (A4, B3) => {\n return _Vec.mul(_Vec.add(A4, B3), 0.5);\n};\nVec.rot = (A4, r4 = 0) => {\n return [A4[0] * Math.cos(r4) - A4[1] * Math.sin(r4), A4[0] * Math.sin(r4) + A4[1] * Math.cos(r4)];\n};\nVec.rotWith = (A4, C4, r4 = 0) => {\n if (r4 === 0)\n return A4;\n const s4 = Math.sin(r4);\n const c4 = Math.cos(r4);\n const px = A4[0] - C4[0];\n const py = A4[1] - C4[1];\n const nx = px * c4 - py * s4;\n const ny = px * s4 + py * c4;\n return [nx + C4[0], ny + C4[1]];\n};\nVec.isEqual = (A4, B3) => {\n return A4[0] === B3[0] && A4[1] === B3[1];\n};\nVec.lrp = (A4, B3, t2) => {\n return _Vec.add(A4, _Vec.mul(_Vec.sub(B3, A4), t2));\n};\nVec.int = (A4, B3, from, to, s4 = 1) => {\n const t2 = (_Vec.clamp(from, to) - from) \/ (to - from);\n return _Vec.add(_Vec.mul(A4, 1 - t2), _Vec.mul(B3, s4));\n};\nVec.ang3 = (p1, pc, p22) => {\n const v12 = _Vec.vec(pc, p1);\n const v22 = _Vec.vec(pc, p22);\n return _Vec.ang(v12, v22);\n};\nVec.abs = (A4) => {\n return [Math.abs(A4[0]), Math.abs(A4[1])];\n};\nVec.rescale = (a5, n4) => {\n const l5 = _Vec.len(a5);\n return [n4 * a5[0] \/ l5, n4 * a5[1] \/ l5];\n};\nVec.isLeft = (p1, pc, p22) => {\n return (pc[0] - p1[0]) * (p22[1] - p1[1]) - (p22[0] - p1[0]) * (pc[1] - p1[1]);\n};\nVec.clockwise = (p1, pc, p22) => {\n return _Vec.isLeft(p1, pc, p22) > 0;\n};\nVec.toFixed = (a5) => {\n return a5.map((v4) => Math.round(v4 * 100) \/ 100);\n};\nVec.nearestPointOnLineThroughPoint = (A4, u4, P3) => {\n return _Vec.add(A4, _Vec.mul(u4, _Vec.pry(_Vec.sub(P3, A4), u4)));\n};\nVec.distanceToLineThroughPoint = (A4, u4, P3) => {\n return _Vec.dist(P3, _Vec.nearestPointOnLineThroughPoint(A4, u4, P3));\n};\nVec.nearestPointOnLineSegment = (A4, B3, P3, clamp3 = true) => {\n const u4 = _Vec.uni(_Vec.sub(B3, A4));\n const C4 = _Vec.add(A4, _Vec.mul(u4, _Vec.pry(_Vec.sub(P3, A4), u4)));\n if (clamp3) {\n if (C4[0] < Math.min(A4[0], B3[0]))\n return A4[0] < B3[0] ? A4 : B3;\n if (C4[0] > Math.max(A4[0], B3[0]))\n return A4[0] > B3[0] ? A4 : B3;\n if (C4[1] < Math.min(A4[1], B3[1]))\n return A4[1] < B3[1] ? A4 : B3;\n if (C4[1] > Math.max(A4[1], B3[1]))\n return A4[1] > B3[1] ? A4 : B3;\n }\n return C4;\n};\nVec.distanceToLineSegment = (A4, B3, P3, clamp3 = true) => {\n return _Vec.dist(P3, _Vec.nearestPointOnLineSegment(A4, B3, P3, clamp3));\n};\nVec.nudge = (A4, B3, d4) => {\n if (_Vec.isEqual(A4, B3))\n return A4;\n return _Vec.add(A4, _Vec.mul(_Vec.uni(_Vec.sub(B3, A4)), d4));\n};\nVec.nudgeAtAngle = (A4, a5, d4) => {\n return [Math.cos(a5) * d4 + A4[0], Math.sin(a5) * d4 + A4[1]];\n};\nVec.toPrecision = (a5, n4 = 4) => {\n return [+a5[0].toPrecision(n4), +a5[1].toPrecision(n4)];\n};\nVec.pointsBetween = (A4, B3, steps = 6) => {\n return Array.from(Array(steps)).map((_2, i4) => {\n const t2 = i4 \/ (steps - 1);\n const k3 = Math.min(1, 0.5 + Math.abs(0.5 - t2));\n return [..._Vec.lrp(A4, B3, t2), k3];\n });\n};\nVec.slope = (A4, B3) => {\n if (A4[0] === B3[0])\n return NaN;\n return (A4[1] - B3[1]) \/ (A4[0] - B3[0]);\n};\nVec.toAngle = (A4) => {\n const angle = Math.atan2(A4[1], A4[0]);\n if (angle < 0)\n return angle + Math.PI * 2;\n return angle;\n};\nVec.max = (...v4) => {\n return [Math.max(...v4.map((a5) => a5[0])), Math.max(...v4.map((a5) => a5[1]))];\n};\nVec.min = (...v4) => {\n return [Math.min(...v4.map((a5) => a5[0])), Math.min(...v4.map((a5) => a5[1]))];\n};\nvar src_default = Vec;\n\n\/\/ ..\/..\/node_modules\/potpack\/index.js\nfunction potpack(boxes) {\n let area = 0;\n let maxWidth = 0;\n for (const box2 of boxes) {\n area += box2.w * box2.h;\n maxWidth = Math.max(maxWidth, box2.w);\n }\n boxes.sort((a5, b5) => b5.h - a5.h);\n const startWidth = Math.max(Math.ceil(Math.sqrt(area \/ 0.95)), maxWidth);\n const spaces = [{ x: 0, y: 0, w: startWidth, h: Infinity }];\n let width = 0;\n let height = 0;\n for (const box2 of boxes) {\n for (let i4 = spaces.length - 1; i4 >= 0; i4--) {\n const space = spaces[i4];\n if (box2.w > space.w || box2.h > space.h)\n continue;\n box2.x = space.x;\n box2.y = space.y;\n height = Math.max(height, box2.y + box2.h);\n width = Math.max(width, box2.x + box2.w);\n if (box2.w === space.w && box2.h === space.h) {\n const last = spaces.pop();\n if (i4 < spaces.length)\n spaces[i4] = last;\n } else if (box2.h === space.h) {\n space.x += box2.w;\n space.w -= box2.w;\n } else if (box2.w === space.w) {\n space.y += box2.h;\n space.h -= box2.h;\n } else {\n spaces.push({\n x: space.x + box2.w,\n y: space.y,\n w: space.w - box2.w,\n h: box2.h\n });\n space.y += box2.h;\n space.h -= box2.h;\n }\n break;\n }\n }\n return {\n w: width,\n h: height,\n fill: area \/ (width * height) || 0\n };\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/BoundsUtils.ts\nvar BoundsUtils = class {\n static getRectangleSides(point, size, rotation = 0) {\n const center = [point[0] + size[0] \/ 2, point[1] + size[1] \/ 2];\n const tl = Vec.rotWith(point, center, rotation);\n const tr = Vec.rotWith(Vec.add(point, [size[0], 0]), center, rotation);\n const br = Vec.rotWith(Vec.add(point, size), center, rotation);\n const bl = Vec.rotWith(Vec.add(point, [0, size[1]]), center, rotation);\n return [\n [\"top\", [tl, tr]],\n [\"right\", [tr, br]],\n [\"bottom\", [br, bl]],\n [\"left\", [bl, tl]]\n ];\n }\n static getBoundsSides(bounds) {\n return BoundsUtils.getRectangleSides([bounds.minX, bounds.minY], [bounds.width, bounds.height]);\n }\n static expandBounds(bounds, delta) {\n return {\n minX: bounds.minX - delta,\n minY: bounds.minY - delta,\n maxX: bounds.maxX + delta,\n maxY: bounds.maxY + delta,\n width: bounds.width + delta * 2,\n height: bounds.height + delta * 2\n };\n }\n static boundsCollide(a5, b5) {\n return !(a5.maxX < b5.minX || a5.minX > b5.maxX || a5.maxY < b5.minY || a5.minY > b5.maxY);\n }\n static boundsContain(a5, b5) {\n if (Array.isArray(b5)) {\n return a5.minX < b5[0] && a5.minY < b5[1] && a5.maxY > b5[1] && a5.maxX > b5[0];\n }\n return a5.minX < b5.minX && a5.minY < b5.minY && a5.maxY > b5.maxY && a5.maxX > b5.maxX;\n }\n static boundsContained(a5, b5) {\n return BoundsUtils.boundsContain(b5, a5);\n }\n static boundsAreEqual(a5, b5) {\n return !(b5.maxX !== a5.maxX || b5.minX !== a5.minX || b5.maxY !== a5.maxY || b5.minY !== a5.minY);\n }\n static getBoundsFromPoints(points, rotation = 0) {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n if (points.length < 2) {\n minX = 0;\n minY = 0;\n maxX = 1;\n maxY = 1;\n } else {\n for (const point of points) {\n minX = Math.min(point[0], minX);\n minY = Math.min(point[1], minY);\n maxX = Math.max(point[0], maxX);\n maxY = Math.max(point[1], maxY);\n }\n }\n if (rotation !== 0) {\n return BoundsUtils.getBoundsFromPoints(\n points.map((pt2) => Vec.rotWith(pt2, [(minX + maxX) \/ 2, (minY + maxY) \/ 2], rotation))\n );\n }\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: Math.max(1, maxX - minX),\n height: Math.max(1, maxY - minY)\n };\n }\n static centerBounds(bounds, point) {\n const boundsCenter = BoundsUtils.getBoundsCenter(bounds);\n const dx = point[0] - boundsCenter[0];\n const dy = point[1] - boundsCenter[1];\n return BoundsUtils.translateBounds(bounds, [dx, dy]);\n }\n static snapBoundsToGrid(bounds, gridSize) {\n const minX = Math.round(bounds.minX \/ gridSize) * gridSize;\n const minY = Math.round(bounds.minY \/ gridSize) * gridSize;\n const maxX = Math.round(bounds.maxX \/ gridSize) * gridSize;\n const maxY = Math.round(bounds.maxY \/ gridSize) * gridSize;\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: Math.max(1, maxX - minX),\n height: Math.max(1, maxY - minY)\n };\n }\n static translateBounds(bounds, delta) {\n return {\n minX: bounds.minX + delta[0],\n minY: bounds.minY + delta[1],\n maxX: bounds.maxX + delta[0],\n maxY: bounds.maxY + delta[1],\n width: bounds.width,\n height: bounds.height\n };\n }\n static multiplyBounds(bounds, n4) {\n const center = BoundsUtils.getBoundsCenter(bounds);\n return BoundsUtils.centerBounds(\n {\n minX: bounds.minX * n4,\n minY: bounds.minY * n4,\n maxX: bounds.maxX * n4,\n maxY: bounds.maxY * n4,\n width: bounds.width * n4,\n height: bounds.height * n4\n },\n [center[0] * n4, center[1] * n4]\n );\n }\n static divideBounds(bounds, n4) {\n const center = BoundsUtils.getBoundsCenter(bounds);\n return BoundsUtils.centerBounds(\n {\n minX: bounds.minX \/ n4,\n minY: bounds.minY \/ n4,\n maxX: bounds.maxX \/ n4,\n maxY: bounds.maxY \/ n4,\n width: bounds.width \/ n4,\n height: bounds.height \/ n4\n },\n [center[0] \/ n4, center[1] \/ n4]\n );\n }\n static getRotatedBounds(bounds, rotation = 0) {\n const corners = BoundsUtils.getRotatedCorners(bounds, rotation);\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const point of corners) {\n minX = Math.min(point[0], minX);\n minY = Math.min(point[1], minY);\n maxX = Math.max(point[0], maxX);\n maxY = Math.max(point[1], maxY);\n }\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: Math.max(1, maxX - minX),\n height: Math.max(1, maxY - minY),\n rotation: 0\n };\n }\n static getRotatedEllipseBounds(x4, y4, rx, ry, rotation = 0) {\n const c4 = Math.cos(rotation);\n const s4 = Math.sin(rotation);\n const w4 = Math.hypot(rx * c4, ry * s4);\n const h4 = Math.hypot(rx * s4, ry * c4);\n return {\n minX: x4 + rx - w4,\n minY: y4 + ry - h4,\n maxX: x4 + rx + w4,\n maxY: y4 + ry + h4,\n width: w4 * 2,\n height: h4 * 2\n };\n }\n static getExpandedBounds(a5, b5) {\n const minX = Math.min(a5.minX, b5.minX);\n const minY = Math.min(a5.minY, b5.minY);\n const maxX = Math.max(a5.maxX, b5.maxX);\n const maxY = Math.max(a5.maxY, b5.maxY);\n const width = Math.abs(maxX - minX);\n const height = Math.abs(maxY - minY);\n return { minX, minY, maxX, maxY, width, height };\n }\n static getCommonBounds(bounds) {\n if (bounds.length < 2)\n return bounds[0];\n let result = bounds[0];\n for (let i4 = 1; i4 < bounds.length; i4++) {\n result = BoundsUtils.getExpandedBounds(result, bounds[i4]);\n }\n return result;\n }\n static getRotatedCorners(b5, rotation = 0) {\n const center = [b5.minX + b5.width \/ 2, b5.minY + b5.height \/ 2];\n const corners = [\n [b5.minX, b5.minY],\n [b5.maxX, b5.minY],\n [b5.maxX, b5.maxY],\n [b5.minX, b5.maxY]\n ];\n if (rotation)\n return corners.map((point) => Vec.rotWith(point, center, rotation));\n return corners;\n }\n static getTransformedBoundingBox(bounds, handle, delta, rotation = 0, isAspectRatioLocked = false) {\n const [ax0, ay0] = [bounds.minX, bounds.minY];\n const [ax1, ay1] = [bounds.maxX, bounds.maxY];\n let [bx0, by0] = [bounds.minX, bounds.minY];\n let [bx1, by1] = [bounds.maxX, bounds.maxY];\n if (handle === \"center\") {\n return {\n minX: bx0 + delta[0],\n minY: by0 + delta[1],\n maxX: bx1 + delta[0],\n maxY: by1 + delta[1],\n width: bx1 - bx0,\n height: by1 - by0,\n scaleX: 1,\n scaleY: 1\n };\n }\n const [dx, dy] = Vec.rot(delta, -rotation);\n switch (handle) {\n case \"top_edge\" \/* Top *\/:\n case \"top_left_corner\" \/* TopLeft *\/:\n case \"top_right_corner\" \/* TopRight *\/: {\n by0 += dy;\n break;\n }\n case \"bottom_edge\" \/* Bottom *\/:\n case \"bottom_left_corner\" \/* BottomLeft *\/:\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n by1 += dy;\n break;\n }\n }\n switch (handle) {\n case \"left_edge\" \/* Left *\/:\n case \"top_left_corner\" \/* TopLeft *\/:\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n bx0 += dx;\n break;\n }\n case \"right_edge\" \/* Right *\/:\n case \"top_right_corner\" \/* TopRight *\/:\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n bx1 += dx;\n break;\n }\n }\n const aw = ax1 - ax0;\n const ah = ay1 - ay0;\n const scaleX = (bx1 - bx0) \/ aw;\n const scaleY = (by1 - by0) \/ ah;\n const flipX = scaleX < 0;\n const flipY = scaleY < 0;\n const bw = Math.abs(bx1 - bx0);\n const bh = Math.abs(by1 - by0);\n if (isAspectRatioLocked) {\n const ar = aw \/ ah;\n const isTall = ar < bw \/ bh;\n const tw = bw * (scaleY < 0 ? 1 : -1) * (1 \/ ar);\n const th = bh * (scaleX < 0 ? 1 : -1) * ar;\n switch (handle) {\n case \"top_left_corner\" \/* TopLeft *\/: {\n if (isTall)\n by0 = by1 + tw;\n else\n bx0 = bx1 + th;\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/: {\n if (isTall)\n by0 = by1 + tw;\n else\n bx1 = bx0 - th;\n break;\n }\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n if (isTall)\n by1 = by0 - tw;\n else\n bx1 = bx0 - th;\n break;\n }\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n if (isTall)\n by1 = by0 - tw;\n else\n bx0 = bx1 + th;\n break;\n }\n case \"bottom_edge\" \/* Bottom *\/:\n case \"top_edge\" \/* Top *\/: {\n const m4 = (bx0 + bx1) \/ 2;\n const w4 = bh * ar;\n bx0 = m4 - w4 \/ 2;\n bx1 = m4 + w4 \/ 2;\n break;\n }\n case \"left_edge\" \/* Left *\/:\n case \"right_edge\" \/* Right *\/: {\n const m4 = (by0 + by1) \/ 2;\n const h4 = bw \/ ar;\n by0 = m4 - h4 \/ 2;\n by1 = m4 + h4 \/ 2;\n break;\n }\n }\n }\n if (rotation % (Math.PI * 2) !== 0) {\n let cv = [0, 0];\n const c0 = Vec.med([ax0, ay0], [ax1, ay1]);\n const c1 = Vec.med([bx0, by0], [bx1, by1]);\n switch (handle) {\n case \"top_left_corner\" \/* TopLeft *\/: {\n cv = Vec.sub(Vec.rotWith([bx1, by1], c1, rotation), Vec.rotWith([ax1, ay1], c0, rotation));\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/: {\n cv = Vec.sub(Vec.rotWith([bx0, by1], c1, rotation), Vec.rotWith([ax0, ay1], c0, rotation));\n break;\n }\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n cv = Vec.sub(Vec.rotWith([bx0, by0], c1, rotation), Vec.rotWith([ax0, ay0], c0, rotation));\n break;\n }\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n cv = Vec.sub(Vec.rotWith([bx1, by0], c1, rotation), Vec.rotWith([ax1, ay0], c0, rotation));\n break;\n }\n case \"top_edge\" \/* Top *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx0, by1], [bx1, by1]), c1, rotation),\n Vec.rotWith(Vec.med([ax0, ay1], [ax1, ay1]), c0, rotation)\n );\n break;\n }\n case \"left_edge\" \/* Left *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx1, by0], [bx1, by1]), c1, rotation),\n Vec.rotWith(Vec.med([ax1, ay0], [ax1, ay1]), c0, rotation)\n );\n break;\n }\n case \"bottom_edge\" \/* Bottom *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx0, by0], [bx1, by0]), c1, rotation),\n Vec.rotWith(Vec.med([ax0, ay0], [ax1, ay0]), c0, rotation)\n );\n break;\n }\n case \"right_edge\" \/* Right *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx0, by0], [bx0, by1]), c1, rotation),\n Vec.rotWith(Vec.med([ax0, ay0], [ax0, ay1]), c0, rotation)\n );\n break;\n }\n }\n ;\n [bx0, by0] = Vec.sub([bx0, by0], cv);\n [bx1, by1] = Vec.sub([bx1, by1], cv);\n }\n if (bx1 < bx0) {\n ;\n [bx1, bx0] = [bx0, bx1];\n }\n if (by1 < by0) {\n ;\n [by1, by0] = [by0, by1];\n }\n return {\n minX: bx0,\n minY: by0,\n maxX: bx1,\n maxY: by1,\n width: bx1 - bx0,\n height: by1 - by0,\n scaleX: (bx1 - bx0) \/ (ax1 - ax0 || 1) * (flipX ? -1 : 1),\n scaleY: (by1 - by0) \/ (ay1 - ay0 || 1) * (flipY ? -1 : 1)\n };\n }\n static getTransformAnchor(type, isFlippedX, isFlippedY) {\n let anchor = type;\n switch (type) {\n case \"top_left_corner\" \/* TopLeft *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n } else if (isFlippedX) {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n } else if (isFlippedY) {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n } else {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n }\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n } else if (isFlippedX) {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n } else if (isFlippedY) {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n } else {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n }\n break;\n }\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n } else if (isFlippedX) {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n } else if (isFlippedY) {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n } else {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n }\n break;\n }\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n } else if (isFlippedX) {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n } else if (isFlippedY) {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n } else {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n }\n break;\n }\n }\n return anchor;\n }\n static getRelativeTransformedBoundingBox(bounds, initialBounds, initialShapeBounds, isFlippedX, isFlippedY) {\n const nx = (isFlippedX ? initialBounds.maxX - initialShapeBounds.maxX : initialShapeBounds.minX - initialBounds.minX) \/ initialBounds.width;\n const ny = (isFlippedY ? initialBounds.maxY - initialShapeBounds.maxY : initialShapeBounds.minY - initialBounds.minY) \/ initialBounds.height;\n const nw = initialShapeBounds.width \/ initialBounds.width;\n const nh = initialShapeBounds.height \/ initialBounds.height;\n const minX = bounds.minX + bounds.width * nx;\n const minY = bounds.minY + bounds.height * ny;\n const width = bounds.width * nw;\n const height = bounds.height * nh;\n return {\n minX,\n minY,\n maxX: minX + width,\n maxY: minY + height,\n width,\n height\n };\n }\n static getRotatedSize(size, rotation) {\n const center = Vec.div(size, 2);\n const points = [[0, 0], [size[0], 0], size, [0, size[1]]].map(\n (point) => Vec.rotWith(point, center, rotation)\n );\n const bounds = BoundsUtils.getBoundsFromPoints(points);\n return [bounds.width, bounds.height];\n }\n static getBoundsCenter(bounds) {\n return [bounds.minX + bounds.width \/ 2, bounds.minY + bounds.height \/ 2];\n }\n static getBoundsWithCenter(bounds) {\n const center = BoundsUtils.getBoundsCenter(bounds);\n return __spreadProps(__spreadValues({}, bounds), {\n midX: center[0],\n midY: center[1]\n });\n }\n static getCommonTopLeft(points) {\n const min = [Infinity, Infinity];\n points.forEach((point) => {\n min[0] = Math.min(min[0], point[0]);\n min[1] = Math.min(min[1], point[1]);\n });\n return min;\n }\n static getTLSnapPoints(bounds, others, snapDistance) {\n const A4 = __spreadValues({}, bounds);\n const offset = [0, 0];\n const snapLines = [];\n const snaps = {\n [\"minX\" \/* minX *\/]: { id: \"minX\" \/* minX *\/, isSnapped: false },\n [\"midX\" \/* midX *\/]: { id: \"midX\" \/* midX *\/, isSnapped: false },\n [\"maxX\" \/* maxX *\/]: { id: \"maxX\" \/* maxX *\/, isSnapped: false },\n [\"minY\" \/* minY *\/]: { id: \"minY\" \/* minY *\/, isSnapped: false },\n [\"midY\" \/* midY *\/]: { id: \"midY\" \/* midY *\/, isSnapped: false },\n [\"maxY\" \/* maxY *\/]: { id: \"maxY\" \/* maxY *\/, isSnapped: false }\n };\n const xs = [\"midX\" \/* midX *\/, \"minX\" \/* minX *\/, \"maxX\" \/* maxX *\/];\n const ys = [\"midY\" \/* midY *\/, \"minY\" \/* minY *\/, \"maxY\" \/* maxY *\/];\n const snapResults = others.map((B3) => {\n const rx = xs.flatMap(\n (f4, i4) => xs.map((t2, k3) => {\n const gap = A4[f4] - B3[t2];\n const distance = Math.abs(gap);\n return {\n f: f4,\n t: t2,\n gap,\n distance,\n isCareful: i4 === 0 || i4 + k3 === 3\n };\n })\n );\n const ry = ys.flatMap(\n (f4, i4) => ys.map((t2, k3) => {\n const gap = A4[f4] - B3[t2];\n const distance = Math.abs(gap);\n return {\n f: f4,\n t: t2,\n gap,\n distance,\n isCareful: i4 === 0 || i4 + k3 === 3\n };\n })\n );\n return [B3, rx, ry];\n });\n let gapX = Infinity;\n let gapY = Infinity;\n let minX = Infinity;\n let minY = Infinity;\n snapResults.forEach(([_2, rx, ry]) => {\n rx.forEach((r4) => {\n if (r4.distance < snapDistance && r4.distance < minX) {\n minX = r4.distance;\n gapX = r4.gap;\n }\n });\n ry.forEach((r4) => {\n if (r4.distance < snapDistance && r4.distance < minY) {\n minY = r4.distance;\n gapY = r4.gap;\n }\n });\n });\n snapResults.forEach(([B3, rx, ry]) => {\n if (gapX !== Infinity) {\n rx.forEach((r4) => {\n if (Math.abs(r4.gap - gapX) < 2) {\n snaps[r4.f] = __spreadProps(__spreadValues({}, snaps[r4.f]), {\n isSnapped: true,\n to: B3[r4.t],\n B: B3,\n distance: r4.distance\n });\n }\n });\n }\n if (gapY !== Infinity) {\n ry.forEach((r4) => {\n if (Math.abs(r4.gap - gapY) < 2) {\n snaps[r4.f] = __spreadProps(__spreadValues({}, snaps[r4.f]), {\n isSnapped: true,\n to: B3[r4.t],\n B: B3,\n distance: r4.distance\n });\n }\n });\n }\n });\n offset[0] = gapX === Infinity ? 0 : gapX;\n offset[1] = gapY === Infinity ? 0 : gapY;\n A4.minX -= offset[0];\n A4.midX -= offset[0];\n A4.maxX -= offset[0];\n A4.minY -= offset[1];\n A4.midY -= offset[1];\n A4.maxY -= offset[1];\n xs.forEach((from) => {\n const snap = snaps[from];\n if (!snap.isSnapped)\n return;\n const { id: id3, B: B3 } = snap;\n const x4 = A4[id3];\n snapLines.push(\n id3 === \"minX\" \/* minX *\/ ? [\n [x4, A4.midY],\n [x4, B3.minY],\n [x4, B3.maxY]\n ] : [\n [x4, A4.minY],\n [x4, A4.maxY],\n [x4, B3.minY],\n [x4, B3.maxY]\n ]\n );\n });\n ys.forEach((from) => {\n const snap = snaps[from];\n if (!snap.isSnapped)\n return;\n const { id: id3, B: B3 } = snap;\n const y4 = A4[id3];\n snapLines.push(\n id3 === \"midY\" \/* midY *\/ ? [\n [A4.midX, y4],\n [B3.minX, y4],\n [B3.maxX, y4]\n ] : [\n [A4.minX, y4],\n [A4.maxX, y4],\n [B3.minX, y4],\n [B3.maxX, y4]\n ]\n );\n });\n return { offset, snapLines };\n }\n static ensureRatio(bounds, ratio) {\n const { width, height } = bounds;\n const newBounds = __spreadValues({}, bounds);\n if (width \/ height < ratio) {\n newBounds.width = height * ratio;\n newBounds.maxX += width - bounds.width;\n } else {\n newBounds.height = width \/ ratio;\n newBounds.maxY += height - bounds.height;\n }\n return newBounds;\n }\n static getDistributions(shapes2, type) {\n const entries = shapes2.map((shape) => {\n const bounds = shape.getBounds();\n return {\n id: shape.id,\n point: [bounds.minX, bounds.minY],\n bounds,\n center: shape.getCenter()\n };\n });\n const len = entries.length;\n const commonBounds = BoundsUtils.getCommonBounds(entries.map(({ bounds }) => bounds));\n const results = [];\n switch (type) {\n case \"horizontal\" \/* Horizontal *\/: {\n const span = entries.reduce((a5, c4) => a5 + c4.bounds.width, 0);\n if (span > commonBounds.width) {\n const left = entries.sort((a5, b5) => a5.bounds.minX - b5.bounds.minX)[0];\n const right = entries.sort((a5, b5) => b5.bounds.maxX - a5.bounds.maxX)[0];\n const entriesToMove = entries.filter((a5) => a5 !== left && a5 !== right).sort((a5, b5) => a5.center[0] - b5.center[0]);\n const step = (right.center[0] - left.center[0]) \/ (len - 1);\n const x4 = left.center[0] + step;\n entriesToMove.forEach(({ id: id3, point, bounds }, i4) => {\n results.push({\n id: id3,\n prev: point,\n next: [x4 + step * i4 - bounds.width \/ 2, bounds.minY]\n });\n });\n } else {\n const entriesToMove = entries.sort((a5, b5) => a5.center[0] - b5.center[0]);\n let x4 = commonBounds.minX;\n const step = (commonBounds.width - span) \/ (len - 1);\n entriesToMove.forEach(({ id: id3, point, bounds }) => {\n results.push({ id: id3, prev: point, next: [x4, bounds.minY] });\n x4 += bounds.width + step;\n });\n }\n break;\n }\n case \"vertical\" \/* Vertical *\/: {\n const span = entries.reduce((a5, c4) => a5 + c4.bounds.height, 0);\n if (span > commonBounds.height) {\n const top = entries.sort((a5, b5) => a5.bounds.minY - b5.bounds.minY)[0];\n const bottom = entries.sort((a5, b5) => b5.bounds.maxY - a5.bounds.maxY)[0];\n const entriesToMove = entries.filter((a5) => a5 !== top && a5 !== bottom).sort((a5, b5) => a5.center[1] - b5.center[1]);\n const step = (bottom.center[1] - top.center[1]) \/ (len - 1);\n const y4 = top.center[1] + step;\n entriesToMove.forEach(({ id: id3, point, bounds }, i4) => {\n results.push({\n id: id3,\n prev: point,\n next: [bounds.minX, y4 + step * i4 - bounds.height \/ 2]\n });\n });\n } else {\n const entriesToMove = entries.sort((a5, b5) => a5.center[1] - b5.center[1]);\n let y4 = commonBounds.minY;\n const step = (commonBounds.height - span) \/ (len - 1);\n entriesToMove.forEach(({ id: id3, point, bounds }) => {\n results.push({ id: id3, prev: point, next: [bounds.minX, y4] });\n y4 += bounds.height + step;\n });\n }\n break;\n }\n }\n return results;\n }\n static getPackedDistributions(shapes2) {\n const commonBounds = BoundsUtils.getCommonBounds(shapes2.map(({ bounds }) => bounds));\n const origin = [commonBounds.minX, commonBounds.minY];\n const shapesPosOriginal = Object.fromEntries(\n shapes2.map((s4) => [s4.id, [s4.bounds.minX, s4.bounds.minY]])\n );\n const entries = shapes2.filter((s4) => {\n var _a3, _b, _c, _d;\n return !(((_b = (_a3 = s4.props.handles) == null ? void 0 : _a3.start) == null ? void 0 : _b.bindingId) || ((_d = (_c = s4.props.handles) == null ? void 0 : _c.end) == null ? void 0 : _d.bindingId));\n }).map((shape) => {\n const bounds = shape.getBounds();\n return {\n id: shape.id,\n w: bounds.width + 16,\n h: bounds.height + 16,\n x: bounds.minX,\n y: bounds.minY\n };\n });\n potpack(entries);\n const entriesToMove = entries.map(({ id: id3, x: x4, y: y4 }) => {\n return {\n id: id3,\n prev: shapesPosOriginal[id3],\n next: [x4 + origin[0], y4 + origin[1]]\n };\n });\n return entriesToMove;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/PointUtils.ts\nvar _PointUtils = class {\n static pointInCircle(A4, C4, r4) {\n return Vec.dist(A4, C4) <= r4;\n }\n static pointInEllipse(A4, C4, rx, ry, rotation = 0) {\n rotation = rotation || 0;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const delta = Vec.sub(A4, C4);\n const tdx = cos * delta[0] + sin * delta[1];\n const tdy = sin * delta[0] - cos * delta[1];\n return tdx * tdx \/ (rx * rx) + tdy * tdy \/ (ry * ry) <= 1;\n }\n static pointInRect(point, size) {\n return !(point[0] < size[0] || point[0] > point[0] + size[0] || point[1] < size[1] || point[1] > point[1] + size[1]);\n }\n static pointInPolygon(p4, points) {\n let wn = 0;\n points.forEach((a5, i4) => {\n const b5 = points[(i4 + 1) % points.length];\n if (a5[1] <= p4[1]) {\n if (b5[1] > p4[1] && Vec.cross(a5, b5, p4) > 0) {\n wn += 1;\n }\n } else if (b5[1] <= p4[1] && Vec.cross(a5, b5, p4) < 0) {\n wn -= 1;\n }\n });\n return wn !== 0;\n }\n static pointInBounds(A4, b5) {\n return !(A4[0] < b5.minX || A4[0] > b5.maxX || A4[1] < b5.minY || A4[1] > b5.maxY);\n }\n static pointInPolyline(A4, points, distance = 3) {\n for (let i4 = 1; i4 < points.length; i4++) {\n if (Vec.distanceToLineSegment(points[i4 - 1], points[i4], A4) < distance) {\n return true;\n }\n }\n return false;\n }\n static _getSqSegDist(p4, p1, p22) {\n let x4 = p1[0];\n let y4 = p1[1];\n let dx = p22[0] - x4;\n let dy = p22[1] - y4;\n if (dx !== 0 || dy !== 0) {\n const t2 = ((p4[0] - x4) * dx + (p4[1] - y4) * dy) \/ (dx * dx + dy * dy);\n if (t2 > 1) {\n x4 = p22[0];\n y4 = p22[1];\n } else if (t2 > 0) {\n x4 += dx * t2;\n y4 += dy * t2;\n }\n }\n dx = p4[0] - x4;\n dy = p4[1] - y4;\n return dx * dx + dy * dy;\n }\n static _simplifyStep(points, first, last, sqTolerance, result) {\n let maxSqDist = sqTolerance;\n let index3 = -1;\n for (let i4 = first + 1; i4 < last; i4++) {\n const sqDist = _PointUtils._getSqSegDist(points[i4], points[first], points[last]);\n if (sqDist > maxSqDist) {\n index3 = i4;\n maxSqDist = sqDist;\n }\n }\n if (index3 > -1 && maxSqDist > sqTolerance) {\n if (index3 - first > 1)\n _PointUtils._simplifyStep(points, first, index3, sqTolerance, result);\n result.push(points[index3]);\n if (last - index3 > 1)\n _PointUtils._simplifyStep(points, index3, last, sqTolerance, result);\n }\n }\n static simplify2(points, tolerance = 1) {\n if (points.length <= 2)\n return points;\n const sqTolerance = tolerance * tolerance;\n let A4 = points[0];\n let B3 = points[1];\n const newPoints = [A4];\n for (let i4 = 1, len = points.length; i4 < len; i4++) {\n B3 = points[i4];\n if ((B3[0] - A4[0]) * (B3[0] - A4[0]) + (B3[1] - A4[1]) * (B3[1] - A4[1]) > sqTolerance) {\n newPoints.push(B3);\n A4 = B3;\n }\n }\n if (A4 !== B3)\n newPoints.push(B3);\n const last = newPoints.length - 1;\n const result = [newPoints[0]];\n _PointUtils._simplifyStep(newPoints, 0, last, sqTolerance, result);\n result.push(newPoints[last], points[points.length - 1]);\n return result;\n }\n static pointNearToPolyline(point, points, distance = 8) {\n const len = points.length;\n for (let i4 = 1; i4 < len; i4++) {\n const p1 = points[i4 - 1];\n const p22 = points[i4];\n const d4 = Vec.distanceToLineSegment(p1, p22, point);\n if (d4 < distance)\n return true;\n }\n return false;\n }\n};\nvar PointUtils = _PointUtils;\n__publicField(PointUtils, \"simplify\", (points, tolerance = 1) => {\n const len = points.length;\n const a5 = points[0];\n const b5 = points[len - 1];\n const [x1, y1] = a5;\n const [x22, y22] = b5;\n if (len > 2) {\n let distance = 0;\n let index3 = 0;\n const max = Vec.len2([y22 - y1, x22 - x1]);\n for (let i4 = 1; i4 < len - 1; i4++) {\n const [x0, y0] = points[i4];\n const d4 = Math.pow(x0 * (y22 - y1) + x1 * (y0 - y22) + x22 * (y1 - y0), 2) \/ max;\n if (distance > d4)\n continue;\n distance = d4;\n index3 = i4;\n }\n if (distance > tolerance) {\n const l0 = _PointUtils.simplify(points.slice(0, index3 + 1), tolerance);\n const l1 = _PointUtils.simplify(points.slice(index3 + 1), tolerance);\n return l0.concat(l1.slice(1));\n }\n }\n return [a5, b5];\n});\n\n\/\/ ..\/..\/packages\/core\/src\/constants.ts\nvar PI = Math.PI;\nvar TAU = PI \/ 2;\nvar PI2 = PI * 2;\nvar EPSILON = Math.PI \/ 180;\nvar FIT_TO_SCREEN_PADDING = 100;\nvar BINDING_DISTANCE = 4;\nvar ZOOM_UPDATE_FACTOR = 0.8;\nvar GRID_SIZE = 8;\nvar EXPORT_PADDING = 8;\nvar EMPTY_OBJECT = {};\nvar GROUP_PADDING = 8;\nvar CURSORS = {\n [\"bottom_edge\" \/* Bottom *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"top_edge\" \/* Top *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"left_edge\" \/* Left *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"right_edge\" \/* Right *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"nesw-resize\" \/* NeswResize *\/,\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_left_corner\" \/* TopLeft *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_right_corner\" \/* TopRight *\/]: \"nesw-resize\" \/* NeswResize *\/,\n [\"bottom_left_resize_corner\" \/* BottomLeft *\/]: \"swne-rotate\" \/* SwneRotate *\/,\n [\"bottom_right_resize_corner\" \/* BottomRight *\/]: \"senw-rotate\" \/* SenwRotate *\/,\n [\"top_left_resize_corner\" \/* TopLeft *\/]: \"nwse-rotate\" \/* NwseRotate *\/,\n [\"top_right_resize_corner\" \/* TopRight *\/]: \"nesw-rotate\" \/* NeswRotate *\/,\n rotate: \"rotate\" \/* Rotate *\/,\n center: \"grab\" \/* Grab *\/,\n background: \"grab\" \/* Grab *\/\n};\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/GeomUtils.ts\nvar GeomUtils = class {\n static circleFromThreePoints(A4, B3, C4) {\n const [x1, y1] = A4;\n const [x22, y22] = B3;\n const [x32, y32] = C4;\n const a5 = x1 * (y22 - y32) - y1 * (x22 - x32) + x22 * y32 - x32 * y22;\n const b5 = (x1 * x1 + y1 * y1) * (y32 - y22) + (x22 * x22 + y22 * y22) * (y1 - y32) + (x32 * x32 + y32 * y32) * (y22 - y1);\n const c4 = (x1 * x1 + y1 * y1) * (x22 - x32) + (x22 * x22 + y22 * y22) * (x32 - x1) + (x32 * x32 + y32 * y32) * (x1 - x22);\n const x4 = -b5 \/ (2 * a5);\n const y4 = -c4 \/ (2 * a5);\n return [x4, y4, Math.hypot(x4 - x1, y4 - y1)];\n }\n static perimeterOfEllipse(rx, ry) {\n const h4 = Math.pow(rx - ry, 2) \/ Math.pow(rx + ry, 2);\n const p4 = PI * (rx + ry) * (1 + 3 * h4 \/ (10 + Math.sqrt(4 - 3 * h4)));\n return p4;\n }\n static shortAngleDist(a0, a1) {\n const da = (a1 - a0) % PI2;\n return 2 * da % PI2 - da;\n }\n static longAngleDist(a0, a1) {\n return PI2 - GeomUtils.shortAngleDist(a0, a1);\n }\n static lerpAngles(a0, a1, t2) {\n return a0 + GeomUtils.shortAngleDist(a0, a1) * t2;\n }\n static angleDelta(a0, a1) {\n return GeomUtils.shortAngleDist(a0, a1);\n }\n static getSweep(C4, A4, B3) {\n return GeomUtils.angleDelta(src_default.angle(C4, A4), src_default.angle(C4, B3));\n }\n static clampRadians(r4) {\n return (PI2 + r4) % PI2;\n }\n static snapAngleToSegments(r4, segments) {\n const seg = PI2 \/ segments;\n let ang = Math.floor((GeomUtils.clampRadians(r4) + seg \/ 2) \/ seg) * seg % PI2;\n if (ang < PI)\n ang += PI2;\n if (ang > PI)\n ang -= PI2;\n return ang;\n }\n static isAngleBetween(a5, b5, c4) {\n if (c4 === a5 || c4 === b5)\n return true;\n const AB = (b5 - a5 + TAU) % TAU;\n const AC = (c4 - a5 + TAU) % TAU;\n return AB <= PI !== AC > AB;\n }\n static degreesToRadians(d4) {\n return d4 * PI \/ 180;\n }\n static radiansToDegrees(r4) {\n return r4 * 180 \/ PI;\n }\n static getArcLength(C4, r4, A4, B3) {\n const sweep = GeomUtils.getSweep(C4, A4, B3);\n return r4 * PI2 * (sweep \/ PI2);\n }\n static getSweepFlag(A4, B3, C4) {\n const angleAC = src_default.angle(A4, C4);\n const angleAB = src_default.angle(A4, B3);\n const angleCAB = (angleAB - angleAC + 3 * PI) % PI2 - PI;\n return angleCAB > 0 ? 0 : 1;\n }\n static getLargeArcFlag(A4, C4, P3) {\n const anglePA = src_default.angle(P3, A4);\n const anglePC = src_default.angle(P3, C4);\n const angleAPC = (anglePC - anglePA + 3 * PI) % PI2 - PI;\n return Math.abs(angleAPC) > TAU ? 0 : 1;\n }\n static getArcDashOffset(C4, r4, A4, B3, step) {\n const del0 = GeomUtils.getSweepFlag(C4, A4, B3);\n const len0 = GeomUtils.getArcLength(C4, r4, A4, B3);\n const off0 = del0 < 0 ? len0 : PI2 * C4[2] - len0;\n return -off0 \/ 2 + step;\n }\n static getEllipseDashOffset(A4, step) {\n const c4 = PI2 * A4[2];\n return -c4 \/ 2 + -step;\n }\n static radiansToCardinalDirection(radians) {\n if (radians < Math.PI * 0.25) {\n return \"north\";\n } else if (radians < Math.PI * 0.75) {\n return \"east\";\n } else if (radians < Math.PI * 1.25) {\n return \"south\";\n } else if (radians < Math.PI * 1.75) {\n return \"west\";\n } else {\n return \"north\";\n }\n }\n};\n\n\/\/ ..\/..\/packages\/utils\/intersect\/src\/index.ts\nfunction createIntersection(message, ...points) {\n const didIntersect = points.length > 0;\n return { didIntersect, message, points };\n}\nfunction getRectangleSides(point, size, rotation = 0) {\n const center = [point[0] + size[0] \/ 2, point[1] + size[1] \/ 2];\n const tl = Vec.rotWith(point, center, rotation);\n const tr = Vec.rotWith(Vec.add(point, [size[0], 0]), center, rotation);\n const br = Vec.rotWith(Vec.add(point, size), center, rotation);\n const bl = Vec.rotWith(Vec.add(point, [0, size[1]]), center, rotation);\n return [\n [\"top\", [tl, tr]],\n [\"right\", [tr, br]],\n [\"bottom\", [br, bl]],\n [\"left\", [bl, tl]]\n ];\n}\nfunction intersectLineLine(AB, PQ) {\n const slopeAB = Vec.slope(AB[0], AB[1]);\n const slopePQ = Vec.slope(PQ[0], PQ[1]);\n if (slopeAB === slopePQ)\n return void 0;\n if (Number.isNaN(slopeAB) && !Number.isNaN(slopePQ)) {\n return [AB[0][0], (AB[0][0] - PQ[0][0]) * slopePQ + PQ[0][1]];\n }\n if (Number.isNaN(slopePQ) && !Number.isNaN(slopeAB)) {\n return [PQ[0][0], (PQ[0][0] - AB[0][0]) * slopeAB + AB[0][1]];\n }\n const x4 = (slopeAB * AB[0][0] - slopePQ * PQ[0][0] + PQ[0][1] - AB[0][1]) \/ (slopeAB - slopePQ);\n const y4 = slopePQ * (x4 - PQ[0][0]) + PQ[0][1];\n return [x4, y4];\n}\nfunction intersectRayLineSegment(origin, direction, a1, a22) {\n const [x4, y4] = origin;\n const [dx, dy] = direction;\n const [x1, y1] = a1;\n const [x22, y22] = a22;\n if (dy \/ dx !== (y22 - y1) \/ (x22 - x1)) {\n const d4 = dx * (y22 - y1) - dy * (x22 - x1);\n if (d4 !== 0) {\n const r4 = ((y4 - y1) * (x22 - x1) - (x4 - x1) * (y22 - y1)) \/ d4;\n const s4 = ((y4 - y1) * dx - (x4 - x1) * dy) \/ d4;\n if (r4 >= 0 && s4 >= 0 && s4 <= 1) {\n return createIntersection(\"intersection\", [x4 + r4 * dx, y4 + r4 * dy]);\n }\n }\n }\n return createIntersection(\"no intersection\");\n}\nfunction intersectRayRectangle(origin, direction, point, size, rotation = 0) {\n return intersectRectangleRay(point, size, rotation, origin, direction);\n}\nfunction intersectRayBounds(origin, direction, bounds, rotation = 0) {\n const { minX, minY, width, height } = bounds;\n return intersectRayRectangle(origin, direction, [minX, minY], [width, height], rotation);\n}\nfunction intersectLineSegmentLineSegment(a1, a22, b1, b22) {\n const AB = Vec.sub(a1, b1);\n const BV = Vec.sub(b22, b1);\n const AV = Vec.sub(a22, a1);\n const ua_t = BV[0] * AB[1] - BV[1] * AB[0];\n const ub_t = AV[0] * AB[1] - AV[1] * AB[0];\n const u_b = BV[1] * AV[0] - BV[0] * AV[1];\n if (ua_t === 0 || ub_t === 0) {\n return createIntersection(\"coincident\");\n }\n if (u_b === 0) {\n return createIntersection(\"parallel\");\n }\n if (u_b !== 0) {\n const ua = ua_t \/ u_b;\n const ub = ub_t \/ u_b;\n if (0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) {\n return createIntersection(\"intersection\", Vec.add(a1, Vec.mul(AV, ua)));\n }\n }\n return createIntersection(\"no intersection\");\n}\nfunction intersectLineSegmentRectangle(a1, a22, point, size) {\n return intersectRectangleLineSegment(point, size, a1, a22);\n}\nfunction intersectLineSegmentCircle(a1, a22, c4, r4) {\n const a5 = (a22[0] - a1[0]) * (a22[0] - a1[0]) + (a22[1] - a1[1]) * (a22[1] - a1[1]);\n const b5 = 2 * ((a22[0] - a1[0]) * (a1[0] - c4[0]) + (a22[1] - a1[1]) * (a1[1] - c4[1]));\n const cc = c4[0] * c4[0] + c4[1] * c4[1] + a1[0] * a1[0] + a1[1] * a1[1] - 2 * (c4[0] * a1[0] + c4[1] * a1[1]) - r4 * r4;\n const deter = b5 * b5 - 4 * a5 * cc;\n if (deter < 0) {\n return createIntersection(\"outside\");\n }\n if (deter === 0) {\n return createIntersection(\"tangent\");\n }\n const e2 = Math.sqrt(deter);\n const u1 = (-b5 + e2) \/ (2 * a5);\n const u22 = (-b5 - e2) \/ (2 * a5);\n if ((u1 < 0 || u1 > 1) && (u22 < 0 || u22 > 1)) {\n if (u1 < 0 && u22 < 0 || u1 > 1 && u22 > 1) {\n return createIntersection(\"outside\");\n } else {\n return createIntersection(\"inside\");\n }\n }\n const results = [];\n if (0 <= u1 && u1 <= 1)\n results.push(Vec.lrp(a1, a22, u1));\n if (0 <= u22 && u22 <= 1)\n results.push(Vec.lrp(a1, a22, u22));\n return createIntersection(\"intersection\", ...results);\n}\nfunction intersectLineSegmentEllipse(a1, a22, center, rx, ry, rotation = 0) {\n if (rx === 0 || ry === 0 || Vec.isEqual(a1, a22)) {\n return createIntersection(\"no intersection\");\n }\n rx = rx < 0 ? rx : -rx;\n ry = ry < 0 ? ry : -ry;\n a1 = Vec.sub(Vec.rotWith(a1, center, -rotation), center);\n a22 = Vec.sub(Vec.rotWith(a22, center, -rotation), center);\n const diff = Vec.sub(a22, a1);\n const A4 = diff[0] * diff[0] \/ rx \/ rx + diff[1] * diff[1] \/ ry \/ ry;\n const B3 = 2 * a1[0] * diff[0] \/ rx \/ rx + 2 * a1[1] * diff[1] \/ ry \/ ry;\n const C4 = a1[0] * a1[0] \/ rx \/ rx + a1[1] * a1[1] \/ ry \/ ry - 1;\n const tValues = [];\n const discriminant = B3 * B3 - 4 * A4 * C4;\n if (discriminant === 0) {\n tValues.push(-B3 \/ 2 \/ A4);\n } else if (discriminant > 0) {\n const root = Math.sqrt(discriminant);\n tValues.push((-B3 + root) \/ 2 \/ A4);\n tValues.push((-B3 - root) \/ 2 \/ A4);\n }\n const points = tValues.filter((t2) => t2 >= 0 && t2 <= 1).map((t2) => Vec.add(center, Vec.add(a1, Vec.mul(Vec.sub(a22, a1), t2)))).map((p4) => Vec.rotWith(p4, center, rotation));\n return createIntersection(\"intersection\", ...points);\n}\nfunction intersectLineSegmentBounds(a1, a22, bounds) {\n return intersectBoundsLineSegment(bounds, a1, a22);\n}\nfunction intersectLineSegmentPolyline(a1, a22, points) {\n const pts = [];\n for (let i4 = 1; i4 < points.length; i4++) {\n const int = intersectLineSegmentLineSegment(a1, a22, points[i4 - 1], points[i4]);\n if (int) {\n pts.push(...int.points);\n }\n }\n if (pts.length === 0) {\n return createIntersection(\"no intersection\");\n }\n return createIntersection(\"intersection\", ...points);\n}\nfunction intersectLineSegmentPolygon(a1, a22, points) {\n const pts = [];\n for (let i4 = 1; i4 < points.length + 1; i4++) {\n const int = intersectLineSegmentLineSegment(a1, a22, points[i4 - 1], points[i4 % points.length]);\n if (int) {\n pts.push(...int.points);\n }\n }\n if (pts.length === 0) {\n return createIntersection(\"no intersection\");\n }\n return createIntersection(\"intersection\", ...points);\n}\nfunction intersectRectangleRay(point, size, rotation, origin, direction) {\n const sideIntersections = getRectangleSides(point, size, rotation).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectRayLineSegment(origin, direction, a1, a22);\n if (intersection) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectangleLineSegment(point, size, a1, a22) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [b1, b22]]) => {\n const intersection = intersectLineSegmentLineSegment(a1, a22, b1, b22);\n if (intersection) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectangleCircle(point, size, c4, r4) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentCircle(a1, a22, c4, r4);\n if (intersection) {\n acc.push(__spreadProps(__spreadValues({}, intersection), { message }));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectangleEllipse(point, size, c4, rx, ry, rotation = 0) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentEllipse(a1, a22, c4, rx, ry, rotation);\n if (intersection) {\n acc.push(__spreadProps(__spreadValues({}, intersection), { message }));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectanglePolyline(point, size, points) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentPolyline(a1, a22, points);\n if (intersection.didIntersect) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectanglePolygon(point, size, points) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentPolygon(a1, a22, points);\n if (intersection.didIntersect) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectCircleLineSegment(c4, r4, a1, a22) {\n return intersectLineSegmentCircle(a1, a22, c4, r4);\n}\nfunction intersectEllipseRectangle(center, rx, ry, rotation = 0, point, size) {\n if (rx === ry) {\n return intersectRectangleCircle(point, size, center, rx);\n }\n return intersectRectangleEllipse(point, size, center, rx, ry, rotation);\n}\nfunction intersectEllipseBounds(c4, rx, ry, rotation, bounds) {\n const { minX, minY, width, height } = bounds;\n return intersectEllipseRectangle(c4, rx, ry, rotation, [minX, minY], [width, height]);\n}\nfunction intersectBoundsLineSegment(bounds, a1, a22) {\n const { minX, minY, width, height } = bounds;\n return intersectLineSegmentRectangle(a1, a22, [minX, minY], [width, height]);\n}\nfunction intersectPolylineBounds(points, bounds) {\n return intersectRectanglePolyline(\n [bounds.minX, bounds.minY],\n [bounds.width, bounds.height],\n points\n );\n}\nfunction intersectPolygonBounds(points, bounds) {\n return intersectRectanglePolygon(\n [bounds.minX, bounds.minY],\n [bounds.width, bounds.height],\n points\n );\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/PolygonUtils.ts\nvar _PolygonUtils = class {\n static getPolygonCentroid(points) {\n const x4 = points.map((point) => point[0]);\n const y4 = points.map((point) => point[1]);\n const cx2 = Math.min(...x4) + Math.max(...x4);\n const cy = Math.min(...y4) + Math.max(...y4);\n return [cx2 ? cx2 \/ 2 : 0, cy ? cy \/ 2 : 0];\n }\n};\nvar PolygonUtils = _PolygonUtils;\n__publicField(PolygonUtils, \"getEdges\", (points) => {\n const len = points.length;\n return points.map((point, i4) => [point, points[(i4 + 1) % len]]);\n});\n__publicField(PolygonUtils, \"getEdgeOutwardNormal\", (A4, B3) => {\n return src_default.per(src_default.uni(src_default.sub(B3, A4)));\n});\n__publicField(PolygonUtils, \"getEdgeInwardNormal\", (A4, B3) => {\n return src_default.neg(_PolygonUtils.getEdgeOutwardNormal(A4, B3));\n});\n__publicField(PolygonUtils, \"getOffsetEdge\", (A4, B3, offset) => {\n const offsetVector = src_default.mul(src_default.per(src_default.uni(src_default.sub(B3, A4))), offset);\n return [src_default.add(A4, offsetVector), src_default.add(B3, offsetVector)];\n});\n__publicField(PolygonUtils, \"getOffsetEdges\", (edges, offset) => {\n return edges.map(([A4, B3]) => _PolygonUtils.getOffsetEdge(A4, B3, offset));\n});\n__publicField(PolygonUtils, \"getOffsetPolygon\", (points, offset) => {\n if (points.length < 1) {\n throw Error(\"Expected at least one point.\");\n } else if (points.length === 1) {\n const A4 = points[0];\n return [\n src_default.add(A4, [-offset, -offset]),\n src_default.add(A4, [offset, -offset]),\n src_default.add(A4, [offset, offset]),\n src_default.add(A4, [-offset, offset])\n ];\n } else if (points.length === 2) {\n const [A4, B3] = points;\n return [\n ..._PolygonUtils.getOffsetEdge(A4, B3, offset),\n ..._PolygonUtils.getOffsetEdge(B3, A4, offset)\n ];\n }\n return _PolygonUtils.getOffsetEdges(_PolygonUtils.getEdges(points), offset).flatMap(\n (edge, i4, edges) => {\n const intersection = intersectLineLine(edge, edges[(i4 + 1) % edges.length]);\n if (intersection === void 0)\n throw Error(\"Expected an intersection\");\n return intersection;\n }\n );\n});\n__publicField(PolygonUtils, \"getPolygonVertices\", (size, sides, padding = 0, ratio = 1) => {\n const center = src_default.div(size, 2);\n const [rx, ry] = [Math.max(1, center[0] - padding), Math.max(1, center[1] - padding)];\n const pointsOnPerimeter = [];\n for (let i4 = 0, step = PI2 \/ sides; i4 < sides; i4++) {\n const t1 = (-TAU + i4 * step) % PI2;\n const t2 = (-TAU + (i4 + 1) * step) % PI2;\n const p1 = src_default.add(center, [rx * Math.cos(t1), ry * Math.sin(t1)]);\n const p32 = src_default.add(center, [rx * Math.cos(t2), ry * Math.sin(t2)]);\n const mid = src_default.med(p1, p32);\n const p22 = src_default.nudge(mid, center, src_default.dist(center, mid) * (1 - ratio));\n pointsOnPerimeter.push(p1, p22, p32);\n }\n return pointsOnPerimeter;\n});\n__publicField(PolygonUtils, \"getTriangleVertices\", (size, padding = 0, ratio = 1) => {\n const [w4, h4] = size;\n const r4 = 1 - ratio;\n const A4 = [w4 \/ 2, padding \/ 2];\n const B3 = [w4 - padding, h4 - padding];\n const C4 = [padding \/ 2, h4 - padding];\n const centroid = _PolygonUtils.getPolygonCentroid([A4, B3, C4]);\n const AB = src_default.med(A4, B3);\n const BC = src_default.med(B3, C4);\n const CA = src_default.med(C4, A4);\n const dAB = src_default.dist(AB, centroid) * r4;\n const dBC = src_default.dist(BC, centroid) * r4;\n const dCA = src_default.dist(CA, centroid) * r4;\n return [\n A4,\n dAB ? src_default.nudge(AB, centroid, dAB) : AB,\n B3,\n dBC ? src_default.nudge(BC, centroid, dBC) : BC,\n C4,\n dCA ? src_default.nudge(CA, centroid, dCA) : CA\n ];\n});\n__publicField(PolygonUtils, \"getStarVertices\", (center, size, sides, ratio = 1) => {\n const outer = src_default.div(size, 2);\n const inner = src_default.mul(outer, ratio \/ 2);\n const step = PI2 \/ sides \/ 2;\n return Array.from(Array(sides * 2)).map((_2, i4) => {\n const theta = -TAU + i4 * step;\n const [rx, ry] = i4 % 2 ? inner : outer;\n return src_default.add(center, [rx * Math.cos(theta), ry * Math.sin(theta)]);\n });\n});\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/SvgPathUtils.ts\nvar SvgPathUtils = class {\n static getCurvedPathForPolygon(points) {\n if (points.length < 3) {\n return `M -4, 0\n a 4,4 0 1,0 8,0\n a 4,4 0 1,0 -8,0`;\n }\n const d4 = [\"M\", ...points[0].slice(0, 2), \"Q\"];\n const len = points.length;\n for (let i4 = 1; i4 < len; i4++) {\n const [x0, y0] = points[i4];\n const [x1, y1] = points[(i4 + 1) % len];\n d4.push(x0, y0, (x0 + x1) \/ 2, (y0 + y1) \/ 2);\n }\n d4.push(\"Z\");\n return d4.join(\" \");\n }\n static getCurvedPathForPoints(points) {\n if (points.length < 3) {\n return `M -4, 0\n a 4,4 0 1,0 8,0\n a 4,4 0 1,0 -8,0`;\n }\n const d4 = [\"M\", ...points[0].slice(0, 2), \"Q\"];\n const len = points.length;\n for (let i4 = 1; i4 < len - 1; i4++) {\n const [x0, y0] = points[i4];\n const [x1, y1] = points[i4 + 1];\n d4.push(x0, y0, (x0 + x1) \/ 2, (y0 + y1) \/ 2);\n }\n return d4.join(\" \");\n }\n static getSvgPathFromStroke(points, closed = true) {\n const len = points.length;\n if (len < 4) {\n return ``;\n }\n let a5 = points[0];\n let b5 = points[1];\n const c4 = points[2];\n let result = `M${a5[0].toFixed(2)},${a5[1].toFixed(2)} Q${b5[0].toFixed(2)},${b5[1].toFixed(\n 2\n )} ${average(b5[0], c4[0]).toFixed(2)},${average(b5[1], c4[1]).toFixed(2)} T`;\n for (let i4 = 2, max = len - 1; i4 < max; i4++) {\n a5 = points[i4];\n b5 = points[i4 + 1];\n result += `${average(a5[0], b5[0]).toFixed(2)},${average(a5[1], b5[1]).toFixed(2)} `;\n }\n if (closed) {\n result += \"Z\";\n }\n return result;\n }\n static getSvgPathFromStrokePoints(points, closed = false) {\n const len = points.length;\n if (len < 4) {\n return ``;\n }\n let a5 = points[0].point;\n let b5 = points[1].point;\n const c4 = points[2].point;\n let result = `M${a5[0].toFixed(2)},${a5[1].toFixed(2)} Q${b5[0].toFixed(2)},${b5[1].toFixed(\n 2\n )} ${average(b5[0], c4[0]).toFixed(2)},${average(b5[1], c4[1]).toFixed(2)} T`;\n for (let i4 = 2, max = len - 1; i4 < max; i4++) {\n a5 = points[i4].point;\n b5 = points[i4 + 1].point;\n result += `${average(a5[0], b5[0]).toFixed(2)},${average(a5[1], b5[1]).toFixed(2)} `;\n }\n if (closed) {\n result += \"Z\";\n }\n return result;\n }\n};\n__publicField(SvgPathUtils, \"TRIM_NUMBERS\", \/(\\s?[A-Z]?,?-?[0-9]*\\.[0-9]{0,2})(([0-9]|e|-)*)\/g);\nfunction average(a5, b5) {\n return (a5 + b5) \/ 2;\n}\n\n\/\/ ..\/..\/node_modules\/mobx\/dist\/mobx.esm.js\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (false) {\n var e2 = typeof error === \"string\" ? error : errors[error];\n if (typeof e2 === \"function\")\n e2 = e2.apply(null, args);\n throw new Error(\"[MobX] \" + e2);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https:\/\/github.com\/mobxjs\/mobx\/blob\/main\/packages\/mobx\/src\/errors.ts\" : \"[MobX] \" + error);\n}\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT2 = {};\nObject.freeze(EMPTY_OBJECT2);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = \/* @__PURE__ *\/ Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die(false ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : \"Proxy not available\");\n }\n}\nfunction once(func) {\n var invoked = false;\n return function() {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop2() {\n};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t2 = typeof value;\n switch (t2) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object2, propName, value) {\n defineProperty(object2, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value\n });\n}\nfunction addHiddenFinalProp(object2, propName, value) {\n defineProperty(object2, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function(x4) {\n return isObject(x4) && x4[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\nfunction getPlainObjectKeys(object2) {\n var keys = Object.keys(object2);\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object2);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function(s4) {\n return objectPrototype.propertyIsEnumerable.call(object2, s4);\n }));\n}\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function(obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : Object.getOwnPropertyNames;\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors2(target) {\n var res = {};\n ownKeys(target).forEach(function(key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\nfunction _defineProperties(target, props) {\n for (var i4 = 0; i4 < props.length; i4++) {\n var descriptor = props[i4];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for (var i4 = 1; i4 < arguments.length; i4++) {\n var source = arguments[i4];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o4, p4) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf3(o5, p5) {\n o5.__proto__ = p5;\n return o5;\n };\n return _setPrototypeOf(o4, p4);\n}\nfunction _assertThisInitialized(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n}\nfunction _unsupportedIterableToArray(o4, minLen) {\n if (!o4)\n return;\n if (typeof o4 === \"string\")\n return _arrayLikeToArray(o4, minLen);\n var n4 = Object.prototype.toString.call(o4).slice(8, -1);\n if (n4 === \"Object\" && o4.constructor)\n n4 = o4.constructor.name;\n if (n4 === \"Map\" || n4 === \"Set\")\n return Array.from(o4);\n if (n4 === \"Arguments\" || \/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$\/.test(n4))\n return _arrayLikeToArray(o4, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i4 = 0, arr2 = new Array(len); i4 < len; i4++)\n arr2[i4] = arr[i4];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o4, allowArrayLike) {\n var it2 = typeof Symbol !== \"undefined\" && o4[Symbol.iterator] || o4[\"@@iterator\"];\n if (it2)\n return (it2 = it2.call(o4)).next.bind(it2);\n if (Array.isArray(o4) || (it2 = _unsupportedIterableToArray(o4)) || allowArrayLike && o4 && typeof o4.length === \"number\") {\n if (it2)\n o4 = it2;\n var i4 = 0;\n return function() {\n if (i4 >= o4.length)\n return {\n done: true\n };\n return {\n done: false,\n value: o4[i4++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar storedAnnotationsSymbol = \/* @__PURE__ *\/ Symbol(\"mobx-stored-annotations\");\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n if (false) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', but no such decorated member was found on prototype.\");\n }\n assertNotDecorated(prototype, annotation, key);\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if (false) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if (false) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nvar $mobx = \/* @__PURE__ *\/ Symbol(\"mobx administration\");\nvar Atom = \/* @__PURE__ *\/ function() {\n function Atom2(name_) {\n if (name_ === void 0) {\n name_ = false ? \"Atom@\" + getNextId() : \"Atom\";\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = \/* @__PURE__ *\/ new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n var _proto = Atom2.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n };\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString2() {\n return this.name_;\n };\n return Atom2;\n}();\nvar isAtom = \/* @__PURE__ *\/ createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\nfunction identityComparer(a5, b5) {\n return a5 === b5;\n}\nfunction structuralComparer(a5, b5) {\n return deepEqual(a5, b5);\n}\nfunction shallowComparer(a5, b5) {\n return deepEqual(a5, b5, 1);\n}\nfunction defaultComparer(a5, b5) {\n if (Object.is) {\n return Object.is(a5, b5);\n }\n return a5 === b5 ? a5 !== 0 || 1 \/ a5 === 1 \/ b5 : a5 !== a5 && b5 !== b5;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\nfunction deepEnhancer(v4, _2, name) {\n if (isObservable(v4)) {\n return v4;\n }\n if (Array.isArray(v4)) {\n return observable.array(v4, {\n name\n });\n }\n if (isPlainObject(v4)) {\n return observable.object(v4, void 0, {\n name\n });\n }\n if (isES6Map(v4)) {\n return observable.map(v4, {\n name\n });\n }\n if (isES6Set(v4)) {\n return observable.set(v4, {\n name\n });\n }\n if (typeof v4 === \"function\" && !isAction(v4) && !isFlow(v4)) {\n if (isGenerator(v4)) {\n return flow(v4);\n } else {\n return autoAction(name, v4);\n }\n }\n return v4;\n}\nfunction shallowEnhancer(v4, _2, name) {\n if (v4 === void 0 || v4 === null) {\n return v4;\n }\n if (isObservableObject(v4) || isObservableArray(v4) || isObservableMap(v4) || isObservableSet(v4)) {\n return v4;\n }\n if (Array.isArray(v4)) {\n return observable.array(v4, {\n name,\n deep: false\n });\n }\n if (isPlainObject(v4)) {\n return observable.object(v4, void 0, {\n name,\n deep: false\n });\n }\n if (isES6Map(v4)) {\n return observable.map(v4, {\n name,\n deep: false\n });\n }\n if (isES6Set(v4)) {\n return observable.set(v4, {\n name,\n deep: false\n });\n }\n if (false) {\n die(\"The shallow modifier \/ decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n return newValue;\n}\nfunction refStructEnhancer(v4, oldValue) {\n if (false) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v4, oldValue)) {\n return oldValue;\n }\n return v4;\n}\nvar OVERRIDE = \"override\";\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 1;\n }\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 2;\n }\n if (isAction(descriptor.value)) {\n return 1;\n }\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2;\n}\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor, safeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction(\n (_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(),\n value,\n (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : void 0\n ),\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n enumerable: false,\n writable: safeDescriptors ? false : true\n };\n}\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 2;\n }\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0;\n }\n }\n if (isFlow(descriptor.value)) {\n return 1;\n }\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2;\n}\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound, safeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n value.isMobXFlow = true;\n }\n return {\n value,\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n enumerable: false,\n writable: safeDescriptors ? false : true\n };\n}\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 1;\n}\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get3 = _ref2.get;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 1;\n}\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter\/setter properties\"));\n }\n}\nvar AUTO = \"true\";\nvar autoAnnotation = \/* @__PURE__ *\/ createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n if (descriptor.set) {\n var set4 = createAction(key.toString(), descriptor.set);\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set4\n }) === null ? 0 : 2;\n }\n defineProperty(source, key, {\n configurable: true,\n set: set4\n });\n return 2;\n }\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation2 = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation2.make_(adm, key, descriptor, source);\n }\n var actionAnnotation2 = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation2.make_(adm, key, descriptor, source);\n }\n var observableAnnotation2 = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation2.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n if (descriptor.set) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation2 = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation2.extend_(adm, key, descriptor, proxyTrap);\n}\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\nvar defaultCreateObservableOptions = {\n deep: true,\n name: void 0,\n defaultDecorator: void 0,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = \/* @__PURE__ *\/ createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : void 0;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\nfunction createObservable(v4, arg2, arg3) {\n if (isStringish(arg2)) {\n storeAnnotation(v4, arg2, observableAnnotation);\n return;\n }\n if (isObservable(v4)) {\n return v4;\n }\n if (isPlainObject(v4)) {\n return observable.object(v4, arg2, arg3);\n }\n if (Array.isArray(v4)) {\n return observable.array(v4, arg2);\n }\n if (isES6Map(v4)) {\n return observable.map(v4, arg2);\n }\n if (isES6Set(v4)) {\n return observable.set(v4, arg2);\n }\n if (typeof v4 === \"object\" && v4 !== null) {\n return v4;\n }\n return observable.box(v4, arg2);\n}\nObject.assign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o4 = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o4), o4.name, true, o4.equals);\n },\n array: function array(initialValues, options) {\n var o4 = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o4.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o4), o4.name);\n },\n map: function map(initialValues, options) {\n var o4 = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o4), o4.name);\n },\n set: function set(initialValues, options) {\n var o4 = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o4), o4.name);\n },\n object: function object(props, decorators, options) {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n },\n ref: \/* @__PURE__ *\/ createDecoratorAnnotation(observableRefAnnotation),\n shallow: \/* @__PURE__ *\/ createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: \/* @__PURE__ *\/ createDecoratorAnnotation(observableStructAnnotation)\n};\nvar observable = \/* @__PURE__ *\/ assign(createObservable, observableFactories);\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = \/* @__PURE__ *\/ createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = \/* @__PURE__ *\/ createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\nvar computed = function computed2(arg1, arg2) {\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n if (false) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\");\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = \/* @__PURE__ *\/ createDecoratorAnnotation(computedStructAnnotation);\nvar _getDescriptor$config;\nvar _getDescriptor;\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = \/* @__PURE__ *\/ getDescriptor(function() {\n}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction2, ref) {\n if (autoAction2 === void 0) {\n autoAction2 = false;\n }\n if (false) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction2, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n Object.defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation, scope, args) {\n var notifySpy_ = false;\n var startTime_ = 0;\n if (false) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges;\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_,\n prevAllowStateChanges_,\n prevAllowStateReads_,\n notifySpy_,\n startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== void 0) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if (false) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges2, func) {\n var prev = allowStateChangesStart(allowStateChanges2);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges2) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges2;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\nvar _Symbol$toPrimitive;\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = \/* @__PURE__ *\/ function(_Atom) {\n _inheritsLoose(ObservableValue2, _Atom);\n function ObservableValue2(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = false ? \"ObservableValue@\" + getNextId() : \"ObservableValue\";\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, void 0, name_);\n if (false) {\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue2.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set4(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if (false) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue,\n oldValue\n });\n }\n this.setNewValue_(newValue);\n if (false) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue,\n oldValue\n });\n }\n };\n _proto.get = function get3() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: void 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n return this.value_;\n };\n _proto.toJSON = function toJSON2() {\n return this.get();\n };\n _proto.toString = function toString2() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function() {\n return this.valueOf();\n };\n return ObservableValue2;\n}(Atom);\nvar isObservableValue = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableValue\", ObservableValue);\nvar _Symbol$toPrimitive$1;\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = \/* @__PURE__ *\/ function() {\n function ComputedValue2(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = \/* @__PURE__ *\/ new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || (false ? \"ComputedValue@\" + getNextId() : \"ComputedValue\");\n if (options.set) {\n this.setter_ = createAction(false ? this.name_ + \"-setter\" : \"ComputedValue-setter\", options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue2.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.get = function get3() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 && this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch();\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set4(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n var oldValue = this.value_;\n var wasSuspended = this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if (false) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue,\n newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e2) {\n res = new CaughtException(e2);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = void 0;\n if (false) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = void 0;\n return autorun(function() {\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (true) {\n return;\n }\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString2() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function() {\n return this.valueOf();\n };\n return ComputedValue2;\n}();\nvar isComputedValue = \/* @__PURE__ *\/ createInstanceofPredicate(\"ComputedValue\", ComputedValue);\nvar IDerivationState_;\n(function(IDerivationState_2) {\n IDerivationState_2[IDerivationState_2[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n IDerivationState_2[IDerivationState_2[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n IDerivationState_2[IDerivationState_2[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n IDerivationState_2[IDerivationState_2[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function(TraceMode2) {\n TraceMode2[TraceMode2[\"NONE\"] = 0] = \"NONE\";\n TraceMode2[TraceMode2[\"LOG\"] = 1] = \"LOG\";\n TraceMode2[TraceMode2[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException2(cause) {\n this.cause = void 0;\n this.cause = cause;\n};\nfunction isCaughtException(e2) {\n return e2 instanceof CaughtException;\n}\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_: {\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart();\n var obs = derivation.observing_, l5 = obs.length;\n for (var i4 = 0; i4 < l5; i4++) {\n var obj = obs[i4];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e2) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (true) {\n return;\n }\n var hasObservers = atom.observers_.size > 0;\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable2) {\n if (false) {\n console.warn(\"[mobx] Observable '\" + observable2.name_ + \"' being read outside a reactive context.\");\n }\n}\nfunction trackDerivedFunction(derivation, f4, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f4.call(context);\n } else {\n try {\n result = f4.call(context);\n } catch (e2) {\n result = new CaughtException(e2);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (true) {\n return;\n }\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created\/updated without reading any observable value.\");\n }\n}\nfunction bindDependencies(derivation) {\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n var i0 = 0, l5 = derivation.unboundDepsCount_;\n for (var i4 = 0; i4 < l5; i4++) {\n var dep = observing[i4];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i4) {\n observing[i0] = dep;\n }\n i0++;\n }\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null;\n l5 = prevObserving.length;\n while (l5--) {\n var _dep = prevObserving[l5];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i4 = obs.length;\n while (i4--) {\n removeObserver(obs[i4], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action2) {\n var prev = untrackedStart();\n try {\n return action2();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i4 = obs.length;\n while (i4--) {\n obs[i4].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\nvar MobXGlobals = function MobXGlobals2() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = \/* @__PURE__ *\/ function() {\n var global2 = \/* @__PURE__ *\/ getGlobal();\n if (global2.__mobxInstanceCount > 0 && !global2.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global2.__mobxGlobals && global2.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n setTimeout(function() {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global2.__mobxGlobals) {\n global2.__mobxInstanceCount += 1;\n if (!global2.__mobxGlobals.UNCHANGED) {\n global2.__mobxGlobals.UNCHANGED = {};\n }\n return global2.__mobxGlobals;\n } else {\n global2.__mobxInstanceCount = 1;\n return global2.__mobxGlobals = \/* @__PURE__ *\/ new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global2 = getGlobal();\n if (--global2.__mobxInstanceCount === 0) {\n global2.__mobxGlobals = void 0;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction addObserver(observable2, node) {\n observable2.observers_.add(node);\n if (observable2.lowestObserverState_ > node.dependenciesState_) {\n observable2.lowestObserverState_ = node.dependenciesState_;\n }\n}\nfunction removeObserver(observable2, node) {\n observable2.observers_[\"delete\"](node);\n if (observable2.observers_.size === 0) {\n queueForUnobservation(observable2);\n }\n}\nfunction queueForUnobservation(observable2) {\n if (observable2.isPendingUnobservation_ === false) {\n observable2.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable2);\n }\n}\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n var list = globalState.pendingUnobservations;\n for (var i4 = 0; i4 < list.length; i4++) {\n var observable2 = list[i4];\n observable2.isPendingUnobservation_ = false;\n if (observable2.observers_.size === 0) {\n if (observable2.isBeingObserved_) {\n observable2.isBeingObserved_ = false;\n observable2.onBUO();\n }\n if (observable2 instanceof ComputedValue) {\n observable2.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable2) {\n checkIfStateReadsAreAllowed(observable2);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n if (derivation.runId_ !== observable2.lastAccessedBy_) {\n observable2.lastAccessedBy_ = derivation.runId_;\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable2;\n if (!observable2.isBeingObserved_ && globalState.trackingContext) {\n observable2.isBeingObserved_ = true;\n observable2.onBO();\n }\n }\n return observable2.isBeingObserved_;\n } else if (observable2.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable2);\n }\n return false;\n}\nfunction propagateChanged(observable2) {\n if (observable2.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable2.lowestObserverState_ = IDerivationState_.STALE_;\n observable2.observers_.forEach(function(d4) {\n if (d4.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (false) {\n logTraceInfo(d4, observable2);\n }\n d4.onBecomeStale_();\n }\n d4.dependenciesState_ = IDerivationState_.STALE_;\n });\n}\nfunction propagateChangeConfirmed(observable2) {\n if (observable2.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable2.lowestObserverState_ = IDerivationState_.STALE_;\n observable2.observers_.forEach(function(d4) {\n if (d4.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d4.dependenciesState_ = IDerivationState_.STALE_;\n if (false) {\n logTraceInfo(d4, observable2);\n }\n } else if (d4.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n observable2.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n}\nfunction propagateMaybeChanged(observable2) {\n if (observable2.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable2.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable2.observers_.forEach(function(d4) {\n if (d4.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d4.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d4.onBecomeStale_();\n }\n });\n}\nvar Reaction = \/* @__PURE__ *\/ function() {\n function Reaction2(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = false ? \"Reaction@\" + getNextId() : \"Reaction\";\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction2.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n };\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if (false) {\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e2) {\n this.reportExceptionInDerivation_(e2);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n }\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if (false) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext;\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, void 0);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if (false) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = false ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : \"[mobx] uncaught error in '\" + this + \"'\";\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n } else if (false) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n }\n if (false) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function(f4) {\n return f4(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_() {\n var r4 = this.dispose.bind(this);\n r4[$mobx] = this;\n return r4;\n };\n _proto.toString = function toString2() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction2;\n}();\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler2(f4) {\n return f4();\n};\nfunction runReactions() {\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(false ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : \"[mobx] cycle in reaction: \" + allReactions[0]);\n allReactions.splice(0);\n }\n var remainingReactions = allReactions.splice(0);\n for (var i4 = 0, l5 = remainingReactions.length; i4 < l5; i4++) {\n remainingReactions[i4].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = \/* @__PURE__ *\/ createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler3(f4) {\n return fn(function() {\n return baseScheduler(f4);\n });\n };\n}\nfunction isSpyEnabled() {\n return false;\n}\nfunction spy(listener) {\n if (true) {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function() {\n };\n } else {\n globalState.spyListeners.push(listener);\n return once(function() {\n globalState.spyListeners = globalState.spyListeners.filter(function(l5) {\n return l5 !== listener;\n });\n });\n }\n}\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"<unnamed action>\";\nvar actionAnnotation = \/* @__PURE__ *\/ createActionAnnotation(ACTION);\nvar actionBoundAnnotation = \/* @__PURE__ *\/ createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = \/* @__PURE__ *\/ createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = \/* @__PURE__ *\/ createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction2) {\n var res = function action2(arg1, arg2) {\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction2);\n }\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction2);\n }\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction2 ? autoActionAnnotation : actionAnnotation);\n }\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction2 ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction2\n }));\n }\n if (false) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = \/* @__PURE__ *\/ createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = \/* @__PURE__ *\/ createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = \/* @__PURE__ *\/ createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = \/* @__PURE__ *\/ createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\nfunction autorun(view, opts) {\n var _opts$name, _opts;\n if (opts === void 0) {\n opts = EMPTY_OBJECT2;\n }\n if (false) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : false ? view.name || \"Autorun@\" + getNextId() : \"Autorun\";\n var runSync = !opts.scheduler && !opts.delay;\n var reaction2;\n if (runSync) {\n reaction2 = new Reaction(name, function() {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n var isScheduled = false;\n reaction2 = new Reaction(name, function() {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function() {\n isScheduled = false;\n if (!reaction2.isDisposed_) {\n reaction2.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction2);\n }\n reaction2.schedule_();\n return reaction2.getDisposer_();\n}\nvar run = function run2(f4) {\n return f4();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function(f4) {\n return setTimeout(f4, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2;\n if (opts === void 0) {\n opts = EMPTY_OBJECT2;\n }\n if (false) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : false ? \"Reaction@\" + getNextId() : \"Reaction\";\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r4 = new Reaction(name, function() {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r4.isDisposed_) {\n return;\n }\n var changed = false;\n r4.track(function() {\n var nextValue = allowStateChanges(false, function() {\n return expression(r4);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r4);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r4);\n }\n firstTime = false;\n }\n r4.schedule_();\n return r4.getDisposer_();\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function() {\n try {\n return baseFn.apply(this, arguments);\n } catch (e2) {\n errorHandler.call(this, e2);\n }\n };\n}\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = \/* @__PURE__ *\/ new Set([cb]);\n }\n return function() {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies, enforceActions = options.enforceActions;\n if (useProxies !== void 0) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== void 0) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function(key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if (false) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\nfunction extendObservable(target, properties, annotations, options) {\n if (false) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n var descriptors = getOwnPropertyDescriptors(properties);\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n try {\n ownKeys(descriptors).forEach(function(key) {\n adm.extend_(\n key,\n descriptors[key],\n !annotations ? true : key in annotations ? annotations[key] : true\n );\n });\n } finally {\n endBatch();\n }\n return target;\n}\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = \/* @__PURE__ *\/ Object.create(Error.prototype);\nvar flowAnnotation = \/* @__PURE__ *\/ createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = \/* @__PURE__ *\/ createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = \/* @__PURE__ *\/ Object.assign(function flow2(arg1, arg2) {\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n if (false) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"<unnamed flow>\";\n var res = function res2() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = void 0;\n var promise = new Promise(function(resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res3) {\n pendingPromise = void 0;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res3);\n } catch (e2) {\n return reject(e2);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = void 0;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e2) {\n return reject(e2);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(void 0);\n });\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function() {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n var _res = gen[\"return\"](void 0);\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise);\n rejector(new FlowCancellationError());\n } catch (e2) {\n rejector(e2);\n }\n });\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = \/* @__PURE__ *\/ createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== void 0) {\n if (false) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if (false) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\nfunction cache(map3, key, value) {\n map3.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function(value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, \/* @__PURE__ *\/ new Set());\n source.forEach(function(value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, \/* @__PURE__ *\/ new Map());\n source.forEach(function(value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function(key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\nfunction toJS(source, options) {\n if (false) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, \/* @__PURE__ *\/ new Map());\n}\nfunction trace() {\n if (true) {\n die(\"trace() is not available in production builds\");\n }\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\nfunction transaction(action2, thisArg) {\n if (thisArg === void 0) {\n thisArg = void 0;\n }\n startBatch();\n try {\n return action2.apply(thisArg);\n } finally {\n endBatch();\n }\n}\nfunction getAdm(target) {\n return target[$mobx];\n}\nvar objectProxyTraps = {\n has: function has(target, name) {\n if (false) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set2(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if (false) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (false) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty2(target, name, descriptor) {\n var _getAdm$definePropert;\n if (false) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys2(target) {\n if (false) {\n warnAboutProxyRequirement(\"iterate keys to detect added \/ removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== void 0 && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function() {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i4 = 0, l5 = interceptors.length; i4 < l5; i4++) {\n change = interceptors[i4](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== void 0 && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function() {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i4 = 0, l5 = listeners.length; i4 < l5; i4++) {\n listeners[i4](change);\n }\n untrackedEnd(prevU);\n}\nfunction makeObservable(target, annotations, options) {\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n try {\n var _annotations;\n if (false) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n ownKeys(annotations).forEach(function(key) {\n return adm.make_(key, annotations[key]);\n });\n } finally {\n endBatch();\n }\n return target;\n}\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 1e4;\nvar arrayTraps = {\n get: function get2(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set3(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions2() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = \/* @__PURE__ *\/ function() {\n function ObservableArrayAdministration2(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = false ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function(newV, oldV) {\n return enhancer(newV, oldV, false ? name + \"[..]\" : \"ObservableArray[..]\");\n };\n }\n var _proto = ObservableArrayAdministration2.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== void 0 && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i4 = 0; i4 < newLength - currentLength; i4++) {\n newItems[i4] = void 0;\n }\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index3, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index3 === void 0) {\n index3 = 0;\n } else if (index3 > length) {\n index3 = length;\n } else if (index3 < 0) {\n index3 = Math.max(0, length + index3);\n }\n if (arguments.length === 1) {\n deleteCount = length - index3;\n } else if (deleteCount === void 0 || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index3));\n }\n if (newItems === void 0) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index3,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function(v4) {\n return _this.enhancer_(v4, void 0);\n });\n if (this.legacyMode_ || false) {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta);\n }\n var res = this.spliceItemsIntoValues_(index3, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index3, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index3, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index3, deleteCount].concat(newItems));\n } else {\n var res = this.values_.slice(index3, index3 + deleteCount);\n var oldItems = this.values_.slice(index3 + deleteCount);\n this.values_.length += newItems.length - deleteCount;\n for (var i4 = 0; i4 < newItems.length; i4++) {\n this.values_[index3 + i4] = newItems[i4];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index3 + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index3, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index3,\n newValue,\n oldValue\n } : null;\n if (false) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index3, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index3,\n removed,\n added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if (false) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index3) {\n if (this.legacyMode_ && index3 >= this.values_.length) {\n console.warn(false ? \"[mobx.array] Attempt to read an array index (\" + index3 + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : \"[mobx] Out of bounds read: \" + index3);\n return void 0;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index3]);\n };\n _proto.set_ = function set_(index3, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index3 > values.length) {\n die(17, index3, values.length);\n }\n if (index3 < values.length) {\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index3];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index3,\n newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index3] = newValue;\n this.notifyArrayChildUpdate_(index3, newValue, oldValue);\n }\n } else {\n var newItems = new Array(index3 + 1 - values.length);\n for (var i4 = 0; i4 < newItems.length - 1; i4++) {\n newItems[i4] = void 0;\n }\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration2;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = false ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true);\n adm.spliceWithArray_(0, 0, initialValues);\n allowStateChangesEnd(prev);\n }\n return proxy;\n}\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n toJSON: function toJSON() {\n return this.slice();\n },\n splice: function splice(index3, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index3);\n case 2:\n return adm.spliceWithArray_(index3, deleteCount);\n }\n return adm.spliceWithArray_(index3, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index3, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index3, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\nfunction simpleFunc(funcName) {\n return function() {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nfunction mapLikeFunc(funcName) {\n return function(callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function(element, index3) {\n return callback.call(thisArg, element, index3, _this2);\n });\n };\n}\nfunction reduceLikeFunc(funcName) {\n return function() {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n var callback = arguments[0];\n arguments[0] = function(accumulator, currentValue, index3) {\n return callback(accumulator, currentValue, index3, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\nvar _Symbol$iterator;\nvar _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = \/* @__PURE__ *\/ function() {\n function ObservableMap2(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = false ? \"ObservableMap@\" + getNextId() : \"ObservableMap\";\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n this.keysAtom_ = createAtom(false ? this.name_ + \".keys()\" : \"ObservableMap.keys()\");\n this.data_ = \/* @__PURE__ *\/ new Map();\n this.hasMap_ = \/* @__PURE__ *\/ new Map();\n allowStateChanges(true, function() {\n _this.merge(initialData);\n });\n }\n var _proto = ObservableMap2.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has2(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, false ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableMap.key?\", false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function() {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set4(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if (false) {\n spyReportStart(_change);\n }\n transaction(function() {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable2 = _this3.data_.get(key);\n observable2.setNewValue_(void 0);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if (false) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable2 = this.data_.get(key);\n newValue = observable2.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable2.value_,\n name: key,\n newValue\n } : null;\n if (false) {\n spyReportStart(change);\n }\n observable2.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function() {\n var _this4$hasMap_$get;\n var observable2 = new ObservableValue(newValue, _this4.enhancer_, false ? _this4.name_ + \".\" + stringifyKey(key) : \"ObservableMap.key\", false);\n _this4.data_.set(key, observable2);\n newValue = observable2.value_;\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue\n } : null;\n if (false) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n };\n _proto.get = function get3(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(void 0);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self2 = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(), done = _keys$next.done, value = _keys$next.value;\n return {\n done,\n value: done ? void 0 : self2.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self2 = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(), done = _keys$next2.done, value = _keys$next2.value;\n return {\n done,\n value: done ? void 0 : [value, self2.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function() {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done; ) {\n var _step$value = _step.value, key = _step$value[0], value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n };\n _proto.merge = function merge2(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function() {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function(key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function(_ref) {\n var key = _ref[0], value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function(value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== void 0) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear2() {\n var _this6 = this;\n transaction(function() {\n untracked(function() {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done; ) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace2(values) {\n var _this7 = this;\n transaction(function() {\n var replacementMap = convertToMap(values);\n var orderedData = \/* @__PURE__ *\/ new Map();\n var keysReportChangedCalled = false;\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done; ) {\n var key = _step3.value;\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n if (deleted) {\n keysReportChangedCalled = true;\n } else {\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done; ) {\n var _step4$value = _step4.value, _key = _step4$value[0], _value = _step4$value[1];\n var keyExisted = _this7.data_.has(_key);\n _this7.set(_key, _value);\n if (_this7.data_.has(_key)) {\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n if (!keyExisted) {\n keysReportChangedCalled = true;\n }\n }\n }\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString2() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON2() {\n return Array.from(this);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (false) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap2, [{\n key: \"size\",\n get: function get3() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get3() {\n return \"Map\";\n }\n }]);\n return ObservableMap2;\n}();\nvar isObservableMap = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map3 = \/* @__PURE__ *\/ new Map();\n for (var key in dataStructure) {\n map3.set(key, dataStructure[key]);\n }\n return map3;\n } else {\n return die(21, dataStructure);\n }\n}\nvar _Symbol$iterator$1;\nvar _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = \/* @__PURE__ *\/ function() {\n function ObservableSet2(initialData, enhancer, name_) {\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = false ? \"ObservableSet@\" + getNextId() : \"ObservableSet\";\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = \/* @__PURE__ *\/ new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.atom_ = createAtom(this.name_);\n this.enhancer_ = function(newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n if (initialData) {\n this.replace(initialData);\n }\n }\n var _proto = ObservableSet2.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear2() {\n var _this = this;\n transaction(function() {\n untracked(function() {\n for (var _iterator = _createForOfIteratorHelperLoose(_this.data_.values()), _step; !(_step = _iterator()).done; ) {\n var value = _step.value;\n _this[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done; ) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this2 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n }\n if (!this.has(value)) {\n transaction(function() {\n _this2.data_.add(_this2.enhancer_(value, void 0));\n _this2.atom_.reportChanged();\n });\n var notifySpy = false;\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && false) {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && false) {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this3 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = false;\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && false) {\n spyReportStart(_change2);\n }\n transaction(function() {\n _this3.atom_.reportChanged();\n _this3.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && false) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has2(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index3 = nextIndex;\n nextIndex += 1;\n return index3 < values.length ? {\n value: [keys[index3], values[index3]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self2 = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self2.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace2(other) {\n var _this4 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function() {\n if (Array.isArray(other)) {\n _this4.clear();\n other.forEach(function(value) {\n return _this4.add(value);\n });\n } else if (isES6Set(other)) {\n _this4.clear();\n other.forEach(function(value) {\n return _this4.add(value);\n });\n } else if (other !== null && other !== void 0) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (false) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON2() {\n return Array.from(this);\n };\n _proto.toString = function toString2() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function() {\n return this.values();\n };\n _createClass(ObservableSet2, [{\n key: \"size\",\n get: function get3() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get3() {\n return \"Set\";\n }\n }]);\n return ObservableSet2;\n}();\nvar isObservableSet = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableSet\", ObservableSet);\nvar descriptorCache = \/* @__PURE__ *\/ Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = \/* @__PURE__ *\/ function() {\n function ObservableObjectAdministration2(target_, values_, name_, defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = \/* @__PURE__ *\/ new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom(false ? this.name_ + \".keys\" : \"ObservableObject.keys\");\n this.isPlainObject_ = isPlainObject(this.target_);\n if (false) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (false) {\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration2.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable2 = this.values_.get(key);\n if (observable2 instanceof ComputedValue) {\n observable2.set(newValue);\n return true;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable2.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = false;\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable2.value_,\n name: key,\n newValue\n } : null;\n if (false) {\n spyReportStart(_change);\n }\n observable2.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if (false) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n this.has_(key);\n }\n return this.target_[key];\n };\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (hasProp(this.target_, key)) {\n if (this.values_.has(key)) {\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n return Reflect.set(this.target_, key, value);\n } else {\n this.target_[key] = value;\n return true;\n }\n } else {\n return this.extend_(key, {\n value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n };\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = \/* @__PURE__ *\/ new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, false ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableObject.key?\", false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n };\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return;\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0) {\n return;\n }\n if (outcome === 1) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n };\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n };\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n try {\n startBatch();\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n return deleteOutcome;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n try {\n startBatch();\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n return deleteOutcome;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable2 = new ObservableValue(value, enhancer, false ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\", false);\n this.values_.set(key, observable2);\n this.notifyPropertyAddition_(key, observable2.value_);\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n try {\n startBatch();\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n return deleteOutcome;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: void 0\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = false ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\");\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n this.notifyPropertyAddition_(key, void 0);\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (!hasProp(this.target_, key)) {\n return true;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n if (!change) {\n return null;\n }\n }\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = false;\n var observable2 = this.values_.get(key);\n var value = void 0;\n if (!observable2 && (notify || notifySpy)) {\n var _getDescriptor2;\n value = (_getDescriptor2 = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor2.value;\n }\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n if (false) {\n delete this.appliedAnnotations_[key];\n }\n if (observable2) {\n this.values_[\"delete\"](key);\n if (observable2 instanceof ObservableValue) {\n value = observable2.value_;\n }\n propagateChanged(observable2);\n }\n this.keysAtom_.reportChanged();\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if (false) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (false) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if (false) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = false;\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if (false) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration2;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if (false) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if (false) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\\nThe target is already observable of different type.\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if (false) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : false ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : \"ObservableObject\";\n var adm = new ObservableObjectAdministration(target, \/* @__PURE__ *\/ new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get3() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set4(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (false) {\n adm.appliedAnnotations_[key] = annotation;\n }\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n if (false) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n if (false) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\nvar ENTRY_0 = \/* @__PURE__ *\/ createArrayEntryDescriptor(0);\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\nvar StubArray = function StubArray2() {\n};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== void 0) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\nvar LegacyObservableArray = \/* @__PURE__ *\/ function(_StubArray, _Symbol$toStringTag2, _Symbol$iterator2) {\n _inheritsLoose(LegacyObservableArray2, _StubArray);\n function LegacyObservableArray2(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = false ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true);\n _this.spliceWithArray(0, 0, initialValues);\n allowStateChangesEnd(prev);\n }\n {\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n return _this;\n }\n var _proto = LegacyObservableArray2.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(\n this.slice(),\n arrays.map(function(a5) {\n return isObservableArray(a5) ? a5.slice() : a5;\n })\n );\n };\n _proto[_Symbol$iterator2] = function() {\n var self2 = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self2.length ? {\n value: self2[nextIndex++],\n done: false\n } : {\n done: true,\n value: void 0\n };\n }\n });\n };\n _createClass(LegacyObservableArray2, [{\n key: \"length\",\n get: function get3() {\n return this[$mobx].getArrayLength_();\n },\n set: function set4(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag2,\n get: function get3() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray2;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function(_ref) {\n var prop = _ref[0], fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index3) {\n return {\n enumerable: false,\n configurable: true,\n get: function get3() {\n return this[$mobx].get_(index3);\n },\n set: function set4(value) {\n this[$mobx].set_(index3, value);\n }\n };\n}\nfunction createArrayBufferItem(index3) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index3, createArrayEntryDescriptor(index3));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index3 = OBSERVABLE_ARRAY_BUFFER_SIZE; index3 < max + 100; index3++) {\n createArrayBufferItem(index3);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1e3);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== void 0) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing[$mobx];\n }\n if (isObservableMap(thing)) {\n if (property === void 0) {\n return thing.keysAtom_;\n }\n var observable2 = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable2) {\n die(25, property, getDebugName(thing));\n }\n return observable2;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== void 0) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== void 0) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n named = getAtom(thing);\n }\n return named.name_;\n}\nvar toString = objectPrototype.toString;\nfunction deepEqual(a5, b5, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a5, b5, depth);\n}\nfunction eq(a5, b5, depth, aStack, bStack) {\n if (a5 === b5) {\n return a5 !== 0 || 1 \/ a5 === 1 \/ b5;\n }\n if (a5 == null || b5 == null) {\n return false;\n }\n if (a5 !== a5) {\n return b5 !== b5;\n }\n var type = typeof a5;\n if (type !== \"function\" && type !== \"object\" && typeof b5 != \"object\") {\n return false;\n }\n var className = toString.call(a5);\n if (className !== toString.call(b5)) {\n return false;\n }\n switch (className) {\n case \"[object RegExp]\":\n case \"[object String]\":\n return \"\" + a5 === \"\" + b5;\n case \"[object Number]\":\n if (+a5 !== +a5) {\n return +b5 !== +b5;\n }\n return +a5 === 0 ? 1 \/ +a5 === 1 \/ b5 : +a5 === +b5;\n case \"[object Date]\":\n case \"[object Boolean]\":\n return +a5 === +b5;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a5) === Symbol.valueOf.call(b5);\n case \"[object Map]\":\n case \"[object Set]\":\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n a5 = unwrap(a5);\n b5 = unwrap(b5);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a5 != \"object\" || typeof b5 != \"object\") {\n return false;\n }\n var aCtor = a5.constructor, bCtor = b5.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a5 && \"constructor\" in b5) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n if (aStack[length] === a5) {\n return bStack[length] === b5;\n }\n }\n aStack.push(a5);\n bStack.push(b5);\n if (areArrays) {\n length = a5.length;\n if (length !== b5.length) {\n return false;\n }\n while (length--) {\n if (!eq(a5[length], b5[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n var keys = Object.keys(a5);\n var key;\n length = keys.length;\n if (Object.keys(b5).length !== length) {\n return false;\n }\n while (length--) {\n key = keys[length];\n if (!(hasProp(b5, key) && eq(a5[key], b5[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a5) {\n if (isObservableArray(a5)) {\n return a5.slice();\n }\n if (isES6Map(a5) || isObservableMap(a5)) {\n return Array.from(a5.entries());\n }\n if (isES6Set(a5) || isObservableSet(a5)) {\n return Array.from(a5.entries());\n }\n return a5;\n}\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n[\"Symbol\", \"Map\", \"Set\"].forEach(function(m4) {\n var g4 = getGlobal();\n if (typeof g4[m4] === \"undefined\") {\n die(\"MobX requires global '\" + m4 + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy,\n extras: {\n getDebugName\n },\n $mobx\n });\n}\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLShape\/TLShape.tsx\nvar import_jsx_runtime = require(\"react\/jsx-runtime\");\nvar TLShape = class {\n constructor(props) {\n __publicField(this, \"props\");\n __publicField(this, \"aspectRatio\");\n __publicField(this, \"type\");\n __publicField(this, \"hideCloneHandles\", false);\n __publicField(this, \"hideResizeHandles\", false);\n __publicField(this, \"hideRotateHandle\", false);\n __publicField(this, \"hideContextBar\", false);\n __publicField(this, \"hideSelectionDetail\", false);\n __publicField(this, \"hideSelection\", false);\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canUnmount\", true);\n __publicField(this, \"canResize\", [true, true]);\n __publicField(this, \"canScale\", true);\n __publicField(this, \"canFlip\", true);\n __publicField(this, \"canEdit\", false);\n __publicField(this, \"canBind\", false);\n __publicField(this, \"nonce\");\n __publicField(this, \"bindingDistance\", BINDING_DISTANCE);\n __publicField(this, \"isDirty\", false);\n __publicField(this, \"lastSerialized\");\n __publicField(this, \"getCenter\", () => {\n return BoundsUtils.getBoundsCenter(this.bounds);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n bounds,\n props: { rotation }\n } = this;\n if (!rotation)\n return bounds;\n return BoundsUtils.getBoundsFromPoints(BoundsUtils.getRotatedCorners(bounds, rotation));\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const ownBounds = this.rotatedBounds;\n if (!this.props.rotation) {\n return PointUtils.pointInBounds(point, ownBounds);\n }\n const corners = BoundsUtils.getRotatedCorners(ownBounds, this.props.rotation);\n return PointUtils.pointInPolygon(point, corners);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const box2 = BoundsUtils.getBoundsFromPoints([A4, B3]);\n const {\n rotatedBounds,\n props: { rotation = 0 }\n } = this;\n return BoundsUtils.boundsContain(rotatedBounds, box2) || rotation ? intersectLineSegmentPolyline(A4, B3, BoundsUtils.getRotatedCorners(this.bounds)).didIntersect : intersectLineSegmentBounds(A4, B3, rotatedBounds).length > 0;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n props: { rotation = 0 }\n } = this;\n const corners = BoundsUtils.getRotatedCorners(this.bounds, rotation);\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || intersectPolygonBounds(corners, bounds).length > 0;\n });\n __publicField(this, \"getExpandedBounds\", () => {\n return BoundsUtils.expandBounds(this.getBounds(), this.bindingDistance);\n });\n __publicField(this, \"getBindingPoint\", (point, origin, direction, bindAnywhere) => {\n const bounds = this.getBounds();\n const expandedBounds = this.getExpandedBounds();\n if (!PointUtils.pointInBounds(point, expandedBounds))\n return;\n const intersections = intersectRayBounds(origin, direction, expandedBounds).filter((int) => int.didIntersect).map((int) => int.points[0]);\n if (!intersections.length)\n return;\n const center = this.getCenter();\n const intersection = intersections.sort((a5, b5) => src_default.dist(b5, origin) - src_default.dist(a5, origin))[0];\n const middlePoint = src_default.med(point, intersection);\n let anchor;\n let distance;\n if (bindAnywhere) {\n anchor = src_default.dist(point, center) < BINDING_DISTANCE \/ 2 ? center : point;\n distance = 0;\n } else {\n if (src_default.distanceToLineSegment(point, middlePoint, center) < BINDING_DISTANCE \/ 2) {\n anchor = center;\n } else {\n anchor = middlePoint;\n }\n if (PointUtils.pointInBounds(point, bounds)) {\n distance = this.bindingDistance;\n } else {\n distance = Math.max(\n this.bindingDistance,\n BoundsUtils.getBoundsSides(bounds).map((side) => src_default.distanceToLineSegment(side[1][0], side[1][1], point)).sort((a5, b5) => a5 - b5)[0]\n );\n }\n }\n const bindingPoint = src_default.divV(src_default.sub(anchor, [expandedBounds.minX, expandedBounds.minY]), [\n expandedBounds.width,\n expandedBounds.height\n ]);\n return {\n point: src_default.clampV(bindingPoint, 0, 1),\n distance\n };\n });\n __publicField(this, \"getSerialized\", () => {\n return toJS(__spreadProps(__spreadValues({}, this.props), { type: this.type, nonce: this.nonce }));\n });\n __publicField(this, \"getCachedSerialized\", () => {\n if (this.isDirty || !this.lastSerialized) {\n transaction(() => {\n this.setIsDirty(false);\n this.setLastSerialized(this.getSerialized());\n });\n }\n if (this.lastSerialized) {\n return this.lastSerialized;\n }\n throw new Error(\"Should not get here for getCachedSerialized\");\n });\n __publicField(this, \"validateProps\", (props) => {\n return props;\n });\n __publicField(this, \"update\", (props, isDeserializing = false, skipNounce = false) => {\n if (!(isDeserializing || this.isDirty))\n this.setIsDirty(true);\n if (!isDeserializing && !skipNounce)\n this.incNonce();\n Object.assign(this.props, this.validateProps(props));\n return this;\n });\n __publicField(this, \"clone\", () => {\n return new this.constructor(this.serialized);\n });\n __publicField(this, \"onResetBounds\", (info) => {\n return this;\n });\n __publicField(this, \"scale\", [1, 1]);\n __publicField(this, \"onResizeStart\", (info) => {\n var _a3;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n this.update({ point: [bounds.minX, bounds.minY], scale: nextScale, rotation });\n return this;\n });\n __publicField(this, \"onHandleChange\", (initialShape, { id: id3, delta }) => {\n if (initialShape.handles === void 0)\n return;\n const nextHandles = deepCopy(initialShape.handles);\n nextHandles[id3] = __spreadProps(__spreadValues({}, nextHandles[id3]), {\n point: src_default.add(delta, initialShape.handles[id3].point)\n });\n const topLeft = BoundsUtils.getCommonTopLeft(Object.values(nextHandles).map((h4) => h4.point));\n Object.values(nextHandles).forEach((h4) => {\n h4.point = src_default.sub(h4.point, topLeft);\n });\n this.update({\n point: src_default.add(initialShape.point, topLeft),\n handles: nextHandles\n });\n });\n var _a3, _b;\n const type = this.constructor[\"id\"];\n const defaultProps = (_a3 = this.constructor[\"defaultProps\"]) != null ? _a3 : {};\n this.type = type;\n this.props = __spreadValues(__spreadValues({ scale: [1, 1] }, defaultProps), props);\n this.nonce = (_b = props.nonce) != null ? _b : Date.now();\n makeObservable(this);\n }\n get id() {\n return this.props.id;\n }\n setNonce(nonce) {\n this.nonce = nonce;\n }\n incNonce() {\n this.nonce++;\n }\n setIsDirty(isDirty) {\n this.isDirty = isDirty;\n }\n setLastSerialized(serialized) {\n this.lastSerialized = serialized;\n }\n get center() {\n return this.getCenter();\n }\n get bounds() {\n return this.getBounds();\n }\n get rotatedBounds() {\n return this.getRotatedBounds();\n }\n get serialized() {\n return this.getCachedSerialized();\n }\n getShapeSVGJsx(_2) {\n const bounds = this.getBounds();\n const { stroke, strokeWidth, strokeType, opacity, fill, noFill, borderRadius } = this.props;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime.jsx)(\"rect\", {\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\"),\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeWidth: strokeWidth != null ? strokeWidth : 2,\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fillOpacity: opacity != null ? opacity : 0.2,\n width: bounds.width,\n height: bounds.height,\n rx: borderRadius,\n ry: borderRadius\n });\n }\n};\n__publicField(TLShape, \"type\");\n__decorateClass([\n observable\n], TLShape.prototype, \"props\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"canResize\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"nonce\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"isDirty\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"lastSerialized\", 2);\n__decorateClass([\n computed\n], TLShape.prototype, \"id\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"setNonce\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"incNonce\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"setIsDirty\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"setLastSerialized\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"center\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"bounds\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"rotatedBounds\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"serialized\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"update\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLBoxShape\/TLBoxShape.tsx\nvar TLBoxShape = class extends TLShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"canBind\", true);\n __publicField(this, \"getBounds\", () => {\n const [x4, y4] = this.props.point;\n const [width, height] = this.props.size;\n return {\n minX: x4,\n minY: y4,\n maxX: x4 + width,\n maxY: y4 + height,\n width,\n height\n };\n });\n __publicField(this, \"getRotatedBounds\", () => {\n return BoundsUtils.getBoundsFromPoints(\n BoundsUtils.getRotatedCorners(this.bounds, this.props.rotation)\n );\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n this.update({ point: [bounds.minX, bounds.minY], scale: nextScale, rotation });\n return this.update({\n rotation,\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, bounds.height)],\n scale: nextScale\n });\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return props;\n });\n makeObservable(this);\n }\n};\n__publicField(TLBoxShape, \"id\", \"box\");\n__publicField(TLBoxShape, \"defaultProps\", {\n id: \"box\",\n type: \"box\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100]\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLDrawShape\/TLDrawShape.tsx\nvar TLDrawShape = class extends TLShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getBounds\", () => {\n const {\n pointBounds,\n props: { point }\n } = this;\n return BoundsUtils.translateBounds(pointBounds, point);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n props: { rotation, point },\n bounds,\n rotatedPoints\n } = this;\n if (!rotation)\n return bounds;\n return BoundsUtils.translateBounds(BoundsUtils.getBoundsFromPoints(rotatedPoints), point);\n });\n __publicField(this, \"normalizedPoints\", []);\n __publicField(this, \"isResizeFlippedX\", false);\n __publicField(this, \"isResizeFlippedY\", false);\n __publicField(this, \"onResizeStart\", () => {\n var _a3;\n const {\n bounds,\n props: { points }\n } = this;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n const size = [bounds.width, bounds.height];\n this.normalizedPoints = points.map((point) => Vec.divV(point, size));\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n scale: [scaleX, scaleY]\n } = info;\n const size = [bounds.width, bounds.height];\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n return this.update(\n scaleX || scaleY ? {\n point: [bounds.minX, bounds.minY],\n points: this.normalizedPoints.map((point) => Vec.mulV(point, size).concat(point[2])),\n scale: nextScale\n } : {\n point: [bounds.minX, bounds.minY],\n points: this.normalizedPoints.map((point) => Vec.mulV(point, size).concat(point[2]))\n }\n );\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const {\n props: { points, point: ownPoint }\n } = this;\n return PointUtils.pointNearToPolyline(Vec.sub(point, ownPoint), points);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n bounds,\n props: { points, point }\n } = this;\n if (PointUtils.pointInBounds(A4, bounds) || PointUtils.pointInBounds(B3, bounds) || intersectBoundsLineSegment(bounds, A4, B3).length > 0) {\n const rA = Vec.sub(A4, point);\n const rB = Vec.sub(B3, point);\n return intersectLineSegmentPolyline(rA, rB, points).didIntersect || !!points.find((point2) => Vec.dist(rA, point2) < 5 || Vec.dist(rB, point2) < 5);\n }\n return false;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n props: { points, point }\n } = this;\n const oBounds = BoundsUtils.translateBounds(bounds, Vec.neg(point));\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || points.every((vert) => PointUtils.pointInBounds(vert, oBounds)) || BoundsUtils.boundsCollide(bounds, rotatedBounds) && intersectPolylineBounds(points, oBounds).length > 0;\n });\n makeObservable(this);\n }\n get pointBounds() {\n const {\n props: { points }\n } = this;\n return BoundsUtils.getBoundsFromPoints(points);\n }\n get rotatedPoints() {\n const {\n props: { point, points, rotation },\n center\n } = this;\n if (!rotation)\n return points;\n const relativeCenter = Vec.sub(center, point);\n return points.map((point2) => Vec.rotWith(point2, relativeCenter, rotation));\n }\n};\n__publicField(TLDrawShape, \"id\", \"draw\");\n__publicField(TLDrawShape, \"defaultProps\", {\n id: \"draw\",\n type: \"draw\",\n parentId: \"page\",\n point: [0, 0],\n points: [],\n isComplete: false\n});\n__decorateClass([\n computed\n], TLDrawShape.prototype, \"pointBounds\", 1);\n__decorateClass([\n computed\n], TLDrawShape.prototype, \"rotatedPoints\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLEllipseShape\/TLEllipseShape.ts\nvar TLEllipseShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getBounds\", () => {\n const {\n props: {\n point: [x4, y4],\n size: [w4, h4]\n }\n } = this;\n return BoundsUtils.getRotatedEllipseBounds(x4, y4, w4 \/ 2, h4 \/ 2, 0);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n props: {\n point: [x4, y4],\n size: [w4, h4],\n rotation\n }\n } = this;\n return BoundsUtils.getRotatedEllipseBounds(x4, y4, w4 \/ 2, h4 \/ 2, rotation);\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const {\n props: { size, rotation },\n center\n } = this;\n return PointUtils.pointInEllipse(point, center, size[0], size[1], rotation || 0);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n props: {\n size: [w4, h4],\n rotation = 0\n },\n center\n } = this;\n return intersectLineSegmentEllipse(A4, B3, center, w4, h4, rotation).didIntersect;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n props: {\n size: [w4, h4],\n rotation = 0\n },\n rotatedBounds\n } = this;\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || intersectEllipseBounds(this.center, w4 \/ 2, h4 \/ 2, rotation, bounds).length > 0;\n });\n makeObservable(this);\n }\n};\n__publicField(TLEllipseShape, \"id\", \"ellipse\");\n__publicField(TLEllipseShape, \"defaultProps\", {\n id: \"ellipse\",\n type: \"ellipse\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100]\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLImageShape\/TLImageShape.ts\nvar TLImageShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"onResetBounds\", (info) => {\n const { clipping, size, point } = this.props;\n if (clipping) {\n const [t2, r4, b5, l5] = Array.isArray(clipping) ? clipping : [clipping, clipping, clipping, clipping];\n return this.update({\n clipping: 0,\n point: [point[0] - l5, point[1] - t2],\n size: [size[0] + (l5 - r4), size[1] + (t2 - b5)]\n });\n } else if (info.asset) {\n const {\n size: [w4, h4]\n } = info.asset;\n this.update({\n clipping: 0,\n point: [point[0] + size[0] \/ 2 - w4 \/ 2, point[1] + size[1] \/ 2 - h4 \/ 2],\n size: [w4, h4]\n });\n }\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const { bounds, clip, scale } = info;\n let { clipping } = this.props;\n const { clipping: iClipping } = initialProps;\n if (clip) {\n const {\n point: [x4, y4],\n size: [w4, h4]\n } = initialProps;\n const [t2, r4, b5, l5] = iClipping ? Array.isArray(iClipping) ? iClipping : [iClipping, iClipping, iClipping, iClipping] : [0, 0, 0, 0];\n clipping = [\n t2 + (bounds.minY - y4),\n r4 + (bounds.maxX - (x4 + w4)),\n b5 + (bounds.maxY - (y4 + h4)),\n l5 + (bounds.minX - x4)\n ];\n } else {\n if (iClipping !== void 0) {\n clipping = Array.isArray(iClipping) ? iClipping : [iClipping, iClipping, iClipping, iClipping];\n clipping = [\n clipping[0] * scale[1],\n clipping[1] * scale[0],\n clipping[2] * scale[1],\n clipping[3] * scale[0]\n ];\n }\n }\n if (clipping && Array.isArray(clipping)) {\n const c4 = clipping;\n if (c4.every((v4, i4) => i4 === 0 || v4 === c4[i4 - 1])) {\n clipping = c4[0];\n }\n }\n return this.update({\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, bounds.height)],\n clipping\n });\n });\n makeObservable(this);\n }\n};\n__publicField(TLImageShape, \"id\", \"ellipse\");\n__publicField(TLImageShape, \"defaultProps\", {\n id: \"ellipse\",\n type: \"ellipse\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100],\n clipping: 0,\n objectFit: \"none\",\n assetId: \"\"\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLPolylineShape\/TLPolylineShape.tsx\nvar _TLPolylineShape = class extends TLShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getBounds\", () => {\n const {\n points,\n props: { point }\n } = this;\n return BoundsUtils.translateBounds(BoundsUtils.getBoundsFromPoints(points), point);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n rotatedPoints,\n props: { point }\n } = this;\n return BoundsUtils.translateBounds(BoundsUtils.getBoundsFromPoints(rotatedPoints), point);\n });\n __publicField(this, \"normalizedHandles\", []);\n __publicField(this, \"onResizeStart\", () => {\n var _a3;\n const {\n props: { handles },\n bounds\n } = this;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n const size = [bounds.width, bounds.height];\n this.normalizedHandles = Object.values(handles).map((h4) => Vec.divV(h4.point, size));\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n scale: [scaleX, scaleY]\n } = info;\n const {\n props: { handles },\n normalizedHandles\n } = this;\n const size = [bounds.width, bounds.height];\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n return this.update({\n point: [bounds.minX, bounds.minY],\n handles: Object.values(handles).map((handle, i4) => __spreadProps(__spreadValues({}, handle), {\n point: Vec.mulV(normalizedHandles[i4], size)\n })),\n scale: nextScale\n });\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const { points } = this;\n return PointUtils.pointNearToPolyline(Vec.sub(point, this.props.point), points);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n bounds,\n points,\n props: { point }\n } = this;\n if (PointUtils.pointInBounds(A4, bounds) || PointUtils.pointInBounds(B3, bounds) || intersectBoundsLineSegment(bounds, A4, B3).length > 0) {\n const rA = Vec.sub(A4, point);\n const rB = Vec.sub(B3, point);\n return intersectLineSegmentPolyline(rA, rB, points).didIntersect || !!points.find((point2) => Vec.dist(rA, point2) < 5 || Vec.dist(rB, point2) < 5);\n }\n return false;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n points,\n props: { point }\n } = this;\n const oBounds = BoundsUtils.translateBounds(bounds, Vec.neg(point));\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || points.every((vert) => PointUtils.pointInBounds(vert, oBounds)) || BoundsUtils.boundsCollide(bounds, rotatedBounds) && intersectPolylineBounds(points, oBounds).length > 0;\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.point)\n props.point = [0, 0];\n if (props.handles !== void 0 && Object.values(props.handles).length < 1)\n props.handles = _TLPolylineShape.defaultProps[\"handles\"];\n return props;\n });\n makeObservable(this);\n }\n get points() {\n return Object.values(this.props.handles).map((h4) => h4.point);\n }\n get centroid() {\n const { points } = this;\n return PolygonUtils.getPolygonCentroid(points);\n }\n get rotatedPoints() {\n const {\n centroid,\n props: { handles, rotation }\n } = this;\n if (!rotation)\n return this.points;\n return Object.values(handles).map((h4) => Vec.rotWith(h4.point, centroid, rotation));\n }\n};\nvar TLPolylineShape = _TLPolylineShape;\n__publicField(TLPolylineShape, \"id\", \"polyline\");\n__publicField(TLPolylineShape, \"defaultProps\", {\n id: \"polyline\",\n type: \"polyline\",\n parentId: \"page\",\n point: [0, 0],\n handles: {}\n});\n__decorateClass([\n computed\n], TLPolylineShape.prototype, \"points\", 1);\n__decorateClass([\n computed\n], TLPolylineShape.prototype, \"centroid\", 1);\n__decorateClass([\n computed\n], TLPolylineShape.prototype, \"rotatedPoints\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLLineShape\/TLLineShape.tsx\nvar _TLLineShape = class extends TLPolylineShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"hideResizeHandles\", true);\n __publicField(this, \"hideRotateHandle\", true);\n __publicField(this, \"validateProps\", (props) => {\n if (props.point)\n props.point = [0, 0];\n if (props.handles !== void 0 && Object.values(props.handles).length < 1)\n props.handles = _TLLineShape.defaultProps[\"handles\"];\n return props;\n });\n __publicField(this, \"getHandlesChange\", (shape, handles) => {\n let nextHandles = deepMerge(shape.handles, handles);\n nextHandles = deepMerge(nextHandles, {\n start: {\n point: src_default.toFixed(nextHandles.start.point)\n },\n end: {\n point: src_default.toFixed(nextHandles.end.point)\n }\n });\n if (src_default.isEqual(nextHandles.start.point, nextHandles.end.point))\n return;\n const nextShape = {\n point: shape.point,\n handles: deepCopy(nextHandles)\n };\n const topLeft = shape.point;\n const nextBounds = BoundsUtils.translateBounds(\n BoundsUtils.getBoundsFromPoints(Object.values(nextHandles).map((h4) => h4.point)),\n nextShape.point\n );\n const offset = src_default.sub([nextBounds.minX, nextBounds.minY], topLeft);\n if (!src_default.isEqual(offset, [0, 0])) {\n Object.values(nextShape.handles).forEach((handle) => {\n handle.point = src_default.toFixed(src_default.sub(handle.point, offset));\n });\n nextShape.point = src_default.toFixed(src_default.add(nextShape.point, offset));\n }\n return nextShape;\n });\n makeObservable(this);\n }\n};\nvar TLLineShape = _TLLineShape;\n__publicField(TLLineShape, \"id\", \"line\");\n__publicField(TLLineShape, \"defaultProps\", {\n id: \"line\",\n type: \"line\",\n parentId: \"page\",\n point: [0, 0],\n handles: {\n start: { id: \"start\", canBind: true, point: [0, 0] },\n end: { id: \"end\", canBind: true, point: [1, 1] }\n }\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLPolygonShape\/TLPolygonShape.tsx\nvar TLPolygonShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n rotatedVertices,\n props: { point },\n offset\n } = this;\n return BoundsUtils.translateBounds(\n BoundsUtils.getBoundsFromPoints(rotatedVertices),\n Vec.add(point, offset)\n );\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const { vertices } = this;\n return PointUtils.pointInPolygon(Vec.add(point, this.props.point), vertices);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n vertices,\n props: { point }\n } = this;\n return intersectLineSegmentPolyline(Vec.sub(A4, point), Vec.sub(B3, point), vertices).didIntersect;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n offset,\n rotatedVertices,\n props: { point }\n } = this;\n const oBounds = BoundsUtils.translateBounds(bounds, Vec.neg(Vec.add(point, offset)));\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || rotatedVertices.every((vert) => PointUtils.pointInBounds(vert, oBounds)) || intersectPolygonBounds(rotatedVertices, oBounds).length > 0;\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.point)\n props.point = [0, 0];\n if (props.sides !== void 0 && props.sides < 3)\n props.sides = 3;\n return props;\n });\n makeObservable(this);\n }\n get vertices() {\n return this.getVertices();\n }\n get pageVertices() {\n const {\n props: { point },\n vertices\n } = this;\n return vertices.map((vert) => Vec.add(vert, point));\n }\n get centroid() {\n const { vertices } = this;\n return PolygonUtils.getPolygonCentroid(vertices);\n }\n get rotatedVertices() {\n const {\n vertices,\n centroid,\n props: { rotation }\n } = this;\n if (!rotation)\n return vertices;\n return vertices.map((v4) => Vec.rotWith(v4, centroid, rotation));\n }\n get offset() {\n const {\n props: {\n size: [w4, h4]\n }\n } = this;\n const center = BoundsUtils.getBoundsCenter(BoundsUtils.getBoundsFromPoints(this.vertices));\n return Vec.sub(Vec.div([w4, h4], 2), center);\n }\n getVertices(padding = 0) {\n const { ratio, sides, size, scale } = this.props;\n const vertices = sides === 3 ? PolygonUtils.getTriangleVertices(size, padding, ratio) : PolygonUtils.getPolygonVertices(size, sides, padding, ratio);\n return vertices;\n }\n};\n__publicField(TLPolygonShape, \"id\", \"polygon\");\n__publicField(TLPolygonShape, \"defaultProps\", {\n id: \"polygon\",\n type: \"polygon\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100],\n sides: 5,\n ratio: 1,\n isFlippedY: false\n});\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"vertices\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"pageVertices\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"centroid\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"rotatedVertices\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"offset\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLTextShape\/TLTextShape.tsx\nvar TLTextShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"canFlip\", false);\n makeObservable(this);\n }\n};\n__publicField(TLTextShape, \"id\", \"text\");\n__publicField(TLTextShape, \"defaultProps\", {\n id: \"text\",\n type: \"text\",\n parentId: \"page\",\n isSizeLocked: true,\n point: [0, 0],\n size: [16, 32],\n text: \"\"\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLGroupShape\/TLGroupShape.tsx\nvar TLGroupShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"canEdit\", false);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"getBounds\", () => {\n if (this.shapes.length === 0) {\n const app = useApp();\n app.deleteShapes([this.id]);\n return {\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0,\n width: 0,\n height: 0\n };\n }\n return BoundsUtils.getCommonBounds(this.shapes.map((s4) => s4.getBounds()));\n });\n makeObservable(this);\n this.canResize = [false, false];\n }\n getShapes() {\n throw new Error(\"will be implemented other places\");\n }\n get shapes() {\n return this.getShapes();\n }\n};\n__publicField(TLGroupShape, \"id\", \"group\");\n__publicField(TLGroupShape, \"defaultProps\", {\n id: \"group\",\n type: \"group\",\n parentId: \"page\",\n point: [0, 0],\n size: [0, 0],\n children: []\n});\n__decorateClass([\n computed\n], TLGroupShape.prototype, \"shapes\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLState.ts\nvar TLRootState = class {\n constructor() {\n __publicField(this, \"_id\");\n __publicField(this, \"_initial\");\n __publicField(this, \"_states\");\n __publicField(this, \"_isActive\", false);\n __publicField(this, \"cursor\");\n __publicField(this, \"_disposables\", []);\n __publicField(this, \"children\", \/* @__PURE__ *\/ new Map([]));\n __publicField(this, \"registerStates\", (stateClasses) => {\n stateClasses.forEach((StateClass) => this.children.set(StateClass.id, new StateClass(this, this)));\n return this;\n });\n __publicField(this, \"deregisterStates\", (states) => {\n states.forEach((StateClass) => {\n var _a3;\n (_a3 = this.children.get(StateClass.id)) == null ? void 0 : _a3.dispose();\n this.children.delete(StateClass.id);\n });\n return this;\n });\n __publicField(this, \"currentState\", {});\n __publicField(this, \"transition\", (id3, data = {}) => {\n if (this.children.size === 0)\n throw Error(`Tool ${this.id} has no states, cannot transition to ${id3}.`);\n const nextState = this.children.get(id3);\n const prevState = this.currentState;\n if (!nextState)\n throw Error(`Could not find a state named ${id3}.`);\n transaction(() => {\n if (this.currentState) {\n prevState._events.onExit(__spreadProps(__spreadValues({}, data), { toId: id3 }));\n prevState.dispose();\n this.setCurrentState(nextState);\n this._events.onTransition(__spreadProps(__spreadValues({}, data), { fromId: prevState.id, toId: id3 }));\n nextState._events.onEnter(__spreadProps(__spreadValues({}, data), { fromId: prevState.id }));\n } else {\n this.currentState = nextState;\n nextState._events.onEnter(__spreadProps(__spreadValues({}, data), { fromId: \"\" }));\n }\n });\n return this;\n });\n __publicField(this, \"isIn\", (path) => {\n const ids = path.split(\".\").reverse();\n let state = this;\n while (ids.length > 0) {\n const id3 = ids.pop();\n if (!id3) {\n return true;\n }\n if (state.currentState.id === id3) {\n if (ids.length === 0) {\n return true;\n }\n state = state.currentState;\n continue;\n } else {\n return false;\n }\n }\n return false;\n });\n __publicField(this, \"isInAny\", (...paths) => {\n return paths.some(this.isIn);\n });\n __publicField(this, \"forwardEvent\", (eventName, ...args) => {\n var _a3, _b;\n if ((_b = (_a3 = this.currentState) == null ? void 0 : _a3._events) == null ? void 0 : _b[eventName]) {\n transaction(() => {\n var _a4;\n return (_a4 = this.currentState._events) == null ? void 0 : _a4[eventName](...args);\n });\n }\n });\n __publicField(this, \"_events\", {\n onTransition: (info) => {\n var _a3;\n (_a3 = this.onTransition) == null ? void 0 : _a3.call(this, info);\n },\n onEnter: (info) => {\n var _a3;\n this._isActive = true;\n if (this.initial)\n this.transition(this.initial, info);\n (_a3 = this.onEnter) == null ? void 0 : _a3.call(this, info);\n },\n onExit: (info) => {\n var _a3, _b, _c;\n this._isActive = false;\n (_b = (_a3 = this.currentState) == null ? void 0 : _a3.onExit) == null ? void 0 : _b.call(_a3, { toId: \"parent\" });\n (_c = this.onExit) == null ? void 0 : _c.call(this, info);\n },\n onPointerDown: (info, event) => {\n var _a3;\n (_a3 = this.onPointerDown) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerDown\", info, event);\n },\n onPointerUp: (info, event) => {\n var _a3;\n (_a3 = this.onPointerUp) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerUp\", info, event);\n },\n onPointerMove: (info, event) => {\n var _a3;\n (_a3 = this.onPointerMove) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerMove\", info, event);\n },\n onPointerEnter: (info, event) => {\n var _a3;\n (_a3 = this.onPointerEnter) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerEnter\", info, event);\n },\n onPointerLeave: (info, event) => {\n var _a3;\n (_a3 = this.onPointerLeave) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerLeave\", info, event);\n },\n onDoubleClick: (info, event) => {\n var _a3;\n (_a3 = this.onDoubleClick) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onDoubleClick\", info, event);\n },\n onKeyDown: (info, event) => {\n var _a3;\n this._events.onModifierKey(info, event);\n (_a3 = this.onKeyDown) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onKeyDown\", info, event);\n },\n onKeyUp: (info, event) => {\n var _a3;\n this._events.onModifierKey(info, event);\n (_a3 = this.onKeyUp) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onKeyUp\", info, event);\n },\n onPinchStart: (info, event) => {\n var _a3;\n (_a3 = this.onPinchStart) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPinchStart\", info, event);\n },\n onPinch: (info, event) => {\n var _a3;\n (_a3 = this.onPinch) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPinch\", info, event);\n },\n onPinchEnd: (info, event) => {\n var _a3;\n (_a3 = this.onPinchEnd) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPinchEnd\", info, event);\n },\n onModifierKey: (info, event) => {\n switch (event.key) {\n case \"Shift\":\n case \"Alt\":\n case \"Ctrl\":\n case \"Meta\": {\n this._events.onPointerMove(info, event);\n break;\n }\n }\n }\n });\n __publicField(this, \"onEnter\");\n __publicField(this, \"onExit\");\n __publicField(this, \"onTransition\");\n __publicField(this, \"onPointerDown\");\n __publicField(this, \"onPointerUp\");\n __publicField(this, \"onPointerMove\");\n __publicField(this, \"onPointerEnter\");\n __publicField(this, \"onPointerLeave\");\n __publicField(this, \"onDoubleClick\");\n __publicField(this, \"onKeyDown\");\n __publicField(this, \"onKeyUp\");\n __publicField(this, \"onPinchStart\");\n __publicField(this, \"onPinch\");\n __publicField(this, \"onPinchEnd\");\n const id3 = this.constructor[\"id\"];\n const initial = this.constructor[\"initial\"];\n const states = this.constructor[\"states\"];\n this._id = id3;\n this._initial = initial;\n this._states = states;\n }\n dispose() {\n this._disposables.forEach((disposable) => disposable());\n this._disposables = [];\n return this;\n }\n get initial() {\n return this._initial;\n }\n get states() {\n return this._states;\n }\n get id() {\n return this._id;\n }\n get isActive() {\n return this._isActive;\n }\n get ascendants() {\n return [this];\n }\n get descendants() {\n return Array.from(this.children.values()).flatMap((state) => [state, ...state.descendants]);\n }\n setCurrentState(state) {\n this.currentState = state;\n }\n};\n__publicField(TLRootState, \"id\");\n__publicField(TLRootState, \"shortcuts\");\n__decorateClass([\n observable\n], TLRootState.prototype, \"currentState\", 2);\n__decorateClass([\n action\n], TLRootState.prototype, \"setCurrentState\", 1);\nvar TLState = class extends TLRootState {\n constructor(parent, root) {\n var _a3, _b;\n super();\n __publicField(this, \"_root\");\n __publicField(this, \"_parent\");\n __publicField(this, \"children\", \/* @__PURE__ *\/ new Map([]));\n __publicField(this, \"registerStates\", (stateClasses) => {\n stateClasses.forEach(\n (StateClass) => this.children.set(StateClass.id, new StateClass(this, this._root))\n );\n return this;\n });\n __publicField(this, \"deregisterStates\", (states) => {\n states.forEach((StateClass) => {\n var _a3;\n (_a3 = this.children.get(StateClass.id)) == null ? void 0 : _a3.dispose();\n this.children.delete(StateClass.id);\n });\n return this;\n });\n this._parent = parent;\n this._root = root;\n if (this.states && this.states.length > 0) {\n this.registerStates(this.states);\n const initialId = (_a3 = this.initial) != null ? _a3 : this.states[0].id;\n const state = this.children.get(initialId);\n if (state) {\n this.setCurrentState(state);\n (_b = this.currentState) == null ? void 0 : _b._events.onEnter({ fromId: \"initial\" });\n }\n }\n makeObservable(this);\n }\n get root() {\n return this._root;\n }\n get parent() {\n return this._parent;\n }\n get ascendants() {\n if (!this.parent)\n return [this];\n if (!(\"ascendants\" in this.parent))\n return [this.parent, this];\n return [...this.parent.ascendants, this];\n }\n};\n__publicField(TLState, \"cursor\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLTool.tsx\nvar TLTool = class extends TLState {\n constructor() {\n super(...arguments);\n __publicField(this, \"isLocked\", false);\n __publicField(this, \"previous\");\n __publicField(this, \"onEnter\", ({ fromId }) => {\n this.previous = fromId;\n if (this.cursor)\n this.app.cursors.setCursor(this.cursor);\n });\n __publicField(this, \"onTransition\", (info) => {\n const { toId } = info;\n const toState = this.children.get(toId);\n this.app.cursors.reset();\n if (toState.cursor) {\n this.app.cursors.setCursor(toState.cursor);\n } else if (this.cursor) {\n this.app.cursors.setCursor(this.cursor);\n }\n });\n }\n get app() {\n return this.root;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLToolState.ts\nvar TLToolState = class extends TLState {\n get app() {\n return this.root;\n }\n get tool() {\n return this.parent;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/states\/CreatingState.tsx\nvar CreatingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"creatingShape\");\n __publicField(this, \"aspectRatio\");\n __publicField(this, \"initialBounds\", {});\n __publicField(this, \"onEnter\", () => {\n const {\n currentPage,\n inputs: { originPoint, currentPoint }\n } = this.app;\n const { Shape: Shape5 } = this.tool;\n const shape = new Shape5({\n id: uniqueId(),\n type: Shape5.id,\n parentId: currentPage.id,\n point: [...originPoint],\n fill: this.app.settings.color,\n stroke: this.app.settings.color,\n size: src_default.abs(src_default.sub(currentPoint, originPoint))\n });\n this.initialBounds = {\n minX: originPoint[0],\n minY: originPoint[1],\n maxX: originPoint[0] + 1,\n maxY: originPoint[1] + 1,\n width: 1,\n height: 1\n };\n if (!shape.canChangeAspectRatio) {\n if (shape.aspectRatio) {\n this.aspectRatio = shape.aspectRatio;\n this.initialBounds.height = this.aspectRatio;\n this.initialBounds.width = 1;\n } else {\n this.aspectRatio = 1;\n this.initialBounds.height = 1;\n this.initialBounds.width = 1;\n }\n this.initialBounds.maxY = this.initialBounds.minY + this.initialBounds.height;\n }\n this.creatingShape = shape;\n this.creatingShape.setScaleLevel(this.app.settings.scaleLevel);\n this.app.currentPage.addShapes(shape);\n this.app.setSelectedShapes([shape]);\n });\n __publicField(this, \"onPointerMove\", (info) => {\n if (info.order)\n return;\n if (!this.creatingShape)\n throw Error(\"Expected a creating shape.\");\n const { initialBounds } = this;\n const { currentPoint, originPoint, shiftKey } = this.app.inputs;\n const isAspectRatioLocked = shiftKey || this.creatingShape.props.isAspectRatioLocked || !this.creatingShape.canChangeAspectRatio;\n let bounds = BoundsUtils.getTransformedBoundingBox(\n initialBounds,\n \"bottom_right_corner\" \/* BottomRight *\/,\n src_default.sub(currentPoint, originPoint),\n 0,\n isAspectRatioLocked\n );\n if (this.app.settings.snapToGrid && !isAspectRatioLocked) {\n bounds = BoundsUtils.snapBoundsToGrid(bounds, GRID_SIZE);\n }\n this.creatingShape.update({\n point: [bounds.minX, bounds.minY],\n size: [bounds.width, bounds.height]\n });\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n if (this.creatingShape) {\n this.app.setSelectedShapes([this.creatingShape]);\n this.app.api.editShape(this.creatingShape);\n } else {\n this.app.transition(\"select\");\n }\n this.app.persist();\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n if (!this.creatingShape)\n throw Error(\"Expected a creating shape.\");\n this.app.deleteShapes([this.creatingShape]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(CreatingState, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/states\/IdleState.tsx\nvar IdleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"pointing\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/states\/PointingState.tsx\nvar PointingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"creating\");\n this.app.setSelectedShapes(this.app.currentPage.shapes);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PointingState, \"id\", \"pointing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/TLBoxTool.ts\nvar TLBoxTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLBoxTool, \"id\", \"box\");\n__publicField(TLBoxTool, \"states\", [IdleState, PointingState, CreatingState]);\n__publicField(TLBoxTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/states\/CreatingState.tsx\nvar CreatingState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"shape\", {});\n __publicField(this, \"points\", [[0, 0, 0.5]]);\n __publicField(this, \"persistDebounced\", debounce(this.app.persist, 200));\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onEnter\", () => {\n var _a3, _b;\n const { Shape: Shape5, previousShape } = this.tool;\n const { originPoint } = this.app.inputs;\n this.app.history.pause();\n if (this.app.inputs.shiftKey && previousShape) {\n this.shape = previousShape;\n const { shape } = this;\n const prevPoint = shape.props.points[shape.props.points.length - 1];\n const nextPoint = Vec.sub(originPoint, shape.props.point).concat((_a3 = originPoint[2]) != null ? _a3 : 0.5);\n this.points = [...shape.props.points, prevPoint, prevPoint];\n const len = Math.ceil(Vec.dist(prevPoint, originPoint) \/ 16);\n for (let i4 = 0, t2 = i4 \/ (len - 1); i4 < len; i4++) {\n this.points.push(\n Vec.lrp(prevPoint, nextPoint, t2).concat(lerp(prevPoint[2], nextPoint[2], t2))\n );\n }\n this.addNextPoint(nextPoint);\n } else {\n this.tool.previousShape = void 0;\n this.points = [[0, 0, (_b = originPoint[2]) != null ? _b : 0.5]];\n this.shape = new Shape5({\n id: uniqueId(),\n type: Shape5.id,\n parentId: this.app.currentPage.id,\n point: originPoint.slice(0, 2),\n points: this.points,\n isComplete: false,\n fill: this.app.settings.color,\n stroke: this.app.settings.color\n });\n this.shape.setScaleLevel(this.app.settings.scaleLevel);\n this.app.currentPage.addShapes(this.shape);\n }\n });\n __publicField(this, \"onPointerMove\", () => {\n const { shape } = this;\n const { currentPoint, previousPoint } = this.app.inputs;\n if (Vec.isEqual(previousPoint, currentPoint))\n return;\n this.addNextPoint(Vec.sub(currentPoint, shape.props.point).concat(currentPoint[2]));\n });\n __publicField(this, \"onPointerUp\", () => {\n if (!this.shape)\n throw Error(\"Expected a creating shape.\");\n this.app.history.resume();\n this.shape.update({\n isComplete: true,\n points: this.tool.simplify ? PointUtils.simplify2(this.points, this.tool.simplifyTolerance) : this.shape.props.points\n });\n this.tool.previousShape = this.shape;\n this.tool.transition(\"idle\");\n let tool = this.app.selectedTool.id;\n if (tool === \"pencil\" || tool === \"highlighter\") {\n this.persistDebounced();\n } else {\n this.app.persist();\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n if (!this.shape)\n throw Error(\"Expected a creating shape.\");\n this.app.deleteShapes([this.shape]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n addNextPoint(point) {\n const { shape } = this;\n const offset = Vec.min(point, [0, 0]);\n this.points.push(point);\n if (offset[0] < 0 || offset[1] < 0) {\n this.points = this.points.map((pt2) => Vec.sub(pt2, offset).concat(pt2[2]));\n shape.update({\n point: Vec.add(shape.props.point, offset),\n points: this.points\n });\n } else {\n shape.update({\n points: this.points\n });\n }\n }\n};\n__publicField(CreatingState3, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/states\/IdleState.tsx\nvar IdleState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order || this.app.readOnly)\n return;\n this.tool.transition(\"creating\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState3, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/states\/PinchingState.ts\nvar PinchingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"origin\", [0, 0]);\n __publicField(this, \"prevDelta\", [0, 0]);\n __publicField(this, \"onEnter\", (info) => {\n this.prevDelta = info.info.delta;\n this.origin = info.info.point;\n });\n __publicField(this, \"onPinch\", (info) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n __publicField(this, \"onPinchEnd\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PinchingState, \"id\", \"pinching\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/TLDrawTool.tsx\nvar TLDrawTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"simplify\", true);\n __publicField(this, \"simplifyTolerance\", 1);\n __publicField(this, \"previousShape\");\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(TLDrawTool, \"id\", \"draw\");\n__publicField(TLDrawTool, \"states\", [IdleState3, CreatingState3, PinchingState]);\n__publicField(TLDrawTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/states\/ErasingState.tsx\nvar ErasingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"points\", [[0, 0, 0.5]]);\n __publicField(this, \"hitShapes\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"onEnter\", () => {\n const { originPoint } = this.app.inputs;\n this.points = [originPoint];\n this.hitShapes.clear();\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, previousPoint } = this.app.inputs;\n if (Vec.isEqual(previousPoint, currentPoint))\n return;\n this.points.push(currentPoint);\n this.app.shapesInViewport.filter((shape) => shape.hitTestLineSegment(previousPoint, currentPoint)).forEach((shape) => this.hitShapes.add(shape));\n this.app.setErasingShapes(Array.from(this.hitShapes.values()));\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.deleteShapes(Array.from(this.hitShapes.values()));\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.setErasingShapes([]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(ErasingState, \"id\", \"erasing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/states\/IdleState.tsx\nvar IdleState4 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"pointing\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState4, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/states\/PointingState.tsx\nvar PointingState2 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", () => {\n const { currentPoint } = this.app.inputs;\n this.app.setErasingShapes(\n this.app.shapesInViewport.filter((shape) => shape.hitTestPoint(currentPoint))\n );\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"erasing\");\n this.app.setSelectedShapes([]);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n const shapesToDelete = [...this.app.erasingShapes];\n this.app.setErasingShapes([]);\n this.app.deleteShapes(shapesToDelete);\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PointingState2, \"id\", \"pointing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/TLEraseTool.tsx\nvar TLEraseTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLEraseTool, \"id\", \"erase\");\n__publicField(TLEraseTool, \"states\", [IdleState4, PointingState2, ErasingState]);\n__publicField(TLEraseTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLBaseLineBindingState.ts\nvar TLBaseLineBindingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"handle\", {});\n __publicField(this, \"handleId\", \"end\");\n __publicField(this, \"currentShape\", {});\n __publicField(this, \"initialShape\", {});\n __publicField(this, \"bindableShapeIds\", []);\n __publicField(this, \"startBindingShapeId\");\n __publicField(this, \"newStartBindingId\", \"\");\n __publicField(this, \"draggedBindingId\", \"\");\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { shiftKey, previousPoint, originPoint, currentPoint, modKey: modKey2, altKey },\n settings: { snapToGrid }\n } = this.app;\n const shape = this.app.getShapeById(this.initialShape.id);\n const { handles } = this.initialShape;\n const handleId = this.handleId;\n const otherHandleId = this.handleId === \"start\" ? \"end\" : \"start\";\n if (src_default.isEqual(previousPoint, currentPoint))\n return;\n let delta = src_default.sub(currentPoint, originPoint);\n if (shiftKey) {\n const A4 = handles[otherHandleId].point;\n const B3 = handles[handleId].point;\n const C4 = src_default.add(B3, delta);\n const angle = src_default.angle(A4, C4);\n const adjusted = src_default.rotWith(C4, A4, GeomUtils.snapAngleToSegments(angle, 24) - angle);\n delta = src_default.add(delta, src_default.sub(adjusted, C4));\n }\n const nextPoint = src_default.add(handles[handleId].point, delta);\n const handleChanges = {\n [handleId]: __spreadProps(__spreadValues({}, handles[handleId]), {\n point: snapToGrid ? src_default.snap(nextPoint, GRID_SIZE) : src_default.toFixed(nextPoint),\n bindingId: void 0\n })\n };\n let updated = this.currentShape.getHandlesChange(this.initialShape, handleChanges);\n if (!updated)\n return;\n const next = {\n shape: deepMerge(shape.props, updated),\n bindings: {}\n };\n let draggedBinding;\n const draggingHandle = next.shape.handles[handleId];\n const oppositeHandle = next.shape.handles[otherHandleId];\n if (this.startBindingShapeId) {\n let nextStartBinding;\n const startTarget = this.app.getShapeById(this.startBindingShapeId);\n if (startTarget) {\n const center = startTarget.getCenter();\n const startHandle = next.shape.handles.start;\n const endHandle = next.shape.handles.end;\n const rayPoint = src_default.add(startHandle.point, next.shape.point);\n if (src_default.isEqual(rayPoint, center))\n rayPoint[1]++;\n const rayOrigin = center;\n const isInsideShape = startTarget.hitTestPoint(currentPoint);\n const rayDirection = src_default.uni(src_default.sub(rayPoint, rayOrigin));\n const hasStartBinding = this.app.currentPage.bindings[this.newStartBindingId] !== void 0;\n if (!modKey2 && !startTarget.hitTestPoint(src_default.add(next.shape.point, endHandle.point))) {\n nextStartBinding = findBindingPoint(\n shape.props,\n startTarget,\n \"start\",\n this.newStartBindingId,\n center,\n rayOrigin,\n rayDirection,\n isInsideShape\n );\n }\n if (nextStartBinding && !hasStartBinding) {\n next.bindings[this.newStartBindingId] = nextStartBinding;\n next.shape.handles.start.bindingId = nextStartBinding.id;\n } else if (!nextStartBinding && hasStartBinding) {\n console.log(\"removing start binding\");\n delete next.bindings[this.newStartBindingId];\n next.shape.handles.start.bindingId = void 0;\n }\n }\n }\n if (!modKey2) {\n const rayOrigin = src_default.add(oppositeHandle.point, next.shape.point);\n const rayPoint = src_default.add(draggingHandle.point, next.shape.point);\n const rayDirection = src_default.uni(src_default.sub(rayPoint, rayOrigin));\n const startPoint = src_default.add(next.shape.point, next.shape.handles.start.point);\n const endPoint = src_default.add(next.shape.point, next.shape.handles.end.point);\n const targets = this.bindableShapeIds.map((id3) => this.app.getShapeById(id3)).sort((a5, b5) => b5.nonce - a5.nonce).filter((shape2) => {\n return ![startPoint, endPoint].every((point) => shape2.hitTestPoint(point));\n });\n for (const target of targets) {\n draggedBinding = findBindingPoint(\n shape.props,\n target,\n this.handleId,\n this.draggedBindingId,\n rayPoint,\n rayOrigin,\n rayDirection,\n altKey\n );\n if (draggedBinding)\n break;\n }\n }\n if (draggedBinding) {\n next.bindings[this.draggedBindingId] = draggedBinding;\n next.shape = deepMerge(next.shape, {\n handles: {\n [this.handleId]: {\n bindingId: this.draggedBindingId\n }\n }\n });\n } else {\n const currentBindingId = shape.props.handles[this.handleId].bindingId;\n if (currentBindingId !== void 0) {\n delete next.bindings[currentBindingId];\n next.shape = deepMerge(next.shape, {\n handles: {\n [this.handleId]: {\n bindingId: void 0\n }\n }\n });\n }\n }\n updated = this.currentShape.getHandlesChange(next.shape, next.shape.handles);\n transaction(() => {\n var _a3;\n if (updated) {\n this.currentShape.update(updated);\n this.app.currentPage.updateBindings(next.bindings);\n const bindingShapes = Object.values((_a3 = updated.handles) != null ? _a3 : {}).map((handle) => handle.bindingId).map((id3) => this.app.currentPage.bindings[id3]).filter(Boolean).flatMap((binding) => [binding.toId, binding.fromId].filter(Boolean));\n this.app.setBindingShapes(bindingShapes);\n }\n });\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n if (this.currentShape) {\n this.app.setSelectedShapes([this.currentShape]);\n }\n this.app.transition(\"select\");\n this.app.persist();\n });\n __publicField(this, \"onExit\", () => {\n this.app.clearBindingShape();\n this.app.history.resume();\n this.app.persist();\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.deleteShapes([this.currentShape]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(TLBaseLineBindingState, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/states\/CreatingState.tsx\nvar CreatingState4 = class extends TLBaseLineBindingState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", () => {\n var _a3;\n this.app.history.pause();\n this.newStartBindingId = uniqueId();\n this.draggedBindingId = uniqueId();\n const page = this.app.currentPage;\n this.bindableShapeIds = page.getBindableShapes();\n const { Shape: Shape5 } = this.tool;\n const { originPoint } = this.app.inputs;\n const shape = new Shape5(__spreadProps(__spreadValues({}, Shape5.defaultProps), {\n id: uniqueId(),\n type: Shape5.id,\n parentId: this.app.currentPage.id,\n point: this.app.settings.snapToGrid ? src_default.snap(originPoint, GRID_SIZE) : originPoint,\n fill: this.app.settings.color,\n stroke: this.app.settings.color,\n scaleLevel: this.app.settings.scaleLevel\n }));\n this.initialShape = toJS(shape.props);\n this.currentShape = shape;\n this.app.currentPage.addShapes(shape);\n this.app.setSelectedShapes([shape]);\n this.startBindingShapeId = (_a3 = this.bindableShapeIds.map((id3) => this.app.getShapeById(id3)).filter((s4) => PointUtils.pointInBounds(originPoint, s4.bounds))[0]) == null ? void 0 : _a3.id;\n if (this.startBindingShapeId) {\n this.bindableShapeIds.splice(this.bindableShapeIds.indexOf(this.startBindingShapeId), 1);\n this.app.setBindingShapes([this.startBindingShapeId]);\n }\n });\n }\n};\n__publicField(CreatingState4, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/states\/IdleState.tsx\nvar IdleState5 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"pointing\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n __publicField(this, \"onPointerEnter\", (info) => {\n if (info.order)\n return;\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.app.setHoveredShape(info.shape.id);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n if (!(info.handle === \"background\" || info.handle === \"center\")) {\n this.tool.transition(\"hoveringSelectionHandle\", info);\n }\n break;\n }\n }\n });\n __publicField(this, \"onPointerLeave\", (info) => {\n if (info.order)\n return;\n if (info.type === \"shape\" \/* Shape *\/) {\n if (this.app.hoveredId) {\n this.app.setHoveredShape(void 0);\n }\n }\n });\n }\n};\n__publicField(IdleState5, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/states\/PointingState.tsx\nvar PointingState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"creating\");\n this.app.setSelectedShapes(this.app.currentPage.shapes);\n }\n });\n }\n};\n__publicField(PointingState3, \"id\", \"pointing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/TLLineTool.ts\nvar TLLineTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLLineTool, \"id\", \"line\");\n__publicField(TLLineTool, \"states\", [IdleState5, PointingState3, CreatingState4]);\n__publicField(TLLineTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLTextTool\/states\/CreatingState.tsx\nvar CreatingState5 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"creatingShape\");\n __publicField(this, \"aspectRatio\");\n __publicField(this, \"initialBounds\", {});\n __publicField(this, \"onEnter\", () => {\n const {\n currentPage,\n inputs: { originPoint }\n } = this.app;\n const { Shape: Shape5 } = this.tool;\n const shape = new Shape5({\n id: uniqueId(),\n type: Shape5.id,\n parentId: currentPage.id,\n point: [...originPoint],\n text: \"\",\n size: [16, 32],\n isSizeLocked: true,\n fill: this.app.settings.color,\n stroke: this.app.settings.color\n });\n this.creatingShape = shape;\n this.creatingShape.setScaleLevel(this.app.settings.scaleLevel);\n transaction(() => {\n this.app.currentPage.addShapes(shape);\n const point = this.app.settings.snapToGrid ? src_default.snap([...originPoint], GRID_SIZE) : originPoint;\n const { bounds } = shape;\n shape.update({\n point: src_default.sub(point, [bounds.width \/ 2, bounds.height \/ 2])\n });\n this.app.transition(\"select\");\n this.app.setSelectedShapes([shape]);\n this.app.currentState.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n shape: this.creatingShape,\n order: 0\n });\n });\n });\n }\n};\n__publicField(CreatingState5, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLTextTool\/states\/IdleState.tsx\nvar IdleState6 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order || this.app.readOnly)\n return;\n this.tool.transition(\"creating\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState6, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLTextTool\/TLTextTool.ts\nvar TLTextTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLTextTool, \"id\", \"box\");\n__publicField(TLTextTool, \"states\", [IdleState6, CreatingState5]);\n__publicField(TLTextTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLBush.ts\nvar import_rbush = __toESM(require_rbush_min());\nvar TLBush = class extends import_rbush.default {\n constructor() {\n super(...arguments);\n __publicField(this, \"toBBox\", (shape) => shape.rotatedBounds);\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/BrushingState.ts\nvar BrushingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"initialSelectedIds\", []);\n __publicField(this, \"initialSelectedShapes\", []);\n __publicField(this, \"tree\", new TLBush());\n __publicField(this, \"onEnter\", () => {\n const { selectedShapes, currentPage, selectedIds } = this.app;\n this.initialSelectedIds = Array.from(selectedIds.values());\n this.initialSelectedShapes = Array.from(selectedShapes.values());\n this.tree.load(currentPage.shapes);\n });\n __publicField(this, \"onExit\", () => {\n this.initialSelectedIds = [];\n this.tree.clear();\n this.app.setBrush(void 0);\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { shiftKey, ctrlKey, originPoint, currentPoint }\n } = this.app;\n const brushBounds = BoundsUtils.getBoundsFromPoints([currentPoint, originPoint], 0);\n this.app.setBrush(brushBounds);\n const hits = dedupe(\n this.tree.search(brushBounds).filter(\n (shape) => ctrlKey ? BoundsUtils.boundsContain(brushBounds, shape.rotatedBounds) : shape.hitTestBounds(brushBounds)\n ).filter((shape) => shape.type !== \"group\").map((shape) => {\n var _a3;\n return (_a3 = this.app.getParentGroup(shape)) != null ? _a3 : shape;\n })\n );\n if (shiftKey) {\n if (hits.every((hit) => this.initialSelectedShapes.includes(hit))) {\n this.app.setSelectedShapes(this.initialSelectedShapes.filter((hit) => !hits.includes(hit)));\n } else {\n this.app.setSelectedShapes(dedupe([...this.initialSelectedShapes, ...hits]));\n }\n } else {\n this.app.setSelectedShapes(hits);\n }\n this.app.viewport.panToPointWhenNearBounds(currentPoint);\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.setBrush(void 0);\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"handleModifierKey\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.setBrush(void 0);\n this.app.setSelectedShapes(this.initialSelectedIds);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(BrushingState, \"id\", \"brushing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/ContextMenuState.ts\nvar ContextMenuState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n var _a3;\n const {\n selectedIds,\n inputs: { shiftKey }\n } = this.app;\n if (info.type === \"shape\" \/* Shape *\/ && !selectedIds.has(info.shape.id)) {\n const shape = (_a3 = this.app.getParentGroup(info.shape)) != null ? _a3 : info.shape;\n if (shiftKey) {\n this.app.setSelectedShapes([...Array.from(selectedIds.values()), shape.id]);\n return;\n }\n this.app.setSelectedShapes([shape]);\n }\n });\n __publicField(this, \"onPointerDown\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(ContextMenuState, \"id\", \"contextMenu\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/IdleState.ts\nvar IdleState7 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n if (info.fromId === \"pinching\" && this.parent.returnTo) {\n this.app.transition(this.parent.returnTo);\n }\n });\n __publicField(this, \"onExit\", () => {\n });\n __publicField(this, \"onPointerEnter\", (info) => {\n if (info.order)\n return;\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.app.setHoveredShape(info.shape.id);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n if (!(info.handle === \"background\" || info.handle === \"center\")) {\n this.tool.transition(\"hoveringSelectionHandle\", info);\n }\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n this.app.setHoveredShape(void 0);\n break;\n }\n }\n });\n __publicField(this, \"onPointerDown\", (info, event) => {\n const {\n selectedShapes,\n inputs: { ctrlKey }\n } = this.app;\n if (event.button === 2) {\n this.tool.transition(\"contextMenu\", info);\n return;\n }\n if (ctrlKey) {\n this.tool.transition(\"pointingCanvas\");\n return;\n }\n switch (info.type) {\n case \"selection\" \/* Selection *\/: {\n switch (info.handle) {\n case \"center\": {\n break;\n }\n case \"background\": {\n this.tool.transition(\"pointingBoundsBackground\");\n break;\n }\n case \"rotate\": {\n this.tool.transition(\"pointingRotateHandle\");\n break;\n }\n default: {\n this.tool.transition(\"pointingResizeHandle\", info);\n }\n }\n break;\n }\n case \"shape\" \/* Shape *\/: {\n if (selectedShapes.has(info.shape)) {\n this.tool.transition(\"pointingSelectedShape\", info);\n } else {\n const { selectionBounds, inputs } = this.app;\n if (selectionBounds && PointUtils.pointInBounds(inputs.currentPoint, selectionBounds)) {\n this.tool.transition(\"pointingShapeBehindBounds\", info);\n } else {\n this.tool.transition(\"pointingShape\", info);\n }\n }\n break;\n }\n case \"handle\" \/* Handle *\/: {\n this.tool.transition(\"pointingHandle\", info);\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n this.tool.transition(\"pointingCanvas\");\n break;\n }\n case \"minimap\" \/* Minimap *\/: {\n this.tool.transition(\"pointingMinimap\", __spreadValues(__spreadValues({}, event), info));\n break;\n }\n }\n });\n __publicField(this, \"onPointerLeave\", (info) => {\n if (info.order)\n return;\n if (info.type === \"shape\" \/* Shape *\/) {\n if (this.app.hoveredId) {\n this.app.setHoveredShape(void 0);\n }\n }\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onDoubleClick\", (info) => {\n if (info.order || this.app.selectedShapesArray.length !== 1 || this.app.readOnly)\n return;\n const selectedShape = this.app.selectedShapesArray[0];\n if (!selectedShape.canEdit || selectedShape.props.isLocked)\n return;\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.tool.transition(\"editingShape\", info);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n if (this.app.selectedShapesArray.length === 1) {\n this.tool.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n target: selectedShape\n });\n }\n break;\n }\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n const { selectedShapesArray } = this.app;\n switch (e2.key) {\n case \"Enter\": {\n if (selectedShapesArray.length === 1 && selectedShapesArray[0].canEdit && !this.app.readOnly) {\n this.tool.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n shape: selectedShapesArray[0],\n order: 0\n });\n }\n break;\n }\n case \"Escape\": {\n if (selectedShapesArray.length) {\n this.app.setSelectedShapes([]);\n }\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState7, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingShapeState.ts\nvar PointingShapeState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n var _a3;\n const {\n selectedIds,\n inputs: { shiftKey }\n } = this.app;\n const shape = (_a3 = this.app.getParentGroup(info.shape)) != null ? _a3 : info.shape;\n if (shiftKey) {\n this.app.setSelectedShapes([...Array.from(selectedIds.values()), shape.id]);\n } else {\n this.app.setSelectedShapes([shape]);\n }\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingShapeState, \"id\", \"pointingShape\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingBoundsBackgroundState.ts\nvar PointingBoundsBackgroundState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"move\" \/* Move *\/);\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.setSelectedShapes([]);\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingBoundsBackgroundState, \"id\", \"pointingBoundsBackground\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingCanvasState.ts\nvar PointingCanvasState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", () => {\n var _a3;\n const { shiftKey } = this.app.inputs;\n if (!shiftKey) {\n this.app.setSelectedShapes([]);\n this.app.setEditingShape();\n (_a3 = window.getSelection()) == null ? void 0 : _a3.removeAllRanges();\n }\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"brushing\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n if (!this.app.inputs.shiftKey) {\n this.app.setSelectedShapes([]);\n }\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onDoubleClick\", () => {\n this.app.notify(\"canvas-dbclick\", { point: this.app.inputs.originPoint });\n });\n }\n};\n__publicField(PointingCanvasState, \"id\", \"pointingCanvas\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/TranslatingState.ts\nvar TranslatingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"move\" \/* Move *\/);\n __publicField(this, \"isCloning\", false);\n __publicField(this, \"didClone\", false);\n __publicField(this, \"initialPoints\", {});\n __publicField(this, \"initialShapePoints\", {});\n __publicField(this, \"initialClonePoints\", {});\n __publicField(this, \"clones\", []);\n __publicField(this, \"onEnter\", () => {\n var _a3;\n this.app.history.pause();\n const { allSelectedShapesArray, inputs } = this.app;\n this.initialShapePoints = Object.fromEntries(\n allSelectedShapesArray.map(({ id: id3, props: { point } }) => [id3, point.slice()])\n );\n this.initialPoints = this.initialShapePoints;\n document.querySelectorAll(\"input,textarea\").forEach((el) => el.blur());\n (_a3 = document.getSelection()) == null ? void 0 : _a3.empty();\n if (inputs.altKey) {\n this.startCloning();\n } else {\n this.moveSelectedShapesToPointer();\n }\n });\n __publicField(this, \"onExit\", () => {\n this.app.history.resume();\n this.didClone = false;\n this.isCloning = false;\n this.clones = [];\n this.initialPoints = {};\n this.initialShapePoints = {};\n this.initialClonePoints = {};\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { currentPoint }\n } = this.app;\n this.moveSelectedShapesToPointer();\n this.app.viewport.panToPointWhenNearBounds(currentPoint);\n });\n __publicField(this, \"onPointerDown\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Alt\": {\n this.startCloning();\n break;\n }\n case \"Escape\": {\n this.app.allSelectedShapes.forEach((shape) => {\n shape.update({ point: this.initialPoints[shape.id] });\n });\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n __publicField(this, \"onKeyUp\", (info, e2) => {\n switch (e2.key) {\n case \"Alt\": {\n if (!this.isCloning)\n throw Error(\"Expected to be cloning.\");\n const { currentPage, allSelectedShapes } = this.app;\n currentPage.removeShapes(...allSelectedShapes);\n this.initialPoints = this.initialShapePoints;\n this.app.setSelectedShapes(Object.keys(this.initialPoints));\n this.moveSelectedShapesToPointer();\n this.isCloning = false;\n break;\n }\n }\n });\n }\n moveSelectedShapesToPointer() {\n const {\n inputs: { shiftKey, originPoint, currentPoint }\n } = this.app;\n const { initialPoints } = this;\n const delta = Vec.sub(currentPoint, originPoint);\n if (shiftKey) {\n if (Math.abs(delta[0]) < Math.abs(delta[1])) {\n delta[0] = 0;\n } else {\n delta[1] = 0;\n }\n }\n transaction(() => {\n this.app.allSelectedShapesArray.filter((s4) => !s4.props.isLocked).forEach((shape) => {\n let position = Vec.add(initialPoints[shape.id], delta);\n if (this.app.settings.snapToGrid) {\n position = Vec.snap(position, GRID_SIZE);\n }\n shape.update({ point: position });\n });\n });\n }\n startCloning() {\n if (!this.didClone) {\n this.clones = this.app.allSelectedShapesArray.map((shape) => {\n const ShapeClass = this.app.getShapeClass(shape.type);\n if (!ShapeClass)\n throw Error(\"Could not find that shape class.\");\n const clone = new ShapeClass(__spreadProps(__spreadValues({}, shape.serialized), {\n id: uniqueId(),\n type: shape.type,\n point: this.initialPoints[shape.id],\n rotation: shape.props.rotation,\n isLocked: false\n }));\n return clone;\n });\n this.initialClonePoints = Object.fromEntries(\n this.clones.map(({ id: id3, props: { point } }) => [id3, point.slice()])\n );\n this.didClone = true;\n }\n this.app.allSelectedShapes.forEach((shape) => {\n shape.update({ point: this.initialPoints[shape.id] });\n });\n this.initialPoints = this.initialClonePoints;\n this.app.currentPage.addShapes(...this.clones);\n this.app.setSelectedShapes(Object.keys(this.initialClonePoints));\n this.moveSelectedShapesToPointer();\n this.isCloning = true;\n }\n};\n__publicField(TranslatingState, \"id\", \"translating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingSelectedShapeState.ts\nvar PointingSelectedShapeState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"pointedSelectedShape\");\n __publicField(this, \"onEnter\", (info) => {\n this.pointedSelectedShape = info.shape;\n });\n __publicField(this, \"onExit\", () => {\n this.pointedSelectedShape = void 0;\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n const { shiftKey, currentPoint } = this.app.inputs;\n const { selectedShapesArray } = this.app;\n if (!this.pointedSelectedShape)\n throw Error(\"Expected a pointed selected shape\");\n if (shiftKey) {\n const { selectedIds } = this.app;\n const next = Array.from(selectedIds.values());\n next.splice(next.indexOf(this.pointedSelectedShape.id), 1);\n this.app.setSelectedShapes(next);\n } else if (selectedShapesArray.length === 1 && this.pointedSelectedShape.canEdit && !this.app.readOnly && !this.pointedSelectedShape.props.isLocked && this.pointedSelectedShape instanceof TLBoxShape && PointUtils.pointInBounds(currentPoint, this.pointedSelectedShape.bounds)) {\n this.tool.transition(\"editingShape\", {\n shape: this.pointedSelectedShape,\n order: 0,\n type: \"shape\" \/* Shape *\/\n });\n return;\n } else {\n this.app.setSelectedShapes([this.pointedSelectedShape.id]);\n }\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingSelectedShapeState, \"id\", \"pointingSelectedShape\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingResizeHandleState.ts\nvar PointingResizeHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"info\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.info = info;\n this.updateCursor();\n });\n __publicField(this, \"onExit\", () => {\n this.app.cursors.reset();\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"resizing\", this.info);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"hoveringSelectionHandle\", this.info);\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n updateCursor() {\n const rotation = this.app.selectionBounds.rotation;\n const cursor = CURSORS[this.info.handle];\n this.app.cursors.setCursor(cursor, rotation);\n }\n};\n__publicField(PointingResizeHandleState, \"id\", \"pointingResizeHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/ResizingState.ts\nvar _ResizingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"isSingle\", false);\n __publicField(this, \"handle\", \"bottom_right_corner\" \/* BottomRight *\/);\n __publicField(this, \"snapshots\", {});\n __publicField(this, \"initialCommonBounds\", {});\n __publicField(this, \"selectionRotation\", 0);\n __publicField(this, \"resizeType\", \"corner\");\n __publicField(this, \"onEnter\", (info) => {\n var _a3, _b;\n const { history, selectedShapesArray, selectionBounds } = this.app;\n if (!selectionBounds)\n throw Error(\"Expected a selected bounds.\");\n this.handle = info.handle;\n this.resizeType = info.handle === \"left_edge\" \/* Left *\/ || info.handle === \"right_edge\" \/* Right *\/ ? \"horizontal-edge\" : info.handle === \"top_edge\" \/* Top *\/ || info.handle === \"bottom_edge\" \/* Bottom *\/ ? \"vertical-edge\" : \"corner\";\n this.app.cursors.setCursor(\n _ResizingState.CURSORS[info.handle],\n (_a3 = this.app.selectionBounds) == null ? void 0 : _a3.rotation\n );\n history.pause();\n const initialInnerBounds = BoundsUtils.getBoundsFromPoints(\n selectedShapesArray.map((shape) => BoundsUtils.getBoundsCenter(shape.bounds))\n );\n this.isSingle = selectedShapesArray.length === 1;\n this.selectionRotation = this.isSingle ? (_b = selectedShapesArray[0].props.rotation) != null ? _b : 0 : 0;\n this.initialCommonBounds = __spreadValues({}, selectionBounds);\n this.snapshots = Object.fromEntries(\n selectedShapesArray.map((shape) => {\n const bounds = __spreadValues({}, shape.bounds);\n const [cx2, cy] = BoundsUtils.getBoundsCenter(bounds);\n return [\n shape.id,\n {\n props: shape.serialized,\n bounds,\n transformOrigin: [\n (cx2 - this.initialCommonBounds.minX) \/ this.initialCommonBounds.width,\n (cy - this.initialCommonBounds.minY) \/ this.initialCommonBounds.height\n ],\n innerTransformOrigin: [\n (cx2 - initialInnerBounds.minX) \/ initialInnerBounds.width,\n (cy - initialInnerBounds.minY) \/ initialInnerBounds.height\n ],\n isAspectRatioLocked: shape.props.isAspectRatioLocked || Boolean(!shape.canChangeAspectRatio || shape.props.rotation)\n }\n ];\n })\n );\n selectedShapesArray.forEach((shape) => {\n var _a4;\n (_a4 = shape.onResizeStart) == null ? void 0 : _a4.call(shape, { isSingle: this.isSingle });\n });\n });\n __publicField(this, \"onExit\", () => {\n this.app.cursors.reset();\n this.snapshots = {};\n this.initialCommonBounds = {};\n this.selectionRotation = 0;\n this.app.history.resume();\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { altKey, shiftKey, ctrlKey, originPoint, currentPoint }\n } = this.app;\n const { handle, snapshots, initialCommonBounds } = this;\n let delta = Vec.sub(currentPoint, originPoint);\n if (altKey) {\n delta = Vec.mul(delta, 2);\n }\n const firstShape = getFirstFromSet(this.app.selectedShapes);\n const useAspectRatioLock = shiftKey || this.isSingle && (ctrlKey ? !(\"clipping\" in firstShape.props) : !firstShape.canChangeAspectRatio || firstShape.props.isAspectRatioLocked);\n let nextBounds = BoundsUtils.getTransformedBoundingBox(\n initialCommonBounds,\n handle,\n delta,\n this.selectionRotation,\n useAspectRatioLock\n );\n if (altKey) {\n nextBounds = __spreadValues(__spreadValues({}, nextBounds), BoundsUtils.centerBounds(nextBounds, BoundsUtils.getBoundsCenter(initialCommonBounds)));\n }\n const { scaleX, scaleY } = nextBounds;\n let resizeDimension;\n switch (this.resizeType) {\n case \"horizontal-edge\": {\n resizeDimension = Math.abs(scaleX);\n break;\n }\n case \"vertical-edge\": {\n resizeDimension = Math.abs(scaleY);\n break;\n }\n case \"corner\": {\n resizeDimension = Math.min(Math.abs(scaleX), Math.abs(scaleY));\n }\n }\n this.app.selectedShapes.forEach((shape) => {\n var _a3, _b;\n const {\n isAspectRatioLocked,\n props: initialShapeProps,\n bounds: initialShapeBounds,\n transformOrigin,\n innerTransformOrigin\n } = snapshots[shape.id];\n let relativeBounds = BoundsUtils.getRelativeTransformedBoundingBox(\n nextBounds,\n initialCommonBounds,\n initialShapeBounds,\n scaleX < 0,\n scaleY < 0\n );\n const canResizeAny = shape.canResize.some((r4) => r4);\n if (!(canResizeAny || shape.props.isSizeLocked) && this.isSingle) {\n return;\n }\n let scale = [scaleX, scaleY];\n let rotation = (_a3 = initialShapeProps.rotation) != null ? _a3 : 0;\n let center = BoundsUtils.getBoundsCenter(relativeBounds);\n if (!shape.canFlip) {\n scale = Vec.abs(scale);\n }\n if (!shape.canScale) {\n scale = (_b = initialShapeProps.scale) != null ? _b : [1, 1];\n }\n if (rotation && scaleX < 0 && scaleY >= 0 || scaleY < 0 && scaleX >= 0) {\n rotation *= -1;\n }\n if (this.app.settings.snapToGrid && !isAspectRatioLocked) {\n relativeBounds = BoundsUtils.snapBoundsToGrid(relativeBounds, GRID_SIZE);\n }\n shape.onResize(initialShapeProps, {\n center,\n rotation,\n scale,\n bounds: relativeBounds,\n type: handle,\n clip: ctrlKey,\n transformOrigin\n });\n });\n this.updateCursor(scaleX, scaleY);\n this.app.viewport.panToPointWhenNearBounds(currentPoint);\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.selectedShapes.forEach((shape) => {\n shape.update(__spreadValues({}, this.snapshots[shape.id].props));\n });\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n updateCursor(scaleX, scaleY) {\n var _a3, _b, _c, _d;\n const isFlippedX = scaleX < 0 && scaleY >= 0;\n const isFlippedY = scaleY < 0 && scaleX >= 0;\n switch (this.handle) {\n case \"top_left_corner\" \/* TopLeft *\/:\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n if (isFlippedX || isFlippedY) {\n if (this.app.cursors.cursor === \"nwse-resize\" \/* NwseResize *\/) {\n this.app.cursors.setCursor(\"nesw-resize\" \/* NeswResize *\/, (_a3 = this.app.selectionBounds) == null ? void 0 : _a3.rotation);\n }\n } else {\n if (this.app.cursors.cursor === \"nesw-resize\" \/* NeswResize *\/) {\n this.app.cursors.setCursor(\"nwse-resize\" \/* NwseResize *\/, (_b = this.app.selectionBounds) == null ? void 0 : _b.rotation);\n }\n }\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/:\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n if (isFlippedX || isFlippedY) {\n if (this.app.cursors.cursor === \"nesw-resize\" \/* NeswResize *\/) {\n this.app.cursors.setCursor(\"nwse-resize\" \/* NwseResize *\/, (_c = this.app.selectionBounds) == null ? void 0 : _c.rotation);\n }\n } else {\n if (this.app.cursors.cursor === \"nwse-resize\" \/* NwseResize *\/) {\n this.app.cursors.setCursor(\"nesw-resize\" \/* NeswResize *\/, (_d = this.app.selectionBounds) == null ? void 0 : _d.rotation);\n }\n }\n break;\n }\n }\n }\n};\nvar ResizingState = _ResizingState;\n__publicField(ResizingState, \"id\", \"resizing\");\n__publicField(ResizingState, \"CURSORS\", {\n [\"bottom_edge\" \/* Bottom *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"top_edge\" \/* Top *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"left_edge\" \/* Left *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"right_edge\" \/* Right *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"nesw-resize\" \/* NeswResize *\/,\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_left_corner\" \/* TopLeft *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_right_corner\" \/* TopRight *\/]: \"nesw-resize\" \/* NeswResize *\/\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingRotateHandleState.ts\nvar PointingRotateHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"rotate\" \/* Rotate *\/);\n __publicField(this, \"handle\", \"\");\n __publicField(this, \"onEnter\", (info) => {\n this.app.history.pause();\n this.handle = info.handle;\n this.updateCursor();\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"rotating\", { handle: this.handle });\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n updateCursor() {\n this.app.cursors.setCursor(CURSORS[this.handle], this.app.selectionRotation);\n }\n};\n__publicField(PointingRotateHandleState, \"id\", \"pointingRotateHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingShapeBehindBoundsState.ts\nvar PointingShapeBehindBoundsState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"info\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.info = info;\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n const {\n selectedIds,\n inputs: { shiftKey }\n } = this.app;\n if (shiftKey) {\n this.app.setSelectedShapes([...Array.from(selectedIds.values()), this.info.shape.id]);\n } else {\n this.app.setSelectedShapes([this.info.shape.id]);\n }\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingShapeBehindBoundsState, \"id\", \"pointingShapeBehindBounds\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/RotatingState.ts\nvar RotatingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"rotate\" \/* Rotate *\/);\n __publicField(this, \"snapshot\", {});\n __publicField(this, \"initialCommonCenter\", [0, 0]);\n __publicField(this, \"initialCommonBounds\", {});\n __publicField(this, \"initialAngle\", 0);\n __publicField(this, \"initialSelectionRotation\", 0);\n __publicField(this, \"handle\", \"\");\n __publicField(this, \"onEnter\", (info) => {\n const { history, selectedShapesArray, selectionBounds } = this.app;\n if (!selectionBounds)\n throw Error(\"Expected selected bounds.\");\n history.pause();\n this.handle = info.handle;\n this.initialSelectionRotation = this.app.selectionRotation;\n this.initialCommonBounds = __spreadValues({}, selectionBounds);\n this.initialCommonCenter = BoundsUtils.getBoundsCenter(selectionBounds);\n this.initialAngle = Vec.angle(this.initialCommonCenter, this.app.inputs.currentPoint);\n this.snapshot = Object.fromEntries(\n selectedShapesArray.map((shape) => [\n shape.id,\n {\n point: [...shape.props.point],\n center: [...shape.center],\n rotation: shape.props.rotation,\n handles: \"handles\" in shape ? deepCopy(shape.handles) : void 0\n }\n ])\n );\n this.updateCursor();\n });\n __publicField(this, \"onExit\", () => {\n this.app.history.resume();\n this.snapshot = {};\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n selectedShapes,\n inputs: { shiftKey, currentPoint }\n } = this.app;\n const { snapshot, initialCommonCenter, initialAngle, initialSelectionRotation } = this;\n const currentAngle = Vec.angle(initialCommonCenter, currentPoint);\n let angleDelta = currentAngle - initialAngle;\n if (shiftKey) {\n angleDelta = GeomUtils.snapAngleToSegments(angleDelta, 24);\n }\n selectedShapes.forEach((shape) => {\n const initialShape = snapshot[shape.id];\n let initialAngle2 = 0;\n if (shiftKey) {\n const { rotation = 0 } = initialShape;\n initialAngle2 = GeomUtils.snapAngleToSegments(rotation, 24) - rotation;\n }\n const relativeCenter = Vec.sub(initialShape.center, initialShape.point);\n const rotatedCenter = Vec.rotWith(initialShape.center, initialCommonCenter, angleDelta);\n if (\"handles\" in shape) {\n const initialHandles = initialShape.handles;\n const handlePoints = initialHandles.map(\n (handle) => Vec.rotWith(handle.point, relativeCenter, angleDelta)\n );\n const topLeft = BoundsUtils.getCommonTopLeft(handlePoints);\n shape.update({\n point: Vec.add(topLeft, Vec.sub(rotatedCenter, relativeCenter)),\n handles: initialHandles.map((h4, i4) => __spreadProps(__spreadValues({}, h4), {\n point: Vec.sub(handlePoints[i4], topLeft)\n }))\n });\n } else {\n shape.update({\n point: Vec.sub(rotatedCenter, relativeCenter),\n rotation: GeomUtils.clampRadians(\n (initialShape.rotation || 0) + angleDelta + initialAngle2\n )\n });\n }\n });\n const selectionRotation = GeomUtils.clampRadians(initialSelectionRotation + angleDelta);\n this.app.setSelectionRotation(\n shiftKey ? GeomUtils.snapAngleToSegments(selectionRotation, 24) : selectionRotation\n );\n this.updateCursor();\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.selectedShapes.forEach((shape) => {\n shape.update(this.snapshot[shape.id]);\n });\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n updateCursor() {\n this.app.cursors.setCursor(CURSORS[this.handle], this.app.selectionRotation);\n }\n};\n__publicField(RotatingState, \"id\", \"rotating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PinchingState.ts\nvar PinchingState2 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPinch\", (info, event) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n __publicField(this, \"onPinchEnd\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPointerDown\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PinchingState2, \"id\", \"pinching\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/TranslatingHandleState.ts\nvar TranslatingHandleState = class extends TLBaseLineBindingState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grabbing\" \/* Grabbing *\/);\n __publicField(this, \"onEnter\", (info) => {\n this.app.history.pause();\n this.newStartBindingId = uniqueId();\n this.draggedBindingId = uniqueId();\n const page = this.app.currentPage;\n this.bindableShapeIds = page.getBindableShapes();\n this.handleId = info.id;\n this.currentShape = info.shape;\n this.initialShape = toJS(this.currentShape.props);\n this.app.setSelectedShapes([this.currentShape]);\n });\n }\n};\n__publicField(TranslatingHandleState, \"id\", \"translatingHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingHandleState.ts\nvar PointingHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grabbing\" \/* Grabbing *\/);\n __publicField(this, \"info\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.info = info;\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"translatingHandle\", this.info);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingHandleState, \"id\", \"pointingHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/HoveringSelectionHandleState.ts\nvar HoveringSelectionHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"handle\");\n __publicField(this, \"onEnter\", (info) => {\n var _a3;\n this.app.cursors.setCursor(CURSORS[info.handle], (_a3 = this.app.selectionBounds.rotation) != null ? _a3 : 0);\n this.handle = info.handle;\n });\n __publicField(this, \"onExit\", () => {\n this.app.cursors.reset();\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onPointerDown\", (info) => {\n switch (info.type) {\n case \"selection\" \/* Selection *\/: {\n switch (info.handle) {\n case \"center\": {\n break;\n }\n case \"background\": {\n break;\n }\n case \"top_left_resize_corner\" \/* TopLeft *\/:\n case \"top_right_resize_corner\" \/* TopRight *\/:\n case \"bottom_right_resize_corner\" \/* BottomRight *\/:\n case \"bottom_left_resize_corner\" \/* BottomLeft *\/: {\n this.tool.transition(\"pointingRotateHandle\", info);\n break;\n }\n default: {\n this.tool.transition(\"pointingResizeHandle\", info);\n }\n }\n break;\n }\n }\n });\n __publicField(this, \"onPointerLeave\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onDoubleClick\", (info) => {\n var _a3;\n if (info.order)\n return;\n const isSingle = this.app.selectedShapes.size === 1;\n if (!isSingle)\n return;\n const selectedShape = getFirstFromSet(this.app.selectedShapes);\n if (selectedShape.canEdit && !this.app.readOnly && !selectedShape.props.isLocked) {\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.tool.transition(\"editingShape\", info);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n (_a3 = selectedShape.onResetBounds) == null ? void 0 : _a3.call(selectedShape, {\n zoom: this.app.viewport.camera.zoom\n });\n if (this.app.selectedShapesArray.length === 1) {\n this.tool.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n target: selectedShape\n });\n }\n break;\n }\n }\n } else {\n const asset = selectedShape.props.assetId ? this.app.assets[selectedShape.props.assetId] : void 0;\n selectedShape.onResetBounds({ asset, zoom: this.app.viewport.camera.zoom });\n this.tool.transition(\"idle\");\n }\n });\n }\n};\n__publicField(HoveringSelectionHandleState, \"id\", \"hoveringSelectionHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/EditingShapeState.ts\nvar EditingShapeState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"editingShape\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.editingShape = info.shape;\n this.app.setEditingShape(info.shape);\n });\n __publicField(this, \"onExit\", () => {\n var _a3;\n if (this.editingShape && \"text\" in this.editingShape.props) {\n const newText = this.editingShape.props[\"text\"].trim();\n if (newText === \"\" && this.editingShape.props.type === \"text\") {\n this.app.deleteShapes([this.editingShape]);\n } else {\n this.editingShape.onResetBounds();\n this.editingShape.update({\n text: newText\n });\n }\n }\n this.app.persist();\n this.app.setEditingShape();\n (_a3 = document.querySelector(\".tl-canvas\")) == null ? void 0 : _a3.focus();\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onPointerDown\", (info) => {\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n if (info.shape === this.editingShape)\n return;\n this.tool.transition(\"idle\", info);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n break;\n }\n case \"handle\" \/* Handle *\/: {\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n if (!info.order) {\n this.tool.transition(\"idle\", info);\n }\n break;\n }\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n transaction(() => {\n e2.stopPropagation();\n this.app.setSelectedShapes([this.editingShape]);\n this.tool.transition(\"idle\");\n });\n break;\n }\n }\n });\n }\n};\n__publicField(EditingShapeState, \"id\", \"editingShape\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingMinimapState.ts\nvar PointingMinimapState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"minimapZoom\", 1);\n __publicField(this, \"minimapRect\", {\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0,\n width: 0,\n height: 0\n });\n __publicField(this, \"getCameraPoint\", (clientPoint) => {\n const minimapContainer = document.querySelector(\".tl-preview-minimap svg\");\n const minimapCamera = document.querySelector(\n \".tl-preview-minimap #minimap-camera-rect\"\n );\n if (minimapContainer && minimapCamera) {\n const rect = minimapContainer.getBoundingClientRect();\n this.minimapRect.height = rect.height;\n this.minimapRect.width = rect.width;\n this.minimapRect.minX = rect.left;\n this.minimapRect.minY = rect.top;\n this.minimapRect.maxX = rect.right;\n this.minimapRect.maxY = rect.bottom;\n this.minimapZoom = +minimapContainer.dataset.commonBoundWidth \/ this.minimapRect.width;\n const cursorInSvg = Vec.sub(clientPoint, [this.minimapRect.minX, this.minimapRect.minY]);\n const minimapCameraRect = minimapCamera.getBoundingClientRect();\n const minimapCameraCenter = [\n minimapCameraRect.left + minimapCameraRect.width \/ 2,\n minimapCameraRect.top + minimapCameraRect.height \/ 2\n ];\n const delta = Vec.mul(Vec.sub(cursorInSvg, minimapCameraCenter), this.minimapZoom);\n return Vec.sub(this.app.viewport.camera.point, delta);\n }\n return;\n });\n __publicField(this, \"onEnter\", (info) => {\n const newCameraPoint = this.getCameraPoint([info.clientX, info.clientY]);\n if (newCameraPoint) {\n this.app.viewport.update({\n point: newCameraPoint\n });\n } else {\n this.tool.transition(\"idle\");\n }\n });\n __publicField(this, \"onPointerMove\", (info, e2) => {\n if (\"clientX\" in e2) {\n const newCameraPoint = this.getCameraPoint([e2.clientX, e2.clientY]);\n if (newCameraPoint) {\n this.app.viewport.update({\n point: newCameraPoint\n });\n }\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PointingMinimapState, \"id\", \"pointingMinimap\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/TLSelectTool.tsx\nvar TLSelectTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"returnTo\", \"\");\n __publicField(this, \"onEnter\", (info) => {\n this.returnTo = info == null ? void 0 : info.returnTo;\n });\n }\n};\n__publicField(TLSelectTool, \"id\", \"select\");\n__publicField(TLSelectTool, \"initial\", \"idle\");\n__publicField(TLSelectTool, \"shortcut\", \"whiteboard\/select\");\n__publicField(TLSelectTool, \"states\", [\n IdleState7,\n BrushingState,\n ContextMenuState,\n PointingCanvasState,\n PointingShapeState,\n PointingShapeBehindBoundsState,\n PointingSelectedShapeState,\n PointingBoundsBackgroundState,\n HoveringSelectionHandleState,\n PointingResizeHandleState,\n PointingRotateHandleState,\n PointingMinimapState,\n PointingHandleState,\n TranslatingHandleState,\n TranslatingState,\n ResizingState,\n RotatingState,\n RotatingState,\n PinchingState2,\n EditingShapeState\n]);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/PanningState.tsx\nvar PanningState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grabbing\" \/* Grabbing *\/);\n __publicField(this, \"originalScreenPoint\", []);\n __publicField(this, \"originalCameraPoint\", []);\n __publicField(this, \"prevState\", \"idle\");\n __publicField(this, \"onEnter\", (info) => {\n this.prevState = info == null ? void 0 : info.prevState;\n this.originalScreenPoint = this.app.inputs.currentScreenPoint;\n this.originalCameraPoint = this.app.viewport.camera.point;\n });\n __publicField(this, \"onPointerMove\", (_2, e2) => {\n const delta = src_default.sub(this.originalScreenPoint, this.app.inputs.currentScreenPoint);\n this.app.viewport.update({\n point: src_default.sub(this.originalCameraPoint, src_default.div(delta, this.app.viewport.camera.zoom))\n });\n });\n __publicField(this, \"onPointerUp\", () => {\n var _a3;\n this.tool.transition((_a3 = this.prevState) != null ? _a3 : \"idle\");\n });\n }\n};\n__publicField(PanningState, \"id\", \"panning\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/IdleState.tsx\nvar IdleState8 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n if (this.parent.prevTool && info.exit) {\n this.app.setCurrentState(this.parent.prevTool);\n setTimeout(() => {\n this.app.cursors.reset();\n this.app.cursors.setCursor(this.parent.prevTool.cursor);\n });\n }\n });\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"panning\");\n });\n }\n};\n__publicField(IdleState8, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/IdleHoldState.tsx\nvar IdleHoldState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"panning\", { prevState: \"idleHold\" });\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(IdleHoldState, \"id\", \"idleHold\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/PinchingState.ts\nvar PinchingState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"origin\", [0, 0]);\n __publicField(this, \"prevDelta\", [0, 0]);\n __publicField(this, \"onEnter\", (info) => {\n this.prevDelta = info.info.delta;\n this.origin = info.info.point;\n });\n __publicField(this, \"onPinch\", (info) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n __publicField(this, \"onPinchEnd\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PinchingState3, \"id\", \"pinching\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/TLMoveTool.ts\nvar TLMoveTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grab\" \/* Grab *\/);\n __publicField(this, \"prevTool\", null);\n __publicField(this, \"onEnter\", (info) => {\n this.prevTool = info == null ? void 0 : info.prevTool;\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(TLMoveTool, \"id\", \"move\");\n__publicField(TLMoveTool, \"shortcut\", \"whiteboard\/pan\");\n__publicField(TLMoveTool, \"states\", [IdleState8, IdleHoldState, PanningState, PinchingState3]);\n__publicField(TLMoveTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLPage\/TLPage.ts\nvar TLPage = class {\n constructor(app, props = {}) {\n __publicField(this, \"lastShapesNounces\", null);\n __publicField(this, \"app\");\n __publicField(this, \"id\");\n __publicField(this, \"name\");\n __publicField(this, \"shapes\", []);\n __publicField(this, \"bindings\", {});\n __publicField(this, \"nonce\", 0);\n __publicField(this, \"bringForward\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n shapesToMove.sort((a5, b5) => this.shapes.indexOf(b5) - this.shapes.indexOf(a5)).map((shape) => this.shapes.indexOf(shape)).forEach((index3) => {\n if (index3 === this.shapes.length - 1)\n return;\n const next = this.shapes[index3 + 1];\n if (shapesToMove.includes(next))\n return;\n const t2 = this.shapes[index3];\n this.shapes[index3] = this.shapes[index3 + 1];\n this.shapes[index3 + 1] = t2;\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"sendBackward\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n shapesToMove.sort((a5, b5) => this.shapes.indexOf(a5) - this.shapes.indexOf(b5)).map((shape) => this.shapes.indexOf(shape)).forEach((index3) => {\n if (index3 === 0)\n return;\n const next = this.shapes[index3 - 1];\n if (shapesToMove.includes(next))\n return;\n const t2 = this.shapes[index3];\n this.shapes[index3] = this.shapes[index3 - 1];\n this.shapes[index3 - 1] = t2;\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"bringToFront\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n this.shapes = this.shapes.filter((shape) => !shapesToMove.includes(shape)).concat(shapesToMove);\n this.app.persist();\n return this;\n });\n __publicField(this, \"sendToBack\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n this.shapes = shapesToMove.concat(this.shapes.filter((shape) => !shapesToMove.includes(shape)));\n this.app.persist();\n return this;\n });\n __publicField(this, \"flip\", (shapes2, direction) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n const commonBounds = BoundsUtils.getCommonBounds(shapesToMove.map((shape) => shape.bounds));\n shapesToMove.forEach((shape) => {\n var _a3;\n const relativeBounds = BoundsUtils.getRelativeTransformedBoundingBox(\n commonBounds,\n commonBounds,\n shape.bounds,\n direction === \"horizontal\",\n direction === \"vertical\"\n );\n if (shape.serialized) {\n shape.onResize(shape.serialized, {\n bounds: relativeBounds,\n center: BoundsUtils.getBoundsCenter(relativeBounds),\n rotation: (_a3 = shape.props.rotation) != null ? _a3 : 0 * -1,\n type: \"top_left_corner\" \/* TopLeft *\/,\n scale: shape.canFlip && shape.props.scale ? direction === \"horizontal\" ? [-shape.props.scale[0], 1] : [1, -shape.props.scale[1]] : [1, 1],\n clip: false,\n transformOrigin: [0.5, 0.5]\n });\n }\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"getShapeById\", (id3) => {\n const shape = this.shapes.find((shape2) => shape2.id === id3);\n return shape;\n });\n __publicField(this, \"cleanup\", (changedShapeIds) => {\n const bindingsToUpdate = getRelatedBindings(this.bindings, changedShapeIds);\n const visitedShapes = \/* @__PURE__ *\/ new Set();\n let shapeChanged = false;\n let bindingChanged = false;\n const newBindings = deepCopy(this.bindings);\n bindingsToUpdate.forEach((binding) => {\n var _a3;\n if (!this.bindings[binding.id]) {\n return;\n }\n const toShape = this.getShapeById(binding.toId);\n const fromShape = this.getShapeById(binding.fromId);\n if (!(toShape && fromShape)) {\n delete newBindings[binding.id];\n bindingChanged = true;\n return;\n }\n if (visitedShapes.has(fromShape.id)) {\n return;\n }\n const fromDelta = this.updateArrowBindings(fromShape);\n visitedShapes.add(fromShape.id);\n if (fromDelta) {\n const nextShape = __spreadValues(__spreadValues({}, fromShape.props), fromDelta);\n shapeChanged = true;\n (_a3 = this.getShapeById(nextShape.id)) == null ? void 0 : _a3.update(nextShape, false, (0, import_fast_deep_equal.default)(fromDelta == null ? void 0 : fromDelta.handles, fromShape == null ? void 0 : fromShape.props.handles));\n }\n });\n Object.keys(newBindings).forEach((id3) => {\n const binding = this.bindings[id3];\n const relatedShapes = this.shapes.filter(\n (shape) => shape.id === binding.fromId || shape.id === binding.toId\n );\n if (relatedShapes.length === 0) {\n delete newBindings[id3];\n bindingChanged = true;\n }\n });\n if (bindingChanged) {\n this.update({\n bindings: newBindings\n });\n }\n if (shapeChanged || bindingChanged) {\n this.app.persist(true);\n }\n });\n __publicField(this, \"updateArrowBindings\", (lineShape) => {\n var _a3, _b, _c;\n const result = {\n start: deepCopy(lineShape.props.handles.start),\n end: deepCopy(lineShape.props.handles.end)\n };\n let start = {\n isBound: false,\n handle: lineShape.props.handles.start,\n point: src_default.add(lineShape.props.handles.start.point, lineShape.props.point)\n };\n let end = {\n isBound: false,\n handle: lineShape.props.handles.end,\n point: src_default.add(lineShape.props.handles.end.point, lineShape.props.point)\n };\n if (lineShape.props.handles.start.bindingId) {\n const hasDecoration = ((_a3 = lineShape.props.decorations) == null ? void 0 : _a3.start) !== void 0;\n const handle = lineShape.props.handles.start;\n const binding = this.bindings[lineShape.props.handles.start.bindingId];\n const target = this.getShapeById(binding == null ? void 0 : binding.toId);\n if (target) {\n const bounds = target.getBounds();\n const expandedBounds = target.getExpandedBounds();\n const intersectBounds = BoundsUtils.expandBounds(\n bounds,\n hasDecoration ? binding.distance : 1\n );\n const { minX, minY, width, height } = expandedBounds;\n const anchorPoint = src_default.add(\n [minX, minY],\n src_default.mulV(\n [width, height],\n src_default.rotWith(binding.point, [0.5, 0.5], target.props.rotation || 0)\n )\n );\n start = {\n isBound: true,\n hasDecoration,\n binding,\n handle,\n point: anchorPoint,\n target,\n bounds,\n expandedBounds,\n intersectBounds,\n center: target.getCenter()\n };\n }\n }\n if (lineShape.props.handles.end.bindingId) {\n const hasDecoration = ((_b = lineShape.props.decorations) == null ? void 0 : _b.end) !== void 0;\n const handle = lineShape.props.handles.end;\n const binding = this.bindings[lineShape.props.handles.end.bindingId];\n const target = this.getShapeById(binding == null ? void 0 : binding.toId);\n if (target) {\n const bounds = target.getBounds();\n const expandedBounds = target.getExpandedBounds();\n const intersectBounds = hasDecoration ? BoundsUtils.expandBounds(bounds, binding.distance) : bounds;\n const { minX, minY, width, height } = expandedBounds;\n const anchorPoint = src_default.add(\n [minX, minY],\n src_default.mulV(\n [width, height],\n src_default.rotWith(binding.point, [0.5, 0.5], target.props.rotation || 0)\n )\n );\n end = {\n isBound: true,\n hasDecoration,\n binding,\n handle,\n point: anchorPoint,\n target,\n bounds,\n expandedBounds,\n intersectBounds,\n center: target.getCenter()\n };\n }\n }\n for (const ID of [\"end\", \"start\"]) {\n const A4 = ID === \"start\" ? start : end;\n const B3 = ID === \"start\" ? end : start;\n if (A4.isBound) {\n if (!A4.binding.distance) {\n result[ID].point = src_default.sub(A4.point, lineShape.props.point);\n } else {\n const direction = src_default.uni(src_default.sub(A4.point, B3.point));\n switch (A4.target.type) {\n default: {\n const hits = intersectRayBounds(\n B3.point,\n direction,\n A4.intersectBounds,\n A4.target.props.rotation\n ).filter((int) => int.didIntersect).map((int) => int.points[0]).sort((a5, b5) => src_default.dist(a5, B3.point) - src_default.dist(b5, B3.point));\n if (!hits[0])\n continue;\n let bHit = void 0;\n if (B3.isBound) {\n const bHits = intersectRayBounds(\n B3.point,\n direction,\n B3.intersectBounds,\n B3.target.props.rotation\n ).filter((int) => int.didIntersect).map((int) => int.points[0]).sort((a5, b5) => src_default.dist(a5, B3.point) - src_default.dist(b5, B3.point));\n bHit = bHits[0];\n }\n if (B3.isBound && (hits.length < 2 || bHit && hits[0] && Math.ceil(src_default.dist(hits[0], bHit)) < BINDING_DISTANCE * 2.5 || BoundsUtils.boundsContain(A4.expandedBounds, B3.expandedBounds) || BoundsUtils.boundsCollide(A4.expandedBounds, B3.expandedBounds))) {\n const shortArrowDirection = src_default.uni(src_default.sub(B3.point, A4.point));\n const shortArrowHits = intersectRayBounds(\n A4.point,\n shortArrowDirection,\n A4.bounds,\n A4.target.props.rotation\n ).filter((int) => int.didIntersect).map((int) => int.points[0]);\n if (!shortArrowHits[0])\n continue;\n result[ID].point = src_default.toFixed(src_default.sub(shortArrowHits[0], lineShape.props.point));\n result[ID === \"start\" ? \"end\" : \"start\"].point = src_default.toFixed(\n src_default.add(\n src_default.sub(shortArrowHits[0], lineShape.props.point),\n src_default.mul(\n shortArrowDirection,\n Math.min(\n src_default.dist(shortArrowHits[0], B3.point),\n BINDING_DISTANCE * 2.5 * (BoundsUtils.boundsContain(B3.bounds, A4.intersectBounds) ? -1 : 1)\n )\n )\n )\n );\n } else if (!B3.isBound && (hits[0] && src_default.dist(hits[0], B3.point) < BINDING_DISTANCE * 2.5 || PointUtils.pointInBounds(B3.point, A4.intersectBounds))) {\n const shortArrowDirection = src_default.uni(src_default.sub(A4.center, B3.point));\n return (_c = lineShape.getHandlesChange) == null ? void 0 : _c.call(lineShape, lineShape.props, {\n [ID]: __spreadProps(__spreadValues({}, lineShape.props.handles[ID]), {\n point: src_default.toFixed(\n src_default.add(\n src_default.sub(B3.point, lineShape.props.point),\n src_default.mul(shortArrowDirection, BINDING_DISTANCE * 2.5)\n )\n )\n })\n });\n } else if (hits[0]) {\n result[ID].point = src_default.toFixed(src_default.sub(hits[0], lineShape.props.point));\n }\n }\n }\n }\n }\n }\n return lineShape.getHandlesChange(lineShape.props, result);\n });\n const { id: id3, name, shapes: shapes2 = [], bindings = {}, nonce } = props;\n this.id = id3;\n this.name = name;\n this.bindings = Object.assign({}, bindings);\n this.app = app;\n this.nonce = nonce || 0;\n this.addShapes(...shapes2);\n makeObservable(this);\n autorun(() => {\n const newShapesNouncesMap = this.shapes.length > 0 ? Object.fromEntries(this.shapes.map((shape) => [shape.id, shape.nonce])) : null;\n if (this.lastShapesNounces && newShapesNouncesMap) {\n const lastShapesNounces = this.lastShapesNounces;\n const allIds = \/* @__PURE__ *\/ new Set([\n ...Object.keys(newShapesNouncesMap),\n ...Object.keys(lastShapesNounces)\n ]);\n const changedShapeIds = [...allIds].filter((s4) => {\n return lastShapesNounces[s4] !== newShapesNouncesMap[s4];\n });\n requestAnimationFrame(() => {\n this.cleanup(changedShapeIds);\n });\n }\n if (newShapesNouncesMap) {\n this.lastShapesNounces = newShapesNouncesMap;\n }\n });\n }\n get serialized() {\n return {\n id: this.id,\n name: this.name,\n shapes: this.shapes.map((shape) => shape.serialized).filter((s4) => !!s4).map((s4) => toJS(s4)),\n bindings: deepCopy(this.bindings),\n nonce: this.nonce\n };\n }\n get shapesById() {\n return Object.fromEntries(this.shapes.map((shape) => [shape.id, shape]));\n }\n update(props) {\n Object.assign(this, props);\n return this;\n }\n updateBindings(bindings) {\n Object.assign(this.bindings, bindings);\n return this;\n }\n updateShapesIndex(shapesIndex) {\n this.shapes.sort((a5, b5) => shapesIndex.indexOf(a5.id) - shapesIndex.indexOf(b5.id));\n return this;\n }\n addShapes(...shapes2) {\n if (shapes2.length === 0)\n return;\n const shapeInstances = \"getBounds\" in shapes2[0] ? shapes2 : shapes2.map((shape) => {\n const ShapeClass = this.app.getShapeClass(shape.type);\n return new ShapeClass(shape);\n });\n this.shapes.push(...shapeInstances);\n return shapeInstances;\n }\n parseShapesArg(shapes2) {\n if (typeof shapes2[0] === \"string\") {\n return this.shapes.filter((shape) => shapes2.includes(shape.id));\n }\n return shapes2;\n }\n removeShapes(...shapes2) {\n const shapeInstances = this.parseShapesArg(shapes2);\n this.shapes = this.shapes.filter((shape) => !shapeInstances.includes(shape));\n return shapeInstances;\n }\n getBindableShapes() {\n return this.shapes.filter((shape) => shape.canBind).sort((a5, b5) => b5.nonce - a5.nonce).map((s4) => s4.id);\n }\n};\n__decorateClass([\n observable\n], TLPage.prototype, \"id\", 2);\n__decorateClass([\n observable\n], TLPage.prototype, \"name\", 2);\n__decorateClass([\n observable\n], TLPage.prototype, \"shapes\", 2);\n__decorateClass([\n observable\n], TLPage.prototype, \"bindings\", 2);\n__decorateClass([\n computed\n], TLPage.prototype, \"serialized\", 1);\n__decorateClass([\n computed\n], TLPage.prototype, \"shapesById\", 1);\n__decorateClass([\n observable\n], TLPage.prototype, \"nonce\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"update\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"updateBindings\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"updateShapesIndex\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"addShapes\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"removeShapes\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"bringForward\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"sendBackward\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"bringToFront\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"sendToBack\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"cleanup\", 2);\nfunction getRelatedBindings(bindings, ids) {\n const changedShapeIds = new Set(ids);\n const bindingsArr = Object.values(bindings);\n const bindingsToUpdate = new Set(\n bindingsArr.filter(\n (binding) => changedShapeIds.has(binding.toId) || changedShapeIds.has(binding.fromId)\n )\n );\n let prevSize = bindingsToUpdate.size;\n let delta = -1;\n while (delta !== 0) {\n bindingsToUpdate.forEach((binding) => {\n const fromId = binding.fromId;\n for (const otherBinding of bindingsArr) {\n if (otherBinding.fromId === fromId) {\n bindingsToUpdate.add(otherBinding);\n }\n if (otherBinding.toId === fromId) {\n bindingsToUpdate.add(otherBinding);\n }\n }\n });\n delta = bindingsToUpdate.size - prevSize;\n prevSize = bindingsToUpdate.size;\n }\n return Array.from(bindingsToUpdate.values());\n}\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLInputs.ts\nvar TLInputs = class {\n constructor() {\n __publicField(this, \"shiftKey\", false);\n __publicField(this, \"ctrlKey\", false);\n __publicField(this, \"modKey\", false);\n __publicField(this, \"altKey\", false);\n __publicField(this, \"spaceKey\", false);\n __publicField(this, \"isPinching\", false);\n __publicField(this, \"currentScreenPoint\", [0, 0]);\n __publicField(this, \"currentPoint\", [0, 0]);\n __publicField(this, \"previousScreenPoint\", [0, 0]);\n __publicField(this, \"previousPoint\", [0, 0]);\n __publicField(this, \"originScreenPoint\", [0, 0]);\n __publicField(this, \"originPoint\", [0, 0]);\n __publicField(this, \"pointerIds\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"state\", \"idle\");\n __publicField(this, \"containerOffset\", [0, 0]);\n __publicField(this, \"onPointerDown\", (pagePoint, event) => {\n this.pointerIds.add(event.pointerId);\n this.updateModifiers(event);\n this.originScreenPoint = this.currentScreenPoint;\n this.originPoint = pagePoint;\n this.state = \"pointing\";\n });\n __publicField(this, \"onPointerMove\", (pagePoint, event) => {\n if (this.state === \"pinching\")\n return;\n if (this.state === \"panning\") {\n this.state = \"idle\";\n }\n this.updateModifiers(event);\n this.previousPoint = this.currentPoint;\n this.currentPoint = pagePoint;\n });\n __publicField(this, \"onPointerUp\", (pagePoint, event) => {\n this.pointerIds.clear();\n this.updateModifiers(event);\n this.state = \"idle\";\n });\n __publicField(this, \"onKeyDown\", (event) => {\n this.updateModifiers(event);\n switch (event.key) {\n case \" \": {\n this.spaceKey = true;\n break;\n }\n }\n });\n __publicField(this, \"onKeyUp\", (event) => {\n this.updateModifiers(event);\n switch (event.key) {\n case \" \": {\n this.spaceKey = false;\n break;\n }\n }\n });\n __publicField(this, \"onPinchStart\", (pagePoint, event) => {\n this.updateModifiers(event);\n this.state = \"pinching\";\n });\n __publicField(this, \"onPinch\", (pagePoint, event) => {\n if (this.state !== \"pinching\")\n return;\n this.updateModifiers(event);\n });\n __publicField(this, \"onPinchEnd\", (pagePoint, event) => {\n if (this.state !== \"pinching\")\n return;\n this.updateModifiers(event);\n this.state = \"idle\";\n });\n makeObservable(this);\n }\n updateContainerOffset(containerOffset) {\n Object.assign(this.containerOffset, containerOffset);\n }\n updateModifiers(event) {\n if (!event.isPrimary) {\n return;\n }\n if (\"clientX\" in event) {\n this.previousScreenPoint = this.currentScreenPoint;\n this.currentScreenPoint = src_default.sub([event.clientX, event.clientY], this.containerOffset);\n }\n if (\"shiftKey\" in event) {\n this.shiftKey = event.shiftKey;\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.modKey = modKey(event);\n }\n }\n};\n__decorateClass([\n observable\n], TLInputs.prototype, \"shiftKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"ctrlKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"modKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"altKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"spaceKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"isPinching\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"currentScreenPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"currentPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"previousScreenPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"previousPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"originScreenPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"originPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"state\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"containerOffset\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"updateContainerOffset\", 1);\n__decorateClass([\n action\n], TLInputs.prototype, \"updateModifiers\", 1);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPointerDown\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPointerMove\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPointerUp\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onKeyDown\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onKeyUp\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPinchStart\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPinch\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPinchEnd\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLViewport.ts\nvar ease = (x4) => {\n return -(Math.cos(Math.PI * x4) - 1) \/ 2;\n};\nvar elapsedProgress = (t2, duration = 100) => {\n return ease(Vec.clamp(t2 \/ duration, 0, 1));\n};\nvar _TLViewport = class {\n constructor() {\n __publicField(this, \"bounds\", {\n minX: 0,\n minY: 0,\n maxX: 1080,\n maxY: 720,\n width: 1080,\n height: 720\n });\n __publicField(this, \"camera\", {\n point: [0, 0],\n zoom: 1\n });\n __publicField(this, \"updateBounds\", (bounds) => {\n this.bounds = bounds;\n return this;\n });\n __publicField(this, \"panCamera\", (delta) => {\n return this.update({\n point: Vec.sub(this.camera.point, Vec.div(delta, this.camera.zoom))\n });\n });\n __publicField(this, \"panToPointWhenNearBounds\", (point) => {\n const threshold = Vec.div([_TLViewport.panThreshold, _TLViewport.panThreshold], this.camera.zoom);\n const deltaMax = Vec.sub([this.currentView.maxX, this.currentView.maxY], Vec.add(point, threshold));\n const deltaMin = Vec.sub([this.currentView.minX, this.currentView.minY], Vec.sub(point, threshold));\n const deltaX = deltaMax[0] < 0 ? deltaMax[0] : deltaMin[0] > 0 ? deltaMin[0] : 0;\n const deltaY = deltaMax[1] < 0 ? deltaMax[1] : deltaMin[1] > 0 ? deltaMin[1] : 0;\n this.panCamera(Vec.mul([deltaX, deltaY], -_TLViewport.panMultiplier * this.camera.zoom));\n });\n __publicField(this, \"update\", ({ point, zoom }) => {\n if (point !== void 0 && !isNaN(point[0]) && !isNaN(point[1]))\n this.camera.point = point;\n if (zoom !== void 0 && !isNaN(zoom))\n this.camera.zoom = Math.min(4, Math.max(0.1, zoom));\n return this;\n });\n __publicField(this, \"getPagePoint\", (point) => {\n const { camera, bounds } = this;\n return Vec.sub(Vec.div(Vec.sub(point, [bounds.minX, bounds.minY]), camera.zoom), camera.point);\n });\n __publicField(this, \"getScreenPoint\", (point) => {\n const { camera } = this;\n return Vec.mul(Vec.add(point, camera.point), camera.zoom);\n });\n __publicField(this, \"onZoom\", (point, zoom, animate = false) => {\n return this.pinchZoom(point, [0, 0], zoom, animate);\n });\n __publicField(this, \"pinchZoom\", (point, delta, zoom, animate = false) => {\n const { camera } = this;\n const nextPoint = Vec.sub(camera.point, Vec.div(delta, camera.zoom));\n zoom = Vec.clamp(zoom, _TLViewport.minZoom, _TLViewport.maxZoom);\n const p0 = Vec.div(point, camera.zoom);\n const p1 = Vec.div(point, zoom);\n const newPoint = Vec.toFixed(Vec.add(nextPoint, Vec.sub(p1, p0)));\n if (animate) {\n this.animateCamera({ point: newPoint, zoom });\n } else {\n this.update({ point: newPoint, zoom });\n }\n return this;\n });\n __publicField(this, \"setZoom\", (zoom, animate = false) => {\n const { bounds } = this;\n const center = [bounds.width \/ 2, bounds.height \/ 2];\n this.onZoom(center, zoom, animate);\n });\n __publicField(this, \"zoomIn\", () => {\n const { camera } = this;\n this.setZoom(camera.zoom \/ ZOOM_UPDATE_FACTOR, true);\n });\n __publicField(this, \"zoomOut\", () => {\n const { camera } = this;\n this.setZoom(camera.zoom * ZOOM_UPDATE_FACTOR, true);\n });\n __publicField(this, \"resetZoom\", () => {\n this.setZoom(1, true);\n return this;\n });\n __publicField(this, \"animateCamera\", ({ point, zoom }) => {\n return this.animateToViewport({\n minX: -point[0],\n minY: -point[1],\n maxX: this.bounds.width \/ zoom - point[0],\n maxY: this.bounds.height \/ zoom - point[1],\n width: this.bounds.width \/ zoom,\n height: this.bounds.height \/ zoom\n });\n });\n __publicField(this, \"animateToViewport\", (view) => {\n const startTime = performance.now();\n const oldView = __spreadValues({}, this.currentView);\n const step = () => {\n const elapsed = performance.now() - startTime;\n const progress = elapsedProgress(elapsed);\n const next = {\n minX: oldView.minX + (view.minX - oldView.minX) * progress,\n minY: oldView.minY + (view.minY - oldView.minY) * progress,\n maxX: oldView.maxX + (view.maxX - oldView.maxX) * progress,\n maxY: oldView.maxY + (view.maxY - oldView.maxY) * progress\n };\n const point = [-next.minX, -next.minY];\n const zoom = this.bounds.width \/ (next.maxX - next.minX);\n this.update({ point, zoom });\n if (progress < 1) {\n requestAnimationFrame(step);\n }\n };\n step();\n });\n __publicField(this, \"zoomToBounds\", ({ width, height, minX, minY }) => {\n const { bounds, camera } = this;\n let zoom = Math.min(\n (bounds.width - FIT_TO_SCREEN_PADDING) \/ width,\n (bounds.height - FIT_TO_SCREEN_PADDING) \/ height\n );\n zoom = Math.min(\n 1,\n Math.max(\n _TLViewport.minZoom,\n camera.zoom === zoom || camera.zoom < 1 ? Math.min(1, zoom) : zoom\n )\n );\n const delta = [\n (bounds.width - width * zoom) \/ 2 \/ zoom,\n (bounds.height - height * zoom) \/ 2 \/ zoom\n ];\n const point = Vec.add([-minX, -minY], delta);\n this.animateCamera({ point, zoom });\n });\n makeObservable(this);\n }\n get currentView() {\n const {\n bounds,\n camera: { point, zoom }\n } = this;\n const w4 = bounds.width \/ zoom;\n const h4 = bounds.height \/ zoom;\n return {\n minX: -point[0],\n minY: -point[1],\n maxX: w4 - point[0],\n maxY: h4 - point[1],\n width: w4,\n height: h4\n };\n }\n};\nvar TLViewport = _TLViewport;\n__publicField(TLViewport, \"minZoom\", 0.1);\n__publicField(TLViewport, \"maxZoom\", 4);\n__publicField(TLViewport, \"panMultiplier\", 0.05);\n__publicField(TLViewport, \"panThreshold\", 100);\n__decorateClass([\n observable\n], TLViewport.prototype, \"bounds\", 2);\n__decorateClass([\n observable\n], TLViewport.prototype, \"camera\", 2);\n__decorateClass([\n action\n], TLViewport.prototype, \"updateBounds\", 2);\n__decorateClass([\n action\n], TLViewport.prototype, \"update\", 2);\n__decorateClass([\n computed\n], TLViewport.prototype, \"currentView\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLApi\/TLApi.ts\nvar TLApi = class {\n constructor(app) {\n __publicField(this, \"app\");\n __publicField(this, \"editShape\", (shape) => {\n if (!(shape == null ? void 0 : shape.props.isLocked))\n this.app.transition(\"select\").selectedTool.transition(\"editingShape\", { shape });\n return this;\n });\n __publicField(this, \"hoverShape\", (shape) => {\n this.app.setHoveredShape(shape);\n return this;\n });\n __publicField(this, \"createShapes\", (...shapes2) => {\n this.app.createShapes(shapes2);\n return this;\n });\n __publicField(this, \"updateShapes\", (...shapes2) => {\n this.app.updateShapes(shapes2);\n return this;\n });\n __publicField(this, \"deleteShapes\", (...shapes2) => {\n this.app.deleteShapes(shapes2.length ? shapes2 : this.app.selectedShapesArray);\n return this;\n });\n __publicField(this, \"selectShapes\", (...shapes2) => {\n this.app.setSelectedShapes(shapes2);\n return this;\n });\n __publicField(this, \"deselectShapes\", (...shapes2) => {\n const ids = typeof shapes2[0] === \"string\" ? shapes2 : shapes2.map((shape) => shape.id);\n this.app.setSelectedShapes(\n this.app.selectedShapesArray.filter((shape) => !ids.includes(shape.id))\n );\n return this;\n });\n __publicField(this, \"flipHorizontal\", (...shapes2) => {\n this.app.flipHorizontal(shapes2);\n return this;\n });\n __publicField(this, \"flipVertical\", (...shapes2) => {\n this.app.flipVertical(shapes2);\n return this;\n });\n __publicField(this, \"selectAll\", () => {\n this.app.setSelectedShapes(\n this.app.currentPage.shapes.filter((s4) => !this.app.shapesInGroups().includes(s4))\n );\n return this;\n });\n __publicField(this, \"deselectAll\", () => {\n this.app.setSelectedShapes([]);\n return this;\n });\n __publicField(this, \"zoomIn\", () => {\n this.app.viewport.zoomIn();\n return this;\n });\n __publicField(this, \"zoomOut\", () => {\n this.app.viewport.zoomOut();\n return this;\n });\n __publicField(this, \"resetZoom\", () => {\n this.app.viewport.resetZoom();\n return this;\n });\n __publicField(this, \"zoomToFit\", () => {\n const { shapes: shapes2 } = this.app.currentPage;\n if (shapes2.length === 0)\n return this;\n const commonBounds = BoundsUtils.getCommonBounds(shapes2.map((shape) => shape.bounds));\n this.app.viewport.zoomToBounds(commonBounds);\n return this;\n });\n __publicField(this, \"cameraToCenter\", () => {\n const { shapes: shapes2 } = this.app.currentPage;\n if (shapes2.length === 0)\n return this;\n const commonBounds = BoundsUtils.getCommonBounds(shapes2.map((shape) => shape.bounds));\n this.app.viewport.update({\n point: src_default.add(src_default.neg(BoundsUtils.getBoundsCenter(commonBounds)), [\n this.app.viewport.currentView.width \/ 2,\n this.app.viewport.currentView.height \/ 2\n ])\n });\n return this;\n });\n __publicField(this, \"zoomToSelection\", () => {\n const { selectionBounds } = this.app;\n if (!selectionBounds)\n return this;\n this.app.viewport.zoomToBounds(selectionBounds);\n return this;\n });\n __publicField(this, \"resetZoomToCursor\", () => {\n const viewport = this.app.viewport;\n viewport.animateCamera({\n zoom: 1,\n point: src_default.sub(this.app.inputs.originScreenPoint, this.app.inputs.originPoint)\n });\n return this;\n });\n __publicField(this, \"toggleGrid\", () => {\n const { settings } = this.app;\n settings.update({ showGrid: !settings.showGrid });\n return this;\n });\n __publicField(this, \"toggleSnapToGrid\", () => {\n const { settings } = this.app;\n settings.update({ snapToGrid: !settings.snapToGrid });\n return this;\n });\n __publicField(this, \"togglePenMode\", () => {\n const { settings } = this.app;\n settings.update({ penMode: !settings.penMode });\n return this;\n });\n __publicField(this, \"setColor\", (color) => {\n const { settings } = this.app;\n settings.update({ color });\n this.app.selectedShapesArray.forEach((s4) => {\n if (!s4.props.isLocked)\n s4.update({ fill: color, stroke: color });\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"setScaleLevel\", (scaleLevel) => {\n const { settings } = this.app;\n settings.update({ scaleLevel });\n this.app.selectedShapes.forEach((shape) => {\n if (!shape.props.isLocked)\n shape.setScaleLevel(scaleLevel);\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"undo\", () => {\n this.app.undo();\n return this;\n });\n __publicField(this, \"redo\", () => {\n this.app.redo();\n return this;\n });\n __publicField(this, \"persist\", () => {\n this.app.persist();\n return this;\n });\n __publicField(this, \"createNewLineBinding\", (source, target) => {\n return this.app.createNewLineBinding(source, target);\n });\n __publicField(this, \"clone\", (direction) => {\n if (this.app.readOnly || this.app.selectedShapesArray.length !== 1 || !Object.values(Geometry).some((geometry) => geometry === this.app.selectedShapesArray[0].type))\n return;\n const shape = this.app.allSelectedShapesArray[0];\n const ShapeClass = this.app.getShapeClass(shape.type);\n const { minX, minY, maxX, maxY, width, height } = shape.bounds;\n const spacing = 100;\n let point = [0, 0];\n switch (direction) {\n case \"down\" \/* Down *\/: {\n point = [minX, maxY + spacing];\n break;\n }\n case \"up\" \/* Up *\/: {\n point = [minX, minY - spacing - height];\n break;\n }\n case \"left\" \/* Left *\/: {\n point = [minX - spacing - width, minY];\n break;\n }\n case \"right\" \/* Right *\/: {\n point = [maxX + spacing, minY];\n break;\n }\n }\n const clone = new ShapeClass(__spreadProps(__spreadValues({}, shape.serialized), {\n id: uniqueId(),\n nonce: Date.now(),\n refs: [],\n label: \"\",\n point\n }));\n this.app.history.pause();\n this.app.currentPage.addShapes(clone);\n this.app.createNewLineBinding(shape, clone);\n this.app.history.resume();\n this.app.persist();\n setTimeout(() => this.editShape(clone));\n });\n __publicField(this, \"cloneShapes\", ({\n shapes: shapes2,\n assets,\n bindings,\n point = [0, 0]\n }) => {\n const commonBounds = BoundsUtils.getCommonBounds(\n shapes2.filter((s4) => s4.type !== \"group\").map((shape) => {\n var _a3, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n return {\n minX: (_b = (_a3 = shape.point) == null ? void 0 : _a3[0]) != null ? _b : point[0],\n minY: (_d = (_c = shape.point) == null ? void 0 : _c[1]) != null ? _d : point[1],\n width: (_f = (_e2 = shape.size) == null ? void 0 : _e2[0]) != null ? _f : 4,\n height: (_h = (_g = shape.size) == null ? void 0 : _g[1]) != null ? _h : 4,\n maxX: ((_j = (_i = shape.point) == null ? void 0 : _i[0]) != null ? _j : point[0]) + ((_l = (_k = shape.size) == null ? void 0 : _k[0]) != null ? _l : 4),\n maxY: ((_n = (_m = shape.point) == null ? void 0 : _m[1]) != null ? _n : point[1]) + ((_p = (_o = shape.size) == null ? void 0 : _o[1]) != null ? _p : 4)\n };\n })\n );\n const clonedShapes = shapes2.map((shape) => {\n return __spreadProps(__spreadValues({}, shape), {\n id: uniqueId(),\n point: [\n point[0] + shape.point[0] - commonBounds.minX,\n point[1] + shape.point[1] - commonBounds.minY\n ]\n });\n });\n clonedShapes.forEach((s4) => {\n var _a3;\n if (s4.children && ((_a3 = s4.children) == null ? void 0 : _a3.length) > 0) {\n s4.children = s4.children.map((oldId) => {\n var _a4;\n return (_a4 = clonedShapes[shapes2.findIndex((s5) => s5.id === oldId)]) == null ? void 0 : _a4.id;\n }).filter(isNonNullable);\n }\n });\n const clonedBindings = [];\n clonedShapes.flatMap((s4) => {\n var _a3;\n return Object.values((_a3 = s4.handles) != null ? _a3 : {});\n }).forEach((handle) => {\n if (!handle.bindingId) {\n return;\n }\n const binding = bindings[handle.bindingId];\n if (binding) {\n const oldFromIdx = shapes2.findIndex((s4) => s4.id === binding.fromId);\n const oldToIdx = shapes2.findIndex((s4) => s4.id === binding.toId);\n if (binding && oldFromIdx !== -1 && oldToIdx !== -1) {\n const newBinding = __spreadProps(__spreadValues({}, binding), {\n id: uniqueId(),\n fromId: clonedShapes[oldFromIdx].id,\n toId: clonedShapes[oldToIdx].id\n });\n clonedBindings.push(newBinding);\n handle.bindingId = newBinding.id;\n } else {\n handle.bindingId = void 0;\n }\n } else {\n console.warn(\"binding not found\", handle.bindingId);\n }\n });\n const clonedAssets = assets.filter((asset) => {\n return clonedShapes.some((shape) => shape.assetId === asset.id);\n });\n return {\n shapes: clonedShapes,\n assets: clonedAssets,\n bindings: clonedBindings\n };\n });\n __publicField(this, \"getClonedShapesFromTldrString\", (text, point) => {\n const safeParseJson = (json) => {\n try {\n return JSON.parse(json);\n } catch (e2) {\n return null;\n }\n };\n const getWhiteboardsTldrFromText = (text2) => {\n var _a3;\n const innerText = (_a3 = text2.match(\/<whiteboard-tldr>(.*)<\\\/whiteboard-tldr>\/)) == null ? void 0 : _a3[1];\n if (innerText) {\n return safeParseJson(innerText);\n }\n };\n try {\n const data = getWhiteboardsTldrFromText(text);\n if (!data)\n return null;\n const { shapes: shapes2, bindings, assets } = data;\n return this.cloneShapes({\n shapes: shapes2,\n bindings,\n assets,\n point\n });\n } catch (err) {\n console.log(err);\n }\n return null;\n });\n __publicField(this, \"cloneShapesIntoCurrentPage\", (opts) => {\n const data = this.cloneShapes(opts);\n if (data) {\n this.addClonedShapes(data);\n }\n return this;\n });\n __publicField(this, \"addClonedShapes\", (opts) => {\n const { shapes: shapes2, assets, bindings } = opts;\n if (assets.length > 0) {\n this.app.createAssets(assets);\n }\n if (shapes2.length > 0) {\n this.app.createShapes(shapes2);\n }\n this.app.currentPage.updateBindings(Object.fromEntries(bindings.map((b5) => [b5.id, b5])));\n this.app.selectedTool.transition(\"idle\");\n return this;\n });\n __publicField(this, \"addClonedShapesFromTldrString\", (text, point) => {\n const data = this.getClonedShapesFromTldrString(text, point);\n if (data) {\n this.addClonedShapes(data);\n }\n return this;\n });\n __publicField(this, \"doGroup\", (shapes2 = this.app.allSelectedShapesArray) => {\n if (this.app.readOnly)\n return;\n const selectedGroups = [\n ...shapes2.filter((s4) => s4.type === \"group\"),\n ...shapes2.map((s4) => this.app.getParentGroup(s4))\n ].filter(isNonNullable);\n this.app.currentPage.removeShapes(...selectedGroups);\n const selectedShapes = shapes2.filter((s4) => s4.type !== \"group\");\n if (selectedShapes.length > 1) {\n const ShapeGroup = this.app.getShapeClass(\"group\");\n const group = new ShapeGroup({\n id: uniqueId(),\n type: ShapeGroup.id,\n parentId: this.app.currentPage.id,\n children: selectedShapes.map((s4) => s4.id)\n });\n this.app.currentPage.addShapes(group);\n this.app.setSelectedShapes([group]);\n this.app.bringForward(selectedShapes);\n }\n this.app.persist();\n });\n __publicField(this, \"unGroup\", (shapes2 = this.app.allSelectedShapesArray) => {\n if (this.app.readOnly)\n return;\n const selectedGroups = [\n ...shapes2.filter((s4) => s4.type === \"group\"),\n ...shapes2.map((s4) => this.app.getParentGroup(s4))\n ].filter(isNonNullable);\n const shapesInGroups = this.app.shapesInGroups(selectedGroups);\n if (selectedGroups.length > 0) {\n this.app.currentPage.removeShapes(...selectedGroups);\n this.app.persist();\n this.app.setSelectedShapes(shapesInGroups);\n }\n });\n __publicField(this, \"convertShapes\", (type, shapes2 = this.app.allSelectedShapesArray) => {\n const ShapeClass = this.app.getShapeClass(type);\n this.app.currentPage.removeShapes(...shapes2);\n const clones = shapes2.map((s4) => {\n return new ShapeClass(__spreadProps(__spreadValues({}, s4.serialized), {\n type,\n nonce: Date.now()\n }));\n });\n this.app.currentPage.addShapes(...clones);\n this.app.persist();\n this.app.setSelectedShapes(clones);\n });\n __publicField(this, \"setCollapsed\", (collapsed, shapes2 = this.app.allSelectedShapesArray) => {\n shapes2.forEach((shape) => {\n if (shape.props.type === \"logseq-portal\")\n shape.setCollapsed(collapsed);\n });\n this.app.persist();\n });\n this.app = app;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLCursors.ts\nvar TLCursors = class {\n constructor() {\n __publicField(this, \"cursor\", \"default\" \/* Default *\/);\n __publicField(this, \"rotation\", 0);\n __publicField(this, \"reset\", () => {\n this.cursor = \"default\" \/* Default *\/;\n });\n __publicField(this, \"setCursor\", (cursor, rotation = 0) => {\n if (cursor === this.cursor && rotation === this.rotation)\n return;\n this.cursor = cursor;\n this.rotation = rotation;\n });\n __publicField(this, \"setRotation\", (rotation) => {\n if (rotation === this.rotation)\n return;\n this.rotation = rotation;\n });\n makeObservable(this);\n }\n};\n__decorateClass([\n observable\n], TLCursors.prototype, \"cursor\", 2);\n__decorateClass([\n observable\n], TLCursors.prototype, \"rotation\", 2);\n__decorateClass([\n action\n], TLCursors.prototype, \"reset\", 2);\n__decorateClass([\n action\n], TLCursors.prototype, \"setCursor\", 2);\n__decorateClass([\n action\n], TLCursors.prototype, \"setRotation\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLHistory.ts\nvar TLHistory = class {\n constructor(app) {\n __publicField(this, \"app\");\n __publicField(this, \"stack\", []);\n __publicField(this, \"isPaused\", true);\n __publicField(this, \"pause\", () => {\n if (this.isPaused)\n return;\n this.isPaused = true;\n });\n __publicField(this, \"resume\", () => {\n if (!this.isPaused)\n return;\n this.isPaused = false;\n });\n __publicField(this, \"persist\", (replace2 = false) => {\n if (this.isPaused || this.creating)\n return;\n this.app.notify(\"persist\", { replace: replace2 });\n });\n __publicField(this, \"undo\", () => {\n if (this.isPaused)\n return;\n if (this.app.selectedTool.currentState.id !== \"idle\")\n return;\n if (this.app.appUndo) {\n this.app.appUndo();\n }\n });\n __publicField(this, \"redo\", () => {\n if (this.isPaused)\n return;\n if (this.app.selectedTool.currentState.id !== \"idle\")\n return;\n if (this.app.appRedo) {\n this.app.appRedo();\n }\n });\n __publicField(this, \"instantiateShape\", (serializedShape) => {\n const ShapeClass = this.app.getShapeClass(serializedShape.type);\n return new ShapeClass(serializedShape);\n });\n __publicField(this, \"deserialize\", (snapshot) => {\n transaction(() => {\n var _a3;\n const { pages } = snapshot;\n const wasPaused = this.isPaused;\n this.pause();\n const newSelectedIds = [...this.app.selectedIds];\n try {\n const pagesMap = new Map(this.app.pages);\n const pagesToAdd = [];\n for (const serializedPage of pages) {\n const page = pagesMap.get(serializedPage.id);\n if (page !== void 0) {\n const shapesMap = new Map(page.shapes.map((shape) => [shape.props.id, shape]));\n const shapesToAdd = [];\n for (const serializedShape of serializedPage.shapes) {\n const shape = shapesMap.get(serializedShape.id);\n if (shape !== void 0) {\n if (shape.nonce !== serializedShape.nonce) {\n shape.update(serializedShape, true);\n shape.nonce = serializedShape.nonce;\n shape.setLastSerialized(serializedShape);\n }\n shapesMap.delete(serializedShape.id);\n } else {\n shapesToAdd.push(this.instantiateShape(serializedShape));\n }\n }\n if (shapesMap.size > 0 && !this.app.selectedTool.isInAny(\"creating\", \"editingShape\")) {\n page.removeShapes(...shapesMap.values());\n }\n if (shapesToAdd.length > 0)\n page.addShapes(...shapesToAdd);\n pagesMap.delete(serializedPage.id);\n page.updateBindings(serializedPage.bindings);\n page.nonce = (_a3 = serializedPage.nonce) != null ? _a3 : 0;\n } else {\n const { id: id3, name, shapes: shapes2, bindings, nonce } = serializedPage;\n pagesToAdd.push(\n new TLPage(this.app, {\n id: id3,\n name,\n nonce,\n bindings,\n shapes: shapes2.map((serializedShape) => {\n return this.instantiateShape(serializedShape);\n })\n })\n );\n }\n }\n if (pagesToAdd.length > 0)\n this.app.addPages(pagesToAdd);\n if (pagesMap.size > 0)\n this.app.removePages(Array.from(pagesMap.values()));\n this.app.setSelectedShapes(newSelectedIds).setErasingShapes([]);\n } catch (e2) {\n console.warn(e2);\n }\n if (!wasPaused)\n this.resume();\n });\n });\n this.app = app;\n makeObservable(this);\n }\n get creating() {\n return this.app.selectedTool.currentState.id === \"creating\";\n }\n};\n__decorateClass([\n observable\n], TLHistory.prototype, \"stack\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"persist\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"undo\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"redo\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"deserialize\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLSettings.ts\nvar TLSettings = class {\n constructor() {\n __publicField(this, \"mode\", \"light\");\n __publicField(this, \"showGrid\", true);\n __publicField(this, \"snapToGrid\", true);\n __publicField(this, \"penMode\", false);\n __publicField(this, \"scaleLevel\", \"md\");\n __publicField(this, \"color\", \"\");\n makeObservable(this);\n }\n update(props) {\n Object.assign(this, props);\n }\n};\n__decorateClass([\n observable\n], TLSettings.prototype, \"mode\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"showGrid\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"snapToGrid\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"penMode\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"scaleLevel\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"color\", 2);\n__decorateClass([\n action\n], TLSettings.prototype, \"update\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLApp\/TLApp.ts\nvar TLApp = class extends TLRootState {\n constructor(serializedApp, Shapes, Tools, readOnly) {\n var _a3, _b;\n super();\n __publicField(this, \"uuid\", uniqueId());\n __publicField(this, \"readOnly\");\n __publicField(this, \"api\");\n __publicField(this, \"inputs\", new TLInputs());\n __publicField(this, \"cursors\", new TLCursors());\n __publicField(this, \"viewport\", new TLViewport());\n __publicField(this, \"settings\", new TLSettings());\n __publicField(this, \"Tools\", []);\n __publicField(this, \"history\", new TLHistory(this));\n __publicField(this, \"persist\", this.history.persist);\n __publicField(this, \"undo\", this.history.undo);\n __publicField(this, \"redo\", this.history.redo);\n __publicField(this, \"saving\", false);\n __publicField(this, \"saveState\", () => {\n if (this.history.isPaused)\n return;\n this.saving = true;\n requestAnimationFrame(() => {\n if (this.saving) {\n this.persist();\n this.saving = false;\n }\n });\n });\n __publicField(this, \"load\", () => {\n this.notify(\"load\", null);\n return this;\n });\n __publicField(this, \"save\", () => {\n this.notify(\"save\", null);\n return this;\n });\n __publicField(this, \"pages\", \/* @__PURE__ *\/ new Map([\n [\"page\", new TLPage(this, { id: \"page\", name: \"page\", shapes: [], bindings: {} })]\n ]));\n __publicField(this, \"getPageById\", (pageId) => {\n const page = this.pages.get(pageId);\n if (!page)\n throw Error(`Could not find a page named ${pageId}.`);\n return page;\n });\n __publicField(this, \"getShapeById\", (id3, pageId = this.currentPage.id) => {\n var _a3;\n const shape = (_a3 = this.getPageById(pageId)) == null ? void 0 : _a3.shapesById[id3];\n return shape;\n });\n __publicField(this, \"createShapes\", (shapes2) => {\n if (this.readOnly)\n return this;\n const newShapes = this.currentPage.addShapes(...shapes2);\n if (newShapes)\n this.notify(\"create-shapes\", newShapes);\n this.persist();\n return this;\n });\n __publicField(this, \"updateShapes\", (shapes2) => {\n if (this.readOnly)\n return this;\n shapes2.forEach((shape) => {\n const oldShape = this.getShapeById(shape.id);\n oldShape == null ? void 0 : oldShape.update(shape);\n if (shape.type !== (oldShape == null ? void 0 : oldShape.type)) {\n this.api.convertShapes(shape.type, [oldShape]);\n }\n });\n this.persist();\n return this;\n });\n __publicField(this, \"deleteShapes\", (shapes2) => {\n if (shapes2.length === 0 || this.readOnly)\n return this;\n const normalizedShapes = shapes2.map((shape) => typeof shape === \"string\" ? this.getShapeById(shape) : shape).filter(isNonNullable).filter((s4) => !s4.props.isLocked);\n const shapesInGroups = this.shapesInGroups(normalizedShapes);\n normalizedShapes.forEach((shape) => {\n if (this.getParentGroup(shape)) {\n shapesInGroups.push(shape);\n }\n });\n let ids = new Set([...normalizedShapes, ...shapesInGroups].map((s4) => s4.id));\n shapesInGroups.forEach((shape) => {\n var _a3;\n const parentGroup = this.getParentGroup(shape);\n if (parentGroup) {\n const newChildren = (_a3 = parentGroup.props.children) == null ? void 0 : _a3.filter(\n (id3) => id3 !== shape.id\n );\n if (!newChildren || (newChildren == null ? void 0 : newChildren.length) <= 1) {\n ids.add(parentGroup.id);\n } else {\n parentGroup.update({ children: newChildren });\n }\n }\n });\n const deleteBinding = (shapeA, shapeB) => {\n var _a3;\n if ([...ids].includes(shapeA) && ((_a3 = this.getShapeById(shapeB)) == null ? void 0 : _a3.type) === \"line\")\n ids.add(shapeB);\n };\n this.currentPage.shapes.filter((s4) => !s4.props.isLocked).flatMap((s4) => {\n var _a3;\n return Object.values((_a3 = s4.props.handles) != null ? _a3 : {});\n }).flatMap((h4) => h4.bindingId).filter(isNonNullable).map((binding) => {\n var _a3, _b;\n const toId = (_a3 = this.currentPage.bindings[binding]) == null ? void 0 : _a3.toId;\n const fromId = (_b = this.currentPage.bindings[binding]) == null ? void 0 : _b.fromId;\n if (toId && fromId) {\n deleteBinding(toId, fromId);\n deleteBinding(fromId, toId);\n }\n });\n const allShapesToDelete = [...ids].map((id3) => this.getShapeById(id3));\n this.setSelectedShapes(this.selectedShapesArray.filter((shape) => !ids.has(shape.id)));\n const removedShapes = this.currentPage.removeShapes(...allShapesToDelete);\n if (removedShapes)\n this.notify(\"delete-shapes\", removedShapes);\n this.persist();\n return this;\n });\n __publicField(this, \"bringForward\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.bringForward(shapes2);\n return this;\n });\n __publicField(this, \"sendBackward\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.sendBackward(shapes2);\n return this;\n });\n __publicField(this, \"sendToBack\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.sendToBack(shapes2);\n return this;\n });\n __publicField(this, \"bringToFront\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.bringToFront(shapes2);\n return this;\n });\n __publicField(this, \"flipHorizontal\", (shapes2 = this.selectedShapesArray) => {\n this.currentPage.flip(shapes2, \"horizontal\");\n return this;\n });\n __publicField(this, \"flipVertical\", (shapes2 = this.selectedShapesArray) => {\n this.currentPage.flip(shapes2, \"vertical\");\n return this;\n });\n __publicField(this, \"align\", (type, shapes2 = this.selectedShapesArray) => {\n if (shapes2.length < 2 || this.readOnly)\n return this;\n const boundsForShapes = shapes2.map((shape) => {\n const bounds = shape.getBounds();\n return {\n id: shape.id,\n point: [bounds.minX, bounds.minY],\n bounds\n };\n });\n const commonBounds = BoundsUtils.getCommonBounds(boundsForShapes.map(({ bounds }) => bounds));\n const midX = commonBounds.minX + commonBounds.width \/ 2;\n const midY = commonBounds.minY + commonBounds.height \/ 2;\n const deltaMap = Object.fromEntries(\n boundsForShapes.map(({ id: id3, point, bounds }) => {\n return [\n id3,\n {\n prev: point,\n next: {\n [\"top\" \/* Top *\/]: [point[0], commonBounds.minY],\n [\"centerVertical\" \/* CenterVertical *\/]: [point[0], midY - bounds.height \/ 2],\n [\"bottom\" \/* Bottom *\/]: [point[0], commonBounds.maxY - bounds.height],\n [\"left\" \/* Left *\/]: [commonBounds.minX, point[1]],\n [\"centerHorizontal\" \/* CenterHorizontal *\/]: [midX - bounds.width \/ 2, point[1]],\n [\"right\" \/* Right *\/]: [commonBounds.maxX - bounds.width, point[1]]\n }[type]\n }\n ];\n })\n );\n shapes2.forEach((shape) => {\n if (deltaMap[shape.id])\n shape.update({ point: deltaMap[shape.id].next });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"distribute\", (type, shapes2 = this.selectedShapesArray) => {\n if (shapes2.length < 2 || this.readOnly)\n return this;\n const deltaMap = Object.fromEntries(\n BoundsUtils.getDistributions(shapes2, type).map((d4) => [d4.id, d4])\n );\n shapes2.forEach((shape) => {\n if (deltaMap[shape.id])\n shape.update({ point: deltaMap[shape.id].next });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"packIntoRectangle\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length < 2 || this.readOnly)\n return this;\n const deltaMap = Object.fromEntries(\n BoundsUtils.getPackedDistributions(shapes2).map((d4) => [d4.id, d4])\n );\n shapes2.forEach((shape) => {\n if (deltaMap[shape.id])\n shape.update({ point: deltaMap[shape.id].next });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"setLocked\", (locked) => {\n if (this.selectedShapesArray.length === 0 || this.readOnly)\n return this;\n this.selectedShapesArray.forEach((shape) => {\n shape.update({ isLocked: locked });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"assets\", {});\n __publicField(this, \"removeUnusedAssets\", () => {\n const usedAssets = this.getCleanUpAssets();\n Object.keys(this.assets).forEach((assetId) => {\n if (!usedAssets.some((asset) => asset.id === assetId)) {\n delete this.assets[assetId];\n }\n });\n this.persist();\n return this;\n });\n __publicField(this, \"copy\", () => {\n if (this.selectedShapesArray.length > 0 && !this.editingShape) {\n const selectedShapes = this.allSelectedShapesArray;\n const jsonString = JSON.stringify({\n shapes: selectedShapes.map((shape) => shape.serialized),\n assets: this.getCleanUpAssets().filter((asset) => {\n return selectedShapes.some((shape) => shape.props.assetId === asset.id);\n }),\n bindings: toJS(this.currentPage.bindings)\n });\n const tldrawString = encodeURIComponent(`<whiteboard-tldr>${jsonString}<\/whiteboard-tldr>`);\n const shapeBlockRefs = this.selectedShapesArray.map((s4) => `((${s4.props.id}))`).join(\" \");\n this.notify(\"copy\", {\n text: shapeBlockRefs,\n html: tldrawString\n });\n }\n });\n __publicField(this, \"paste\", (e2, shiftKey) => {\n var _a3;\n if (!this.editingShape && !this.readOnly) {\n this.notify(\"paste\", {\n point: this.inputs.currentPoint,\n shiftKey: !!shiftKey,\n dataTransfer: (_a3 = e2 == null ? void 0 : e2.clipboardData) != null ? _a3 : void 0\n });\n }\n });\n __publicField(this, \"cut\", () => {\n this.copy();\n this.api.deleteShapes();\n });\n __publicField(this, \"drop\", (dataTransfer, point) => {\n this.notify(\"drop\", {\n dataTransfer,\n point: point ? this.viewport.getPagePoint(point) : BoundsUtils.getBoundsCenter(this.viewport.currentView)\n });\n return void 0;\n });\n __publicField(this, \"selectTool\", (id3, data = {}) => {\n if (!this.readOnly || [\"select\", \"move\"].includes(id3))\n this.transition(id3, data);\n });\n __publicField(this, \"editingId\");\n __publicField(this, \"setEditingShape\", (shape) => {\n this.editingId = typeof shape === \"string\" ? shape : shape == null ? void 0 : shape.id;\n return this;\n });\n __publicField(this, \"clearEditingState\", () => {\n this.selectedTool.transition(\"idle\");\n return this.setEditingShape();\n });\n __publicField(this, \"hoveredId\");\n __publicField(this, \"setHoveredShape\", (shape) => {\n this.hoveredId = typeof shape === \"string\" ? shape : shape == null ? void 0 : shape.id;\n return this;\n });\n __publicField(this, \"selectedIds\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"selectedShapes\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"selectionRotation\", 0);\n __publicField(this, \"setSelectedShapes\", (shapes2) => {\n var _a3;\n const { selectedIds, selectedShapes } = this;\n selectedIds.clear();\n selectedShapes.clear();\n if (shapes2[0] && typeof shapes2[0] === \"string\") {\n ;\n shapes2.forEach((s4) => selectedIds.add(s4));\n } else {\n ;\n shapes2.forEach((s4) => selectedIds.add(s4.id));\n }\n const newSelectedShapes = this.currentPage.shapes.filter((shape) => selectedIds.has(shape.id));\n newSelectedShapes.forEach((s4) => selectedShapes.add(s4));\n if (newSelectedShapes.length === 1) {\n this.selectionRotation = (_a3 = newSelectedShapes[0].props.rotation) != null ? _a3 : 0;\n } else {\n this.selectionRotation = 0;\n }\n if (shapes2.length === 0) {\n this.setEditingShape();\n }\n return this;\n });\n __publicField(this, \"erasingIds\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"erasingShapes\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"setErasingShapes\", (shapes2) => {\n const { erasingIds, erasingShapes } = this;\n erasingIds.clear();\n erasingShapes.clear();\n if (shapes2[0] && typeof shapes2[0] === \"string\") {\n ;\n shapes2.forEach((s4) => erasingIds.add(s4));\n } else {\n ;\n shapes2.forEach((s4) => erasingIds.add(s4.id));\n }\n const newErasingShapes = this.currentPage.shapes.filter((shape) => erasingIds.has(shape.id));\n newErasingShapes.forEach((s4) => erasingShapes.add(s4));\n return this;\n });\n __publicField(this, \"bindingIds\");\n __publicField(this, \"setBindingShapes\", (ids) => {\n this.bindingIds = ids;\n return this;\n });\n __publicField(this, \"clearBindingShape\", () => {\n return this.setBindingShapes();\n });\n __publicField(this, \"createNewLineBinding\", (source, target) => {\n const src = typeof source === \"string\" ? this.getShapeById(source) : source;\n const tgt = typeof target === \"string\" ? this.getShapeById(target) : target;\n if ((src == null ? void 0 : src.canBind) && (tgt == null ? void 0 : tgt.canBind)) {\n const result = createNewLineBinding(src, tgt);\n if (result) {\n const [newLine, newBindings] = result;\n this.createShapes([newLine]);\n this.currentPage.updateBindings(Object.fromEntries(newBindings.map((b5) => [b5.id, b5])));\n this.persist();\n return true;\n }\n }\n return false;\n });\n __publicField(this, \"brush\");\n __publicField(this, \"setBrush\", (brush) => {\n this.brush = brush;\n return this;\n });\n __publicField(this, \"setCamera\", (point, zoom) => {\n this.viewport.update({ point, zoom });\n return this;\n });\n __publicField(this, \"getPagePoint\", (point) => {\n const { camera } = this.viewport;\n return Vec.sub(Vec.div(point, camera.zoom), camera.point);\n });\n __publicField(this, \"getScreenPoint\", (point) => {\n const { camera } = this.viewport;\n return Vec.mul(Vec.add(point, camera.point), camera.zoom);\n });\n __publicField(this, \"Shapes\", \/* @__PURE__ *\/ new Map());\n __publicField(this, \"registerShapes\", (Shapes) => {\n Shapes.forEach((Shape5) => {\n if (Shape5.id === \"group\") {\n const app = this;\n Shape5.prototype.getShapes = function() {\n var _a3, _b;\n return (_b = (_a3 = this.props.children) == null ? void 0 : _a3.map((id3) => app.getShapeById(id3)).filter(Boolean)) != null ? _b : [];\n };\n }\n return this.Shapes.set(Shape5.id, Shape5);\n });\n });\n __publicField(this, \"deregisterShapes\", (Shapes) => {\n Shapes.forEach((Shape5) => this.Shapes.delete(Shape5.id));\n });\n __publicField(this, \"getShapeClass\", (type) => {\n if (!type)\n throw Error(\"No shape type provided.\");\n const Shape5 = this.Shapes.get(type);\n if (!Shape5)\n throw Error(`Could not find shape class for ${type}`);\n return Shape5;\n });\n __publicField(this, \"wrapUpdate\", (fn) => {\n transaction(() => {\n const shouldSave = !this.history.isPaused;\n if (shouldSave) {\n this.history.pause();\n }\n fn();\n if (shouldSave) {\n this.history.resume();\n this.persist();\n }\n });\n });\n __publicField(this, \"subscriptions\", \/* @__PURE__ *\/ new Set([]));\n __publicField(this, \"subscribe\", (event, callback) => {\n if (callback === void 0)\n throw Error(\"Callback is required.\");\n const subscription = { event, callback };\n this.subscriptions.add(subscription);\n return () => this.unsubscribe(subscription);\n });\n __publicField(this, \"unsubscribe\", (subscription) => {\n this.subscriptions.delete(subscription);\n return this;\n });\n __publicField(this, \"notify\", (event, info) => {\n this.subscriptions.forEach((subscription) => {\n if (subscription.event === event) {\n subscription.callback(this, info);\n }\n });\n return this;\n });\n __publicField(this, \"onTransition\", () => {\n });\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (!this.editingShape && e2.button === 1 && !this.isIn(\"move\")) {\n this.temporaryTransitionToMove(e2);\n return;\n }\n if (e2.button === 2 && !this.editingShape) {\n e2.preventDefault();\n this.transition(\"select\");\n return;\n }\n if (\"clientX\" in e2) {\n this.inputs.onPointerDown(\n [...this.viewport.getPagePoint([e2.clientX, e2.clientY]), e2.pressure],\n e2\n );\n }\n });\n __publicField(this, \"onPointerUp\", (info, e2) => {\n if (!this.editingShape && e2.button === 1 && this.isIn(\"move\")) {\n this.selectedTool.transition(\"idle\", { exit: true });\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n if (\"clientX\" in e2) {\n this.inputs.onPointerUp(\n [...this.viewport.getPagePoint([e2.clientX, e2.clientY]), e2.pressure],\n e2\n );\n }\n });\n __publicField(this, \"onPointerMove\", (info, e2) => {\n if (\"clientX\" in e2) {\n this.inputs.onPointerMove([...this.viewport.getPagePoint([e2.clientX, e2.clientY]), e2.pressure], e2);\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n if (!this.editingShape && e2[\"key\"] === \" \" && !this.isIn(\"move\")) {\n this.temporaryTransitionToMove(e2);\n return;\n }\n this.inputs.onKeyDown(e2);\n });\n __publicField(this, \"onKeyUp\", (info, e2) => {\n if (!this.editingShape && e2[\"key\"] === \" \" && this.isIn(\"move\")) {\n this.selectedTool.transition(\"idle\", { exit: true });\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n this.inputs.onKeyUp(e2);\n });\n __publicField(this, \"onPinchStart\", (info, e2) => {\n this.inputs.onPinchStart([...this.viewport.getPagePoint(info.point), 0.5], e2);\n });\n __publicField(this, \"onPinch\", (info, e2) => {\n this.inputs.onPinch([...this.viewport.getPagePoint(info.point), 0.5], e2);\n });\n __publicField(this, \"onPinchEnd\", (info, e2) => {\n this.inputs.onPinchEnd([...this.viewport.getPagePoint(info.point), 0.5], e2);\n });\n this._states = [TLSelectTool, TLMoveTool];\n this.readOnly = readOnly;\n this.history.pause();\n if (this.states && this.states.length > 0) {\n this.registerStates(this.states);\n const initialId = (_a3 = this.initial) != null ? _a3 : this.states[0].id;\n const state = this.children.get(initialId);\n if (state) {\n this.currentState = state;\n (_b = this.currentState) == null ? void 0 : _b._events.onEnter({ fromId: \"initial\" });\n }\n }\n if (Shapes)\n this.registerShapes(Shapes);\n if (Tools)\n this.registerTools(Tools);\n this.history.resume();\n if (serializedApp)\n this.history.deserialize(serializedApp);\n this.api = new TLApi(this);\n makeObservable(this);\n this.notify(\"mount\", null);\n }\n loadDocumentModel(model) {\n this.history.deserialize(model);\n if (model.assets && model.assets.length > 0)\n this.addAssets(model.assets);\n return this;\n }\n get serialized() {\n return {};\n }\n get currentPageId() {\n return this.pages.keys().next().value;\n }\n get currentPage() {\n return this.getPageById(this.currentPageId);\n }\n addPages(pages) {\n pages.forEach((page) => this.pages.set(page.id, page));\n this.persist();\n return this;\n }\n removePages(pages) {\n pages.forEach((page) => this.pages.delete(page.id));\n this.persist();\n return this;\n }\n shapesInGroups(groups = this.shapes) {\n return groups.flatMap((shape) => shape.props.children).filter(isNonNullable).map((id3) => this.getShapeById(id3)).filter(isNonNullable);\n }\n getParentGroup(shape) {\n return this.shapes.find((group) => {\n var _a3;\n return (_a3 = group.props.children) == null ? void 0 : _a3.includes(shape.id);\n });\n }\n addAssets(assets) {\n assets.forEach((asset) => this.assets[asset.id] = asset);\n return this;\n }\n removeAssets(assets) {\n if (typeof assets[0] === \"string\")\n assets.forEach((asset) => delete this.assets[asset]);\n else\n assets.forEach((asset) => delete this.assets[asset.id]);\n this.persist();\n return this;\n }\n getCleanUpAssets() {\n const usedAssets = \/* @__PURE__ *\/ new Set();\n this.pages.forEach(\n (p4) => p4.shapes.forEach((s4) => {\n if (s4.props.assetId && this.assets[s4.props.assetId]) {\n usedAssets.add(this.assets[s4.props.assetId]);\n }\n })\n );\n return Array.from(usedAssets);\n }\n createAssets(assets) {\n this.addAssets(assets);\n this.notify(\"create-assets\", { assets });\n this.persist();\n return this;\n }\n get selectedTool() {\n return this.currentState;\n }\n registerTools(tools2) {\n this.Tools = tools2;\n return this.registerStates(tools2);\n }\n get editingShape() {\n const { editingId, currentPage } = this;\n return editingId ? currentPage.shapes.find((shape) => shape.id === editingId) : void 0;\n }\n get hoveredShape() {\n const { hoveredId, currentPage } = this;\n return hoveredId ? currentPage.shapes.find((shape) => shape.id === hoveredId) : void 0;\n }\n get hoveredGroup() {\n const { hoveredShape } = this;\n const hoveredGroup = hoveredShape ? this.shapes.find((s4) => {\n var _a3;\n return s4.type === \"group\" && ((_a3 = s4.props.children) == null ? void 0 : _a3.includes(hoveredShape.id));\n }) : void 0;\n return hoveredGroup;\n }\n get selectedShapesArray() {\n const { selectedShapes, selectedTool } = this;\n const stateId = selectedTool.id;\n if (stateId !== \"select\")\n return [];\n return Array.from(selectedShapes.values());\n }\n get allSelectedShapes() {\n return new Set(this.allSelectedShapesArray);\n }\n get allSelectedShapesArray() {\n const { selectedShapesArray } = this;\n return dedupe([...selectedShapesArray, ...this.shapesInGroups(selectedShapesArray)]);\n }\n setSelectionRotation(radians) {\n this.selectionRotation = radians;\n }\n get erasingShapesArray() {\n return Array.from(this.erasingShapes.values());\n }\n get bindingShapes() {\n var _a3;\n const activeBindings = this.selectedShapesArray.length === 1 ? this.selectedShapesArray.flatMap((s4) => {\n var _a4;\n return Object.values((_a4 = s4.props.handles) != null ? _a4 : {});\n }).flatMap((h4) => h4.bindingId).filter(isNonNullable).flatMap((binding) => {\n var _a4, _b;\n return [\n (_a4 = this.currentPage.bindings[binding]) == null ? void 0 : _a4.fromId,\n (_b = this.currentPage.bindings[binding]) == null ? void 0 : _b.toId\n ];\n }).filter(isNonNullable) : [];\n const bindingIds = [...(_a3 = this.bindingIds) != null ? _a3 : [], ...activeBindings];\n return bindingIds ? this.currentPage.shapes.filter((shape) => bindingIds == null ? void 0 : bindingIds.includes(shape.id)) : void 0;\n }\n get currentGrid() {\n const { zoom } = this.viewport.camera;\n if (zoom < 0.15) {\n return GRID_SIZE * 16;\n } else if (zoom < 1) {\n return GRID_SIZE * 4;\n } else {\n return GRID_SIZE * 1;\n }\n }\n get shapes() {\n const {\n currentPage: { shapes: shapes2 }\n } = this;\n return Array.from(shapes2.values());\n }\n get shapesInViewport() {\n const {\n selectedShapes,\n currentPage,\n viewport: { currentView }\n } = this;\n return currentPage.shapes.filter((shape) => {\n return !shape.canUnmount || selectedShapes.has(shape) || BoundsUtils.boundsContain(currentView, shape.rotatedBounds) || BoundsUtils.boundsCollide(currentView, shape.rotatedBounds);\n });\n }\n get selectionDirectionHint() {\n const {\n selectionBounds,\n viewport: { currentView }\n } = this;\n if (!selectionBounds || BoundsUtils.boundsContain(currentView, selectionBounds) || BoundsUtils.boundsCollide(currentView, selectionBounds)) {\n return;\n }\n const center = BoundsUtils.getBoundsCenter(selectionBounds);\n return Vec.clampV(\n [\n (center[0] - currentView.minX - currentView.width \/ 2) \/ currentView.width,\n (center[1] - currentView.minY - currentView.height \/ 2) \/ currentView.height\n ],\n -1,\n 1\n );\n }\n get selectionBounds() {\n const { selectedShapesArray } = this;\n if (selectedShapesArray.length === 0)\n return void 0;\n if (selectedShapesArray.length === 1) {\n return __spreadProps(__spreadValues({}, selectedShapesArray[0].bounds), { rotation: selectedShapesArray[0].props.rotation });\n }\n return BoundsUtils.getCommonBounds(this.selectedShapesArray.map((shape) => shape.rotatedBounds));\n }\n get showSelection() {\n var _a3;\n const { selectedShapesArray } = this;\n return this.isIn(\"select\") && !this.isInAny(\"select.translating\", \"select.pinching\", \"select.rotating\") && (selectedShapesArray.length === 1 && !((_a3 = selectedShapesArray[0]) == null ? void 0 : _a3.hideSelection) || selectedShapesArray.length > 1);\n }\n get showSelectionDetail() {\n return this.isIn(\"select\") && !this.isInAny(\"select.translating\", \"select.pinching\") && this.selectedShapes.size > 0 && !this.selectedShapesArray.every((shape) => shape.hideSelectionDetail) && false;\n }\n get showSelectionRotation() {\n return this.showSelectionDetail && this.isInAny(\"select.rotating\", \"select.pointingRotateHandle\");\n }\n get showContextBar() {\n const {\n selectedShapesArray,\n inputs: { ctrlKey }\n } = this;\n return this.isInAny(\"select.idle\", \"select.hoveringSelectionHandle\") && !this.isIn(\"select.contextMenu\") && selectedShapesArray.length > 0 && !this.readOnly && !selectedShapesArray.every((shape) => shape.hideContextBar);\n }\n get showRotateHandles() {\n const { selectedShapesArray } = this;\n return this.isInAny(\n \"select.idle\",\n \"select.hoveringSelectionHandle\",\n \"select.pointingRotateHandle\",\n \"select.pointingResizeHandle\"\n ) && selectedShapesArray.length > 0 && !this.readOnly && !selectedShapesArray.some((shape) => shape.hideRotateHandle);\n }\n get showResizeHandles() {\n const { selectedShapesArray } = this;\n return this.isInAny(\n \"select.idle\",\n \"select.hoveringSelectionHandle\",\n \"select.pointingShape\",\n \"select.pointingSelectedShape\",\n \"select.pointingRotateHandle\",\n \"select.pointingResizeHandle\"\n ) && selectedShapesArray.length === 1 && !this.readOnly && !selectedShapesArray.every((shape) => shape.hideResizeHandles);\n }\n get showCloneHandles() {\n const { selectedShapesArray } = this;\n return this.isInAny(\n \"select.idle\",\n \"select.hoveringSelectionHandle\",\n \"select.pointingShape\",\n \"select.pointingSelectedShape\"\n ) && selectedShapesArray.length === 1 && Object.values(Geometry).some((geometry) => geometry === this.selectedShapesArray[0].type) && !this.readOnly;\n }\n temporaryTransitionToMove(event) {\n event.stopPropagation();\n event.preventDefault();\n const prevTool = this.selectedTool;\n this.transition(\"move\", { prevTool });\n this.selectedTool.transition(\"idleHold\");\n }\n};\n__publicField(TLApp, \"id\", \"app\");\n__publicField(TLApp, \"initial\", \"select\");\n__decorateClass([\n computed\n], TLApp.prototype, \"serialized\", 1);\n__decorateClass([\n observable\n], TLApp.prototype, \"pages\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"currentPageId\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"currentPage\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"addPages\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"removePages\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"createShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"updateShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"deleteShapes\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"assets\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"addAssets\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"removeAssets\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"removeUnusedAssets\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectedTool\", 1);\n__decorateClass([\n observable\n], TLApp.prototype, \"editingId\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"editingShape\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setEditingShape\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"hoveredId\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"hoveredShape\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"hoveredGroup\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setHoveredShape\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"selectedIds\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"selectedShapes\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"selectionRotation\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectedShapesArray\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"allSelectedShapes\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"allSelectedShapesArray\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setSelectedShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"setSelectionRotation\", 1);\n__decorateClass([\n observable\n], TLApp.prototype, \"erasingIds\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"erasingShapes\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"erasingShapesArray\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setErasingShapes\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"bindingIds\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"bindingShapes\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setBindingShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"createNewLineBinding\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"brush\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"setBrush\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"setCamera\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"currentGrid\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"shapes\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"shapesInViewport\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectionDirectionHint\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectionBounds\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showSelection\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showSelectionDetail\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showSelectionRotation\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showContextBar\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showRotateHandles\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showResizeHandles\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showCloneHandles\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/BindingUtils.ts\nfunction findBindingPoint(shape, target, handleId, bindingId, point, origin, direction, bindAnywhere) {\n const bindingPoint = target.getBindingPoint(\n point,\n origin,\n direction,\n bindAnywhere\n );\n if (!bindingPoint)\n return;\n return {\n id: bindingId,\n type: \"line\",\n fromId: shape.id,\n toId: target.id,\n handleId,\n point: src_default.toFixed(bindingPoint.point),\n distance: bindingPoint.distance\n };\n}\nfunction createNewLineBinding(source, target) {\n const cs = source.getCenter();\n const ct2 = target.getCenter();\n const lineId = uniqueId();\n const lineShape = __spreadProps(__spreadValues({}, TLLineShape.defaultProps), {\n id: lineId,\n type: TLLineShape.id,\n parentId: source.props.parentId,\n point: cs\n });\n const startBinding = findBindingPoint(\n lineShape,\n source,\n \"start\",\n uniqueId(),\n cs,\n cs,\n src_default.uni(src_default.sub(ct2, cs)),\n false\n );\n const endBinding = findBindingPoint(\n lineShape,\n target,\n \"end\",\n uniqueId(),\n ct2,\n ct2,\n src_default.uni(src_default.sub(cs, ct2)),\n false\n );\n if (startBinding && endBinding) {\n lineShape.handles.start.point = [0, 0];\n lineShape.handles.end.point = src_default.sub(ct2, cs);\n lineShape.handles.start.bindingId = startBinding.id;\n lineShape.handles.end.bindingId = endBinding.id;\n return [lineShape, [startBinding, endBinding]];\n }\n return null;\n}\n\n\/\/ ..\/..\/node_modules\/fast-copy\/dist\/esm\/index.mjs\nvar toStringFunction = Function.prototype.toString;\nvar create = Object.create;\nvar toStringObject = Object.prototype.toString;\nvar LegacyCache = function() {\n function LegacyCache2() {\n this._keys = [];\n this._values = [];\n }\n LegacyCache2.prototype.has = function(key) {\n return !!~this._keys.indexOf(key);\n };\n LegacyCache2.prototype.get = function(key) {\n return this._values[this._keys.indexOf(key)];\n };\n LegacyCache2.prototype.set = function(key, value) {\n this._keys.push(key);\n this._values.push(value);\n };\n return LegacyCache2;\n}();\nfunction createCacheLegacy() {\n return new LegacyCache();\n}\nfunction createCacheModern() {\n return \/* @__PURE__ *\/ new WeakMap();\n}\nvar createCache = typeof WeakMap !== \"undefined\" ? createCacheModern : createCacheLegacy;\nfunction getCleanClone(prototype) {\n if (!prototype) {\n return create(null);\n }\n var Constructor = prototype.constructor;\n if (Constructor === Object) {\n return prototype === Object.prototype ? {} : create(prototype);\n }\n if (~toStringFunction.call(Constructor).indexOf(\"[native code]\")) {\n try {\n return new Constructor();\n } catch (_a3) {\n }\n }\n return create(prototype);\n}\nfunction getRegExpFlagsLegacy(regExp) {\n var flags = \"\";\n if (regExp.global) {\n flags += \"g\";\n }\n if (regExp.ignoreCase) {\n flags += \"i\";\n }\n if (regExp.multiline) {\n flags += \"m\";\n }\n if (regExp.unicode) {\n flags += \"u\";\n }\n if (regExp.sticky) {\n flags += \"y\";\n }\n return flags;\n}\nfunction getRegExpFlagsModern(regExp) {\n return regExp.flags;\n}\nvar getRegExpFlags = \/test\/g.flags === \"g\" ? getRegExpFlagsModern : getRegExpFlagsLegacy;\nfunction getTagLegacy(value) {\n var type = toStringObject.call(value);\n return type.substring(8, type.length - 1);\n}\nfunction getTagModern(value) {\n return value[Symbol.toStringTag] || getTagLegacy(value);\n}\nvar getTag = typeof Symbol !== \"undefined\" ? getTagModern : getTagLegacy;\nvar defineProperty3 = Object.defineProperty;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar _a = Object.prototype;\nvar hasOwnProperty = _a.hasOwnProperty;\nvar propertyIsEnumerable = _a.propertyIsEnumerable;\nvar SUPPORTS_SYMBOL = typeof getOwnPropertySymbols === \"function\";\nfunction getStrictPropertiesModern(object2) {\n return getOwnPropertyNames(object2).concat(getOwnPropertySymbols(object2));\n}\nvar getStrictProperties = SUPPORTS_SYMBOL ? getStrictPropertiesModern : getOwnPropertyNames;\nfunction copyOwnPropertiesStrict(value, clone, state) {\n var properties = getStrictProperties(value);\n for (var index3 = 0, length_1 = properties.length, property = void 0, descriptor = void 0; index3 < length_1; ++index3) {\n property = properties[index3];\n if (property === \"callee\" || property === \"caller\") {\n continue;\n }\n descriptor = getOwnPropertyDescriptor(value, property);\n if (!descriptor) {\n clone[property] = state.copier(value[property], state);\n continue;\n }\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = state.copier(descriptor.value, state);\n }\n try {\n defineProperty3(clone, property, descriptor);\n } catch (error) {\n clone[property] = descriptor.value;\n }\n }\n return clone;\n}\nfunction copyArrayLoose(array2, state) {\n var clone = new state.Constructor();\n state.cache.set(array2, clone);\n for (var index3 = 0, length_2 = array2.length; index3 < length_2; ++index3) {\n clone[index3] = state.copier(array2[index3], state);\n }\n return clone;\n}\nfunction copyArrayStrict(array2, state) {\n var clone = new state.Constructor();\n state.cache.set(array2, clone);\n return copyOwnPropertiesStrict(array2, clone, state);\n}\nfunction copyArrayBuffer(arrayBuffer, _state) {\n return arrayBuffer.slice(0);\n}\nfunction copyBlob(blob, _state) {\n return blob.slice(0, blob.size, blob.type);\n}\nfunction copyDataView(dataView, state) {\n return new state.Constructor(copyArrayBuffer(dataView.buffer));\n}\nfunction copyDate(date, state) {\n return new state.Constructor(date.getTime());\n}\nfunction copyMapLoose(map3, state) {\n var clone = new state.Constructor();\n state.cache.set(map3, clone);\n map3.forEach(function(value, key) {\n clone.set(key, state.copier(value, state));\n });\n return clone;\n}\nfunction copyMapStrict(map3, state) {\n return copyOwnPropertiesStrict(map3, copyMapLoose(map3, state), state);\n}\nfunction copyObjectLooseLegacy(object2, state) {\n var clone = getCleanClone(state.prototype);\n state.cache.set(object2, clone);\n for (var key in object2) {\n if (hasOwnProperty.call(object2, key)) {\n clone[key] = state.copier(object2[key], state);\n }\n }\n return clone;\n}\nfunction copyObjectLooseModern(object2, state) {\n var clone = getCleanClone(state.prototype);\n state.cache.set(object2, clone);\n for (var key in object2) {\n if (hasOwnProperty.call(object2, key)) {\n clone[key] = state.copier(object2[key], state);\n }\n }\n var symbols = getOwnPropertySymbols(object2);\n for (var index3 = 0, length_3 = symbols.length, symbol = void 0; index3 < length_3; ++index3) {\n symbol = symbols[index3];\n if (propertyIsEnumerable.call(object2, symbol)) {\n clone[symbol] = state.copier(object2[symbol], state);\n }\n }\n return clone;\n}\nvar copyObjectLoose = SUPPORTS_SYMBOL ? copyObjectLooseModern : copyObjectLooseLegacy;\nfunction copyObjectStrict(object2, state) {\n var clone = getCleanClone(state.prototype);\n state.cache.set(object2, clone);\n return copyOwnPropertiesStrict(object2, clone, state);\n}\nfunction copyPrimitiveWrapper(primitiveObject, state) {\n return new state.Constructor(primitiveObject.valueOf());\n}\nfunction copyRegExp(regExp, state) {\n var clone = new state.Constructor(regExp.source, getRegExpFlags(regExp));\n clone.lastIndex = regExp.lastIndex;\n return clone;\n}\nfunction copySelf(value, _state) {\n return value;\n}\nfunction copySetLoose(set4, state) {\n var clone = new state.Constructor();\n state.cache.set(set4, clone);\n set4.forEach(function(value) {\n clone.add(state.copier(value, state));\n });\n return clone;\n}\nfunction copySetStrict(set4, state) {\n return copyOwnPropertiesStrict(set4, copySetLoose(set4, state), state);\n}\nvar isArray = Array.isArray;\nvar assign2 = Object.assign;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar DEFAULT_LOOSE_OPTIONS = {\n array: copyArrayLoose,\n arrayBuffer: copyArrayBuffer,\n blob: copyBlob,\n dataView: copyDataView,\n date: copyDate,\n error: copySelf,\n map: copyMapLoose,\n object: copyObjectLoose,\n regExp: copyRegExp,\n set: copySetLoose\n};\nvar DEFAULT_STRICT_OPTIONS = assign2({}, DEFAULT_LOOSE_OPTIONS, {\n array: copyArrayStrict,\n map: copyMapStrict,\n object: copyObjectStrict,\n set: copySetStrict\n});\nfunction getTagSpecificCopiers(options) {\n return {\n Arguments: options.object,\n Array: options.array,\n ArrayBuffer: options.arrayBuffer,\n Blob: options.blob,\n Boolean: copyPrimitiveWrapper,\n DataView: options.dataView,\n Date: options.date,\n Error: options.error,\n Float32Array: options.arrayBuffer,\n Float64Array: options.arrayBuffer,\n Int8Array: options.arrayBuffer,\n Int16Array: options.arrayBuffer,\n Int32Array: options.arrayBuffer,\n Map: options.map,\n Number: copyPrimitiveWrapper,\n Object: options.object,\n Promise: copySelf,\n RegExp: options.regExp,\n Set: options.set,\n String: copyPrimitiveWrapper,\n WeakMap: copySelf,\n WeakSet: copySelf,\n Uint8Array: options.arrayBuffer,\n Uint8ClampedArray: options.arrayBuffer,\n Uint16Array: options.arrayBuffer,\n Uint32Array: options.arrayBuffer,\n Uint64Array: options.arrayBuffer\n };\n}\nfunction createCopier(options) {\n var normalizedOptions = assign2({}, DEFAULT_LOOSE_OPTIONS, options);\n var tagSpecificCopiers = getTagSpecificCopiers(normalizedOptions);\n var array2 = tagSpecificCopiers.Array, object2 = tagSpecificCopiers.Object;\n function copier(value, state) {\n state.prototype = state.Constructor = void 0;\n if (!value || typeof value !== \"object\") {\n return value;\n }\n if (state.cache.has(value)) {\n return state.cache.get(value);\n }\n state.prototype = value.__proto__ || getPrototypeOf(value);\n state.Constructor = state.prototype && state.prototype.constructor;\n if (!state.Constructor || state.Constructor === Object) {\n return object2(value, state);\n }\n if (isArray(value)) {\n return array2(value, state);\n }\n var tagSpecificCopier = tagSpecificCopiers[getTag(value)];\n if (tagSpecificCopier) {\n return tagSpecificCopier(value, state);\n }\n return typeof value.then === \"function\" ? value : object2(value, state);\n }\n return function copy(value) {\n return copier(value, {\n Constructor: void 0,\n cache: createCache(),\n copier,\n prototype: void 0\n });\n };\n}\nfunction createStrictCopier(options) {\n return createCopier(assign2({}, DEFAULT_STRICT_OPTIONS, options));\n}\nvar copyStrict = createStrictCopier({});\nvar index = createCopier({});\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/DataUtils.ts\nvar import_fast_deep_equal = __toESM(require_fast_deep_equal());\nvar import_deepmerge = __toESM(require_cjs());\nvar deepCopy = index;\nfunction deepMerge(a5, b5) {\n return (0, import_deepmerge.default)(a5, b5, {\n arrayMerge: (destinationArray, sourceArray, options) => sourceArray\n });\n}\nfunction modulate(value, rangeA, rangeB, clamp3 = false) {\n const [fromLow, fromHigh] = rangeA;\n const [v0, v12] = rangeB;\n const result = v0 + (value - fromLow) \/ (fromHigh - fromLow) * (v12 - v0);\n return clamp3 ? v0 < v12 ? Math.max(Math.min(result, v12), v0) : Math.max(Math.min(result, v0), v12) : result;\n}\nfunction clamp(n4, min, max) {\n return Math.max(min, typeof max !== \"undefined\" ? Math.min(n4, max) : n4);\n}\nfunction getSizeFromSrc(dataURL, type) {\n return new Promise((resolve, reject) => {\n if (type === \"video\") {\n const video = document.createElement(\"video\");\n video.addEventListener(\n \"loadedmetadata\",\n function() {\n const height = this.videoHeight;\n const width = this.videoWidth;\n resolve([width, height]);\n },\n false\n );\n video.src = dataURL;\n } else if (type === \"image\") {\n const img = new Image();\n img.onload = () => resolve([img.width, img.height]);\n img.src = dataURL;\n img.onerror = (err) => reject(err);\n } else if (type === \"pdf\") {\n resolve([595, 842]);\n }\n });\n}\nfunction getFirstFromSet(set4) {\n return set4.values().next().value;\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/TextUtils.ts\nvar _TextUtils = class {\n static insertTextFirefox(field, text) {\n field.setRangeText(\n text,\n field.selectionStart || 0,\n field.selectionEnd || 0,\n \"end\"\n );\n field.dispatchEvent(\n new InputEvent(\"input\", {\n data: text,\n inputType: \"insertText\",\n isComposing: false\n })\n );\n }\n static insert(field, text) {\n const document2 = field.ownerDocument;\n const initialFocus = document2.activeElement;\n if (initialFocus !== field) {\n field.focus();\n }\n if (!document2.execCommand(\"insertText\", false, text)) {\n _TextUtils.insertTextFirefox(field, text);\n }\n if (initialFocus === document2.body) {\n field.blur();\n } else if (initialFocus instanceof HTMLElement && initialFocus !== field) {\n initialFocus.focus();\n }\n }\n static set(field, text) {\n field.select();\n _TextUtils.insert(field, text);\n }\n static getSelection(field) {\n const { selectionStart, selectionEnd } = field;\n return field.value.slice(\n selectionStart ? selectionStart : void 0,\n selectionEnd ? selectionEnd : void 0\n );\n }\n static wrapSelection(field, wrap, wrapEnd) {\n const { selectionStart, selectionEnd } = field;\n const selection = _TextUtils.getSelection(field);\n _TextUtils.insert(field, wrap + selection + (wrapEnd != null ? wrapEnd : wrap));\n field.selectionStart = (selectionStart || 0) + wrap.length;\n field.selectionEnd = (selectionEnd || 0) + wrap.length;\n }\n static replace(field, searchValue, replacer) {\n let drift = 0;\n field.value.replace(searchValue, (...args) => {\n const matchStart = drift + args[args.length - 2];\n const matchLength = args[0].length;\n field.selectionStart = matchStart;\n field.selectionEnd = matchStart + matchLength;\n const replacement = typeof replacer === \"string\" ? replacer : replacer(...args);\n _TextUtils.insert(field, replacement);\n field.selectionStart = matchStart;\n drift += replacement.length - matchLength;\n return replacement;\n });\n }\n static findLineEnd(value, currentEnd) {\n const lastLineStart = value.lastIndexOf(\"\\n\", currentEnd - 1) + 1;\n if (value.charAt(lastLineStart) !== \"\t\") {\n return currentEnd;\n }\n return lastLineStart + 1;\n }\n static indent(element) {\n var _a3;\n const { selectionStart, selectionEnd, value } = element;\n const selectedContrast = value.slice(selectionStart, selectionEnd);\n const lineBreakCount = (_a3 = \/\\n\/g.exec(selectedContrast)) == null ? void 0 : _a3.length;\n if (lineBreakCount && lineBreakCount > 0) {\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const newSelection = element.value.slice(firstLineStart, selectionEnd - 1);\n const indentedText = newSelection.replace(\n \/^|\\n\/g,\n `$&${_TextUtils.INDENT}`\n );\n const replacementsCount = indentedText.length - newSelection.length;\n element.setSelectionRange(firstLineStart, selectionEnd - 1);\n _TextUtils.insert(element, indentedText);\n element.setSelectionRange(selectionStart + 1, selectionEnd + replacementsCount);\n } else {\n _TextUtils.insert(element, _TextUtils.INDENT);\n }\n }\n static unindent(element) {\n const { selectionStart, selectionEnd, value } = element;\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const minimumSelectionEnd = _TextUtils.findLineEnd(value, selectionEnd);\n const newSelection = element.value.slice(firstLineStart, minimumSelectionEnd);\n const indentedText = newSelection.replace(\/(^|\\n)(\\t| {1,2})\/g, \"$1\");\n const replacementsCount = newSelection.length - indentedText.length;\n element.setSelectionRange(firstLineStart, minimumSelectionEnd);\n _TextUtils.insert(element, indentedText);\n const firstLineIndentation = \/\\t| {1,2}\/.exec(value.slice(firstLineStart, selectionStart));\n const difference = firstLineIndentation ? firstLineIndentation[0].length : 0;\n const newSelectionStart = selectionStart - difference;\n element.setSelectionRange(\n selectionStart - difference,\n Math.max(newSelectionStart, selectionEnd - replacementsCount)\n );\n }\n static normalizeText(text) {\n return text.replace(_TextUtils.fixNewLines, \"\\n\");\n }\n};\nvar TextUtils = _TextUtils;\n__publicField(TextUtils, \"fixNewLines\", \/\\r?\\n|\\r\/g);\n__publicField(TextUtils, \"INDENT\", \" \");\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/ColorUtils.ts\nfunction isBuiltInColor(color) {\n return Object.values(Color).includes(color);\n}\nfunction getComputedColor(color, type) {\n if (isBuiltInColor(color) || color == null) {\n return `var(--ls-wb-${type}-color-${color ? color : \"default\"})`;\n }\n return color;\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/getTextSize.ts\nvar melm;\nfunction getMeasurementDiv() {\n var _a3;\n (_a3 = document.getElementById(\"__textLabelMeasure\")) == null ? void 0 : _a3.remove();\n const pre = document.createElement(\"pre\");\n pre.id = \"__textLabelMeasure\";\n Object.assign(pre.style, {\n whiteSpace: \"pre\",\n width: \"auto\",\n borderLeft: \"2px solid transparent\",\n borderRight: \"1px solid transparent\",\n borderBottom: \"2px solid transparent\",\n padding: \"0px\",\n margin: \"0px\",\n opacity: \"0\",\n position: \"absolute\",\n top: \"-500px\",\n left: \"0px\",\n zIndex: \"9999\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n font: \"var(--ls-font-family)\"\n });\n pre.tabIndex = -1;\n document.body.appendChild(pre);\n return pre;\n}\nif (typeof window !== \"undefined\") {\n melm = getMeasurementDiv();\n}\nvar cache2 = \/* @__PURE__ *\/ new Map();\nvar getKey = (text, font5, padding) => {\n return `${text}-${font5}-${padding}`;\n};\nvar hasCached = (text, font5, padding) => {\n const key = getKey(text, font5, padding);\n return cache2.has(key);\n};\nvar getCached = (text, font5, padding) => {\n const key = getKey(text, font5, padding);\n return cache2.get(key);\n};\nvar saveCached = (text, font5, padding, size) => {\n const key = getKey(text, font5, padding);\n cache2.set(key, size);\n};\nfunction getTextLabelSize(text, fontOrStyles, padding = 0) {\n var _a3, _b, _c;\n if (!text) {\n return [16, 32];\n }\n let font5;\n if (typeof fontOrStyles === \"string\") {\n font5 = fontOrStyles;\n } else {\n font5 = `${(_a3 = fontOrStyles.fontStyle) != null ? _a3 : \"normal\"} ${(_b = fontOrStyles.fontVariant) != null ? _b : \"normal\"} ${(_c = fontOrStyles.fontWeight) != null ? _c : \"normal\"} ${fontOrStyles.fontSize}px\/${fontOrStyles.fontSize * fontOrStyles.lineHeight}px ${fontOrStyles.fontFamily}`;\n }\n if (!hasCached(text, font5, padding)) {\n if (!melm) {\n return [10, 10];\n }\n if (!melm.parentNode)\n document.body.appendChild(melm);\n melm.innerHTML = `${text}​`;\n melm.style.font = font5;\n melm.style.padding = padding + \"px\";\n const rect = melm.getBoundingClientRect();\n const width = Math.ceil(rect.width || 1);\n const height = Math.ceil(rect.height || 1);\n saveCached(text, font5, padding, [width, height]);\n }\n return getCached(text, font5, padding);\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/index.ts\nfunction uniqueId() {\n return v1_default();\n}\nfunction validUUID(input) {\n try {\n parse_default(input);\n return true;\n } catch (e2) {\n return false;\n }\n}\nfunction debounce(fn, ms = 0, immediateFn = void 0) {\n let timeoutId;\n return function(...args) {\n immediateFn == null ? void 0 : immediateFn(...args);\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(args), ms);\n };\n}\nfunction dedupe(arr) {\n return [...new Set(arr)];\n}\nfunction lerp(a5, b5, t2) {\n return a5 + (b5 - a5) * t2;\n}\nfunction isDarwin() {\n return \/Mac|iPod|iPhone|iPad\/.test(window.navigator.platform);\n}\nfunction isDev() {\n var _a3, _b, _c;\n return ((_c = (_b = (_a3 = window == null ? void 0 : window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.get_state_from_store) == null ? void 0 : _c.call(_b, \"ui\/developer-mode?\")) || false;\n}\nfunction isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.includes(\"webkit\") && !ua.includes(\"chrome\");\n}\nfunction modKey(e2) {\n return isDarwin() ? e2.metaKey : e2.ctrlKey;\n}\nvar MOD_KEY = isDarwin() ? \"\\u2318\" : \"ctrl\";\nfunction isNonNullable(value) {\n return Boolean(value);\n}\nfunction delay(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n\/\/ ..\/..\/packages\/react\/src\/lib\/TLReactApp.ts\nvar TLReactApp = class extends TLApp {\n};\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useBoundsEvents.ts\nvar React2 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/constants.ts\nvar PI3 = Math.PI;\nvar TAU2 = PI3 \/ 2;\nvar PI22 = PI3 * 2;\nvar EPSILON2 = Math.PI \/ 180;\nvar DOUBLE_CLICK_DURATION = 300;\nvar NOOP = () => void 0;\nvar isSafari2 = \/^((?!chrome|android).)*safari\/i.test(navigator.userAgent);\nvar CURSORS2 = {\n canvas: \"default\",\n grab: \"grab\",\n grabbing: \"grabbing\",\n [\"top_left_corner\" \/* TopLeft *\/]: \"resize-nwse\",\n [\"top_right_corner\" \/* TopRight *\/]: \"resize-nesw\",\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"resize-nwse\",\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"resize-nesw\",\n [\"top_edge\" \/* Top *\/]: \"resize-ns\",\n [\"right_edge\" \/* Right *\/]: \"resize-ew\",\n [\"bottom_edge\" \/* Bottom *\/]: \"resize-ns\",\n [\"left_edge\" \/* Left *\/]: \"resize-ew\"\n};\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useRendererContext.ts\nvar React = __toESM(require(\"react\"));\nvar contextMap = {};\nfunction getRendererContext(id3 = \"noid\") {\n if (!contextMap[id3]) {\n contextMap[id3] = React.createContext({});\n }\n return contextMap[id3];\n}\nfunction useRendererContext(id3 = \"noid\") {\n return React.useContext(getRendererContext(id3));\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useBoundsEvents.ts\nfunction useBoundsEvents(handle) {\n const { callbacks } = useRendererContext();\n const rDoubleClickTimer = React2.useRef(-1);\n const events = React2.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onPointerDown = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n const elm = loopToHtmlElement(e2.currentTarget);\n elm.setPointerCapture(e2.pointerId);\n elm.addEventListener(\"pointerup\", onPointerUp);\n (_a3 = callbacks.onPointerDown) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onPointerUp = (e2) => {\n var _a3, _b;\n const { order = 0 } = e2;\n if (order)\n return;\n const elm = e2.target;\n elm.removeEventListener(\"pointerup\", onPointerUp);\n elm.releasePointerCapture(e2.pointerId);\n (_a3 = callbacks.onPointerUp) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n const now = Date.now();\n const elapsed = now - rDoubleClickTimer.current;\n if (elapsed > DOUBLE_CLICK_DURATION) {\n rDoubleClickTimer.current = now;\n } else {\n if (elapsed <= DOUBLE_CLICK_DURATION) {\n (_b = callbacks.onDoubleClick) == null ? void 0 : _b.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n rDoubleClickTimer.current = -1;\n }\n }\n e2.order = order + 1;\n };\n const onPointerEnter = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onPointerLeave = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onKeyDown = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyDown) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order: -1 }, e2);\n };\n const onKeyUp = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyUp) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order: -1 }, e2);\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerEnter,\n onPointerLeave,\n onKeyDown,\n onKeyUp\n };\n }, [callbacks]);\n return events;\n}\nfunction loopToHtmlElement(elm) {\n var _a3;\n if ((_a3 = elm.namespaceURI) == null ? void 0 : _a3.endsWith(\"svg\")) {\n if (elm.parentElement)\n return loopToHtmlElement(elm.parentElement);\n else\n throw Error(\"Could not find a parent element of an HTML type!\");\n }\n return elm;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useResizeObserver.ts\nvar React3 = __toESM(require(\"react\"));\nvar getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent && (overflowY === \"auto\" || overflowY === \"scroll\" || overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nfunction useResizeObserver(ref, viewport, onBoundsChange) {\n const rIsMounted = React3.useRef(false);\n const updateBounds = React3.useCallback(() => {\n var _a3;\n if (rIsMounted.current) {\n const rect = (_a3 = ref.current) == null ? void 0 : _a3.getBoundingClientRect();\n if (rect) {\n const bounds = {\n minX: rect.left,\n maxX: rect.left + rect.width,\n minY: rect.top,\n maxY: rect.top + rect.height,\n width: rect.width,\n height: rect.height\n };\n viewport.updateBounds(bounds);\n onBoundsChange == null ? void 0 : onBoundsChange(bounds);\n }\n } else {\n rIsMounted.current = true;\n }\n }, [ref, onBoundsChange]);\n React3.useEffect(() => {\n const scrollingAnchor = ref.current ? getNearestScrollableContainer(ref.current) : document;\n const debouncedupdateBounds = debounce(updateBounds, 100);\n scrollingAnchor.addEventListener(\"scroll\", debouncedupdateBounds);\n window.addEventListener(\"resize\", debouncedupdateBounds);\n return () => {\n scrollingAnchor.removeEventListener(\"scroll\", debouncedupdateBounds);\n window.removeEventListener(\"resize\", debouncedupdateBounds);\n };\n }, []);\n React3.useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries[0].contentRect) {\n updateBounds();\n }\n });\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n return () => {\n resizeObserver.disconnect();\n };\n }, [ref]);\n React3.useEffect(() => {\n updateBounds();\n setTimeout(() => {\n var _a3, _b;\n (_b = (_a3 = ref.current) == null ? void 0 : _a3.querySelector(\".tl-canvas\")) == null ? void 0 : _b.focus();\n });\n }, [ref]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useStylesheet.ts\nvar React4 = __toESM(require(\"react\"));\nvar styles = \/* @__PURE__ *\/ new Map();\nfunction makeCssTheme(prefix, theme) {\n return Object.keys(theme).reduce((acc, key) => {\n const value = theme[key];\n if (value) {\n return acc + `${`--${prefix}-${key}`}: ${value};\n`;\n }\n return acc;\n }, \"\");\n}\nfunction useTheme(prefix, theme, selector = \".logseq-tldraw\") {\n React4.useLayoutEffect(() => {\n const style = document.createElement(\"style\");\n const cssTheme = makeCssTheme(prefix, theme);\n style.setAttribute(\"id\", `${prefix}-theme`);\n style.setAttribute(\"data-selector\", selector);\n style.innerHTML = `\n ${selector} {\n ${cssTheme}\n }\n `;\n document.head.appendChild(style);\n return () => {\n if (style && document.head.contains(style)) {\n document.head.removeChild(style);\n }\n };\n }, [prefix, theme, selector]);\n}\nfunction useStyle(uid, rules) {\n React4.useLayoutEffect(() => {\n if (styles.get(uid)) {\n return () => void 0;\n }\n const style = document.createElement(\"style\");\n style.innerHTML = rules;\n style.setAttribute(\"id\", uid);\n document.head.appendChild(style);\n styles.set(uid, style);\n return () => {\n if (style && document.head.contains(style)) {\n document.head.removeChild(style);\n styles.delete(uid);\n }\n };\n }, [uid, rules]);\n}\nvar css = (strings, ...args) => strings.reduce(\n (acc, string, index3) => acc + string + (index3 < args.length ? args[index3] : \"\"),\n \"\"\n);\nvar defaultTheme = {\n accent: \"var(--lx-accent-09, hsl(var(--primary)))\",\n brushFill: \"var(--ls-scrollbar-background-color, rgba(0, 0, 0, .05))\",\n brushStroke: \"var(--ls-scrollbar-thumb-hover-color, rgba(0, 0, 0, .05))\",\n selectStroke: \"var(--color-selectedStroke)\",\n selectFill: \"var(--color-selectedFill)\",\n binding: \"var(--color-binding, rgba(65, 132, 244, 0.5))\",\n background: \"var(--ls-primary-background-color, hsl(var(--background)))\",\n foreground: \"var(--ls-primary-text-color, hsl(var(--foreground)))\",\n grid: \"var(--ls-quaternary-background-color, hsl(var(--secondary)))\"\n};\nvar tlcss = css`\n .tl-container {\n --tl-zoom: 1;\n --tl-scale: calc(1 \/ var(--tl-zoom));\n --tl-padding: calc(64px \/ var(--tl-zoom));;\n --tl-shadow-color: 0deg 0% 0%;\n --tl-binding-distance: ${BINDING_DISTANCE}px;\n --tl-shadow-elevation-low: 0px 0.4px 0.5px hsl(var(--tl-shadow-color) \/ 0.04),\n 0px 0.6px 0.8px -0.7px hsl(var(--tl-shadow-color) \/ 0.06),\n 0.1px 1.2px 1.5px -1.4px hsl(var(--tl-shadow-color) \/ 0.08);\n --tl-shadow-elevation-medium: 0px 0.4px 0.5px hsl(var(--tl-shadow-color) \/ 0.04),\n 0.1px 1.3px 1.7px -0.5px hsl(var(--tl-shadow-color) \/ 0.06),\n 0.1px 2.8px 3.6px -1px hsl(var(--tl-shadow-color) \/ 0.07),\n 0.3px 6.1px 7.8px -1.4px hsl(var(--tl-shadow-color) \/ 0.09);\n --tl-shadow-elevation-high: 0px 0.4px 0.5px hsl(var(--tl-shadow-color) \/ 0.04),\n 0.1px 2.3px 3px -0.2px hsl(var(--tl-shadow-color) \/ 0.05),\n 0.2px 4.1px 5.3px -0.5px hsl(var(--tl-shadow-color) \/ 0.06),\n 0.4px 6.6px 8.5px -0.7px hsl(var(--tl-shadow-color) \/ 0.07),\n 0.6px 10.3px 13.2px -1px hsl(var(--tl-shadow-color) \/ 0.08),\n 0.9px 16px 20.6px -1.2px hsl(var(--tl-shadow-color) \/ 0.09),\n 1.3px 24.3px 31.2px -1.4px hsl(var(--tl-shadow-color) \/ 0.1);\n box-sizing: border-box;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n box-sizing: border-box;\n padding: 0px;\n margin: 0px;\n outline: none;\n z-index: 100;\n user-select: none;\n touch-action: none;\n overscroll-behavior: none;\n background-color: var(--tl-background);\n cursor: inherit;\n box-sizing: border-box;\n color: var(--tl-foreground);\n -webkit-user-select: none;\n -webkit-user-drag: none;\n }\n\n .tl-overlay {\n background: none;\n fill: transparent;\n position: absolute;\n width: 100%;\n height: 100%;\n touch-action: none;\n pointer-events: none;\n }\n\n .tl-snap-line {\n stroke: var(--tl-accent);\n stroke-width: calc(1px * var(--tl-scale));\n }\n\n .tl-snap-point {\n stroke: var(--tl-accent);\n stroke-width: calc(1px * var(--tl-scale));\n }\n\n .tl-canvas {\n position: absolute;\n width: 100%;\n height: 100%;\n touch-action: none;\n pointer-events: all;\n overflow: clip;\n outline: none;\n }\n\n .tl-layer {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 0px;\n width: 0px;\n contain: layout style size;\n }\n\n .tl-absolute {\n position: absolute;\n top: 0px;\n left: 0px;\n transform-origin: center center;\n contain: layout style size;\n }\n\n .tl-positioned {\n position: absolute;\n transform-origin: center center;\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n contain: layout style size;\n }\n\n .tl-positioned-svg {\n width: 100%;\n height: 100%;\n overflow: hidden;\n contain: layout style size;\n pointer-events: none;\n }\n\n .tl-positioned-div {\n position: relative;\n width: 100%;\n height: 100%;\n padding: var(--tl-padding);\n contain: layout style size;\n }\n\n .tl-positioned-inner {\n position: relative;\n width: 100%;\n height: 100%;\n }\n\n .tl-counter-scaled {\n transform: scale(var(--tl-scale));\n }\n\n .tl-dashed {\n stroke-dasharray: calc(2px * var(--tl-scale)), calc(2px * var(--tl-scale));\n }\n\n .tl-transparent {\n fill: transparent;\n stroke: transparent;\n }\n\n .tl-corner-handle {\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-rotate-handle {\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-clone-handle {\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-clone-handle:hover {\n fill: var(--tl-selectStroke);\n cursor: pointer;\n }\n\n .tl-clone-handle:hover line {\n stroke: var(--tl-background);\n }\n\n .tl-user {\n left: -4px;\n top: -4px;\n height: 8px;\n width: 8px;\n border-radius: 100%;\n pointer-events: none;\n }\n\n .tl-indicator {\n fill: transparent;\n stroke-width: calc(1.5px * var(--tl-scale));\n pointer-events: none;\n }\n\n .tl-indicator-container {\n transform-origin: 0 0;\n fill: transparent;\n stroke-width: calc(1.5px * var(--tl-scale));\n pointer-events: none;\n }\n\n .tl-user-indicator-bounds {\n border-style: solid;\n border-width: calc(1px * var(--tl-scale));\n }\n\n .tl-selected {\n stroke: var(--tl-selectStroke);\n }\n\n .tl-hovered {\n stroke: var(--tl-selectStroke);\n }\n\n .tl-clone-target {\n pointer-events: all;\n }\n\n .tl-clone-target:hover .tl-clone-button {\n opacity: 1;\n }\n\n .tl-clone-button-target {\n cursor: pointer;\n pointer-events: all;\n }\n\n .tl-clone-button-target:hover .tl-clone-button {\n fill: var(--tl-selectStroke);\n }\n\n .tl-clone-button {\n opacity: 0;\n r: calc(8px * var(--tl-scale));\n stroke-width: calc(1.5px * var(--tl-scale));\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n }\n\n .tl-bounds {\n pointer-events: none;\n contain: layout style size;\n }\n\n .tl-bounds-bg {\n stroke: none;\n fill: var(--tl-selectFill);\n pointer-events: all;\n contain: layout style size;\n }\n\n .tl-bounds-fg {\n fill: transparent;\n stroke: var(--tl-selectStroke);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-brush {\n fill: var(--tl-brushFill);\n stroke: var(--tl-brushStroke);\n stroke-width: calc(1px * var(--tl-scale));\n pointer-events: none;\n }\n\n .tl-dot {\n fill: var(--tl-background);\n stroke: var(--tl-foreground);\n stroke-width: 2px;\n }\n\n .tl-handle {\n fill: var(--tl-background);\n stroke: var(--tl-selectStroke);\n stroke-width: 1.5px;\n pointer-events: none;\n }\n\n .tl-handle-bg {\n fill: transparent;\n stroke: none;\n r: calc(16px \/ max(1, var(--tl-zoom)));\n pointer-events: all;\n cursor: grab;\n }\n\n .tl-handle-bg:active {\n pointer-events: all;\n fill: none;\n }\n\n .tl-handle-bg:hover {\n cursor: grab;\n fill: var(--tl-selectFill);\n }\n\n .tl-binding-indicator {\n fill: transparent;\n stroke: var(--tl-binding);\n }\n\n .tl-centered {\n display: grid;\n place-content: center;\n place-items: center;\n }\n\n .tl-centered > * {\n grid-column: 1;\n grid-row: 1;\n }\n\n .tl-centered-g {\n transform: translate(var(--tl-padding), var(--tl-padding));\n }\n\n .tl-current-parent > *[data-shy='true'] {\n opacity: 1;\n }\n\n .tl-binding {\n fill: none;\n stroke: var(--tl-selectStroke);\n stroke-width: calc(2px * var(--tl-scale));\n }\n\n .tl-counter-scaled-positioned {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n padding: 0;\n contain: layout style size;\n }\n\n .tl-fade-in {\n opacity: 1;\n transition-timing-function: ease-in-out;\n transition-property: opacity;\n transition-duration: 0.12s;\n transition-delay: 0;\n }\n\n .tl-fade-out {\n opacity: 0;\n transition-timing-function: ease-out;\n transition-property: opacity;\n transition-duration: 0.12s;\n transition-delay: 0;\n }\n\n .tl-counter-scaled-positioned > .tl-positioned-div {\n user-select: none;\n padding: 64px;\n }\n\n .tl-context-bar > * {\n grid-column: 1;\n grid-row: 1;\n }\n\n .tl-bounds-detail {\n padding: 2px 3px;\n border-radius: 1px;\n white-space: nowrap;\n width: fit-content;\n text-align: center;\n font-size: 12px;\n font-weight: 500;\n background-color: var(--tl-selectStroke);\n color: var(--tl-background);\n }\n\n .tl-grid-canvas {\n position: absolute;\n touch-action: none;\n pointer-events: none;\n user-select: none;\n }\n\n .tl-grid {\n position: absolute;\n width: 100%;\n height: 100%;\n touch-action: none;\n pointer-events: none;\n user-select: none;\n }\n\n .tl-grid-dot {\n fill: var(--tl-grid);\n }\n\n .tl-html-canvas {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n zindex: 20000;\n pointer-events: none;\n border: 2px solid red;\n }\n\n .tl-direction-indicator {\n z-index: 100000;\n position: absolute;\n top: 0px;\n left: 0px;\n fill: var(--tl-selectStroke);\n }\n`;\nfunction useStylesheet(theme, selector) {\n const tltheme = React4.useMemo(\n () => __spreadValues(__spreadValues({}, defaultTheme), theme),\n [theme]\n );\n useTheme(\"tl\", tltheme, selector);\n useStyle(\"tl-canvas\", tlcss);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCanvasEvents.ts\nvar React6 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useApp.ts\nvar React5 = __toESM(require(\"react\"));\nvar contextMap2 = {};\nfunction getAppContext(id3 = \"noid\") {\n if (!contextMap2[id3]) {\n contextMap2[id3] = React5.createContext({});\n }\n return contextMap2[id3];\n}\nfunction useApp(id3 = \"noid\") {\n return React5.useContext(getAppContext(id3));\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCanvasEvents.ts\nfunction useCanvasEvents() {\n const app = useApp();\n const { callbacks } = useRendererContext();\n const rDoubleClickTimer = React6.useRef(-1);\n const events = React6.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onPointerDown = (e2) => {\n var _a3, _b, _c;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.setPointerCapture(e2.pointerId);\n if (!e2.isPrimary) {\n return;\n }\n (_b = callbacks.onPointerDown) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n const now = Date.now();\n const elapsed = now - rDoubleClickTimer.current;\n if (elapsed > DOUBLE_CLICK_DURATION) {\n rDoubleClickTimer.current = now;\n } else {\n if (elapsed <= DOUBLE_CLICK_DURATION) {\n (_c = callbacks.onDoubleClick) == null ? void 0 : _c.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n rDoubleClickTimer.current = -1;\n }\n }\n };\n const onPointerUp = (e2) => {\n var _a3, _b;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.releasePointerCapture(e2.pointerId);\n (_b = callbacks.onPointerUp) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onPointerEnter = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onPointerLeave = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onDrop = (e2) => __async(this, null, function* () {\n e2.preventDefault();\n if (\"clientX\" in e2) {\n const point = [e2.clientX, e2.clientY];\n app.drop(e2.dataTransfer, point);\n }\n });\n const onDragOver = (e2) => {\n e2.preventDefault();\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerEnter,\n onPointerLeave,\n onDrop,\n onDragOver,\n onTouchEnd: (e2) => {\n let tool = app.selectedTool.id;\n if (tool === \"pencil\" || tool === \"highlighter\") {\n e2.preventDefault();\n }\n }\n };\n }, [callbacks]);\n return events;\n}\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/core\/dist\/maths-b28d9b98.esm.js\nfunction clamp2(v4, min, max) {\n return Math.max(min, Math.min(v4, max));\n}\nvar V = {\n toVector(v4, fallback) {\n if (v4 === void 0)\n v4 = fallback;\n return Array.isArray(v4) ? v4 : [v4, v4];\n },\n add(v12, v22) {\n return [v12[0] + v22[0], v12[1] + v22[1]];\n },\n sub(v12, v22) {\n return [v12[0] - v22[0], v12[1] - v22[1]];\n },\n addTo(v12, v22) {\n v12[0] += v22[0];\n v12[1] += v22[1];\n },\n subTo(v12, v22) {\n v12[0] -= v22[0];\n v12[1] -= v22[1];\n }\n};\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity)\n return Math.pow(distance, constant * 5);\n return distance * dimension * constant \/ (dimension + constant * distance);\n}\nfunction rubberbandIfOutOfBounds(position, min, max, constant = 0.15) {\n if (constant === 0)\n return clamp2(position, min, max);\n if (position < min)\n return -rubberband(min - position, max - min, constant) + min;\n if (position > max)\n return +rubberband(position - max, max - min, constant) + max;\n return position;\n}\nfunction computeRubberband(bounds, [Vx, Vy], [Rx, Ry]) {\n const [[X0, X1], [Y0, Y1]] = bounds;\n return [rubberbandIfOutOfBounds(Vx, X0, X1, Rx), rubberbandIfOutOfBounds(Vy, Y0, Y1, Ry)];\n}\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/core\/dist\/actions-e3d93fde.esm.js\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction ownKeys3(object2, enumerableOnly) {\n var keys = Object.keys(object2);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object2);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object2, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i4 = 1; i4 < arguments.length; i4++) {\n var source = null != arguments[i4] ? arguments[i4] : {};\n i4 % 2 ? ownKeys3(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys3(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar EVENT_TYPE_MAP = {\n pointer: {\n start: \"down\",\n change: \"move\",\n end: \"up\"\n },\n mouse: {\n start: \"down\",\n change: \"move\",\n end: \"up\"\n },\n touch: {\n start: \"start\",\n change: \"move\",\n end: \"end\"\n },\n gesture: {\n start: \"start\",\n change: \"change\",\n end: \"end\"\n }\n};\nfunction capitalize(string) {\n if (!string)\n return \"\";\n return string[0].toUpperCase() + string.slice(1);\n}\nvar actionsWithoutCaptureSupported = [\"enter\", \"leave\"];\nfunction hasCapture(capture = false, actionKey) {\n return capture && !actionsWithoutCaptureSupported.includes(actionKey);\n}\nfunction toHandlerProp(device, action2 = \"\", capture = false) {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action2] || action2 : action2;\n return \"on\" + capitalize(device) + capitalize(actionKey) + (hasCapture(capture, actionKey) ? \"Capture\" : \"\");\n}\nvar pointerCaptureEvents = [\"gotpointercapture\", \"lostpointercapture\"];\nfunction parseProp(prop) {\n let eventKey = prop.substring(2).toLowerCase();\n const passive = !!~eventKey.indexOf(\"passive\");\n if (passive)\n eventKey = eventKey.replace(\"passive\", \"\");\n const captureKey = pointerCaptureEvents.includes(eventKey) ? \"capturecapture\" : \"capture\";\n const capture = !!~eventKey.indexOf(captureKey);\n if (capture)\n eventKey = eventKey.replace(\"capture\", \"\");\n return {\n device: eventKey,\n capture,\n passive\n };\n}\nfunction toDomEventType(device, action2 = \"\") {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action2] || action2 : action2;\n return device + actionKey;\n}\nfunction isTouch(event) {\n return \"touches\" in event;\n}\nfunction getPointerType(event) {\n if (isTouch(event))\n return \"touch\";\n if (\"pointerType\" in event)\n return event.pointerType;\n return \"mouse\";\n}\nfunction getCurrentTargetTouchList(event) {\n return Array.from(event.touches).filter((e2) => {\n var _event$currentTarget, _event$currentTarget$;\n return e2.target === event.currentTarget || ((_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : (_event$currentTarget$ = _event$currentTarget.contains) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.call(_event$currentTarget, e2.target));\n });\n}\nfunction getTouchList(event) {\n return event.type === \"touchend\" || event.type === \"touchcancel\" ? event.changedTouches : event.targetTouches;\n}\nfunction getValueEvent(event) {\n return isTouch(event) ? getTouchList(event)[0] : event;\n}\nfunction distanceAngle(P1, P22) {\n const dx = P22.clientX - P1.clientX;\n const dy = P22.clientY - P1.clientY;\n const cx2 = (P22.clientX + P1.clientX) \/ 2;\n const cy = (P22.clientY + P1.clientY) \/ 2;\n const distance = Math.hypot(dx, dy);\n const angle = -(Math.atan2(dx, dy) * 180) \/ Math.PI;\n const origin = [cx2, cy];\n return {\n angle,\n distance,\n origin\n };\n}\nfunction touchIds(event) {\n return getCurrentTargetTouchList(event).map((touch) => touch.identifier);\n}\nfunction touchDistanceAngle(event, ids) {\n const [P1, P22] = Array.from(event.touches).filter((touch) => ids.includes(touch.identifier));\n return distanceAngle(P1, P22);\n}\nfunction pointerId(event) {\n const valueEvent = getValueEvent(event);\n return isTouch(event) ? valueEvent.identifier : valueEvent.pointerId;\n}\nfunction pointerValues(event) {\n const valueEvent = getValueEvent(event);\n return [valueEvent.clientX, valueEvent.clientY];\n}\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\nfunction wheelValues(event) {\n let {\n deltaX,\n deltaY,\n deltaMode\n } = event;\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n return [deltaX, deltaY];\n}\nfunction scrollValues(event) {\n var _ref, _ref2;\n const {\n scrollX,\n scrollY,\n scrollLeft,\n scrollTop\n } = event.currentTarget;\n return [(_ref = scrollX !== null && scrollX !== void 0 ? scrollX : scrollLeft) !== null && _ref !== void 0 ? _ref : 0, (_ref2 = scrollY !== null && scrollY !== void 0 ? scrollY : scrollTop) !== null && _ref2 !== void 0 ? _ref2 : 0];\n}\nfunction getEventDetails(event) {\n const payload = {};\n if (\"buttons\" in event)\n payload.buttons = event.buttons;\n if (\"shiftKey\" in event) {\n const {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n } = event;\n Object.assign(payload, {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n });\n }\n return payload;\n}\nfunction call(v4, ...args) {\n if (typeof v4 === \"function\") {\n return v4(...args);\n } else {\n return v4;\n }\n}\nfunction noop3() {\n}\nfunction chain(...fns) {\n if (fns.length === 0)\n return noop3;\n if (fns.length === 1)\n return fns[0];\n return function() {\n let result;\n for (const fn of fns) {\n result = fn.apply(this, arguments) || result;\n }\n return result;\n };\n}\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\nvar BEFORE_LAST_KINEMATICS_DELAY = 32;\nvar Engine = class {\n constructor(ctrl, args, key) {\n this.ctrl = ctrl;\n this.args = args;\n this.key = key;\n if (!this.state) {\n this.state = {};\n this.computeValues([0, 0]);\n this.computeInitial();\n if (this.init)\n this.init();\n this.reset();\n }\n }\n get state() {\n return this.ctrl.state[this.key];\n }\n set state(state) {\n this.ctrl.state[this.key] = state;\n }\n get shared() {\n return this.ctrl.state.shared;\n }\n get eventStore() {\n return this.ctrl.gestureEventStores[this.key];\n }\n get timeoutStore() {\n return this.ctrl.gestureTimeoutStores[this.key];\n }\n get config() {\n return this.ctrl.config[this.key];\n }\n get sharedConfig() {\n return this.ctrl.config.shared;\n }\n get handler() {\n return this.ctrl.handlers[this.key];\n }\n reset() {\n const {\n state,\n shared,\n ingKey,\n args\n } = this;\n shared[ingKey] = state._active = state.active = state._blocked = state._force = false;\n state._step = [false, false];\n state.intentional = false;\n state._movement = [0, 0];\n state._distance = [0, 0];\n state._direction = [0, 0];\n state._delta = [0, 0];\n state._bounds = [[-Infinity, Infinity], [-Infinity, Infinity]];\n state.args = args;\n state.axis = void 0;\n state.memo = void 0;\n state.elapsedTime = 0;\n state.direction = [0, 0];\n state.distance = [0, 0];\n state.overflow = [0, 0];\n state._movementBound = [false, false];\n state.velocity = [0, 0];\n state.movement = [0, 0];\n state.delta = [0, 0];\n state.timeStamp = 0;\n }\n start(event) {\n const state = this.state;\n const config = this.config;\n if (!state._active) {\n this.reset();\n this.computeInitial();\n state._active = true;\n state.target = event.target;\n state.currentTarget = event.currentTarget;\n state.lastOffset = config.from ? call(config.from, state) : state.offset;\n state.offset = state.lastOffset;\n }\n state.startTime = state.timeStamp = event.timeStamp;\n }\n computeValues(values) {\n const state = this.state;\n state._values = values;\n state.values = this.config.transform(values);\n }\n computeInitial() {\n const state = this.state;\n state._initial = state._values;\n state.initial = state.values;\n }\n compute(event) {\n const {\n state,\n config,\n shared\n } = this;\n state.args = this.args;\n let dt2 = 0;\n if (event) {\n state.event = event;\n if (config.preventDefault && event.cancelable)\n state.event.preventDefault();\n state.type = event.type;\n shared.touches = this.ctrl.pointerIds.size || this.ctrl.touchIds.size;\n shared.locked = !!document.pointerLockElement;\n Object.assign(shared, getEventDetails(event));\n shared.down = shared.pressed = shared.buttons % 2 === 1 || shared.touches > 0;\n dt2 = event.timeStamp - state.timeStamp;\n state.timeStamp = event.timeStamp;\n state.elapsedTime = state.timeStamp - state.startTime;\n }\n if (state._active) {\n const _absoluteDelta = state._delta.map(Math.abs);\n V.addTo(state._distance, _absoluteDelta);\n }\n if (this.axisIntent)\n this.axisIntent(event);\n const [_m0, _m1] = state._movement;\n const [t0, t1] = config.threshold;\n const {\n _step,\n values\n } = state;\n if (config.hasCustomTransform) {\n if (_step[0] === false)\n _step[0] = Math.abs(_m0) >= t0 && values[0];\n if (_step[1] === false)\n _step[1] = Math.abs(_m1) >= t1 && values[1];\n } else {\n if (_step[0] === false)\n _step[0] = Math.abs(_m0) >= t0 && Math.sign(_m0) * t0;\n if (_step[1] === false)\n _step[1] = Math.abs(_m1) >= t1 && Math.sign(_m1) * t1;\n }\n state.intentional = _step[0] !== false || _step[1] !== false;\n if (!state.intentional)\n return;\n const movement = [0, 0];\n if (config.hasCustomTransform) {\n const [v0, v12] = values;\n movement[0] = _step[0] !== false ? v0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? v12 - _step[1] : 0;\n } else {\n movement[0] = _step[0] !== false ? _m0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? _m1 - _step[1] : 0;\n }\n if (this.restrictToAxis && !state._blocked)\n this.restrictToAxis(movement);\n const previousOffset = state.offset;\n const gestureIsActive = state._active && !state._blocked || state.active;\n if (gestureIsActive) {\n state.first = state._active && !state.active;\n state.last = !state._active && state.active;\n state.active = shared[this.ingKey] = state._active;\n if (event) {\n if (state.first) {\n if (\"bounds\" in config)\n state._bounds = call(config.bounds, state);\n if (this.setup)\n this.setup();\n }\n state.movement = movement;\n this.computeOffset();\n }\n }\n const [ox, oy] = state.offset;\n const [[x0, x1], [y0, y1]] = state._bounds;\n state.overflow = [ox < x0 ? -1 : ox > x1 ? 1 : 0, oy < y0 ? -1 : oy > y1 ? 1 : 0];\n state._movementBound[0] = state.overflow[0] ? state._movementBound[0] === false ? state._movement[0] : state._movementBound[0] : false;\n state._movementBound[1] = state.overflow[1] ? state._movementBound[1] === false ? state._movement[1] : state._movementBound[1] : false;\n const rubberband2 = state._active ? config.rubberband || [0, 0] : [0, 0];\n state.offset = computeRubberband(state._bounds, state.offset, rubberband2);\n state.delta = V.sub(state.offset, previousOffset);\n this.computeMovement();\n if (gestureIsActive && (!state.last || dt2 > BEFORE_LAST_KINEMATICS_DELAY)) {\n state.delta = V.sub(state.offset, previousOffset);\n const absoluteDelta = state.delta.map(Math.abs);\n V.addTo(state.distance, absoluteDelta);\n state.direction = state.delta.map(Math.sign);\n state._direction = state._delta.map(Math.sign);\n if (!state.first && dt2 > 0) {\n state.velocity = [absoluteDelta[0] \/ dt2, absoluteDelta[1] \/ dt2];\n }\n }\n }\n emit() {\n const state = this.state;\n const shared = this.shared;\n const config = this.config;\n if (!state._active)\n this.clean();\n if ((state._blocked || !state.intentional) && !state._force && !config.triggerAllEvents)\n return;\n const memo6 = this.handler(_objectSpread2(_objectSpread2(_objectSpread2({}, shared), state), {}, {\n [this.aliasKey]: state.values\n }));\n if (memo6 !== void 0)\n state.memo = memo6;\n }\n clean() {\n this.eventStore.clean();\n this.timeoutStore.clean();\n }\n};\nfunction selectAxis([dx, dy], threshold) {\n const absDx = Math.abs(dx);\n const absDy = Math.abs(dy);\n if (absDx > absDy && absDx > threshold) {\n return \"x\";\n }\n if (absDy > absDx && absDy > threshold) {\n return \"y\";\n }\n return void 0;\n}\nvar CoordinatesEngine = class extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"aliasKey\", \"xy\");\n }\n reset() {\n super.reset();\n this.state.axis = void 0;\n }\n init() {\n this.state.offset = [0, 0];\n this.state.lastOffset = [0, 0];\n }\n computeOffset() {\n this.state.offset = V.add(this.state.lastOffset, this.state.movement);\n }\n computeMovement() {\n this.state.movement = V.sub(this.state.offset, this.state.lastOffset);\n }\n axisIntent(event) {\n const state = this.state;\n const config = this.config;\n if (!state.axis && event) {\n const threshold = typeof config.axisThreshold === \"object\" ? config.axisThreshold[getPointerType(event)] : config.axisThreshold;\n state.axis = selectAxis(state._movement, threshold);\n }\n state._blocked = (config.lockDirection || !!config.axis) && !state.axis || !!config.axis && config.axis !== state.axis;\n }\n restrictToAxis(v4) {\n if (this.config.axis || this.config.lockDirection) {\n switch (this.state.axis) {\n case \"x\":\n v4[1] = 0;\n break;\n case \"y\":\n v4[0] = 0;\n break;\n }\n }\n }\n};\nvar identity = (v4) => v4;\nvar DEFAULT_RUBBERBAND = 0.15;\nvar commonConfigResolver = {\n enabled(value = true) {\n return value;\n },\n eventOptions(value, _k, config) {\n return _objectSpread2(_objectSpread2({}, config.shared.eventOptions), value);\n },\n preventDefault(value = false) {\n return value;\n },\n triggerAllEvents(value = false) {\n return value;\n },\n rubberband(value = 0) {\n switch (value) {\n case true:\n return [DEFAULT_RUBBERBAND, DEFAULT_RUBBERBAND];\n case false:\n return [0, 0];\n default:\n return V.toVector(value);\n }\n },\n from(value) {\n if (typeof value === \"function\")\n return value;\n if (value != null)\n return V.toVector(value);\n },\n transform(value, _k, config) {\n const transform = value || config.shared.transform;\n this.hasCustomTransform = !!transform;\n if (false) {\n const originalTransform = transform || identity;\n return (v4) => {\n const r4 = originalTransform(v4);\n if (!isFinite(r4[0]) || !isFinite(r4[1])) {\n console.warn(`[@use-gesture]: config.transform() must produce a valid result, but it was: [${r4[0]},${[1]}]`);\n }\n return r4;\n };\n }\n return transform || identity;\n },\n threshold(value) {\n return V.toVector(value, 0);\n }\n};\nif (false) {\n Object.assign(commonConfigResolver, {\n domTarget(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n return NaN;\n },\n lockDirection(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`lockDirection\\` option has been merged with \\`axis\\`. Use it as in \\`{ axis: 'lock' }\\``);\n }\n return NaN;\n },\n initial(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`initial\\` option has been renamed to \\`from\\`.`);\n }\n return NaN;\n }\n });\n}\nvar DEFAULT_AXIS_THRESHOLD = 0;\nvar coordinatesConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n axis(_v, _k, {\n axis\n }) {\n this.lockDirection = axis === \"lock\";\n if (!this.lockDirection)\n return axis;\n },\n axisThreshold(value = DEFAULT_AXIS_THRESHOLD) {\n return value;\n },\n bounds(value = {}) {\n if (typeof value === \"function\") {\n return (state) => coordinatesConfigResolver.bounds(value(state));\n }\n if (\"current\" in value) {\n return () => value.current;\n }\n if (typeof HTMLElement === \"function\" && value instanceof HTMLElement) {\n return value;\n }\n const {\n left = -Infinity,\n right = Infinity,\n top = -Infinity,\n bottom = Infinity\n } = value;\n return [[left, right], [top, bottom]];\n }\n});\nvar DISPLACEMENT = 10;\nvar KEYS_DELTA_MAP = {\n ArrowRight: (factor = 1) => [DISPLACEMENT * factor, 0],\n ArrowLeft: (factor = 1) => [-DISPLACEMENT * factor, 0],\n ArrowUp: (factor = 1) => [0, -DISPLACEMENT * factor],\n ArrowDown: (factor = 1) => [0, DISPLACEMENT * factor]\n};\nvar DragEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"dragging\");\n }\n reset() {\n super.reset();\n const state = this.state;\n state._pointerId = void 0;\n state._pointerActive = false;\n state._keyboardActive = false;\n state._preventScroll = false;\n state._delayed = false;\n state.swipe = [0, 0];\n state.tap = false;\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n }\n setup() {\n const state = this.state;\n if (state._bounds instanceof HTMLElement) {\n const boundRect = state._bounds.getBoundingClientRect();\n const targetRect = state.currentTarget.getBoundingClientRect();\n const _bounds = {\n left: boundRect.left - targetRect.left + state.offset[0],\n right: boundRect.right - targetRect.right + state.offset[0],\n top: boundRect.top - targetRect.top + state.offset[1],\n bottom: boundRect.bottom - targetRect.bottom + state.offset[1]\n };\n state._bounds = coordinatesConfigResolver.bounds(_bounds);\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled)\n return;\n state.canceled = true;\n state._active = false;\n setTimeout(() => {\n this.compute();\n this.emit();\n }, 0);\n }\n setActive() {\n this.state._active = this.state._pointerActive || this.state._keyboardActive;\n }\n clean() {\n this.pointerClean();\n this.state._pointerActive = false;\n this.state._keyboardActive = false;\n super.clean();\n }\n pointerDown(event) {\n const config = this.config;\n const state = this.state;\n if (event.buttons != null && (Array.isArray(config.pointerButtons) ? !config.pointerButtons.includes(event.buttons) : config.pointerButtons !== -1 && config.pointerButtons !== event.buttons))\n return;\n const ctrlIds = this.ctrl.setEventIds(event);\n if (config.pointerCapture) {\n event.target.setPointerCapture(event.pointerId);\n }\n if (ctrlIds && ctrlIds.size > 1 && state._pointerActive)\n return;\n this.start(event);\n this.setupPointer(event);\n state._pointerId = pointerId(event);\n state._pointerActive = true;\n this.computeValues(pointerValues(event));\n this.computeInitial();\n if (config.preventScrollAxis && getPointerType(event) !== \"mouse\") {\n state._active = false;\n this.setupScrollPrevention(event);\n } else if (config.delay > 0) {\n this.setupDelayTrigger(event);\n if (config.triggerAllEvents) {\n this.compute(event);\n this.emit();\n }\n } else {\n this.startPointerDrag(event);\n }\n }\n startPointerDrag(event) {\n const state = this.state;\n state._active = true;\n state._preventScroll = true;\n state._delayed = false;\n this.compute(event);\n this.emit();\n }\n pointerMove(event) {\n const state = this.state;\n const config = this.config;\n if (!state._pointerActive)\n return;\n if (state.type === event.type && event.timeStamp === state.timeStamp)\n return;\n const id3 = pointerId(event);\n if (state._pointerId !== void 0 && id3 !== state._pointerId)\n return;\n const _values = pointerValues(event);\n if (document.pointerLockElement === event.target) {\n state._delta = [event.movementX, event.movementY];\n } else {\n state._delta = V.sub(_values, state._values);\n this.computeValues(_values);\n }\n V.addTo(state._movement, state._delta);\n this.compute(event);\n if (state._delayed && state.intentional) {\n this.timeoutStore.remove(\"dragDelay\");\n state.active = false;\n this.startPointerDrag(event);\n return;\n }\n if (config.preventScrollAxis && !state._preventScroll) {\n if (state.axis) {\n if (state.axis === config.preventScrollAxis || config.preventScrollAxis === \"xy\") {\n state._active = false;\n this.clean();\n return;\n } else {\n this.timeoutStore.remove(\"startPointerDrag\");\n this.startPointerDrag(event);\n return;\n }\n } else {\n return;\n }\n }\n this.emit();\n }\n pointerUp(event) {\n this.ctrl.setEventIds(event);\n try {\n if (this.config.pointerCapture && event.target.hasPointerCapture(event.pointerId)) {\n ;\n event.target.releasePointerCapture(event.pointerId);\n }\n } catch (_unused) {\n if (false) {\n console.warn(`[@use-gesture]: If you see this message, it's likely that you're using an outdated version of \\`@react-three\/fiber\\`. \n\nPlease upgrade to the latest version.`);\n }\n }\n const state = this.state;\n const config = this.config;\n if (!state._active || !state._pointerActive)\n return;\n const id3 = pointerId(event);\n if (state._pointerId !== void 0 && id3 !== state._pointerId)\n return;\n this.state._pointerActive = false;\n this.setActive();\n this.compute(event);\n const [dx, dy] = state._distance;\n state.tap = dx <= config.tapsThreshold && dy <= config.tapsThreshold;\n if (state.tap && config.filterTaps) {\n state._force = true;\n } else {\n const [dirx, diry] = state.direction;\n const [vx, vy] = state.velocity;\n const [mx, my] = state.movement;\n const [svx, svy] = config.swipe.velocity;\n const [sx, sy] = config.swipe.distance;\n const sdt = config.swipe.duration;\n if (state.elapsedTime < sdt) {\n if (Math.abs(vx) > svx && Math.abs(mx) > sx)\n state.swipe[0] = dirx;\n if (Math.abs(vy) > svy && Math.abs(my) > sy)\n state.swipe[1] = diry;\n }\n }\n this.emit();\n }\n pointerClick(event) {\n if (!this.state.tap && event.detail > 0) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n setupPointer(event) {\n const config = this.config;\n const device = config.device;\n if (false) {\n try {\n if (device === \"pointer\" && config.preventScrollDelay === void 0) {\n const currentTarget = \"uv\" in event ? event.sourceEvent.currentTarget : event.currentTarget;\n const style = window.getComputedStyle(currentTarget);\n if (style.touchAction === \"auto\") {\n console.warn(`[@use-gesture]: The drag target has its \\`touch-action\\` style property set to \\`auto\\`. It is recommended to add \\`touch-action: 'none'\\` so that the drag gesture behaves correctly on touch-enabled devices. For more information read this: https:\/\/use-gesture.netlify.app\/docs\/extras\/#touch-action.\n\nThis message will only show in development mode. It won't appear in production. If this is intended, you can ignore it.`, currentTarget);\n }\n }\n } catch (_unused2) {\n }\n }\n if (config.pointerLock) {\n event.currentTarget.requestPointerLock();\n }\n if (!config.pointerCapture) {\n this.eventStore.add(this.sharedConfig.window, device, \"change\", this.pointerMove.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, \"end\", this.pointerUp.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, \"cancel\", this.pointerUp.bind(this));\n }\n }\n pointerClean() {\n if (this.config.pointerLock && document.pointerLockElement === this.state.currentTarget) {\n document.exitPointerLock();\n }\n }\n preventScroll(event) {\n if (this.state._preventScroll && event.cancelable) {\n event.preventDefault();\n }\n }\n setupScrollPrevention(event) {\n this.state._preventScroll = false;\n persistEvent(event);\n const remove2 = this.eventStore.add(this.sharedConfig.window, \"touch\", \"change\", this.preventScroll.bind(this), {\n passive: false\n });\n this.eventStore.add(this.sharedConfig.window, \"touch\", \"end\", remove2);\n this.eventStore.add(this.sharedConfig.window, \"touch\", \"cancel\", remove2);\n this.timeoutStore.add(\"startPointerDrag\", this.startPointerDrag.bind(this), this.config.preventScrollDelay, event);\n }\n setupDelayTrigger(event) {\n this.state._delayed = true;\n this.timeoutStore.add(\"dragDelay\", () => {\n this.state._step = [0, 0];\n this.startPointerDrag(event);\n }, this.config.delay);\n }\n keyDown(event) {\n const deltaFn = KEYS_DELTA_MAP[event.key];\n if (deltaFn) {\n const state = this.state;\n const factor = event.shiftKey ? 10 : event.altKey ? 0.1 : 1;\n this.start(event);\n state._delta = deltaFn(factor);\n state._keyboardActive = true;\n V.addTo(state._movement, state._delta);\n this.compute(event);\n this.emit();\n }\n }\n keyUp(event) {\n if (!(event.key in KEYS_DELTA_MAP))\n return;\n this.state._keyboardActive = false;\n this.setActive();\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n bindFunction(device, \"start\", this.pointerDown.bind(this));\n if (this.config.pointerCapture) {\n bindFunction(device, \"change\", this.pointerMove.bind(this));\n bindFunction(device, \"end\", this.pointerUp.bind(this));\n bindFunction(device, \"cancel\", this.pointerUp.bind(this));\n bindFunction(\"lostPointerCapture\", \"\", this.pointerUp.bind(this));\n }\n if (this.config.keys) {\n bindFunction(\"key\", \"down\", this.keyDown.bind(this));\n bindFunction(\"key\", \"up\", this.keyUp.bind(this));\n }\n if (this.config.filterTaps) {\n bindFunction(\"click\", \"\", this.pointerClick.bind(this), {\n capture: true,\n passive: false\n });\n }\n }\n};\nfunction persistEvent(event) {\n \"persist\" in event && typeof event.persist === \"function\" && event.persist();\n}\nvar isBrowser = typeof window !== \"undefined\" && window.document && window.document.createElement;\nfunction supportsTouchEvents() {\n return isBrowser && \"ontouchstart\" in window;\n}\nfunction isTouchScreen() {\n return supportsTouchEvents() || isBrowser && window.navigator.maxTouchPoints > 1;\n}\nfunction supportsPointerEvents() {\n return isBrowser && \"onpointerdown\" in window;\n}\nfunction supportsPointerLock() {\n return isBrowser && \"exitPointerLock\" in window.document;\n}\nfunction supportsGestureEvents() {\n try {\n return \"constructor\" in GestureEvent;\n } catch (e2) {\n return false;\n }\n}\nvar SUPPORT = {\n isBrowser,\n gesture: supportsGestureEvents(),\n touch: isTouchScreen(),\n touchscreen: isTouchScreen(),\n pointer: supportsPointerEvents(),\n pointerLock: supportsPointerLock()\n};\nvar DEFAULT_PREVENT_SCROLL_DELAY = 250;\nvar DEFAULT_DRAG_DELAY = 180;\nvar DEFAULT_SWIPE_VELOCITY = 0.5;\nvar DEFAULT_SWIPE_DISTANCE = 50;\nvar DEFAULT_SWIPE_DURATION = 250;\nvar DEFAULT_DRAG_AXIS_THRESHOLD = {\n mouse: 0,\n touch: 0,\n pen: 8\n};\nvar dragConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n device(_v, _k, {\n pointer: {\n touch = false,\n lock = false,\n mouse = false\n } = {}\n }) {\n this.pointerLock = lock && SUPPORT.pointerLock;\n if (SUPPORT.touch && touch)\n return \"touch\";\n if (this.pointerLock)\n return \"mouse\";\n if (SUPPORT.pointer && !mouse)\n return \"pointer\";\n if (SUPPORT.touch)\n return \"touch\";\n return \"mouse\";\n },\n preventScrollAxis(value, _k, {\n preventScroll\n }) {\n this.preventScrollDelay = typeof preventScroll === \"number\" ? preventScroll : preventScroll || preventScroll === void 0 && value ? DEFAULT_PREVENT_SCROLL_DELAY : void 0;\n if (!SUPPORT.touchscreen || preventScroll === false)\n return void 0;\n return value ? value : preventScroll !== void 0 ? \"y\" : void 0;\n },\n pointerCapture(_v, _k, {\n pointer: {\n capture = true,\n buttons = 1,\n keys = true\n } = {}\n }) {\n this.pointerButtons = buttons;\n this.keys = keys;\n return !this.pointerLock && this.device === \"pointer\" && capture;\n },\n threshold(value, _k, {\n filterTaps = false,\n tapsThreshold = 3,\n axis = void 0\n }) {\n const threshold = V.toVector(value, filterTaps ? tapsThreshold : axis ? 1 : 0);\n this.filterTaps = filterTaps;\n this.tapsThreshold = tapsThreshold;\n return threshold;\n },\n swipe({\n velocity = DEFAULT_SWIPE_VELOCITY,\n distance = DEFAULT_SWIPE_DISTANCE,\n duration = DEFAULT_SWIPE_DURATION\n } = {}) {\n return {\n velocity: this.transform(V.toVector(velocity)),\n distance: this.transform(V.toVector(distance)),\n duration\n };\n },\n delay(value = 0) {\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n case false:\n return 0;\n default:\n return value;\n }\n },\n axisThreshold(value) {\n if (!value)\n return DEFAULT_DRAG_AXIS_THRESHOLD;\n return _objectSpread2(_objectSpread2({}, DEFAULT_DRAG_AXIS_THRESHOLD), value);\n }\n});\nif (false) {\n Object.assign(dragConfigResolver, {\n useTouch(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`useTouch\\` option has been renamed to \\`pointer.touch\\`. Use it as in \\`{ pointer: { touch: true } }\\`.`);\n }\n return NaN;\n },\n experimental_preventWindowScrollY(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`experimental_preventWindowScrollY\\` option has been renamed to \\`preventScroll\\`.`);\n }\n return NaN;\n },\n swipeVelocity(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`swipeVelocity\\` option has been renamed to \\`swipe.velocity\\`. Use it as in \\`{ swipe: { velocity: 0.5 } }\\`.`);\n }\n return NaN;\n },\n swipeDistance(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`swipeDistance\\` option has been renamed to \\`swipe.distance\\`. Use it as in \\`{ swipe: { distance: 50 } }\\`.`);\n }\n return NaN;\n },\n swipeDuration(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`swipeDuration\\` option has been renamed to \\`swipe.duration\\`. Use it as in \\`{ swipe: { duration: 250 } }\\`.`);\n }\n return NaN;\n }\n });\n}\nfunction clampStateInternalMovementToBounds(state) {\n const [ox, oy] = state.overflow;\n const [dx, dy] = state._delta;\n const [dirx, diry] = state._direction;\n if (ox < 0 && dx > 0 && dirx < 0 || ox > 0 && dx < 0 && dirx > 0) {\n state._movement[0] = state._movementBound[0];\n }\n if (oy < 0 && dy > 0 && diry < 0 || oy > 0 && dy < 0 && diry > 0) {\n state._movement[1] = state._movementBound[1];\n }\n}\nvar SCALE_ANGLE_RATIO_INTENT_DEG = 30;\nvar PINCH_WHEEL_RATIO = 100;\nvar PinchEngine = class extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"pinching\");\n _defineProperty(this, \"aliasKey\", \"da\");\n }\n init() {\n this.state.offset = [1, 0];\n this.state.lastOffset = [1, 0];\n this.state._pointerEvents = \/* @__PURE__ *\/ new Map();\n }\n reset() {\n super.reset();\n const state = this.state;\n state._touchIds = [];\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n state.turns = 0;\n }\n computeOffset() {\n const {\n type,\n movement,\n lastOffset\n } = this.state;\n if (type === \"wheel\") {\n this.state.offset = V.add(movement, lastOffset);\n } else {\n this.state.offset = [(1 + movement[0]) * lastOffset[0], movement[1] + lastOffset[1]];\n }\n }\n computeMovement() {\n const {\n offset,\n lastOffset\n } = this.state;\n this.state.movement = [offset[0] \/ lastOffset[0], offset[1] - lastOffset[1]];\n }\n axisIntent() {\n const state = this.state;\n const [_m0, _m1] = state._movement;\n if (!state.axis) {\n const axisMovementDifference = Math.abs(_m0) * SCALE_ANGLE_RATIO_INTENT_DEG - Math.abs(_m1);\n if (axisMovementDifference < 0)\n state.axis = \"angle\";\n else if (axisMovementDifference > 0)\n state.axis = \"scale\";\n }\n }\n restrictToAxis(v4) {\n if (this.config.lockDirection) {\n if (this.state.axis === \"scale\")\n v4[1] = 0;\n else if (this.state.axis === \"angle\")\n v4[0] = 0;\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled)\n return;\n setTimeout(() => {\n state.canceled = true;\n state._active = false;\n this.compute();\n this.emit();\n }, 0);\n }\n touchStart(event) {\n this.ctrl.setEventIds(event);\n const state = this.state;\n const ctrlTouchIds = this.ctrl.touchIds;\n if (state._active) {\n if (state._touchIds.every((id3) => ctrlTouchIds.has(id3)))\n return;\n }\n if (ctrlTouchIds.size < 2)\n return;\n this.start(event);\n state._touchIds = Array.from(ctrlTouchIds).slice(0, 2);\n const payload = touchDistanceAngle(event, state._touchIds);\n this.pinchStart(event, payload);\n }\n pointerStart(event) {\n if (event.buttons != null && event.buttons % 2 !== 1)\n return;\n this.ctrl.setEventIds(event);\n event.target.setPointerCapture(event.pointerId);\n const state = this.state;\n const _pointerEvents = state._pointerEvents;\n const ctrlPointerIds = this.ctrl.pointerIds;\n if (state._active) {\n if (Array.from(_pointerEvents.keys()).every((id3) => ctrlPointerIds.has(id3)))\n return;\n }\n if (_pointerEvents.size < 2) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (state._pointerEvents.size < 2)\n return;\n this.start(event);\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n this.pinchStart(event, payload);\n }\n pinchStart(event, payload) {\n const state = this.state;\n state.origin = payload.origin;\n this.computeValues([payload.distance, payload.angle]);\n this.computeInitial();\n this.compute(event);\n this.emit();\n }\n touchMove(event) {\n if (!this.state._active)\n return;\n const payload = touchDistanceAngle(event, this.state._touchIds);\n this.pinchMove(event, payload);\n }\n pointerMove(event) {\n const _pointerEvents = this.state._pointerEvents;\n if (_pointerEvents.has(event.pointerId)) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (!this.state._active)\n return;\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n this.pinchMove(event, payload);\n }\n pinchMove(event, payload) {\n const state = this.state;\n const prev_a = state._values[1];\n const delta_a = payload.angle - prev_a;\n let delta_turns = 0;\n if (Math.abs(delta_a) > 270)\n delta_turns += Math.sign(delta_a);\n this.computeValues([payload.distance, payload.angle - 360 * delta_turns]);\n state.origin = payload.origin;\n state.turns = delta_turns;\n state._movement = [state._values[0] \/ state._initial[0] - 1, state._values[1] - state._initial[1]];\n this.compute(event);\n this.emit();\n }\n touchEnd(event) {\n this.ctrl.setEventIds(event);\n if (!this.state._active)\n return;\n if (this.state._touchIds.some((id3) => !this.ctrl.touchIds.has(id3))) {\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n pointerEnd(event) {\n const state = this.state;\n this.ctrl.setEventIds(event);\n try {\n event.target.releasePointerCapture(event.pointerId);\n } catch (_unused) {\n }\n if (state._pointerEvents.has(event.pointerId)) {\n state._pointerEvents.delete(event.pointerId);\n }\n if (!state._active)\n return;\n if (state._pointerEvents.size < 2) {\n state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n gestureStart(event) {\n if (event.cancelable)\n event.preventDefault();\n const state = this.state;\n if (state._active)\n return;\n this.start(event);\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n gestureMove(event) {\n if (event.cancelable)\n event.preventDefault();\n if (!this.state._active)\n return;\n const state = this.state;\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n const _previousMovement = state._movement;\n state._movement = [event.scale - 1, event.rotation];\n state._delta = V.sub(state._movement, _previousMovement);\n this.compute(event);\n this.emit();\n }\n gestureEnd(event) {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n wheel(event) {\n const modifierKey = this.config.modifierKey;\n if (modifierKey && !event[modifierKey])\n return;\n if (!this.state._active)\n this.wheelStart(event);\n else\n this.wheelChange(event);\n this.timeoutStore.add(\"wheelEnd\", this.wheelEnd.bind(this));\n }\n wheelStart(event) {\n this.start(event);\n this.wheelChange(event);\n }\n wheelChange(event) {\n const isR3f = \"uv\" in event;\n if (!isR3f) {\n if (event.cancelable) {\n event.preventDefault();\n }\n if (false) {\n console.warn(`[@use-gesture]: To properly support zoom on trackpads, try using the \\`target\\` option.\n\nThis message will only appear in development mode.`);\n }\n }\n const state = this.state;\n state._delta = [-wheelValues(event)[1] \/ PINCH_WHEEL_RATIO * state.offset[0], 0];\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n if (!!device) {\n bindFunction(device, \"start\", this[device + \"Start\"].bind(this));\n bindFunction(device, \"change\", this[device + \"Move\"].bind(this));\n bindFunction(device, \"end\", this[device + \"End\"].bind(this));\n bindFunction(device, \"cancel\", this[device + \"End\"].bind(this));\n }\n if (this.config.pinchOnWheel) {\n bindFunction(\"wheel\", \"\", this.wheel.bind(this), {\n passive: false\n });\n }\n }\n};\nvar pinchConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n device(_v, _k, {\n shared,\n pointer: {\n touch = false\n } = {}\n }) {\n const sharedConfig = shared;\n if (sharedConfig.target && !SUPPORT.touch && SUPPORT.gesture)\n return \"gesture\";\n if (SUPPORT.touch && touch)\n return \"touch\";\n if (SUPPORT.touchscreen) {\n if (SUPPORT.pointer)\n return \"pointer\";\n if (SUPPORT.touch)\n return \"touch\";\n }\n },\n bounds(_v, _k, {\n scaleBounds = {},\n angleBounds = {}\n }) {\n const _scaleBounds = (state) => {\n const D4 = assignDefault(call(scaleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D4.min, D4.max];\n };\n const _angleBounds = (state) => {\n const A4 = assignDefault(call(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A4.min, A4.max];\n };\n if (typeof scaleBounds !== \"function\" && typeof angleBounds !== \"function\")\n return [_scaleBounds(), _angleBounds()];\n return (state) => [_scaleBounds(state), _angleBounds(state)];\n },\n threshold(value, _k, config) {\n this.lockDirection = config.axis === \"lock\";\n const threshold = V.toVector(value, this.lockDirection ? [0.1, 3] : 0);\n return threshold;\n },\n modifierKey(value) {\n if (value === void 0)\n return \"ctrlKey\";\n return value;\n },\n pinchOnWheel(value = true) {\n return value;\n }\n});\nvar MoveEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"moving\");\n }\n move(event) {\n if (this.config.mouseOnly && event.pointerType !== \"mouse\")\n return;\n if (!this.state._active)\n this.moveStart(event);\n else\n this.moveChange(event);\n this.timeoutStore.add(\"moveEnd\", this.moveEnd.bind(this));\n }\n moveStart(event) {\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.computeInitial();\n this.emit();\n }\n moveChange(event) {\n if (!this.state._active)\n return;\n const values = pointerValues(event);\n const state = this.state;\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n moveEnd(event) {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"pointer\", \"change\", this.move.bind(this));\n bindFunction(\"pointer\", \"leave\", this.moveEnd.bind(this));\n }\n};\nvar moveConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\nvar ScrollEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"scrolling\");\n }\n scroll(event) {\n if (!this.state._active)\n this.start(event);\n this.scrollChange(event);\n this.timeoutStore.add(\"scrollEnd\", this.scrollEnd.bind(this));\n }\n scrollChange(event) {\n if (event.cancelable)\n event.preventDefault();\n const state = this.state;\n const values = scrollValues(event);\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n scrollEnd() {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"scroll\", \"\", this.scroll.bind(this));\n }\n};\nvar scrollConfigResolver = coordinatesConfigResolver;\nvar WheelEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"wheeling\");\n }\n wheel(event) {\n if (!this.state._active)\n this.start(event);\n this.wheelChange(event);\n this.timeoutStore.add(\"wheelEnd\", this.wheelEnd.bind(this));\n }\n wheelChange(event) {\n const state = this.state;\n state._delta = wheelValues(event);\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"wheel\", \"\", this.wheel.bind(this));\n }\n};\nvar wheelConfigResolver = coordinatesConfigResolver;\nvar HoverEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"hovering\");\n }\n enter(event) {\n if (this.config.mouseOnly && event.pointerType !== \"mouse\")\n return;\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.emit();\n }\n leave(event) {\n if (this.config.mouseOnly && event.pointerType !== \"mouse\")\n return;\n const state = this.state;\n if (!state._active)\n return;\n state._active = false;\n const values = pointerValues(event);\n state._movement = state._delta = V.sub(values, state._values);\n this.computeValues(values);\n this.compute(event);\n state.delta = state.movement;\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"pointer\", \"enter\", this.enter.bind(this));\n bindFunction(\"pointer\", \"leave\", this.leave.bind(this));\n }\n};\nvar hoverConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\nvar EngineMap = \/* @__PURE__ *\/ new Map();\nvar ConfigResolverMap = \/* @__PURE__ *\/ new Map();\nfunction registerAction(action2) {\n EngineMap.set(action2.key, action2.engine);\n ConfigResolverMap.set(action2.key, action2.resolver);\n}\nvar dragAction = {\n key: \"drag\",\n engine: DragEngine,\n resolver: dragConfigResolver\n};\nvar hoverAction = {\n key: \"hover\",\n engine: HoverEngine,\n resolver: hoverConfigResolver\n};\nvar moveAction = {\n key: \"move\",\n engine: MoveEngine,\n resolver: moveConfigResolver\n};\nvar pinchAction = {\n key: \"pinch\",\n engine: PinchEngine,\n resolver: pinchConfigResolver\n};\nvar scrollAction = {\n key: \"scroll\",\n engine: ScrollEngine,\n resolver: scrollConfigResolver\n};\nvar wheelAction = {\n key: \"wheel\",\n engine: WheelEngine,\n resolver: wheelConfigResolver\n};\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/react\/dist\/use-gesture-react.esm.js\nvar import_react2 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/core\/dist\/use-gesture-core.esm.js\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null)\n return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i4;\n for (i4 = 0; i4 < sourceKeys.length; i4++) {\n key = sourceKeys[i4];\n if (excluded.indexOf(key) >= 0)\n continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null)\n return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i4;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i4 = 0; i4 < sourceSymbolKeys.length; i4++) {\n key = sourceSymbolKeys[i4];\n if (excluded.indexOf(key) >= 0)\n continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nvar sharedConfigResolver = {\n target(value) {\n if (value) {\n return () => \"current\" in value ? value.current : value;\n }\n return void 0;\n },\n enabled(value = true) {\n return value;\n },\n window(value = SUPPORT.isBrowser ? window : void 0) {\n return value;\n },\n eventOptions({\n passive = true,\n capture = false\n } = {}) {\n return {\n passive,\n capture\n };\n },\n transform(value) {\n return value;\n }\n};\nvar _excluded = [\"target\", \"eventOptions\", \"window\", \"enabled\", \"transform\"];\nfunction resolveWith(config = {}, resolvers) {\n const result = {};\n for (const [key, resolver] of Object.entries(resolvers)) {\n switch (typeof resolver) {\n case \"function\":\n if (false) {\n const r4 = resolver.call(result, config[key], key, config);\n if (!Number.isNaN(r4))\n result[key] = r4;\n } else {\n result[key] = resolver.call(result, config[key], key, config);\n }\n break;\n case \"object\":\n result[key] = resolveWith(config[key], resolver);\n break;\n case \"boolean\":\n if (resolver)\n result[key] = config[key];\n break;\n }\n }\n return result;\n}\nfunction parse2(newConfig, gestureKey, _config = {}) {\n const _ref = newConfig, {\n target,\n eventOptions,\n window: window2,\n enabled,\n transform\n } = _ref, rest = _objectWithoutProperties(_ref, _excluded);\n _config.shared = resolveWith({\n target,\n eventOptions,\n window: window2,\n enabled,\n transform\n }, sharedConfigResolver);\n if (gestureKey) {\n const resolver = ConfigResolverMap.get(gestureKey);\n _config[gestureKey] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest), resolver);\n } else {\n for (const key in rest) {\n const resolver = ConfigResolverMap.get(key);\n if (resolver) {\n _config[key] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest[key]), resolver);\n } else if (false) {\n if (![\"drag\", \"pinch\", \"scroll\", \"wheel\", \"move\", \"hover\"].includes(key)) {\n if (key === \"domTarget\") {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n console.warn(`[@use-gesture]: Unknown config key \\`${key}\\` was used. Please read the documentation for further information.`);\n }\n }\n }\n }\n return _config;\n}\nvar EventStore = class {\n constructor(ctrl, gestureKey) {\n _defineProperty(this, \"_listeners\", \/* @__PURE__ *\/ new Set());\n this._ctrl = ctrl;\n this._gestureKey = gestureKey;\n }\n add(element, device, action2, handler, options) {\n const listeners = this._listeners;\n const type = toDomEventType(device, action2);\n const _options = this._gestureKey ? this._ctrl.config[this._gestureKey].eventOptions : {};\n const eventOptions = _objectSpread2(_objectSpread2({}, _options), options);\n element.addEventListener(type, handler, eventOptions);\n const remove2 = () => {\n element.removeEventListener(type, handler, eventOptions);\n listeners.delete(remove2);\n };\n listeners.add(remove2);\n return remove2;\n }\n clean() {\n this._listeners.forEach((remove2) => remove2());\n this._listeners.clear();\n }\n};\nvar TimeoutStore = class {\n constructor() {\n _defineProperty(this, \"_timeouts\", \/* @__PURE__ *\/ new Map());\n }\n add(key, callback, ms = 140, ...args) {\n this.remove(key);\n this._timeouts.set(key, window.setTimeout(callback, ms, ...args));\n }\n remove(key) {\n const timeout = this._timeouts.get(key);\n if (timeout)\n window.clearTimeout(timeout);\n }\n clean() {\n this._timeouts.forEach((timeout) => void window.clearTimeout(timeout));\n this._timeouts.clear();\n }\n};\nvar Controller = class {\n constructor(handlers) {\n _defineProperty(this, \"gestures\", \/* @__PURE__ *\/ new Set());\n _defineProperty(this, \"_targetEventStore\", new EventStore(this));\n _defineProperty(this, \"gestureEventStores\", {});\n _defineProperty(this, \"gestureTimeoutStores\", {});\n _defineProperty(this, \"handlers\", {});\n _defineProperty(this, \"config\", {});\n _defineProperty(this, \"pointerIds\", \/* @__PURE__ *\/ new Set());\n _defineProperty(this, \"touchIds\", \/* @__PURE__ *\/ new Set());\n _defineProperty(this, \"state\", {\n shared: {\n shiftKey: false,\n metaKey: false,\n ctrlKey: false,\n altKey: false\n }\n });\n resolveGestures(this, handlers);\n }\n setEventIds(event) {\n if (isTouch(event)) {\n this.touchIds = new Set(touchIds(event));\n return this.touchIds;\n } else if (\"pointerId\" in event) {\n if (event.type === \"pointerup\" || event.type === \"pointercancel\")\n this.pointerIds.delete(event.pointerId);\n else if (event.type === \"pointerdown\")\n this.pointerIds.add(event.pointerId);\n return this.pointerIds;\n }\n }\n applyHandlers(handlers, nativeHandlers) {\n this.handlers = handlers;\n this.nativeHandlers = nativeHandlers;\n }\n applyConfig(config, gestureKey) {\n this.config = parse2(config, gestureKey, this.config);\n }\n clean() {\n this._targetEventStore.clean();\n for (const key of this.gestures) {\n this.gestureEventStores[key].clean();\n this.gestureTimeoutStores[key].clean();\n }\n }\n effect() {\n if (this.config.shared.target)\n this.bind();\n return () => this._targetEventStore.clean();\n }\n bind(...args) {\n const sharedConfig = this.config.shared;\n const props = {};\n let target;\n if (sharedConfig.target) {\n target = sharedConfig.target();\n if (!target)\n return;\n }\n if (sharedConfig.enabled) {\n for (const gestureKey of this.gestures) {\n const gestureConfig = this.config[gestureKey];\n const bindFunction = bindToProps(props, gestureConfig.eventOptions, !!target);\n if (gestureConfig.enabled) {\n const Engine2 = EngineMap.get(gestureKey);\n new Engine2(this, args, gestureKey).bind(bindFunction);\n }\n }\n const nativeBindFunction = bindToProps(props, sharedConfig.eventOptions, !!target);\n for (const eventKey in this.nativeHandlers) {\n nativeBindFunction(\n eventKey,\n \"\",\n (event) => this.nativeHandlers[eventKey](_objectSpread2(_objectSpread2({}, this.state.shared), {}, {\n event,\n args\n })),\n void 0,\n true\n );\n }\n }\n for (const handlerProp in props) {\n props[handlerProp] = chain(...props[handlerProp]);\n }\n if (!target)\n return props;\n for (const handlerProp in props) {\n const {\n device,\n capture,\n passive\n } = parseProp(handlerProp);\n this._targetEventStore.add(target, device, \"\", props[handlerProp], {\n capture,\n passive\n });\n }\n }\n};\nfunction setupGesture(ctrl, gestureKey) {\n ctrl.gestures.add(gestureKey);\n ctrl.gestureEventStores[gestureKey] = new EventStore(ctrl, gestureKey);\n ctrl.gestureTimeoutStores[gestureKey] = new TimeoutStore();\n}\nfunction resolveGestures(ctrl, internalHandlers) {\n if (internalHandlers.drag)\n setupGesture(ctrl, \"drag\");\n if (internalHandlers.wheel)\n setupGesture(ctrl, \"wheel\");\n if (internalHandlers.scroll)\n setupGesture(ctrl, \"scroll\");\n if (internalHandlers.move)\n setupGesture(ctrl, \"move\");\n if (internalHandlers.pinch)\n setupGesture(ctrl, \"pinch\");\n if (internalHandlers.hover)\n setupGesture(ctrl, \"hover\");\n}\nvar bindToProps = (props, eventOptions, withPassiveOption) => (device, action2, handler, options = {}, isNative = false) => {\n var _options$capture, _options$passive;\n const capture = (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : eventOptions.capture;\n const passive = (_options$passive = options.passive) !== null && _options$passive !== void 0 ? _options$passive : eventOptions.passive;\n let handlerProp = isNative ? device : toHandlerProp(device, action2, capture);\n if (withPassiveOption && passive)\n handlerProp += \"Passive\";\n props[handlerProp] = props[handlerProp] || [];\n props[handlerProp].push(handler);\n};\nvar RE_NOT_NATIVE = \/^on(Drag|Wheel|Scroll|Move|Pinch|Hover)\/;\nfunction sortHandlers(_handlers) {\n const native = {};\n const handlers = {};\n const actions = \/* @__PURE__ *\/ new Set();\n for (let key in _handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handlers[key] = _handlers[key];\n } else {\n native[key] = _handlers[key];\n }\n }\n return [handlers, native, actions];\n}\nfunction registerGesture(actions, handlers, handlerKey, key, internalHandlers, config) {\n if (!actions.has(handlerKey))\n return;\n if (!EngineMap.has(key)) {\n if (false) {\n console.warn(`[@use-gesture]: You've created a custom handler that that uses the \\`${key}\\` gesture but isn't properly configured.\n\nPlease add \\`${key}Action\\` when creating your handler.`);\n }\n return;\n }\n const startKey = handlerKey + \"Start\";\n const endKey = handlerKey + \"End\";\n const fn = (state) => {\n let memo6 = void 0;\n if (state.first && startKey in handlers)\n handlers[startKey](state);\n if (handlerKey in handlers)\n memo6 = handlers[handlerKey](state);\n if (state.last && endKey in handlers)\n handlers[endKey](state);\n return memo6;\n };\n internalHandlers[key] = fn;\n config[key] = config[key] || {};\n}\nfunction parseMergedHandlers(mergedHandlers, mergedConfig) {\n const [handlers, nativeHandlers, actions] = sortHandlers(mergedHandlers);\n const internalHandlers = {};\n registerGesture(actions, handlers, \"onDrag\", \"drag\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onWheel\", \"wheel\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onScroll\", \"scroll\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onPinch\", \"pinch\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onMove\", \"move\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onHover\", \"hover\", internalHandlers, mergedConfig);\n return {\n handlers: internalHandlers,\n config: mergedConfig,\n nativeHandlers\n };\n}\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/react\/dist\/use-gesture-react.esm.js\nfunction useRecognizers(handlers, config = {}, gestureKey, nativeHandlers) {\n const ctrl = import_react2.default.useMemo(() => new Controller(handlers), []);\n ctrl.applyHandlers(handlers, nativeHandlers);\n ctrl.applyConfig(config, gestureKey);\n import_react2.default.useEffect(ctrl.effect.bind(ctrl));\n import_react2.default.useEffect(() => {\n return ctrl.clean.bind(ctrl);\n }, []);\n if (config.target === void 0) {\n return ctrl.bind.bind(ctrl);\n }\n return void 0;\n}\nfunction createUseGesture(actions) {\n actions.forEach(registerAction);\n return function useGesture2(_handlers, _config) {\n const {\n handlers,\n nativeHandlers,\n config\n } = parseMergedHandlers(_handlers, _config || {});\n return useRecognizers(handlers, config, void 0, nativeHandlers);\n };\n}\nfunction useGesture(handlers, config) {\n const hook = createUseGesture([dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction]);\n return hook(handlers, config || {});\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useGestureEvents.ts\nvar React8 = __toESM(require(\"react\"));\nfunction useGestureEvents(ref) {\n const { viewport, inputs, callbacks } = useRendererContext();\n const rOriginPoint = React8.useRef(void 0);\n const rDelta = React8.useRef([0, 0]);\n const rWheelTs = React8.useRef(0);\n const events = React8.useMemo(() => {\n const onWheel = (gesture) => {\n var _a3;\n const { event } = gesture;\n event.preventDefault();\n const [x4, y4, z3] = normalizeWheel(event);\n if (inputs.state === \"pinching\" || rWheelTs.current >= event.timeStamp) {\n return;\n }\n rWheelTs.current = event.timeStamp;\n if ((event.altKey || event.ctrlKey || event.metaKey) && event.buttons === 0) {\n const bounds = viewport.bounds;\n const point = (_a3 = inputs.currentScreenPoint) != null ? _a3 : [bounds.width \/ 2, bounds.height \/ 2];\n const delta = z3 \/ 100;\n const zoom = viewport.camera.zoom;\n viewport.onZoom(point, zoom - delta * zoom);\n return;\n } else {\n const delta = src_default.mul(\n event.shiftKey && !isDarwin() ? [y4, 0] : [x4, y4],\n 0.8\n );\n if (src_default.isEqual(delta, [0, 0])) {\n return;\n }\n viewport.panCamera(delta);\n }\n };\n const onPinchStart = ({ event, delta, offset, origin }) => {\n var _a3;\n const elm = ref.current;\n if (event instanceof WheelEvent)\n return;\n if (!(event.target === elm || (elm == null ? void 0 : elm.contains(event.target))))\n return;\n (_a3 = callbacks.onPinchStart) == null ? void 0 : _a3.call(\n callbacks,\n {\n type: \"canvas\" \/* Canvas *\/,\n order: 0,\n delta: [...delta, offset[0]],\n offset,\n point: src_default.sub(origin, inputs.containerOffset)\n },\n event\n );\n rOriginPoint.current = origin;\n rDelta.current = [0, 0];\n };\n const onPinch = ({ event, offset, origin }) => {\n var _a3;\n const elm = ref.current;\n if (event instanceof WheelEvent)\n return;\n if (!(event.target === elm || (elm == null ? void 0 : elm.contains(event.target))))\n return;\n if (!rOriginPoint.current) {\n rOriginPoint.current = origin;\n }\n const delta = src_default.sub(rOriginPoint.current, origin);\n const trueDelta = src_default.sub(delta, rDelta.current);\n (_a3 = callbacks.onPinch) == null ? void 0 : _a3.call(\n callbacks,\n {\n type: \"canvas\" \/* Canvas *\/,\n order: 0,\n delta: [...trueDelta, offset[0]],\n offset,\n point: src_default.sub(origin, inputs.containerOffset)\n },\n event\n );\n rDelta.current = delta;\n };\n const onPinchEnd = ({ event, delta, offset, origin }) => {\n var _a3;\n const elm = ref.current;\n if (event instanceof WheelEvent)\n return;\n if (!(event.target === elm || (elm == null ? void 0 : elm.contains(event.target))))\n return;\n if (inputs.state !== \"pinching\")\n return;\n (_a3 = callbacks.onPinchEnd) == null ? void 0 : _a3.call(\n callbacks,\n {\n type: \"canvas\" \/* Canvas *\/,\n order: 0,\n delta: [0, 0, offset[0]],\n offset,\n point: src_default.sub(origin, inputs.containerOffset)\n },\n event\n );\n rDelta.current = [0, 0];\n };\n return {\n onWheel,\n onPinchStart,\n onPinchEnd,\n onPinch\n };\n }, [callbacks]);\n useGesture(events, {\n target: ref,\n eventOptions: { passive: false },\n pinch: {\n from: [viewport.camera.zoom, viewport.camera.zoom],\n scaleBounds: () => ({\n from: viewport.camera.zoom,\n max: TLViewport.maxZoom,\n min: TLViewport.minZoom\n })\n }\n });\n}\nfunction normalizeWheel(event) {\n const MAX_ZOOM_STEP = 10;\n const { deltaY, deltaX } = event;\n let deltaZ = 0;\n if (event.ctrlKey || event.metaKey) {\n const signY = Math.sign(event.deltaY);\n const absDeltaY = Math.abs(event.deltaY);\n let dy = deltaY;\n if (absDeltaY > MAX_ZOOM_STEP) {\n dy = MAX_ZOOM_STEP * signY;\n }\n deltaZ = dy;\n }\n return [deltaX, deltaY, deltaZ];\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCounterScaledPosition.tsx\nvar React9 = __toESM(require(\"react\"));\nfunction useCounterScaledPosition(ref, bounds, rotation, zIndex) {\n React9.useLayoutEffect(() => {\n const elm = ref.current;\n elm.style.transform = `translate(\n calc(${bounds.minX}px - var(--tl-padding)),\n calc(${bounds.minY}px - var(--tl-padding)))\n scale(var(--tl-scale))`;\n }, [bounds.minX, bounds.minY, rotation, bounds.rotation]);\n React9.useLayoutEffect(() => {\n const elm = ref.current;\n elm.style.width = `calc(${Math.floor(bounds.width)}px + (var(--tl-padding) * 2))`;\n elm.style.height = `calc(${Math.floor(bounds.height)}px + (var(--tl-padding) * 2))`;\n }, [bounds.width, bounds.height]);\n React9.useLayoutEffect(() => {\n const elm = ref.current;\n if (zIndex !== void 0)\n elm.style.zIndex = zIndex.toString();\n }, [zIndex]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useSetup.ts\nvar React10 = __toESM(require(\"react\"));\nfunction useSetup(app, props) {\n const {\n onPersist,\n onError,\n onMount,\n onCreateAssets,\n onCreateShapes,\n onDeleteAssets,\n onDeleteShapes,\n onDrop,\n onPaste,\n onCopy,\n onCanvasDBClick\n } = props;\n React10.useLayoutEffect(() => {\n const unsubs = [];\n if (!app)\n return;\n if (typeof window !== void 0) {\n window[\"tlapps\"] = window[\"tlapps\"] || {};\n window[\"tlapps\"][app.uuid] = app;\n }\n if (onMount)\n onMount(app, null);\n return () => {\n unsubs.forEach((unsub) => unsub());\n if (typeof window !== void 0 && window[\"tlapps\"]) {\n delete window[\"tlapps\"][app.uuid];\n }\n };\n }, [app]);\n React10.useLayoutEffect(() => {\n const unsubs = [];\n if (onPersist)\n unsubs.push(app.subscribe(\"persist\", onPersist));\n if (onError)\n unsubs.push(app.subscribe(\"error\", onError));\n if (onCreateShapes)\n unsubs.push(app.subscribe(\"create-shapes\", onCreateShapes));\n if (onCreateAssets)\n unsubs.push(app.subscribe(\"create-assets\", onCreateAssets));\n if (onDeleteShapes)\n unsubs.push(app.subscribe(\"delete-shapes\", onDeleteShapes));\n if (onDeleteAssets)\n unsubs.push(app.subscribe(\"delete-assets\", onDeleteAssets));\n if (onDrop)\n unsubs.push(app.subscribe(\"drop\", onDrop));\n if (onPaste)\n unsubs.push(app.subscribe(\"paste\", onPaste));\n if (onCopy)\n unsubs.push(app.subscribe(\"copy\", onCopy));\n if (onCanvasDBClick)\n unsubs.push(app.subscribe(\"canvas-dbclick\", onCanvasDBClick));\n return () => unsubs.forEach((unsub) => unsub());\n }, [app, onPersist, onError]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useAppSetup.ts\nvar React11 = __toESM(require(\"react\"));\nfunction useAppSetup(props) {\n if (\"app\" in props)\n return props.app;\n const [app] = React11.useState(\n () => new TLReactApp(props.model, props.Shapes, props.Tools, props.readOnly)\n );\n React11.useLayoutEffect(() => {\n return () => {\n app.dispose();\n };\n }, [app]);\n return app;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/usePropControl.ts\nvar React12 = __toESM(require(\"react\"));\nfunction usePropControl(app, props) {\n React12.useEffect(() => {\n if (!(\"model\" in props))\n return;\n if (props.model)\n app.loadDocumentModel(props.model);\n }, [props.model]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/usePreventNavigation.ts\nvar React13 = __toESM(require(\"react\"));\nfunction usePreventNavigation(rCanvas) {\n const context = useRendererContext();\n const {\n viewport: { bounds }\n } = context;\n React13.useEffect(() => {\n const preventGestureNavigation = (event) => {\n event.preventDefault();\n };\n const preventNavigation = (event) => {\n if (event.touches.length === 0) {\n return;\n }\n const touchXPosition = event.touches[0].pageX;\n const touchXRadius = event.touches[0].radiusX || 0;\n if (touchXPosition - touchXRadius < 10 || touchXPosition + touchXRadius > bounds.width - 10) {\n event.preventDefault();\n }\n };\n const elm = rCanvas.current;\n if (!elm)\n return () => void 0;\n elm.addEventListener(\"touchstart\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"gestureend\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"gesturechange\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"gesturestart\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"touchstart\", preventNavigation, {\n passive: true\n });\n return () => {\n if (elm) {\n elm.removeEventListener(\"touchstart\", preventGestureNavigation);\n elm.removeEventListener(\"gestureend\", preventGestureNavigation);\n elm.removeEventListener(\"gesturechange\", preventGestureNavigation);\n elm.removeEventListener(\"gesturestart\", preventGestureNavigation);\n elm.removeEventListener(\"touchstart\", preventNavigation);\n }\n };\n }, [rCanvas, bounds.width]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useHandleEvents.ts\nvar React14 = __toESM(require(\"react\"));\nfunction useHandleEvents(shape, id3) {\n const { inputs, callbacks } = useRendererContext();\n const events = React14.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerDown = (e2) => {\n var _a3, _b;\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.setPointerCapture(e2.pointerId);\n const handle = shape.props.handles[id3];\n (_b = callbacks.onPointerDown) == null ? void 0 : _b.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerUp = (e2) => {\n var _a3, _b;\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.releasePointerCapture(e2.pointerId);\n const handle = shape.props.handles[id3];\n (_b = callbacks.onPointerUp) == null ? void 0 : _b.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerEnter = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerLeave = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onKeyDown = (e2) => {\n var _a3;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onKeyDown) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order: -1 }, e2);\n };\n const onKeyUp = (e2) => {\n var _a3;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onKeyUp) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order: -1 }, e2);\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerEnter,\n onPointerLeave,\n onKeyUp,\n onKeyDown\n };\n }, [shape.id, inputs, callbacks]);\n return events;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCursor.ts\nvar React15 = __toESM(require(\"react\"));\nfunction getCursorCss(svg, r4, f4 = false) {\n return `url(\"data:image\/svg+xml,<svg height='32' width='32' viewBox='0 0 35 35' xmlns='http:\/\/www.w3.org\/2000\/svg'><g fill='none' style='transform-origin:center center' transform='rotate(${r4})${f4 ? ` scale(-1,-1) translate(0, -32)` : \"\"}'>` + svg.replaceAll(`\"`, `'`) + '<\/g><\/svg>\") 16 16, pointer';\n}\nvar CORNER_SVG = `<path d='m19.7432 17.0869-4.072 4.068 2.829 2.828-8.473-.013-.013-8.47 2.841 2.842 4.075-4.068 1.414-1.415-2.844-2.842h8.486v8.484l-2.83-2.827z' fill='%23fff'\/><path d='m18.6826 16.7334-4.427 4.424 1.828 1.828-5.056-.016-.014-5.054 1.842 1.841 4.428-4.422 2.474-2.475-1.844-1.843h5.073v5.071l-1.83-1.828z' fill='%23000'\/>`;\nvar EDGE_SVG = `<path d='m9 17.9907v.005l5.997 5.996.001-3.999h1.999 2.02v4l5.98-6.001-5.98-5.999.001 4.019-2.021.002h-2l.001-4.022zm1.411.003 3.587-3.588-.001 2.587h3.5 2.521v-2.585l3.565 3.586-3.564 3.585-.001-2.585h-2.521l-3.499-.001-.001 2.586z' fill='%23fff'\/><path d='m17.4971 18.9932h2.521v2.586l3.565-3.586-3.565-3.585v2.605h-2.521-3.5v-2.607l-3.586 3.587 3.586 3.586v-2.587z' fill='%23000'\/>`;\nvar ROTATE_CORNER_SVG = `<g><path d=\"M22.4789 9.45728L25.9935 12.9942L22.4789 16.5283V14.1032C18.126 14.1502 14.6071 17.6737 14.5675 22.0283H17.05L13.513 25.543L9.97889 22.0283H12.5674C12.6071 16.5691 17.0214 12.1503 22.4789 12.1031L22.4789 9.45728Z\" fill=\"black\"\/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.4789 7.03223L27.4035 12.9945L21.4789 18.9521V15.1868C18.4798 15.6549 16.1113 18.0273 15.649 21.0284H19.475L13.5128 26.953L7.55519 21.0284H11.6189C12.1243 15.8155 16.2679 11.6677 21.4789 11.1559L21.4789 7.03223ZM22.4789 12.1031C17.0214 12.1503 12.6071 16.5691 12.5674 22.0284H9.97889L13.513 25.543L17.05 22.0284H14.5675C14.5705 21.6896 14.5947 21.3558 14.6386 21.0284C15.1157 17.4741 17.9266 14.6592 21.4789 14.1761C21.8063 14.1316 22.1401 14.1069 22.4789 14.1032V16.5284L25.9935 12.9942L22.4789 9.45729L22.4789 12.1031Z\" fill=\"white\"\/><\/g>`;\nvar TEXT_SVG = `<path d='m6.94 2v-1c-1.35866267-.08246172-2.66601117.53165299-3.47 1.63-.80398883-1.09834701-2.11133733-1.71246172-3.47-1.63v1c1.30781678-.16635468 2.55544738.59885876 3 1.84v5.1h-1v1h1v4.16c-.4476345 1.2386337-1.69302129 2.002471-3 1.84v1c1.35687108.0731933 2.6600216-.5389494 3.47-1.63.8099784 1.0910506 2.11312892 1.7031933 3.47 1.63v-1c-1.28590589.133063-2.49760499-.6252793-2.94-1.84v-4.18h1v-1h-1v-5.08c.43943906-1.21710975 1.65323743-1.97676587 2.94-1.84z' transform='translate(14 9)'\/>`;\nvar GRABBING_SVG = `<path d='m13.5732 12.0361c.48-.178 1.427-.069 1.677.473.213.462.396 1.241.406 1.075.024-.369-.024-1.167.137-1.584.117-.304.347-.59.686-.691.285-.086.62-.116.916-.055.313.064.642.287.765.499.362.623.368 1.899.385 1.831.064-.272.07-1.229.283-1.584.141-.235.497-.445.687-.479.294-.052.656-.068.964-.008.249.049.586.344.677.487.219.344.342 1.316.379 1.658.016.141.074-.393.293-.736.406-.639 1.844-.763 1.898.639.026.654.02.624.02 1.064 0 .516-.012.828-.04 1.202-.03.399-.116 1.304-.241 1.742-.086.301-.371.978-.653 1.384 0 0-1.074 1.25-1.191 1.812-.117.563-.078.567-.102.965-.023.399.121.923.121.923s-.801.104-1.234.034c-.391-.062-.875-.84-1-1.078-.172-.328-.539-.265-.682-.023-.224.383-.709 1.07-1.05 1.113-.669.084-2.055.03-3.14.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.283-.36-1.002-.929-1.243-1.985-.213-.936-.192-1.395.037-1.77.232-.381.67-.589.854-.625.208-.042.692-.039.875.062.223.123.313.159.488.391.23.307.312.456.213.121-.076-.262-.322-.595-.434-.97-.109-.361-.401-.943-.38-1.526.008-.221.103-.771.832-1.042' fill='%23fff'\/><g stroke='%23000' stroke-width='.75'><path d='m13.5732 12.0361c.48-.178 1.427-.069 1.677.473.213.462.396 1.241.406 1.075.024-.369-.024-1.167.137-1.584.117-.304.347-.59.686-.691.285-.086.62-.116.916-.055.313.064.642.287.765.499.362.623.368 1.899.385 1.831.064-.272.07-1.229.283-1.584.141-.235.497-.445.687-.479.294-.052.656-.068.964-.008.249.049.586.344.677.487.219.344.342 1.316.379 1.658.016.141.074-.393.293-.736.406-.639 1.844-.763 1.898.639.026.654.02.624.02 1.064 0 .516-.012.828-.04 1.202-.03.399-.116 1.304-.241 1.742-.086.301-.371.978-.653 1.384 0 0-1.074 1.25-1.191 1.812-.117.563-.078.567-.102.965-.023.399.121.923.121.923s-.801.104-1.234.034c-.391-.062-.875-.84-1-1.078-.172-.328-.539-.265-.682-.023-.224.383-.709 1.07-1.05 1.113-.669.084-2.055.03-3.14.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.283-.36-1.002-.929-1.243-1.985-.213-.936-.192-1.395.037-1.77.232-.381.67-.589.854-.625.208-.042.692-.039.875.062.223.123.313.159.488.391.23.307.312.456.213.121-.076-.262-.322-.595-.434-.97-.109-.361-.401-.943-.38-1.526.008-.221.103-.771.832-1.042z' stroke-linejoin='round'\/><path d='m20.5664 19.7344v-3.459' stroke-linecap='round'\/><path d='m18.5508 19.7461-.016-3.473' stroke-linecap='round'\/><path d='m16.5547 16.3047.021 3.426' stroke-linecap='round'\/><\/g>`;\nvar GRAB_SVG = `<path d=\"m13.5557 17.5742c-.098-.375-.196-.847-.406-1.552-.167-.557-.342-.859-.47-1.233-.155-.455-.303-.721-.496-1.181-.139-.329-.364-1.048-.457-1.44-.119-.509.033-.924.244-1.206.253-.339.962-.49 1.357-.351.371.13.744.512.916.788.288.46.357.632.717 1.542.393.992.564 1.918.611 2.231l.085.452c-.001-.04-.043-1.122-.044-1.162-.035-1.029-.06-1.823-.038-2.939.002-.126.064-.587.084-.715.078-.5.305-.8.673-.979.412-.201.926-.215 1.401-.017.423.173.626.55.687 1.022.014.109.094.987.093 1.107-.013 1.025.006 1.641.015 2.174.004.231.003 1.625.017 1.469.061-.656.094-3.189.344-3.942.144-.433.405-.746.794-.929.431-.203 1.113-.07 1.404.243.285.305.446.692.482 1.153.032.405-.019.897-.02 1.245 0 .867-.021 1.324-.037 2.121-.001.038-.015.298.023.182.094-.28.188-.542.266-.745.049-.125.241-.614.359-.859.114-.234.211-.369.415-.688.2-.313.415-.448.668-.561.54-.235 1.109.112 1.301.591.086.215.009.713-.028 1.105-.061.647-.254 1.306-.352 1.648-.128.447-.274 1.235-.34 1.601-.072.394-.234 1.382-.359 1.82-.086.301-.371.978-.652 1.384 0 0-1.074 1.25-1.192 1.812-.117.563-.078.567-.101.965-.024.399.121.923.121.923s-.802.104-1.234.034c-.391-.062-.875-.841-1-1.078-.172-.328-.539-.265-.682-.023-.225.383-.709 1.07-1.051 1.113-.668.084-2.054.03-3.139.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.284-.36-.629-1.093-1.243-1.985-.348-.504-1.027-1.085-1.284-1.579-.223-.425-.331-.954-.19-1.325.225-.594.675-.897 1.362-.832.519.05.848.206 1.238.537.225.19.573.534.75.748.163.195.203.276.377.509.23.307.302.459.214.121\" fill=\"%23fff\"\/><g stroke=\"%23000\" stroke-linecap=\"round\" stroke-width=\".75\"><path d=\"m13.5557 17.5742c-.098-.375-.196-.847-.406-1.552-.167-.557-.342-.859-.47-1.233-.155-.455-.303-.721-.496-1.181-.139-.329-.364-1.048-.457-1.44-.119-.509.033-.924.244-1.206.253-.339.962-.49 1.357-.351.371.13.744.512.916.788.288.46.357.632.717 1.542.393.992.564 1.918.611 2.231l.085.452c-.001-.04-.043-1.122-.044-1.162-.035-1.029-.06-1.823-.038-2.939.002-.126.064-.587.084-.715.078-.5.305-.8.673-.979.412-.201.926-.215 1.401-.017.423.173.626.55.687 1.022.014.109.094.987.093 1.107-.013 1.025.006 1.641.015 2.174.004.231.003 1.625.017 1.469.061-.656.094-3.189.344-3.942.144-.433.405-.746.794-.929.431-.203 1.113-.07 1.404.243.285.305.446.692.482 1.153.032.405-.019.897-.02 1.245 0 .867-.021 1.324-.037 2.121-.001.038-.015.298.023.182.094-.28.188-.542.266-.745.049-.125.241-.614.359-.859.114-.234.211-.369.415-.688.2-.313.415-.448.668-.561.54-.235 1.109.112 1.301.591.086.215.009.713-.028 1.105-.061.647-.254 1.306-.352 1.648-.128.447-.274 1.235-.34 1.601-.072.394-.234 1.382-.359 1.82-.086.301-.371.978-.652 1.384 0 0-1.074 1.25-1.192 1.812-.117.563-.078.567-.101.965-.024.399.121.923.121.923s-.802.104-1.234.034c-.391-.062-.875-.841-1-1.078-.172-.328-.539-.265-.682-.023-.225.383-.709 1.07-1.051 1.113-.668.084-2.054.03-3.139.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.284-.36-.629-1.093-1.243-1.985-.348-.504-1.027-1.085-1.284-1.579-.223-.425-.331-.954-.19-1.325.225-.594.675-.897 1.362-.832.519.05.848.206 1.238.537.225.19.573.534.75.748.163.195.203.276.377.509.23.307.302.459.214.121\" stroke-linejoin=\"round\"\/><path d=\"m20.5664 21.7344v-3.459\"\/><path d=\"m18.5508 21.7461-.016-3.473\"\/><path d=\"m16.5547 18.3047.021 3.426\"\/><\/g>`;\nvar CURSORS3 = {\n [\"none\" \/* None *\/]: (r4, f4) => \"none\",\n [\"default\" \/* Default *\/]: (r4, f4) => \"default\",\n [\"pointer\" \/* Pointer *\/]: (r4, f4) => \"pointer\",\n [\"crosshair\" \/* Cross *\/]: (r4, f4) => \"crosshair\",\n [\"move\" \/* Move *\/]: (r4, f4) => \"move\",\n [\"wait\" \/* Wait *\/]: (r4, f4) => \"wait\",\n [\"progress\" \/* Progress *\/]: (r4, f4) => \"progress\",\n [\"grab\" \/* Grab *\/]: (r4, f4) => getCursorCss(GRAB_SVG, r4, f4),\n [\"grabbing\" \/* Grabbing *\/]: (r4, f4) => getCursorCss(GRABBING_SVG, r4, f4),\n [\"text\" \/* Text *\/]: (r4, f4) => getCursorCss(TEXT_SVG, r4, f4),\n [\"resize-edge\" \/* ResizeEdge *\/]: (r4, f4) => getCursorCss(EDGE_SVG, r4, f4),\n [\"resize-corner\" \/* ResizeCorner *\/]: (r4, f4) => getCursorCss(CORNER_SVG, r4, f4),\n [\"ew-resize\" \/* EwResize *\/]: (r4, f4) => getCursorCss(EDGE_SVG, r4, f4),\n [\"ns-resize\" \/* NsResize *\/]: (r4, f4) => getCursorCss(EDGE_SVG, r4 + 90, f4),\n [\"nesw-resize\" \/* NeswResize *\/]: (r4, f4) => getCursorCss(CORNER_SVG, r4, f4),\n [\"nwse-resize\" \/* NwseResize *\/]: (r4, f4) => getCursorCss(CORNER_SVG, r4 + 90, f4),\n [\"rotate\" \/* Rotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 45, f4),\n [\"nwse-rotate\" \/* NwseRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4, f4),\n [\"nesw-rotate\" \/* NeswRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 90, f4),\n [\"senw-rotate\" \/* SenwRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 180, f4),\n [\"swne-rotate\" \/* SwneRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 270, f4)\n};\nfunction useCursor(ref, cursor, rotation = 0) {\n React15.useEffect(() => {\n const elm = ref.current;\n if (!elm)\n return;\n elm.style.cursor = CURSORS3[cursor](GeomUtils.radiansToDegrees(rotation));\n }, [cursor, rotation]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useZoom.ts\nvar React16 = __toESM(require(\"react\"));\nfunction useZoom(ref) {\n const { viewport } = useRendererContext();\n const app = useApp();\n React16.useLayoutEffect(() => {\n return autorun(() => {\n const debouncedZoom = debounce(() => {\n var _a3;\n (_a3 = ref.current) == null ? void 0 : _a3.style.setProperty(\"--tl-zoom\", viewport.camera.zoom.toString());\n }, 200);\n if (app.inputs.state !== \"pinching\" && viewport.camera.zoom != null) {\n debouncedZoom();\n }\n });\n }, []);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useMinimapEvents.ts\nvar React17 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useDebounced.ts\nvar import_react4 = require(\"react\");\nfunction useDebouncedValue(value, ms = 0) {\n const [debouncedValue, setDebouncedValue] = (0, import_react4.useState)(value);\n (0, import_react4.useEffect)(() => {\n let canceled = false;\n const handler = setTimeout(() => {\n if (!canceled) {\n setDebouncedValue(value);\n }\n }, ms);\n return () => {\n canceled = true;\n clearTimeout(handler);\n };\n }, [value, ms]);\n return debouncedValue;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useRestoreCamera.ts\nvar React18 = __toESM(require(\"react\"));\nvar storingKey = \"logseq.tldraw.camera\";\nvar cacheCamera = (app) => {\n window.sessionStorage.setItem(\n storingKey + \":\" + app.currentPageId,\n JSON.stringify(app.viewport.camera)\n );\n};\nvar loadCamera = (app) => {\n var _a3;\n const camera = JSON.parse(\n (_a3 = window.sessionStorage.getItem(storingKey + \":\" + app.currentPageId)) != null ? _a3 : \"null\"\n );\n if (camera) {\n app.viewport.update(camera);\n } else if (app.selectedIds.size) {\n app.api.zoomToSelection();\n } else {\n app.api.zoomToFit();\n }\n};\nfunction useRestoreCamera() {\n const app = useApp();\n React18.useEffect(() => {\n reaction(\n () => __spreadValues({}, app.viewport.camera),\n () => cacheCamera(app)\n );\n }, [app.viewport.camera]);\n React18.useEffect(() => {\n loadCamera(app);\n }, [app]);\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/assertEnvironment.js\nvar import_react5 = require(\"react\");\nif (!import_react5.useState) {\n throw new Error(\"mobx-react-lite requires React with Hooks support\");\n}\nif (!makeObservable) {\n throw new Error(\"mobx-react-lite@3 requires mobx at least version 6 to be available\");\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/reactBatchedUpdates.js\nvar import_react_dom = require(\"react-dom\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/observerBatching.js\nfunction defaultNoopBatch(callback) {\n callback();\n}\nfunction observerBatching(reactionScheduler3) {\n if (!reactionScheduler3) {\n reactionScheduler3 = defaultNoopBatch;\n if (false) {\n console.warn(\"[MobX] Failed to get unstable_batched updates from react-dom \/ react-native\");\n }\n }\n configure({ reactionScheduler: reactionScheduler3 });\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useObserver.js\nvar import_react6 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/printDebugValue.js\nfunction printDebugValue(v4) {\n return getDependencyTree(v4);\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/FinalizationRegistryWrapper.js\nvar FinalizationRegistryLocal = typeof FinalizationRegistry === \"undefined\" ? void 0 : FinalizationRegistry;\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/reactionCleanupTrackingCommon.js\nfunction createTrackingData(reaction2) {\n var trackingData = {\n reaction: reaction2,\n mounted: false,\n changedBeforeMount: false,\n cleanAt: Date.now() + CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS\n };\n return trackingData;\n}\nvar CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS = 1e4;\nvar CLEANUP_TIMER_LOOP_MILLIS = 1e4;\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/createReactionCleanupTrackingUsingFinalizationRegister.js\nfunction createReactionCleanupTrackingUsingFinalizationRegister(FinalizationRegistry2) {\n var cleanupTokenToReactionTrackingMap = \/* @__PURE__ *\/ new Map();\n var globalCleanupTokensCounter = 1;\n var registry = new FinalizationRegistry2(function cleanupFunction(token) {\n var trackedReaction = cleanupTokenToReactionTrackingMap.get(token);\n if (trackedReaction) {\n trackedReaction.reaction.dispose();\n cleanupTokenToReactionTrackingMap.delete(token);\n }\n });\n return {\n addReactionToTrack: function(reactionTrackingRef, reaction2, objectRetainedByReact) {\n var token = globalCleanupTokensCounter++;\n registry.register(objectRetainedByReact, token, reactionTrackingRef);\n reactionTrackingRef.current = createTrackingData(reaction2);\n reactionTrackingRef.current.finalizationRegistryCleanupToken = token;\n cleanupTokenToReactionTrackingMap.set(token, reactionTrackingRef.current);\n return reactionTrackingRef.current;\n },\n recordReactionAsCommitted: function(reactionRef) {\n registry.unregister(reactionRef);\n if (reactionRef.current && reactionRef.current.finalizationRegistryCleanupToken) {\n cleanupTokenToReactionTrackingMap.delete(reactionRef.current.finalizationRegistryCleanupToken);\n }\n },\n forceCleanupTimerToRunNowForTests: function() {\n },\n resetCleanupScheduleForTests: function() {\n }\n };\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/createTimerBasedReactionCleanupTracking.js\nvar __values = function(o4) {\n var s4 = typeof Symbol === \"function\" && Symbol.iterator, m4 = s4 && o4[s4], i4 = 0;\n if (m4)\n return m4.call(o4);\n if (o4 && typeof o4.length === \"number\")\n return {\n next: function() {\n if (o4 && i4 >= o4.length)\n o4 = void 0;\n return { value: o4 && o4[i4++], done: !o4 };\n }\n };\n throw new TypeError(s4 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction createTimerBasedReactionCleanupTracking() {\n var uncommittedReactionRefs = \/* @__PURE__ *\/ new Set();\n var reactionCleanupHandle;\n function forceCleanupTimerToRunNowForTests2() {\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n cleanUncommittedReactions();\n }\n }\n function resetCleanupScheduleForTests2() {\n var e_1, _a3;\n if (uncommittedReactionRefs.size > 0) {\n try {\n for (var uncommittedReactionRefs_1 = __values(uncommittedReactionRefs), uncommittedReactionRefs_1_1 = uncommittedReactionRefs_1.next(); !uncommittedReactionRefs_1_1.done; uncommittedReactionRefs_1_1 = uncommittedReactionRefs_1.next()) {\n var ref = uncommittedReactionRefs_1_1.value;\n var tracking = ref.current;\n if (tracking) {\n tracking.reaction.dispose();\n ref.current = null;\n }\n }\n } catch (e_1_1) {\n e_1 = { error: e_1_1 };\n } finally {\n try {\n if (uncommittedReactionRefs_1_1 && !uncommittedReactionRefs_1_1.done && (_a3 = uncommittedReactionRefs_1.return))\n _a3.call(uncommittedReactionRefs_1);\n } finally {\n if (e_1)\n throw e_1.error;\n }\n }\n uncommittedReactionRefs.clear();\n }\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n reactionCleanupHandle = void 0;\n }\n }\n function ensureCleanupTimerRunning() {\n if (reactionCleanupHandle === void 0) {\n reactionCleanupHandle = setTimeout(cleanUncommittedReactions, CLEANUP_TIMER_LOOP_MILLIS);\n }\n }\n function scheduleCleanupOfReactionIfLeaked(ref) {\n uncommittedReactionRefs.add(ref);\n ensureCleanupTimerRunning();\n }\n function recordReactionAsCommitted2(reactionRef) {\n uncommittedReactionRefs.delete(reactionRef);\n }\n function cleanUncommittedReactions() {\n reactionCleanupHandle = void 0;\n var now = Date.now();\n uncommittedReactionRefs.forEach(function(ref) {\n var tracking = ref.current;\n if (tracking) {\n if (now >= tracking.cleanAt) {\n tracking.reaction.dispose();\n ref.current = null;\n uncommittedReactionRefs.delete(ref);\n }\n }\n });\n if (uncommittedReactionRefs.size > 0) {\n ensureCleanupTimerRunning();\n }\n }\n return {\n addReactionToTrack: function(reactionTrackingRef, reaction2, objectRetainedByReact) {\n reactionTrackingRef.current = createTrackingData(reaction2);\n scheduleCleanupOfReactionIfLeaked(reactionTrackingRef);\n return reactionTrackingRef.current;\n },\n recordReactionAsCommitted: recordReactionAsCommitted2,\n forceCleanupTimerToRunNowForTests: forceCleanupTimerToRunNowForTests2,\n resetCleanupScheduleForTests: resetCleanupScheduleForTests2\n };\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/reactionCleanupTracking.js\nvar _a2 = FinalizationRegistryLocal ? createReactionCleanupTrackingUsingFinalizationRegister(FinalizationRegistryLocal) : createTimerBasedReactionCleanupTracking();\nvar addReactionToTrack = _a2.addReactionToTrack;\nvar recordReactionAsCommitted = _a2.recordReactionAsCommitted;\nvar resetCleanupScheduleForTests = _a2.resetCleanupScheduleForTests;\nvar forceCleanupTimerToRunNowForTests = _a2.forceCleanupTimerToRunNowForTests;\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/staticRendering.js\nvar globalIsUsingStaticRendering = false;\nfunction isUsingStaticRendering() {\n return globalIsUsingStaticRendering;\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useObserver.js\nvar __read = function(o4, n4) {\n var m4 = typeof Symbol === \"function\" && o4[Symbol.iterator];\n if (!m4)\n return o4;\n var i4 = m4.call(o4), r4, ar = [], e2;\n try {\n while ((n4 === void 0 || n4-- > 0) && !(r4 = i4.next()).done)\n ar.push(r4.value);\n } catch (error) {\n e2 = { error };\n } finally {\n try {\n if (r4 && !r4.done && (m4 = i4[\"return\"]))\n m4.call(i4);\n } finally {\n if (e2)\n throw e2.error;\n }\n }\n return ar;\n};\nfunction observerComponentNameFor(baseComponentName) {\n return \"observer\".concat(baseComponentName);\n}\nvar ObjectToBeRetainedByReact = function() {\n function ObjectToBeRetainedByReact2() {\n }\n return ObjectToBeRetainedByReact2;\n}();\nfunction objectToBeRetainedByReactFactory() {\n return new ObjectToBeRetainedByReact();\n}\nfunction useObserver(fn, baseComponentName) {\n if (baseComponentName === void 0) {\n baseComponentName = \"observed\";\n }\n if (isUsingStaticRendering()) {\n return fn();\n }\n var _a3 = __read(import_react6.default.useState(objectToBeRetainedByReactFactory), 1), objectRetainedByReact = _a3[0];\n var _b = __read(import_react6.default.useState(), 2), setState = _b[1];\n var forceUpdate = function() {\n return setState([]);\n };\n var reactionTrackingRef = import_react6.default.useRef(null);\n if (!reactionTrackingRef.current) {\n var newReaction = new Reaction(observerComponentNameFor(baseComponentName), function() {\n if (trackingData_1.mounted) {\n forceUpdate();\n } else {\n trackingData_1.changedBeforeMount = true;\n }\n });\n var trackingData_1 = addReactionToTrack(reactionTrackingRef, newReaction, objectRetainedByReact);\n }\n var reaction2 = reactionTrackingRef.current.reaction;\n import_react6.default.useDebugValue(reaction2, printDebugValue);\n import_react6.default.useEffect(function() {\n recordReactionAsCommitted(reactionTrackingRef);\n if (reactionTrackingRef.current) {\n reactionTrackingRef.current.mounted = true;\n if (reactionTrackingRef.current.changedBeforeMount) {\n reactionTrackingRef.current.changedBeforeMount = false;\n forceUpdate();\n }\n } else {\n reactionTrackingRef.current = {\n reaction: new Reaction(observerComponentNameFor(baseComponentName), function() {\n forceUpdate();\n }),\n mounted: true,\n changedBeforeMount: false,\n cleanAt: Infinity\n };\n forceUpdate();\n }\n return function() {\n reactionTrackingRef.current.reaction.dispose();\n reactionTrackingRef.current = null;\n };\n }, []);\n var rendering;\n var exception;\n reaction2.track(function() {\n try {\n rendering = fn();\n } catch (e2) {\n exception = e2;\n }\n });\n if (exception) {\n throw exception;\n }\n return rendering;\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/observer.js\nvar import_react7 = require(\"react\");\nvar hasSymbol = typeof Symbol === \"function\" && Symbol.for;\nvar ReactForwardRefSymbol = hasSymbol ? Symbol.for(\"react.forward_ref\") : typeof import_react7.forwardRef === \"function\" && (0, import_react7.forwardRef)(function(props) {\n return null;\n})[\"$$typeof\"];\nvar ReactMemoSymbol = hasSymbol ? Symbol.for(\"react.memo\") : typeof import_react7.memo === \"function\" && (0, import_react7.memo)(function(props) {\n return null;\n})[\"$$typeof\"];\nfunction observer(baseComponent, options) {\n var _a3;\n if (false) {\n warnObserverOptionsDeprecated = false;\n console.warn(\"[mobx-react-lite] `observer(fn, { forwardRef: true })` is deprecated, use `observer(React.forwardRef(fn))`\");\n }\n if (ReactMemoSymbol && baseComponent[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\"[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.\");\n }\n if (isUsingStaticRendering()) {\n return baseComponent;\n }\n var useForwardRef = (_a3 = options === null || options === void 0 ? void 0 : options.forwardRef) !== null && _a3 !== void 0 ? _a3 : false;\n var render = baseComponent;\n var baseComponentName = baseComponent.displayName || baseComponent.name;\n if (ReactForwardRefSymbol && baseComponent[\"$$typeof\"] === ReactForwardRefSymbol) {\n useForwardRef = true;\n render = baseComponent[\"render\"];\n if (typeof render !== \"function\") {\n throw new Error(\"[mobx-react-lite] `render` property of ForwardRef was not a function\");\n }\n }\n var observerComponent = function(props, ref) {\n return useObserver(function() {\n return render(props, ref);\n }, baseComponentName);\n };\n if (baseComponentName !== \"\") {\n ;\n observerComponent.displayName = baseComponentName;\n }\n if (baseComponent.contextTypes) {\n ;\n observerComponent.contextTypes = baseComponent.contextTypes;\n }\n if (useForwardRef) {\n observerComponent = (0, import_react7.forwardRef)(observerComponent);\n }\n observerComponent = (0, import_react7.memo)(observerComponent);\n copyStaticProperties(baseComponent, observerComponent);\n if (false) {\n Object.defineProperty(observerComponent, \"contextTypes\", {\n set: function() {\n var _a4;\n throw new Error(\"[mobx-react-lite] `\".concat(this.displayName || ((_a4 = this.type) === null || _a4 === void 0 ? void 0 : _a4.displayName) || \"Component\", \".contextTypes` must be set before applying `observer`.\"));\n }\n });\n }\n return observerComponent;\n}\nvar hoistBlackList = {\n $$typeof: true,\n render: true,\n compare: true,\n type: true,\n displayName: true\n};\nfunction copyStaticProperties(base, target) {\n Object.keys(base).forEach(function(key) {\n if (!hoistBlackList[key]) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/ObserverComponent.js\nfunction ObserverComponent(_a3) {\n var children = _a3.children, render = _a3.render;\n var component = children || render;\n if (typeof component !== \"function\") {\n return null;\n }\n return useObserver(component);\n}\nif (false) {\n ObserverComponent.propTypes = {\n children: ObserverPropsCheck,\n render: ObserverPropsCheck\n };\n}\nObserverComponent.displayName = \"Observer\";\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useLocalObservable.js\nvar import_react8 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useLocalStore.js\nvar import_react10 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useAsObservableSource.js\nvar import_react9 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/index.js\nobserverBatching(import_react_dom.unstable_batchedUpdates);\n\n\/\/ ..\/..\/packages\/react\/src\/components\/HTMLContainer\/HTMLContainer.tsx\nvar React20 = __toESM(require(\"react\"));\nvar import_jsx_runtime2 = require(\"react\/jsx-runtime\");\nvar HTMLContainer = React20.forwardRef(\n function HTMLContainer2(_a3, ref) {\n var _b = _a3, { children, opacity, centered, className = \"\" } = _b, rest = __objRest(_b, [\"children\", \"opacity\", \"centered\", \"className\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime2.jsx)(ObserverComponent, {\n children: () => \/* @__PURE__ *\/ (0, import_jsx_runtime2.jsx)(\"div\", {\n ref,\n className: `tl-positioned-div ${className}`,\n style: opacity ? { opacity } : void 0,\n draggable: false,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime2.jsx)(\"div\", __spreadProps(__spreadValues({\n className: `tl-positioned-inner ${centered ? \"tl-centered\" : \"\"}`\n }, rest), {\n children\n }))\n })\n });\n }\n);\n\n\/\/ ..\/..\/packages\/react\/src\/components\/SVGContainer\/SVGContainer.tsx\nvar React21 = __toESM(require(\"react\"));\nvar import_jsx_runtime3 = require(\"react\/jsx-runtime\");\nvar SVGContainer = React21.forwardRef(\n function SVGContainer2(_a3, ref) {\n var _b = _a3, { id: id3, className = \"\", style, children } = _b, rest = __objRest(_b, [\"id\", \"className\", \"style\", \"children\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime3.jsx)(ObserverComponent, {\n children: () => \/* @__PURE__ *\/ (0, import_jsx_runtime3.jsx)(\"svg\", {\n ref,\n style,\n className: `tl-positioned-svg ${className}`,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime3.jsx)(\"g\", __spreadProps(__spreadValues({\n id: id3,\n className: \"tl-centered-g\"\n }, rest), {\n children\n }))\n })\n });\n }\n);\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Canvas\/Canvas.tsx\nvar React31 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useKeyboardEvents.ts\nvar React22 = __toESM(require(\"react\"));\nfunction useKeyboardEvents(ref) {\n const app = useApp();\n const { callbacks } = useRendererContext();\n const shiftKeyDownRef = React22.useRef(false);\n React22.useEffect(() => {\n const onKeyDown = (e2) => {\n var _a3, _b;\n if ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) {\n (_b = callbacks.onKeyDown) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order: -1 }, e2);\n shiftKeyDownRef.current = e2.shiftKey;\n }\n };\n const onKeyUp = (e2) => {\n var _a3, _b;\n if ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) {\n (_b = callbacks.onKeyUp) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order: -1 }, e2);\n shiftKeyDownRef.current = e2.shiftKey;\n }\n };\n const onPaste = (e2) => {\n var _a3, _b, _c;\n if (!app.editingShape && ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) && ![\"INPUT\", \"TEXTAREA\"].includes((_c = (_b = document.activeElement) == null ? void 0 : _b.tagName) != null ? _c : \"\")) {\n e2.preventDefault();\n app.paste(e2, shiftKeyDownRef.current);\n }\n };\n const onCopy = (e2) => {\n var _a3, _b, _c;\n if (!app.editingShape && app.selectedShapes.size > 0 && ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) && ![\"INPUT\", \"TEXTAREA\"].includes((_c = (_b = document.activeElement) == null ? void 0 : _b.tagName) != null ? _c : \"\")) {\n e2.preventDefault();\n app.copy();\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"keyup\", onKeyUp);\n document.addEventListener(\"paste\", onPaste);\n document.addEventListener(\"copy\", onCopy);\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n window.removeEventListener(\"keyup\", onKeyUp);\n document.removeEventListener(\"paste\", onPaste);\n document.removeEventListener(\"copy\", onCopy);\n };\n }, []);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Container\/Container.tsx\nvar React23 = __toESM(require(\"react\"));\nvar import_jsx_runtime4 = require(\"react\/jsx-runtime\");\nvar Container = observer(function Container2(_a3) {\n var _b = _a3, {\n id: id3,\n bounds,\n zIndex,\n rotation = 0,\n className = \"\",\n children\n } = _b, props = __objRest(_b, [\n \"id\",\n \"bounds\",\n \"zIndex\",\n \"rotation\",\n \"className\",\n \"children\"\n ]);\n const rBounds = React23.useRef(null);\n React23.useLayoutEffect(() => {\n const elm = rBounds.current;\n elm.style.transform = `translate(\n calc(${bounds.minX}px - var(--tl-padding)),\n calc(${bounds.minY}px - var(--tl-padding)))\n rotate(${rotation + (bounds.rotation || 0)}rad)`;\n }, [bounds.minX, bounds.minY, rotation, bounds.rotation]);\n React23.useLayoutEffect(() => {\n const elm = rBounds.current;\n elm.style.width = `calc(${Math.floor(bounds.width)}px + (var(--tl-padding) * 2))`;\n elm.style.height = `calc(${Math.floor(bounds.height)}px + (var(--tl-padding) * 2))`;\n }, [bounds.width, bounds.height]);\n React23.useLayoutEffect(() => {\n const elm = rBounds.current;\n if (zIndex !== void 0)\n elm.style.zIndex = zIndex.toString();\n }, [zIndex]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime4.jsx)(\"div\", __spreadProps(__spreadValues({\n id: id3,\n ref: rBounds,\n className: `tl-positioned ${className}`,\n \"aria-label\": \"container\"\n }, props), {\n children\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ContextBarContainer\/ContextBarContainer.tsx\nvar React24 = __toESM(require(\"react\"));\nvar import_jsx_runtime5 = require(\"react\/jsx-runtime\");\nvar ContextBarContainer = observer(function ContextBarContainer2({\n shapes: shapes2,\n hidden,\n bounds,\n rotation = 0\n}) {\n const {\n components: { ContextBar: ContextBar2 },\n viewport: {\n bounds: vpBounds,\n camera: {\n point: [x4, y4],\n zoom\n }\n }\n } = useRendererContext();\n const rBounds = React24.useRef(null);\n const rotatedBounds = BoundsUtils.getRotatedBounds(bounds, rotation);\n const scaledBounds = BoundsUtils.multiplyBounds(rotatedBounds, zoom);\n useCounterScaledPosition(rBounds, bounds, rotation, 10005);\n if (!ContextBar2)\n throw Error(\"Expected a ContextBar component.\");\n const screenBounds = BoundsUtils.translateBounds(scaledBounds, [x4 * zoom, y4 * zoom]);\n const offsets = {\n left: screenBounds.minX,\n right: vpBounds.width - screenBounds.maxX,\n top: screenBounds.minY,\n bottom: vpBounds.height - screenBounds.maxY,\n width: screenBounds.width,\n height: screenBounds.height\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime5.jsx)(\"div\", {\n ref: rBounds,\n className: \"tl-counter-scaled-positioned\",\n \"aria-label\": \"context-bar-container\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime5.jsx)(ContextBar2, {\n hidden,\n shapes: shapes2,\n bounds,\n offsets,\n scaledBounds,\n rotation\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/HTMLLayer\/HTMLLayer.tsx\nvar React25 = __toESM(require(\"react\"));\nvar import_jsx_runtime6 = require(\"react\/jsx-runtime\");\nvar HTMLLayer = observer(function HTMLLayer2({ children }) {\n const rLayer = React25.useRef(null);\n const { viewport } = useRendererContext();\n const layer = rLayer.current;\n const { zoom, point } = viewport.camera;\n React25.useEffect(() => {\n if (!layer)\n return;\n layer.style.transform = `scale(${zoom}) translate3d(${point[0]}px, ${point[1]}px, 0)`;\n }, [zoom, point, layer]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime6.jsx)(\"div\", {\n ref: rLayer,\n className: \"tl-absolute tl-layer\",\n children\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Indicator\/Indicator.tsx\nvar import_jsx_runtime7 = require(\"react\/jsx-runtime\");\nvar Indicator = observer(function Shape({\n shape,\n isHovered = false,\n isSelected = false,\n isBinding = false,\n isEditing = false,\n isLocked = false,\n meta\n}) {\n const {\n bounds,\n props: { scale, rotation = 0 },\n ReactIndicator\n } = shape;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(Container, {\n \"data-type\": \"Indicator\",\n \"data-html2canvas-ignore\": \"true\",\n bounds,\n rotation,\n scale,\n zIndex: isEditing ? 1e3 : 1e4,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(SVGContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(\"g\", {\n className: `tl-indicator-container ${isSelected ? \"tl-selected\" : \"tl-hovered\"} ${isLocked ? \"tl-locked\" : \"\"}`,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(ReactIndicator, {\n isEditing,\n isBinding,\n isHovered,\n isLocked,\n isSelected,\n isErasing: false,\n meta\n })\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useShapeEvents.ts\nvar React26 = __toESM(require(\"react\"));\nfunction useShapeEvents(shape) {\n const app = useApp();\n const { inputs, callbacks } = useRendererContext();\n const rDoubleClickTimer = React26.useRef(-1);\n const events = React26.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onPointerDown = (e2) => {\n var _a3, _b;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.setPointerCapture(e2.pointerId);\n (_b = callbacks.onPointerDown) == null ? void 0 : _b.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onPointerUp = (e2) => {\n var _a3, _b, _c;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.releasePointerCapture(e2.pointerId);\n (_b = callbacks.onPointerUp) == null ? void 0 : _b.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n const now = Date.now();\n const elapsed = now - rDoubleClickTimer.current;\n if (elapsed > DOUBLE_CLICK_DURATION) {\n rDoubleClickTimer.current = now;\n } else {\n if (elapsed <= DOUBLE_CLICK_DURATION) {\n (_c = callbacks.onDoubleClick) == null ? void 0 : _c.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n rDoubleClickTimer.current = -1;\n }\n }\n e2.order = order + 1;\n };\n const onPointerEnter = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onPointerLeave = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onKeyDown = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyDown) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order: -1 }, e2);\n };\n const onKeyUp = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyUp) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order: -1 }, e2);\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerEnter,\n onPointerLeave,\n onKeyUp,\n onKeyDown\n };\n }, [shape.id, inputs, callbacks]);\n return events;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/components\/QuickLinksContainer\/QuickLinksContainer.tsx\nvar import_jsx_runtime8 = require(\"react\/jsx-runtime\");\nvar QuickLinksContainer = observer(function QuickLinksContainer2({\n bounds,\n shape\n}) {\n const {\n viewport: {\n camera: { zoom }\n },\n components: { QuickLinks: QuickLinks2 }\n } = useRendererContext();\n const app = useApp();\n const events = useShapeEvents(shape);\n if (!QuickLinks2)\n throw Error(\"Expected a QuickLinks component.\");\n const stop2 = (e2) => e2.stopPropagation();\n const rounded = bounds.height * zoom < 50 || !app.selectedShapesArray.includes(shape);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(Container, {\n bounds,\n className: \"tl-quick-links-container\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(HTMLContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(\"span\", __spreadProps(__spreadValues({\n style: {\n position: \"absolute\",\n top: \"100%\",\n pointerEvents: \"all\",\n transformOrigin: \"left top\",\n paddingTop: \"8px\",\n transform: \"scale(var(--tl-scale))\",\n minWidth: \"320px\"\n }\n }, events), {\n onPointerDown: stop2,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(QuickLinks2, {\n className: \"tl-backlinks-count \" + (rounded ? \"tl-backlinks-count-rounded\" : \"\"),\n id: shape.id,\n shape\n })\n }))\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/BacklinksCountContainer\/BacklinksCountContainer.tsx\nvar import_jsx_runtime9 = require(\"react\/jsx-runtime\");\nvar BacklinksCountContainer = observer(function BacklinksCountContainer2({ bounds, shape }) {\n const {\n viewport: {\n camera: { zoom }\n },\n components: { BacklinksCount: BacklinksCount2 }\n } = useRendererContext();\n const app = useApp();\n if (!BacklinksCount2)\n throw Error(\"Expected a BacklinksCount component.\");\n const stop2 = (e2) => e2.stopPropagation();\n const rounded = bounds.height * zoom < 50 || !app.selectedShapesArray.includes(shape) || shape.hideSelection;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(Container, {\n bounds,\n className: \"tl-backlinks-count-container\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(HTMLContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(\"span\", {\n style: {\n position: \"absolute\",\n left: \"100%\",\n pointerEvents: \"all\",\n transformOrigin: \"left top\",\n transform: \"translateY(6px) scale(var(--tl-scale))\"\n },\n onPointerDown: stop2,\n onWheelCapture: stop2,\n onKeyDown: stop2,\n title: \"Shape Backlinks\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(BacklinksCount2, {\n className: \"tl-backlinks-count \" + (rounded ? \"tl-backlinks-count-rounded\" : \"\"),\n id: shape.id,\n shape\n })\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/SelectionDetailContainer\/SelectionDetailContainer.tsx\nvar React27 = __toESM(require(\"react\"));\nvar import_jsx_runtime10 = require(\"react\/jsx-runtime\");\nvar SelectionDetailContainer = observer(function SelectionDetail({\n bounds,\n hidden,\n shapes: shapes2,\n rotation = 0,\n detail = \"size\"\n}) {\n const {\n components: { SelectionDetail: SelectionDetail4 },\n viewport: {\n camera: { zoom }\n }\n } = useRendererContext();\n const rBounds = React27.useRef(null);\n const scaledBounds = BoundsUtils.multiplyBounds(bounds, zoom);\n useCounterScaledPosition(rBounds, bounds, rotation, 10003);\n if (!SelectionDetail4)\n throw Error(\"Expected a SelectionDetail component.\");\n return \/* @__PURE__ *\/ (0, import_jsx_runtime10.jsx)(\"div\", {\n ref: rBounds,\n className: `tl-counter-scaled-positioned ${hidden ? `tl-fade-out` : \"\"}`,\n \"aria-label\": \"bounds-detail-container\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime10.jsx)(SelectionDetail4, {\n shapes: shapes2,\n bounds,\n scaledBounds,\n zoom,\n rotation,\n detail\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Shape\/Shape.tsx\nvar import_jsx_runtime11 = require(\"react\/jsx-runtime\");\nvar Shape2 = observer(function Shape3({\n shape,\n isHovered = false,\n isSelected = false,\n isBinding = false,\n isErasing = false,\n isEditing = false,\n onEditingEnd,\n asset,\n meta,\n zIndex\n}) {\n const {\n bounds,\n props: { rotation, scale },\n ReactComponent\n } = shape;\n const app = useApp();\n const events = useShapeEvents(shape);\n const parentGroup = app.getParentGroup(shape);\n const isParentGrpupSelected = app.selectedIds.has(parentGroup == null ? void 0 : parentGroup.id);\n const ignoreExport = !isSelected && !isParentGrpupSelected && app.selectedShapes.size !== 0 || null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime11.jsx)(Container, {\n \"data-shape-id\": shape.id,\n \"data-html2canvas-ignore\": ignoreExport,\n zIndex,\n \"data-type\": \"Shape\",\n bounds,\n rotation,\n scale,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime11.jsx)(ReactComponent, {\n meta,\n isEditing,\n isBinding,\n isHovered,\n isSelected,\n isErasing,\n events,\n asset,\n onEditingEnd\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Grid\/Grid.tsx\nvar import_jsx_runtime12 = require(\"react\/jsx-runtime\");\nvar STEPS = [\n [-1, 0.15, 64],\n [0.05, 0.375, 16],\n [0.15, 1, 4],\n [0.7, 2.5, 1]\n];\nvar SVGGrid = observer(function CanvasGrid({ size }) {\n const {\n viewport: {\n camera: { point, zoom }\n }\n } = useRendererContext();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsxs)(\"svg\", {\n className: \"tl-grid\",\n version: \"1.1\",\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n \"data-html2canvas-ignore\": \"true\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"defs\", {\n children: STEPS.map(([min, mid, _size], i4) => {\n const s4 = _size * size * zoom;\n const xo = point[0] * zoom;\n const yo = point[1] * zoom;\n const gxo = xo > 0 ? xo % s4 : s4 + xo % s4;\n const gyo = yo > 0 ? yo % s4 : s4 + yo % s4;\n const opacity = modulate(zoom, [min, mid], [0, 1]);\n const hide = opacity > 2 || opacity < 0.1;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"pattern\", {\n id: `grid-${i4}`,\n width: s4,\n height: s4,\n patternUnits: \"userSpaceOnUse\",\n children: !hide && \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"circle\", {\n className: `tl-grid-dot`,\n cx: gxo,\n cy: gyo,\n r: 1.5,\n opacity: clamp(opacity, 0, 1)\n })\n }, `grid-pattern-${i4}`);\n })\n }),\n STEPS.map((_2, i4) => \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"rect\", {\n width: \"100%\",\n height: \"100%\",\n fill: `url(#grid-${i4})`\n }, `grid-rect-${i4}`))\n ]\n });\n});\nvar Grid = observer(function Grid2({ size }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(SVGGrid, {\n size\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionBackground\/SelectionBackground.tsx\nvar import_jsx_runtime13 = require(\"react\/jsx-runtime\");\nvar SelectionBackground = observer(function SelectionBackground2({\n bounds\n}) {\n const events = useBoundsEvents(\"background\");\n return \/* @__PURE__ *\/ (0, import_jsx_runtime13.jsx)(SVGContainer, __spreadProps(__spreadValues({\n \"data-html2canvas-ignore\": \"true\"\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime13.jsx)(\"rect\", {\n className: \"tl-bounds-bg\",\n width: Math.max(1, bounds.width),\n height: Math.max(1, bounds.height),\n pointerEvents: \"all\",\n rx: 8,\n ry: 8\n })\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionDetail\/SelectionDetail.tsx\nvar React28 = require(\"react\");\nvar import_jsx_runtime14 = require(\"react\/jsx-runtime\");\nvar SelectionDetail2 = observer(function SelectionDetail3({\n scaledBounds,\n shapes: shapes2,\n detail = \"size\",\n rotation = 0\n}) {\n var _a3;\n const selectionRotation = shapes2.length === 1 ? rotation : (_a3 = scaledBounds.rotation) != null ? _a3 : 0;\n const isFlipped = !(selectionRotation < TAU || selectionRotation > TAU * 3);\n const isLine = shapes2.length === 1 && shapes2[0].type === \"line\";\n return \/* @__PURE__ *\/ (0, import_jsx_runtime14.jsx)(HTMLContainer, {\n centered: true,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime14.jsx)(\"div\", {\n className: \"tl-bounds-detail\",\n style: {\n transform: isFlipped ? `rotate(${Math.PI + selectionRotation}rad) translateY(${scaledBounds.height \/ 2 + 32}px)` : `rotate(${selectionRotation}rad) translateY(${scaledBounds.height \/ 2 + 24}px)`,\n padding: \"2px 3px\",\n borderRadius: \"1px\"\n },\n children: isLine ? `${src_default.dist(\n shapes2[0].props.handles.start.point,\n shapes2[0].props.handles.end.point\n ).toFixed()}` : detail === \"size\" ? `${scaledBounds.width.toFixed()} \\xD7 ${scaledBounds.height.toFixed()}` : `\\u2220${GeomUtils.radiansToDegrees(GeomUtils.clampRadians(rotation)).toFixed()}\\xB0`\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/CornerHandle.tsx\nvar import_jsx_runtime15 = require(\"react\/jsx-runtime\");\nvar cornerBgClassnames = {\n [\"top_left_corner\" \/* TopLeft *\/]: \"tl-cursor-nwse\",\n [\"top_right_corner\" \/* TopRight *\/]: \"tl-cursor-nesw\",\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"tl-cursor-nwse\",\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"tl-cursor-nesw\"\n};\nvar CornerHandle = observer(function CornerHandle2({\n cx: cx2,\n cy,\n size,\n targetSize,\n corner,\n isHidden\n}) {\n const events = useBoundsEvents(corner);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime15.jsxs)(\"g\", __spreadProps(__spreadValues({\n opacity: isHidden ? 0 : 1\n }, events), {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime15.jsx)(\"rect\", {\n className: \"tl-transparent \" + (isHidden ? \"\" : cornerBgClassnames[corner]),\n \"aria-label\": `${corner} target`,\n x: cx2 - targetSize * 1.25,\n y: cy - targetSize * 1.25,\n width: targetSize * 2.5,\n height: targetSize * 2.5,\n pointerEvents: isHidden ? \"none\" : \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime15.jsx)(\"rect\", {\n className: \"tl-corner-handle\",\n \"aria-label\": `${corner} handle`,\n x: cx2 - size \/ 2,\n y: cy - size \/ 2,\n width: size,\n height: size,\n pointerEvents: \"none\"\n })\n ]\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/CloneHandle.tsx\nvar import_jsx_runtime16 = require(\"react\/jsx-runtime\");\nvar CloneHandle = observer(function CloneHandle2({\n cx: cx2,\n cy,\n size,\n direction,\n isHidden\n}) {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsxs)(\"g\", {\n className: \"tl-clone-handle\",\n opacity: isHidden ? 0 : 1,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsx)(\"circle\", {\n \"aria-label\": `${direction} handle`,\n pointerEvents: \"all\",\n onPointerDown: (e2) => app.api.clone(direction),\n cx: cx2,\n cy,\n r: size\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsx)(\"line\", {\n x1: cx2 - size \/ 2,\n y1: cy,\n x2: cx2 + size \/ 2,\n y2: cy\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsx)(\"line\", {\n x1: cx2,\n y1: cy - size \/ 2,\n x2: cx2,\n y2: cy + size \/ 2\n })\n ]\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/EdgeHandle.tsx\nvar import_jsx_runtime17 = require(\"react\/jsx-runtime\");\nvar edgeClassnames = {\n [\"top_edge\" \/* Top *\/]: \"tl-cursor-ns\",\n [\"right_edge\" \/* Right *\/]: \"tl-cursor-ew\",\n [\"bottom_edge\" \/* Bottom *\/]: \"tl-cursor-ns\",\n [\"left_edge\" \/* Left *\/]: \"tl-cursor-ew\"\n};\nvar EdgeHandle = observer(function EdgeHandle2({\n x: x4,\n y: y4,\n width,\n height,\n targetSize,\n edge,\n disabled,\n isHidden\n}) {\n const events = useBoundsEvents(edge);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime17.jsx)(\"rect\", __spreadValues({\n pointerEvents: isHidden || disabled ? \"none\" : \"all\",\n className: \"tl-transparent tl-edge-handle \" + (isHidden ? \"\" : edgeClassnames[edge]),\n \"aria-label\": `${edge} target`,\n opacity: isHidden ? 0 : 1,\n x: x4 - targetSize,\n y: y4 - targetSize,\n width: Math.max(1, width + targetSize * 2),\n height: Math.max(1, height + targetSize * 2)\n }, events));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/RotateHandle.tsx\nvar import_jsx_runtime18 = require(\"react\/jsx-runtime\");\nvar RotateHandle = observer(function RotateHandle2({\n cx: cx2,\n cy,\n size,\n targetSize,\n isHidden\n}) {\n const events = useBoundsEvents(\"rotate\");\n return \/* @__PURE__ *\/ (0, import_jsx_runtime18.jsxs)(\"g\", __spreadProps(__spreadValues({\n opacity: isHidden ? 0 : 1\n }, events), {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime18.jsx)(\"circle\", {\n className: \"tl-transparent \",\n \"aria-label\": \"rotate target\",\n cx: cx2,\n cy,\n r: targetSize,\n pointerEvents: isHidden ? \"none\" : \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime18.jsx)(\"circle\", {\n className: \"tl-rotate-handle\",\n \"aria-label\": \"rotate handle\",\n cx: cx2,\n cy,\n r: size \/ 2,\n pointerEvents: \"none\"\n })\n ]\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/RotateCornerHandle.tsx\nvar React29 = require(\"react\");\nvar import_jsx_runtime19 = require(\"react\/jsx-runtime\");\nvar RotateCornerHandle = observer(function RotateCornerHandle2({\n cx: cx2,\n cy,\n targetSize,\n corner,\n isHidden\n}) {\n const events = useBoundsEvents(corner);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime19.jsx)(\"g\", __spreadProps(__spreadValues({\n opacity: isHidden ? 0 : 1\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime19.jsx)(\"rect\", {\n className: \"tl-transparent\",\n \"aria-label\": `${corner} target`,\n x: cx2 - targetSize * 2.5,\n y: cy - targetSize * 2.5,\n width: targetSize * 3,\n height: targetSize * 3,\n pointerEvents: isHidden ? \"none\" : \"all\"\n })\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/SelectionForeground.tsx\nvar import_jsx_runtime20 = require(\"react\/jsx-runtime\");\nvar SelectionForeground = observer(function SelectionForeground2({\n bounds,\n showResizeHandles,\n showRotateHandles,\n showCloneHandles,\n shapes: shapes2\n}) {\n var _a3, _b;\n const app = useApp();\n let { width, height } = bounds;\n const zoom = app.viewport.camera.zoom;\n const size = 8 \/ zoom;\n const targetSize = 6 \/ zoom;\n const clonePadding = 30 \/ zoom;\n const cloneHandleSize = size * 2;\n const canResize = shapes2.length === 1 ? shapes2[0].canResize : [true, true];\n const borderRadius = (_b = (_a3 = app.editingShape) == null ? void 0 : _a3.props[\"borderRadius\"]) != null ? _b : 0;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(import_jsx_runtime20.Fragment, {\n children: shapes2.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsxs)(SVGContainer, {\n children: [\n !app.editingShape && \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(\"rect\", {\n className: \"tl-bounds-fg\",\n width: Math.max(width, 1),\n height: Math.max(height, 1),\n rx: borderRadius,\n ry: borderRadius,\n pointerEvents: \"none\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: targetSize * 2,\n y: 0,\n width: width - targetSize * 4,\n height: 0,\n targetSize,\n edge: \"top_edge\" \/* Top *\/,\n disabled: !canResize[1],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: width,\n y: targetSize * 2,\n width: 0,\n height: height - targetSize * 4,\n targetSize,\n edge: \"right_edge\" \/* Right *\/,\n disabled: !canResize[0],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: targetSize * 2,\n y: height,\n width: width - targetSize * 4,\n height: 0,\n targetSize,\n edge: \"bottom_edge\" \/* Bottom *\/,\n disabled: !canResize[1],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: 0,\n y: targetSize * 2,\n width: 0,\n height: height - targetSize * 4,\n targetSize,\n edge: \"left_edge\" \/* Left *\/,\n disabled: !canResize[0],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: 0,\n cy: 0,\n targetSize,\n corner: \"top_left_resize_corner\" \/* TopLeft *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: width + targetSize * 2,\n cy: 0,\n targetSize,\n corner: \"top_right_resize_corner\" \/* TopRight *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: width + targetSize * 2,\n cy: height + targetSize * 2,\n targetSize,\n corner: \"bottom_right_resize_corner\" \/* BottomRight *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: 0,\n cy: height + targetSize * 2,\n targetSize,\n corner: \"bottom_left_resize_corner\" \/* BottomLeft *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CloneHandle, {\n cx: -clonePadding,\n cy: height \/ 2,\n size: cloneHandleSize,\n direction: \"left\" \/* Left *\/,\n isHidden: !showCloneHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CloneHandle, {\n cx: width + clonePadding,\n cy: height \/ 2,\n size: cloneHandleSize,\n direction: \"right\" \/* Right *\/,\n isHidden: !showCloneHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CloneHandle, {\n cx: width \/ 2,\n cy: height + clonePadding,\n size: cloneHandleSize,\n direction: \"down\" \/* Down *\/,\n isHidden: !showCloneHandles\n }),\n (canResize == null ? void 0 : canResize.every((r4) => r4)) && \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: 0,\n cy: 0,\n size,\n targetSize,\n corner: \"top_left_corner\" \/* TopLeft *\/,\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: width,\n cy: 0,\n size,\n targetSize,\n corner: \"top_right_corner\" \/* TopRight *\/,\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: width,\n cy: height,\n size,\n targetSize,\n corner: \"bottom_right_corner\" \/* BottomRight *\/,\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: 0,\n cy: height,\n size,\n targetSize,\n corner: \"bottom_left_corner\" \/* BottomLeft *\/,\n isHidden: !showResizeHandles\n })\n ]\n })\n ]\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Brush\/Brush.tsx\nvar import_jsx_runtime21 = require(\"react\/jsx-runtime\");\nvar Brush = observer(function Brush2({ bounds }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime21.jsx)(Container, {\n bounds,\n zIndex: 10001,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime21.jsx)(SVGContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime21.jsx)(\"rect\", {\n className: \"tl-brush\",\n x: 0,\n y: 0,\n width: bounds.width,\n height: bounds.height\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Cursor\/Cursor.tsx\nvar import_jsx_runtime22 = require(\"react\/jsx-runtime\");\nvar Cursor = observer(function Cursor2() {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, {});\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Handle\/Handle.tsx\nvar import_jsx_runtime23 = require(\"react\/jsx-runtime\");\nvar Handle = observer(function Handle2({\n shape,\n handle,\n id: id3\n}) {\n const events = useHandleEvents(shape, id3);\n const [x4, y4] = handle.point;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime23.jsxs)(\"g\", __spreadProps(__spreadValues({\n className: \"tl-handle\",\n \"aria-label\": \"handle\"\n }, events), {\n transform: `translate(${x4}, ${y4})`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime23.jsx)(\"circle\", {\n className: \"tl-handle-bg\",\n pointerEvents: \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime23.jsx)(\"circle\", {\n className: \"tl-counter-scaled tl-handle\",\n pointerEvents: \"none\",\n r: 4\n })\n ]\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/DirectionIndicator\/DirectionIndicator.tsx\nvar React30 = __toESM(require(\"react\"));\nvar import_jsx_runtime24 = require(\"react\/jsx-runtime\");\nvar DirectionIndicator = observer(function DirectionIndicator2({ direction }) {\n const {\n viewport: { bounds }\n } = useRendererContext();\n const rIndicator = React30.useRef(null);\n React30.useLayoutEffect(() => {\n const elm = rIndicator.current;\n if (!elm)\n return;\n const center = [bounds.width \/ 2, bounds.height \/ 2];\n const insetBoundSides = BoundsUtils.getRectangleSides(\n [12, 12],\n [bounds.width - 24, bounds.height - 24]\n );\n for (const [_2, [A4, B3]] of insetBoundSides) {\n const int = intersectRayLineSegment(center, direction, A4, B3);\n if (!int.didIntersect)\n continue;\n const point = int.points[0];\n elm.style.transform = `translate(${point[0] - 6}px,${point[1] - 6}px) rotate(${src_default.toAngle(\n direction\n )}rad)`;\n }\n }, [direction, bounds]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime24.jsx)(\"div\", {\n ref: rIndicator,\n className: \"tl-direction-indicator\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime24.jsx)(\"svg\", {\n height: 12,\n width: 12,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime24.jsx)(\"polygon\", {\n points: \"0,0 12,6 0,12\"\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Canvas\/Canvas.tsx\nvar import_jsx_runtime25 = require(\"react\/jsx-runtime\");\nvar Canvas = observer(function Renderer({\n id: id3,\n className,\n brush,\n shapes: shapes2,\n assets,\n bindingShapes,\n editingShape,\n hoveredShape,\n hoveredGroup,\n selectionBounds,\n selectedShapes,\n erasingShapes,\n selectionDirectionHint,\n cursor = \"default\" \/* Default *\/,\n cursorRotation = 0,\n selectionRotation = 0,\n showSelection = true,\n showHandles = true,\n showSelectionRotation = false,\n showResizeHandles = true,\n showRotateHandles = true,\n showCloneHandles = true,\n showSelectionDetail = true,\n showContextBar = true,\n showGrid = true,\n gridSize = 8,\n onEditingEnd = NOOP,\n theme = EMPTY_OBJECT,\n children\n}) {\n var _a3;\n const rContainer = React31.useRef(null);\n const { viewport, components, meta } = useRendererContext();\n const app = useApp();\n const onBoundsChange = React31.useCallback((bounds) => {\n app.inputs.updateContainerOffset([bounds.minX, bounds.minY]);\n }, []);\n useStylesheet(theme, id3);\n usePreventNavigation(rContainer);\n useResizeObserver(rContainer, viewport, onBoundsChange);\n useGestureEvents(rContainer);\n useRestoreCamera();\n useCursor(rContainer, cursor, cursorRotation);\n useZoom(rContainer);\n useKeyboardEvents(rContainer);\n const events = useCanvasEvents();\n const onlySelectedShape = (selectedShapes == null ? void 0 : selectedShapes.length) === 1 && selectedShapes[0];\n const onlySelectedShapeWithHandles = onlySelectedShape && \"handles\" in onlySelectedShape.props ? selectedShapes == null ? void 0 : selectedShapes[0] : void 0;\n const selectedShapesSet = React31.useMemo(() => new Set(selectedShapes || []), [selectedShapes]);\n const erasingShapesSet = React31.useMemo(() => new Set(erasingShapes || []), [erasingShapes]);\n const singleSelectedShape = (selectedShapes == null ? void 0 : selectedShapes.length) === 1 ? selectedShapes[0] : void 0;\n const hoveredShapes = [...\/* @__PURE__ *\/ new Set([hoveredGroup, hoveredShape])].filter(isNonNullable);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(\"div\", {\n ref: rContainer,\n className: `tl-container ${className != null ? className : \"\"}`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(\"div\", __spreadProps(__spreadValues({\n tabIndex: -1,\n className: \"tl-absolute tl-canvas\"\n }, events), {\n children: [\n showGrid && components.Grid && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.Grid, {\n size: gridSize\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(HTMLLayer, {\n children: [\n components.SelectionBackground && selectedShapes && selectionBounds && showSelection && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Container, {\n \"data-type\": \"SelectionBackground\",\n bounds: selectionBounds,\n zIndex: 2,\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.SelectionBackground, {\n shapes: selectedShapes,\n bounds: selectionBounds,\n showResizeHandles,\n showRotateHandles\n })\n }),\n shapes2 && shapes2.map((shape, i4) => \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Shape2, {\n shape,\n asset: assets && shape.props.assetId ? assets[shape.props.assetId] : void 0,\n isEditing: shape === editingShape,\n isHovered: shape === hoveredShape,\n isBinding: bindingShapes == null ? void 0 : bindingShapes.includes(shape),\n isSelected: selectedShapesSet.has(shape),\n isErasing: erasingShapesSet.has(shape),\n meta,\n zIndex: 1e3 + i4,\n onEditingEnd\n }, \"shape_\" + shape.id)),\n !app.isIn(\"select.pinching\") && (selectedShapes == null ? void 0 : selectedShapes.map((shape) => \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Indicator, {\n shape,\n isEditing: shape === editingShape,\n isHovered: false,\n isBinding: false,\n isSelected: true,\n isLocked: shape.props.isLocked\n }, \"selected_indicator_\" + shape.id))),\n hoveredShapes.map(\n (s4) => s4 !== editingShape && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Indicator, {\n shape: s4\n }, \"hovered_indicator_\" + s4.id)\n ),\n singleSelectedShape && components.BacklinksCount && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(BacklinksCountContainer, {\n hidden: false,\n bounds: singleSelectedShape.bounds,\n shape: singleSelectedShape\n }),\n hoveredShape && hoveredShape !== singleSelectedShape && components.QuickLinks && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(QuickLinksContainer, {\n hidden: false,\n bounds: hoveredShape.bounds,\n shape: hoveredShape\n }),\n brush && components.Brush && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.Brush, {\n bounds: brush\n }),\n selectedShapes && selectionBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, {\n children: [\n showSelection && components.SelectionForeground && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Container, {\n \"data-type\": \"SelectionForeground\",\n \"data-html2canvas-ignore\": \"true\",\n bounds: selectionBounds,\n zIndex: editingShape && selectedShapes.includes(editingShape) ? 1002 : 10002,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.SelectionForeground, {\n shapes: selectedShapes.filter((shape) => !shape.props.isLocked),\n bounds: selectionBounds,\n showResizeHandles,\n showRotateHandles,\n showCloneHandles\n })\n }),\n showHandles && onlySelectedShapeWithHandles && components.Handle && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Container, {\n \"data-type\": \"onlySelectedShapeWithHandles\",\n \"data-html2canvas-ignore\": \"true\",\n bounds: selectionBounds,\n zIndex: 10003,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(SVGContainer, {\n children: Object.entries((_a3 = onlySelectedShapeWithHandles.props.handles) != null ? _a3 : {}).map(\n ([id4, handle]) => React31.createElement(components.Handle, {\n key: `${handle.id}_handle_${handle.id}`,\n shape: onlySelectedShapeWithHandles,\n handle,\n id: id4\n })\n )\n })\n }),\n selectedShapes && components.SelectionDetail && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(SelectionDetailContainer, {\n \"data-html2canvas-ignore\": \"true\",\n shapes: selectedShapes,\n bounds: selectionBounds,\n detail: showSelectionRotation ? \"rotation\" : \"size\",\n hidden: !showSelectionDetail,\n rotation: selectionRotation\n }, \"detail\" + selectedShapes.map((shape) => shape.id).join(\"\"))\n ]\n })\n ]\n }),\n selectionDirectionHint && selectionBounds && selectedShapes && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(DirectionIndicator, {\n direction: selectionDirectionHint,\n bounds: selectionBounds,\n shapes: selectedShapes\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(\"div\", {\n id: \"tl-dev-tools-canvas-anchor\",\n \"data-html2canvas-ignore\": \"true\"\n })\n ]\n })),\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(HTMLLayer, {\n children: selectedShapes && selectionBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, {\n children: selectedShapes && components.ContextBar && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(ContextBarContainer, {\n shapes: selectedShapes.filter((s4) => !s4.props.isLocked),\n hidden: !showContextBar,\n bounds: singleSelectedShape ? singleSelectedShape.bounds : selectionBounds,\n rotation: singleSelectedShape ? singleSelectedShape.props.rotation : 0\n }, \"context\" + selectedShapes.map((shape) => shape.id).join(\"\"))\n })\n }),\n children\n ]\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Renderer\/RendererContext.tsx\nvar React33 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/components\/SVGLayer\/SVGLayer.tsx\nvar React32 = __toESM(require(\"react\"));\nvar import_jsx_runtime26 = require(\"react\/jsx-runtime\");\nvar SVGLayer = observer(function SVGLayer2({ children }) {\n const rGroup = React32.useRef(null);\n const { viewport } = useRendererContext();\n React32.useEffect(\n () => autorun(() => {\n const group = rGroup.current;\n if (!group)\n return;\n const { zoom, point } = viewport.camera;\n group.style.transform = `scale(${zoom}) translateX(${point[0]}px) translateY(${point[1]}px)`;\n }),\n []\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime26.jsx)(\"svg\", {\n className: \"tl-absolute tl-overlay\",\n pointerEvents: \"none\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime26.jsx)(\"g\", {\n ref: rGroup,\n pointerEvents: \"none\",\n children\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/AppProvider.tsx\nvar import_jsx_runtime27 = require(\"react\/jsx-runtime\");\nvar AppProvider = observer(function App(props) {\n const app = useAppSetup(props);\n const context = getAppContext(props.id);\n usePropControl(app, props);\n useSetup(app, props);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime27.jsx)(context.Provider, {\n value: app,\n children: props.children\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Renderer\/RendererContext.tsx\nvar import_jsx_runtime28 = require(\"react\/jsx-runtime\");\nvar RendererContext = observer(function App2({\n id: id3 = \"noid\",\n viewport,\n inputs,\n callbacks = EMPTY_OBJECT,\n meta = EMPTY_OBJECT,\n components = EMPTY_OBJECT,\n children\n}) {\n const [currentContext, setCurrentContext] = React33.useState(() => {\n const _a3 = components, {\n Brush: Brush3,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3,\n Grid: Grid3,\n Handle: Handle3,\n SelectionBackground: SelectionBackground3,\n SelectionDetail: SelectionDetail4,\n SelectionForeground: SelectionForeground3\n } = _a3, rest = __objRest(_a3, [\n \"Brush\",\n \"ContextBar\",\n \"DirectionIndicator\",\n \"Grid\",\n \"Handle\",\n \"SelectionBackground\",\n \"SelectionDetail\",\n \"SelectionForeground\"\n ]);\n return {\n id: id3,\n viewport,\n inputs,\n callbacks,\n meta,\n components: __spreadProps(__spreadValues({}, rest), {\n Brush: Brush3 === null ? void 0 : Brush,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3 === null ? void 0 : DirectionIndicator,\n Grid: Grid3 === null ? void 0 : Grid,\n Handle: Handle3 === null ? void 0 : Handle,\n SelectionBackground: SelectionBackground3 === null ? void 0 : SelectionBackground,\n SelectionDetail: SelectionDetail4 === null ? void 0 : SelectionDetail2,\n SelectionForeground: SelectionForeground3 === null ? void 0 : SelectionForeground\n })\n };\n });\n React33.useLayoutEffect(() => {\n const _a3 = components, {\n Brush: Brush3,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3,\n Grid: Grid3,\n Handle: Handle3,\n SelectionBackground: SelectionBackground3,\n SelectionDetail: SelectionDetail4,\n SelectionForeground: SelectionForeground3\n } = _a3, rest = __objRest(_a3, [\n \"Brush\",\n \"ContextBar\",\n \"DirectionIndicator\",\n \"Grid\",\n \"Handle\",\n \"SelectionBackground\",\n \"SelectionDetail\",\n \"SelectionForeground\"\n ]);\n return autorun(() => {\n setCurrentContext({\n id: id3,\n viewport,\n inputs,\n callbacks,\n meta,\n components: __spreadProps(__spreadValues({}, rest), {\n Brush: Brush3 === null ? void 0 : Brush,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3 === null ? void 0 : DirectionIndicator,\n Grid: Grid3 === null ? void 0 : Grid,\n Handle: Handle3 === null ? void 0 : Handle,\n SelectionBackground: SelectionBackground3 === null ? void 0 : SelectionBackground,\n SelectionDetail: SelectionDetail4 === null ? void 0 : SelectionDetail2,\n SelectionForeground: SelectionForeground3 === null ? void 0 : SelectionForeground\n })\n });\n });\n }, []);\n const context = getRendererContext(id3);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime28.jsx)(context.Provider, {\n value: currentContext,\n children\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Renderer\/Renderer.tsx\nvar import_jsx_runtime29 = require(\"react\/jsx-runtime\");\nfunction Renderer2(_a3) {\n var _b = _a3, {\n viewport,\n inputs,\n callbacks,\n components\n } = _b, rest = __objRest(_b, [\n \"viewport\",\n \"inputs\",\n \"callbacks\",\n \"components\"\n ]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime29.jsx)(RendererContext, {\n id: rest.id,\n viewport,\n inputs,\n callbacks,\n components,\n meta: rest.meta,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime29.jsx)(Canvas, __spreadValues({}, rest))\n });\n}\n\n\/\/ ..\/..\/packages\/react\/src\/components\/AppCanvas.tsx\nvar import_jsx_runtime30 = require(\"react\/jsx-runtime\");\nvar AppCanvas = observer(function InnerApp(props) {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime30.jsx)(Renderer2, __spreadValues({\n viewport: app.viewport,\n inputs: app.inputs,\n callbacks: app._events,\n brush: app.brush,\n editingShape: app.editingShape,\n hoveredShape: app.hoveredShape,\n hoveredGroup: app.hoveredGroup,\n bindingShapes: app.bindingShapes,\n selectionDirectionHint: app.selectionDirectionHint,\n selectionBounds: app.selectionBounds,\n selectedShapes: app.selectedShapesArray,\n erasingShapes: app.erasingShapesArray,\n shapes: app.shapes,\n assets: app.assets,\n showGrid: app.settings.showGrid,\n penMode: app.settings.penMode,\n showSelection: app.showSelection,\n showSelectionRotation: app.showSelectionRotation,\n showResizeHandles: app.showResizeHandles,\n showRotateHandles: app.showRotateHandles,\n showCloneHandles: app.showCloneHandles,\n showSelectionDetail: app.showSelectionDetail,\n showContextBar: app.showContextBar,\n cursor: app.cursors.cursor,\n cursorRotation: app.cursors.rotation,\n selectionRotation: app.selectionRotation,\n onEditingEnd: app.clearEditingState\n }, props));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/App.tsx\nvar import_jsx_runtime31 = require(\"react\/jsx-runtime\");\n\n\/\/ ..\/..\/packages\/react\/src\/index.ts\nfunction getContextBarTranslation(barSize, offset) {\n let x4 = 0;\n let y4 = 0;\n if (offset.top < 116) {\n y4 = offset.height \/ 2 + 40;\n if (offset.bottom < 140) {\n y4 += offset.bottom - 140;\n }\n } else {\n y4 = -(offset.height \/ 2 + 40);\n }\n if (offset.left + offset.width \/ 2 - barSize[0] \/ 2 < 16) {\n x4 += -(offset.left + offset.width \/ 2 - barSize[0] \/ 2 - 16);\n } else if (offset.right + offset.width \/ 2 - barSize[0] \/ 2 < 16) {\n x4 += offset.right + offset.width \/ 2 - barSize[0] \/ 2 - 16;\n }\n return [x4, y4];\n}\n\n\/\/ src\/app.tsx\nvar React78 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/ActionBar\/ActionBar.tsx\nvar React44 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/icons\/TablerIcon.tsx\nvar import_jsx_runtime32 = require(\"react\/jsx-runtime\");\nvar extendedIcons = [\n \"add-link\",\n \"block-search\",\n \"block\",\n \"connector\",\n \"group\",\n \"internal-link\",\n \"link-to-block\",\n \"link-to-page\",\n \"link-to-whiteboard\",\n \"move-to-sidebar-right\",\n \"object-compact\",\n \"object-expanded\",\n \"open-as-page\",\n \"page-search\",\n \"page\",\n \"references-hide\",\n \"references-show\",\n \"select-cursor\",\n \"text\",\n \"ungroup\",\n \"whiteboard-element\",\n \"whiteboard\"\n];\nvar cx = (...args) => args.join(\" \");\nvar TablerIcon = (_a3) => {\n var _b = _a3, {\n name,\n className\n } = _b, props = __objRest(_b, [\n \"name\",\n \"className\"\n ]);\n const classNamePrefix = extendedIcons.includes(name) ? `tie tie-` : `ti ti-`;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime32.jsx)(\"i\", __spreadValues({\n className: cx(classNamePrefix + name, className)\n }, props));\n};\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/extends.js\nfunction _extends2() {\n _extends2 = Object.assign ? Object.assign.bind() : function(target) {\n for (var i4 = 1; i4 < arguments.length; i4++) {\n var source = arguments[i4];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends2.apply(this, arguments);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-tooltip\/dist\/index.module.js\nvar import_react28 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/primitive\/dist\/index.module.js\nfunction $e42e1063c40fb3ef$export$b9ecd428b558ff10(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler === null || originalEventHandler === void 0 || originalEventHandler(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented)\n return ourEventHandler === null || ourEventHandler === void 0 ? void 0 : ourEventHandler(event);\n };\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-compose-refs\/dist\/index.module.js\nvar import_react12 = require(\"react\");\nfunction $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === \"function\")\n ref(value);\n else if (ref !== null && ref !== void 0)\n ref.current = value;\n}\nfunction $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node) => refs.forEach(\n (ref) => $6ed0406888f73fc4$var$setRef(ref, node)\n );\n}\nfunction $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n return (0, import_react12.useCallback)($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-context\/dist\/index.module.js\nvar import_react13 = require(\"react\");\nfunction $c512c27ab02ef895$export$50c7b4e9d9f19c1(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const BaseContext = \/* @__PURE__ *\/ (0, import_react13.createContext)(defaultContext);\n const index3 = defaultContexts.length;\n defaultContexts = [\n ...defaultContexts,\n defaultContext\n ];\n function Provider(props) {\n const _a3 = props, { scope, children } = _a3, context = __objRest(_a3, [\"scope\", \"children\"]);\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index3]) || BaseContext;\n const value = (0, import_react13.useMemo)(\n () => context,\n Object.values(context)\n );\n return \/* @__PURE__ *\/ (0, import_react13.createElement)(Context.Provider, {\n value\n }, children);\n }\n function useContext16(consumerName, scope) {\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index3]) || BaseContext;\n const context = (0, import_react13.useContext)(Context);\n if (context)\n return context;\n if (defaultContext !== void 0)\n return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + \"Provider\";\n return [\n Provider,\n useContext16\n ];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return \/* @__PURE__ *\/ (0, import_react13.createContext)(defaultContext);\n });\n return function useScope(scope) {\n const contexts = (scope === null || scope === void 0 ? void 0 : scope[scopeName]) || scopeContexts;\n return (0, import_react13.useMemo)(\n () => ({\n [`__scope${scopeName}`]: __spreadProps(__spreadValues({}, scope), {\n [scopeName]: contexts\n })\n }),\n [\n scope,\n contexts\n ]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [\n $c512c27ab02ef895$export$fd42f52fd3ae1109,\n $c512c27ab02ef895$var$composeContextScopes(createScope, ...createContextScopeDeps)\n ];\n}\nfunction $c512c27ab02ef895$var$composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1)\n return baseScope;\n const createScope1 = () => {\n const scopeHooks = scopes.map(\n (createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName\n })\n );\n return function useComposedScopes(overrideScopes) {\n const nextScopes1 = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return __spreadValues(__spreadValues({}, nextScopes), currentScope);\n }, {});\n return (0, import_react13.useMemo)(\n () => ({\n [`__scope${baseScope.scopeName}`]: nextScopes1\n }),\n [\n nextScopes1\n ]\n );\n };\n };\n createScope1.scopeName = baseScope.scopeName;\n return createScope1;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar import_react18 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-primitive\/dist\/index.module.js\nvar import_react15 = require(\"react\");\nvar import_react_dom2 = require(\"react-dom\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-slot\/dist\/index.module.js\nvar import_react14 = require(\"react\");\nvar $5e63c961fc1ce211$export$8c6ed5c666ac1360 = \/* @__PURE__ *\/ (0, import_react14.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { children } = _a3, slotProps = __objRest(_a3, [\"children\"]);\n const childrenArray = import_react14.Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (import_react14.Children.count(newElement) > 1)\n return import_react14.Children.only(null);\n return \/* @__PURE__ *\/ (0, import_react14.isValidElement)(newElement) ? newElement.props.children : null;\n } else\n return child;\n });\n return \/* @__PURE__ *\/ (0, import_react14.createElement)($5e63c961fc1ce211$var$SlotClone, _extends2({}, slotProps, {\n ref: forwardedRef\n }), \/* @__PURE__ *\/ (0, import_react14.isValidElement)(newElement) ? \/* @__PURE__ *\/ (0, import_react14.cloneElement)(newElement, void 0, newChildren) : null);\n }\n return \/* @__PURE__ *\/ (0, import_react14.createElement)($5e63c961fc1ce211$var$SlotClone, _extends2({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = \"Slot\";\nvar $5e63c961fc1ce211$var$SlotClone = \/* @__PURE__ *\/ (0, import_react14.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { children } = _a3, slotProps = __objRest(_a3, [\"children\"]);\n if (\/* @__PURE__ *\/ (0, import_react14.isValidElement)(children))\n return \/* @__PURE__ *\/ (0, import_react14.cloneElement)(children, __spreadProps(__spreadValues({}, $5e63c961fc1ce211$var$mergeProps(slotProps, children.props)), {\n ref: $6ed0406888f73fc4$export$43e446d32b3d21af(forwardedRef, children.ref)\n }));\n return import_react14.Children.count(children) > 1 ? import_react14.Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = \"SlotClone\";\nvar $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children }) => {\n return \/* @__PURE__ *\/ (0, import_react14.createElement)(import_react14.Fragment, null, children);\n};\nfunction $5e63c961fc1ce211$var$isSlottable(child) {\n return \/* @__PURE__ *\/ (0, import_react14.isValidElement)(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n const overrideProps = __spreadValues({}, childProps);\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = \/^on[A-Z]\/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue)\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n else if (slotPropValue)\n overrideProps[propName] = slotPropValue;\n } else if (propName === \"style\")\n overrideProps[propName] = __spreadValues(__spreadValues({}, slotPropValue), childPropValue);\n else if (propName === \"className\")\n overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(\" \");\n }\n return __spreadValues(__spreadValues({}, slotProps), overrideProps);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-primitive\/dist\/index.module.js\nvar $8927f6f2acc4f386$var$NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"h2\",\n \"h3\",\n \"img\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node) => {\n const Node = \/* @__PURE__ *\/ (0, import_react15.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { asChild } = _a3, primitiveProps = __objRest(_a3, [\"asChild\"]);\n const Comp = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : node;\n (0, import_react15.useEffect)(() => {\n window[Symbol.for(\"radix-ui\")] = true;\n }, []);\n return \/* @__PURE__ *\/ (0, import_react15.createElement)(Comp, _extends2({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return __spreadProps(__spreadValues({}, primitive), {\n [node]: Node\n });\n}, {});\nfunction $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target)\n (0, import_react_dom2.flushSync)(\n () => target.dispatchEvent(event)\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-callback-ref\/dist\/index.module.js\nvar import_react16 = require(\"react\");\nfunction $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = (0, import_react16.useRef)(callback);\n (0, import_react16.useEffect)(() => {\n callbackRef.current = callback;\n });\n return (0, import_react16.useMemo)(\n () => (...args) => {\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n },\n []\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-escape-keydown\/dist\/index.module.js\nvar import_react17 = require(\"react\");\nfunction $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const onEscapeKeyDown = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onEscapeKeyDownProp);\n (0, import_react17.useEffect)(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\")\n onEscapeKeyDown(event);\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown);\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown);\n }, [\n onEscapeKeyDown,\n ownerDocument\n ]);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar $5cb92bef7577960e$var$CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar $5cb92bef7577960e$var$FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar $5cb92bef7577960e$var$originalBodyPointerEvents;\nvar $5cb92bef7577960e$var$DismissableLayerContext = \/* @__PURE__ *\/ (0, import_react18.createContext)({\n layers: \/* @__PURE__ *\/ new Set(),\n layersWithOutsidePointerEventsDisabled: \/* @__PURE__ *\/ new Set(),\n branches: \/* @__PURE__ *\/ new Set()\n});\nvar $5cb92bef7577960e$export$177fb62ff3ec1f22 = \/* @__PURE__ *\/ (0, import_react18.forwardRef)((props, forwardedRef) => {\n var _node$ownerDocument;\n const _a3 = props, { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss } = _a3, layerProps = __objRest(_a3, [\"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\"]);\n const context = (0, import_react18.useContext)($5cb92bef7577960e$var$DismissableLayerContext);\n const [node1, setNode] = (0, import_react18.useState)(null);\n const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;\n const [, force] = (0, import_react18.useState)({});\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index3 = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index3 >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch)\n return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (isFocusInBranch)\n return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n $addc16e1bbe58fd0$export$3a72a57244d6e765((event) => {\n const isHighestLayer = index3 === context.layers.size - 1;\n if (!isHighestLayer)\n return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n (0, import_react18.useEffect)(() => {\n if (!node1)\n return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1)\n ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;\n };\n }, [\n node1,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n (0, import_react18.useEffect)(() => {\n return () => {\n if (!node1)\n return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n };\n }, [\n node1,\n context\n ]);\n (0, import_react18.useEffect)(() => {\n const handleUpdate = () => force({});\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react18.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, layerProps, {\n ref: composedRefs,\n style: __spreadValues({\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0\n }, props.style),\n onFocusCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\nfunction $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handlePointerDownOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPointerDownOutside);\n const isPointerInsideReactTreeRef = (0, import_react18.useRef)(false);\n const handleClickRef = (0, import_react18.useRef)(() => {\n });\n (0, import_react18.useEffect)(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent = function() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n };\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else\n handleAndDispatchPointerDownOutsideEvent();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction $5cb92bef7577960e$var$useFocusOutside(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handleFocusOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onFocusOutside);\n const isFocusInsideReactTreeRef = (0, import_react18.useRef)(false);\n (0, import_react18.useEffect)(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler)\n target.addEventListener(name, handler, {\n once: true\n });\n if (discrete)\n $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event);\n else\n target.dispatchEvent(event);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-id\/dist\/index.module.js\nvar $2AODx$react = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-layout-effect\/dist\/index.module.js\nvar import_react19 = require(\"react\");\nvar $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? import_react19.useLayoutEffect : () => {\n};\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-id\/dist\/index.module.js\nvar $1746a345f3d73bb7$var$useReactId = $2AODx$react[\"useId\".toString()] || (() => void 0);\nvar $1746a345f3d73bb7$var$count = 0;\nfunction $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {\n const [id3, setId] = $2AODx$react.useState($1746a345f3d73bb7$var$useReactId());\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (!deterministicId)\n setId(\n (reactId) => reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)\n );\n }, [\n deterministicId\n ]);\n return deterministicId || (id3 ? `radix-${id3}` : \"\");\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-popper\/dist\/index.module.js\nvar import_react23 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@floating-ui\/core\/dist\/floating-ui.core.browser.min.mjs\nfunction t(t2) {\n return t2.split(\"-\")[0];\n}\nfunction e(t2) {\n return t2.split(\"-\")[1];\n}\nfunction n(e2) {\n return [\"top\", \"bottom\"].includes(t(e2)) ? \"x\" : \"y\";\n}\nfunction r(t2) {\n return \"y\" === t2 ? \"height\" : \"width\";\n}\nfunction i(i4, o4, a5) {\n let { reference: l5, floating: s4 } = i4;\n const c4 = l5.x + l5.width \/ 2 - s4.width \/ 2, f4 = l5.y + l5.height \/ 2 - s4.height \/ 2, u4 = n(o4), m4 = r(u4), g4 = l5[m4] \/ 2 - s4[m4] \/ 2, d4 = \"x\" === u4;\n let p4;\n switch (t(o4)) {\n case \"top\":\n p4 = { x: c4, y: l5.y - s4.height };\n break;\n case \"bottom\":\n p4 = { x: c4, y: l5.y + l5.height };\n break;\n case \"right\":\n p4 = { x: l5.x + l5.width, y: f4 };\n break;\n case \"left\":\n p4 = { x: l5.x - s4.width, y: f4 };\n break;\n default:\n p4 = { x: l5.x, y: l5.y };\n }\n switch (e(o4)) {\n case \"start\":\n p4[u4] -= g4 * (a5 && d4 ? -1 : 1);\n break;\n case \"end\":\n p4[u4] += g4 * (a5 && d4 ? -1 : 1);\n }\n return p4;\n}\nvar o = (t2, e2, n4) => __async(void 0, null, function* () {\n const { placement: r4 = \"bottom\", strategy: o4 = \"absolute\", middleware: a5 = [], platform: l5 } = n4, s4 = yield null == l5.isRTL ? void 0 : l5.isRTL(e2);\n let c4 = yield l5.getElementRects({ reference: t2, floating: e2, strategy: o4 }), { x: f4, y: u4 } = i(c4, r4, s4), m4 = r4, g4 = {}, d4 = 0;\n for (let n5 = 0; n5 < a5.length; n5++) {\n const { name: p4, fn: h4 } = a5[n5], { x: y4, y: x4, data: w4, reset: v4 } = yield h4({ x: f4, y: u4, initialPlacement: r4, placement: m4, strategy: o4, middlewareData: g4, rects: c4, platform: l5, elements: { reference: t2, floating: e2 } });\n f4 = null != y4 ? y4 : f4, u4 = null != x4 ? x4 : u4, g4 = __spreadProps(__spreadValues({}, g4), { [p4]: __spreadValues(__spreadValues({}, g4[p4]), w4) }), v4 && d4 <= 50 && (d4++, \"object\" == typeof v4 && (v4.placement && (m4 = v4.placement), v4.rects && (c4 = true === v4.rects ? yield l5.getElementRects({ reference: t2, floating: e2, strategy: o4 }) : v4.rects), { x: f4, y: u4 } = i(c4, m4, s4)), n5 = -1);\n }\n return { x: f4, y: u4, placement: m4, strategy: o4, middlewareData: g4 };\n});\nfunction a(t2) {\n return \"number\" != typeof t2 ? function(t3) {\n return __spreadValues({ top: 0, right: 0, bottom: 0, left: 0 }, t3);\n }(t2) : { top: t2, right: t2, bottom: t2, left: t2 };\n}\nfunction l(t2) {\n return __spreadProps(__spreadValues({}, t2), { top: t2.y, left: t2.x, right: t2.x + t2.width, bottom: t2.y + t2.height });\n}\nfunction s(t2, e2) {\n return __async(this, null, function* () {\n var n4;\n void 0 === e2 && (e2 = {});\n const { x: r4, y: i4, platform: o4, rects: s4, elements: c4, strategy: f4 } = t2, { boundary: u4 = \"clippingAncestors\", rootBoundary: m4 = \"viewport\", elementContext: g4 = \"floating\", altBoundary: d4 = false, padding: p4 = 0 } = e2, h4 = a(p4), y4 = c4[d4 ? \"floating\" === g4 ? \"reference\" : \"floating\" : g4], x4 = l(yield o4.getClippingRect({ element: null == (n4 = yield null == o4.isElement ? void 0 : o4.isElement(y4)) || n4 ? y4 : y4.contextElement || (yield null == o4.getDocumentElement ? void 0 : o4.getDocumentElement(c4.floating)), boundary: u4, rootBoundary: m4, strategy: f4 })), w4 = l(o4.convertOffsetParentRelativeRectToViewportRelativeRect ? yield o4.convertOffsetParentRelativeRectToViewportRelativeRect({ rect: \"floating\" === g4 ? __spreadProps(__spreadValues({}, s4.floating), { x: r4, y: i4 }) : s4.reference, offsetParent: yield null == o4.getOffsetParent ? void 0 : o4.getOffsetParent(c4.floating), strategy: f4 }) : s4[g4]);\n return { top: x4.top - w4.top + h4.top, bottom: w4.bottom - x4.bottom + h4.bottom, left: x4.left - w4.left + h4.left, right: w4.right - x4.right + h4.right };\n });\n}\nvar c = Math.min;\nvar f = Math.max;\nfunction u(t2, e2, n4) {\n return f(t2, c(e2, n4));\n}\nvar m = (t2) => ({ name: \"arrow\", options: t2, fn(i4) {\n return __async(this, null, function* () {\n const { element: o4, padding: l5 = 0 } = null != t2 ? t2 : {}, { x: s4, y: c4, placement: f4, rects: m4, platform: g4 } = i4;\n if (null == o4)\n return {};\n const d4 = a(l5), p4 = { x: s4, y: c4 }, h4 = n(f4), y4 = e(f4), x4 = r(h4), w4 = yield g4.getDimensions(o4), v4 = \"y\" === h4 ? \"top\" : \"left\", b5 = \"y\" === h4 ? \"bottom\" : \"right\", R5 = m4.reference[x4] + m4.reference[h4] - p4[h4] - m4.floating[x4], A4 = p4[h4] - m4.reference[h4], P3 = yield null == g4.getOffsetParent ? void 0 : g4.getOffsetParent(o4);\n let T4 = P3 ? \"y\" === h4 ? P3.clientHeight || 0 : P3.clientWidth || 0 : 0;\n 0 === T4 && (T4 = m4.floating[x4]);\n const O3 = R5 \/ 2 - A4 \/ 2, D4 = d4[v4], L5 = T4 - w4[x4] - d4[b5], k3 = T4 \/ 2 - w4[x4] \/ 2 + O3, E4 = u(D4, k3, L5), C4 = (\"start\" === y4 ? d4[v4] : d4[b5]) > 0 && k3 !== E4 && m4.reference[x4] <= m4.floating[x4];\n return { [h4]: p4[h4] - (C4 ? k3 < D4 ? D4 - k3 : L5 - k3 : 0), data: { [h4]: E4, centerOffset: k3 - E4 } };\n });\n} });\nvar g = { left: \"right\", right: \"left\", bottom: \"top\", top: \"bottom\" };\nfunction d(t2) {\n return t2.replace(\/left|right|bottom|top\/g, (t3) => g[t3]);\n}\nfunction p(t2, i4, o4) {\n void 0 === o4 && (o4 = false);\n const a5 = e(t2), l5 = n(t2), s4 = r(l5);\n let c4 = \"x\" === l5 ? a5 === (o4 ? \"end\" : \"start\") ? \"right\" : \"left\" : \"start\" === a5 ? \"bottom\" : \"top\";\n return i4.reference[s4] > i4.floating[s4] && (c4 = d(c4)), { main: c4, cross: d(c4) };\n}\nvar h = { start: \"end\", end: \"start\" };\nfunction y(t2) {\n return t2.replace(\/start|end\/g, (t3) => h[t3]);\n}\nvar x = [\"top\", \"right\", \"bottom\", \"left\"];\nvar w = x.reduce((t2, e2) => t2.concat(e2, e2 + \"-start\", e2 + \"-end\"), []);\nvar b = function(e2) {\n return void 0 === e2 && (e2 = {}), { name: \"flip\", options: e2, fn(n4) {\n return __async(this, null, function* () {\n var r4;\n const { placement: i4, middlewareData: o4, rects: a5, initialPlacement: l5, platform: c4, elements: f4 } = n4, _a4 = e2, { mainAxis: u4 = true, crossAxis: m4 = true, fallbackPlacements: g4, fallbackStrategy: h4 = \"bestFit\", flipAlignment: x4 = true } = _a4, w4 = __objRest(_a4, [\"mainAxis\", \"crossAxis\", \"fallbackPlacements\", \"fallbackStrategy\", \"flipAlignment\"]), v4 = t(i4), b5 = g4 || (v4 === l5 || !x4 ? [d(l5)] : function(t2) {\n const e3 = d(t2);\n return [y(t2), e3, y(e3)];\n }(l5)), R5 = [l5, ...b5], A4 = yield s(n4, w4), P3 = [];\n let T4 = (null == (r4 = o4.flip) ? void 0 : r4.overflows) || [];\n if (u4 && P3.push(A4[v4]), m4) {\n const { main: t2, cross: e3 } = p(i4, a5, yield null == c4.isRTL ? void 0 : c4.isRTL(f4.floating));\n P3.push(A4[t2], A4[e3]);\n }\n if (T4 = [...T4, { placement: i4, overflows: P3 }], !P3.every((t2) => t2 <= 0)) {\n var O3, D4;\n const t2 = (null != (O3 = null == (D4 = o4.flip) ? void 0 : D4.index) ? O3 : 0) + 1, e3 = R5[t2];\n if (e3)\n return { data: { index: t2, overflows: T4 }, reset: { placement: e3 } };\n let n5 = \"bottom\";\n switch (h4) {\n case \"bestFit\": {\n var L5;\n const t3 = null == (L5 = T4.map((t4) => [t4, t4.overflows.filter((t5) => t5 > 0).reduce((t5, e4) => t5 + e4, 0)]).sort((t4, e4) => t4[1] - e4[1])[0]) ? void 0 : L5[0].placement;\n t3 && (n5 = t3);\n break;\n }\n case \"initialPlacement\":\n n5 = l5;\n }\n if (i4 !== n5)\n return { reset: { placement: n5 } };\n }\n return {};\n });\n } };\n};\nfunction R(t2, e2) {\n return { top: t2.top - e2.height, right: t2.right - e2.width, bottom: t2.bottom - e2.height, left: t2.left - e2.width };\n}\nfunction A(t2) {\n return x.some((e2) => t2[e2] >= 0);\n}\nvar P = function(t2) {\n let _a3 = void 0 === t2 ? {} : t2, { strategy: e2 = \"referenceHidden\" } = _a3, n4 = __objRest(_a3, [\"strategy\"]);\n return { name: \"hide\", fn(t3) {\n return __async(this, null, function* () {\n const { rects: r4 } = t3;\n switch (e2) {\n case \"referenceHidden\": {\n const e3 = R(yield s(t3, __spreadProps(__spreadValues({}, n4), { elementContext: \"reference\" })), r4.reference);\n return { data: { referenceHiddenOffsets: e3, referenceHidden: A(e3) } };\n }\n case \"escaped\": {\n const e3 = R(yield s(t3, __spreadProps(__spreadValues({}, n4), { altBoundary: true })), r4.floating);\n return { data: { escapedOffsets: e3, escaped: A(e3) } };\n }\n default:\n return {};\n }\n });\n } };\n};\nvar T = function(r4) {\n return void 0 === r4 && (r4 = 0), { name: \"offset\", options: r4, fn(i4) {\n return __async(this, null, function* () {\n const { x: o4, y: a5 } = i4, l5 = yield function(r5, i5) {\n return __async(this, null, function* () {\n const { placement: o5, platform: a6, elements: l6 } = r5, s4 = yield null == a6.isRTL ? void 0 : a6.isRTL(l6.floating), c4 = t(o5), f4 = e(o5), u4 = \"x\" === n(o5), m4 = [\"left\", \"top\"].includes(c4) ? -1 : 1, g4 = s4 && u4 ? -1 : 1, d4 = \"function\" == typeof i5 ? i5(r5) : i5;\n let { mainAxis: p4, crossAxis: h4, alignmentAxis: y4 } = \"number\" == typeof d4 ? { mainAxis: d4, crossAxis: 0, alignmentAxis: null } : __spreadValues({ mainAxis: 0, crossAxis: 0, alignmentAxis: null }, d4);\n return f4 && \"number\" == typeof y4 && (h4 = \"end\" === f4 ? -1 * y4 : y4), u4 ? { x: h4 * g4, y: p4 * m4 } : { x: p4 * m4, y: h4 * g4 };\n });\n }(i4, r4);\n return { x: o4 + l5.x, y: a5 + l5.y, data: l5 };\n });\n } };\n};\nfunction O(t2) {\n return \"x\" === t2 ? \"y\" : \"x\";\n}\nvar D = function(e2) {\n return void 0 === e2 && (e2 = {}), { name: \"shift\", options: e2, fn(r4) {\n return __async(this, null, function* () {\n const { x: i4, y: o4, placement: a5 } = r4, _a4 = e2, { mainAxis: l5 = true, crossAxis: c4 = false, limiter: f4 = { fn: (t2) => {\n let { x: e3, y: n4 } = t2;\n return { x: e3, y: n4 };\n } } } = _a4, m4 = __objRest(_a4, [\"mainAxis\", \"crossAxis\", \"limiter\"]), g4 = { x: i4, y: o4 }, d4 = yield s(r4, m4), p4 = n(t(a5)), h4 = O(p4);\n let y4 = g4[p4], x4 = g4[h4];\n if (l5) {\n const t2 = \"y\" === p4 ? \"bottom\" : \"right\";\n y4 = u(y4 + d4[\"y\" === p4 ? \"top\" : \"left\"], y4, y4 - d4[t2]);\n }\n if (c4) {\n const t2 = \"y\" === h4 ? \"bottom\" : \"right\";\n x4 = u(x4 + d4[\"y\" === h4 ? \"top\" : \"left\"], x4, x4 - d4[t2]);\n }\n const w4 = f4.fn(__spreadProps(__spreadValues({}, r4), { [p4]: y4, [h4]: x4 }));\n return __spreadProps(__spreadValues({}, w4), { data: { x: w4.x - i4, y: w4.y - o4 } });\n });\n } };\n};\nvar L = function(e2) {\n return void 0 === e2 && (e2 = {}), { options: e2, fn(r4) {\n const { x: i4, y: o4, placement: a5, rects: l5, middlewareData: s4 } = r4, { offset: c4 = 0, mainAxis: f4 = true, crossAxis: u4 = true } = e2, m4 = { x: i4, y: o4 }, g4 = n(a5), d4 = O(g4);\n let p4 = m4[g4], h4 = m4[d4];\n const y4 = \"function\" == typeof c4 ? c4(__spreadProps(__spreadValues({}, l5), { placement: a5 })) : c4, x4 = \"number\" == typeof y4 ? { mainAxis: y4, crossAxis: 0 } : __spreadValues({ mainAxis: 0, crossAxis: 0 }, y4);\n if (f4) {\n const t2 = \"y\" === g4 ? \"height\" : \"width\", e3 = l5.reference[g4] - l5.floating[t2] + x4.mainAxis, n4 = l5.reference[g4] + l5.reference[t2] - x4.mainAxis;\n p4 < e3 ? p4 = e3 : p4 > n4 && (p4 = n4);\n }\n if (u4) {\n var w4, v4, b5, R5;\n const e3 = \"y\" === g4 ? \"width\" : \"height\", n4 = [\"top\", \"left\"].includes(t(a5)), r5 = l5.reference[d4] - l5.floating[e3] + (n4 && null != (w4 = null == (v4 = s4.offset) ? void 0 : v4[d4]) ? w4 : 0) + (n4 ? 0 : x4.crossAxis), i5 = l5.reference[d4] + l5.reference[e3] + (n4 ? 0 : null != (b5 = null == (R5 = s4.offset) ? void 0 : R5[d4]) ? b5 : 0) - (n4 ? x4.crossAxis : 0);\n h4 < r5 ? h4 = r5 : h4 > i5 && (h4 = i5);\n }\n return { [g4]: p4, [d4]: h4 };\n } };\n};\nvar k = function(n4) {\n return void 0 === n4 && (n4 = {}), { name: \"size\", options: n4, fn(r4) {\n return __async(this, null, function* () {\n const { placement: i4, rects: o4, platform: a5, elements: l5 } = r4, _a4 = n4, { apply: c4 } = _a4, u4 = __objRest(_a4, [\"apply\"]), m4 = yield s(r4, u4), g4 = t(i4), d4 = e(i4);\n let p4, h4;\n \"top\" === g4 || \"bottom\" === g4 ? (p4 = g4, h4 = d4 === ((yield null == a5.isRTL ? void 0 : a5.isRTL(l5.floating)) ? \"start\" : \"end\") ? \"left\" : \"right\") : (h4 = g4, p4 = \"end\" === d4 ? \"top\" : \"bottom\");\n const y4 = f(m4.left, 0), x4 = f(m4.right, 0), w4 = f(m4.top, 0), v4 = f(m4.bottom, 0), b5 = { availableHeight: o4.floating.height - ([\"left\", \"right\"].includes(i4) ? 2 * (0 !== w4 || 0 !== v4 ? w4 + v4 : f(m4.top, m4.bottom)) : m4[p4]), availableWidth: o4.floating.width - ([\"top\", \"bottom\"].includes(i4) ? 2 * (0 !== y4 || 0 !== x4 ? y4 + x4 : f(m4.left, m4.right)) : m4[h4]) }, R5 = yield a5.getDimensions(l5.floating);\n null == c4 || c4(__spreadValues(__spreadValues({}, r4), b5));\n const A4 = yield a5.getDimensions(l5.floating);\n return R5.width !== A4.width || R5.height !== A4.height ? { reset: { rects: true } } : {};\n });\n } };\n};\n\n\/\/ ..\/..\/node_modules\/@floating-ui\/dom\/dist\/floating-ui.dom.browser.min.mjs\nfunction n2(t2) {\n return t2 && t2.document && t2.location && t2.alert && t2.setInterval;\n}\nfunction o2(t2) {\n if (null == t2)\n return window;\n if (!n2(t2)) {\n const e2 = t2.ownerDocument;\n return e2 && e2.defaultView || window;\n }\n return t2;\n}\nfunction i2(t2) {\n return o2(t2).getComputedStyle(t2);\n}\nfunction r2(t2) {\n return n2(t2) ? \"\" : t2 ? (t2.nodeName || \"\").toLowerCase() : \"\";\n}\nfunction l2() {\n const t2 = navigator.userAgentData;\n return null != t2 && t2.brands ? t2.brands.map((t3) => t3.brand + \"\/\" + t3.version).join(\" \") : navigator.userAgent;\n}\nfunction c2(t2) {\n return t2 instanceof o2(t2).HTMLElement;\n}\nfunction f2(t2) {\n return t2 instanceof o2(t2).Element;\n}\nfunction s2(t2) {\n if (\"undefined\" == typeof ShadowRoot)\n return false;\n return t2 instanceof o2(t2).ShadowRoot || t2 instanceof ShadowRoot;\n}\nfunction u2(t2) {\n const { overflow: e2, overflowX: n4, overflowY: o4 } = i2(t2);\n return \/auto|scroll|overlay|hidden\/.test(e2 + o4 + n4);\n}\nfunction d2(t2) {\n return [\"table\", \"td\", \"th\"].includes(r2(t2));\n}\nfunction h2(t2) {\n const e2 = \/firefox\/i.test(l2()), n4 = i2(t2);\n return \"none\" !== n4.transform || \"none\" !== n4.perspective || \"paint\" === n4.contain || [\"transform\", \"perspective\"].includes(n4.willChange) || e2 && \"filter\" === n4.willChange || e2 && !!n4.filter && \"none\" !== n4.filter;\n}\nfunction a2() {\n return !\/^((?!chrome|android).)*safari\/i.test(l2());\n}\nvar g2 = Math.min;\nvar p2 = Math.max;\nvar m2 = Math.round;\nfunction w2(t2, e2, n4) {\n var i4, r4, l5, s4;\n void 0 === e2 && (e2 = false), void 0 === n4 && (n4 = false);\n const u4 = t2.getBoundingClientRect();\n let d4 = 1, h4 = 1;\n e2 && c2(t2) && (d4 = t2.offsetWidth > 0 && m2(u4.width) \/ t2.offsetWidth || 1, h4 = t2.offsetHeight > 0 && m2(u4.height) \/ t2.offsetHeight || 1);\n const g4 = f2(t2) ? o2(t2) : window, p4 = !a2() && n4, w4 = (u4.left + (p4 && null != (i4 = null == (r4 = g4.visualViewport) ? void 0 : r4.offsetLeft) ? i4 : 0)) \/ d4, v4 = (u4.top + (p4 && null != (l5 = null == (s4 = g4.visualViewport) ? void 0 : s4.offsetTop) ? l5 : 0)) \/ h4, y4 = u4.width \/ d4, x4 = u4.height \/ h4;\n return { width: y4, height: x4, top: v4, right: w4 + y4, bottom: v4 + x4, left: w4, x: w4, y: v4 };\n}\nfunction v2(t2) {\n return (e2 = t2, (e2 instanceof o2(e2).Node ? t2.ownerDocument : t2.document) || window.document).documentElement;\n var e2;\n}\nfunction y2(t2) {\n return f2(t2) ? { scrollLeft: t2.scrollLeft, scrollTop: t2.scrollTop } : { scrollLeft: t2.pageXOffset, scrollTop: t2.pageYOffset };\n}\nfunction x2(t2) {\n return w2(v2(t2)).left + y2(t2).scrollLeft;\n}\nfunction b2(t2, e2, n4) {\n const o4 = c2(e2), i4 = v2(e2), l5 = w2(t2, o4 && function(t3) {\n const e3 = w2(t3);\n return m2(e3.width) !== t3.offsetWidth || m2(e3.height) !== t3.offsetHeight;\n }(e2), \"fixed\" === n4);\n let f4 = { scrollLeft: 0, scrollTop: 0 };\n const s4 = { x: 0, y: 0 };\n if (o4 || !o4 && \"fixed\" !== n4)\n if ((\"body\" !== r2(e2) || u2(i4)) && (f4 = y2(e2)), c2(e2)) {\n const t3 = w2(e2, true);\n s4.x = t3.x + e2.clientLeft, s4.y = t3.y + e2.clientTop;\n } else\n i4 && (s4.x = x2(i4));\n return { x: l5.left + f4.scrollLeft - s4.x, y: l5.top + f4.scrollTop - s4.y, width: l5.width, height: l5.height };\n}\nfunction L2(t2) {\n return \"html\" === r2(t2) ? t2 : t2.assignedSlot || t2.parentNode || (s2(t2) ? t2.host : null) || v2(t2);\n}\nfunction R2(t2) {\n return c2(t2) && \"fixed\" !== getComputedStyle(t2).position ? t2.offsetParent : null;\n}\nfunction T2(t2) {\n const e2 = o2(t2);\n let n4 = R2(t2);\n for (; n4 && d2(n4) && \"static\" === getComputedStyle(n4).position; )\n n4 = R2(n4);\n return n4 && (\"html\" === r2(n4) || \"body\" === r2(n4) && \"static\" === getComputedStyle(n4).position && !h2(n4)) ? e2 : n4 || function(t3) {\n let e3 = L2(t3);\n for (s2(e3) && (e3 = e3.host); c2(e3) && ![\"html\", \"body\"].includes(r2(e3)); ) {\n if (h2(e3))\n return e3;\n e3 = e3.parentNode;\n }\n return null;\n }(t2) || e2;\n}\nfunction W(t2) {\n if (c2(t2))\n return { width: t2.offsetWidth, height: t2.offsetHeight };\n const e2 = w2(t2);\n return { width: e2.width, height: e2.height };\n}\nfunction E2(t2) {\n const e2 = L2(t2);\n return [\"html\", \"body\", \"#document\"].includes(r2(e2)) ? t2.ownerDocument.body : c2(e2) && u2(e2) ? e2 : E2(e2);\n}\nfunction H(t2, e2) {\n var n4;\n void 0 === e2 && (e2 = []);\n const i4 = E2(t2), r4 = i4 === (null == (n4 = t2.ownerDocument) ? void 0 : n4.body), l5 = o2(i4), c4 = r4 ? [l5].concat(l5.visualViewport || [], u2(i4) ? i4 : []) : i4, f4 = e2.concat(c4);\n return r4 ? f4 : f4.concat(H(c4));\n}\nfunction C(e2, n4, r4) {\n return \"viewport\" === n4 ? l(function(t2, e3) {\n const n5 = o2(t2), i4 = v2(t2), r5 = n5.visualViewport;\n let l5 = i4.clientWidth, c4 = i4.clientHeight, f4 = 0, s4 = 0;\n if (r5) {\n l5 = r5.width, c4 = r5.height;\n const t3 = a2();\n (t3 || !t3 && \"fixed\" === e3) && (f4 = r5.offsetLeft, s4 = r5.offsetTop);\n }\n return { width: l5, height: c4, x: f4, y: s4 };\n }(e2, r4)) : f2(n4) ? function(t2, e3) {\n const n5 = w2(t2, false, \"fixed\" === e3), o4 = n5.top + t2.clientTop, i4 = n5.left + t2.clientLeft;\n return { top: o4, left: i4, x: i4, y: o4, right: i4 + t2.clientWidth, bottom: o4 + t2.clientHeight, width: t2.clientWidth, height: t2.clientHeight };\n }(n4, r4) : l(function(t2) {\n var e3;\n const n5 = v2(t2), o4 = y2(t2), r5 = null == (e3 = t2.ownerDocument) ? void 0 : e3.body, l5 = p2(n5.scrollWidth, n5.clientWidth, r5 ? r5.scrollWidth : 0, r5 ? r5.clientWidth : 0), c4 = p2(n5.scrollHeight, n5.clientHeight, r5 ? r5.scrollHeight : 0, r5 ? r5.clientHeight : 0);\n let f4 = -o4.scrollLeft + x2(t2);\n const s4 = -o4.scrollTop;\n return \"rtl\" === i2(r5 || n5).direction && (f4 += p2(n5.clientWidth, r5 ? r5.clientWidth : 0) - l5), { width: l5, height: c4, x: f4, y: s4 };\n }(v2(e2)));\n}\nfunction S(t2) {\n const e2 = H(t2), n4 = [\"absolute\", \"fixed\"].includes(i2(t2).position) && c2(t2) ? T2(t2) : t2;\n return f2(n4) ? e2.filter((t3) => f2(t3) && function(t4, e3) {\n const n5 = null == e3.getRootNode ? void 0 : e3.getRootNode();\n if (t4.contains(e3))\n return true;\n if (n5 && s2(n5)) {\n let n6 = e3;\n do {\n if (n6 && t4 === n6)\n return true;\n n6 = n6.parentNode || n6.host;\n } while (n6);\n }\n return false;\n }(t3, n4) && \"body\" !== r2(t3)) : [];\n}\nvar D2 = { getClippingRect: function(t2) {\n let { element: e2, boundary: n4, rootBoundary: o4, strategy: i4 } = t2;\n const r4 = [...\"clippingAncestors\" === n4 ? S(e2) : [].concat(n4), o4], l5 = r4[0], c4 = r4.reduce((t3, n5) => {\n const o5 = C(e2, n5, i4);\n return t3.top = p2(o5.top, t3.top), t3.right = g2(o5.right, t3.right), t3.bottom = g2(o5.bottom, t3.bottom), t3.left = p2(o5.left, t3.left), t3;\n }, C(e2, l5, i4));\n return { width: c4.right - c4.left, height: c4.bottom - c4.top, x: c4.left, y: c4.top };\n}, convertOffsetParentRelativeRectToViewportRelativeRect: function(t2) {\n let { rect: e2, offsetParent: n4, strategy: o4 } = t2;\n const i4 = c2(n4), l5 = v2(n4);\n if (n4 === l5)\n return e2;\n let f4 = { scrollLeft: 0, scrollTop: 0 };\n const s4 = { x: 0, y: 0 };\n if ((i4 || !i4 && \"fixed\" !== o4) && ((\"body\" !== r2(n4) || u2(l5)) && (f4 = y2(n4)), c2(n4))) {\n const t3 = w2(n4, true);\n s4.x = t3.x + n4.clientLeft, s4.y = t3.y + n4.clientTop;\n }\n return __spreadProps(__spreadValues({}, e2), { x: e2.x - f4.scrollLeft + s4.x, y: e2.y - f4.scrollTop + s4.y });\n}, isElement: f2, getDimensions: W, getOffsetParent: T2, getDocumentElement: v2, getElementRects: (t2) => {\n let { reference: e2, floating: n4, strategy: o4 } = t2;\n return { reference: b2(e2, T2(n4), o4), floating: __spreadProps(__spreadValues({}, W(n4)), { x: 0, y: 0 }) };\n}, getClientRects: (t2) => Array.from(t2.getClientRects()), isRTL: (t2) => \"rtl\" === i2(t2).direction };\nfunction N(t2, e2, n4, o4) {\n void 0 === o4 && (o4 = {});\n const { ancestorScroll: i4 = true, ancestorResize: r4 = true, elementResize: l5 = true, animationFrame: c4 = false } = o4, s4 = i4 && !c4, u4 = r4 && !c4, d4 = s4 || u4 ? [...f2(t2) ? H(t2) : [], ...H(e2)] : [];\n d4.forEach((t3) => {\n s4 && t3.addEventListener(\"scroll\", n4, { passive: true }), u4 && t3.addEventListener(\"resize\", n4);\n });\n let h4, a5 = null;\n if (l5) {\n let o5 = true;\n a5 = new ResizeObserver(() => {\n o5 || n4(), o5 = false;\n }), f2(t2) && !c4 && a5.observe(t2), a5.observe(e2);\n }\n let g4 = c4 ? w2(t2) : null;\n return c4 && function e3() {\n const o5 = w2(t2);\n !g4 || o5.x === g4.x && o5.y === g4.y && o5.width === g4.width && o5.height === g4.height || n4();\n g4 = o5, h4 = requestAnimationFrame(e3);\n }(), n4(), () => {\n var t3;\n d4.forEach((t4) => {\n s4 && t4.removeEventListener(\"scroll\", n4), u4 && t4.removeEventListener(\"resize\", n4);\n }), null == (t3 = a5) || t3.disconnect(), a5 = null, c4 && cancelAnimationFrame(h4);\n };\n}\nvar z = (t2, n4, o4) => o(t2, n4, __spreadValues({ platform: D2 }, o4));\n\n\/\/ ..\/..\/node_modules\/@floating-ui\/react-dom\/dist\/floating-ui.react-dom.mjs\nvar React34 = __toESM(require(\"react\"), 1);\nvar import_react20 = require(\"react\");\nvar ReactDOM = __toESM(require(\"react-dom\"), 1);\nvar index2 = typeof document !== \"undefined\" ? import_react20.useLayoutEffect : import_react20.useEffect;\nfunction deepEqual2(a5, b5) {\n if (a5 === b5) {\n return true;\n }\n if (typeof a5 !== typeof b5) {\n return false;\n }\n if (typeof a5 === \"function\" && a5.toString() === b5.toString()) {\n return true;\n }\n let length, i4, keys;\n if (a5 && b5 && typeof a5 == \"object\") {\n if (Array.isArray(a5)) {\n length = a5.length;\n if (length != b5.length)\n return false;\n for (i4 = length; i4-- !== 0; ) {\n if (!deepEqual2(a5[i4], b5[i4])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a5);\n length = keys.length;\n if (length !== Object.keys(b5).length) {\n return false;\n }\n for (i4 = length; i4-- !== 0; ) {\n if (!Object.prototype.hasOwnProperty.call(b5, keys[i4])) {\n return false;\n }\n }\n for (i4 = length; i4-- !== 0; ) {\n const key = keys[i4];\n if (key === \"_owner\" && a5.$$typeof) {\n continue;\n }\n if (!deepEqual2(a5[key], b5[key])) {\n return false;\n }\n }\n return true;\n }\n return a5 !== a5 && b5 !== b5;\n}\nfunction useLatestRef(value) {\n const ref = React34.useRef(value);\n index2(() => {\n ref.current = value;\n });\n return ref;\n}\nfunction useFloating(_temp) {\n let {\n middleware,\n placement = \"bottom\",\n strategy = \"absolute\",\n whileElementsMounted\n } = _temp === void 0 ? {} : _temp;\n const reference = React34.useRef(null);\n const floating = React34.useRef(null);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const cleanupRef = React34.useRef(null);\n const [data, setData] = React34.useState({\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {}\n });\n const [latestMiddleware, setLatestMiddleware] = React34.useState(middleware);\n if (!deepEqual2(latestMiddleware == null ? void 0 : latestMiddleware.map((_ref) => {\n let {\n options\n } = _ref;\n return options;\n }), middleware == null ? void 0 : middleware.map((_ref2) => {\n let {\n options\n } = _ref2;\n return options;\n }))) {\n setLatestMiddleware(middleware);\n }\n const update = React34.useCallback(() => {\n if (!reference.current || !floating.current) {\n return;\n }\n z(reference.current, floating.current, {\n middleware: latestMiddleware,\n placement,\n strategy\n }).then((data2) => {\n if (isMountedRef.current) {\n ReactDOM.flushSync(() => {\n setData(data2);\n });\n }\n });\n }, [latestMiddleware, placement, strategy]);\n index2(() => {\n if (isMountedRef.current) {\n update();\n }\n }, [update]);\n const isMountedRef = React34.useRef(false);\n index2(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n const runElementMountCallback = React34.useCallback(() => {\n if (typeof cleanupRef.current === \"function\") {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n if (reference.current && floating.current) {\n if (whileElementsMountedRef.current) {\n const cleanupFn = whileElementsMountedRef.current(reference.current, floating.current, update);\n cleanupRef.current = cleanupFn;\n } else {\n update();\n }\n }\n }, [update, whileElementsMountedRef]);\n const setReference = React34.useCallback((node) => {\n reference.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const setFloating = React34.useCallback((node) => {\n floating.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const refs = React34.useMemo(() => ({\n reference,\n floating\n }), []);\n return React34.useMemo(() => __spreadProps(__spreadValues({}, data), {\n update,\n refs,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, setReference, setFloating]);\n}\nvar arrow = (options) => {\n const {\n element,\n padding\n } = options;\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, \"current\");\n }\n return {\n name: \"arrow\",\n options,\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return m({\n element: element.current,\n padding\n }).fn(args);\n }\n return {};\n } else if (element) {\n return m({\n element,\n padding\n }).fn(args);\n }\n return {};\n }\n };\n};\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-arrow\/dist\/index.module.js\nvar import_react21 = require(\"react\");\nvar $7e8f5cd07187803e$export$21b07c8f274aebd5 = \/* @__PURE__ *\/ (0, import_react21.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { children, width = 10, height = 5 } = _a3, arrowProps = __objRest(_a3, [\"children\", \"width\", \"height\"]);\n return \/* @__PURE__ *\/ (0, import_react21.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.svg, _extends2({}, arrowProps, {\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\"\n }), props.asChild ? children : \/* @__PURE__ *\/ (0, import_react21.createElement)(\"polygon\", {\n points: \"0,0 30,0 15,10\"\n }));\n});\nvar $7e8f5cd07187803e$export$be92b6f5f03c0fe9 = $7e8f5cd07187803e$export$21b07c8f274aebd5;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-size\/dist\/index.module.js\nvar import_react22 = require(\"react\");\nfunction $db6c3485150b8e66$export$1ab7ae714698c4b8(element) {\n const [size, setSize] = (0, import_react22.useState)(void 0);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (element) {\n setSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries))\n return;\n if (!entries.length)\n return;\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({\n width,\n height\n });\n });\n resizeObserver.observe(element, {\n box: \"border-box\"\n });\n return () => resizeObserver.unobserve(element);\n } else\n setSize(void 0);\n }, [\n element\n ]);\n return size;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-popper\/dist\/index.module.js\nvar $cf1ac5d9fe0e8206$var$POPPER_NAME = \"Popper\";\nvar [$cf1ac5d9fe0e8206$var$createPopperContext, $cf1ac5d9fe0e8206$export$722aac194ae923] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cf1ac5d9fe0e8206$var$POPPER_NAME);\nvar [$cf1ac5d9fe0e8206$var$PopperProvider, $cf1ac5d9fe0e8206$var$usePopperContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$POPPER_NAME);\nvar $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9 = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = (0, import_react23.useState)(null);\n return \/* @__PURE__ *\/ (0, import_react23.createElement)($cf1ac5d9fe0e8206$var$PopperProvider, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor\n }, children);\n};\nvar $cf1ac5d9fe0e8206$var$ANCHOR_NAME = \"PopperAnchor\";\nvar $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d = \/* @__PURE__ *\/ (0, import_react23.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopper, virtualRef } = _a3, anchorProps = __objRest(_a3, [\"__scopePopper\", \"virtualRef\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$ANCHOR_NAME, __scopePopper);\n const ref = (0, import_react23.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n (0, import_react23.useEffect)(() => {\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n });\n return virtualRef ? null : \/* @__PURE__ *\/ (0, import_react23.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, anchorProps, {\n ref: composedRefs\n }));\n});\nvar $cf1ac5d9fe0e8206$var$CONTENT_NAME = \"PopperContent\";\nvar [$cf1ac5d9fe0e8206$var$PopperContentProvider, $cf1ac5d9fe0e8206$var$useContentContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME);\nvar [$cf1ac5d9fe0e8206$var$PositionContextProvider, $cf1ac5d9fe0e8206$var$usePositionContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, {\n hasParent: false,\n positionUpdateFns: \/* @__PURE__ *\/ new Set()\n});\nvar $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc = \/* @__PURE__ *\/ (0, import_react23.forwardRef)((props, forwardedRef) => {\n var _arrowSize$width, _arrowSize$height, _middlewareData$arrow, _middlewareData$arrow2, _middlewareData$arrow3, _middlewareData$hide, _middlewareData$trans, _middlewareData$trans2;\n const _a3 = props, { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, avoidCollisions = true } = _a3, contentProps = __objRest(_a3, [\"__scopePopper\", \"side\", \"sideOffset\", \"align\", \"alignOffset\", \"arrowPadding\", \"collisionBoundary\", \"collisionPadding\", \"sticky\", \"hideWhenDetached\", \"avoidCollisions\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, __scopePopper);\n const [content, setContent] = (0, import_react23.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const [arrow2, setArrow] = (0, import_react23.useState)(null);\n const arrowSize = $db6c3485150b8e66$export$1ab7ae714698c4b8(arrow2);\n const arrowWidth = (_arrowSize$width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize$width !== void 0 ? _arrowSize$width : 0;\n const arrowHeight = (_arrowSize$height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize$height !== void 0 ? _arrowSize$height : 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : __spreadValues({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }, collisionPaddingProp);\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter($cf1ac5d9fe0e8206$var$isNotNull),\n altBoundary: hasExplicitBoundaries\n };\n const { reference, floating, strategy, x: x4, y: y4, placement, middlewareData, update } = useFloating({\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: N,\n middleware: [\n T({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions ? D(__spreadValues({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? L() : void 0\n }, detectOverflowOptions)) : void 0,\n arrow2 ? arrow({\n element: arrow2,\n padding: arrowPadding\n }) : void 0,\n avoidCollisions ? b(__spreadValues({}, detectOverflowOptions)) : void 0,\n $cf1ac5d9fe0e8206$var$transformOrigin({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached ? P({\n strategy: \"referenceHidden\"\n }) : void 0\n ].filter($cf1ac5d9fe0e8206$var$isDefined)\n });\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n reference(context.anchor);\n }, [\n reference,\n context.anchor\n ]);\n const isPlaced = x4 !== null && y4 !== null;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement);\n const arrowX = (_middlewareData$arrow = middlewareData.arrow) === null || _middlewareData$arrow === void 0 ? void 0 : _middlewareData$arrow.x;\n const arrowY = (_middlewareData$arrow2 = middlewareData.arrow) === null || _middlewareData$arrow2 === void 0 ? void 0 : _middlewareData$arrow2.y;\n const cannotCenterArrow = ((_middlewareData$arrow3 = middlewareData.arrow) === null || _middlewareData$arrow3 === void 0 ? void 0 : _middlewareData$arrow3.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = (0, import_react23.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (content)\n setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const { hasParent, positionUpdateFns } = $cf1ac5d9fe0e8206$var$usePositionContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, __scopePopper);\n const isRoot = !hasParent;\n (0, import_react23.useLayoutEffect)(() => {\n if (!isRoot) {\n positionUpdateFns.add(update);\n return () => {\n positionUpdateFns.delete(update);\n };\n }\n }, [\n isRoot,\n positionUpdateFns,\n update\n ]);\n (0, import_react23.useLayoutEffect)(() => {\n if (isRoot && isPlaced)\n Array.from(positionUpdateFns).reverse().forEach(\n (fn) => requestAnimationFrame(fn)\n );\n }, [\n isRoot,\n isPlaced,\n positionUpdateFns\n ]);\n const commonProps = __spreadProps(__spreadValues({\n \"data-side\": placedSide,\n \"data-align\": placedAlign\n }, contentProps), {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n animation: !isPlaced ? \"none\" : void 0,\n opacity: (_middlewareData$hide = middlewareData.hide) !== null && _middlewareData$hide !== void 0 && _middlewareData$hide.referenceHidden ? 0 : void 0\n })\n });\n return \/* @__PURE__ *\/ (0, import_react23.createElement)(\"div\", {\n ref: floating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n position: strategy,\n left: 0,\n top: 0,\n transform: isPlaced ? `translate3d(${Math.round(x4)}px, ${Math.round(y4)}px, 0)` : \"translate3d(0, -200%, 0)\",\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n (_middlewareData$trans = middlewareData.transformOrigin) === null || _middlewareData$trans === void 0 ? void 0 : _middlewareData$trans.x,\n (_middlewareData$trans2 = middlewareData.transformOrigin) === null || _middlewareData$trans2 === void 0 ? void 0 : _middlewareData$trans2.y\n ].join(\" \")\n }\n }, \/* @__PURE__ *\/ (0, import_react23.createElement)($cf1ac5d9fe0e8206$var$PopperContentProvider, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow\n }, isRoot ? \/* @__PURE__ *\/ (0, import_react23.createElement)($cf1ac5d9fe0e8206$var$PositionContextProvider, {\n scope: __scopePopper,\n hasParent: true,\n positionUpdateFns\n }, \/* @__PURE__ *\/ (0, import_react23.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, commonProps)) : \/* @__PURE__ *\/ (0, import_react23.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, commonProps)));\n});\nvar $cf1ac5d9fe0e8206$var$ARROW_NAME = \"PopperArrow\";\nvar $cf1ac5d9fe0e8206$var$OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0 = \/* @__PURE__ *\/ (0, import_react23.forwardRef)(function $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd02(props, forwardedRef) {\n const _a3 = props, { __scopePopper } = _a3, arrowProps = __objRest(_a3, [\"__scopePopper\"]);\n const contentContext = $cf1ac5d9fe0e8206$var$useContentContext($cf1ac5d9fe0e8206$var$ARROW_NAME, __scopePopper);\n const baseSide = $cf1ac5d9fe0e8206$var$OPPOSITE_SIDE[contentContext.placedSide];\n return \/* @__PURE__ *\/ (0, import_react23.createElement)(\"span\", {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n }\n }, \/* @__PURE__ *\/ (0, import_react23.createElement)($7e8f5cd07187803e$export$be92b6f5f03c0fe9, _extends2({}, arrowProps, {\n ref: forwardedRef,\n style: __spreadProps(__spreadValues({}, arrowProps.style), {\n display: \"block\"\n })\n })));\n});\nfunction $cf1ac5d9fe0e8206$var$isDefined(value) {\n return value !== void 0;\n}\nfunction $cf1ac5d9fe0e8206$var$isNotNull(value) {\n return value !== null;\n}\nvar $cf1ac5d9fe0e8206$var$transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n var _middlewareData$arrow4, _middlewareData$arrow5, _middlewareData$arrow6, _middlewareData$arrow7, _middlewareData$arrow8;\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData$arrow4 = middlewareData.arrow) === null || _middlewareData$arrow4 === void 0 ? void 0 : _middlewareData$arrow4.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n const arrowXCenter = ((_middlewareData$arrow5 = (_middlewareData$arrow6 = middlewareData.arrow) === null || _middlewareData$arrow6 === void 0 ? void 0 : _middlewareData$arrow6.x) !== null && _middlewareData$arrow5 !== void 0 ? _middlewareData$arrow5 : 0) + arrowWidth \/ 2;\n const arrowYCenter = ((_middlewareData$arrow7 = (_middlewareData$arrow8 = middlewareData.arrow) === null || _middlewareData$arrow8 === void 0 ? void 0 : _middlewareData$arrow8.y) !== null && _middlewareData$arrow7 !== void 0 ? _middlewareData$arrow7 : 0) + arrowHeight \/ 2;\n let x4 = \"\";\n let y4 = \"\";\n if (placedSide === \"bottom\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x4 = `${-arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x4 = `${rects.floating.width + arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return {\n data: {\n x: x4,\n y: y4\n }\n };\n }\n});\nfunction $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9 = $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9;\nvar $cf1ac5d9fe0e8206$export$b688253958b8dfe7 = $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d;\nvar $cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2 = $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc;\nvar $cf1ac5d9fe0e8206$export$21b07c8f274aebd5 = $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-portal\/dist\/index.module.js\nvar import_react24 = require(\"react\");\nvar import_react_dom4 = __toESM(require(\"react-dom\"));\nvar $f1701beae083dbae$export$602eac185826482c = \/* @__PURE__ *\/ (0, import_react24.forwardRef)((props, forwardedRef) => {\n var _globalThis$document;\n const _a3 = props, { container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body } = _a3, portalProps = __objRest(_a3, [\"container\"]);\n return container ? \/* @__PURE__ *\/ import_react_dom4.default.createPortal(\/* @__PURE__ *\/ (0, import_react24.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-presence\/dist\/index.module.js\nvar import_react25 = require(\"react\");\nvar import_react_dom5 = require(\"react-dom\");\nfunction $fe963b355347cc68$export$3e6543de14f8614f(initialState, machine) {\n return (0, import_react25.useReducer)((state, event) => {\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\nvar $921a889cee6df7e8$export$99c2b779aa4e8b8b = (props) => {\n const { present, children } = props;\n const presence = $921a889cee6df7e8$var$usePresence(present);\n const child = typeof children === \"function\" ? children({\n present: presence.isPresent\n }) : import_react25.Children.only(children);\n const ref = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(presence.ref, child.ref);\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? \/* @__PURE__ *\/ (0, import_react25.cloneElement)(child, {\n ref\n }) : null;\n};\n$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName = \"Presence\";\nfunction $921a889cee6df7e8$var$usePresence(present) {\n const [node1, setNode] = (0, import_react25.useState)();\n const stylesRef = (0, import_react25.useRef)({});\n const prevPresentRef = (0, import_react25.useRef)(present);\n const prevAnimationNameRef = (0, import_react25.useRef)(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = $fe963b355347cc68$export$3e6543de14f8614f(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n (0, import_react25.useEffect)(() => {\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [\n state\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n const styles2 = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(styles2);\n if (present)\n send(\"MOUNT\");\n else if (currentAnimationName === \"none\" || (styles2 === null || styles2 === void 0 ? void 0 : styles2.display) === \"none\")\n send(\"UNMOUNT\");\n else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating)\n send(\"ANIMATION_OUT\");\n else\n send(\"UNMOUNT\");\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (node1) {\n const handleAnimationEnd = (event) => {\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node1 && isCurrentAnimation)\n (0, import_react_dom5.flushSync)(\n () => send(\"ANIMATION_END\")\n );\n };\n const handleAnimationStart = (event) => {\n if (event.target === node1)\n prevAnimationNameRef.current = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n };\n node1.addEventListener(\"animationstart\", handleAnimationStart);\n node1.addEventListener(\"animationcancel\", handleAnimationEnd);\n node1.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n node1.removeEventListener(\"animationstart\", handleAnimationStart);\n node1.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node1.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else\n send(\"ANIMATION_END\");\n }, [\n node1,\n send\n ]);\n return {\n isPresent: [\n \"mounted\",\n \"unmountSuspended\"\n ].includes(state),\n ref: (0, import_react25.useCallback)((node) => {\n if (node)\n stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, [])\n };\n}\nfunction $921a889cee6df7e8$var$getAnimationName(styles2) {\n return (styles2 === null || styles2 === void 0 ? void 0 : styles2.animationName) || \"none\";\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-controllable-state\/dist\/index.module.js\nvar import_react26 = require(\"react\");\nfunction $71cd76cc60e0454e$export$6f32135080cb4c3({ prop, defaultProp, onChange = () => {\n} }) {\n const [uncontrolledProp, setUncontrolledProp] = $71cd76cc60e0454e$var$useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value1 = isControlled ? prop : uncontrolledProp;\n const handleChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onChange);\n const setValue = (0, import_react26.useCallback)((nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value !== prop)\n handleChange(value);\n } else\n setUncontrolledProp(nextValue);\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value1,\n setValue\n ];\n}\nfunction $71cd76cc60e0454e$var$useUncontrolledState({ defaultProp, onChange }) {\n const uncontrolledState = (0, import_react26.useState)(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = (0, import_react26.useRef)(value);\n const handleChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onChange);\n (0, import_react26.useEffect)(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-visually-hidden\/dist\/index.module.js\nvar import_react27 = require(\"react\");\nvar $ea1ef594cf570d83$export$439d29a4e110a164 = \/* @__PURE__ *\/ (0, import_react27.forwardRef)((props, forwardedRef) => {\n return \/* @__PURE__ *\/ (0, import_react27.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({}, props, {\n ref: forwardedRef,\n style: __spreadValues({\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n }, props.style)\n }));\n});\nvar $ea1ef594cf570d83$export$be92b6f5f03c0fe9 = $ea1ef594cf570d83$export$439d29a4e110a164;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-tooltip\/dist\/index.module.js\nvar [$a093c7e1ec25a057$var$createTooltipContext, $a093c7e1ec25a057$export$1c540a2224f0d865] = $c512c27ab02ef895$export$50c7b4e9d9f19c1(\"Tooltip\", [\n $cf1ac5d9fe0e8206$export$722aac194ae923\n]);\nvar $a093c7e1ec25a057$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();\nvar $a093c7e1ec25a057$var$PROVIDER_NAME = \"TooltipProvider\";\nvar $a093c7e1ec25a057$var$DEFAULT_DELAY_DURATION = 700;\nvar $a093c7e1ec25a057$var$TOOLTIP_OPEN = \"tooltip.open\";\nvar [$a093c7e1ec25a057$var$TooltipProviderContextProvider, $a093c7e1ec25a057$var$useTooltipProviderContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PROVIDER_NAME);\nvar $a093c7e1ec25a057$export$f78649fb9ca566b8 = (props) => {\n const { __scopeTooltip, delayDuration = $a093c7e1ec25a057$var$DEFAULT_DELAY_DURATION, skipDelayDuration = 300, disableHoverableContent = false, children } = props;\n const [isOpenDelayed, setIsOpenDelayed] = (0, import_react28.useState)(true);\n const isPointerInTransitRef = (0, import_react28.useRef)(false);\n const skipDelayTimerRef = (0, import_react28.useRef)(0);\n (0, import_react28.useEffect)(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipProviderContextProvider, {\n scope: __scopeTooltip,\n isOpenDelayed,\n delayDuration,\n onOpen: (0, import_react28.useCallback)(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n setIsOpenDelayed(false);\n }, []),\n onClose: (0, import_react28.useCallback)(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }, [\n skipDelayDuration\n ]),\n isPointerInTransitRef,\n onPointerInTransitChange: (0, import_react28.useCallback)((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent\n }, children);\n};\nvar $a093c7e1ec25a057$var$TOOLTIP_NAME = \"Tooltip\";\nvar [$a093c7e1ec25a057$var$TooltipContextProvider, $a093c7e1ec25a057$var$useTooltipContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME);\nvar $a093c7e1ec25a057$export$28c660c63b792dea = (props) => {\n const { __scopeTooltip, children, open: openProp, defaultOpen = false, onOpenChange, disableHoverableContent: disableHoverableContentProp, delayDuration: delayDurationProp } = props;\n const providerContext = $a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = (0, import_react28.useState)(null);\n const contentId = $1746a345f3d73bb7$export$f680877a34711e37();\n const openTimerRef = (0, import_react28.useRef)(0);\n const disableHoverableContent = disableHoverableContentProp !== null && disableHoverableContentProp !== void 0 ? disableHoverableContentProp : providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp !== null && delayDurationProp !== void 0 ? delayDurationProp : providerContext.delayDuration;\n const wasOpenDelayedRef = (0, import_react28.useRef)(false);\n const [open1 = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: (open) => {\n if (open) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent($a093c7e1ec25a057$var$TOOLTIP_OPEN));\n } else\n providerContext.onClose();\n onOpenChange === null || onOpenChange === void 0 || onOpenChange(open);\n }\n });\n const stateAttribute = (0, import_react28.useMemo)(() => {\n return open1 ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [\n open1\n ]);\n const handleOpen = (0, import_react28.useCallback)(() => {\n window.clearTimeout(openTimerRef.current);\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [\n setOpen\n ]);\n const handleClose = (0, import_react28.useCallback)(() => {\n window.clearTimeout(openTimerRef.current);\n setOpen(false);\n }, [\n setOpen\n ]);\n const handleDelayedOpen = (0, import_react28.useCallback)(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n }, delayDuration);\n }, [\n delayDuration,\n setOpen\n ]);\n (0, import_react28.useEffect)(() => {\n return () => window.clearTimeout(openTimerRef.current);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContextProvider, {\n scope: __scopeTooltip,\n contentId,\n open: open1,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: (0, import_react28.useCallback)(() => {\n if (providerContext.isOpenDelayed)\n handleDelayedOpen();\n else\n handleOpen();\n }, [\n providerContext.isOpenDelayed,\n handleDelayedOpen,\n handleOpen\n ]),\n onTriggerLeave: (0, import_react28.useCallback)(() => {\n if (disableHoverableContent)\n handleClose();\n else\n window.clearTimeout(openTimerRef.current);\n }, [\n handleClose,\n disableHoverableContent\n ]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent\n }, children));\n};\nvar $a093c7e1ec25a057$var$TRIGGER_NAME = \"TooltipTrigger\";\nvar $a093c7e1ec25a057$export$8c610744efcf8a1d = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeTooltip } = _a3, triggerProps = __objRest(_a3, [\"__scopeTooltip\"]);\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$TRIGGER_NAME, __scopeTooltip);\n const providerContext = $a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TRIGGER_NAME, __scopeTooltip);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const ref = (0, import_react28.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = (0, import_react28.useRef)(false);\n const hasPointerMoveOpenedRef = (0, import_react28.useRef)(false);\n const handlePointerUp = (0, import_react28.useCallback)(\n () => isPointerDownRef.current = false,\n []\n );\n (0, import_react28.useEffect)(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [\n handlePointerUp\n ]);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe7, _extends2({\n asChild: true\n }, popperScope), \/* @__PURE__ *\/ (0, import_react28.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute\n }, triggerProps, {\n ref: composedRefs,\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\")\n return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDown, () => {\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, {\n once: true\n });\n }),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocus, () => {\n if (!isPointerDownRef.current)\n context.onOpen();\n }),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlur, context.onClose),\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, context.onClose)\n })));\n});\nvar $a093c7e1ec25a057$var$PORTAL_NAME = \"TooltipPortal\";\nvar [$a093c7e1ec25a057$var$PortalProvider, $a093c7e1ec25a057$var$usePortalContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PORTAL_NAME, {\n forceMount: void 0\n});\nvar $a093c7e1ec25a057$export$7b36b8f925ab7497 = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$PORTAL_NAME, __scopeTooltip);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$PortalProvider, {\n scope: __scopeTooltip,\n forceMount\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($f1701beae083dbae$export$602eac185826482c, {\n asChild: true,\n container\n }, children)));\n};\nvar $a093c7e1ec25a057$var$CONTENT_NAME = \"TooltipContent\";\nvar $a093c7e1ec25a057$export$e9003e2be37ec060 = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const portalContext = $a093c7e1ec25a057$var$usePortalContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n const _a3 = props, { forceMount = portalContext.forceMount, side = \"top\" } = _a3, contentProps = __objRest(_a3, [\"forceMount\", \"side\"]);\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, context.disableHoverableContent ? \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContentImpl, _extends2({\n side\n }, contentProps, {\n ref: forwardedRef\n })) : \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContentHoverable, _extends2({\n side\n }, contentProps, {\n ref: forwardedRef\n })));\n});\nvar $a093c7e1ec25a057$var$TooltipContentHoverable = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n const providerContext = $a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n const ref = (0, import_react28.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = (0, import_react28.useState)(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = (0, import_react28.useCallback)(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [\n onPointerInTransitChange\n ]);\n const handleCreateGraceArea = (0, import_react28.useCallback)((event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = {\n x: event.clientX,\n y: event.clientY\n };\n const exitSide = $a093c7e1ec25a057$var$getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const bleed = exitSide === \"right\" || exitSide === \"bottom\" ? -5 : 5;\n const isXAxis = exitSide === \"right\" || exitSide === \"left\";\n const startPoint = isXAxis ? {\n x: event.clientX + bleed,\n y: event.clientY\n } : {\n x: event.clientX,\n y: event.clientY + bleed\n };\n const hoverTargetPoints = $a093c7e1ec25a057$var$getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = $a093c7e1ec25a057$var$getHull([\n startPoint,\n ...hoverTargetPoints\n ]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n }, [\n onPointerInTransitChange\n ]);\n (0, import_react28.useEffect)(() => {\n return () => handleRemoveGraceArea();\n }, [\n handleRemoveGraceArea\n ]);\n (0, import_react28.useEffect)(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [\n trigger,\n content,\n handleCreateGraceArea,\n handleRemoveGraceArea\n ]);\n (0, import_react28.useEffect)(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = {\n x: event.clientX,\n y: event.clientY\n };\n const hasEnteredTarget = (trigger === null || trigger === void 0 ? void 0 : trigger.contains(target)) || (content === null || content === void 0 ? void 0 : content.contains(target));\n const isPointerOutsideGraceArea = !$a093c7e1ec25a057$var$isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget)\n handleRemoveGraceArea();\n else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [\n trigger,\n content,\n pointerGraceArea,\n onClose,\n handleRemoveGraceArea\n ]);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContentImpl, _extends2({}, props, {\n ref: composedRefs\n }));\n});\nvar [$a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider, $a093c7e1ec25a057$var$useVisuallyHiddenContentContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME, {\n isInside: false\n});\nvar $a093c7e1ec25a057$var$TooltipContentImpl = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeTooltip, children, \"aria-label\": ariaLabel, onEscapeKeyDown, onPointerDownOutside } = _a3, contentProps = __objRest(_a3, [\"__scopeTooltip\", \"children\", \"aria-label\", \"onEscapeKeyDown\", \"onPointerDownOutside\"]);\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME, __scopeTooltip);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const { onClose } = context;\n (0, import_react28.useEffect)(() => {\n document.addEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN, onClose);\n }, [\n onClose\n ]);\n (0, import_react28.useEffect)(() => {\n if (context.trigger) {\n const handleScroll2 = (event) => {\n const target = event.target;\n if (target !== null && target !== void 0 && target.contains(context.trigger))\n onClose();\n };\n window.addEventListener(\"scroll\", handleScroll2, {\n capture: true\n });\n return () => window.removeEventListener(\"scroll\", handleScroll2, {\n capture: true\n });\n }\n }, [\n context.trigger,\n onClose\n ]);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2, _extends2({\n \"data-state\": context.stateAttribute\n }, popperScope, contentProps, {\n ref: forwardedRef,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n [\"--radix-tooltip-content-transform-origin\"]: \"var(--radix-popper-transform-origin)\"\n })\n }), \/* @__PURE__ *\/ (0, import_react28.createElement)($5e63c961fc1ce211$export$d9f1ccf0bdb05d45, null, children), \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider, {\n scope: __scopeTooltip,\n isInside: true\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($ea1ef594cf570d83$export$be92b6f5f03c0fe9, {\n id: context.contentId,\n role: \"tooltip\"\n }, ariaLabel || children))));\n});\nvar $a093c7e1ec25a057$var$ARROW_NAME = \"TooltipArrow\";\nvar $a093c7e1ec25a057$export$c27ee0ad710f7559 = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeTooltip } = _a3, arrowProps = __objRest(_a3, [\"__scopeTooltip\"]);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = $a093c7e1ec25a057$var$useVisuallyHiddenContentContext($a093c7e1ec25a057$var$ARROW_NAME, __scopeTooltip);\n return visuallyHiddenContentContext.isInside ? null : \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$21b07c8f274aebd5, _extends2({}, popperScope, arrowProps, {\n ref: forwardedRef\n }));\n});\nfunction $a093c7e1ec25a057$var$getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n return null;\n }\n}\nfunction $a093c7e1ec25a057$var$getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n {\n x: left,\n y: top\n },\n {\n x: right,\n y: top\n },\n {\n x: right,\n y: bottom\n },\n {\n x: left,\n y: bottom\n }\n ];\n}\nfunction $a093c7e1ec25a057$var$isPointInPolygon(point, polygon) {\n const { x: x4, y: y4 } = point;\n let inside = false;\n for (let i4 = 0, j2 = polygon.length - 1; i4 < polygon.length; j2 = i4++) {\n const xi = polygon[i4].x;\n const yi = polygon[i4].y;\n const xj = polygon[j2].x;\n const yj = polygon[j2].y;\n const intersect = yi > y4 !== yj > y4 && x4 < (xj - xi) * (y4 - yi) \/ (yj - yi) + xi;\n if (intersect)\n inside = !inside;\n }\n return inside;\n}\nfunction $a093c7e1ec25a057$var$getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a5, b5) => {\n if (a5.x < b5.x)\n return -1;\n else if (a5.x > b5.x)\n return 1;\n else if (a5.y < b5.y)\n return -1;\n else if (a5.y > b5.y)\n return 1;\n else\n return 0;\n });\n return $a093c7e1ec25a057$var$getHullPresorted(newPoints);\n}\nfunction $a093c7e1ec25a057$var$getHullPresorted(points) {\n if (points.length <= 1)\n return points.slice();\n const upperHull = [];\n for (let i4 = 0; i4 < points.length; i4++) {\n const p4 = points[i4];\n while (upperHull.length >= 2) {\n const q2 = upperHull[upperHull.length - 1];\n const r4 = upperHull[upperHull.length - 2];\n if ((q2.x - r4.x) * (p4.y - r4.y) >= (q2.y - r4.y) * (p4.x - r4.x))\n upperHull.pop();\n else\n break;\n }\n upperHull.push(p4);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i1 = points.length - 1; i1 >= 0; i1--) {\n const p4 = points[i1];\n while (lowerHull.length >= 2) {\n const q2 = lowerHull[lowerHull.length - 1];\n const r4 = lowerHull[lowerHull.length - 2];\n if ((q2.x - r4.x) * (p4.y - r4.y) >= (q2.y - r4.y) * (p4.x - r4.x))\n lowerHull.pop();\n else\n break;\n }\n lowerHull.push(p4);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y)\n return upperHull;\n else\n return upperHull.concat(lowerHull);\n}\nvar $a093c7e1ec25a057$export$2881499e37b75b9a = $a093c7e1ec25a057$export$f78649fb9ca566b8;\nvar $a093c7e1ec25a057$export$be92b6f5f03c0fe9 = $a093c7e1ec25a057$export$28c660c63b792dea;\nvar $a093c7e1ec25a057$export$41fb9f06171c75f4 = $a093c7e1ec25a057$export$8c610744efcf8a1d;\nvar $a093c7e1ec25a057$export$602eac185826482c = $a093c7e1ec25a057$export$7b36b8f925ab7497;\nvar $a093c7e1ec25a057$export$7c6e2c02157bb7d2 = $a093c7e1ec25a057$export$e9003e2be37ec060;\nvar $a093c7e1ec25a057$export$21b07c8f274aebd5 = $a093c7e1ec25a057$export$c27ee0ad710f7559;\n\n\/\/ src\/components\/Tooltip\/Tooltip.tsx\nvar import_jsx_runtime33 = require(\"react\/jsx-runtime\");\nfunction Tooltip(_a3) {\n var _b = _a3, { side, content, sideOffset = 10 } = _b, rest = __objRest(_b, [\"side\", \"content\", \"sideOffset\"]);\n return content ? \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$2881499e37b75b9a, {\n delayDuration: 300,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsxs)($a093c7e1ec25a057$export$be92b6f5f03c0fe9, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$41fb9f06171c75f4, {\n asChild: true,\n children: rest.children\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$602eac185826482c, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsxs)($a093c7e1ec25a057$export$7c6e2c02157bb7d2, __spreadProps(__spreadValues({\n className: \"tl-tooltip-content\",\n sideOffset,\n side\n }, rest), {\n children: [\n content,\n \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$21b07c8f274aebd5, {\n className: \"tl-tooltip-arrow\"\n })\n ]\n }))\n })\n ]\n })\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, {\n children: rest.children\n });\n}\n\n\/\/ src\/components\/Button\/Button.tsx\nvar import_jsx_runtime34 = require(\"react\/jsx-runtime\");\nfunction Button(_a3) {\n var _b = _a3, { className, tooltip, tooltipSide } = _b, rest = __objRest(_b, [\"className\", \"tooltip\", \"tooltipSide\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime34.jsx)(Tooltip, {\n content: tooltip,\n side: tooltipSide,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime34.jsx)(\"button\", __spreadValues({\n className: \"tl-button \" + (className != null ? className : \"\")\n }, rest))\n });\n}\n\n\/\/ src\/components\/Button\/CircleButton.tsx\nvar import_jsx_runtime35 = require(\"react\/jsx-runtime\");\nvar CircleButton = ({\n style,\n icon,\n onClick\n}) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime35.jsx)(\"button\", {\n \"data-html2canvas-ignore\": \"true\",\n style,\n className: \"tl-circle-button\",\n onPointerDown: onClick,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime35.jsx)(\"div\", {\n className: \"tl-circle-button-icons-wrapper\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime35.jsx)(TablerIcon, {\n name: icon\n })\n })\n });\n};\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-toggle\/dist\/index.module.js\nvar import_react29 = require(\"react\");\nvar $b3bbe2732c13b576$export$bea8ebba691c5813 = \/* @__PURE__ *\/ (0, import_react29.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { pressed: pressedProp, defaultPressed = false, onPressedChange } = _a3, buttonProps = __objRest(_a3, [\"pressed\", \"defaultPressed\", \"onPressedChange\"]);\n const [pressed = false, setPressed] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed\n });\n return \/* @__PURE__ *\/ (0, import_react29.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0\n }, buttonProps, {\n ref: forwardedRef,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, () => {\n if (!props.disabled)\n setPressed(!pressed);\n })\n }));\n});\nvar $b3bbe2732c13b576$export$be92b6f5f03c0fe9 = $b3bbe2732c13b576$export$bea8ebba691c5813;\n\n\/\/ src\/components\/inputs\/ToggleInput.tsx\nvar import_jsx_runtime36 = require(\"react\/jsx-runtime\");\nfunction ToggleInput(_a3) {\n var _b = _a3, {\n toggle = true,\n pressed,\n onPressedChange,\n className,\n tooltip\n } = _b, rest = __objRest(_b, [\n \"toggle\",\n \"pressed\",\n \"onPressedChange\",\n \"className\",\n \"tooltip\"\n ]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime36.jsx)(Tooltip, {\n content: tooltip,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime36.jsx)(\"div\", {\n className: \"inline-block\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime36.jsx)($b3bbe2732c13b576$export$be92b6f5f03c0fe9, __spreadProps(__spreadValues({}, rest), {\n \"data-toggle\": toggle,\n className: \"tl-toggle-input\" + (className ? \" \" + className : \"\"),\n pressed,\n onPressedChange\n }))\n })\n });\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dropdown-menu\/dist\/index.module.js\nvar import_react37 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-menu\/dist\/index.module.js\nvar import_react36 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-collection\/dist\/index.module.js\nvar import_react30 = __toESM(require(\"react\"));\nfunction $e02a7d9cb1dc128c$export$c74125a8e3af6bb2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = $c512c27ab02ef895$export$50c7b4e9d9f19c1(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: \/* @__PURE__ *\/ new Map()\n });\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = import_react30.default.useRef(null);\n const itemMap = import_react30.default.useRef(\/* @__PURE__ *\/ new Map()).current;\n return \/* @__PURE__ *\/ import_react30.default.createElement(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref\n }, children);\n };\n \/* @__PURE__ *\/ Object.assign(CollectionProvider, {\n displayName: PROVIDER_NAME\n });\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = \/* @__PURE__ *\/ import_react30.default.forwardRef((props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.collectionRef);\n return \/* @__PURE__ *\/ import_react30.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionSlot, {\n displayName: COLLECTION_SLOT_NAME\n });\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = \/* @__PURE__ *\/ import_react30.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { scope, children } = _a3, itemData = __objRest(_a3, [\"scope\", \"children\"]);\n const ref = import_react30.default.useRef(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n import_react30.default.useEffect(() => {\n context.itemMap.set(ref, __spreadValues({\n ref\n }, itemData));\n return () => void context.itemMap.delete(ref);\n });\n return \/* @__PURE__ *\/ import_react30.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n [ITEM_DATA_ATTR]: \"\",\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionItemSlot, {\n displayName: ITEM_SLOT_NAME\n });\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = import_react30.default.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode)\n return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a5, b5) => orderedNodes.indexOf(a5.ref.current) - orderedNodes.indexOf(b5.ref.current)\n );\n return orderedItems;\n }, [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-direction\/dist\/index.module.js\nvar import_react31 = require(\"react\");\nvar $f631663db3294ace$var$DirectionContext = \/* @__PURE__ *\/ (0, import_react31.createContext)(void 0);\nfunction $f631663db3294ace$export$b39126d51d94e6f3(localDir) {\n const globalDir = (0, import_react31.useContext)($f631663db3294ace$var$DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-focus-guards\/dist\/index.module.js\nvar import_react32 = require(\"react\");\nvar $3db38b7d1fb3fe6a$var$count = 0;\nfunction $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {\n (0, import_react32.useEffect)(() => {\n var _edgeGuards$, _edgeGuards$2;\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());\n $3db38b7d1fb3fe6a$var$count++;\n return () => {\n if ($3db38b7d1fb3fe6a$var$count === 1)\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach(\n (node) => node.remove()\n );\n $3db38b7d1fb3fe6a$var$count--;\n };\n }, []);\n}\nfunction $3db38b7d1fb3fe6a$var$createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.cssText = \"outline: none; opacity: 0; position: fixed; pointer-events: none\";\n return element;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-focus-scope\/dist\/index.module.js\nvar import_react33 = require(\"react\");\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar $d3863c46a17e8a28$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar $d3863c46a17e8a28$export$20e40289641fbbb6 = \/* @__PURE__ *\/ (0, import_react33.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp } = _a3, scopeProps = __objRest(_a3, [\"loop\", \"trapped\", \"onMountAutoFocus\", \"onUnmountAutoFocus\"]);\n const [container1, setContainer] = (0, import_react33.useState)(null);\n const onMountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onMountAutoFocusProp);\n const onUnmountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onUnmountAutoFocusProp);\n const lastFocusedElementRef = (0, import_react33.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContainer(node)\n );\n const focusScope = (0, import_react33.useRef)({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n (0, import_react33.useEffect)(() => {\n if (trapped) {\n let handleFocusIn = function(event) {\n if (focusScope.paused || !container1)\n return;\n const target = event.target;\n if (container1.contains(target))\n lastFocusedElementRef.current = target;\n else\n $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }, handleFocusOut = function(event) {\n if (focusScope.paused || !container1)\n return;\n if (!container1.contains(event.relatedTarget))\n $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n };\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n (0, import_react33.useEffect)(() => {\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement)\n $d3863c46a17e8a28$var$focus(container1);\n }\n }\n return () => {\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented)\n $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = (0, import_react33.useCallback)((event) => {\n if (!loop && !trapped)\n return;\n if (focusScope.paused)\n return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container)\n event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return \/* @__PURE__ *\/ (0, import_react33.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\nfunction $d3863c46a17e8a28$var$focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n $d3863c46a17e8a28$var$focus(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement)\n return;\n }\n}\nfunction $d3863c46a17e8a28$var$getTabbableEdges(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);\n const first = $d3863c46a17e8a28$var$findVisible(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction $d3863c46a17e8a28$var$getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode())\n nodes.push(walker.currentNode);\n return nodes;\n}\nfunction $d3863c46a17e8a28$var$findVisible(elements, container) {\n for (const element of elements) {\n if (!$d3863c46a17e8a28$var$isHidden(element, {\n upTo: container\n }))\n return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\")\n return true;\n while (node) {\n if (upTo !== void 0 && node === upTo)\n return false;\n if (getComputedStyle(node).display === \"none\")\n return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction $d3863c46a17e8a28$var$focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select)\n element.select();\n }\n}\nvar $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope)\n activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove(array2, item) {\n const updatedArray = [\n ...array2\n ];\n const index3 = updatedArray.indexOf(item);\n if (index3 !== -1)\n updatedArray.splice(index3, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks(items) {\n return items.filter(\n (item) => item.tagName !== \"A\"\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-roving-focus\/dist\/index.module.js\nvar import_react34 = require(\"react\");\nvar $d7bdfb9eb0fdf311$var$ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar $d7bdfb9eb0fdf311$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar $d7bdfb9eb0fdf311$var$GROUP_NAME = \"RovingFocusGroup\";\nvar [$d7bdfb9eb0fdf311$var$Collection, $d7bdfb9eb0fdf311$var$useCollection, $d7bdfb9eb0fdf311$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($d7bdfb9eb0fdf311$var$GROUP_NAME);\nvar [$d7bdfb9eb0fdf311$var$createRovingFocusGroupContext, $d7bdfb9eb0fdf311$export$c7109489551a4f4] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($d7bdfb9eb0fdf311$var$GROUP_NAME, [\n $d7bdfb9eb0fdf311$var$createCollectionScope\n]);\nvar [$d7bdfb9eb0fdf311$var$RovingFocusProvider, $d7bdfb9eb0fdf311$var$useRovingFocusContext] = $d7bdfb9eb0fdf311$var$createRovingFocusGroupContext($d7bdfb9eb0fdf311$var$GROUP_NAME);\nvar $d7bdfb9eb0fdf311$export$8699f7c8af148338 = \/* @__PURE__ *\/ (0, import_react34.forwardRef)((props, forwardedRef) => {\n return \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$Collection.Provider, {\n scope: props.__scopeRovingFocusGroup\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$Collection.Slot, {\n scope: props.__scopeRovingFocusGroup\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$RovingFocusGroupImpl, _extends2({}, props, {\n ref: forwardedRef\n }))));\n});\nvar $d7bdfb9eb0fdf311$var$RovingFocusGroupImpl = \/* @__PURE__ *\/ (0, import_react34.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeRovingFocusGroup, orientation, loop = false, dir, currentTabStopId: currentTabStopIdProp, defaultCurrentTabStopId, onCurrentTabStopIdChange, onEntryFocus } = _a3, groupProps = __objRest(_a3, [\"__scopeRovingFocusGroup\", \"orientation\", \"loop\", \"dir\", \"currentTabStopId\", \"defaultCurrentTabStopId\", \"onCurrentTabStopIdChange\", \"onEntryFocus\"]);\n const ref = (0, import_react34.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = (0, import_react34.useState)(false);\n const handleEntryFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onEntryFocus);\n const getItems = $d7bdfb9eb0fdf311$var$useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = (0, import_react34.useRef)(false);\n const [focusableItemsCount, setFocusableItemsCount] = (0, import_react34.useState)(0);\n (0, import_react34.useEffect)(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, handleEntryFocus);\n }\n }, [\n handleEntryFocus\n ]);\n return \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$RovingFocusProvider, {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: (0, import_react34.useCallback)(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [\n setCurrentTabStopId\n ]\n ),\n onItemShiftTab: (0, import_react34.useCallback)(\n () => setIsTabbingBackOut(true),\n []\n ),\n onFocusableItemAdd: (0, import_react34.useCallback)(\n () => setFocusableItemsCount(\n (prevCount) => prevCount + 1\n ),\n []\n ),\n onFocusableItemRemove: (0, import_react34.useCallback)(\n () => setFocusableItemsCount(\n (prevCount) => prevCount - 1\n ),\n []\n )\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation\n }, groupProps, {\n ref: composedRefs,\n style: __spreadValues({\n outline: \"none\"\n }, props.style),\n onMouseDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, $d7bdfb9eb0fdf311$var$EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter(\n (item) => item.focusable\n );\n const activeItem = items.find(\n (item) => item.active\n );\n const currentItem = items.find(\n (item) => item.id === currentTabStopId\n );\n const candidateItems = [\n activeItem,\n currentItem,\n ...items\n ].filter(Boolean);\n const candidateNodes = candidateItems.map(\n (item) => item.ref.current\n );\n $d7bdfb9eb0fdf311$var$focusFirst(candidateNodes);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onBlur,\n () => setIsTabbingBackOut(false)\n )\n })));\n});\nvar $d7bdfb9eb0fdf311$var$ITEM_NAME = \"RovingFocusGroupItem\";\nvar $d7bdfb9eb0fdf311$export$ab9df7c53fe8454 = \/* @__PURE__ *\/ (0, import_react34.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeRovingFocusGroup, focusable = true, active = false } = _a3, itemProps = __objRest(_a3, [\"__scopeRovingFocusGroup\", \"focusable\", \"active\"]);\n const id3 = $1746a345f3d73bb7$export$f680877a34711e37();\n const context = $d7bdfb9eb0fdf311$var$useRovingFocusContext($d7bdfb9eb0fdf311$var$ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id3;\n const getItems = $d7bdfb9eb0fdf311$var$useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n (0, import_react34.useEffect)(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [\n focusable,\n onFocusableItemAdd,\n onFocusableItemRemove\n ]);\n return \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$Collection.ItemSlot, {\n scope: __scopeRovingFocusGroup,\n id: id3,\n focusable,\n active\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation\n }, itemProps, {\n ref: forwardedRef,\n onMouseDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onMouseDown, (event) => {\n if (!focusable)\n event.preventDefault();\n else\n context.onItemFocus(id3);\n }),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocus,\n () => context.onItemFocus(id3)\n ),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget)\n return;\n const focusIntent = $d7bdfb9eb0fdf311$var$getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n event.preventDefault();\n const items = getItems().filter(\n (item) => item.focusable\n );\n let candidateNodes = items.map(\n (item) => item.ref.current\n );\n if (focusIntent === \"last\")\n candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\")\n candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? $d7bdfb9eb0fdf311$var$wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(\n () => $d7bdfb9eb0fdf311$var$focusFirst(candidateNodes)\n );\n }\n })\n })));\n});\nvar $d7bdfb9eb0fdf311$var$MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction $d7bdfb9eb0fdf311$var$getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\")\n return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction $d7bdfb9eb0fdf311$var$getFocusIntent(event, orientation, dir) {\n const key = $d7bdfb9eb0fdf311$var$getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(key))\n return void 0;\n if (orientation === \"horizontal\" && [\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(key))\n return void 0;\n return $d7bdfb9eb0fdf311$var$MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction $d7bdfb9eb0fdf311$var$focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n }\n}\nfunction $d7bdfb9eb0fdf311$var$wrapArray(array2, startIndex) {\n return array2.map(\n (_2, index3) => array2[(startIndex + index3) % array2.length]\n );\n}\nvar $d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9 = $d7bdfb9eb0fdf311$export$8699f7c8af148338;\nvar $d7bdfb9eb0fdf311$export$6d08773d2e66f8f2 = $d7bdfb9eb0fdf311$export$ab9df7c53fe8454;\n\n\/\/ ..\/..\/node_modules\/aria-hidden\/dist\/es2015\/index.js\nvar getDefaultParent = function(originalTarget) {\n if (typeof document === \"undefined\") {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = \/* @__PURE__ *\/ new WeakMap();\nvar uncontrolledNodes = \/* @__PURE__ *\/ new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar hideOthers = function(originalTarget, parentNode, markerName) {\n if (parentNode === void 0) {\n parentNode = getDefaultParent(originalTarget);\n }\n if (markerName === void 0) {\n markerName = \"data-aria-hidden\";\n }\n var targets = Array.isArray(originalTarget) ? originalTarget : [originalTarget];\n if (!markerMap[markerName]) {\n markerMap[markerName] = \/* @__PURE__ *\/ new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = \/* @__PURE__ *\/ new Set();\n var keep = function(el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function(parent) {\n if (!parent || targets.indexOf(parent) >= 0) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function(node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n var attr = node.getAttribute(\"aria-hidden\");\n var alreadyHidden = attr !== null && attr !== \"false\";\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, \"true\");\n }\n if (!alreadyHidden) {\n node.setAttribute(\"aria-hidden\", \"true\");\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function() {\n hiddenNodes.forEach(function(node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(\"aria-hidden\");\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n counterMap = \/* @__PURE__ *\/ new WeakMap();\n counterMap = \/* @__PURE__ *\/ new WeakMap();\n uncontrolledNodes = \/* @__PURE__ *\/ new WeakMap();\n markerMap = {};\n }\n };\n};\n\n\/\/ ..\/..\/node_modules\/tslib\/modules\/index.js\nvar import_tslib = __toESM(require_tslib(), 1);\nvar {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __exportStar,\n __createBinding,\n __values: __values2,\n __read: __read2,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn\n} = import_tslib.default;\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/Combination.js\nvar React40 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/UI.js\nvar React36 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/constants.js\nvar zeroRightClassName = \"right-scroll-bar-position\";\nvar fullWidthClassName = \"width-before-scroll-bar\";\nvar noScrollbarsClassName = \"with-scroll-bars-hidden\";\nvar removedBarSizeVariable = \"--removed-body-scroll-bar-size\";\n\n\/\/ ..\/..\/node_modules\/use-callback-ref\/dist\/es2015\/assignRef.js\nfunction assignRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n\n\/\/ ..\/..\/node_modules\/use-callback-ref\/dist\/es2015\/useRef.js\nvar import_react35 = require(\"react\");\nfunction useCallbackRef(initialValue, callback) {\n var ref = (0, import_react35.useState)(function() {\n return {\n value: initialValue,\n callback,\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n }\n }\n };\n })[0];\n ref.callback = callback;\n return ref.facade;\n}\n\n\/\/ ..\/..\/node_modules\/use-callback-ref\/dist\/es2015\/useMergeRef.js\nfunction useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function(newValue) {\n return refs.forEach(function(ref) {\n return assignRef(ref, newValue);\n });\n });\n}\n\n\/\/ ..\/..\/node_modules\/use-sidecar\/dist\/es2015\/medium.js\nfunction ItoI(a5) {\n return a5;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function() {\n if (assigned) {\n throw new Error(\"Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.\");\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function(data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function() {\n buffer = buffer.filter(function(x4) {\n return x4 !== item;\n });\n };\n },\n assignSyncMedium: function(cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function(x4) {\n return cb(x4);\n },\n filter: function() {\n return buffer;\n }\n };\n },\n assignMedium: function(cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function() {\n var cbs2 = pendingQueue;\n pendingQueue = [];\n cbs2.forEach(cb);\n };\n var cycle = function() {\n return Promise.resolve().then(executeQueue);\n };\n cycle();\n buffer = {\n push: function(x4) {\n pendingQueue.push(x4);\n cycle();\n },\n filter: function(filter2) {\n pendingQueue = pendingQueue.filter(filter2);\n return buffer;\n }\n };\n }\n };\n return medium;\n}\nfunction createSidecarMedium(options) {\n if (options === void 0) {\n options = {};\n }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n\n\/\/ ..\/..\/node_modules\/use-sidecar\/dist\/es2015\/exports.js\nvar React35 = __toESM(require(\"react\"));\nvar SideCar = function(_a3) {\n var sideCar = _a3.sideCar, rest = __rest(_a3, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error(\"Sidecar: please provide `sideCar` property to import the right car\");\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error(\"Sidecar medium not found\");\n }\n return React35.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nfunction exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/medium.js\nvar effectCar = createSidecarMedium();\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/UI.js\nvar nothing = function() {\n return;\n};\nvar RemoveScroll = React36.forwardRef(function(props, parentRef) {\n var ref = React36.useRef(null);\n var _a3 = React36.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing\n }), callbacks = _a3[0], setCallbacks = _a3[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container3 = _b === void 0 ? \"div\" : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar2 = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return React36.createElement(\n React36.Fragment,\n null,\n enabled && React36.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref }),\n forwardProps ? React36.cloneElement(React36.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React36.createElement(Container3, __assign({}, containerProps, { className, ref: containerRef }), children)\n );\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/SideEffect.js\nvar React39 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/component.js\nvar React38 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/hook.js\nvar React37 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/get-nonce\/dist\/es2015\/index.js\nvar currentNonce;\nvar getNonce = function() {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== \"undefined\") {\n return __webpack_nonce__;\n }\n return void 0;\n};\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/singleton.js\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement(\"style\");\n tag.type = \"text\/css\";\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute(\"nonce\", nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css2) {\n if (tag.styleSheet) {\n tag.styleSheet.cssText = css2;\n } else {\n tag.appendChild(document.createTextNode(css2));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n head.appendChild(tag);\n}\nvar stylesheetSingleton = function() {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function(style) {\n if (counter == 0) {\n if (stylesheet = makeStyleTag()) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function() {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n }\n };\n};\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/hook.js\nvar styleHookSingleton = function() {\n var sheet = stylesheetSingleton();\n return function(styles2, isDynamic) {\n React37.useEffect(function() {\n sheet.add(styles2);\n return function() {\n sheet.remove();\n };\n }, [styles2 && isDynamic]);\n };\n};\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/component.js\nvar styleSingleton = function() {\n var useStyle2 = styleHookSingleton();\n var Sheet = function(_a3) {\n var styles2 = _a3.styles, dynamic = _a3.dynamic;\n useStyle2(styles2, dynamic);\n return null;\n };\n return Sheet;\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/utils.js\nvar zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0\n};\nvar parse3 = function(x4) {\n return parseInt(x4 || \"\", 10) || 0;\n};\nvar getOffset = function(gapMode) {\n var cs = window.getComputedStyle(document.body);\n if (false) {\n if (cs.overflowY === \"hidden\") {\n console.error(\"react-remove-scroll-bar: cannot calculate scrollbar size because it is removed (overflow:hidden on body\");\n }\n }\n var left = cs[gapMode === \"padding\" ? \"paddingLeft\" : \"marginLeft\"];\n var top = cs[gapMode === \"padding\" ? \"paddingTop\" : \"marginTop\"];\n var right = cs[gapMode === \"padding\" ? \"paddingRight\" : \"marginRight\"];\n return [parse3(left), parse3(top), parse3(right)];\n};\nvar getGapWidth = function(gapMode) {\n if (gapMode === void 0) {\n gapMode = \"margin\";\n }\n if (typeof window === \"undefined\") {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])\n };\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/component.js\nvar Style = styleSingleton();\nvar getStyles = function(_a3, allowRelative, gapMode, important) {\n var left = _a3.left, top = _a3.top, right = _a3.right, gap = _a3.gap;\n if (gapMode === void 0) {\n gapMode = \"margin\";\n }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === \"margin\" && \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === \"padding\" && \"padding-right: \".concat(gap, \"px \").concat(important, \";\")\n ].filter(Boolean).join(\"\"), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar RemoveScrollBar = function(props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a3 = props.gapMode, gapMode = _a3 === void 0 ? \"margin\" : _a3;\n var gap = React38.useMemo(function() {\n return getGapWidth(gapMode);\n }, [gapMode]);\n return React38.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? \"!important\" : \"\") });\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/aggresiveCapture.js\nvar passiveSupported = false;\nif (typeof window !== \"undefined\") {\n try {\n options = Object.defineProperty({}, \"passive\", {\n get: function() {\n passiveSupported = true;\n return true;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n passiveSupported = false;\n }\n}\nvar options;\nvar nonPassive = passiveSupported ? { passive: false } : false;\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/handleScroll.js\nvar alwaysContainsScroll = function(node) {\n return node.tagName === \"TEXTAREA\";\n};\nvar elementCanBeScrolled = function(node, overflow) {\n var styles2 = window.getComputedStyle(node);\n return styles2[overflow] !== \"hidden\" && !(styles2.overflowY === styles2.overflowX && !alwaysContainsScroll(node) && styles2[overflow] === \"visible\");\n};\nvar elementCouldBeVScrolled = function(node) {\n return elementCanBeScrolled(node, \"overflowY\");\n};\nvar elementCouldBeHScrolled = function(node) {\n return elementCanBeScrolled(node, \"overflowX\");\n};\nvar locationCouldBeScrolled = function(axis, node) {\n var current = node;\n do {\n if (typeof ShadowRoot !== \"undefined\" && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a3 = getScrollVariables(axis, current), s4 = _a3[1], d4 = _a3[2];\n if (s4 > d4) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function(_a3) {\n var scrollTop = _a3.scrollTop, scrollHeight = _a3.scrollHeight, clientHeight = _a3.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight\n ];\n};\nvar getHScrollVariables = function(_a3) {\n var scrollLeft = _a3.scrollLeft, scrollWidth = _a3.scrollWidth, clientWidth = _a3.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth\n ];\n};\nvar elementCouldBeScrolled = function(axis, node) {\n return axis === \"v\" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function(axis, node) {\n return axis === \"v\" ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function(axis, direction) {\n return axis === \"h\" && direction === \"rtl\" ? -1 : 1;\n};\nvar handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a3 = getScrollVariables(axis, target), position = _a3[0], scroll_1 = _a3[1], capacity = _a3[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (!targetInLock && target !== document.body || targetInLock && (endTarget.contains(target) || endTarget === target));\n if (isDeltaPositive && (noOverscroll && availableScroll === 0 || !noOverscroll && delta > availableScroll)) {\n shouldCancelScroll = true;\n } else if (!isDeltaPositive && (noOverscroll && availableScrollTop === 0 || !noOverscroll && -delta > availableScrollTop)) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/SideEffect.js\nvar getTouchXY = function(event) {\n return \"changedTouches\" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nvar getDeltaXY = function(event) {\n return [event.deltaX, event.deltaY];\n};\nvar extractRef = function(ref) {\n return ref && \"current\" in ref ? ref.current : ref;\n};\nvar deltaCompare = function(x4, y4) {\n return x4[0] === y4[0] && x4[1] === y4[1];\n};\nvar generateStyle = function(id3) {\n return \"\\n .block-interactivity-\".concat(id3, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id3, \" {pointer-events: all;}\\n\");\n};\nvar idCounter = 0;\nvar lockStack = [];\nfunction RemoveScrollSideCar(props) {\n var shouldPreventQueue = React39.useRef([]);\n var touchStartRef = React39.useRef([0, 0]);\n var activeAxis = React39.useRef();\n var id3 = React39.useState(idCounter++)[0];\n var Style2 = React39.useState(function() {\n return styleSingleton();\n })[0];\n var lastProps = React39.useRef(props);\n React39.useEffect(function() {\n lastProps.current = props;\n }, [props]);\n React39.useEffect(function() {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id3));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function(el) {\n return el.classList.add(\"allow-interactivity-\".concat(id3));\n });\n return function() {\n document.body.classList.remove(\"block-interactivity-\".concat(id3));\n allow_1.forEach(function(el) {\n return el.classList.remove(\"allow-interactivity-\".concat(id3));\n });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React39.useCallback(function(event, parent) {\n if (\"touches\" in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = \"deltaX\" in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = \"deltaY\" in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? \"h\" : \"v\";\n if (\"touches\" in event && moveDirection === \"h\" && target.type === \"range\") {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n } else {\n currentAxis = moveDirection === \"v\" ? \"h\" : \"v\";\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && \"changedTouches\" in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === \"h\" ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React39.useCallback(function(_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) {\n return;\n }\n var delta = \"deltaY\" in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function(e2) {\n return e2.name === event.type && e2.target === event.target && deltaCompare(e2.delta, delta);\n })[0];\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) {\n return node.contains(event.target);\n });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React39.useCallback(function(name, delta, target, should) {\n var event = { name, delta, target, should };\n shouldPreventQueue.current.push(event);\n setTimeout(function() {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e2) {\n return e2 !== event;\n });\n }, 1);\n }, []);\n var scrollTouchStart = React39.useCallback(function(event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = void 0;\n }, []);\n var scrollWheel = React39.useCallback(function(event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React39.useCallback(function(event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React39.useEffect(function() {\n lockStack.push(Style2);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove\n });\n document.addEventListener(\"wheel\", shouldPrevent, nonPassive);\n document.addEventListener(\"touchmove\", shouldPrevent, nonPassive);\n document.addEventListener(\"touchstart\", scrollTouchStart, nonPassive);\n return function() {\n lockStack = lockStack.filter(function(inst) {\n return inst !== Style2;\n });\n document.removeEventListener(\"wheel\", shouldPrevent, nonPassive);\n document.removeEventListener(\"touchmove\", shouldPrevent, nonPassive);\n document.removeEventListener(\"touchstart\", scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return React39.createElement(\n React39.Fragment,\n null,\n inert ? React39.createElement(Style2, { styles: generateStyle(id3) }) : null,\n removeScrollBar ? React39.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null\n );\n}\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/sidecar.js\nvar sidecar_default = exportSidecar(effectCar, RemoveScrollSideCar);\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/Combination.js\nvar ReactRemoveScroll = React40.forwardRef(function(props, ref) {\n return React40.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: sidecar_default }));\n});\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nvar Combination_default = ReactRemoveScroll;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-menu\/dist\/index.module.js\nvar $6cc32821e9371a1c$var$SELECTION_KEYS = [\n \"Enter\",\n \" \"\n];\nvar $6cc32821e9371a1c$var$FIRST_KEYS = [\n \"ArrowDown\",\n \"PageUp\",\n \"Home\"\n];\nvar $6cc32821e9371a1c$var$LAST_KEYS = [\n \"ArrowUp\",\n \"PageDown\",\n \"End\"\n];\nvar $6cc32821e9371a1c$var$FIRST_LAST_KEYS = [\n ...$6cc32821e9371a1c$var$FIRST_KEYS,\n ...$6cc32821e9371a1c$var$LAST_KEYS\n];\nvar $6cc32821e9371a1c$var$SUB_OPEN_KEYS = {\n ltr: [\n ...$6cc32821e9371a1c$var$SELECTION_KEYS,\n \"ArrowRight\"\n ],\n rtl: [\n ...$6cc32821e9371a1c$var$SELECTION_KEYS,\n \"ArrowLeft\"\n ]\n};\nvar $6cc32821e9371a1c$var$MENU_NAME = \"Menu\";\nvar [$6cc32821e9371a1c$var$Collection, $6cc32821e9371a1c$var$useCollection, $6cc32821e9371a1c$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($6cc32821e9371a1c$var$MENU_NAME);\nvar [$6cc32821e9371a1c$var$createMenuContext, $6cc32821e9371a1c$export$4027731b685e72eb] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($6cc32821e9371a1c$var$MENU_NAME, [\n $6cc32821e9371a1c$var$createCollectionScope,\n $cf1ac5d9fe0e8206$export$722aac194ae923,\n $d7bdfb9eb0fdf311$export$c7109489551a4f4\n]);\nvar $6cc32821e9371a1c$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();\nvar $6cc32821e9371a1c$var$useRovingFocusGroupScope = $d7bdfb9eb0fdf311$export$c7109489551a4f4();\nvar [$6cc32821e9371a1c$var$MenuProvider, $6cc32821e9371a1c$var$useMenuContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$MENU_NAME);\nvar [$6cc32821e9371a1c$var$MenuRootProvider, $6cc32821e9371a1c$var$useMenuRootContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$MENU_NAME);\nvar $6cc32821e9371a1c$export$d9b273488cd8ce6f = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);\n const [content, setContent] = (0, import_react36.useState)(null);\n const isUsingKeyboardRef = (0, import_react36.useRef)(false);\n const handleOpenChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onOpenChange);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n (0, import_react36.useEffect)(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, {\n capture: true,\n once: true\n });\n document.addEventListener(\"pointermove\", handlePointer, {\n capture: true,\n once: true\n });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n document.removeEventListener(\"pointerdown\", handlePointer, {\n capture: true\n });\n document.removeEventListener(\"pointermove\", handlePointer, {\n capture: true\n });\n };\n }, []);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuProvider, {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuRootProvider, {\n scope: __scopeMenu,\n onClose: (0, import_react36.useCallback)(\n () => handleOpenChange(false),\n [\n handleOpenChange\n ]\n ),\n isUsingKeyboardRef,\n dir: direction,\n modal\n }, children)));\n};\nvar $6cc32821e9371a1c$export$9fa5ebd18bee4d43 = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeMenu } = _a3, anchorProps = __objRest(_a3, [\"__scopeMenu\"]);\n const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe7, _extends2({}, popperScope, anchorProps, {\n ref: forwardedRef\n }));\n});\nvar $6cc32821e9371a1c$var$PORTAL_NAME = \"MenuPortal\";\nvar [$6cc32821e9371a1c$var$PortalProvider, $6cc32821e9371a1c$var$usePortalContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$PORTAL_NAME, {\n forceMount: void 0\n});\nvar $6cc32821e9371a1c$var$CONTENT_NAME = \"MenuContent\";\nvar [$6cc32821e9371a1c$var$MenuContentProvider, $6cc32821e9371a1c$var$useMenuContentContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$CONTENT_NAME);\nvar $6cc32821e9371a1c$export$479f0f2f71193efe = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const portalContext = $6cc32821e9371a1c$var$usePortalContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n const _a3 = props, { forceMount = portalContext.forceMount } = _a3, contentProps = __objRest(_a3, [\"forceMount\"]);\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$Collection.Provider, {\n scope: props.__scopeMenu\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$Collection.Slot, {\n scope: props.__scopeMenu\n }, rootContext.modal ? \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuRootContentModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })) : \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuRootContentNonModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })))));\n});\nvar $6cc32821e9371a1c$var$MenuRootContentModal = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n const ref = (0, import_react36.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n (0, import_react36.useEffect)(() => {\n const content = ref.current;\n if (content)\n return hideOthers(content);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuContentImpl, _extends2({}, props, {\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n {\n checkForDefaultPrevented: false\n }\n ),\n onDismiss: () => context.onOpenChange(false)\n }));\n});\nvar $6cc32821e9371a1c$var$MenuRootContentNonModal = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuContentImpl, _extends2({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }));\n});\nvar $6cc32821e9371a1c$var$MenuContentImpl = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeMenu, loop = false, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, disableOutsideScroll } = _a3, contentProps = __objRest(_a3, [\"__scopeMenu\", \"loop\", \"trapFocus\", \"onOpenAutoFocus\", \"onCloseAutoFocus\", \"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\", \"disableOutsideScroll\"]);\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, __scopeMenu);\n const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, __scopeMenu);\n const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = $6cc32821e9371a1c$var$useRovingFocusGroupScope(__scopeMenu);\n const getItems = $6cc32821e9371a1c$var$useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = (0, import_react36.useState)(null);\n const contentRef = (0, import_react36.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentRef, context.onContentChange);\n const timerRef = (0, import_react36.useRef)(0);\n const searchRef = (0, import_react36.useRef)(\"\");\n const pointerGraceTimerRef = (0, import_react36.useRef)(0);\n const pointerGraceIntentRef = (0, import_react36.useRef)(null);\n const pointerDirRef = (0, import_react36.useRef)(\"right\");\n const lastPointerXRef = (0, import_react36.useRef)(0);\n const ScrollLockWrapper = disableOutsideScroll ? Combination_default : import_react36.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? {\n as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,\n allowPinchZoom: true\n } : void 0;\n const handleTypeaheadSearch = (key) => {\n var _items$find, _items$find2;\n const search = searchRef.current + key;\n const items = getItems().filter(\n (item) => !item.disabled\n );\n const currentItem = document.activeElement;\n const currentMatch = (_items$find = items.find(\n (item) => item.ref.current === currentItem\n )) === null || _items$find === void 0 ? void 0 : _items$find.textValue;\n const values = items.map(\n (item) => item.textValue\n );\n const nextMatch = $6cc32821e9371a1c$var$getNextMatch(values, search, currentMatch);\n const newItem = (_items$find2 = items.find(\n (item) => item.textValue === nextMatch\n )) === null || _items$find2 === void 0 ? void 0 : _items$find2.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\")\n timerRef.current = window.setTimeout(\n () => updateSearch(\"\"),\n 1e3\n );\n })(search);\n if (newItem)\n setTimeout(\n () => newItem.focus()\n );\n };\n (0, import_react36.useEffect)(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n const isPointerMovingToSubmenu = (0, import_react36.useCallback)((event) => {\n var _pointerGraceIntentRe, _pointerGraceIntentRe2;\n const isMovingTowards = pointerDirRef.current === ((_pointerGraceIntentRe = pointerGraceIntentRef.current) === null || _pointerGraceIntentRe === void 0 ? void 0 : _pointerGraceIntentRe.side);\n return isMovingTowards && $6cc32821e9371a1c$var$isPointerInGraceArea(event, (_pointerGraceIntentRe2 = pointerGraceIntentRef.current) === null || _pointerGraceIntentRe2 === void 0 ? void 0 : _pointerGraceIntentRe2.area);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuContentProvider, {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: (0, import_react36.useCallback)((event) => {\n if (isPointerMovingToSubmenu(event))\n event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n onItemLeave: (0, import_react36.useCallback)((event) => {\n var _contentRef$current;\n if (isPointerMovingToSubmenu(event))\n return;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 || _contentRef$current.focus();\n setCurrentItemId(null);\n }, [\n isPointerMovingToSubmenu\n ]),\n onTriggerLeave: (0, import_react36.useCallback)((event) => {\n if (isPointerMovingToSubmenu(event))\n event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: (0, import_react36.useCallback)((intent) => {\n pointerGraceIntentRef.current = intent;\n }, [])\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)(ScrollLockWrapper, scrollLockWrapperProps, \/* @__PURE__ *\/ (0, import_react36.createElement)($d3863c46a17e8a28$export$20e40289641fbbb6, {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(onOpenAutoFocus, (event) => {\n var _contentRef$current2;\n event.preventDefault();\n (_contentRef$current2 = contentRef.current) === null || _contentRef$current2 === void 0 || _contentRef$current2.focus();\n }),\n onUnmountAutoFocus: onCloseAutoFocus\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: (event) => {\n if (!rootContext.isUsingKeyboardRef.current)\n event.preventDefault();\n }\n }), \/* @__PURE__ *\/ (0, import_react36.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2, _extends2({\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": $6cc32821e9371a1c$var$getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir\n }, popperScope, contentProps, {\n ref: composedRefs,\n style: __spreadValues({\n outline: \"none\"\n }, contentProps.style),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\")\n event.preventDefault();\n if (!isModifierKey && isCharacterKey)\n handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content)\n return;\n if (!$6cc32821e9371a1c$var$FIRST_LAST_KEYS.includes(event.key))\n return;\n event.preventDefault();\n const items = getItems().filter(\n (item) => !item.disabled\n );\n const candidateNodes = items.map(\n (item) => item.ref.current\n );\n if ($6cc32821e9371a1c$var$LAST_KEYS.includes(event.key))\n candidateNodes.reverse();\n $6cc32821e9371a1c$var$focusFirst(candidateNodes);\n }),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, $6cc32821e9371a1c$var$whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n }))\n })))))));\n});\nvar $6cc32821e9371a1c$var$ITEM_NAME = \"MenuItem\";\nvar $6cc32821e9371a1c$var$ITEM_SELECT = \"menu.itemSelect\";\nvar $6cc32821e9371a1c$export$2ce376c2cc3355c8 = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { disabled = false, onSelect } = _a3, itemProps = __objRest(_a3, [\"disabled\", \"onSelect\"]);\n const ref = (0, import_react36.useRef)(null);\n const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$ITEM_NAME, props.__scopeMenu);\n const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$ITEM_NAME, props.__scopeMenu);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const isPointerDownRef = (0, import_react36.useRef)(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent($6cc32821e9371a1c$var$ITEM_SELECT, {\n bubbles: true,\n cancelable: true\n });\n menuItem.addEventListener(\n $6cc32821e9371a1c$var$ITEM_SELECT,\n (event) => onSelect === null || onSelect === void 0 ? void 0 : onSelect(event),\n {\n once: true\n }\n );\n $8927f6f2acc4f386$export$6d1a0317bde7de7f(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented)\n isPointerDownRef.current = false;\n else\n rootContext.onClose();\n }\n };\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuItemImpl, _extends2({}, itemProps, {\n ref: composedRefs,\n disabled,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, handleSelect),\n onPointerDown: (event) => {\n var _props$onPointerDown;\n (_props$onPointerDown = props.onPointerDown) === null || _props$onPointerDown === void 0 || _props$onPointerDown.call(props, event);\n isPointerDownRef.current = true;\n },\n onPointerUp: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerUp, (event) => {\n var _event$currentTarget;\n if (!isPointerDownRef.current)\n (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 || _event$currentTarget.click();\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \")\n return;\n if ($6cc32821e9371a1c$var$SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }));\n});\nvar $6cc32821e9371a1c$var$MenuItemImpl = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeMenu, disabled = false, textValue } = _a3, itemProps = __objRest(_a3, [\"__scopeMenu\", \"disabled\", \"textValue\"]);\n const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = $6cc32821e9371a1c$var$useRovingFocusGroupScope(__scopeMenu);\n const ref = (0, import_react36.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const [isFocused, setIsFocused] = (0, import_react36.useState)(false);\n const [textContent, setTextContent] = (0, import_react36.useState)(\"\");\n (0, import_react36.useEffect)(() => {\n const menuItem = ref.current;\n if (menuItem) {\n var _menuItem$textContent;\n setTextContent(((_menuItem$textContent = menuItem.textContent) !== null && _menuItem$textContent !== void 0 ? _menuItem$textContent : \"\").trim());\n }\n }, [\n itemProps.children\n ]);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$Collection.ItemSlot, {\n scope: __scopeMenu,\n disabled,\n textValue: textValue !== null && textValue !== void 0 ? textValue : textContent\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($d7bdfb9eb0fdf311$export$6d08773d2e66f8f2, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n focusable: !disabled\n }), \/* @__PURE__ *\/ (0, import_react36.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0\n }, itemProps, {\n ref: composedRefs,\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, $6cc32821e9371a1c$var$whenMouse((event) => {\n if (disabled)\n contentContext.onItemLeave(event);\n else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus();\n }\n }\n })),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerLeave, $6cc32821e9371a1c$var$whenMouse(\n (event) => contentContext.onItemLeave(event)\n )),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocus,\n () => setIsFocused(true)\n ),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onBlur,\n () => setIsFocused(false)\n )\n }))));\n});\nvar $6cc32821e9371a1c$var$RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [$6cc32821e9371a1c$var$RadioGroupProvider, $6cc32821e9371a1c$var$useRadioGroupContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$RADIO_GROUP_NAME, {\n value: void 0,\n onValueChange: () => {\n }\n});\nvar $6cc32821e9371a1c$var$ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [$6cc32821e9371a1c$var$ItemIndicatorProvider, $6cc32821e9371a1c$var$useItemIndicatorContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$ITEM_INDICATOR_NAME, {\n checked: false\n});\nvar $6cc32821e9371a1c$var$SUB_NAME = \"MenuSub\";\nvar [$6cc32821e9371a1c$var$MenuSubProvider, $6cc32821e9371a1c$var$useMenuSubContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$SUB_NAME);\nfunction $6cc32821e9371a1c$var$getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction $6cc32821e9371a1c$var$focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n }\n}\nfunction $6cc32821e9371a1c$var$wrapArray(array2, startIndex) {\n return array2.map(\n (_2, index3) => array2[(startIndex + index3) % array2.length]\n );\n}\nfunction $6cc32821e9371a1c$var$getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every(\n (char) => char === search[0]\n );\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = $6cc32821e9371a1c$var$wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch)\n wrappedValues = wrappedValues.filter(\n (v4) => v4 !== currentMatch\n );\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction $6cc32821e9371a1c$var$isPointInPolygon(point, polygon) {\n const { x: x4, y: y4 } = point;\n let inside = false;\n for (let i4 = 0, j2 = polygon.length - 1; i4 < polygon.length; j2 = i4++) {\n const xi = polygon[i4].x;\n const yi = polygon[i4].y;\n const xj = polygon[j2].x;\n const yj = polygon[j2].y;\n const intersect = yi > y4 !== yj > y4 && x4 < (xj - xi) * (y4 - yi) \/ (yj - yi) + xi;\n if (intersect)\n inside = !inside;\n }\n return inside;\n}\nfunction $6cc32821e9371a1c$var$isPointerInGraceArea(event, area) {\n if (!area)\n return false;\n const cursorPos = {\n x: event.clientX,\n y: event.clientY\n };\n return $6cc32821e9371a1c$var$isPointInPolygon(cursorPos, area);\n}\nfunction $6cc32821e9371a1c$var$whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar $6cc32821e9371a1c$export$be92b6f5f03c0fe9 = $6cc32821e9371a1c$export$d9b273488cd8ce6f;\nvar $6cc32821e9371a1c$export$b688253958b8dfe7 = $6cc32821e9371a1c$export$9fa5ebd18bee4d43;\nvar $6cc32821e9371a1c$export$7c6e2c02157bb7d2 = $6cc32821e9371a1c$export$479f0f2f71193efe;\nvar $6cc32821e9371a1c$export$6d08773d2e66f8f2 = $6cc32821e9371a1c$export$2ce376c2cc3355c8;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dropdown-menu\/dist\/index.module.js\nvar $d08ef79370b62062$var$DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [$d08ef79370b62062$var$createDropdownMenuContext, $d08ef79370b62062$export$c0623cd925aeb687] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($d08ef79370b62062$var$DROPDOWN_MENU_NAME, [\n $6cc32821e9371a1c$export$4027731b685e72eb\n]);\nvar $d08ef79370b62062$var$useMenuScope = $6cc32821e9371a1c$export$4027731b685e72eb();\nvar [$d08ef79370b62062$var$DropdownMenuProvider, $d08ef79370b62062$var$useDropdownMenuContext] = $d08ef79370b62062$var$createDropdownMenuContext($d08ef79370b62062$var$DROPDOWN_MENU_NAME);\nvar $d08ef79370b62062$export$e44a253a59704894 = (props) => {\n const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n const triggerRef = (0, import_react37.useRef)(null);\n const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($d08ef79370b62062$var$DropdownMenuProvider, {\n scope: __scopeDropdownMenu,\n triggerId: $1746a345f3d73bb7$export$f680877a34711e37(),\n triggerRef,\n contentId: $1746a345f3d73bb7$export$f680877a34711e37(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: (0, import_react37.useCallback)(\n () => setOpen(\n (prevOpen) => !prevOpen\n ),\n [\n setOpen\n ]\n ),\n modal\n }, \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$be92b6f5f03c0fe9, _extends2({}, menuScope, {\n open,\n onOpenChange: setOpen,\n dir,\n modal\n }), children));\n};\nvar $d08ef79370b62062$var$TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar $d08ef79370b62062$export$d2469213b3befba9 = \/* @__PURE__ *\/ (0, import_react37.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeDropdownMenu, disabled = false } = _a3, triggerProps = __objRest(_a3, [\"__scopeDropdownMenu\", \"disabled\"]);\n const context = $d08ef79370b62062$var$useDropdownMenuContext($d08ef79370b62062$var$TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$b688253958b8dfe7, _extends2({\n asChild: true\n }, menuScope), \/* @__PURE__ *\/ (0, import_react37.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled\n }, triggerProps, {\n ref: $6ed0406888f73fc4$export$43e446d32b3d21af(forwardedRef, context.triggerRef),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open)\n event.preventDefault();\n }\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n if (disabled)\n return;\n if ([\n \"Enter\",\n \" \"\n ].includes(event.key))\n context.onOpenToggle();\n if (event.key === \"ArrowDown\")\n context.onOpenChange(true);\n if ([\n \"Enter\",\n \" \",\n \"ArrowDown\"\n ].includes(event.key))\n event.preventDefault();\n })\n })));\n});\nvar $d08ef79370b62062$var$CONTENT_NAME = \"DropdownMenuContent\";\nvar $d08ef79370b62062$export$6e76d93a37c01248 = \/* @__PURE__ *\/ (0, import_react37.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeDropdownMenu } = _a3, contentProps = __objRest(_a3, [\"__scopeDropdownMenu\"]);\n const context = $d08ef79370b62062$var$useDropdownMenuContext($d08ef79370b62062$var$CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = (0, import_react37.useRef)(false);\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$7c6e2c02157bb7d2, _extends2({\n id: context.contentId,\n \"aria-labelledby\": context.triggerId\n }, menuScope, contentProps, {\n ref: forwardedRef,\n onCloseAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onCloseAutoFocus, (event) => {\n var _context$triggerRef$c;\n if (!hasInteractedOutsideRef.current)\n (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick)\n hasInteractedOutsideRef.current = true;\n }),\n style: __spreadProps(__spreadValues({}, props.style), {\n [\"--radix-dropdown-menu-content-transform-origin\"]: \"var(--radix-popper-transform-origin)\"\n })\n }));\n});\nvar $d08ef79370b62062$export$ed97964d1871885d = \/* @__PURE__ *\/ (0, import_react37.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeDropdownMenu } = _a3, itemProps = __objRest(_a3, [\"__scopeDropdownMenu\"]);\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$6d08773d2e66f8f2, _extends2({}, menuScope, itemProps, {\n ref: forwardedRef\n }));\n});\nvar $d08ef79370b62062$export$be92b6f5f03c0fe9 = $d08ef79370b62062$export$e44a253a59704894;\nvar $d08ef79370b62062$export$41fb9f06171c75f4 = $d08ef79370b62062$export$d2469213b3befba9;\nvar $d08ef79370b62062$export$7c6e2c02157bb7d2 = $d08ef79370b62062$export$6e76d93a37c01248;\nvar $d08ef79370b62062$export$6d08773d2e66f8f2 = $d08ef79370b62062$export$ed97964d1871885d;\n\n\/\/ src\/lib\/logseq-context.ts\nvar import_react38 = __toESM(require(\"react\"));\nvar LogseqContext = import_react38.default.createContext({});\n\n\/\/ src\/components\/KeyboardShortcut\/KeyboardShortcut.tsx\nvar React42 = __toESM(require(\"react\"));\nvar import_jsx_runtime37 = require(\"react\/jsx-runtime\");\nvar KeyboardShortcut = (_a3) => {\n var _b = _a3, {\n action: action2,\n shortcut,\n opts\n } = _b, props = __objRest(_b, [\n \"action\",\n \"shortcut\",\n \"opts\"\n ]);\n const { renderers } = React42.useContext(LogseqContext);\n const Shortcut = renderers == null ? void 0 : renderers.KeyboardShortcut;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime37.jsx)(\"div\", __spreadProps(__spreadValues({\n className: \"tl-menu-right-slot\"\n }, props), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime37.jsx)(Shortcut, {\n action: action2,\n shortcut,\n opts\n })\n }));\n};\n\n\/\/ src\/components\/ZoomMenu\/ZoomMenu.tsx\nvar React43 = require(\"react\");\nvar import_jsx_runtime38 = require(\"react\/jsx-runtime\");\nvar ZoomMenu = observer(function ZoomMenu2() {\n const app = useApp();\n const preventEvent = (e2) => {\n e2.preventDefault();\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$be92b6f5f03c0fe9, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)($d08ef79370b62062$export$41fb9f06171c75f4, {\n className: \"tl-button text-sm px-2 important\",\n id: \"tl-zoom\",\n children: (app.viewport.camera.zoom * 100).toFixed(0) + \"%\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$7c6e2c02157bb7d2, {\n onCloseAutoFocus: (e2) => e2.preventDefault(),\n className: \"tl-menu\",\n id: \"zoomPopup\",\n sideOffset: 12,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomToFit,\n children: [\n \"Zoom to drawing\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-to-fit\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomToSelection,\n disabled: app.selectedShapesArray.length === 0,\n children: [\n \"Zoom to fit selection\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-to-selection\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomIn,\n children: [\n \"Zoom in\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-in\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomOut,\n children: [\n \"Zoom out\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-out\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.resetZoom,\n children: [\n \"Reset zoom\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/reset-zoom\"\n })\n ]\n })\n ]\n })\n ]\n });\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-separator\/dist\/index.module.js\nvar import_react40 = require(\"react\");\nvar $89eedd556c436f6a$var$DEFAULT_ORIENTATION = \"horizontal\";\nvar $89eedd556c436f6a$var$ORIENTATIONS = [\n \"horizontal\",\n \"vertical\"\n];\nvar $89eedd556c436f6a$export$1ff3c3f08ae963c0 = \/* @__PURE__ *\/ (0, import_react40.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { decorative, orientation: orientationProp = $89eedd556c436f6a$var$DEFAULT_ORIENTATION } = _a3, domProps = __objRest(_a3, [\"decorative\", \"orientation\"]);\n const orientation = $89eedd556c436f6a$var$isValidOrientation(orientationProp) ? orientationProp : $89eedd556c436f6a$var$DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? {\n role: \"none\"\n } : {\n \"aria-orientation\": ariaOrientation,\n role: \"separator\"\n };\n return \/* @__PURE__ *\/ (0, import_react40.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n \"data-orientation\": orientation\n }, semanticProps, domProps, {\n ref: forwardedRef\n }));\n});\n$89eedd556c436f6a$export$1ff3c3f08ae963c0.propTypes = {\n orientation(props, propName, componentName) {\n const propValue = props[propName];\n const strVal = String(propValue);\n if (propValue && !$89eedd556c436f6a$var$isValidOrientation(propValue))\n return new Error($89eedd556c436f6a$var$getInvalidOrientationError(strVal, componentName));\n return null;\n }\n};\nfunction $89eedd556c436f6a$var$getInvalidOrientationError(value, componentName) {\n return `Invalid prop \\`orientation\\` of value \\`${value}\\` supplied to \\`${componentName}\\`, expected one of:\n - horizontal\n - vertical\n\nDefaulting to \\`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\\`.`;\n}\nfunction $89eedd556c436f6a$var$isValidOrientation(orientation) {\n return $89eedd556c436f6a$var$ORIENTATIONS.includes(orientation);\n}\nvar $89eedd556c436f6a$export$be92b6f5f03c0fe9 = $89eedd556c436f6a$export$1ff3c3f08ae963c0;\n\n\/\/ src\/components\/ActionBar\/ActionBar.tsx\nvar import_jsx_runtime39 = require(\"react\/jsx-runtime\");\nvar ActionBar = observer(function ActionBar2() {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = React44.useContext(LogseqContext);\n const undo = React44.useCallback(() => {\n app.api.undo();\n }, [app]);\n const redo = React44.useCallback(() => {\n app.api.redo();\n }, [app]);\n const zoomIn = React44.useCallback(() => {\n app.api.zoomIn();\n }, [app]);\n const zoomOut = React44.useCallback(() => {\n app.api.zoomOut();\n }, [app]);\n const toggleGrid = React44.useCallback(() => {\n app.api.toggleGrid();\n }, [app]);\n const toggleSnapToGrid = React44.useCallback(() => {\n app.api.toggleSnapToGrid();\n }, [app]);\n const togglePenMode = React44.useCallback(() => {\n app.api.togglePenMode();\n }, [app]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-action-bar\",\n \"data-html2canvas-ignore\": \"true\",\n children: [\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-toolbar tl-history-bar mr-2 mb-2\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/undo\"),\n onClick: undo,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"arrow-back-up\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/redo\"),\n onClick: redo,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"arrow-forward-up\"\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-toolbar tl-zoom-bar mr-2 mb-2\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/zoom-in\"),\n onClick: zoomIn,\n id: \"tl-zoom-in\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"plus\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/zoom-out\"),\n onClick: zoomOut,\n id: \"tl-zoom-out\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"minus\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ZoomMenu, {})\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-toolbar tl-grid-bar mr-2 mb-2\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/toggle-grid\"),\n className: \"tl-button\",\n pressed: app.settings.showGrid,\n id: \"tl-show-grid\",\n onPressedChange: toggleGrid,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"grid-dots\"\n })\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/snap-to-grid\"),\n className: \"tl-button\",\n pressed: app.settings.snapToGrid,\n id: \"tl-snap-to-grid\",\n onPressedChange: toggleSnapToGrid,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: app.settings.snapToGrid ? \"magnet\" : \"magnet-off\"\n })\n })\n ]\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(\"div\", {\n className: \"tl-toolbar tl-pen-mode-bar mb-2\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/toggle-pen-mode\"),\n className: \"tl-button\",\n pressed: app.settings.penMode,\n id: \"tl-toggle-pen-mode\",\n onPressedChange: togglePenMode,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: app.settings.penMode ? \"pencil\" : \"pencil-off\"\n })\n })\n })\n ]\n });\n});\n\n\/\/ src\/components\/Devtools\/Devtools.tsx\nvar import_react43 = __toESM(require(\"react\"));\nvar import_react_dom6 = __toESM(require(\"react-dom\"));\nvar import_jsx_runtime40 = require(\"react\/jsx-runtime\");\nvar printPoint = (point) => {\n return `[${point.map((d4) => {\n var _a3;\n return (_a3 = d4 == null ? void 0 : d4.toFixed(2)) != null ? _a3 : \"-\";\n }).join(\", \")}]`;\n};\nvar DevTools = observer(() => {\n var _a3;\n const {\n viewport: {\n bounds,\n camera: { point, zoom }\n },\n inputs\n } = useRendererContext();\n const statusbarAnchorRef = import_react43.default.useRef();\n import_react43.default.useEffect(() => {\n const statusbarAnchor = document.getElementById(\"tl-statusbar-anchor\");\n statusbarAnchorRef.current = statusbarAnchor;\n }, []);\n const rendererStatusText = [\n [\"Z\", (_a3 = zoom == null ? void 0 : zoom.toFixed(2)) != null ? _a3 : \"null\"],\n [\"MP\", printPoint(inputs.currentPoint)],\n [\"MS\", printPoint(inputs.currentScreenPoint)],\n [\"VP\", printPoint(point)],\n [\"VBR\", printPoint([bounds.maxX, bounds.maxY])]\n ].map((p4) => p4.join(\"\")).join(\"|\");\n const rendererStatus = statusbarAnchorRef.current ? import_react_dom6.default.createPortal(\n \/* @__PURE__ *\/ (0, import_jsx_runtime40.jsx)(\"div\", {\n style: {\n flex: 1,\n display: \"flex\",\n alignItems: \"center\"\n },\n children: rendererStatusText\n }),\n statusbarAnchorRef.current\n ) : null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, {\n children: rendererStatus\n });\n});\n\n\/\/ src\/components\/PrimaryTools\/PrimaryTools.tsx\nvar React51 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/ToolButton\/ToolButton.tsx\nvar import_jsx_runtime41 = require(\"react\/jsx-runtime\");\nvar ToolButton = observer(\n (_a3) => {\n var _b = _a3, { id: id3, icon, tooltip, tooltipSide = \"left\", handleClick } = _b, props = __objRest(_b, [\"id\", \"icon\", \"tooltip\", \"tooltipSide\", \"handleClick\"]);\n var _a4;\n const app = useApp();\n const Tool = (_a4 = [...app.Tools, TLSelectTool, TLMoveTool]) == null ? void 0 : _a4.find((T4) => T4.id === id3);\n const shortcut = Tool == null ? void 0 : Tool[\"shortcut\"];\n const tooltipContent = shortcut && tooltip ? \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsxs)(\"div\", {\n className: \"flex\",\n children: [\n tooltip,\n \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsx)(KeyboardShortcut, {\n action: shortcut\n })\n ]\n }) : tooltip;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsx)(Button, __spreadProps(__spreadValues({}, props), {\n tooltipSide,\n tooltip: tooltipContent,\n \"data-tool\": id3,\n \"data-selected\": id3 === app.selectedTool.id,\n onClick: handleClick,\n children: typeof icon === \"string\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsx)(TablerIcon, {\n name: icon\n }) : icon\n }));\n }\n);\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-popover\/dist\/index.module.js\nvar import_react45 = require(\"react\");\nvar $cb5cc270b50c6fcd$var$POPOVER_NAME = \"Popover\";\nvar [$cb5cc270b50c6fcd$var$createPopoverContext, $cb5cc270b50c6fcd$export$c8393c9e73286932] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cb5cc270b50c6fcd$var$POPOVER_NAME, [\n $cf1ac5d9fe0e8206$export$722aac194ae923\n]);\nvar $cb5cc270b50c6fcd$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();\nvar [$cb5cc270b50c6fcd$var$PopoverProvider, $cb5cc270b50c6fcd$var$usePopoverContext] = $cb5cc270b50c6fcd$var$createPopoverContext($cb5cc270b50c6fcd$var$POPOVER_NAME);\nvar $cb5cc270b50c6fcd$export$5b6b19405a83ff9d = (props) => {\n const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n const triggerRef = (0, import_react45.useRef)(null);\n const [hasCustomAnchor, setHasCustomAnchor] = (0, import_react45.useState)(false);\n const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverProvider, {\n scope: __scopePopover,\n contentId: $1746a345f3d73bb7$export$f680877a34711e37(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: (0, import_react45.useCallback)(\n () => setOpen(\n (prevOpen) => !prevOpen\n ),\n [\n setOpen\n ]\n ),\n hasCustomAnchor,\n onCustomAnchorAdd: (0, import_react45.useCallback)(\n () => setHasCustomAnchor(true),\n []\n ),\n onCustomAnchorRemove: (0, import_react45.useCallback)(\n () => setHasCustomAnchor(false),\n []\n ),\n modal\n }, children));\n};\nvar $cb5cc270b50c6fcd$var$TRIGGER_NAME = \"PopoverTrigger\";\nvar $cb5cc270b50c6fcd$export$7dacb05d26466c3 = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopover } = _a3, triggerProps = __objRest(_a3, [\"__scopePopover\"]);\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$TRIGGER_NAME, __scopePopover);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n const composedTriggerRef = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.triggerRef);\n const trigger = \/* @__PURE__ *\/ (0, import_react45.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": $cb5cc270b50c6fcd$var$getState(context.open)\n }, triggerProps, {\n ref: composedTriggerRef,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, context.onOpenToggle)\n }));\n return context.hasCustomAnchor ? trigger : \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe7, _extends2({\n asChild: true\n }, popperScope), trigger);\n});\nvar $cb5cc270b50c6fcd$var$PORTAL_NAME = \"PopoverPortal\";\nvar [$cb5cc270b50c6fcd$var$PortalProvider, $cb5cc270b50c6fcd$var$usePortalContext] = $cb5cc270b50c6fcd$var$createPopoverContext($cb5cc270b50c6fcd$var$PORTAL_NAME, {\n forceMount: void 0\n});\nvar $cb5cc270b50c6fcd$var$CONTENT_NAME = \"PopoverContent\";\nvar $cb5cc270b50c6fcd$export$d7e1f420b25549ff = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const portalContext = $cb5cc270b50c6fcd$var$usePortalContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const _a3 = props, { forceMount = portalContext.forceMount } = _a3, contentProps = __objRest(_a3, [\"forceMount\"]);\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, context.modal ? \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })) : \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentNonModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })));\n});\nvar $cb5cc270b50c6fcd$var$PopoverContentModal = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const contentRef = (0, import_react45.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentRef);\n const isRightClickOutsideRef = (0, import_react45.useRef)(false);\n (0, import_react45.useEffect)(() => {\n const content = contentRef.current;\n if (content)\n return hideOthers(content);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)(Combination_default, {\n as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,\n allowPinchZoom: true\n }, \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentImpl, _extends2({}, props, {\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onCloseAutoFocus, (event) => {\n var _context$triggerRef$c;\n event.preventDefault();\n if (!isRightClickOutsideRef.current)\n (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n }),\n onPointerDownOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n }, {\n checkForDefaultPrevented: false\n }),\n onFocusOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n {\n checkForDefaultPrevented: false\n }\n )\n })));\n});\nvar $cb5cc270b50c6fcd$var$PopoverContentNonModal = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = (0, import_react45.useRef)(false);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentImpl, _extends2({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n var _props$onCloseAutoFoc;\n (_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);\n if (!event.defaultPrevented) {\n var _context$triggerRef$c2;\n if (!hasInteractedOutsideRef.current)\n (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n var _props$onInteractOuts, _context$triggerRef$c3;\n (_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);\n if (!event.defaultPrevented)\n hasInteractedOutsideRef.current = true;\n const target = event.target;\n const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);\n if (targetIsTrigger)\n event.preventDefault();\n }\n }));\n});\nvar $cb5cc270b50c6fcd$var$PopoverContentImpl = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside } = _a3, contentProps = __objRest(_a3, [\"__scopePopover\", \"trapFocus\", \"onOpenAutoFocus\", \"onCloseAutoFocus\", \"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\"]);\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, __scopePopover);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($d3863c46a17e8a28$export$20e40289641fbbb6, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus\n }, \/* @__PURE__ *\/ (0, import_react45.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false)\n }, \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2, _extends2({\n \"data-state\": $cb5cc270b50c6fcd$var$getState(context.open),\n role: \"dialog\",\n id: context.contentId\n }, popperScope, contentProps, {\n ref: forwardedRef,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n [\"--radix-popover-content-transform-origin\"]: \"var(--radix-popper-transform-origin)\"\n })\n }))));\n});\nvar $cb5cc270b50c6fcd$export$3152841115e061b2 = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopover } = _a3, arrowProps = __objRest(_a3, [\"__scopePopover\"]);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$21b07c8f274aebd5, _extends2({}, popperScope, arrowProps, {\n ref: forwardedRef\n }));\n});\nfunction $cb5cc270b50c6fcd$var$getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9 = $cb5cc270b50c6fcd$export$5b6b19405a83ff9d;\nvar $cb5cc270b50c6fcd$export$41fb9f06171c75f4 = $cb5cc270b50c6fcd$export$7dacb05d26466c3;\nvar $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2 = $cb5cc270b50c6fcd$export$d7e1f420b25549ff;\nvar $cb5cc270b50c6fcd$export$21b07c8f274aebd5 = $cb5cc270b50c6fcd$export$3152841115e061b2;\n\n\/\/ src\/components\/GeometryTools\/GeometryTools.tsx\nvar import_react46 = __toESM(require(\"react\"));\nvar import_jsx_runtime42 = require(\"react\/jsx-runtime\");\nvar GeometryTools = observer(function GeometryTools2(_a3) {\n var _b = _a3, {\n popoverSide = \"left\",\n setGeometry,\n activeGeometry,\n chevron = true\n } = _b, rest = __objRest(_b, [\n \"popoverSide\",\n \"setGeometry\",\n \"activeGeometry\",\n \"chevron\"\n ]);\n const {\n handlers: { t: t2 }\n } = import_react46.default.useContext(LogseqContext);\n const geometries = [\n {\n id: \"box\",\n icon: \"square\",\n tooltip: t2(\"whiteboard\/rectangle\")\n },\n {\n id: \"ellipse\",\n icon: \"circle\",\n tooltip: t2(\"whiteboard\/circle\")\n },\n {\n id: \"polygon\",\n icon: \"triangle\",\n tooltip: t2(\"whiteboard\/triangle\")\n }\n ];\n const shapes2 = {\n id: \"shapes\",\n icon: \"triangle-square-circle\",\n tooltip: t2(\"whiteboard\/shape\")\n };\n const activeTool = activeGeometry ? geometries.find((geo) => geo.id === activeGeometry) : shapes2;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsxs)($cb5cc270b50c6fcd$export$be92b6f5f03c0fe9, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)($cb5cc270b50c6fcd$export$41fb9f06171c75f4, {\n asChild: true,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsxs)(\"div\", __spreadProps(__spreadValues({}, rest), {\n className: \"tl-geometry-tools-pane-anchor\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(ToolButton, __spreadProps(__spreadValues({}, activeTool), {\n tooltipSide: popoverSide\n })),\n chevron && \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(TablerIcon, {\n \"data-selected\": activeGeometry,\n className: \"tl-popover-indicator\",\n name: \"chevron-down-left\"\n })\n ]\n }))\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsxs)($cb5cc270b50c6fcd$export$7c6e2c02157bb7d2, {\n className: \"tl-popover-content\",\n side: popoverSide,\n sideOffset: 15,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(\"div\", {\n className: `tl-toolbar tl-geometry-toolbar ${[\"left\", \"right\"].includes(popoverSide) ? \"flex-col\" : \"flex-row\"}`,\n children: geometries.map((props) => \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(ToolButton, {\n id: props.id,\n icon: props.icon,\n tooltip: activeGeometry ? props.tooltip : \"\",\n handleClick: setGeometry,\n tooltipSide: popoverSide\n }, props.id))\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)($cb5cc270b50c6fcd$export$21b07c8f274aebd5, {\n className: \"tl-popover-arrow\"\n })\n ]\n })\n ]\n });\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-slider\/dist\/index.module.js\nvar import_react48 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/number\/dist\/index.module.js\nfunction $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-previous\/dist\/index.module.js\nvar import_react47 = require(\"react\");\nfunction $010c2913dbd2fe3d$export$5cae361ad82dce8b(value) {\n const ref = (0, import_react47.useRef)({\n value,\n previous: value\n });\n return (0, import_react47.useMemo)(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [\n value\n ]);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-slider\/dist\/index.module.js\nvar $faa2e61a3361514f$var$PAGE_KEYS = [\n \"PageUp\",\n \"PageDown\"\n];\nvar $faa2e61a3361514f$var$ARROW_KEYS = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\"\n];\nvar $faa2e61a3361514f$var$BACK_KEYS = {\n \"from-left\": [\n \"Home\",\n \"PageDown\",\n \"ArrowDown\",\n \"ArrowLeft\"\n ],\n \"from-right\": [\n \"Home\",\n \"PageDown\",\n \"ArrowDown\",\n \"ArrowRight\"\n ],\n \"from-bottom\": [\n \"Home\",\n \"PageDown\",\n \"ArrowDown\",\n \"ArrowLeft\"\n ],\n \"from-top\": [\n \"Home\",\n \"PageDown\",\n \"ArrowUp\",\n \"ArrowLeft\"\n ]\n};\nvar $faa2e61a3361514f$var$SLIDER_NAME = \"Slider\";\nvar [$faa2e61a3361514f$var$Collection, $faa2e61a3361514f$var$useCollection, $faa2e61a3361514f$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($faa2e61a3361514f$var$SLIDER_NAME);\nvar [$faa2e61a3361514f$var$createSliderContext, $faa2e61a3361514f$export$ef72632d7b901f97] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($faa2e61a3361514f$var$SLIDER_NAME, [\n $faa2e61a3361514f$var$createCollectionScope\n]);\nvar [$faa2e61a3361514f$var$SliderProvider, $faa2e61a3361514f$var$useSliderContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME);\nvar $faa2e61a3361514f$export$472062a354075cee = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { name, min = 0, max = 100, step = 1, orientation = \"horizontal\", disabled = false, minStepsBetweenThumbs = 0, defaultValue = [\n min\n ], value: value1, onValueChange = () => {\n }, onValueCommit = () => {\n }, inverted = false } = _a3, sliderProps = __objRest(_a3, [\"name\", \"min\", \"max\", \"step\", \"orientation\", \"disabled\", \"minStepsBetweenThumbs\", \"defaultValue\", \"value\", \"onValueChange\", \"onValueCommit\", \"inverted\"]);\n const [slider, setSlider] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setSlider(node)\n );\n const thumbRefs = (0, import_react48.useRef)(\/* @__PURE__ *\/ new Set());\n const valueIndexToChangeRef = (0, import_react48.useRef)(0);\n const isHorizontal = orientation === \"horizontal\";\n const isFormControl = slider ? Boolean(slider.closest(\"form\")) : true;\n const SliderOrientation = isHorizontal ? $faa2e61a3361514f$var$SliderHorizontal : $faa2e61a3361514f$var$SliderVertical;\n const [values = [], setValues] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: value1,\n defaultProp: defaultValue,\n onChange: (value) => {\n var _thumbs$valueIndexToC;\n const thumbs = [\n ...thumbRefs.current\n ];\n (_thumbs$valueIndexToC = thumbs[valueIndexToChangeRef.current]) === null || _thumbs$valueIndexToC === void 0 || _thumbs$valueIndexToC.focus();\n onValueChange(value);\n }\n });\n const valuesBeforeSlideStartRef = (0, import_react48.useRef)(values);\n function handleSlideStart(value) {\n const closestIndex = $faa2e61a3361514f$var$getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n function handleSlideMove(value) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged)\n onValueCommit(values);\n }\n function updateValues(value, atIndex, { commit } = {\n commit: false\n }) {\n const decimalCount = $faa2e61a3361514f$var$getDecimalCount(step);\n const snapToStep = $faa2e61a3361514f$var$roundValue(Math.round((value - min) \/ step) * step + min, decimalCount);\n const nextValue = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(snapToStep, [\n min,\n max\n ]);\n setValues((prevValues = []) => {\n const nextValues = $faa2e61a3361514f$var$getNextSortedValues(prevValues, nextValue, atIndex);\n if ($faa2e61a3361514f$var$hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit)\n onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else\n return prevValues;\n });\n }\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderProvider, {\n scope: props.__scopeSlider,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$Collection.Provider, {\n scope: props.__scopeSlider\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$Collection.Slot, {\n scope: props.__scopeSlider\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)(SliderOrientation, _extends2({\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0\n }, sliderProps, {\n ref: composedRefs,\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(sliderProps.onPointerDown, () => {\n if (!disabled)\n valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, {\n commit: true\n }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, {\n commit: true\n }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = $faa2e61a3361514f$var$PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && $faa2e61a3361514f$var$ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, {\n commit: true\n });\n }\n }\n })))), isFormControl && values.map(\n (value, index3) => \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$BubbleInput, {\n key: index3,\n name: name ? name + (values.length > 1 ? \"[]\" : \"\") : void 0,\n value\n })\n ));\n});\nvar [$faa2e61a3361514f$var$SliderOrientationProvider, $faa2e61a3361514f$var$useSliderOrientationContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar $faa2e61a3361514f$var$SliderHorizontal = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { min, max, dir, inverted, onSlideStart, onSlideMove, onSlideEnd, onStepKeyDown } = _a3, sliderProps = __objRest(_a3, [\"min\", \"max\", \"dir\", \"inverted\", \"onSlideStart\", \"onSlideMove\", \"onSlideEnd\", \"onStepKeyDown\"]);\n const [slider, setSlider] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setSlider(node)\n );\n const rectRef = (0, import_react48.useRef)();\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [\n 0,\n rect.width\n ];\n const output = isSlidingFromLeft ? [\n min,\n max\n ] : [\n max,\n min\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\"\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderImpl, _extends2({\n dir: direction,\n \"data-orientation\": \"horizontal\"\n }, sliderProps, {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, sliderProps.style), {\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n }),\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\nvar $faa2e61a3361514f$var$SliderVertical = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { min, max, inverted, onSlideStart, onSlideMove, onSlideEnd, onStepKeyDown } = _a3, sliderProps = __objRest(_a3, [\"min\", \"max\", \"inverted\", \"onSlideStart\", \"onSlideMove\", \"onSlideEnd\", \"onStepKeyDown\"]);\n const sliderRef = (0, import_react48.useRef)(null);\n const ref = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, sliderRef);\n const rectRef = (0, import_react48.useRef)();\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [\n 0,\n rect.height\n ];\n const output = isSlidingFromBottom ? [\n max,\n min\n ] : [\n min,\n max\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderImpl, _extends2({\n \"data-orientation\": \"vertical\"\n }, sliderProps, {\n ref,\n style: __spreadProps(__spreadValues({}, sliderProps.style), {\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n }),\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\nvar $faa2e61a3361514f$var$SliderImpl = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider, onSlideStart, onSlideMove, onSlideEnd, onHomeKeyDown, onEndKeyDown, onStepKeyDown } = _a3, sliderProps = __objRest(_a3, [\"__scopeSlider\", \"onSlideStart\", \"onSlideMove\", \"onSlideEnd\", \"onHomeKeyDown\", \"onEndKeyDown\", \"onStepKeyDown\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$SLIDER_NAME, __scopeSlider);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({}, sliderProps, {\n ref: forwardedRef,\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if ($faa2e61a3361514f$var$PAGE_KEYS.concat($faa2e61a3361514f$var$ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target))\n target.focus();\n else\n onSlideStart(event);\n }),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId))\n onSlideMove(event);\n }),\n onPointerUp: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }));\n});\nvar $faa2e61a3361514f$var$TRACK_NAME = \"SliderTrack\";\nvar $faa2e61a3361514f$export$105594979f116971 = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider } = _a3, trackProps = __objRest(_a3, [\"__scopeSlider\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$TRACK_NAME, __scopeSlider);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation\n }, trackProps, {\n ref: forwardedRef\n }));\n});\nvar $faa2e61a3361514f$var$RANGE_NAME = \"SliderRange\";\nvar $faa2e61a3361514f$export$a5cf38a7a000fe77 = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider } = _a3, rangeProps = __objRest(_a3, [\"__scopeSlider\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const ref = (0, import_react48.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => $faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0\n }, rangeProps, {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, props.style), {\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n })\n }));\n});\nvar $faa2e61a3361514f$var$THUMB_NAME = \"SliderThumb\";\nvar $faa2e61a3361514f$export$2c1b491743890dec = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const getItems = $faa2e61a3361514f$var$useCollection(props.__scopeSlider);\n const [thumb, setThumb] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setThumb(node)\n );\n const index3 = (0, import_react48.useMemo)(\n () => thumb ? getItems().findIndex(\n (item) => item.ref.current === thumb\n ) : -1,\n [\n getItems,\n thumb\n ]\n );\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderThumbImpl, _extends2({}, props, {\n ref: composedRefs,\n index: index3\n }));\n});\nvar $faa2e61a3361514f$var$SliderThumbImpl = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider, index: index3 } = _a3, thumbProps = __objRest(_a3, [\"__scopeSlider\", \"index\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setThumb(node)\n );\n const size = $db6c3485150b8e66$export$1ab7ae714698c4b8(thumb);\n const value = context.values[index3];\n const percent = value === void 0 ? 0 : $faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max);\n const label = $faa2e61a3361514f$var$getLabel(index3, context.values.length);\n const orientationSize = size === null || size === void 0 ? void 0 : size[orientation.size];\n const thumbInBoundsOffset = orientationSize ? $faa2e61a3361514f$var$getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n (0, import_react48.useEffect)(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [\n thumb,\n context.thumbs\n ]);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)(\"span\", {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n }\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$Collection.ItemSlot, {\n scope: props.__scopeSlider\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0\n }, thumbProps, {\n ref: composedRefs,\n style: value === void 0 ? {\n display: \"none\"\n } : props.style,\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index3;\n })\n }))));\n});\nvar $faa2e61a3361514f$var$BubbleInput = (props) => {\n const _a3 = props, { value } = _a3, inputProps = __objRest(_a3, [\"value\"]);\n const ref = (0, import_react48.useRef)(null);\n const prevValue = $010c2913dbd2fe3d$export$5cae361ad82dce8b(value);\n (0, import_react48.useEffect)(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", {\n bubbles: true\n });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)(\"input\", _extends2({\n style: {\n display: \"none\"\n }\n }, inputProps, {\n ref,\n defaultValue: value\n }));\n};\nfunction $faa2e61a3361514f$var$getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [\n ...prevValues\n ];\n nextValues[atIndex] = nextValue;\n return nextValues.sort(\n (a5, b5) => a5 - b5\n );\n}\nfunction $faa2e61a3361514f$var$convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 \/ maxSteps;\n return percentPerStep * (value - min);\n}\nfunction $faa2e61a3361514f$var$getLabel(index3, totalValues) {\n if (totalValues > 2)\n return `Value ${index3 + 1} of ${totalValues}`;\n else if (totalValues === 2)\n return [\n \"Minimum\",\n \"Maximum\"\n ][index3];\n else\n return void 0;\n}\nfunction $faa2e61a3361514f$var$getClosestValueIndex(values, nextValue) {\n if (values.length === 1)\n return 0;\n const distances = values.map(\n (value) => Math.abs(value - nextValue)\n );\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction $faa2e61a3361514f$var$getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width \/ 2;\n const halfPercent = 50;\n const offset = $faa2e61a3361514f$var$linearScale([\n 0,\n halfPercent\n ], [\n 0,\n halfWidth\n ]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction $faa2e61a3361514f$var$getStepsBetweenValues(values) {\n return values.slice(0, -1).map(\n (value, index3) => values[index3 + 1] - value\n );\n}\nfunction $faa2e61a3361514f$var$hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = $faa2e61a3361514f$var$getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction $faa2e61a3361514f$var$linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1])\n return output[0];\n const ratio = (output[1] - output[0]) \/ (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction $faa2e61a3361514f$var$getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction $faa2e61a3361514f$var$roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) \/ rounder;\n}\nvar $faa2e61a3361514f$export$be92b6f5f03c0fe9 = $faa2e61a3361514f$export$472062a354075cee;\nvar $faa2e61a3361514f$export$13921ac0cc260818 = $faa2e61a3361514f$export$105594979f116971;\nvar $faa2e61a3361514f$export$9a58ef0d7ad3278c = $faa2e61a3361514f$export$a5cf38a7a000fe77;\nvar $faa2e61a3361514f$export$6521433ed15a34db = $faa2e61a3361514f$export$2c1b491743890dec;\n\n\/\/ src\/components\/PopoverButton\/PopoverButton.tsx\nvar React47 = __toESM(require(\"react\"));\nvar import_jsx_runtime43 = require(\"react\/jsx-runtime\");\nvar PopoverButton = observer(\n (_a3) => {\n var _b = _a3, { side, align, alignOffset, label, arrow: arrow2, children, border } = _b, rest = __objRest(_b, [\"side\", \"align\", \"alignOffset\", \"label\", \"arrow\", \"children\", \"border\"]);\n const contentRef = React47.useRef(null);\n const [isOpen, setIsOpen] = React47.useState(false);\n const {\n viewport: {\n bounds,\n camera: { point, zoom }\n }\n } = useApp();\n const [tick, setTick] = React47.useState(0);\n React47.useEffect(() => {\n if (!contentRef.current || !isOpen)\n return;\n const boundingRect = contentRef.current.getBoundingClientRect();\n const outOfView = !BoundsUtils.boundsContain(bounds, {\n minX: boundingRect.x,\n minY: boundingRect.y,\n maxX: boundingRect.right,\n maxY: boundingRect.bottom,\n width: boundingRect.width,\n height: boundingRect.height\n });\n if (outOfView) {\n setTick((tick2) => tick2 + 1);\n }\n }, [point[0], point[1], zoom, isOpen]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsxs)($cb5cc270b50c6fcd$export$be92b6f5f03c0fe9, {\n onOpenChange: (o4) => setIsOpen(o4),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsx)($cb5cc270b50c6fcd$export$41fb9f06171c75f4, __spreadProps(__spreadValues({}, rest), {\n \"data-border\": border,\n className: \"tl-button tl-popover-trigger-button\",\n children: label\n })),\n \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsxs)($cb5cc270b50c6fcd$export$7c6e2c02157bb7d2, {\n ref: contentRef,\n className: \"tl-popover-content\",\n align,\n alignOffset,\n side,\n sideOffset: 15,\n collisionBoundary: document.querySelector(\".logseq-tldraw\"),\n children: [\n children,\n arrow2 && \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsx)($cb5cc270b50c6fcd$export$21b07c8f274aebd5, {\n className: \"tl-popover-arrow\"\n })\n ]\n }, \"popover-content-\" + tick)\n ]\n });\n }\n);\n\n\/\/ src\/components\/inputs\/ColorInput.tsx\nvar import_react50 = __toESM(require(\"react\"));\nvar import_jsx_runtime44 = require(\"react\/jsx-runtime\");\nfunction ColorInput(_a3) {\n var _b = _a3, {\n color,\n opacity,\n popoverSide,\n setColor,\n setOpacity\n } = _b, rest = __objRest(_b, [\n \"color\",\n \"opacity\",\n \"popoverSide\",\n \"setColor\",\n \"setOpacity\"\n ]);\n const {\n handlers: { t: t2 }\n } = import_react50.default.useContext(LogseqContext);\n function renderColor(color2) {\n return color2 ? \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"tl-color-bg\",\n style: { backgroundColor: color2 },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: `w-full h-full bg-${color2}-500`\n })\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"tl-color-bg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(TablerIcon, {\n name: \"color-swatch\"\n })\n });\n }\n function isHexColor(color2) {\n return \/^#(?:[0-9a-f]{3}){1,2}$\/i.test(color2);\n }\n const handleChangeDebounced = import_react50.default.useMemo(() => {\n let latestValue = \"\";\n const handler = (e2) => {\n setColor(latestValue);\n };\n return debounce(handler, 100, (e2) => {\n latestValue = e2.target.value;\n });\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(PopoverButton, __spreadProps(__spreadValues({}, rest), {\n border: true,\n arrow: true,\n side: popoverSide,\n label: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(Tooltip, {\n content: t2(\"whiteboard\/color\"),\n side: popoverSide,\n sideOffset: 14,\n children: renderColor(color)\n }),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsxs)(\"div\", {\n className: \"p-1\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"tl-color-palette\",\n children: Object.values(Color).map((value) => \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"button\", {\n className: `tl-color-drip m-1${value === color ? \" active\" : \"\"}`,\n onClick: () => setColor(value),\n children: renderColor(value)\n }, value))\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsxs)(\"div\", {\n className: \"flex items-center tl-custom-color\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: `tl-color-drip m-1 mr-3 ${!isBuiltInColor(color) ? \"active\" : \"\"}`,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"color-input-wrapper tl-color-bg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"input\", __spreadValues({\n className: \"color-input cursor-pointer\",\n id: \"tl-custom-color-input\",\n type: \"color\",\n value: isHexColor(color) ? color : \"#000000\",\n onChange: handleChangeDebounced,\n style: { opacity: isBuiltInColor(color) ? 0 : 1 }\n }, rest))\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"label\", {\n htmlFor: \"tl-custom-color-input\",\n className: \"cursor-pointer\",\n children: t2(\"whiteboard\/select-custom-color\")\n })\n ]\n }),\n setOpacity && \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"mx-1 my-2\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsxs)($faa2e61a3361514f$export$be92b6f5f03c0fe9, {\n defaultValue: [opacity != null ? opacity : 0],\n onValueCommit: (value) => setOpacity(value[0]),\n max: 1,\n step: 0.1,\n \"aria-label\": t2(\"whiteboard\/opacity\"),\n className: \"tl-slider-root\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)($faa2e61a3361514f$export$13921ac0cc260818, {\n className: \"tl-slider-track\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)($faa2e61a3361514f$export$9a58ef0d7ad3278c, {\n className: \"tl-slider-range\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)($faa2e61a3361514f$export$6521433ed15a34db, {\n className: \"tl-slider-thumb\"\n })\n ]\n })\n })\n ]\n })\n }));\n}\n\n\/\/ src\/components\/inputs\/SelectInput.tsx\nvar React49 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/dist\/index.module.js\nvar import_react58 = require(\"react\");\nvar import_react_dom10 = require(\"react-dom\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-collection\/dist\/index.module.js\nvar import_react51 = __toESM(require(\"react\"));\nfunction $e02a7d9cb1dc128c$export$c74125a8e3af6bb22(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = $c512c27ab02ef895$export$50c7b4e9d9f19c1(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: \/* @__PURE__ *\/ new Map()\n });\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = import_react51.default.useRef(null);\n const itemMap = import_react51.default.useRef(\/* @__PURE__ *\/ new Map()).current;\n return \/* @__PURE__ *\/ import_react51.default.createElement(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref\n }, children);\n };\n \/* @__PURE__ *\/ Object.assign(CollectionProvider, {\n displayName: PROVIDER_NAME\n });\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = \/* @__PURE__ *\/ import_react51.default.forwardRef((props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.collectionRef);\n return \/* @__PURE__ *\/ import_react51.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionSlot, {\n displayName: COLLECTION_SLOT_NAME\n });\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = \/* @__PURE__ *\/ import_react51.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { scope, children } = _a3, itemData = __objRest(_a3, [\"scope\", \"children\"]);\n const ref = import_react51.default.useRef(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n import_react51.default.useEffect(() => {\n context.itemMap.set(ref, __spreadValues({\n ref\n }, itemData));\n return () => void context.itemMap.delete(ref);\n });\n return \/* @__PURE__ *\/ import_react51.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n [ITEM_DATA_ATTR]: \"\",\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionItemSlot, {\n displayName: ITEM_SLOT_NAME\n });\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = import_react51.default.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode)\n return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a5, b5) => orderedNodes.indexOf(a5.ref.current) - orderedNodes.indexOf(b5.ref.current)\n );\n return orderedItems;\n }, [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar import_react53 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-primitive\/dist\/index.module.js\nvar import_react52 = require(\"react\");\nvar import_react_dom7 = require(\"react-dom\");\nvar $8927f6f2acc4f386$var$NODES2 = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar $8927f6f2acc4f386$export$250ffa63cdc0d0342 = $8927f6f2acc4f386$var$NODES2.reduce((primitive, node) => {\n const Node = \/* @__PURE__ *\/ (0, import_react52.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { asChild } = _a3, primitiveProps = __objRest(_a3, [\"asChild\"]);\n const Comp = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : node;\n (0, import_react52.useEffect)(() => {\n window[Symbol.for(\"radix-ui\")] = true;\n }, []);\n return \/* @__PURE__ *\/ (0, import_react52.createElement)(Comp, _extends2({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return __spreadProps(__spreadValues({}, primitive), {\n [node]: Node\n });\n}, {});\nfunction $8927f6f2acc4f386$export$6d1a0317bde7de7f2(target, event) {\n if (target)\n (0, import_react_dom7.flushSync)(\n () => target.dispatchEvent(event)\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar $5cb92bef7577960e$var$CONTEXT_UPDATE2 = \"dismissableLayer.update\";\nvar $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE2 = \"dismissableLayer.pointerDownOutside\";\nvar $5cb92bef7577960e$var$FOCUS_OUTSIDE2 = \"dismissableLayer.focusOutside\";\nvar $5cb92bef7577960e$var$originalBodyPointerEvents2;\nvar $5cb92bef7577960e$var$DismissableLayerContext2 = \/* @__PURE__ *\/ (0, import_react53.createContext)({\n layers: \/* @__PURE__ *\/ new Set(),\n layersWithOutsidePointerEventsDisabled: \/* @__PURE__ *\/ new Set(),\n branches: \/* @__PURE__ *\/ new Set()\n});\nvar $5cb92bef7577960e$export$177fb62ff3ec1f222 = \/* @__PURE__ *\/ (0, import_react53.forwardRef)((props, forwardedRef) => {\n var _node$ownerDocument;\n const _a3 = props, { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss } = _a3, layerProps = __objRest(_a3, [\"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\"]);\n const context = (0, import_react53.useContext)($5cb92bef7577960e$var$DismissableLayerContext2);\n const [node1, setNode] = (0, import_react53.useState)(null);\n const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;\n const [, force] = (0, import_react53.useState)({});\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index3 = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index3 >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside2((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch)\n return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside2((event) => {\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (isFocusInBranch)\n return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n $addc16e1bbe58fd0$export$3a72a57244d6e765((event) => {\n const isHighestLayer = index3 === context.layers.size - 1;\n if (!isHighestLayer)\n return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n (0, import_react53.useEffect)(() => {\n if (!node1)\n return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents2 = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate2();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1)\n ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents2;\n };\n }, [\n node1,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n (0, import_react53.useEffect)(() => {\n return () => {\n if (!node1)\n return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate2();\n };\n }, [\n node1,\n context\n ]);\n (0, import_react53.useEffect)(() => {\n const handleUpdate = () => force({});\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE2, handleUpdate);\n return () => document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE2, handleUpdate);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react53.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, layerProps, {\n ref: composedRefs,\n style: __spreadValues({\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0\n }, props.style),\n onFocusCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\nfunction $5cb92bef7577960e$var$usePointerDownOutside2(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handlePointerDownOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPointerDownOutside);\n const isPointerInsideReactTreeRef = (0, import_react53.useRef)(false);\n const handleClickRef = (0, import_react53.useRef)(() => {\n });\n (0, import_react53.useEffect)(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent = function() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent2($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE2, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n };\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else\n handleAndDispatchPointerDownOutsideEvent();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction $5cb92bef7577960e$var$useFocusOutside2(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handleFocusOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onFocusOutside);\n const isFocusInsideReactTreeRef = (0, import_react53.useRef)(false);\n (0, import_react53.useEffect)(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent2($5cb92bef7577960e$var$FOCUS_OUTSIDE2, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate2() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE2);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent2(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler)\n target.addEventListener(name, handler, {\n once: true\n });\n if (discrete)\n $8927f6f2acc4f386$export$6d1a0317bde7de7f2(target, event);\n else\n target.dispatchEvent(event);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-focus-scope\/dist\/index.module.js\nvar import_react54 = require(\"react\");\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2 = \"focusScope.autoFocusOnMount\";\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2 = \"focusScope.autoFocusOnUnmount\";\nvar $d3863c46a17e8a28$var$EVENT_OPTIONS2 = {\n bubbles: false,\n cancelable: true\n};\nvar $d3863c46a17e8a28$export$20e40289641fbbb62 = \/* @__PURE__ *\/ (0, import_react54.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp } = _a3, scopeProps = __objRest(_a3, [\"loop\", \"trapped\", \"onMountAutoFocus\", \"onUnmountAutoFocus\"]);\n const [container1, setContainer] = (0, import_react54.useState)(null);\n const onMountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onMountAutoFocusProp);\n const onUnmountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onUnmountAutoFocusProp);\n const lastFocusedElementRef = (0, import_react54.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContainer(node)\n );\n const focusScope = (0, import_react54.useRef)({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n (0, import_react54.useEffect)(() => {\n if (trapped) {\n let handleFocusIn = function(event) {\n if (focusScope.paused || !container1)\n return;\n const target = event.target;\n if (container1.contains(target))\n lastFocusedElementRef.current = target;\n else\n $d3863c46a17e8a28$var$focus2(lastFocusedElementRef.current, {\n select: true\n });\n }, handleFocusOut = function(event) {\n if (focusScope.paused || !container1)\n return;\n if (!container1.contains(event.relatedTarget))\n $d3863c46a17e8a28$var$focus2(lastFocusedElementRef.current, {\n select: true\n });\n };\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n (0, import_react54.useEffect)(() => {\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack2.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2, $d3863c46a17e8a28$var$EVENT_OPTIONS2);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst2($d3863c46a17e8a28$var$removeLinks2($d3863c46a17e8a28$var$getTabbableCandidates2(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement)\n $d3863c46a17e8a28$var$focus2(container1);\n }\n }\n return () => {\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2, $d3863c46a17e8a28$var$EVENT_OPTIONS2);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented)\n $d3863c46a17e8a28$var$focus2(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack2.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = (0, import_react54.useCallback)((event) => {\n if (!loop && !trapped)\n return;\n if (focusScope.paused)\n return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges2(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container)\n event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus2(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus2(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return \/* @__PURE__ *\/ (0, import_react54.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\nfunction $d3863c46a17e8a28$var$focusFirst2(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n $d3863c46a17e8a28$var$focus2(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement)\n return;\n }\n}\nfunction $d3863c46a17e8a28$var$getTabbableEdges2(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates2(container);\n const first = $d3863c46a17e8a28$var$findVisible2(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible2(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction $d3863c46a17e8a28$var$getTabbableCandidates2(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode())\n nodes.push(walker.currentNode);\n return nodes;\n}\nfunction $d3863c46a17e8a28$var$findVisible2(elements, container) {\n for (const element of elements) {\n if (!$d3863c46a17e8a28$var$isHidden2(element, {\n upTo: container\n }))\n return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden2(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\")\n return true;\n while (node) {\n if (upTo !== void 0 && node === upTo)\n return false;\n if (getComputedStyle(node).display === \"none\")\n return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput2(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction $d3863c46a17e8a28$var$focus2(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput2(element) && select)\n element.select();\n }\n}\nvar $d3863c46a17e8a28$var$focusScopesStack2 = $d3863c46a17e8a28$var$createFocusScopesStack2();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack2() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope)\n activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n stack = $d3863c46a17e8a28$var$arrayRemove2(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove2(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove2(array2, item) {\n const updatedArray = [\n ...array2\n ];\n const index3 = updatedArray.indexOf(item);\n if (index3 !== -1)\n updatedArray.splice(index3, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks2(items) {\n return items.filter(\n (item) => item.tagName !== \"A\"\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-popper\/dist\/index.module.js\nvar import_react55 = require(\"react\");\nvar $cf1ac5d9fe0e8206$var$POPPER_NAME2 = \"Popper\";\nvar [$cf1ac5d9fe0e8206$var$createPopperContext2, $cf1ac5d9fe0e8206$export$722aac194ae9232] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cf1ac5d9fe0e8206$var$POPPER_NAME2);\nvar [$cf1ac5d9fe0e8206$var$PopperProvider2, $cf1ac5d9fe0e8206$var$usePopperContext2] = $cf1ac5d9fe0e8206$var$createPopperContext2($cf1ac5d9fe0e8206$var$POPPER_NAME2);\nvar $cf1ac5d9fe0e8206$export$badac9ada3a0bdf92 = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = (0, import_react55.useState)(null);\n return \/* @__PURE__ *\/ (0, import_react55.createElement)($cf1ac5d9fe0e8206$var$PopperProvider2, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor\n }, children);\n};\nvar $cf1ac5d9fe0e8206$var$ANCHOR_NAME2 = \"PopperAnchor\";\nvar $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d2 = \/* @__PURE__ *\/ (0, import_react55.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopper, virtualRef } = _a3, anchorProps = __objRest(_a3, [\"__scopePopper\", \"virtualRef\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext2($cf1ac5d9fe0e8206$var$ANCHOR_NAME2, __scopePopper);\n const ref = (0, import_react55.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n (0, import_react55.useEffect)(() => {\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n });\n return virtualRef ? null : \/* @__PURE__ *\/ (0, import_react55.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, anchorProps, {\n ref: composedRefs\n }));\n});\nvar $cf1ac5d9fe0e8206$var$CONTENT_NAME2 = \"PopperContent\";\nvar [$cf1ac5d9fe0e8206$var$PopperContentProvider2, $cf1ac5d9fe0e8206$var$useContentContext2] = $cf1ac5d9fe0e8206$var$createPopperContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2);\nvar [$cf1ac5d9fe0e8206$var$PositionContextProvider2, $cf1ac5d9fe0e8206$var$usePositionContext2] = $cf1ac5d9fe0e8206$var$createPopperContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2, {\n hasParent: false,\n positionUpdateFns: \/* @__PURE__ *\/ new Set()\n});\nvar $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc2 = \/* @__PURE__ *\/ (0, import_react55.forwardRef)((props, forwardedRef) => {\n var _arrowSize$width, _arrowSize$height, _middlewareData$arrow, _middlewareData$arrow2, _middlewareData$arrow3, _middlewareData$hide, _middlewareData$trans, _middlewareData$trans2;\n const _a3 = props, { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, avoidCollisions = true, onPlaced } = _a3, contentProps = __objRest(_a3, [\"__scopePopper\", \"side\", \"sideOffset\", \"align\", \"alignOffset\", \"arrowPadding\", \"collisionBoundary\", \"collisionPadding\", \"sticky\", \"hideWhenDetached\", \"avoidCollisions\", \"onPlaced\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2, __scopePopper);\n const [content, setContent] = (0, import_react55.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const [arrow2, setArrow] = (0, import_react55.useState)(null);\n const arrowSize = $db6c3485150b8e66$export$1ab7ae714698c4b8(arrow2);\n const arrowWidth = (_arrowSize$width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize$width !== void 0 ? _arrowSize$width : 0;\n const arrowHeight = (_arrowSize$height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize$height !== void 0 ? _arrowSize$height : 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : __spreadValues({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }, collisionPaddingProp);\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter($cf1ac5d9fe0e8206$var$isNotNull2),\n altBoundary: hasExplicitBoundaries\n };\n const { reference, floating, strategy, x: x4, y: y4, placement, middlewareData, update } = useFloating({\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: N,\n middleware: [\n $cf1ac5d9fe0e8206$var$anchorCssProperties(),\n T({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions ? D(__spreadValues({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? L() : void 0\n }, detectOverflowOptions)) : void 0,\n arrow2 ? arrow({\n element: arrow2,\n padding: arrowPadding\n }) : void 0,\n avoidCollisions ? b(__spreadValues({}, detectOverflowOptions)) : void 0,\n k(__spreadProps(__spreadValues({}, detectOverflowOptions), {\n apply: ({ elements, availableWidth: width, availableHeight: height }) => {\n elements.floating.style.setProperty(\"--radix-popper-available-width\", `${width}px`);\n elements.floating.style.setProperty(\"--radix-popper-available-height\", `${height}px`);\n }\n })),\n $cf1ac5d9fe0e8206$var$transformOrigin2({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached ? P({\n strategy: \"referenceHidden\"\n }) : void 0\n ].filter($cf1ac5d9fe0e8206$var$isDefined2)\n });\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n reference(context.anchor);\n }, [\n reference,\n context.anchor\n ]);\n const isPlaced = x4 !== null && y4 !== null;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement2(placement);\n const handlePlaced = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPlaced);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (isPlaced)\n handlePlaced === null || handlePlaced === void 0 || handlePlaced();\n }, [\n isPlaced,\n handlePlaced\n ]);\n const arrowX = (_middlewareData$arrow = middlewareData.arrow) === null || _middlewareData$arrow === void 0 ? void 0 : _middlewareData$arrow.x;\n const arrowY = (_middlewareData$arrow2 = middlewareData.arrow) === null || _middlewareData$arrow2 === void 0 ? void 0 : _middlewareData$arrow2.y;\n const cannotCenterArrow = ((_middlewareData$arrow3 = middlewareData.arrow) === null || _middlewareData$arrow3 === void 0 ? void 0 : _middlewareData$arrow3.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = (0, import_react55.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (content)\n setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const { hasParent, positionUpdateFns } = $cf1ac5d9fe0e8206$var$usePositionContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2, __scopePopper);\n const isRoot = !hasParent;\n (0, import_react55.useLayoutEffect)(() => {\n if (!isRoot) {\n positionUpdateFns.add(update);\n return () => {\n positionUpdateFns.delete(update);\n };\n }\n }, [\n isRoot,\n positionUpdateFns,\n update\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (isRoot && isPlaced)\n Array.from(positionUpdateFns).reverse().forEach(\n (fn) => requestAnimationFrame(fn)\n );\n }, [\n isRoot,\n isPlaced,\n positionUpdateFns\n ]);\n const commonProps = __spreadProps(__spreadValues({\n \"data-side\": placedSide,\n \"data-align\": placedAlign\n }, contentProps), {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n animation: !isPlaced ? \"none\" : void 0,\n opacity: (_middlewareData$hide = middlewareData.hide) !== null && _middlewareData$hide !== void 0 && _middlewareData$hide.referenceHidden ? 0 : void 0\n })\n });\n return \/* @__PURE__ *\/ (0, import_react55.createElement)(\"div\", {\n ref: floating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n position: strategy,\n left: 0,\n top: 0,\n transform: isPlaced ? `translate3d(${Math.round(x4)}px, ${Math.round(y4)}px, 0)` : \"translate3d(0, -200%, 0)\",\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n (_middlewareData$trans = middlewareData.transformOrigin) === null || _middlewareData$trans === void 0 ? void 0 : _middlewareData$trans.x,\n (_middlewareData$trans2 = middlewareData.transformOrigin) === null || _middlewareData$trans2 === void 0 ? void 0 : _middlewareData$trans2.y\n ].join(\" \")\n },\n dir: props.dir\n }, \/* @__PURE__ *\/ (0, import_react55.createElement)($cf1ac5d9fe0e8206$var$PopperContentProvider2, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow\n }, isRoot ? \/* @__PURE__ *\/ (0, import_react55.createElement)($cf1ac5d9fe0e8206$var$PositionContextProvider2, {\n scope: __scopePopper,\n hasParent: true,\n positionUpdateFns\n }, \/* @__PURE__ *\/ (0, import_react55.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, commonProps)) : \/* @__PURE__ *\/ (0, import_react55.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, commonProps)));\n});\nfunction $cf1ac5d9fe0e8206$var$isDefined2(value) {\n return value !== void 0;\n}\nfunction $cf1ac5d9fe0e8206$var$isNotNull2(value) {\n return value !== null;\n}\nvar $cf1ac5d9fe0e8206$var$anchorCssProperties = () => ({\n name: \"anchorCssProperties\",\n fn(data) {\n const { rects, elements } = data;\n const { width, height } = rects.reference;\n elements.floating.style.setProperty(\"--radix-popper-anchor-width\", `${width}px`);\n elements.floating.style.setProperty(\"--radix-popper-anchor-height\", `${height}px`);\n return {};\n }\n});\nvar $cf1ac5d9fe0e8206$var$transformOrigin2 = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n var _middlewareData$arrow4, _middlewareData$arrow5, _middlewareData$arrow6, _middlewareData$arrow7, _middlewareData$arrow8;\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData$arrow4 = middlewareData.arrow) === null || _middlewareData$arrow4 === void 0 ? void 0 : _middlewareData$arrow4.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement2(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n const arrowXCenter = ((_middlewareData$arrow5 = (_middlewareData$arrow6 = middlewareData.arrow) === null || _middlewareData$arrow6 === void 0 ? void 0 : _middlewareData$arrow6.x) !== null && _middlewareData$arrow5 !== void 0 ? _middlewareData$arrow5 : 0) + arrowWidth \/ 2;\n const arrowYCenter = ((_middlewareData$arrow7 = (_middlewareData$arrow8 = middlewareData.arrow) === null || _middlewareData$arrow8 === void 0 ? void 0 : _middlewareData$arrow8.y) !== null && _middlewareData$arrow7 !== void 0 ? _middlewareData$arrow7 : 0) + arrowHeight \/ 2;\n let x4 = \"\";\n let y4 = \"\";\n if (placedSide === \"bottom\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x4 = `${-arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x4 = `${rects.floating.width + arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return {\n data: {\n x: x4,\n y: y4\n }\n };\n }\n});\nfunction $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement2(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe92 = $cf1ac5d9fe0e8206$export$badac9ada3a0bdf92;\nvar $cf1ac5d9fe0e8206$export$b688253958b8dfe72 = $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d2;\nvar $cf1ac5d9fe0e8206$export$7c6e2c02157bb7d22 = $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc2;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-portal\/dist\/index.module.js\nvar import_react56 = require(\"react\");\nvar import_react_dom9 = __toESM(require(\"react-dom\"));\nvar $f1701beae083dbae$export$602eac185826482c2 = \/* @__PURE__ *\/ (0, import_react56.forwardRef)((props, forwardedRef) => {\n var _globalThis$document;\n const _a3 = props, { container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body } = _a3, portalProps = __objRest(_a3, [\"container\"]);\n return container ? \/* @__PURE__ *\/ import_react_dom9.default.createPortal(\/* @__PURE__ *\/ (0, import_react56.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-visually-hidden\/dist\/index.module.js\nvar import_react57 = require(\"react\");\nvar $ea1ef594cf570d83$export$439d29a4e110a1642 = \/* @__PURE__ *\/ (0, import_react57.forwardRef)((props, forwardedRef) => {\n return \/* @__PURE__ *\/ (0, import_react57.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({}, props, {\n ref: forwardedRef,\n style: __spreadValues({\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n }, props.style)\n }));\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/dist\/index.module.js\nvar $cc7e05a45900e73f$var$OPEN_KEYS = [\n \" \",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\"\n];\nvar $cc7e05a45900e73f$var$SELECTION_KEYS = [\n \" \",\n \"Enter\"\n];\nvar $cc7e05a45900e73f$var$SELECT_NAME = \"Select\";\nvar [$cc7e05a45900e73f$var$Collection, $cc7e05a45900e73f$var$useCollection, $cc7e05a45900e73f$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb22($cc7e05a45900e73f$var$SELECT_NAME);\nvar [$cc7e05a45900e73f$var$createSelectContext, $cc7e05a45900e73f$export$286727a75dc039bd] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cc7e05a45900e73f$var$SELECT_NAME, [\n $cc7e05a45900e73f$var$createCollectionScope,\n $cf1ac5d9fe0e8206$export$722aac194ae9232\n]);\nvar $cc7e05a45900e73f$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae9232();\nvar [$cc7e05a45900e73f$var$SelectProvider, $cc7e05a45900e73f$var$useSelectContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);\nvar [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);\nvar $cc7e05a45900e73f$export$ef9b1a59e592288f = (props) => {\n const { __scopeSelect, children, open: openProp, defaultOpen, onOpenChange, value: valueProp, defaultValue, onValueChange, dir, name, autoComplete, disabled, required } = props;\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = (0, import_react58.useState)(null);\n const [valueNode, setValueNode] = (0, import_react58.useState)(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = (0, import_react58.useState)(false);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = (0, import_react58.useRef)(null);\n const isFormControl = trigger ? Boolean(trigger.closest(\"form\")) : true;\n const [nativeOptionsSet, setNativeOptionsSet] = (0, import_react58.useState)(\/* @__PURE__ *\/ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map(\n (option) => option.props.value\n ).join(\";\");\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe92, popperScope, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectProvider, {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: $1746a345f3d73bb7$export$f680877a34711e37(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.Provider, {\n scope: __scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectNativeOptionsProvider, {\n scope: props.__scopeSelect,\n onNativeOptionAdd: (0, import_react58.useCallback)((option) => {\n setNativeOptionsSet(\n (prev) => new Set(prev).add(option)\n );\n }, []),\n onNativeOptionRemove: (0, import_react58.useCallback)((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, [])\n }, children)), isFormControl ? \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$BubbleSelect, {\n key: nativeSelectKey,\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled\n }, value === void 0 ? \/* @__PURE__ *\/ (0, import_react58.createElement)(\"option\", {\n value: \"\"\n }) : null, Array.from(nativeOptionsSet)) : null));\n};\nvar $cc7e05a45900e73f$var$TRIGGER_NAME = \"SelectTrigger\";\nvar $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, disabled = false } = _a3, triggerProps = __objRest(_a3, [\"__scopeSelect\", \"disabled\"]);\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.onTriggerChange);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = $cc7e05a45900e73f$var$useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter(\n (item) => !item.disabled\n );\n const currentItem = enabledItems.find(\n (item) => item.value === context.value\n );\n const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0)\n context.onValueChange(nextItem.value);\n });\n const handleOpen = () => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n };\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe72, _extends2({\n asChild: true\n }, popperScope), \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.button, _extends2({\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": context.value === void 0 ? \"\" : void 0\n }, triggerProps, {\n ref: composedRefs,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n }),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onPointerDown, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId))\n target.releasePointerCapture(event.pointerId);\n if (event.button === 0 && event.ctrlKey === false) {\n handleOpen();\n context.triggerPointerDownPosRef.current = {\n x: Math.round(event.pageX),\n y: Math.round(event.pageY)\n };\n event.preventDefault();\n }\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \")\n return;\n if ($cc7e05a45900e73f$var$OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n })));\n});\nvar $cc7e05a45900e73f$var$VALUE_NAME = \"SelectValue\";\nvar $cc7e05a45900e73f$export$e288731fd71264f0 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, className, style, children, placeholder: placeholder2 } = _a3, valueProps = __objRest(_a3, [\"__scopeSelect\", \"className\", \"style\", \"children\", \"placeholder\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.onValueNodeChange);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [\n onValueNodeHasChildrenChange,\n hasChildren\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({}, valueProps, {\n ref: composedRefs,\n style: {\n pointerEvents: \"none\"\n }\n }), context.value === void 0 && placeholder2 !== void 0 ? placeholder2 : children);\n});\nvar $cc7e05a45900e73f$export$99b400cabb58c515 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, children } = _a3, iconProps = __objRest(_a3, [\"__scopeSelect\", \"children\"]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({\n \"aria-hidden\": true\n }, iconProps, {\n ref: forwardedRef\n }), children || \"\\u25BC\");\n});\nvar $cc7e05a45900e73f$export$b2af6c9944296213 = (props) => {\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($f1701beae083dbae$export$602eac185826482c2, _extends2({\n asChild: true\n }, props));\n};\nvar $cc7e05a45900e73f$var$CONTENT_NAME = \"SelectContent\";\nvar $cc7e05a45900e73f$export$c973a4b3cb86a03d = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = (0, import_react58.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? \/* @__PURE__ *\/ (0, import_react_dom10.createPortal)(\/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectContentProvider, {\n scope: props.__scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.Slot, {\n scope: props.__scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"div\", null, props.children))), frag) : null;\n }\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectContentImpl, _extends2({}, props, {\n ref: forwardedRef\n }));\n});\nvar $cc7e05a45900e73f$var$CONTENT_MARGIN = 10;\nvar [$cc7e05a45900e73f$var$SelectContentProvider, $cc7e05a45900e73f$var$useSelectContentContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME);\nvar $cc7e05a45900e73f$var$SelectContentImpl = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } = _a3, contentProps = __objRest(_a3, [\n \"__scopeSelect\",\n \"position\",\n \"onCloseAutoFocus\",\n \"onEscapeKeyDown\",\n \"onPointerDownOutside\",\n \"side\",\n \"sideOffset\",\n \"align\",\n \"alignOffset\",\n \"arrowPadding\",\n \"collisionBoundary\",\n \"collisionPadding\",\n \"sticky\",\n \"hideWhenDetached\",\n \"avoidCollisions\"\n ]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const [content, setContent] = (0, import_react58.useState)(null);\n const [viewport, setViewport] = (0, import_react58.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const [selectedItem, setSelectedItem] = (0, import_react58.useState)(null);\n const [selectedItemText, setSelectedItemText] = (0, import_react58.useState)(null);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = (0, import_react58.useState)(false);\n const firstValidItemFoundRef = (0, import_react58.useRef)(false);\n (0, import_react58.useEffect)(() => {\n if (content)\n return hideOthers(content);\n }, [\n content\n ]);\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n const focusFirst = (0, import_react58.useCallback)((candidates) => {\n const [firstItem, ...restItems] = getItems().map(\n (item) => item.ref.current\n );\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n candidate === null || candidate === void 0 || candidate.scrollIntoView({\n block: \"nearest\"\n });\n if (candidate === firstItem && viewport)\n viewport.scrollTop = 0;\n if (candidate === lastItem && viewport)\n viewport.scrollTop = viewport.scrollHeight;\n candidate === null || candidate === void 0 || candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n }\n }, [\n getItems,\n viewport\n ]);\n const focusSelectedItem = (0, import_react58.useCallback)(\n () => focusFirst([\n selectedItem,\n content\n ]),\n [\n focusFirst,\n selectedItem,\n content\n ]\n );\n (0, import_react58.useEffect)(() => {\n if (isPositioned)\n focusSelectedItem();\n }, [\n isPositioned,\n focusSelectedItem\n ]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n (0, import_react58.useEffect)(() => {\n if (content) {\n let pointerMoveDelta = {\n x: 0,\n y: 0\n };\n const handlePointerMove = (event) => {\n var _triggerPointerDownPo, _triggerPointerDownPo2, _triggerPointerDownPo3, _triggerPointerDownPo4;\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - ((_triggerPointerDownPo = (_triggerPointerDownPo2 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo2 === void 0 ? void 0 : _triggerPointerDownPo2.x) !== null && _triggerPointerDownPo !== void 0 ? _triggerPointerDownPo : 0)),\n y: Math.abs(Math.round(event.pageY) - ((_triggerPointerDownPo3 = (_triggerPointerDownPo4 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo4 === void 0 ? void 0 : _triggerPointerDownPo4.y) !== null && _triggerPointerDownPo3 !== void 0 ? _triggerPointerDownPo3 : 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10)\n event.preventDefault();\n else if (!content.contains(event.target))\n onOpenChange(false);\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, {\n capture: true,\n once: true\n });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, {\n capture: true\n });\n };\n }\n }, [\n content,\n onOpenChange,\n triggerPointerDownPosRef\n ]);\n (0, import_react58.useEffect)(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [\n onOpenChange\n ]);\n const [searchRef, handleTypeaheadSearch] = $cc7e05a45900e73f$var$useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter(\n (item) => !item.disabled\n );\n const currentItem = enabledItems.find(\n (item) => item.ref.current === document.activeElement\n );\n const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);\n if (nextItem)\n setTimeout(\n () => nextItem.ref.current.focus()\n );\n });\n const itemRefCallback = (0, import_react58.useCallback)((node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem)\n firstValidItemFoundRef.current = true;\n }\n }, [\n context.value\n ]);\n const handleItemLeave = (0, import_react58.useCallback)(\n () => content === null || content === void 0 ? void 0 : content.focus(),\n [\n content\n ]\n );\n const itemTextRefCallback = (0, import_react58.useCallback)((node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem)\n setSelectedItemText(node);\n }, [\n context.value\n ]);\n const SelectPosition = position === \"popper\" ? $cc7e05a45900e73f$var$SelectPopperPosition : $cc7e05a45900e73f$var$SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === $cc7e05a45900e73f$var$SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectContentProvider, {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(Combination_default, {\n as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,\n allowPinchZoom: true\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($d3863c46a17e8a28$export$20e40289641fbbb62, {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(onCloseAutoFocus, (event) => {\n var _context$trigger;\n (_context$trigger = context.trigger) === null || _context$trigger === void 0 || _context$trigger.focus({\n preventScroll: true\n });\n event.preventDefault();\n })\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f222, {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false)\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(SelectPosition, _extends2({\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault()\n }, contentProps, popperContentProps, {\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: __spreadValues({\n display: \"flex\",\n flexDirection: \"column\",\n outline: \"none\"\n }, contentProps.style),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\")\n event.preventDefault();\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key);\n if ([\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\"\n ].includes(event.key)) {\n const items = getItems().filter(\n (item) => !item.disabled\n );\n let candidateNodes = items.map(\n (item) => item.ref.current\n );\n if ([\n \"ArrowUp\",\n \"End\"\n ].includes(event.key))\n candidateNodes = candidateNodes.slice().reverse();\n if ([\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(\n () => focusFirst(candidateNodes)\n );\n event.preventDefault();\n }\n })\n }))))));\n});\nvar $cc7e05a45900e73f$var$SelectItemAlignedPosition = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, onPlaced } = _a3, popperProps = __objRest(_a3, [\"__scopeSelect\", \"onPlaced\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = (0, import_react58.useState)(null);\n const [content, setContent] = (0, import_react58.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = (0, import_react58.useRef)(false);\n const shouldRepositionRef = (0, import_react58.useRef)(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = (0, import_react58.useCallback)(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const clampedLeft = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(left, [\n $cc7e05a45900e73f$var$CONTENT_MARGIN,\n rightEdge - contentWidth\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const clampedRight = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(right, [\n $cc7e05a45900e73f$var$CONTENT_MARGIN,\n leftEdge - contentWidth\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height \/ 2 - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight \/ 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${$cc7e05a45900e73f$var$CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced === null || onPlaced === void 0 || onPlaced();\n requestAnimationFrame(\n () => shouldExpandOnScrollRef.current = true\n );\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(\n () => position(),\n [\n position\n ]\n );\n const [contentZIndex, setContentZIndex] = (0, import_react58.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (content)\n setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const handleScrollButtonChange = (0, import_react58.useCallback)((node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem === null || focusSelectedItem === void 0 || focusSelectedItem();\n shouldRepositionRef.current = false;\n }\n }, [\n position,\n focusSelectedItem\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectViewportProvider, {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"div\", {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n }\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, popperProps, {\n ref: composedRefs,\n style: __spreadValues({\n boxSizing: \"border-box\",\n maxHeight: \"100%\"\n }, popperProps.style)\n }))));\n});\nvar $cc7e05a45900e73f$var$SelectPopperPosition = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, align = \"start\", collisionPadding = $cc7e05a45900e73f$var$CONTENT_MARGIN } = _a3, popperProps = __objRest(_a3, [\"__scopeSelect\", \"align\", \"collisionPadding\"]);\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d22, _extends2({}, popperScope, popperProps, {\n ref: forwardedRef,\n align,\n collisionPadding,\n style: __spreadProps(__spreadValues({\n boxSizing: \"border-box\"\n }, popperProps.style), {\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n })\n }));\n});\nvar [$cc7e05a45900e73f$var$SelectViewportProvider, $cc7e05a45900e73f$var$useSelectViewportContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, {});\nvar $cc7e05a45900e73f$var$VIEWPORT_NAME = \"SelectViewport\";\nvar $cc7e05a45900e73f$export$9ed6e7b40248d36d = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect } = _a3, viewportProps = __objRest(_a3, [\"__scopeSelect\"]);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = (0, import_react58.useRef)(0);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)(import_react58.Fragment, null, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n }\n }), \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.Slot, {\n scope: __scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\"\n }, viewportProps, {\n ref: composedRefs,\n style: __spreadValues({\n position: \"relative\",\n flex: 1,\n overflow: \"auto\"\n }, viewportProps.style),\n onScroll: $e42e1063c40fb3ef$export$b9ecd428b558ff10(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef !== null && shouldExpandOnScrollRef !== void 0 && shouldExpandOnScrollRef.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }))));\n});\nvar $cc7e05a45900e73f$var$GROUP_NAME = \"SelectGroup\";\nvar [$cc7e05a45900e73f$var$SelectGroupContextProvider, $cc7e05a45900e73f$var$useSelectGroupContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$GROUP_NAME);\nvar $cc7e05a45900e73f$var$ITEM_NAME = \"SelectItem\";\nvar [$cc7e05a45900e73f$var$SelectItemContextProvider, $cc7e05a45900e73f$var$useSelectItemContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$ITEM_NAME);\nvar $cc7e05a45900e73f$export$13ef48a934230896 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, value, disabled = false, textValue: textValueProp } = _a3, itemProps = __objRest(_a3, [\"__scopeSelect\", \"value\", \"disabled\", \"textValue\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = (0, import_react58.useState)(textValueProp !== null && textValueProp !== void 0 ? textValueProp : \"\");\n const [isFocused, setIsFocused] = (0, import_react58.useState)(false);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node) => {\n var _contentContext$itemR;\n return (_contentContext$itemR = contentContext.itemRefCallback) === null || _contentContext$itemR === void 0 ? void 0 : _contentContext$itemR.call(contentContext, node, value, disabled);\n });\n const textId = $1746a345f3d73bb7$export$f680877a34711e37();\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectItemContextProvider, {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: (0, import_react58.useCallback)((node) => {\n setTextValue((prevTextValue) => {\n var _node$textContent;\n return prevTextValue || ((_node$textContent = node === null || node === void 0 ? void 0 : node.textContent) !== null && _node$textContent !== void 0 ? _node$textContent : \"\").trim();\n });\n }, [])\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.ItemSlot, {\n scope: __scopeSelect,\n value,\n disabled,\n textValue\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1\n }, itemProps, {\n ref: composedRefs,\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n itemProps.onFocus,\n () => setIsFocused(true)\n ),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n itemProps.onBlur,\n () => setIsFocused(false)\n ),\n onPointerUp: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerUp, handleSelect),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerMove, (event) => {\n if (disabled) {\n var _contentContext$onIte;\n (_contentContext$onIte = contentContext.onItemLeave) === null || _contentContext$onIte === void 0 || _contentContext$onIte.call(contentContext);\n } else\n event.currentTarget.focus({\n preventScroll: true\n });\n }),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n var _contentContext$onIte2;\n (_contentContext$onIte2 = contentContext.onItemLeave) === null || _contentContext$onIte2 === void 0 || _contentContext$onIte2.call(contentContext);\n }\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onKeyDown, (event) => {\n var _contentContext$searc;\n const isTypingAhead = ((_contentContext$searc = contentContext.searchRef) === null || _contentContext$searc === void 0 ? void 0 : _contentContext$searc.current) !== \"\";\n if (isTypingAhead && event.key === \" \")\n return;\n if ($cc7e05a45900e73f$var$SELECTION_KEYS.includes(event.key))\n handleSelect();\n if (event.key === \" \")\n event.preventDefault();\n })\n }))));\n});\nvar $cc7e05a45900e73f$var$ITEM_TEXT_NAME = \"SelectItemText\";\nvar $cc7e05a45900e73f$export$3572fb0fb821ff49 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, className, style } = _a3, itemTextProps = __objRest(_a3, [\"__scopeSelect\", \"className\", \"style\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = $cc7e05a45900e73f$var$useSelectItemContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = $cc7e05a45900e73f$var$useSelectNativeOptionsContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = (0, import_react58.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => {\n var _contentContext$itemT;\n return (_contentContext$itemT = contentContext.itemTextRefCallback) === null || _contentContext$itemT === void 0 ? void 0 : _contentContext$itemT.call(contentContext, node, itemContext.value, itemContext.disabled);\n }\n );\n const textContent = itemTextNode === null || itemTextNode === void 0 ? void 0 : itemTextNode.textContent;\n const nativeOption = (0, import_react58.useMemo)(\n () => \/* @__PURE__ *\/ (0, import_react58.createElement)(\"option\", {\n key: itemContext.value,\n value: itemContext.value,\n disabled: itemContext.disabled\n }, textContent),\n [\n itemContext.disabled,\n itemContext.value,\n textContent\n ]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [\n onNativeOptionAdd,\n onNativeOptionRemove,\n nativeOption\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)(import_react58.Fragment, null, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({\n id: itemContext.textId\n }, itemTextProps, {\n ref: composedRefs\n })), itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? \/* @__PURE__ *\/ (0, import_react_dom10.createPortal)(itemTextProps.children, context.valueNode) : null);\n});\nvar $cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar $cc7e05a45900e73f$export$d8117927658af6d7 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp1, setCanScrollUp] = (0, import_react58.useState)(false);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, viewportContext.onScrollButtonChange);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp);\n };\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollUp1 ? \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectScrollButtonImpl, _extends2({}, props, {\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem)\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n })) : null;\n});\nvar $cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar $cc7e05a45900e73f$export$ff951e476c12189 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown1, setCanScrollDown] = (0, import_react58.useState)(false);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, viewportContext.onScrollButtonChange);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown);\n };\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollDown1 ? \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectScrollButtonImpl, _extends2({}, props, {\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem)\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n })) : null;\n});\nvar $cc7e05a45900e73f$var$SelectScrollButtonImpl = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, onAutoScroll } = _a3, scrollIndicatorProps = __objRest(_a3, [\"__scopeSelect\", \"onAutoScroll\"]);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = (0, import_react58.useRef)(null);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const clearAutoScrollTimer = (0, import_react58.useCallback)(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n (0, import_react58.useEffect)(() => {\n return () => clearAutoScrollTimer();\n }, [\n clearAutoScrollTimer\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n var _activeItem$ref$curre;\n const activeItem = getItems().find(\n (item) => item.ref.current === document.activeElement\n );\n activeItem === null || activeItem === void 0 || (_activeItem$ref$curre = activeItem.ref.current) === null || _activeItem$ref$curre === void 0 || _activeItem$ref$curre.scrollIntoView({\n block: \"nearest\"\n });\n }, [\n getItems\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n \"aria-hidden\": true\n }, scrollIndicatorProps, {\n ref: forwardedRef,\n style: __spreadValues({\n flexShrink: 0\n }, scrollIndicatorProps.style),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerMove, () => {\n var _contentContext$onIte3;\n (_contentContext$onIte3 = contentContext.onItemLeave) === null || _contentContext$onIte3 === void 0 || _contentContext$onIte3.call(contentContext);\n if (autoScrollTimerRef.current === null)\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }));\n});\nvar $cc7e05a45900e73f$var$BubbleSelect = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { value } = _a3, selectProps = __objRest(_a3, [\"value\"]);\n const ref = (0, import_react58.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const prevValue = $010c2913dbd2fe3d$export$5cae361ad82dce8b(value);\n (0, import_react58.useEffect)(() => {\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(selectProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", {\n bubbles: true\n });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($ea1ef594cf570d83$export$439d29a4e110a1642, {\n asChild: true\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"select\", _extends2({}, selectProps, {\n ref: composedRefs,\n defaultValue: value\n })));\n});\n$cc7e05a45900e73f$var$BubbleSelect.displayName = \"BubbleSelect\";\nfunction $cc7e05a45900e73f$var$useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onSearchChange);\n const searchRef = (0, import_react58.useRef)(\"\");\n const timerRef = (0, import_react58.useRef)(0);\n const handleTypeaheadSearch = (0, import_react58.useCallback)((key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\")\n timerRef.current = window.setTimeout(\n () => updateSearch(\"\"),\n 1e3\n );\n })(search);\n }, [\n handleSearchChange\n ]);\n const resetTypeahead = (0, import_react58.useCallback)(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n (0, import_react58.useEffect)(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [\n searchRef,\n handleTypeaheadSearch,\n resetTypeahead\n ];\n}\nfunction $cc7e05a45900e73f$var$findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every(\n (char) => char === search[0]\n );\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = $cc7e05a45900e73f$var$wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem)\n wrappedItems = wrappedItems.filter(\n (v4) => v4 !== currentItem\n );\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction $cc7e05a45900e73f$var$wrapArray(array2, startIndex) {\n return array2.map(\n (_2, index3) => array2[(startIndex + index3) % array2.length]\n );\n}\nvar $cc7e05a45900e73f$export$be92b6f5f03c0fe9 = $cc7e05a45900e73f$export$ef9b1a59e592288f;\nvar $cc7e05a45900e73f$export$41fb9f06171c75f4 = $cc7e05a45900e73f$export$3ac1e88a1c0b9f1;\nvar $cc7e05a45900e73f$export$4c8d1a57a761ef94 = $cc7e05a45900e73f$export$e288731fd71264f0;\nvar $cc7e05a45900e73f$export$f04a61298a47a40f = $cc7e05a45900e73f$export$99b400cabb58c515;\nvar $cc7e05a45900e73f$export$602eac185826482c = $cc7e05a45900e73f$export$b2af6c9944296213;\nvar $cc7e05a45900e73f$export$7c6e2c02157bb7d2 = $cc7e05a45900e73f$export$c973a4b3cb86a03d;\nvar $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 = $cc7e05a45900e73f$export$9ed6e7b40248d36d;\nvar $cc7e05a45900e73f$export$6d08773d2e66f8f2 = $cc7e05a45900e73f$export$13ef48a934230896;\nvar $cc7e05a45900e73f$export$d6e5bf9c43ea9319 = $cc7e05a45900e73f$export$3572fb0fb821ff49;\nvar $cc7e05a45900e73f$export$2f60d3ec9ad468f2 = $cc7e05a45900e73f$export$d8117927658af6d7;\nvar $cc7e05a45900e73f$export$bf1aedc3039c8d63 = $cc7e05a45900e73f$export$ff951e476c12189;\n\n\/\/ src\/components\/inputs\/SelectInput.tsx\nvar import_jsx_runtime45 = require(\"react\/jsx-runtime\");\nfunction SelectInput(_a3) {\n var _b = _a3, {\n options,\n tooltip,\n popoverSide,\n chevron = true,\n value,\n onValueChange\n } = _b, rest = __objRest(_b, [\n \"options\",\n \"tooltip\",\n \"popoverSide\",\n \"chevron\",\n \"value\",\n \"onValueChange\"\n ]);\n const [isOpen, setIsOpen] = React49.useState(false);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(\"div\", __spreadProps(__spreadValues({}, rest), {\n className: \"tl-select-input\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsxs)($cc7e05a45900e73f$export$be92b6f5f03c0fe9, {\n open: isOpen,\n onOpenChange: setIsOpen,\n value,\n onValueChange,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(Tooltip, {\n content: tooltip,\n side: popoverSide,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsxs)($cc7e05a45900e73f$export$41fb9f06171c75f4, {\n className: \"tl-select-input-trigger\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(\"div\", {\n className: \"tl-select-input-trigger-value\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$4c8d1a57a761ef94, {})\n }),\n chevron && \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$f04a61298a47a40f, {\n style: { lineHeight: 1 },\n className: \"ml-1 md:ml-3\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(TablerIcon, {\n name: isOpen ? \"chevron-up\" : \"chevron-down\"\n })\n })\n ]\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$602eac185826482c, {\n className: \"tl-select-input-portal\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsxs)($cc7e05a45900e73f$export$7c6e2c02157bb7d2, {\n className: \"tl-select-input-content\",\n side: popoverSide,\n position: \"popper\",\n sideOffset: 14,\n align: \"center\",\n onKeyDown: (e2) => e2.stopPropagation(),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$2f60d3ec9ad468f2, {}),\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$d5c6c08dc2d3ca7, {\n className: \"tl-select-input-viewport\",\n children: options.map((option) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$6d08773d2e66f8f2, {\n className: \"tl-select-input-select-item\",\n value: option.value,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$d6e5bf9c43ea9319, {\n children: option.label\n })\n }, option.value);\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$bf1aedc3039c8d63, {})\n ]\n })\n })\n ]\n })\n }));\n}\n\n\/\/ src\/components\/inputs\/ScaleInput.tsx\nvar import_react60 = __toESM(require(\"react\"));\nvar import_jsx_runtime46 = require(\"react\/jsx-runtime\");\nfunction ScaleInput(_a3) {\n var _b = _a3, { scaleLevel, compact, popoverSide } = _b, rest = __objRest(_b, [\"scaleLevel\", \"compact\", \"popoverSide\"]);\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react60.default.useContext(LogseqContext);\n const sizeOptions = [\n {\n label: compact ? \"XS\" : t2(\"whiteboard\/extra-small\"),\n value: \"xs\"\n },\n {\n label: compact ? \"SM\" : t2(\"whiteboard\/small\"),\n value: \"sm\"\n },\n {\n label: compact ? \"MD\" : t2(\"whiteboard\/medium\"),\n value: \"md\"\n },\n {\n label: compact ? \"LG\" : t2(\"whiteboard\/large\"),\n value: \"lg\"\n },\n {\n label: compact ? \"XL\" : t2(\"whiteboard\/extra-large\"),\n value: \"xl\"\n },\n {\n label: compact ? \"XXL\" : t2(\"whiteboard\/huge\"),\n value: \"xxl\"\n }\n ];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime46.jsx)(SelectInput, {\n tooltip: t2(\"whiteboard\/scale-level\"),\n options: sizeOptions,\n value: scaleLevel,\n popoverSide,\n chevron: !compact,\n onValueChange: (v4) => {\n app.api.setScaleLevel(v4);\n }\n });\n}\n\n\/\/ src\/components\/PrimaryTools\/PrimaryTools.tsx\nvar import_jsx_runtime47 = require(\"react\/jsx-runtime\");\nvar PrimaryTools = observer(function PrimaryTools2() {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = React51.useContext(LogseqContext);\n const handleSetColor = React51.useCallback((color) => {\n app.api.setColor(color);\n }, []);\n const handleToolClick = React51.useCallback((e2) => {\n const tool = e2.currentTarget.dataset.tool;\n if (tool)\n app.selectTool(tool);\n }, []);\n const [activeGeomId, setActiveGeomId] = React51.useState(\n () => {\n var _a3;\n return (_a3 = Object.values(Geometry).find((geo) => geo === app.selectedTool.id)) != null ? _a3 : Object.values(Geometry)[0];\n }\n );\n React51.useEffect(() => {\n setActiveGeomId((prevId) => {\n var _a3;\n return (_a3 = Object.values(Geometry).find((geo) => geo === app.selectedTool.id)) != null ? _a3 : prevId;\n });\n }, [app.selectedTool.id]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(\"div\", {\n className: \"tl-primary-tools\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsxs)(\"div\", {\n className: \"tl-toolbar tl-tools-floating-panel\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"select\"),\n tooltip: t2(\"whiteboard\/select\"),\n id: \"select\",\n icon: \"select-cursor\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"move\"),\n tooltip: t2(\"whiteboard\/pan\"),\n id: \"move\",\n icon: app.isIn(\"move.panning\") ? \"hand-grab\" : \"hand-stop\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"horizontal\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"logseq-portal\"),\n tooltip: t2(\"whiteboard\/add-block-or-page\"),\n id: \"logseq-portal\",\n icon: \"circle-plus\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"pencil\"),\n tooltip: t2(\"whiteboard\/draw\"),\n id: \"pencil\",\n icon: \"ballpen\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"highlighter\"),\n tooltip: t2(\"whiteboard\/highlight\"),\n id: \"highlighter\",\n icon: \"highlight\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"erase\"),\n tooltip: t2(\"whiteboard\/eraser\"),\n id: \"erase\",\n icon: \"eraser\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"line\"),\n tooltip: t2(\"whiteboard\/connector\"),\n id: \"line\",\n icon: \"connector\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"text\"),\n tooltip: t2(\"whiteboard\/text\"),\n id: \"text\",\n icon: \"text\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(GeometryTools, {\n activeGeometry: activeGeomId,\n setGeometry: handleToolClick\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"horizontal\",\n style: { margin: \"0 -4px\" }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ColorInput, {\n popoverSide: \"left\",\n color: app.settings.color,\n setColor: handleSetColor\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ScaleInput, {\n scaleLevel: app.settings.scaleLevel,\n popoverSide: \"left\",\n compact: true\n })\n ]\n })\n });\n});\n\n\/\/ src\/components\/StatusBar\/StatusBar.tsx\nvar import_jsx_runtime48 = require(\"react\/jsx-runtime\");\nvar StatusBar = observer(function StatusBar2() {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime48.jsxs)(\"div\", {\n className: \"tl-statusbar\",\n \"data-html2canvas-ignore\": \"true\",\n children: [\n app.selectedTool.id,\n \" | \",\n app.selectedTool.currentState.id,\n \/* @__PURE__ *\/ (0, import_jsx_runtime48.jsx)(\"div\", {\n style: { flex: 1 }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime48.jsx)(\"div\", {\n id: \"tl-statusbar-anchor\",\n className: \"flex gap-1\"\n })\n ]\n });\n});\n\n\/\/ src\/components\/AppUI.tsx\nvar import_jsx_runtime49 = require(\"react\/jsx-runtime\");\nvar AppUI = observer(function AppUI2() {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, {\n children: [\n isDev() && \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(StatusBar, {}),\n isDev() && \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(DevTools, {}),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(PrimaryTools, {}),\n \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(ActionBar, {})\n ]\n });\n});\n\n\/\/ src\/components\/ContextBar\/ContextBar.tsx\nvar React71 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/ContextBar\/contextBarActionFactory.tsx\nvar import_react91 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/inputs\/ShapeLinksInput.tsx\nvar import_react88 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/BlockLink\/BlockLink.tsx\nvar import_react64 = __toESM(require(\"react\"));\nvar import_jsx_runtime50 = require(\"react\/jsx-runtime\");\nvar BlockLink = ({\n id: id3,\n showReferenceContent = false\n}) => {\n var _a3;\n const {\n handlers: { isWhiteboardPage, redirectToPage, sidebarAddBlock, queryBlockByUUID },\n renderers: { Breadcrumb, PageName }\n } = import_react64.default.useContext(LogseqContext);\n let iconName = \"\";\n let linkType = validUUID(id3) ? \"B\" : \"P\";\n let blockContent = \"\";\n if (validUUID(id3)) {\n const block = queryBlockByUUID(id3);\n if (!block) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(\"span\", {\n className: \"p-2\",\n children: \"Invalid reference. Did you remove it?\"\n });\n }\n blockContent = block.content;\n if (((_a3 = block.properties) == null ? void 0 : _a3[\"ls-type\"]) === \"whiteboard-shape\") {\n iconName = \"link-to-whiteboard\";\n } else {\n iconName = \"link-to-block\";\n }\n } else {\n if (isWhiteboardPage(id3)) {\n iconName = \"link-to-whiteboard\";\n } else {\n iconName = \"link-to-page\";\n }\n }\n const slicedContent = blockContent && blockContent.length > 23 ? blockContent.slice(0, 20) + \"...\" : blockContent;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsxs)(\"button\", {\n className: \"inline-flex gap-1 items-center w-full\",\n onPointerDown: (e2) => {\n e2.stopPropagation();\n if (e2.shiftKey) {\n sidebarAddBlock(id3, linkType === \"B\" ? \"block\" : \"page\");\n } else {\n redirectToPage(id3);\n }\n },\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(TablerIcon, {\n name: iconName\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(\"span\", {\n className: \"pointer-events-none block-link-reference-row\",\n children: linkType === \"P\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(PageName, {\n pageName: id3\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(Breadcrumb, {\n levelLimit: 1,\n blockId: id3,\n endSeparator: showReferenceContent\n }),\n showReferenceContent && slicedContent\n ]\n })\n })\n ]\n });\n};\n\n\/\/ src\/components\/QuickSearch\/QuickSearch.tsx\nvar import_react86 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@virtuoso.dev\/react-urx\/dist\/react-urx.esm.js\nvar import_react65 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@virtuoso.dev\/urx\/dist\/urx.esm.js\nvar PUBLISH = 0;\nvar SUBSCRIBE = 1;\nvar RESET = 2;\nvar VALUE = 4;\nfunction compose(a5, b5) {\n return function(arg) {\n return a5(b5(arg));\n };\n}\nfunction thrush(arg, proc) {\n return proc(arg);\n}\nfunction curry2to1(proc, arg1) {\n return function(arg2) {\n return proc(arg1, arg2);\n };\n}\nfunction curry1to0(proc, arg) {\n return function() {\n return proc(arg);\n };\n}\nfunction tap(arg, proc) {\n proc(arg);\n return arg;\n}\nfunction tup() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n}\nfunction call2(proc) {\n proc();\n}\nfunction always(value) {\n return function() {\n return value;\n };\n}\nfunction joinProc() {\n for (var _len2 = arguments.length, procs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n procs[_key2] = arguments[_key2];\n }\n return function() {\n procs.map(call2);\n };\n}\nfunction noop4() {\n}\nfunction subscribe(emitter, subscription) {\n return emitter(SUBSCRIBE, subscription);\n}\nfunction publish(publisher, value) {\n publisher(PUBLISH, value);\n}\nfunction reset(emitter) {\n emitter(RESET);\n}\nfunction getValue(depot) {\n return depot(VALUE);\n}\nfunction connect(emitter, publisher) {\n return subscribe(emitter, curry2to1(publisher, PUBLISH));\n}\nfunction handleNext(emitter, subscription) {\n var unsub = emitter(SUBSCRIBE, function(value) {\n unsub();\n subscription(value);\n });\n return unsub;\n}\nfunction stream() {\n var subscriptions = [];\n return function(action2, arg) {\n switch (action2) {\n case RESET:\n subscriptions.splice(0, subscriptions.length);\n return;\n case SUBSCRIBE:\n subscriptions.push(arg);\n return function() {\n var indexOf = subscriptions.indexOf(arg);\n if (indexOf > -1) {\n subscriptions.splice(indexOf, 1);\n }\n };\n case PUBLISH:\n subscriptions.slice().forEach(function(subscription) {\n subscription(arg);\n });\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction statefulStream(initial) {\n var value = initial;\n var innerSubject = stream();\n return function(action2, arg) {\n switch (action2) {\n case SUBSCRIBE:\n var subscription = arg;\n subscription(value);\n break;\n case PUBLISH:\n value = arg;\n break;\n case VALUE:\n return value;\n }\n return innerSubject(action2, arg);\n };\n}\nfunction eventHandler(emitter) {\n var unsub;\n var currentSubscription;\n var cleanup = function cleanup2() {\n return unsub && unsub();\n };\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n if (subscription) {\n if (currentSubscription === subscription) {\n return;\n }\n cleanup();\n currentSubscription = subscription;\n unsub = subscribe(emitter, subscription);\n return unsub;\n } else {\n cleanup();\n return noop4;\n }\n case RESET:\n cleanup();\n currentSubscription = null;\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction streamFromEmitter(emitter) {\n return tap(stream(), function(stream2) {\n return connect(emitter, stream2);\n });\n}\nfunction statefulStreamFromEmitter(emitter, initial) {\n return tap(statefulStream(initial), function(stream2) {\n return connect(emitter, stream2);\n });\n}\nfunction combineOperators() {\n for (var _len = arguments.length, operators = new Array(_len), _key = 0; _key < _len; _key++) {\n operators[_key] = arguments[_key];\n }\n return function(subscriber) {\n return operators.reduceRight(thrush, subscriber);\n };\n}\nfunction pipe(source) {\n for (var _len2 = arguments.length, operators = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n operators[_key2 - 1] = arguments[_key2];\n }\n var project = combineOperators.apply(void 0, operators);\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n return subscribe(source, project(subscription));\n case RESET:\n reset(source);\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction defaultComparator(previous, next) {\n return previous === next;\n}\nfunction distinctUntilChanged(comparator) {\n if (comparator === void 0) {\n comparator = defaultComparator;\n }\n var current;\n return function(done) {\n return function(next) {\n if (!comparator(current, next)) {\n current = next;\n done(next);\n }\n };\n };\n}\nfunction filter(predicate) {\n return function(done) {\n return function(value) {\n predicate(value) && done(value);\n };\n };\n}\nfunction map2(project) {\n return function(done) {\n return compose(done, project);\n };\n}\nfunction mapTo(value) {\n return function(done) {\n return function() {\n return done(value);\n };\n };\n}\nfunction scan(scanner, initial) {\n return function(done) {\n return function(value) {\n return done(initial = scanner(initial, value));\n };\n };\n}\nfunction skip(times) {\n return function(done) {\n return function(value) {\n times > 0 ? times-- : done(value);\n };\n };\n}\nfunction throttleTime(interval) {\n var currentValue;\n var timeout;\n return function(done) {\n return function(value) {\n currentValue = value;\n if (timeout) {\n return;\n }\n timeout = setTimeout(function() {\n timeout = void 0;\n done(currentValue);\n }, interval);\n };\n };\n}\nfunction debounceTime(interval) {\n var currentValue;\n var timeout;\n return function(done) {\n return function(value) {\n currentValue = value;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(function() {\n done(currentValue);\n }, interval);\n };\n };\n}\nfunction withLatestFrom() {\n for (var _len3 = arguments.length, sources = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n sources[_key3] = arguments[_key3];\n }\n var values = new Array(sources.length);\n var called = 0;\n var pendingCall = null;\n var allCalled = Math.pow(2, sources.length) - 1;\n sources.forEach(function(source, index3) {\n var bit = Math.pow(2, index3);\n subscribe(source, function(value) {\n var prevCalled = called;\n called = called | bit;\n values[index3] = value;\n if (prevCalled !== allCalled && called === allCalled && pendingCall) {\n pendingCall();\n pendingCall = null;\n }\n });\n });\n return function(done) {\n return function(value) {\n var call3 = function call4() {\n return done([value].concat(values));\n };\n if (called === allCalled) {\n call3();\n } else {\n pendingCall = call3;\n }\n };\n };\n}\nfunction merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n return joinProc.apply(void 0, sources.map(function(source) {\n return subscribe(source, subscription);\n }));\n case RESET:\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction duc(source, comparator) {\n if (comparator === void 0) {\n comparator = defaultComparator;\n }\n return pipe(source, distinctUntilChanged(comparator));\n}\nfunction combineLatest() {\n var innerSubject = stream();\n for (var _len2 = arguments.length, emitters = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n emitters[_key2] = arguments[_key2];\n }\n var values = new Array(emitters.length);\n var called = 0;\n var allCalled = Math.pow(2, emitters.length) - 1;\n emitters.forEach(function(source, index3) {\n var bit = Math.pow(2, index3);\n subscribe(source, function(value) {\n values[index3] = value;\n called = called | bit;\n if (called === allCalled) {\n publish(innerSubject, values);\n }\n });\n });\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n if (called === allCalled) {\n subscription(values);\n }\n return subscribe(innerSubject, subscription);\n case RESET:\n return reset(innerSubject);\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction system(constructor, dependencies, _temp) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n var _ref = _temp === void 0 ? {\n singleton: true\n } : _temp, singleton = _ref.singleton;\n return {\n id: id(),\n constructor,\n dependencies,\n singleton\n };\n}\nvar id = function id2() {\n return Symbol();\n};\nfunction init(systemSpec) {\n var singletons = \/* @__PURE__ *\/ new Map();\n var _init = function _init2(_ref2) {\n var id3 = _ref2.id, constructor = _ref2.constructor, dependencies = _ref2.dependencies, singleton = _ref2.singleton;\n if (singleton && singletons.has(id3)) {\n return singletons.get(id3);\n }\n var system2 = constructor(dependencies.map(function(e2) {\n return _init2(e2);\n }));\n if (singleton) {\n singletons.set(id3, system2);\n }\n return system2;\n };\n return _init(systemSpec);\n}\n\n\/\/ ..\/..\/node_modules\/@virtuoso.dev\/react-urx\/dist\/react-urx.esm.js\nfunction _objectWithoutPropertiesLoose2(source, excluded) {\n if (source == null)\n return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i4;\n for (i4 = 0; i4 < sourceKeys.length; i4++) {\n key = sourceKeys[i4];\n if (excluded.indexOf(key) >= 0)\n continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _unsupportedIterableToArray2(o4, minLen) {\n if (!o4)\n return;\n if (typeof o4 === \"string\")\n return _arrayLikeToArray2(o4, minLen);\n var n4 = Object.prototype.toString.call(o4).slice(8, -1);\n if (n4 === \"Object\" && o4.constructor)\n n4 = o4.constructor.name;\n if (n4 === \"Map\" || n4 === \"Set\")\n return Array.from(o4);\n if (n4 === \"Arguments\" || \/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$\/.test(n4))\n return _arrayLikeToArray2(o4, minLen);\n}\nfunction _arrayLikeToArray2(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i4 = 0, arr2 = new Array(len); i4 < len; i4++)\n arr2[i4] = arr[i4];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose2(o4, allowArrayLike) {\n var it2 = typeof Symbol !== \"undefined\" && o4[Symbol.iterator] || o4[\"@@iterator\"];\n if (it2)\n return (it2 = it2.call(o4)).next.bind(it2);\n if (Array.isArray(o4) || (it2 = _unsupportedIterableToArray2(o4)) || allowArrayLike && o4 && typeof o4.length === \"number\") {\n if (it2)\n o4 = it2;\n var i4 = 0;\n return function() {\n if (i4 >= o4.length)\n return {\n done: true\n };\n return {\n done: false,\n value: o4[i4++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar _excluded2 = [\"children\"];\nfunction omit(keys, obj) {\n var result = {};\n var index3 = {};\n var idx = 0;\n var len = keys.length;\n while (idx < len) {\n index3[keys[idx]] = 1;\n idx += 1;\n }\n for (var prop in obj) {\n if (!index3.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n}\nvar useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? import_react65.useLayoutEffect : import_react65.useEffect;\nfunction systemToComponent(systemSpec, map3, Root) {\n var requiredPropNames = Object.keys(map3.required || {});\n var optionalPropNames = Object.keys(map3.optional || {});\n var methodNames = Object.keys(map3.methods || {});\n var eventNames = Object.keys(map3.events || {});\n var Context = (0, import_react65.createContext)({});\n function applyPropsToSystem(system2, props) {\n if (system2[\"propsReady\"]) {\n publish(system2[\"propsReady\"], false);\n }\n for (var _iterator = _createForOfIteratorHelperLoose2(requiredPropNames), _step; !(_step = _iterator()).done; ) {\n var requiredPropName = _step.value;\n var stream2 = system2[map3.required[requiredPropName]];\n publish(stream2, props[requiredPropName]);\n }\n for (var _iterator2 = _createForOfIteratorHelperLoose2(optionalPropNames), _step2; !(_step2 = _iterator2()).done; ) {\n var optionalPropName = _step2.value;\n if (optionalPropName in props) {\n var _stream = system2[map3.optional[optionalPropName]];\n publish(_stream, props[optionalPropName]);\n }\n }\n if (system2[\"propsReady\"]) {\n publish(system2[\"propsReady\"], true);\n }\n }\n function buildMethods(system2) {\n return methodNames.reduce(function(acc, methodName) {\n acc[methodName] = function(value) {\n var stream2 = system2[map3.methods[methodName]];\n publish(stream2, value);\n };\n return acc;\n }, {});\n }\n function buildEventHandlers(system2) {\n return eventNames.reduce(function(handlers, eventName) {\n handlers[eventName] = eventHandler(system2[map3.events[eventName]]);\n return handlers;\n }, {});\n }\n var Component = (0, import_react65.forwardRef)(function(propsWithChildren, ref) {\n var children = propsWithChildren.children, props = _objectWithoutPropertiesLoose2(propsWithChildren, _excluded2);\n var _useState = (0, import_react65.useState)(function() {\n return tap(init(systemSpec), function(system3) {\n return applyPropsToSystem(system3, props);\n });\n }), system2 = _useState[0];\n var _useState2 = (0, import_react65.useState)(curry1to0(buildEventHandlers, system2)), handlers = _useState2[0];\n useIsomorphicLayoutEffect(function() {\n for (var _iterator3 = _createForOfIteratorHelperLoose2(eventNames), _step3; !(_step3 = _iterator3()).done; ) {\n var eventName = _step3.value;\n if (eventName in props) {\n subscribe(handlers[eventName], props[eventName]);\n }\n }\n return function() {\n Object.values(handlers).map(reset);\n };\n }, [props, handlers, system2]);\n useIsomorphicLayoutEffect(function() {\n applyPropsToSystem(system2, props);\n });\n (0, import_react65.useImperativeHandle)(ref, always(buildMethods(system2)));\n return (0, import_react65.createElement)(Context.Provider, {\n value: system2\n }, Root ? (0, import_react65.createElement)(Root, omit([].concat(requiredPropNames, optionalPropNames, eventNames), props), children) : children);\n });\n var usePublisher = function usePublisher2(key) {\n return (0, import_react65.useCallback)(curry2to1(publish, (0, import_react65.useContext)(Context)[key]), [key]);\n };\n var useEmitterValue = function useEmitterValue2(key) {\n var context = (0, import_react65.useContext)(Context);\n var source = context[key];\n var _useState3 = (0, import_react65.useState)(curry1to0(getValue, source)), value = _useState3[0], setValue = _useState3[1];\n useIsomorphicLayoutEffect(function() {\n return subscribe(source, function(next) {\n if (next !== value) {\n setValue(always(next));\n }\n });\n }, [source, value]);\n return value;\n };\n var useEmitter = function useEmitter2(key, callback) {\n var context = (0, import_react65.useContext)(Context);\n var source = context[key];\n useIsomorphicLayoutEffect(function() {\n return subscribe(source, callback);\n }, [callback, source]);\n };\n return {\n Component,\n usePublisher,\n useEmitterValue,\n useEmitter\n };\n}\n\n\/\/ ..\/..\/node_modules\/react-virtuoso\/dist\/index.m.js\nvar n3 = __toESM(require(\"react\"));\nvar import_react66 = require(\"react\");\nvar import_react_dom11 = require(\"react-dom\");\nfunction c3() {\n return c3 = Object.assign || function(e2) {\n for (var t2 = 1; t2 < arguments.length; t2++) {\n var n4 = arguments[t2];\n for (var o4 in n4)\n Object.prototype.hasOwnProperty.call(n4, o4) && (e2[o4] = n4[o4]);\n }\n return e2;\n }, c3.apply(this, arguments);\n}\nfunction m3(e2, t2) {\n if (null == e2)\n return {};\n var n4, o4, r4 = {}, i4 = Object.keys(e2);\n for (o4 = 0; o4 < i4.length; o4++)\n t2.indexOf(n4 = i4[o4]) >= 0 || (r4[n4] = e2[n4]);\n return r4;\n}\nfunction d3(e2, t2) {\n (null == t2 || t2 > e2.length) && (t2 = e2.length);\n for (var n4 = 0, o4 = new Array(t2); n4 < t2; n4++)\n o4[n4] = e2[n4];\n return o4;\n}\nfunction f3(e2, t2) {\n var n4 = \"undefined\" != typeof Symbol && e2[Symbol.iterator] || e2[\"@@iterator\"];\n if (n4)\n return (n4 = n4.call(e2)).next.bind(n4);\n if (Array.isArray(e2) || (n4 = function(e3, t3) {\n if (e3) {\n if (\"string\" == typeof e3)\n return d3(e3, t3);\n var n5 = Object.prototype.toString.call(e3).slice(8, -1);\n return \"Object\" === n5 && e3.constructor && (n5 = e3.constructor.name), \"Map\" === n5 || \"Set\" === n5 ? Array.from(e3) : \"Arguments\" === n5 || \/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$\/.test(n5) ? d3(e3, t3) : void 0;\n }\n }(e2)) || t2 && e2 && \"number\" == typeof e2.length) {\n n4 && (e2 = n4);\n var o4 = 0;\n return function() {\n return o4 >= e2.length ? { done: true } : { done: false, value: e2[o4++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar p3;\nvar h3;\nvar g3 = \"undefined\" != typeof document ? import_react66.useLayoutEffect : import_react66.useEffect;\n!function(e2) {\n e2[e2.DEBUG = 0] = \"DEBUG\", e2[e2.INFO = 1] = \"INFO\", e2[e2.WARN = 2] = \"WARN\", e2[e2.ERROR = 3] = \"ERROR\";\n}(h3 || (h3 = {}));\nvar v3 = ((p3 = {})[h3.DEBUG] = \"debug\", p3[h3.INFO] = \"log\", p3[h3.WARN] = \"warn\", p3[h3.ERROR] = \"error\", p3);\nvar S2 = system(function() {\n var e2 = statefulStream(h3.ERROR);\n return { log: statefulStream(function(n4, o4, r4) {\n var i4;\n void 0 === r4 && (r4 = h3.INFO), r4 >= (null != (i4 = (\"undefined\" == typeof globalThis ? window : globalThis).VIRTUOSO_LOG_LEVEL) ? i4 : getValue(e2)) && console[v3[r4]](\"%creact-virtuoso: %c%s %o\", \"color: #0253b3; font-weight: bold\", \"color: initial\", n4, o4);\n }), logLevel: e2 };\n}, [], { singleton: true });\nfunction C2(e2, t2) {\n void 0 === t2 && (t2 = true);\n var n4 = (0, import_react66.useRef)(null), o4 = function(e3) {\n };\n if (\"undefined\" != typeof ResizeObserver) {\n var r4 = new ResizeObserver(function(t3) {\n var n5 = t3[0].target;\n null !== n5.offsetParent && e2(n5);\n });\n o4 = function(e3) {\n e3 && t2 ? (r4.observe(e3), n4.current = e3) : (n4.current && r4.unobserve(n4.current), n4.current = null);\n };\n }\n return { ref: n4, callbackRef: o4 };\n}\nfunction I(e2, t2) {\n return void 0 === t2 && (t2 = true), C2(e2, t2).callbackRef;\n}\nfunction T3(e2, t2, n4, o4, r4, i4, a5) {\n return C2(function(n5) {\n for (var l5 = function(e3, t3, n6, o5) {\n var r5 = e3.length;\n if (0 === r5)\n return null;\n for (var i5 = [], a6 = 0; a6 < r5; a6++) {\n var l6 = e3.item(a6);\n if (l6 && void 0 !== l6.dataset.index) {\n var s5 = parseInt(l6.dataset.index), u5 = parseFloat(l6.dataset.knownSize), c5 = t3(l6, \"offsetHeight\");\n if (0 === c5 && o5(\"Zero-sized element, this should not happen\", { child: l6 }, h3.ERROR), c5 !== u5) {\n var m5 = i5[i5.length - 1];\n 0 === i5.length || m5.size !== c5 || m5.endIndex !== s5 - 1 ? i5.push({ startIndex: s5, endIndex: s5, size: c5 }) : i5[i5.length - 1].endIndex++;\n }\n }\n }\n return i5;\n }(n5.children, t2, 0, r4), s4 = n5.parentElement; !s4.dataset.virtuosoScroller; )\n s4 = s4.parentElement;\n var u4 = \"window\" === s4.firstElementChild.dataset.viewportType, c4 = a5 ? a5.scrollTop : u4 ? window.pageYOffset || document.documentElement.scrollTop : s4.scrollTop, m4 = a5 ? a5.scrollHeight : u4 ? document.documentElement.scrollHeight : s4.scrollHeight, d4 = a5 ? a5.offsetHeight : u4 ? window.innerHeight : s4.offsetHeight;\n o4({ scrollTop: Math.max(c4, 0), scrollHeight: m4, viewportHeight: d4 }), null == i4 || i4(function(e3, t3, n6) {\n return \"normal\" === t3 || null != t3 && t3.endsWith(\"px\") || n6(\"row-gap was not resolved to pixel value correctly\", t3, h3.WARN), \"normal\" === t3 ? 0 : parseInt(null != t3 ? t3 : \"0\", 10);\n }(0, getComputedStyle(n5).rowGap, r4)), null !== l5 && e2(l5);\n }, n4);\n}\nfunction w3(e2, t2) {\n return Math.round(e2.getBoundingClientRect()[t2]);\n}\nfunction x3(e2, t2) {\n return Math.abs(e2 - t2) < 1.01;\n}\nfunction b3(e2, n4, o4, l5, s4) {\n void 0 === l5 && (l5 = noop4);\n var c4 = (0, import_react66.useRef)(null), m4 = (0, import_react66.useRef)(null), d4 = (0, import_react66.useRef)(null), f4 = (0, import_react66.useRef)(false), p4 = (0, import_react66.useCallback)(function(t2) {\n var o5 = t2.target, r4 = o5 === window || o5 === document, i4 = r4 ? window.pageYOffset || document.documentElement.scrollTop : o5.scrollTop, a5 = r4 ? document.documentElement.scrollHeight : o5.scrollHeight, l6 = r4 ? window.innerHeight : o5.offsetHeight, s5 = function() {\n e2({ scrollTop: Math.max(i4, 0), scrollHeight: a5, viewportHeight: l6 });\n };\n f4.current ? (0, import_react_dom11.flushSync)(s5) : s5(), f4.current = false, null !== m4.current && (i4 === m4.current || i4 <= 0 || i4 === a5 - l6) && (m4.current = null, n4(true), d4.current && (clearTimeout(d4.current), d4.current = null));\n }, [e2, n4]);\n return (0, import_react66.useEffect)(function() {\n var e3 = s4 || c4.current;\n return l5(s4 || c4.current), p4({ target: e3 }), e3.addEventListener(\"scroll\", p4, { passive: true }), function() {\n l5(null), e3.removeEventListener(\"scroll\", p4);\n };\n }, [c4, p4, o4, l5, s4]), { scrollerRef: c4, scrollByCallback: function(e3) {\n f4.current = true, c4.current.scrollBy(e3);\n }, scrollToCallback: function(t2) {\n var o5 = c4.current;\n if (o5 && (!(\"offsetHeight\" in o5) || 0 !== o5.offsetHeight)) {\n var r4, i4, a5, l6 = \"smooth\" === t2.behavior;\n if (o5 === window ? (i4 = Math.max(w3(document.documentElement, \"height\"), document.documentElement.scrollHeight), r4 = window.innerHeight, a5 = document.documentElement.scrollTop) : (i4 = o5.scrollHeight, r4 = w3(o5, \"height\"), a5 = o5.scrollTop), t2.top = Math.ceil(Math.max(Math.min(i4 - r4, t2.top), 0)), x3(r4, i4) || t2.top === a5)\n return e2({ scrollTop: a5, scrollHeight: i4, viewportHeight: r4 }), void (l6 && n4(true));\n l6 ? (m4.current = t2.top, d4.current && clearTimeout(d4.current), d4.current = setTimeout(function() {\n d4.current = null, m4.current = null, n4(true);\n }, 1e3)) : m4.current = null, o5.scrollTo(t2);\n }\n } };\n}\nvar y3 = system(function() {\n var e2 = stream(), n4 = stream(), o4 = statefulStream(0), r4 = stream(), i4 = statefulStream(0), a5 = stream(), l5 = stream(), s4 = statefulStream(0), u4 = statefulStream(0), c4 = statefulStream(0), m4 = statefulStream(0), d4 = stream(), f4 = stream(), p4 = statefulStream(false), h4 = statefulStream(false);\n return connect(pipe(e2, map2(function(e3) {\n return e3.scrollTop;\n })), n4), connect(pipe(e2, map2(function(e3) {\n return e3.scrollHeight;\n })), l5), connect(n4, i4), { scrollContainerState: e2, scrollTop: n4, viewportHeight: a5, headerHeight: s4, fixedHeaderHeight: u4, fixedFooterHeight: c4, footerHeight: m4, scrollHeight: l5, smoothScrollTargetReached: r4, react18ConcurrentRendering: h4, scrollTo: d4, scrollBy: f4, statefulScrollTop: i4, deviation: o4, scrollingInProgress: p4 };\n}, [], { singleton: true });\nvar H2 = { lvl: 0 };\nfunction E3(e2, t2, n4, o4, r4) {\n return void 0 === o4 && (o4 = H2), void 0 === r4 && (r4 = H2), { k: e2, v: t2, lvl: n4, l: o4, r: r4 };\n}\nfunction R3(e2) {\n return e2 === H2;\n}\nfunction L3() {\n return H2;\n}\nfunction F(e2, t2) {\n if (R3(e2))\n return H2;\n var n4 = e2.k, o4 = e2.l, r4 = e2.r;\n if (t2 === n4) {\n if (R3(o4))\n return r4;\n if (R3(r4))\n return o4;\n var i4 = O2(o4);\n return U(W2(e2, { k: i4[0], v: i4[1], l: M(o4) }));\n }\n return U(W2(e2, t2 < n4 ? { l: F(o4, t2) } : { r: F(r4, t2) }));\n}\nfunction k2(e2, t2, n4) {\n if (void 0 === n4 && (n4 = \"k\"), R3(e2))\n return [-Infinity, void 0];\n if (e2[n4] === t2)\n return [e2.k, e2.v];\n if (e2[n4] < t2) {\n var o4 = k2(e2.r, t2, n4);\n return -Infinity === o4[0] ? [e2.k, e2.v] : o4;\n }\n return k2(e2.l, t2, n4);\n}\nfunction z2(e2, t2, n4) {\n return R3(e2) ? E3(t2, n4, 1) : t2 === e2.k ? W2(e2, { k: t2, v: n4 }) : function(e3) {\n return D3(G(e3));\n }(W2(e2, t2 < e2.k ? { l: z2(e2.l, t2, n4) } : { r: z2(e2.r, t2, n4) }));\n}\nfunction B(e2, t2, n4) {\n if (R3(e2))\n return [];\n var o4 = e2.k, r4 = e2.v, i4 = e2.r, a5 = [];\n return o4 > t2 && (a5 = a5.concat(B(e2.l, t2, n4))), o4 >= t2 && o4 <= n4 && a5.push({ k: o4, v: r4 }), o4 <= n4 && (a5 = a5.concat(B(i4, t2, n4))), a5;\n}\nfunction P2(e2) {\n return R3(e2) ? [] : [].concat(P2(e2.l), [{ k: e2.k, v: e2.v }], P2(e2.r));\n}\nfunction O2(e2) {\n return R3(e2.r) ? [e2.k, e2.v] : O2(e2.r);\n}\nfunction M(e2) {\n return R3(e2.r) ? e2.l : U(W2(e2, { r: M(e2.r) }));\n}\nfunction W2(e2, t2) {\n return E3(void 0 !== t2.k ? t2.k : e2.k, void 0 !== t2.v ? t2.v : e2.v, void 0 !== t2.lvl ? t2.lvl : e2.lvl, void 0 !== t2.l ? t2.l : e2.l, void 0 !== t2.r ? t2.r : e2.r);\n}\nfunction V2(e2) {\n return R3(e2) || e2.lvl > e2.r.lvl;\n}\nfunction U(e2) {\n var t2 = e2.l, n4 = e2.r, o4 = e2.lvl;\n if (n4.lvl >= o4 - 1 && t2.lvl >= o4 - 1)\n return e2;\n if (o4 > n4.lvl + 1) {\n if (V2(t2))\n return G(W2(e2, { lvl: o4 - 1 }));\n if (R3(t2) || R3(t2.r))\n throw new Error(\"Unexpected empty nodes\");\n return W2(t2.r, { l: W2(t2, { r: t2.r.l }), r: W2(e2, { l: t2.r.r, lvl: o4 - 1 }), lvl: o4 });\n }\n if (V2(e2))\n return D3(W2(e2, { lvl: o4 - 1 }));\n if (R3(n4) || R3(n4.l))\n throw new Error(\"Unexpected empty nodes\");\n var r4 = n4.l, i4 = V2(r4) ? n4.lvl - 1 : n4.lvl;\n return W2(r4, { l: W2(e2, { r: r4.l, lvl: o4 - 1 }), r: D3(W2(n4, { l: r4.r, lvl: i4 })), lvl: r4.lvl + 1 });\n}\nfunction A2(e2, t2, n4) {\n return R3(e2) ? [] : N2(B(e2, k2(e2, t2)[0], n4), function(e3) {\n return { index: e3.k, value: e3.v };\n });\n}\nfunction N2(e2, t2) {\n var n4 = e2.length;\n if (0 === n4)\n return [];\n for (var o4 = t2(e2[0]), r4 = o4.index, i4 = o4.value, a5 = [], l5 = 1; l5 < n4; l5++) {\n var s4 = t2(e2[l5]), u4 = s4.index, c4 = s4.value;\n a5.push({ start: r4, end: u4 - 1, value: i4 }), r4 = u4, i4 = c4;\n }\n return a5.push({ start: r4, end: Infinity, value: i4 }), a5;\n}\nfunction D3(e2) {\n var t2 = e2.r, n4 = e2.lvl;\n return R3(t2) || R3(t2.r) || t2.lvl !== n4 || t2.r.lvl !== n4 ? e2 : W2(t2, { l: W2(e2, { r: t2.l }), lvl: n4 + 1 });\n}\nfunction G(e2) {\n var t2 = e2.l;\n return R3(t2) || t2.lvl !== e2.lvl ? e2 : W2(t2, { r: W2(e2, { l: t2.r }) });\n}\nfunction _(e2, t2, n4, o4) {\n void 0 === o4 && (o4 = 0);\n for (var r4 = e2.length - 1; o4 <= r4; ) {\n var i4 = Math.floor((o4 + r4) \/ 2), a5 = n4(e2[i4], t2);\n if (0 === a5)\n return i4;\n if (-1 === a5) {\n if (r4 - o4 < 2)\n return i4 - 1;\n r4 = i4 - 1;\n } else {\n if (r4 === o4)\n return i4;\n o4 = i4 + 1;\n }\n }\n throw new Error(\"Failed binary finding record in array - \" + e2.join(\",\") + \", searched for \" + t2);\n}\nfunction j(e2, t2, n4) {\n return e2[_(e2, t2, n4)];\n}\nvar K = system(function() {\n return { recalcInProgress: statefulStream(false) };\n}, [], { singleton: true });\nfunction Y(e2) {\n var t2 = e2.size, n4 = e2.startIndex, o4 = e2.endIndex;\n return function(e3) {\n return e3.start === n4 && (e3.end === o4 || Infinity === e3.end) && e3.value === t2;\n };\n}\nfunction q(e2, t2) {\n var n4 = e2.index;\n return t2 === n4 ? 0 : t2 < n4 ? -1 : 1;\n}\nfunction Z(e2, t2) {\n var n4 = e2.offset;\n return t2 === n4 ? 0 : t2 < n4 ? -1 : 1;\n}\nfunction J(e2) {\n return { index: e2.index, value: e2 };\n}\nfunction $(e2, t2, n4, o4) {\n var r4 = e2, i4 = 0, a5 = 0, l5 = 0, s4 = 0;\n if (0 !== t2) {\n l5 = r4[s4 = _(r4, t2 - 1, q)].offset;\n var u4 = k2(n4, t2 - 1);\n i4 = u4[0], a5 = u4[1], r4.length && r4[s4].size === k2(n4, t2)[1] && (s4 -= 1), r4 = r4.slice(0, s4 + 1);\n } else\n r4 = [];\n for (var c4, m4 = f3(A2(n4, t2, Infinity)); !(c4 = m4()).done; ) {\n var d4 = c4.value, p4 = d4.start, h4 = d4.value, g4 = p4 - i4, v4 = g4 * a5 + l5 + g4 * o4;\n r4.push({ offset: v4, size: h4, index: p4 }), i4 = p4, l5 = v4, a5 = h4;\n }\n return { offsetTree: r4, lastIndex: i4, lastOffset: l5, lastSize: a5 };\n}\nfunction Q(e2, t2) {\n var n4 = t2[0], o4 = t2[1], r4 = t2[3];\n n4.length > 0 && (0, t2[2])(\"received item sizes\", n4, h3.DEBUG);\n var i4 = e2.sizeTree, a5 = i4, l5 = 0;\n if (o4.length > 0 && R3(i4) && 2 === n4.length) {\n var s4 = n4[0].size, u4 = n4[1].size;\n a5 = o4.reduce(function(e3, t3) {\n return z2(z2(e3, t3, s4), t3 + 1, u4);\n }, a5);\n } else {\n var c4 = function(e3, t3) {\n for (var n5, o5 = R3(e3) ? 0 : Infinity, r5 = f3(t3); !(n5 = r5()).done; ) {\n var i5 = n5.value, a6 = i5.size, l6 = i5.startIndex, s5 = i5.endIndex;\n if (o5 = Math.min(o5, l6), R3(e3))\n e3 = z2(e3, 0, a6);\n else {\n var u5 = A2(e3, l6 - 1, s5 + 1);\n if (!u5.some(Y(i5))) {\n for (var c5, m5 = false, d5 = false, p4 = f3(u5); !(c5 = p4()).done; ) {\n var h4 = c5.value, g4 = h4.start, v4 = h4.end, S3 = h4.value;\n m5 ? (s5 >= g4 || a6 === S3) && (e3 = F(e3, g4)) : (d5 = S3 !== a6, m5 = true), v4 > s5 && s5 >= g4 && S3 !== a6 && (e3 = z2(e3, s5 + 1, S3));\n }\n d5 && (e3 = z2(e3, l6, a6));\n }\n }\n }\n return [e3, o5];\n }(a5, n4);\n a5 = c4[0], l5 = c4[1];\n }\n if (a5 === i4)\n return e2;\n var m4 = $(e2.offsetTree, l5, a5, r4), d4 = m4.offsetTree;\n return { sizeTree: a5, offsetTree: d4, lastIndex: m4.lastIndex, lastOffset: m4.lastOffset, lastSize: m4.lastSize, groupOffsetTree: o4.reduce(function(e3, t3) {\n return z2(e3, t3, X(t3, d4, r4));\n }, L3()), groupIndices: o4 };\n}\nfunction X(e2, t2, n4) {\n if (0 === t2.length)\n return 0;\n var o4 = j(t2, e2, q), r4 = e2 - o4.index, i4 = o4.size * r4 + (r4 - 1) * n4 + o4.offset;\n return i4 > 0 ? i4 + n4 : i4;\n}\nfunction ee(e2, t2, n4) {\n if (function(e3) {\n return void 0 !== e3.groupIndex;\n }(e2))\n return t2.groupIndices[e2.groupIndex] + 1;\n var o4 = te(\"LAST\" === e2.index ? n4 : e2.index, t2);\n return Math.max(0, o4, Math.min(n4, o4));\n}\nfunction te(e2, t2) {\n if (!ne(t2))\n return e2;\n for (var n4 = 0; t2.groupIndices[n4] <= e2 + n4; )\n n4++;\n return e2 + n4;\n}\nfunction ne(e2) {\n return !R3(e2.groupOffsetTree);\n}\nvar oe = { offsetHeight: \"height\", offsetWidth: \"width\" };\nvar re = system(function(e2) {\n var n4 = e2[0].log, o4 = e2[1].recalcInProgress, r4 = stream(), i4 = stream(), a5 = statefulStreamFromEmitter(i4, 0), l5 = stream(), s4 = stream(), u4 = statefulStream(0), m4 = statefulStream([]), d4 = statefulStream(void 0), f4 = statefulStream(void 0), p4 = statefulStream(function(e3, t2) {\n return w3(e3, oe[t2]);\n }), g4 = statefulStream(void 0), v4 = statefulStream(0), S3 = { offsetTree: [], sizeTree: L3(), groupOffsetTree: L3(), lastIndex: 0, lastOffset: 0, lastSize: 0, groupIndices: [] }, C4 = statefulStreamFromEmitter(pipe(r4, withLatestFrom(m4, n4, v4), scan(Q, S3), distinctUntilChanged()), S3);\n connect(pipe(m4, filter(function(e3) {\n return e3.length > 0;\n }), withLatestFrom(C4, v4), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2], r5 = t2.reduce(function(e4, t3, r6) {\n return z2(e4, t3, X(t3, n5.offsetTree, o5) || r6);\n }, L3());\n return c3({}, n5, { groupIndices: t2, groupOffsetTree: r5 });\n })), C4), connect(pipe(i4, withLatestFrom(C4), filter(function(e3) {\n return e3[0] < e3[1].lastIndex;\n }), map2(function(e3) {\n var t2 = e3[1];\n return [{ startIndex: e3[0], endIndex: t2.lastIndex, size: t2.lastSize }];\n })), r4), connect(d4, f4);\n var I2 = statefulStreamFromEmitter(pipe(d4, map2(function(e3) {\n return void 0 === e3;\n })), true);\n connect(pipe(f4, filter(function(e3) {\n return void 0 !== e3 && R3(getValue(C4).sizeTree);\n }), map2(function(e3) {\n return [{ startIndex: 0, endIndex: 0, size: e3 }];\n })), r4);\n var T4 = streamFromEmitter(pipe(r4, withLatestFrom(C4), scan(function(e3, t2) {\n var n5 = t2[1];\n return { changed: n5 !== e3.sizes, sizes: n5 };\n }, { changed: false, sizes: S3 }), map2(function(e3) {\n return e3.changed;\n })));\n subscribe(pipe(u4, scan(function(e3, t2) {\n return { diff: e3.prev - t2, prev: t2 };\n }, { diff: 0, prev: 0 }), map2(function(e3) {\n return e3.diff;\n })), function(e3) {\n e3 > 0 ? (publish(o4, true), publish(l5, e3)) : e3 < 0 && publish(s4, e3);\n }), subscribe(pipe(u4, withLatestFrom(n4)), function(e3) {\n e3[0] < 0 && (0, e3[1])(\"`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value\", { firstItemIndex: u4 }, h3.ERROR);\n });\n var x4 = streamFromEmitter(l5);\n connect(pipe(l5, withLatestFrom(C4), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1];\n if (n5.groupIndices.length > 0)\n throw new Error(\"Virtuoso: prepending items does not work with groups\");\n return P2(n5.sizeTree).reduce(function(e4, n6) {\n var o5 = n6.k, r5 = n6.v;\n return { ranges: [].concat(e4.ranges, [{ startIndex: e4.prevIndex, endIndex: o5 + t2 - 1, size: e4.prevSize }]), prevIndex: o5 + t2, prevSize: r5 };\n }, { ranges: [], prevIndex: 0, prevSize: n5.lastSize }).ranges;\n })), r4);\n var b5 = streamFromEmitter(pipe(s4, withLatestFrom(C4, v4), map2(function(e3) {\n return X(-e3[0], e3[1].offsetTree, e3[2]);\n })));\n return connect(pipe(s4, withLatestFrom(C4, v4), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2];\n if (n5.groupIndices.length > 0)\n throw new Error(\"Virtuoso: shifting items does not work with groups\");\n var r5 = P2(n5.sizeTree).reduce(function(e4, n6) {\n var o6 = n6.v;\n return z2(e4, Math.max(0, n6.k + t2), o6);\n }, L3());\n return c3({}, n5, { sizeTree: r5 }, $(n5.offsetTree, 0, r5, o5));\n })), C4), { data: g4, totalCount: i4, sizeRanges: r4, groupIndices: m4, defaultItemSize: f4, fixedItemSize: d4, unshiftWith: l5, shiftWith: s4, shiftWithOffset: b5, beforeUnshiftWith: x4, firstItemIndex: u4, gap: v4, sizes: C4, listRefresh: T4, statefulTotalCount: a5, trackItemSizes: I2, itemSize: p4 };\n}, tup(S2, K), { singleton: true });\nvar ie = \"undefined\" != typeof document && \"scrollBehavior\" in document.documentElement.style;\nfunction ae(e2) {\n var t2 = \"number\" == typeof e2 ? { index: e2 } : e2;\n return t2.align || (t2.align = \"start\"), t2.behavior && ie || (t2.behavior = \"auto\"), t2.offset || (t2.offset = 0), t2;\n}\nvar le = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.totalCount, i4 = n4.listRefresh, a5 = n4.gap, l5 = e2[1], s4 = l5.scrollingInProgress, u4 = l5.viewportHeight, c4 = l5.scrollTo, m4 = l5.smoothScrollTargetReached, d4 = l5.headerHeight, f4 = l5.footerHeight, p4 = l5.fixedHeaderHeight, g4 = l5.fixedFooterHeight, v4 = e2[2].log, S3 = stream(), C4 = statefulStream(0), I2 = null, T4 = null, w4 = null;\n function x4() {\n I2 && (I2(), I2 = null), w4 && (w4(), w4 = null), T4 && (clearTimeout(T4), T4 = null), publish(s4, false);\n }\n return connect(pipe(S3, withLatestFrom(o4, u4, r4, C4, d4, f4, v4), withLatestFrom(a5, p4, g4), map2(function(e3) {\n var n5 = e3[0], o5 = n5[0], r5 = n5[1], a6 = n5[2], l6 = n5[3], u5 = n5[4], c5 = n5[5], d5 = n5[6], f5 = n5[7], p5 = e3[1], g5 = e3[2], v5 = e3[3], C5 = ae(o5), b5 = C5.align, y4 = C5.behavior, H3 = C5.offset, E4 = l6 - 1, R5 = ee(C5, r5, E4), L5 = X(R5, r5.offsetTree, p5) + c5;\n \"end\" === b5 ? (L5 += g5 + k2(r5.sizeTree, R5)[1] - a6 + v5, R5 === E4 && (L5 += d5)) : \"center\" === b5 ? L5 += (g5 + k2(r5.sizeTree, R5)[1] - a6 + v5) \/ 2 : L5 -= u5, H3 && (L5 += H3);\n var F2 = function(e4) {\n x4(), e4 ? (f5(\"retrying to scroll to\", { location: o5 }, h3.DEBUG), publish(S3, o5)) : f5(\"list did not change, scroll successful\", {}, h3.DEBUG);\n };\n if (x4(), \"smooth\" === y4) {\n var z3 = false;\n w4 = subscribe(i4, function(e4) {\n z3 = z3 || e4;\n }), I2 = handleNext(m4, function() {\n F2(z3);\n });\n } else\n I2 = handleNext(pipe(i4, function(e4) {\n var t2 = setTimeout(function() {\n e4(false);\n }, 150);\n return function(n6) {\n n6 && (e4(true), clearTimeout(t2));\n };\n }), F2);\n return T4 = setTimeout(function() {\n x4();\n }, 1200), publish(s4, true), f5(\"scrolling from index to\", { index: R5, top: L5, behavior: y4 }, h3.DEBUG), { top: L5, behavior: y4 };\n })), c4), { scrollToIndex: S3, topListHeight: C4 };\n}, tup(re, y3, S2), { singleton: true });\nvar se = \"up\";\nvar ue = { atBottom: false, notAtBottomBecause: \"NOT_SHOWING_LAST_ITEM\", state: { offsetBottom: 0, scrollTop: 0, viewportHeight: 0, scrollHeight: 0 } };\nvar ce = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollContainerState, r4 = n4.scrollTop, i4 = n4.viewportHeight, a5 = n4.headerHeight, l5 = n4.footerHeight, s4 = n4.scrollBy, u4 = statefulStream(false), c4 = statefulStream(true), m4 = stream(), d4 = stream(), f4 = statefulStream(4), p4 = statefulStream(0), h4 = statefulStreamFromEmitter(pipe(merge(pipe(duc(r4), skip(1), mapTo(true)), pipe(duc(r4), skip(1), mapTo(false), debounceTime(100))), distinctUntilChanged()), false), g4 = statefulStreamFromEmitter(pipe(merge(pipe(s4, mapTo(true)), pipe(s4, mapTo(false), debounceTime(200))), distinctUntilChanged()), false);\n connect(pipe(combineLatest(duc(r4), duc(p4)), map2(function(e3) {\n return e3[0] <= e3[1];\n }), distinctUntilChanged()), c4), connect(pipe(c4, throttleTime(50)), d4);\n var v4 = streamFromEmitter(pipe(combineLatest(o4, duc(i4), duc(a5), duc(l5), duc(f4)), scan(function(e3, t2) {\n var n5, o5, r5 = t2[0], i5 = r5.scrollTop, a6 = r5.scrollHeight, l6 = t2[1], s5 = { viewportHeight: l6, scrollTop: i5, scrollHeight: a6 };\n return i5 + l6 - a6 > -t2[4] ? (i5 > e3.state.scrollTop ? (n5 = \"SCROLLED_DOWN\", o5 = e3.state.scrollTop - i5) : (n5 = \"SIZE_DECREASED\", o5 = e3.state.scrollTop - i5 || e3.scrollTopDelta), { atBottom: true, state: s5, atBottomBecause: n5, scrollTopDelta: o5 }) : { atBottom: false, notAtBottomBecause: s5.scrollHeight > e3.state.scrollHeight ? \"SIZE_INCREASED\" : l6 < e3.state.viewportHeight ? \"VIEWPORT_HEIGHT_DECREASING\" : i5 < e3.state.scrollTop ? \"SCROLLING_UPWARDS\" : \"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM\", state: s5 };\n }, ue), distinctUntilChanged(function(e3, t2) {\n return e3 && e3.atBottom === t2.atBottom;\n }))), S3 = statefulStreamFromEmitter(pipe(o4, scan(function(e3, t2) {\n var n5 = t2.scrollTop, o5 = t2.scrollHeight, r5 = t2.viewportHeight;\n return x3(e3.scrollHeight, o5) ? { scrollTop: n5, scrollHeight: o5, jump: 0, changed: false } : e3.scrollTop !== n5 && o5 - (n5 + r5) < 1 ? { scrollHeight: o5, scrollTop: n5, jump: e3.scrollTop - n5, changed: true } : { scrollHeight: o5, scrollTop: n5, jump: 0, changed: true };\n }, { scrollHeight: 0, jump: 0, scrollTop: 0, changed: false }), filter(function(e3) {\n return e3.changed;\n }), map2(function(e3) {\n return e3.jump;\n })), 0);\n connect(pipe(v4, map2(function(e3) {\n return e3.atBottom;\n })), u4), connect(pipe(u4, throttleTime(50)), m4);\n var C4 = statefulStream(\"down\");\n connect(pipe(o4, map2(function(e3) {\n return e3.scrollTop;\n }), distinctUntilChanged(), scan(function(e3, n5) {\n return getValue(g4) ? { direction: e3.direction, prevScrollTop: n5 } : { direction: n5 < e3.prevScrollTop ? se : \"down\", prevScrollTop: n5 };\n }, { direction: \"down\", prevScrollTop: 0 }), map2(function(e3) {\n return e3.direction;\n })), C4), connect(pipe(o4, throttleTime(50), mapTo(\"none\")), C4);\n var I2 = statefulStream(0);\n return connect(pipe(h4, filter(function(e3) {\n return !e3;\n }), mapTo(0)), I2), connect(pipe(r4, throttleTime(100), withLatestFrom(h4), filter(function(e3) {\n return !!e3[1];\n }), scan(function(e3, t2) {\n return [e3[1], t2[0]];\n }, [0, 0]), map2(function(e3) {\n return e3[1] - e3[0];\n })), I2), { isScrolling: h4, isAtTop: c4, isAtBottom: u4, atBottomState: v4, atTopStateChange: d4, atBottomStateChange: m4, scrollDirection: C4, atBottomThreshold: f4, atTopThreshold: p4, scrollVelocity: I2, lastJumpDueToItemResize: S3 };\n}, tup(y3));\nvar me = system(function(e2) {\n var n4 = e2[0].log, o4 = statefulStream(false), r4 = streamFromEmitter(pipe(o4, filter(function(e3) {\n return e3;\n }), distinctUntilChanged()));\n return subscribe(o4, function(e3) {\n e3 && getValue(n4)(\"props updated\", {}, h3.DEBUG);\n }), { propsReady: o4, didMount: r4 };\n}, tup(S2), { singleton: true });\nvar de = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.listRefresh, i4 = n4.defaultItemSize, a5 = e2[1].scrollTop, l5 = e2[2].scrollToIndex, s4 = e2[3].didMount, u4 = statefulStream(true), c4 = statefulStream(0);\n return connect(pipe(s4, withLatestFrom(c4), filter(function(e3) {\n return !!e3[1];\n }), mapTo(false)), u4), subscribe(pipe(combineLatest(r4, s4), withLatestFrom(u4, o4, i4), filter(function(e3) {\n var t2 = e3[1], n5 = e3[3];\n return e3[0][1] && (!R3(e3[2].sizeTree) || void 0 !== n5) && !t2;\n }), withLatestFrom(c4)), function(e3) {\n var n5 = e3[1];\n setTimeout(function() {\n handleNext(a5, function() {\n publish(u4, true);\n }), publish(l5, n5);\n });\n }), { scrolledToInitialItem: u4, initialTopMostItemIndex: c4 };\n}, tup(re, y3, le, me), { singleton: true });\nfunction fe(e2) {\n return !!e2 && (\"smooth\" === e2 ? \"smooth\" : \"auto\");\n}\nvar pe = system(function(e2) {\n var n4 = e2[0], o4 = n4.totalCount, r4 = n4.listRefresh, i4 = e2[1], a5 = i4.isAtBottom, l5 = i4.atBottomState, s4 = e2[2].scrollToIndex, u4 = e2[3].scrolledToInitialItem, c4 = e2[4], m4 = c4.propsReady, d4 = c4.didMount, f4 = e2[5].log, p4 = e2[6].scrollingInProgress, g4 = statefulStream(false), v4 = stream(), S3 = null;\n function C4(e3) {\n publish(s4, { index: \"LAST\", align: \"end\", behavior: e3 });\n }\n function I2(e3) {\n var n5 = handleNext(l5, function(n6) {\n !e3 || n6.atBottom || \"SIZE_INCREASED\" !== n6.notAtBottomBecause || S3 || (getValue(f4)(\"scrolling to bottom due to increased size\", {}, h3.DEBUG), C4(\"auto\"));\n });\n setTimeout(n5, 100);\n }\n return subscribe(pipe(combineLatest(pipe(duc(o4), skip(1)), d4), withLatestFrom(duc(g4), a5, u4, p4), map2(function(e3) {\n var t2 = e3[0], n5 = t2[0], o5 = t2[1] && e3[3], r5 = \"auto\";\n return o5 && (r5 = function(e4, t3) {\n return \"function\" == typeof e4 ? fe(e4(t3)) : t3 && fe(e4);\n }(e3[1], e3[2] || e3[4]), o5 = o5 && !!r5), { totalCount: n5, shouldFollow: o5, followOutputBehavior: r5 };\n }), filter(function(e3) {\n return e3.shouldFollow;\n })), function(e3) {\n var n5 = e3.totalCount, o5 = e3.followOutputBehavior;\n S3 && (S3(), S3 = null), S3 = handleNext(r4, function() {\n getValue(f4)(\"following output to \", { totalCount: n5 }, h3.DEBUG), C4(o5), S3 = null;\n });\n }), subscribe(pipe(combineLatest(duc(g4), o4, m4), filter(function(e3) {\n return e3[0] && e3[2];\n }), scan(function(e3, t2) {\n var n5 = t2[1];\n return { refreshed: e3.value === n5, value: n5 };\n }, { refreshed: false, value: 0 }), filter(function(e3) {\n return e3.refreshed;\n }), withLatestFrom(g4, o4)), function(e3) {\n I2(false !== e3[1]);\n }), subscribe(v4, function() {\n I2(false !== getValue(g4));\n }), subscribe(combineLatest(duc(g4), l5), function(e3) {\n var t2 = e3[1];\n e3[0] && !t2.atBottom && \"VIEWPORT_HEIGHT_DECREASING\" === t2.notAtBottomBecause && C4(\"auto\");\n }), { followOutput: g4, autoscrollToBottom: v4 };\n}, tup(re, ce, le, de, me, S2, y3));\nfunction he(e2) {\n return e2.reduce(function(e3, t2) {\n return e3.groupIndices.push(e3.totalCount), e3.totalCount += t2 + 1, e3;\n }, { totalCount: 0, groupIndices: [] });\n}\nvar ge = system(function(e2) {\n var n4 = e2[0], o4 = n4.totalCount, r4 = n4.groupIndices, i4 = n4.sizes, a5 = e2[1], l5 = a5.scrollTop, s4 = a5.headerHeight, u4 = stream(), c4 = stream(), m4 = streamFromEmitter(pipe(u4, map2(he)));\n return connect(pipe(m4, map2(function(e3) {\n return e3.totalCount;\n })), o4), connect(pipe(m4, map2(function(e3) {\n return e3.groupIndices;\n })), r4), connect(pipe(combineLatest(l5, i4, s4), filter(function(e3) {\n return ne(e3[1]);\n }), map2(function(e3) {\n return k2(e3[1].groupOffsetTree, Math.max(e3[0] - e3[2], 0), \"v\")[0];\n }), distinctUntilChanged(), map2(function(e3) {\n return [e3];\n })), c4), { groupCounts: u4, topItemsIndexes: c4 };\n}, tup(re, y3));\nfunction ve(e2, t2) {\n return !(!e2 || e2[0] !== t2[0] || e2[1] !== t2[1]);\n}\nfunction Se(e2, t2) {\n return !(!e2 || e2.startIndex !== t2.startIndex || e2.endIndex !== t2.endIndex);\n}\nfunction Ce(e2, t2, n4) {\n return \"number\" == typeof e2 ? n4 === se && \"top\" === t2 || \"down\" === n4 && \"bottom\" === t2 ? e2 : 0 : n4 === se ? \"top\" === t2 ? e2.main : e2.reverse : \"bottom\" === t2 ? e2.main : e2.reverse;\n}\nfunction Ie(e2, t2) {\n return \"number\" == typeof e2 ? e2 : e2[t2] || 0;\n}\nvar Te = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollTop, r4 = n4.viewportHeight, i4 = n4.deviation, a5 = n4.headerHeight, l5 = n4.fixedHeaderHeight, s4 = stream(), u4 = statefulStream(0), c4 = statefulStream(0), m4 = statefulStream(0), d4 = statefulStreamFromEmitter(pipe(combineLatest(duc(o4), duc(r4), duc(a5), duc(s4, ve), duc(m4), duc(u4), duc(l5), duc(i4), duc(c4)), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2], r5 = e3[3], i5 = r5[0], a6 = r5[1], l6 = e3[4], s5 = e3[6], u5 = e3[7], c5 = e3[8], m5 = t2 - u5, d5 = e3[5] + s5, f4 = Math.max(o5 - m5, 0), p4 = \"none\", h4 = Ie(c5, \"top\"), g4 = Ie(c5, \"bottom\");\n return i5 -= u5, a6 += o5 + s5, (i5 += o5 + s5) > t2 + d5 - h4 && (p4 = se), (a6 -= u5) < t2 - f4 + n5 + g4 && (p4 = \"down\"), \"none\" !== p4 ? [Math.max(m5 - o5 - Ce(l6, \"top\", p4) - h4, 0), m5 - f4 - s5 + n5 + Ce(l6, \"bottom\", p4) + g4] : null;\n }), filter(function(e3) {\n return null != e3;\n }), distinctUntilChanged(ve)), [0, 0]);\n return { listBoundary: s4, overscan: m4, topListHeight: u4, increaseViewportBy: c4, visibleRange: d4 };\n}, tup(y3), { singleton: true });\nvar we = { items: [], topItems: [], offsetTop: 0, offsetBottom: 0, top: 0, bottom: 0, topListHeight: 0, totalCount: 0, firstItemIndex: 0 };\nfunction xe(e2, t2, n4) {\n if (0 === e2.length)\n return [];\n if (!ne(t2))\n return e2.map(function(e3) {\n return c3({}, e3, { index: e3.index + n4, originalIndex: e3.index });\n });\n for (var o4, r4 = [], i4 = A2(t2.groupOffsetTree, e2[0].index, e2[e2.length - 1].index), a5 = void 0, l5 = 0, s4 = f3(e2); !(o4 = s4()).done; ) {\n var u4 = o4.value;\n (!a5 || a5.end < u4.index) && (a5 = i4.shift(), l5 = t2.groupIndices.indexOf(a5.start)), r4.push(c3({}, u4.index === a5.start ? { type: \"group\", index: l5 } : { index: u4.index - (l5 + 1) + n4, groupIndex: l5 }, { size: u4.size, offset: u4.offset, originalIndex: u4.index, data: u4.data }));\n }\n return r4;\n}\nfunction be(e2, t2, n4, o4, r4, i4) {\n var a5 = 0, l5 = 0;\n if (e2.length > 0) {\n a5 = e2[0].offset;\n var s4 = e2[e2.length - 1];\n l5 = s4.offset + s4.size;\n }\n var u4 = n4 - r4.lastIndex, c4 = a5, m4 = r4.lastOffset + u4 * r4.lastSize + (u4 - 1) * o4 - l5;\n return { items: xe(e2, r4, i4), topItems: xe(t2, r4, i4), topListHeight: t2.reduce(function(e3, t3) {\n return t3.size + e3;\n }, 0), offsetTop: a5, offsetBottom: m4, top: c4, bottom: l5, totalCount: n4, firstItemIndex: i4 };\n}\nvar ye = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.totalCount, i4 = n4.data, a5 = n4.firstItemIndex, l5 = n4.gap, s4 = e2[1], u4 = e2[2], m4 = u4.visibleRange, d4 = u4.listBoundary, p4 = u4.topListHeight, h4 = e2[3], g4 = h4.scrolledToInitialItem, v4 = h4.initialTopMostItemIndex, S3 = e2[4].topListHeight, C4 = e2[5], I2 = e2[6].didMount, T4 = e2[7].recalcInProgress, w4 = statefulStream([]), x4 = stream();\n connect(s4.topItemsIndexes, w4);\n var b5 = statefulStreamFromEmitter(pipe(combineLatest(I2, T4, duc(m4, ve), duc(r4), duc(o4), duc(v4), g4, duc(w4), duc(a5), duc(l5), i4), filter(function(e3) {\n return e3[0] && !e3[1];\n }), map2(function(e3) {\n var n5 = e3[2], o5 = n5[0], r5 = n5[1], i5 = e3[3], a6 = e3[5], l6 = e3[6], s5 = e3[7], u5 = e3[8], m5 = e3[9], d5 = e3[10], p5 = e3[4], h5 = p5.sizeTree, g5 = p5.offsetTree;\n if (0 === i5 || 0 === o5 && 0 === r5)\n return c3({}, we, { totalCount: i5 });\n if (R3(h5))\n return be(function(e4, t2, n6) {\n if (ne(t2)) {\n var o6 = te(e4, t2);\n return [{ index: k2(t2.groupOffsetTree, o6)[0], size: 0, offset: 0 }, { index: o6, size: 0, offset: 0, data: n6 && n6[0] }];\n }\n return [{ index: e4, size: 0, offset: 0, data: n6 && n6[0] }];\n }(function(e4, t2) {\n return \"number\" == typeof e4 ? e4 : \"LAST\" === e4.index ? t2 - 1 : e4.index;\n }(a6, i5), p5, d5), [], i5, m5, p5, u5);\n var v5 = [];\n if (s5.length > 0)\n for (var S4, C5 = s5[0], I3 = s5[s5.length - 1], T5 = 0, w5 = f3(A2(h5, C5, I3)); !(S4 = w5()).done; )\n for (var x5 = S4.value, b6 = x5.value, y4 = Math.max(x5.start, C5), H3 = Math.min(x5.end, I3), E4 = y4; E4 <= H3; E4++)\n v5.push({ index: E4, size: b6, offset: T5, data: d5 && d5[E4] }), T5 += b6;\n if (!l6)\n return be([], v5, i5, m5, p5, u5);\n var L5 = s5.length > 0 ? s5[s5.length - 1] + 1 : 0, F2 = function(e4, t2, n6, o6) {\n return void 0 === o6 && (o6 = 0), o6 > 0 && (t2 = Math.max(t2, j(e4, o6, q).offset)), N2((i6 = n6, l7 = _(r6 = e4, t2, a7 = Z), s6 = _(r6, i6, a7, l7), r6.slice(l7, s6 + 1)), J);\n var r6, i6, a7, l7, s6;\n }(g5, o5, r5, L5);\n if (0 === F2.length)\n return null;\n var z3 = i5 - 1;\n return be(tap([], function(e4) {\n for (var t2, n6 = f3(F2); !(t2 = n6()).done; ) {\n var i6 = t2.value, a7 = i6.value, l7 = a7.offset, s6 = i6.start, u6 = a7.size;\n if (a7.offset < o5) {\n var c4 = (s6 += Math.floor((o5 - a7.offset + m5) \/ (u6 + m5))) - i6.start;\n l7 += c4 * u6 + c4 * m5;\n }\n s6 < L5 && (l7 += (L5 - s6) * u6, s6 = L5);\n for (var p6 = Math.min(i6.end, z3), h6 = s6; h6 <= p6 && !(l7 >= r5); h6++)\n e4.push({ index: h6, size: u6, offset: l7, data: d5 && d5[h6] }), l7 += u6 + m5;\n }\n }), v5, i5, m5, p5, u5);\n }), filter(function(e3) {\n return null !== e3;\n }), distinctUntilChanged()), we);\n return connect(pipe(i4, filter(function(e3) {\n return void 0 !== e3;\n }), map2(function(e3) {\n return e3.length;\n })), r4), connect(pipe(b5, map2(function(e3) {\n return e3.topListHeight;\n })), S3), connect(S3, p4), connect(pipe(b5, map2(function(e3) {\n return [e3.top, e3.bottom];\n })), d4), connect(pipe(b5, map2(function(e3) {\n return e3.items;\n })), x4), c3({ listState: b5, topItemsIndexes: w4, endReached: streamFromEmitter(pipe(b5, filter(function(e3) {\n return e3.items.length > 0;\n }), withLatestFrom(r4, i4), filter(function(e3) {\n var t2 = e3[0].items;\n return t2[t2.length - 1].originalIndex === e3[1] - 1;\n }), map2(function(e3) {\n return [e3[1] - 1, e3[2]];\n }), distinctUntilChanged(ve), map2(function(e3) {\n return e3[0];\n }))), startReached: streamFromEmitter(pipe(b5, throttleTime(200), filter(function(e3) {\n var t2 = e3.items;\n return t2.length > 0 && t2[0].originalIndex === e3.topItems.length;\n }), map2(function(e3) {\n return e3.items[0].index;\n }), distinctUntilChanged())), rangeChanged: streamFromEmitter(pipe(b5, filter(function(e3) {\n return e3.items.length > 0;\n }), map2(function(e3) {\n for (var t2 = e3.items, n5 = 0, o5 = t2.length - 1; \"group\" === t2[n5].type && n5 < o5; )\n n5++;\n for (; \"group\" === t2[o5].type && o5 > n5; )\n o5--;\n return { startIndex: t2[n5].index, endIndex: t2[o5].index };\n }), distinctUntilChanged(Se))), itemsRendered: x4 }, C4);\n}, tup(re, ge, Te, de, le, ce, me, K), { singleton: true });\nvar He = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.firstItemIndex, i4 = n4.data, a5 = n4.gap, l5 = e2[1].listState, s4 = e2[2].didMount, u4 = statefulStream(0);\n return connect(pipe(s4, withLatestFrom(u4), filter(function(e3) {\n return 0 !== e3[1];\n }), withLatestFrom(o4, r4, a5, i4), map2(function(e3) {\n var t2 = e3[0][1], n5 = e3[1], o5 = e3[2], r5 = e3[3], i5 = e3[4], a6 = void 0 === i5 ? [] : i5, l6 = 0;\n if (n5.groupIndices.length > 0)\n for (var s5, u5 = f3(n5.groupIndices); !((s5 = u5()).done || s5.value - l6 >= t2); )\n l6++;\n var c4 = t2 + l6;\n return be(Array.from({ length: c4 }).map(function(e4, t3) {\n return { index: t3, size: 0, offset: 0, data: a6[t3] };\n }), [], c4, r5, n5, o5);\n })), l5), { initialItemCount: u4 };\n}, tup(re, ye, me), { singleton: true });\nvar Ee = system(function(e2) {\n var n4 = e2[0].scrollVelocity, o4 = statefulStream(false), r4 = stream(), i4 = statefulStream(false);\n return connect(pipe(n4, withLatestFrom(i4, o4, r4), filter(function(e3) {\n return !!e3[1];\n }), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2], r5 = e3[3], i5 = n5.enter;\n if (o5) {\n if ((0, n5.exit)(t2, r5))\n return false;\n } else if (i5(t2, r5))\n return true;\n return o5;\n }), distinctUntilChanged()), o4), subscribe(pipe(combineLatest(o4, n4, r4), withLatestFrom(i4)), function(e3) {\n var t2 = e3[0], n5 = e3[1];\n return t2[0] && n5 && n5.change && n5.change(t2[1], t2[2]);\n }), { isSeeking: o4, scrollSeekConfiguration: i4, scrollVelocity: n4, scrollSeekRangeChanged: r4 };\n}, tup(ce), { singleton: true });\nvar Re = system(function(e2) {\n var n4 = e2[0].topItemsIndexes, o4 = statefulStream(0);\n return connect(pipe(o4, filter(function(e3) {\n return e3 > 0;\n }), map2(function(e3) {\n return Array.from({ length: e3 }).map(function(e4, t2) {\n return t2;\n });\n })), n4), { topItemCount: o4 };\n}, tup(ye));\nvar Le = system(function(e2) {\n var n4 = e2[0], o4 = n4.footerHeight, r4 = n4.headerHeight, i4 = n4.fixedHeaderHeight, a5 = n4.fixedFooterHeight, l5 = e2[1].listState, s4 = stream(), u4 = statefulStreamFromEmitter(pipe(combineLatest(o4, a5, r4, i4, l5), map2(function(e3) {\n var t2 = e3[4];\n return e3[0] + e3[1] + e3[2] + e3[3] + t2.offsetBottom + t2.bottom;\n })), 0);\n return connect(duc(u4), s4), { totalListHeight: u4, totalListHeightChanged: s4 };\n}, tup(y3, ye), { singleton: true });\nfunction Fe(e2) {\n var t2, n4 = false;\n return function() {\n return n4 || (n4 = true, t2 = e2()), t2;\n };\n}\nvar ke = Fe(function() {\n return \/iP(ad|hone|od).+Version\\\/[\\d.]+.*Safari\/i.test(navigator.userAgent);\n});\nvar ze = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollBy, r4 = n4.scrollTop, i4 = n4.deviation, a5 = n4.scrollingInProgress, l5 = e2[1], s4 = l5.isScrolling, u4 = l5.isAtBottom, c4 = l5.scrollDirection, m4 = e2[3], d4 = m4.beforeUnshiftWith, f4 = m4.shiftWithOffset, p4 = m4.sizes, g4 = m4.gap, v4 = e2[4].log, S3 = e2[5].recalcInProgress, C4 = streamFromEmitter(pipe(e2[2].listState, withLatestFrom(l5.lastJumpDueToItemResize), scan(function(e3, t2) {\n var n5 = e3[1], o5 = t2[0], r5 = o5.items, i5 = o5.totalCount, a6 = o5.bottom + o5.offsetBottom, l6 = 0;\n return e3[2] === i5 && n5.length > 0 && r5.length > 0 && (0 === r5[0].originalIndex && 0 === n5[0].originalIndex || 0 != (l6 = a6 - e3[3]) && (l6 += t2[1])), [l6, r5, i5, a6];\n }, [0, [], 0, 0]), filter(function(e3) {\n return 0 !== e3[0];\n }), withLatestFrom(r4, c4, a5, u4, v4), filter(function(e3) {\n return !e3[3] && 0 !== e3[1] && e3[2] === se;\n }), map2(function(e3) {\n var t2 = e3[0][0];\n return (0, e3[5])(\"Upward scrolling compensation\", { amount: t2 }, h3.DEBUG), t2;\n })));\n function I2(e3) {\n e3 > 0 ? (publish(o4, { top: -e3, behavior: \"auto\" }), publish(i4, 0)) : (publish(i4, 0), publish(o4, { top: -e3, behavior: \"auto\" }));\n }\n return subscribe(pipe(C4, withLatestFrom(i4, s4)), function(e3) {\n var n5 = e3[0], o5 = e3[1];\n e3[2] && ke() ? publish(i4, o5 - n5) : I2(-n5);\n }), subscribe(pipe(combineLatest(statefulStreamFromEmitter(s4, false), i4, S3), filter(function(e3) {\n return !e3[0] && !e3[2] && 0 !== e3[1];\n }), map2(function(e3) {\n return e3[1];\n }), throttleTime(1)), I2), connect(pipe(f4, map2(function(e3) {\n return { top: -e3 };\n })), o4), subscribe(pipe(d4, withLatestFrom(p4, g4), map2(function(e3) {\n var t2 = e3[0];\n return t2 * e3[1].lastSize + t2 * e3[2];\n })), function(e3) {\n publish(i4, e3), requestAnimationFrame(function() {\n publish(o4, { top: e3 }), requestAnimationFrame(function() {\n publish(i4, 0), publish(S3, false);\n });\n });\n }), { deviation: i4 };\n}, tup(y3, ce, ye, re, S2, K));\nvar Be = system(function(e2) {\n var n4 = e2[0].totalListHeight, o4 = e2[1].didMount, r4 = e2[2].scrollTo, i4 = statefulStream(0);\n return subscribe(pipe(o4, withLatestFrom(i4), filter(function(e3) {\n return 0 !== e3[1];\n }), map2(function(e3) {\n return { top: e3[1] };\n })), function(e3) {\n handleNext(pipe(n4, filter(function(e4) {\n return 0 !== e4;\n })), function() {\n setTimeout(function() {\n publish(r4, e3);\n });\n });\n }), { initialScrollTop: i4 };\n}, tup(Le, me, y3), { singleton: true });\nvar Pe = system(function(e2) {\n var n4 = e2[0].viewportHeight, o4 = e2[1].totalListHeight, r4 = statefulStream(false);\n return { alignToBottom: r4, paddingTopAddition: statefulStreamFromEmitter(pipe(combineLatest(r4, n4, o4), filter(function(e3) {\n return e3[0];\n }), map2(function(e3) {\n return Math.max(0, e3[1] - e3[2]);\n }), distinctUntilChanged()), 0) };\n}, tup(y3, Le), { singleton: true });\nvar Oe = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollTo, r4 = n4.scrollContainerState, i4 = stream(), a5 = stream(), l5 = stream(), s4 = statefulStream(false), u4 = statefulStream(void 0);\n return connect(pipe(combineLatest(i4, a5), map2(function(e3) {\n var t2 = e3[0], n5 = t2.viewportHeight, o5 = t2.scrollHeight;\n return { scrollTop: Math.max(0, t2.scrollTop - e3[1].offsetTop), scrollHeight: o5, viewportHeight: n5 };\n })), r4), connect(pipe(o4, withLatestFrom(a5), map2(function(e3) {\n var t2 = e3[0];\n return c3({}, t2, { top: t2.top + e3[1].offsetTop });\n })), l5), { useWindowScroll: s4, customScrollParent: u4, windowScrollContainerState: i4, windowViewportRect: a5, windowScrollTo: l5 };\n}, tup(y3));\nvar Me = [\"done\", \"behavior\", \"align\"];\nvar We = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.totalCount, i4 = n4.gap, a5 = e2[1], l5 = a5.scrollTop, s4 = a5.viewportHeight, u4 = a5.headerHeight, d4 = a5.fixedHeaderHeight, f4 = a5.fixedFooterHeight, p4 = a5.scrollingInProgress, h4 = e2[2].scrollToIndex, g4 = stream();\n return connect(pipe(g4, withLatestFrom(o4, s4, r4, u4, d4, f4, l5), withLatestFrom(i4), map2(function(e3) {\n var n5 = e3[0], o5 = n5[0], r5 = n5[1], i5 = n5[2], a6 = n5[3], l6 = n5[4], s5 = n5[5], u5 = n5[6], d5 = n5[7], f5 = e3[1], h5 = o5.done, g5 = o5.behavior, v4 = o5.align, S3 = m3(o5, Me), C4 = null, I2 = ee(o5, r5, a6 - 1), T4 = X(I2, r5.offsetTree, f5) + l6 + s5;\n return T4 < d5 + s5 ? C4 = c3({}, S3, { behavior: g5, align: null != v4 ? v4 : \"start\" }) : T4 + k2(r5.sizeTree, I2)[1] > d5 + i5 - u5 && (C4 = c3({}, S3, { behavior: g5, align: null != v4 ? v4 : \"end\" })), C4 ? h5 && handleNext(pipe(p4, skip(1), filter(function(e4) {\n return false === e4;\n })), h5) : h5 && h5(), C4;\n }), filter(function(e3) {\n return null !== e3;\n })), h4), { scrollIntoView: g4 };\n}, tup(re, y3, le, ye, S2), { singleton: true });\nvar Ve = [\"listState\", \"topItemsIndexes\"];\nvar Ue = system(function(e2) {\n return c3({}, e2[0], e2[1], e2[2], e2[3], e2[4], e2[5], e2[6], e2[7], e2[8]);\n}, tup(Te, He, me, Ee, Le, Be, Pe, Oe, We));\nvar Ae = system(function(e2) {\n var n4 = e2[0], o4 = n4.totalCount, r4 = n4.sizeRanges, i4 = n4.fixedItemSize, a5 = n4.defaultItemSize, l5 = n4.trackItemSizes, s4 = n4.itemSize, u4 = n4.data, d4 = n4.firstItemIndex, f4 = n4.groupIndices, p4 = n4.statefulTotalCount, h4 = n4.gap, g4 = e2[1], v4 = g4.initialTopMostItemIndex, S3 = g4.scrolledToInitialItem, C4 = e2[2], I2 = e2[3], T4 = e2[4], w4 = T4.listState, x4 = T4.topItemsIndexes, b5 = m3(T4, Ve), y4 = e2[5].scrollToIndex, H3 = e2[7].topItemCount, E4 = e2[8].groupCounts, R5 = e2[9], L5 = e2[10];\n return connect(b5.rangeChanged, R5.scrollSeekRangeChanged), connect(pipe(R5.windowViewportRect, map2(function(e3) {\n return e3.visibleHeight;\n })), C4.viewportHeight), c3({ totalCount: o4, data: u4, firstItemIndex: d4, sizeRanges: r4, initialTopMostItemIndex: v4, scrolledToInitialItem: S3, topItemsIndexes: x4, topItemCount: H3, groupCounts: E4, fixedItemHeight: i4, defaultItemHeight: a5, gap: h4 }, I2, { statefulTotalCount: p4, listState: w4, scrollToIndex: y4, trackItemSizes: l5, itemSize: s4, groupIndices: f4 }, b5, R5, C4, L5);\n}, tup(re, de, y3, pe, ye, le, ze, Re, ge, Ue, S2));\nvar Ne = Fe(function() {\n if (\"undefined\" == typeof document)\n return \"sticky\";\n var e2 = document.createElement(\"div\");\n return e2.style.position = \"-webkit-sticky\", \"-webkit-sticky\" === e2.style.position ? \"-webkit-sticky\" : \"sticky\";\n});\nfunction De(e2, t2) {\n var n4 = (0, import_react66.useRef)(null), o4 = (0, import_react66.useCallback)(function(o5) {\n if (null !== o5 && o5.offsetParent) {\n var r4, i4, a5 = o5.getBoundingClientRect(), l6 = a5.width;\n if (t2) {\n var s5 = t2.getBoundingClientRect(), u5 = a5.top - s5.top;\n r4 = s5.height - Math.max(0, u5), i4 = u5 + t2.scrollTop;\n } else\n r4 = window.innerHeight - Math.max(0, a5.top), i4 = a5.top + window.pageYOffset;\n n4.current = { offsetTop: i4, visibleHeight: r4, visibleWidth: l6 }, e2(n4.current);\n }\n }, [e2, t2]), l5 = C2(o4), s4 = l5.callbackRef, u4 = l5.ref, c4 = (0, import_react66.useCallback)(function() {\n o4(u4.current);\n }, [o4, u4]);\n return (0, import_react66.useEffect)(function() {\n if (t2) {\n t2.addEventListener(\"scroll\", c4);\n var e3 = new ResizeObserver(c4);\n return e3.observe(t2), function() {\n t2.removeEventListener(\"scroll\", c4), e3.unobserve(t2);\n };\n }\n return window.addEventListener(\"scroll\", c4), window.addEventListener(\"resize\", c4), function() {\n window.removeEventListener(\"scroll\", c4), window.removeEventListener(\"resize\", c4);\n };\n }, [c4, t2]), s4;\n}\nvar Ge = n3.createContext(void 0);\nvar _e = n3.createContext(void 0);\nvar je = [\"placeholder\"];\nvar Ke = [\"style\", \"children\"];\nvar Ye = [\"style\", \"children\"];\nfunction qe(e2) {\n return e2;\n}\nvar Ze = system(function() {\n var e2 = statefulStream(function(e3) {\n return \"Item \" + e3;\n }), n4 = statefulStream(null), o4 = statefulStream(function(e3) {\n return \"Group \" + e3;\n }), r4 = statefulStream({}), i4 = statefulStream(qe), a5 = statefulStream(\"div\"), l5 = statefulStream(noop4), s4 = function(e3, n5) {\n return void 0 === n5 && (n5 = null), statefulStreamFromEmitter(pipe(r4, map2(function(t2) {\n return t2[e3];\n }), distinctUntilChanged()), n5);\n };\n return { context: n4, itemContent: e2, groupContent: o4, components: r4, computeItemKey: i4, headerFooterTag: a5, scrollerRef: l5, FooterComponent: s4(\"Footer\"), HeaderComponent: s4(\"Header\"), TopItemListComponent: s4(\"TopItemList\"), ListComponent: s4(\"List\", \"div\"), ItemComponent: s4(\"Item\", \"div\"), GroupComponent: s4(\"Group\", \"div\"), ScrollerComponent: s4(\"Scroller\", \"div\"), EmptyPlaceholder: s4(\"EmptyPlaceholder\"), ScrollSeekPlaceholder: s4(\"ScrollSeekPlaceholder\") };\n});\nfunction Je(e2, n4) {\n var o4 = stream();\n return subscribe(o4, function() {\n return console.warn(\"react-virtuoso: You are using a deprecated property. \" + n4, \"color: red;\", \"color: inherit;\", \"color: blue;\");\n }), connect(o4, e2), o4;\n}\nvar $e = system(function(e2) {\n var n4 = e2[0], o4 = e2[1], r4 = { item: Je(o4.itemContent, \"Rename the %citem%c prop to %citemContent.\"), group: Je(o4.groupContent, \"Rename the %cgroup%c prop to %cgroupContent.\"), topItems: Je(n4.topItemCount, \"Rename the %ctopItems%c prop to %ctopItemCount.\"), itemHeight: Je(n4.fixedItemHeight, \"Rename the %citemHeight%c prop to %cfixedItemHeight.\"), scrollingStateChange: Je(n4.isScrolling, \"Rename the %cscrollingStateChange%c prop to %cisScrolling.\"), adjustForPrependedItems: stream(), maxHeightCacheSize: stream(), footer: stream(), header: stream(), HeaderContainer: stream(), FooterContainer: stream(), ItemContainer: stream(), ScrollContainer: stream(), GroupContainer: stream(), ListContainer: stream(), emptyComponent: stream(), scrollSeek: stream() };\n function i4(e3, n5, r5) {\n connect(pipe(e3, withLatestFrom(o4.components), map2(function(e4) {\n var t2, o5 = e4[0], i5 = e4[1];\n return console.warn(\"react-virtuoso: \" + r5 + \" property is deprecated. Pass components.\" + n5 + \" instead.\"), c3({}, i5, ((t2 = {})[n5] = o5, t2));\n })), o4.components);\n }\n return subscribe(r4.adjustForPrependedItems, function() {\n console.warn(\"react-virtuoso: adjustForPrependedItems is no longer supported. Use the firstItemIndex property instead - https:\/\/virtuoso.dev\/prepend-items.\", \"color: red;\", \"color: inherit;\", \"color: blue;\");\n }), subscribe(r4.maxHeightCacheSize, function() {\n console.warn(\"react-virtuoso: maxHeightCacheSize is no longer necessary. Setting it has no effect - remove it from your code.\");\n }), subscribe(r4.HeaderContainer, function() {\n console.warn(\"react-virtuoso: HeaderContainer is deprecated. Use headerFooterTag if you want to change the wrapper of the header component and pass components.Header to change its contents.\");\n }), subscribe(r4.FooterContainer, function() {\n console.warn(\"react-virtuoso: FooterContainer is deprecated. Use headerFooterTag if you want to change the wrapper of the footer component and pass components.Footer to change its contents.\");\n }), subscribe(r4.scrollSeek, function(e3) {\n var r5 = e3.placeholder, i5 = m3(e3, je);\n console.warn(\"react-virtuoso: scrollSeek property is deprecated. Pass scrollSeekConfiguration and specify the placeholder in components.ScrollSeekPlaceholder instead.\"), publish(o4.components, c3({}, getValue(o4.components), { ScrollSeekPlaceholder: r5 })), publish(n4.scrollSeekConfiguration, i5);\n }), i4(r4.footer, \"Footer\", \"footer\"), i4(r4.header, \"Header\", \"header\"), i4(r4.ItemContainer, \"Item\", \"ItemContainer\"), i4(r4.ListContainer, \"List\", \"ListContainer\"), i4(r4.ScrollContainer, \"Scroller\", \"ScrollContainer\"), i4(r4.emptyComponent, \"EmptyPlaceholder\", \"emptyComponent\"), i4(r4.GroupContainer, \"Group\", \"GroupContainer\"), c3({}, n4, o4, r4);\n}, tup(Ae, Ze));\nvar Qe = function(e2) {\n return n3.createElement(\"div\", { style: { height: e2.height } });\n};\nvar Xe = { position: Ne(), zIndex: 1, overflowAnchor: \"none\" };\nvar et = { overflowAnchor: \"none\" };\nvar tt = n3.memo(function(e2) {\n var o4 = e2.showTopList, r4 = void 0 !== o4 && o4, i4 = gt(\"listState\"), a5 = ht(\"sizeRanges\"), s4 = gt(\"useWindowScroll\"), u4 = gt(\"customScrollParent\"), m4 = ht(\"windowScrollContainerState\"), d4 = ht(\"scrollContainerState\"), f4 = u4 || s4 ? m4 : d4, p4 = gt(\"itemContent\"), h4 = gt(\"context\"), g4 = gt(\"groupContent\"), v4 = gt(\"trackItemSizes\"), S3 = gt(\"itemSize\"), C4 = gt(\"log\"), I2 = ht(\"gap\"), w4 = T3(a5, S3, v4, r4 ? noop4 : f4, C4, I2, u4).callbackRef, x4 = n3.useState(0), b5 = x4[0], y4 = x4[1];\n vt(\"deviation\", function(e3) {\n b5 !== e3 && y4(e3);\n });\n var H3 = gt(\"EmptyPlaceholder\"), E4 = gt(\"ScrollSeekPlaceholder\") || Qe, R5 = gt(\"ListComponent\"), L5 = gt(\"ItemComponent\"), F2 = gt(\"GroupComponent\"), k3 = gt(\"computeItemKey\"), z3 = gt(\"isSeeking\"), B3 = gt(\"groupIndices\").length > 0, P3 = gt(\"paddingTopAddition\"), O3 = r4 ? {} : { boxSizing: \"border-box\", paddingTop: i4.offsetTop + P3, paddingBottom: i4.offsetBottom, marginTop: b5 };\n return !r4 && 0 === i4.totalCount && H3 ? (0, import_react66.createElement)(H3, it(H3, h4)) : (0, import_react66.createElement)(R5, c3({}, it(R5, h4), { ref: w4, style: O3, \"data-test-id\": r4 ? \"virtuoso-top-item-list\" : \"virtuoso-item-list\" }), (r4 ? i4.topItems : i4.items).map(function(e3) {\n var t2 = e3.originalIndex, n4 = k3(t2 + i4.firstItemIndex, e3.data, h4);\n return z3 ? (0, import_react66.createElement)(E4, c3({}, it(E4, h4), { key: n4, index: e3.index, height: e3.size, type: e3.type || \"item\" }, \"group\" === e3.type ? {} : { groupIndex: e3.groupIndex })) : \"group\" === e3.type ? (0, import_react66.createElement)(F2, c3({}, it(F2, h4), { key: n4, \"data-index\": t2, \"data-known-size\": e3.size, \"data-item-index\": e3.index, style: Xe }), g4(e3.index)) : (0, import_react66.createElement)(L5, c3({}, it(L5, h4), { key: n4, \"data-index\": t2, \"data-known-size\": e3.size, \"data-item-index\": e3.index, \"data-item-group-index\": e3.groupIndex, style: et }), B3 ? p4(e3.index, e3.groupIndex, e3.data, h4) : p4(e3.index, e3.data, h4));\n }));\n});\nvar nt = { height: \"100%\", outline: \"none\", overflowY: \"auto\", position: \"relative\", WebkitOverflowScrolling: \"touch\" };\nvar ot = { width: \"100%\", height: \"100%\", position: \"absolute\", top: 0 };\nvar rt = { width: \"100%\", position: Ne(), top: 0 };\nfunction it(e2, t2) {\n if (\"string\" != typeof e2)\n return { context: t2 };\n}\nvar at = n3.memo(function() {\n var e2 = gt(\"HeaderComponent\"), t2 = ht(\"headerHeight\"), n4 = gt(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = gt(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nvar lt = n3.memo(function() {\n var e2 = gt(\"FooterComponent\"), t2 = ht(\"footerHeight\"), n4 = gt(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = gt(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nfunction st(e2) {\n var t2 = e2.usePublisher, o4 = e2.useEmitter, r4 = e2.useEmitterValue;\n return n3.memo(function(e3) {\n var n4 = e3.style, i4 = e3.children, a5 = m3(e3, Ke), s4 = t2(\"scrollContainerState\"), u4 = r4(\"ScrollerComponent\"), d4 = t2(\"smoothScrollTargetReached\"), f4 = r4(\"scrollerRef\"), p4 = r4(\"context\"), h4 = b3(s4, d4, u4, f4), g4 = h4.scrollerRef, v4 = h4.scrollByCallback;\n return o4(\"scrollTo\", h4.scrollToCallback), o4(\"scrollBy\", v4), (0, import_react66.createElement)(u4, c3({ ref: g4, style: c3({}, nt, n4), \"data-test-id\": \"virtuoso-scroller\", \"data-virtuoso-scroller\": true, tabIndex: 0 }, a5, it(u4, p4)), i4);\n });\n}\nfunction ut(e2) {\n var o4 = e2.usePublisher, r4 = e2.useEmitter, i4 = e2.useEmitterValue;\n return n3.memo(function(e3) {\n var n4 = e3.style, a5 = e3.children, s4 = m3(e3, Ye), u4 = o4(\"windowScrollContainerState\"), d4 = i4(\"ScrollerComponent\"), f4 = o4(\"smoothScrollTargetReached\"), p4 = i4(\"totalListHeight\"), h4 = i4(\"deviation\"), v4 = i4(\"customScrollParent\"), S3 = i4(\"context\"), C4 = b3(u4, f4, d4, noop4, v4), I2 = C4.scrollerRef, T4 = C4.scrollByCallback, w4 = C4.scrollToCallback;\n return g3(function() {\n return I2.current = v4 || window, function() {\n I2.current = null;\n };\n }, [I2, v4]), r4(\"windowScrollTo\", w4), r4(\"scrollBy\", T4), (0, import_react66.createElement)(d4, c3({ style: c3({ position: \"relative\" }, n4, 0 !== p4 ? { height: p4 + h4 } : {}), \"data-virtuoso-scroller\": true }, s4, it(d4, S3)), a5);\n });\n}\nvar ct = function(e2) {\n var o4 = e2.children, r4 = (0, import_react66.useContext)(Ge), i4 = ht(\"viewportHeight\"), a5 = ht(\"fixedItemHeight\"), l5 = I(compose(i4, function(e3) {\n return w3(e3, \"height\");\n }));\n return n3.useEffect(function() {\n r4 && (i4(r4.viewportHeight), a5(r4.itemHeight));\n }, [r4, i4, a5]), n3.createElement(\"div\", { style: ot, ref: l5, \"data-viewport-type\": \"element\" }, o4);\n};\nvar mt = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(Ge), r4 = ht(\"windowViewportRect\"), i4 = ht(\"fixedItemHeight\"), a5 = gt(\"customScrollParent\"), l5 = De(r4, a5);\n return n3.useEffect(function() {\n o4 && (i4(o4.itemHeight), r4({ offsetTop: 0, visibleHeight: o4.viewportHeight, visibleWidth: 100 }));\n }, [o4, r4, i4]), n3.createElement(\"div\", { ref: l5, style: ot, \"data-viewport-type\": \"window\" }, t2);\n};\nvar dt = function(e2) {\n var t2 = e2.children, n4 = gt(\"TopItemListComponent\"), o4 = gt(\"headerHeight\"), r4 = c3({}, rt, { marginTop: o4 + \"px\" }), i4 = gt(\"context\");\n return (0, import_react66.createElement)(n4 || \"div\", { style: r4, context: i4 }, t2);\n};\nvar ft = systemToComponent($e, { required: {}, optional: { context: \"context\", followOutput: \"followOutput\", firstItemIndex: \"firstItemIndex\", itemContent: \"itemContent\", groupContent: \"groupContent\", overscan: \"overscan\", increaseViewportBy: \"increaseViewportBy\", totalCount: \"totalCount\", topItemCount: \"topItemCount\", initialTopMostItemIndex: \"initialTopMostItemIndex\", components: \"components\", groupCounts: \"groupCounts\", atBottomThreshold: \"atBottomThreshold\", atTopThreshold: \"atTopThreshold\", computeItemKey: \"computeItemKey\", defaultItemHeight: \"defaultItemHeight\", fixedItemHeight: \"fixedItemHeight\", itemSize: \"itemSize\", scrollSeekConfiguration: \"scrollSeekConfiguration\", headerFooterTag: \"headerFooterTag\", data: \"data\", initialItemCount: \"initialItemCount\", initialScrollTop: \"initialScrollTop\", alignToBottom: \"alignToBottom\", useWindowScroll: \"useWindowScroll\", customScrollParent: \"customScrollParent\", scrollerRef: \"scrollerRef\", logLevel: \"logLevel\", react18ConcurrentRendering: \"react18ConcurrentRendering\", item: \"item\", group: \"group\", topItems: \"topItems\", itemHeight: \"itemHeight\", scrollingStateChange: \"scrollingStateChange\", maxHeightCacheSize: \"maxHeightCacheSize\", footer: \"footer\", header: \"header\", ItemContainer: \"ItemContainer\", ScrollContainer: \"ScrollContainer\", ListContainer: \"ListContainer\", GroupContainer: \"GroupContainer\", emptyComponent: \"emptyComponent\", HeaderContainer: \"HeaderContainer\", FooterContainer: \"FooterContainer\", scrollSeek: \"scrollSeek\" }, methods: { scrollToIndex: \"scrollToIndex\", scrollIntoView: \"scrollIntoView\", scrollTo: \"scrollTo\", scrollBy: \"scrollBy\", adjustForPrependedItems: \"adjustForPrependedItems\", autoscrollToBottom: \"autoscrollToBottom\" }, events: { isScrolling: \"isScrolling\", endReached: \"endReached\", startReached: \"startReached\", rangeChanged: \"rangeChanged\", atBottomStateChange: \"atBottomStateChange\", atTopStateChange: \"atTopStateChange\", totalListHeightChanged: \"totalListHeightChanged\", itemsRendered: \"itemsRendered\", groupIndices: \"groupIndices\" } }, n3.memo(function(e2) {\n var t2 = gt(\"useWindowScroll\"), o4 = gt(\"topItemsIndexes\").length > 0, r4 = gt(\"customScrollParent\"), i4 = r4 || t2 ? mt : ct;\n return n3.createElement(r4 || t2 ? Ct : St, c3({}, e2), n3.createElement(i4, null, n3.createElement(at, null), n3.createElement(tt, null), n3.createElement(lt, null)), o4 && n3.createElement(dt, null, n3.createElement(tt, { showTopList: true })));\n}));\nvar pt = ft.Component;\nvar ht = ft.usePublisher;\nvar gt = ft.useEmitterValue;\nvar vt = ft.useEmitter;\nvar St = st({ usePublisher: ht, useEmitterValue: gt, useEmitter: vt });\nvar Ct = ut({ usePublisher: ht, useEmitterValue: gt, useEmitter: vt });\nvar It = { items: [], offsetBottom: 0, offsetTop: 0, top: 0, bottom: 0, itemHeight: 0, itemWidth: 0 };\nvar Tt = { items: [{ index: 0 }], offsetBottom: 0, offsetTop: 0, top: 0, bottom: 0, itemHeight: 0, itemWidth: 0 };\nvar wt = Math.round;\nvar xt = Math.ceil;\nvar bt = Math.floor;\nvar yt = Math.min;\nvar Ht = Math.max;\nfunction Et(e2, t2, n4) {\n return Array.from({ length: t2 - e2 + 1 }).map(function(t3, o4) {\n return { index: o4 + e2, data: null == n4 ? void 0 : n4[o4 + e2] };\n });\n}\nfunction Rt(e2, t2) {\n return e2 && e2.column === t2.column && e2.row === t2.row;\n}\nvar Lt = system(function(e2) {\n var n4 = e2[0], o4 = n4.overscan, r4 = n4.visibleRange, i4 = n4.listBoundary, a5 = e2[1], l5 = a5.scrollTop, s4 = a5.viewportHeight, u4 = a5.scrollBy, m4 = a5.scrollTo, d4 = a5.smoothScrollTargetReached, f4 = a5.scrollContainerState, p4 = a5.footerHeight, h4 = a5.headerHeight, g4 = e2[2], v4 = e2[3], S3 = e2[4], C4 = S3.propsReady, I2 = S3.didMount, T4 = e2[5], w4 = T4.windowViewportRect, x4 = T4.windowScrollTo, b5 = T4.useWindowScroll, y4 = T4.customScrollParent, H3 = T4.windowScrollContainerState, E4 = e2[6], R5 = statefulStream(0), L5 = statefulStream(0), F2 = statefulStream(It), k3 = statefulStream({ height: 0, width: 0 }), z3 = statefulStream({ height: 0, width: 0 }), B3 = stream(), P3 = stream(), O3 = statefulStream(0), M2 = statefulStream(void 0), W3 = statefulStream({ row: 0, column: 0 });\n connect(pipe(combineLatest(I2, L5, M2), filter(function(e3) {\n return 0 !== e3[1];\n }), map2(function(e3) {\n return { items: Et(0, e3[1] - 1, e3[2]), top: 0, bottom: 0, offsetBottom: 0, offsetTop: 0, itemHeight: 0, itemWidth: 0 };\n })), F2), connect(pipe(combineLatest(duc(R5), r4, duc(W3, Rt), duc(z3, function(e3, t2) {\n return e3 && e3.width === t2.width && e3.height === t2.height;\n }), M2), withLatestFrom(k3), map2(function(e3) {\n var t2 = e3[0], n5 = t2[0], o5 = t2[1], r5 = o5[0], i5 = o5[1], a6 = t2[2], l6 = t2[3], s5 = t2[4], u5 = e3[1], m5 = a6.row, d5 = a6.column, f5 = l6.height, p5 = l6.width, h5 = u5.width;\n if (0 === n5 || 0 === h5)\n return It;\n if (0 === p5)\n return function(e4) {\n return c3({}, Tt, { items: e4 });\n }(Et(0, 0, s5));\n var g5 = zt(h5, p5, d5), v5 = g5 * bt((r5 + m5) \/ (f5 + m5)), S4 = g5 * xt((i5 + m5) \/ (f5 + m5)) - 1;\n S4 = yt(n5 - 1, Ht(S4, g5 - 1));\n var C5 = Et(v5 = yt(S4, Ht(0, v5)), S4, s5), I3 = Ft(u5, a6, l6, C5), T5 = I3.top, w5 = I3.bottom, x5 = xt(n5 \/ g5);\n return { items: C5, offsetTop: T5, offsetBottom: x5 * f5 + (x5 - 1) * m5 - w5, top: T5, bottom: w5, itemHeight: f5, itemWidth: p5 };\n })), F2), connect(pipe(M2, filter(function(e3) {\n return void 0 !== e3;\n }), map2(function(e3) {\n return e3.length;\n })), R5), connect(pipe(k3, map2(function(e3) {\n return e3.height;\n })), s4), connect(pipe(combineLatest(k3, z3, F2, W3), map2(function(e3) {\n var t2 = Ft(e3[0], e3[3], e3[1], e3[2].items);\n return [t2.top, t2.bottom];\n }), distinctUntilChanged(ve)), i4);\n var V4 = streamFromEmitter(pipe(duc(F2), filter(function(e3) {\n return e3.items.length > 0;\n }), withLatestFrom(R5), filter(function(e3) {\n var t2 = e3[0].items;\n return t2[t2.length - 1].index === e3[1] - 1;\n }), map2(function(e3) {\n return e3[1] - 1;\n }), distinctUntilChanged())), U2 = streamFromEmitter(pipe(duc(F2), filter(function(e3) {\n var t2 = e3.items;\n return t2.length > 0 && 0 === t2[0].index;\n }), mapTo(0), distinctUntilChanged())), A4 = streamFromEmitter(pipe(duc(F2), filter(function(e3) {\n return e3.items.length > 0;\n }), map2(function(e3) {\n var t2 = e3.items;\n return { startIndex: t2[0].index, endIndex: t2[t2.length - 1].index };\n }), distinctUntilChanged(Se)));\n connect(A4, v4.scrollSeekRangeChanged), connect(pipe(B3, withLatestFrom(k3, z3, R5, W3), map2(function(e3) {\n var t2 = e3[1], n5 = e3[2], o5 = e3[3], r5 = e3[4], i5 = ae(e3[0]), a6 = i5.align, l6 = i5.behavior, s5 = i5.offset, u5 = i5.index;\n \"LAST\" === u5 && (u5 = o5 - 1);\n var c4 = kt(t2, r5, n5, u5 = Ht(0, u5, yt(o5 - 1, u5)));\n return \"end\" === a6 ? c4 = wt(c4 - t2.height + n5.height) : \"center\" === a6 && (c4 = wt(c4 - t2.height \/ 2 + n5.height \/ 2)), s5 && (c4 += s5), { top: c4, behavior: l6 };\n })), m4);\n var N3 = statefulStreamFromEmitter(pipe(F2, map2(function(e3) {\n return e3.offsetBottom + e3.bottom;\n })), 0);\n return connect(pipe(w4, map2(function(e3) {\n return { width: e3.visibleWidth, height: e3.visibleHeight };\n })), k3), c3({ data: M2, totalCount: R5, viewportDimensions: k3, itemDimensions: z3, scrollTop: l5, scrollHeight: P3, overscan: o4, scrollBy: u4, scrollTo: m4, scrollToIndex: B3, smoothScrollTargetReached: d4, windowViewportRect: w4, windowScrollTo: x4, useWindowScroll: b5, customScrollParent: y4, windowScrollContainerState: H3, deviation: O3, scrollContainerState: f4, footerHeight: p4, headerHeight: h4, initialItemCount: L5, gap: W3 }, v4, { gridState: F2, totalListHeight: N3 }, g4, { startReached: U2, endReached: V4, rangeChanged: A4, propsReady: C4 }, E4);\n}, tup(Te, y3, ce, Ee, me, Oe, S2));\nfunction Ft(e2, t2, n4, o4) {\n var r4 = n4.height;\n return void 0 === r4 || 0 === o4.length ? { top: 0, bottom: 0 } : { top: kt(e2, t2, n4, o4[0].index), bottom: kt(e2, t2, n4, o4[o4.length - 1].index) + r4 };\n}\nfunction kt(e2, t2, n4, o4) {\n var r4 = zt(e2.width, n4.width, t2.column), i4 = bt(o4 \/ r4), a5 = i4 * n4.height + Ht(0, i4 - 1) * t2.row;\n return a5 > 0 ? a5 + t2.row : a5;\n}\nfunction zt(e2, t2, n4) {\n return Ht(1, bt((e2 + n4) \/ (t2 + n4)));\n}\nvar Bt = [\"placeholder\"];\nvar Pt = system(function() {\n var e2 = statefulStream(function(e3) {\n return \"Item \" + e3;\n }), n4 = statefulStream({}), o4 = statefulStream(null), r4 = statefulStream(\"virtuoso-grid-item\"), i4 = statefulStream(\"virtuoso-grid-list\"), a5 = statefulStream(qe), l5 = statefulStream(\"div\"), s4 = statefulStream(noop4), u4 = function(e3, o5) {\n return void 0 === o5 && (o5 = null), statefulStreamFromEmitter(pipe(n4, map2(function(t2) {\n return t2[e3];\n }), distinctUntilChanged()), o5);\n };\n return { context: o4, itemContent: e2, components: n4, computeItemKey: a5, itemClassName: r4, listClassName: i4, headerFooterTag: l5, scrollerRef: s4, FooterComponent: u4(\"Footer\"), HeaderComponent: u4(\"Header\"), ListComponent: u4(\"List\", \"div\"), ItemComponent: u4(\"Item\", \"div\"), ScrollerComponent: u4(\"Scroller\", \"div\"), ScrollSeekPlaceholder: u4(\"ScrollSeekPlaceholder\", \"div\") };\n});\nvar Ot = system(function(e2) {\n var n4 = e2[0], o4 = e2[1], r4 = { item: Je(o4.itemContent, \"Rename the %citem%c prop to %citemContent.\"), ItemContainer: stream(), ScrollContainer: stream(), ListContainer: stream(), emptyComponent: stream(), scrollSeek: stream() };\n function i4(e3, n5, r5) {\n connect(pipe(e3, withLatestFrom(o4.components), map2(function(e4) {\n var t2, o5 = e4[0], i5 = e4[1];\n return console.warn(\"react-virtuoso: \" + r5 + \" property is deprecated. Pass components.\" + n5 + \" instead.\"), c3({}, i5, ((t2 = {})[n5] = o5, t2));\n })), o4.components);\n }\n return subscribe(r4.scrollSeek, function(e3) {\n var r5 = e3.placeholder, i5 = m3(e3, Bt);\n console.warn(\"react-virtuoso: scrollSeek property is deprecated. Pass scrollSeekConfiguration and specify the placeholder in components.ScrollSeekPlaceholder instead.\"), publish(o4.components, c3({}, getValue(o4.components), { ScrollSeekPlaceholder: r5 })), publish(n4.scrollSeekConfiguration, i5);\n }), i4(r4.ItemContainer, \"Item\", \"ItemContainer\"), i4(r4.ListContainer, \"List\", \"ListContainer\"), i4(r4.ScrollContainer, \"Scroller\", \"ScrollContainer\"), c3({}, n4, o4, r4);\n}, tup(Lt, Pt));\nvar Mt = n3.memo(function() {\n var e2 = _t(\"gridState\"), t2 = _t(\"listClassName\"), n4 = _t(\"itemClassName\"), o4 = _t(\"itemContent\"), r4 = _t(\"computeItemKey\"), i4 = _t(\"isSeeking\"), a5 = Gt(\"scrollHeight\"), s4 = _t(\"ItemComponent\"), u4 = _t(\"ListComponent\"), m4 = _t(\"ScrollSeekPlaceholder\"), d4 = _t(\"context\"), f4 = Gt(\"itemDimensions\"), p4 = Gt(\"gap\"), h4 = _t(\"log\"), g4 = I(function(e3) {\n a5(e3.parentElement.parentElement.scrollHeight);\n var t3 = e3.firstChild;\n t3 && f4(t3.getBoundingClientRect()), p4({ row: qt(\"row-gap\", getComputedStyle(e3).rowGap, h4), column: qt(\"column-gap\", getComputedStyle(e3).columnGap, h4) });\n });\n return (0, import_react66.createElement)(u4, c3({ ref: g4, className: t2 }, it(u4, d4), { style: { paddingTop: e2.offsetTop, paddingBottom: e2.offsetBottom } }), e2.items.map(function(t3) {\n var a6 = r4(t3.index, t3.data, d4);\n return i4 ? (0, import_react66.createElement)(m4, c3({ key: a6 }, it(m4, d4), { index: t3.index, height: e2.itemHeight, width: e2.itemWidth })) : (0, import_react66.createElement)(s4, c3({}, it(s4, d4), { className: n4, \"data-index\": t3.index, key: a6 }), o4(t3.index, t3.data, d4));\n }));\n});\nvar Wt = n3.memo(function() {\n var e2 = _t(\"HeaderComponent\"), t2 = Gt(\"headerHeight\"), n4 = _t(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = _t(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nvar Vt = n3.memo(function() {\n var e2 = _t(\"FooterComponent\"), t2 = Gt(\"footerHeight\"), n4 = _t(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = _t(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nvar Ut = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(_e), r4 = Gt(\"itemDimensions\"), i4 = Gt(\"viewportDimensions\"), a5 = I(function(e3) {\n i4(e3.getBoundingClientRect());\n });\n return n3.useEffect(function() {\n o4 && (i4({ height: o4.viewportHeight, width: o4.viewportWidth }), r4({ height: o4.itemHeight, width: o4.itemWidth }));\n }, [o4, i4, r4]), n3.createElement(\"div\", { style: ot, ref: a5 }, t2);\n};\nvar At = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(_e), r4 = Gt(\"windowViewportRect\"), i4 = Gt(\"itemDimensions\"), a5 = _t(\"customScrollParent\"), l5 = De(r4, a5);\n return n3.useEffect(function() {\n o4 && (i4({ height: o4.itemHeight, width: o4.itemWidth }), r4({ offsetTop: 0, visibleHeight: o4.viewportHeight, visibleWidth: o4.viewportWidth }));\n }, [o4, r4, i4]), n3.createElement(\"div\", { ref: l5, style: ot }, t2);\n};\nvar Nt = systemToComponent(Ot, { optional: { context: \"context\", totalCount: \"totalCount\", overscan: \"overscan\", itemContent: \"itemContent\", components: \"components\", computeItemKey: \"computeItemKey\", data: \"data\", initialItemCount: \"initialItemCount\", scrollSeekConfiguration: \"scrollSeekConfiguration\", headerFooterTag: \"headerFooterTag\", listClassName: \"listClassName\", itemClassName: \"itemClassName\", useWindowScroll: \"useWindowScroll\", customScrollParent: \"customScrollParent\", scrollerRef: \"scrollerRef\", item: \"item\", ItemContainer: \"ItemContainer\", ScrollContainer: \"ScrollContainer\", ListContainer: \"ListContainer\", scrollSeek: \"scrollSeek\" }, methods: { scrollTo: \"scrollTo\", scrollBy: \"scrollBy\", scrollToIndex: \"scrollToIndex\" }, events: { isScrolling: \"isScrolling\", endReached: \"endReached\", startReached: \"startReached\", rangeChanged: \"rangeChanged\", atBottomStateChange: \"atBottomStateChange\", atTopStateChange: \"atTopStateChange\" } }, n3.memo(function(e2) {\n var t2 = c3({}, e2), o4 = _t(\"useWindowScroll\"), r4 = _t(\"customScrollParent\"), i4 = r4 || o4 ? At : Ut;\n return n3.createElement(r4 || o4 ? Yt : Kt, c3({}, t2), n3.createElement(i4, null, n3.createElement(Wt, null), n3.createElement(Mt, null), n3.createElement(Vt, null)));\n}));\nvar Dt = Nt.Component;\nvar Gt = Nt.usePublisher;\nvar _t = Nt.useEmitterValue;\nvar jt = Nt.useEmitter;\nvar Kt = st({ usePublisher: Gt, useEmitterValue: _t, useEmitter: jt });\nvar Yt = ut({ usePublisher: Gt, useEmitterValue: _t, useEmitter: jt });\nfunction qt(e2, t2, n4) {\n return \"normal\" === t2 || null != t2 && t2.endsWith(\"px\") || n4(e2 + \" was not resolved to pixel value correctly\", t2, h3.WARN), \"normal\" === t2 ? 0 : parseInt(null != t2 ? t2 : \"0\", 10);\n}\nvar Zt = system(function() {\n var e2 = statefulStream(function(e3) {\n return n3.createElement(\"td\", null, \"Item $\", e3);\n }), o4 = statefulStream(null), r4 = statefulStream(null), i4 = statefulStream(null), a5 = statefulStream({}), l5 = statefulStream(qe), s4 = statefulStream(noop4), u4 = function(e3, n4) {\n return void 0 === n4 && (n4 = null), statefulStreamFromEmitter(pipe(a5, map2(function(t2) {\n return t2[e3];\n }), distinctUntilChanged()), n4);\n };\n return { context: o4, itemContent: e2, fixedHeaderContent: r4, fixedFooterContent: i4, components: a5, computeItemKey: l5, scrollerRef: s4, TableComponent: u4(\"Table\", \"table\"), TableHeadComponent: u4(\"TableHead\", \"thead\"), TableFooterComponent: u4(\"TableFoot\", \"tfoot\"), TableBodyComponent: u4(\"TableBody\", \"tbody\"), TableRowComponent: u4(\"TableRow\", \"tr\"), ScrollerComponent: u4(\"Scroller\", \"div\"), EmptyPlaceholder: u4(\"EmptyPlaceholder\"), ScrollSeekPlaceholder: u4(\"ScrollSeekPlaceholder\"), FillerRow: u4(\"FillerRow\") };\n});\nvar Jt = system(function(e2) {\n return c3({}, e2[0], e2[1]);\n}, tup(Ae, Zt));\nvar $t = function(e2) {\n return n3.createElement(\"tr\", null, n3.createElement(\"td\", { style: { height: e2.height } }));\n};\nvar Qt = function(e2) {\n return n3.createElement(\"tr\", null, n3.createElement(\"td\", { style: { height: e2.height, padding: 0, border: 0 } }));\n};\nvar Xt = n3.memo(function() {\n var e2 = an(\"listState\"), t2 = rn(\"sizeRanges\"), o4 = an(\"useWindowScroll\"), r4 = an(\"customScrollParent\"), i4 = rn(\"windowScrollContainerState\"), a5 = rn(\"scrollContainerState\"), s4 = r4 || o4 ? i4 : a5, u4 = an(\"itemContent\"), m4 = an(\"trackItemSizes\"), d4 = T3(t2, an(\"itemSize\"), m4, s4, an(\"log\"), void 0, r4), f4 = d4.callbackRef, p4 = d4.ref, h4 = n3.useState(0), g4 = h4[0], v4 = h4[1];\n ln(\"deviation\", function(e3) {\n g4 !== e3 && (p4.current.style.marginTop = e3 + \"px\", v4(e3));\n });\n var S3 = an(\"EmptyPlaceholder\"), C4 = an(\"ScrollSeekPlaceholder\") || $t, I2 = an(\"FillerRow\") || Qt, w4 = an(\"TableBodyComponent\"), x4 = an(\"TableRowComponent\"), b5 = an(\"computeItemKey\"), y4 = an(\"isSeeking\"), H3 = an(\"paddingTopAddition\"), E4 = an(\"firstItemIndex\"), R5 = an(\"statefulTotalCount\"), L5 = an(\"context\");\n if (0 === R5 && S3)\n return (0, import_react66.createElement)(S3, it(S3, L5));\n var F2 = e2.offsetTop + H3 + g4, k3 = e2.offsetBottom, z3 = F2 > 0 ? n3.createElement(I2, { height: F2, key: \"padding-top\" }) : null, B3 = k3 > 0 ? n3.createElement(I2, { height: k3, key: \"padding-bottom\" }) : null, P3 = e2.items.map(function(e3) {\n var t3 = e3.originalIndex, n4 = b5(t3 + E4, e3.data, L5);\n return y4 ? (0, import_react66.createElement)(C4, c3({}, it(C4, L5), { key: n4, index: e3.index, height: e3.size, type: e3.type || \"item\" })) : (0, import_react66.createElement)(x4, c3({}, it(x4, L5), { key: n4, \"data-index\": t3, \"data-known-size\": e3.size, \"data-item-index\": e3.index, style: { overflowAnchor: \"none\" } }), u4(e3.index, e3.data, L5));\n });\n return (0, import_react66.createElement)(w4, c3({ ref: f4, \"data-test-id\": \"virtuoso-item-list\" }, it(w4, L5)), [z3].concat(P3, [B3]));\n});\nvar en = function(e2) {\n var o4 = e2.children, r4 = (0, import_react66.useContext)(Ge), i4 = rn(\"viewportHeight\"), a5 = rn(\"fixedItemHeight\"), l5 = I(compose(i4, function(e3) {\n return w3(e3, \"height\");\n }));\n return n3.useEffect(function() {\n r4 && (i4(r4.viewportHeight), a5(r4.itemHeight));\n }, [r4, i4, a5]), n3.createElement(\"div\", { style: ot, ref: l5, \"data-viewport-type\": \"element\" }, o4);\n};\nvar tn = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(Ge), r4 = rn(\"windowViewportRect\"), i4 = rn(\"fixedItemHeight\"), a5 = an(\"customScrollParent\"), l5 = De(r4, a5);\n return n3.useEffect(function() {\n o4 && (i4(o4.itemHeight), r4({ offsetTop: 0, visibleHeight: o4.viewportHeight, visibleWidth: 100 }));\n }, [o4, r4, i4]), n3.createElement(\"div\", { ref: l5, style: ot, \"data-viewport-type\": \"window\" }, t2);\n};\nvar nn = systemToComponent(Jt, { required: {}, optional: { context: \"context\", followOutput: \"followOutput\", firstItemIndex: \"firstItemIndex\", itemContent: \"itemContent\", fixedHeaderContent: \"fixedHeaderContent\", fixedFooterContent: \"fixedFooterContent\", overscan: \"overscan\", increaseViewportBy: \"increaseViewportBy\", totalCount: \"totalCount\", topItemCount: \"topItemCount\", initialTopMostItemIndex: \"initialTopMostItemIndex\", components: \"components\", groupCounts: \"groupCounts\", atBottomThreshold: \"atBottomThreshold\", atTopThreshold: \"atTopThreshold\", computeItemKey: \"computeItemKey\", defaultItemHeight: \"defaultItemHeight\", fixedItemHeight: \"fixedItemHeight\", itemSize: \"itemSize\", scrollSeekConfiguration: \"scrollSeekConfiguration\", data: \"data\", initialItemCount: \"initialItemCount\", initialScrollTop: \"initialScrollTop\", alignToBottom: \"alignToBottom\", useWindowScroll: \"useWindowScroll\", customScrollParent: \"customScrollParent\", scrollerRef: \"scrollerRef\", logLevel: \"logLevel\", react18ConcurrentRendering: \"react18ConcurrentRendering\" }, methods: { scrollToIndex: \"scrollToIndex\", scrollIntoView: \"scrollIntoView\", scrollTo: \"scrollTo\", scrollBy: \"scrollBy\" }, events: { isScrolling: \"isScrolling\", endReached: \"endReached\", startReached: \"startReached\", rangeChanged: \"rangeChanged\", atBottomStateChange: \"atBottomStateChange\", atTopStateChange: \"atTopStateChange\", totalListHeightChanged: \"totalListHeightChanged\", itemsRendered: \"itemsRendered\", groupIndices: \"groupIndices\" } }, n3.memo(function(e2) {\n var o4 = an(\"useWindowScroll\"), r4 = an(\"customScrollParent\"), i4 = rn(\"fixedHeaderHeight\"), a5 = rn(\"fixedFooterHeight\"), l5 = an(\"fixedHeaderContent\"), s4 = an(\"fixedFooterContent\"), u4 = an(\"context\"), m4 = I(compose(i4, function(e3) {\n return w3(e3, \"height\");\n })), d4 = I(compose(a5, function(e3) {\n return w3(e3, \"height\");\n })), f4 = r4 || o4 ? un : sn, p4 = r4 || o4 ? tn : en, h4 = an(\"TableComponent\"), g4 = an(\"TableHeadComponent\"), v4 = an(\"TableFooterComponent\"), S3 = l5 ? n3.createElement(g4, c3({ key: \"TableHead\", style: { zIndex: 1, position: \"sticky\", top: 0 }, ref: m4 }, it(g4, u4)), l5()) : null, C4 = s4 ? n3.createElement(v4, c3({ key: \"TableFoot\", style: { zIndex: 1, position: \"sticky\", bottom: 0 }, ref: d4 }, it(v4, u4)), s4()) : null;\n return n3.createElement(f4, c3({}, e2), n3.createElement(p4, null, n3.createElement(h4, c3({ style: { borderSpacing: 0 } }, it(h4, u4)), [S3, n3.createElement(Xt, { key: \"TableBody\" }), C4])));\n}));\nvar on = nn.Component;\nvar rn = nn.usePublisher;\nvar an = nn.useEmitterValue;\nvar ln = nn.useEmitter;\nvar sn = st({ usePublisher: rn, useEmitterValue: an, useEmitter: ln });\nvar un = ut({ usePublisher: rn, useEmitterValue: an, useEmitter: ln });\nvar cn = pt;\n\n\/\/ src\/lib\/shapes\/BoxShape.tsx\nvar React54 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/assertThisInitialized.js\nfunction _assertThisInitialized2(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/setPrototypeOf.js\nfunction _setPrototypeOf2(o4, p4) {\n _setPrototypeOf2 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf3(o5, p5) {\n o5.__proto__ = p5;\n return o5;\n };\n return _setPrototypeOf2(o4, p4);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/inheritsLoose.js\nfunction _inheritsLoose2(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf2(subClass, superClass);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/getPrototypeOf.js\nfunction _getPrototypeOf(o4) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o5) {\n return o5.__proto__ || Object.getPrototypeOf(o5);\n };\n return _getPrototypeOf(o4);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/isNativeFunction.js\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/isNativeReflectConstruct.js\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === \"function\")\n return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e2) {\n return false;\n }\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/construct.js\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct2(Parent2, args2, Class2) {\n var a5 = [null];\n a5.push.apply(a5, args2);\n var Constructor = Function.bind.apply(Parent2, a5);\n var instance = new Constructor();\n if (Class2)\n _setPrototypeOf2(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/wrapNativeSuper.js\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? \/* @__PURE__ *\/ new Map() : void 0;\n _wrapNativeSuper = function _wrapNativeSuper2(Class2) {\n if (Class2 === null || !_isNativeFunction(Class2))\n return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2))\n return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf2(Wrapper, Class2);\n };\n return _wrapNativeSuper(Class);\n}\n\n\/\/ ..\/..\/node_modules\/polished\/dist\/polished.esm.js\nvar PolishedError = \/* @__PURE__ *\/ function(_Error) {\n _inheritsLoose2(PolishedError2, _Error);\n function PolishedError2(code) {\n var _this;\n if (true) {\n _this = _Error.call(this, \"An error occurred. See https:\/\/github.com\/styled-components\/polished\/blob\/main\/src\/internalHelpers\/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n return _assertThisInitialized2(_this);\n }\n return PolishedError2;\n}(\/* @__PURE__ *\/ _wrapNativeSuper(Error));\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n if (saturation === 0) {\n return convert(lightness, lightness, lightness);\n }\n var huePrime = (hue % 360 + 360) % 360 \/ 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n var lightnessModification = lightness - chroma \/ 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\nvar namedColorMap = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"00ffff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"0000ff\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"00ffff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"ff00ff\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"639\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\nfunction nameToHex(color) {\n if (typeof color !== \"string\")\n return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\nvar hexRegex = \/^#[a-fA-F0-9]{6}$\/;\nvar hexRgbaRegex = \/^#[a-fA-F0-9]{8}$\/;\nvar reducedHexRegex = \/^#[a-fA-F0-9]{3}$\/;\nvar reducedRgbaHexRegex = \/^#[a-fA-F0-9]{4}$\/;\nvar rgbRegex = \/^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$\/i;\nvar rgbaRegex = \/^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$\/i;\nvar hslRegex = \/^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$\/i;\nvar hslaRegex = \/^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$\/i;\nfunction parseToRgb(color) {\n if (typeof color !== \"string\") {\n throw new PolishedError(3);\n }\n var normalizedColor = nameToHex(color);\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) \/ 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha\n };\n }\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) \/ 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n var rgbMatched = rgbRegex.exec(normalizedColor);\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) \/ 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n var hslMatched = hslRegex.exec(normalizedColor);\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) \/ 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) \/ 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) \/ 100;\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) \/ 100;\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) \/ 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n throw new PolishedError(5);\n}\nfunction rgbToHsl(color) {\n var red = color.red \/ 255;\n var green = color.green \/ 255;\n var blue = color.blue \/ 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) \/ 2;\n if (max === min) {\n if (color.alpha !== void 0) {\n return {\n hue: 0,\n saturation: 0,\n lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness\n };\n }\n }\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta \/ (2 - max - min) : delta \/ (max + min);\n switch (max) {\n case red:\n hue = (green - blue) \/ delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = (blue - red) \/ delta + 2;\n break;\n default:\n hue = (red - green) \/ delta + 4;\n break;\n }\n hue *= 60;\n if (color.alpha !== void 0) {\n return {\n hue,\n saturation,\n lightness,\n alpha: color.alpha\n };\n }\n return {\n hue,\n saturation,\n lightness\n };\n}\nfunction parseToHsl(color) {\n return rgbToHsl(parseToRgb(color));\n}\nvar reduceHexValue = function reduceHexValue2(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n return value;\n};\nvar reduceHexValue$1 = reduceHexValue;\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\nfunction hsl(value, saturation, lightness) {\n if (typeof value === \"number\" && typeof saturation === \"number\" && typeof lightness === \"number\") {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === \"object\" && saturation === void 0 && lightness === void 0) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n throw new PolishedError(1);\n}\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === \"number\" && typeof saturation === \"number\" && typeof lightness === \"number\" && typeof alpha === \"number\") {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === \"object\" && saturation === void 0 && lightness === void 0 && alpha === void 0) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n throw new PolishedError(2);\n}\nfunction rgb(value, green, blue) {\n if (typeof value === \"number\" && typeof green === \"number\" && typeof blue === \"number\") {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === \"object\" && green === void 0 && blue === void 0) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n throw new PolishedError(6);\n}\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === \"string\" && typeof secondValue === \"number\") {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === \"number\" && typeof secondValue === \"number\" && typeof thirdValue === \"number\" && typeof fourthValue === \"number\") {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === \"object\" && secondValue === void 0 && thirdValue === void 0 && fourthValue === void 0) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n throw new PolishedError(7);\n}\nvar isRgb = function isRgb2(color) {\n return typeof color.red === \"number\" && typeof color.green === \"number\" && typeof color.blue === \"number\" && (typeof color.alpha !== \"number\" || typeof color.alpha === \"undefined\");\n};\nvar isRgba = function isRgba2(color) {\n return typeof color.red === \"number\" && typeof color.green === \"number\" && typeof color.blue === \"number\" && typeof color.alpha === \"number\";\n};\nvar isHsl = function isHsl2(color) {\n return typeof color.hue === \"number\" && typeof color.saturation === \"number\" && typeof color.lightness === \"number\" && (typeof color.alpha !== \"number\" || typeof color.alpha === \"undefined\");\n};\nvar isHsla = function isHsla2(color) {\n return typeof color.hue === \"number\" && typeof color.saturation === \"number\" && typeof color.lightness === \"number\" && typeof color.alpha === \"number\";\n};\nfunction toColorString(color) {\n if (typeof color !== \"object\")\n throw new PolishedError(8);\n if (isRgba(color))\n return rgba(color);\n if (isRgb(color))\n return rgb(color);\n if (isHsla(color))\n return hsla(color);\n if (isHsl(color))\n return hsl(color);\n throw new PolishedError(8);\n}\nfunction curried(f4, length, acc) {\n return function fn() {\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f4.apply(this, combined) : curried(f4, length, combined);\n };\n}\nfunction curry(f4) {\n return curried(f4, f4.length, []);\n}\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\nfunction darken(amount, color) {\n if (color === \"transparent\")\n return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends2({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n}\nvar curriedDarken = \/* @__PURE__ *\/ curry(darken);\nvar curriedDarken$1 = curriedDarken;\n\n\/\/ src\/lib\/shapes\/style-props.tsx\nfunction withClampedStyles(self2, props) {\n var _a3;\n if (props.strokeWidth !== void 0)\n props.strokeWidth = Math.max(props.strokeWidth, 1);\n if (props.opacity !== void 0)\n props.opacity = Math.min(1, Math.max(props.opacity, 0));\n let fill = (_a3 = props.fill) != null ? _a3 : self2.props.fill;\n if (fill !== void 0 && !isBuiltInColor(fill) && fill !== \"var(--ls-secondary-background-color)\" && !props.noFill && withFillShapes.includes(self2.props.type)) {\n const strokeColor = curriedDarken$1(0.3, fill);\n props.stroke = strokeColor;\n }\n return props;\n}\n\n\/\/ src\/lib\/shapes\/BindingIndicator.tsx\nvar import_jsx_runtime51 = require(\"react\/jsx-runtime\");\nfunction BindingIndicator({ strokeWidth, size, mode }) {\n return mode === \"svg\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime51.jsx)(\"rect\", {\n className: \"tl-binding-indicator\",\n x: strokeWidth,\n y: strokeWidth,\n rx: 2,\n ry: 2,\n width: Math.max(0, size[0] - strokeWidth * 2),\n height: Math.max(0, size[1] - strokeWidth * 2),\n strokeWidth: strokeWidth * 4\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime51.jsx)(\"div\", {\n className: \"tl-binding-indicator\",\n style: {\n position: \"absolute\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n boxShadow: \"0 0 0 4px var(--tl-binding)\",\n borderRadius: 4\n }\n });\n}\n\n\/\/ src\/lib\/shapes\/text\/TextLabel.tsx\nvar React53 = __toESM(require(\"react\"));\n\n\/\/ src\/lib\/shapes\/text\/TextAreaUtils.ts\nvar INDENT = \" \";\nvar TextAreaUtils = class {\n static insertTextFirefox(field, text) {\n field.setRangeText(\n text,\n field.selectionStart || 0,\n field.selectionEnd || 0,\n \"end\"\n );\n field.dispatchEvent(\n new InputEvent(\"input\", {\n data: text,\n inputType: \"insertText\",\n isComposing: false\n })\n );\n }\n static insert(field, text) {\n const document2 = field.ownerDocument;\n const initialFocus = document2.activeElement;\n if (initialFocus !== field) {\n field.focus();\n }\n if (!document2.execCommand(\"insertText\", false, text)) {\n TextAreaUtils.insertTextFirefox(field, text);\n }\n if (initialFocus === document2.body) {\n field.blur();\n } else if (initialFocus instanceof HTMLElement && initialFocus !== field) {\n initialFocus.focus();\n }\n }\n static set(field, text) {\n field.select();\n TextAreaUtils.insert(field, text);\n }\n static getSelection(field) {\n const { selectionStart, selectionEnd } = field;\n return field.value.slice(\n selectionStart ? selectionStart : void 0,\n selectionEnd ? selectionEnd : void 0\n );\n }\n static wrapSelection(field, wrap, wrapEnd) {\n const { selectionStart, selectionEnd } = field;\n const selection = TextAreaUtils.getSelection(field);\n TextAreaUtils.insert(field, wrap + selection + (wrapEnd != null ? wrapEnd : wrap));\n field.selectionStart = (selectionStart || 0) + wrap.length;\n field.selectionEnd = (selectionEnd || 0) + wrap.length;\n }\n static replace(field, searchValue, replacer) {\n let drift = 0;\n field.value.replace(searchValue, (...args) => {\n const matchStart = drift + args[args.length - 2];\n const matchLength = args[0].length;\n field.selectionStart = matchStart;\n field.selectionEnd = matchStart + matchLength;\n const replacement = typeof replacer === \"string\" ? replacer : replacer(...args);\n TextAreaUtils.insert(field, replacement);\n field.selectionStart = matchStart;\n drift += replacement.length - matchLength;\n return replacement;\n });\n }\n static findLineEnd(value, currentEnd) {\n const lastLineStart = value.lastIndexOf(\"\\n\", currentEnd - 1) + 1;\n if (value.charAt(lastLineStart) !== \"\t\") {\n return currentEnd;\n }\n return lastLineStart + 1;\n }\n static indent(element) {\n var _a3;\n const { selectionStart, selectionEnd, value } = element;\n const selectedContrast = value.slice(selectionStart, selectionEnd);\n const lineBreakCount = (_a3 = \/\\n\/g.exec(selectedContrast)) == null ? void 0 : _a3.length;\n if (lineBreakCount && lineBreakCount > 0) {\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const newSelection = element.value.slice(firstLineStart, selectionEnd - 1);\n const indentedText = newSelection.replace(\n \/^|\\n\/g,\n `$&${INDENT}`\n );\n const replacementsCount = indentedText.length - newSelection.length;\n element.setSelectionRange(firstLineStart, selectionEnd - 1);\n TextAreaUtils.insert(element, indentedText);\n element.setSelectionRange(selectionStart + 1, selectionEnd + replacementsCount);\n } else {\n TextAreaUtils.insert(element, INDENT);\n }\n }\n static unindent(element) {\n const { selectionStart, selectionEnd, value } = element;\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const minimumSelectionEnd = TextAreaUtils.findLineEnd(value, selectionEnd);\n const newSelection = element.value.slice(firstLineStart, minimumSelectionEnd);\n const indentedText = newSelection.replace(\/(^|\\n)(\\t| {1,2})\/g, \"$1\");\n const replacementsCount = newSelection.length - indentedText.length;\n element.setSelectionRange(firstLineStart, minimumSelectionEnd);\n TextAreaUtils.insert(element, indentedText);\n const firstLineIndentation = \/\\t| {1,2}\/.exec(value.slice(firstLineStart, selectionStart));\n const difference = firstLineIndentation ? firstLineIndentation[0].length : 0;\n const newSelectionStart = selectionStart - difference;\n element.setSelectionRange(\n selectionStart - difference,\n Math.max(newSelectionStart, selectionEnd - replacementsCount)\n );\n }\n};\n\n\/\/ src\/lib\/shapes\/text\/TextLabel.tsx\nvar import_jsx_runtime52 = require(\"react\/jsx-runtime\");\nvar stopPropagation = (e2) => e2.stopPropagation();\nvar placeholder = \"Enter text\";\nvar TextLabel = React53.memo(function TextLabel2({\n font: font5,\n text,\n color,\n fontStyle,\n fontSize,\n fontWeight,\n offsetX = 0,\n offsetY = 0,\n scale = 1,\n isEditing = false,\n pointerEvents = false,\n onBlur,\n onChange\n}) {\n const rInput = React53.useRef(null);\n const rIsMounted = React53.useRef(false);\n const handleChange = React53.useCallback(\n (e2) => {\n onChange(TextUtils.normalizeText(e2.currentTarget.value));\n },\n [onChange]\n );\n const handleKeyDown = React53.useCallback(\n (e2) => {\n if (e2.key === \"Escape\")\n return;\n if (e2.key === \"Tab\" && text.length === 0) {\n e2.preventDefault();\n return;\n }\n if (!(e2.key === \"Meta\" || e2.metaKey)) {\n e2.stopPropagation();\n } else if (e2.key === \"z\" && e2.metaKey) {\n document.execCommand(e2.shiftKey ? \"redo\" : \"undo\", false);\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n if (e2.key === \"Tab\") {\n e2.preventDefault();\n if (e2.shiftKey) {\n TextAreaUtils.unindent(e2.currentTarget);\n } else {\n TextAreaUtils.indent(e2.currentTarget);\n }\n onChange == null ? void 0 : onChange(TextUtils.normalizeText(e2.currentTarget.value));\n }\n },\n [onChange]\n );\n const handleBlur = React53.useCallback(\n (e2) => {\n if (!isEditing)\n return;\n e2.currentTarget.setSelectionRange(0, 0);\n onBlur == null ? void 0 : onBlur();\n },\n [onBlur]\n );\n const handleFocus = React53.useCallback(\n (e2) => {\n if (!isEditing || !rIsMounted.current)\n return;\n if (document.activeElement === e2.currentTarget) {\n e2.currentTarget.select();\n }\n },\n [isEditing]\n );\n const handlePointerDown = React53.useCallback(\n (e2) => {\n if (isEditing) {\n e2.stopPropagation();\n }\n },\n [isEditing]\n );\n React53.useEffect(() => {\n if (isEditing) {\n requestAnimationFrame(() => {\n rIsMounted.current = true;\n const elm = rInput.current;\n if (elm) {\n elm.focus();\n elm.select();\n }\n });\n }\n }, [isEditing, onBlur]);\n const rInnerWrapper = React53.useRef(null);\n React53.useLayoutEffect(() => {\n const elm = rInnerWrapper.current;\n if (!elm)\n return;\n const size = getTextLabelSize(\n text || placeholder,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n );\n elm.style.transform = `scale(${scale}, ${scale}) translate(${offsetX}px, ${offsetY}px)`;\n elm.style.width = size[0] + 1 + \"px\";\n elm.style.height = size[1] + 1 + \"px\";\n }, [text, fontWeight, fontSize, offsetY, offsetX, scale]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime52.jsx)(\"div\", {\n className: \"tl-text-label-wrapper\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime52.jsxs)(\"div\", {\n className: \"tl-text-label-inner-wrapper\",\n ref: rInnerWrapper,\n style: {\n font: font5,\n fontStyle,\n fontSize,\n fontWeight,\n color,\n pointerEvents: pointerEvents ? \"all\" : \"none\",\n userSelect: isEditing ? \"text\" : \"none\"\n },\n children: [\n isEditing ? \/* @__PURE__ *\/ (0, import_jsx_runtime52.jsx)(\"textarea\", {\n ref: rInput,\n style: {\n font: font5,\n color,\n fontStyle,\n fontSize,\n fontWeight\n },\n className: \"tl-text-label-textarea\",\n name: \"text\",\n tabIndex: -1,\n autoComplete: \"false\",\n autoCapitalize: \"false\",\n autoCorrect: \"false\",\n autoSave: \"false\",\n autoFocus: true,\n placeholder,\n spellCheck: \"true\",\n wrap: \"off\",\n dir: \"auto\",\n datatype: \"wysiwyg\",\n defaultValue: text,\n color,\n onFocus: handleFocus,\n onChange: handleChange,\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n onPointerDown: handlePointerDown,\n onContextMenu: stopPropagation,\n onCopy: stopPropagation,\n onPaste: stopPropagation,\n onCut: stopPropagation\n }) : text,\n \"\\u200B\"\n ]\n })\n });\n});\n\n\/\/ src\/lib\/shapes\/BoxShape.tsx\nvar import_jsx_runtime53 = require(\"react\/jsx-runtime\");\nvar font = \"20px \/ 1 var(--ls-font-family)\";\nvar levelToScale = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar BoxShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(\n ({ events, isErasing, isBinding, isSelected, isEditing, onEditingEnd }) => {\n const {\n props: {\n size: [w4, h4],\n stroke,\n fill,\n noFill,\n strokeWidth,\n strokeType,\n borderRadius,\n opacity,\n label,\n italic,\n fontWeight,\n fontSize\n }\n } = this;\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n ) : [0, 0];\n const midPoint = src_default.mul(this.props.size, 0.5);\n const scale = Math.max(0.5, Math.min(1, w4 \/ labelSize[0], h4 \/ labelSize[1]));\n const bounds = this.getBounds();\n const offset = React54.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React54.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n className: \"tl-box-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(TextLabel, {\n font,\n text: label,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1],\n fontSize,\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsxs)(SVGContainer, {\n opacity: isErasing ? 0.2 : opacity,\n children: [\n isBinding && \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(BindingIndicator, {\n mode: \"svg\",\n strokeWidth,\n size: [w4, h4]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"rect\", {\n className: isSelected || !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n x: strokeWidth \/ 2,\n y: strokeWidth \/ 2,\n rx: borderRadius,\n ry: borderRadius,\n width: Math.max(0.01, w4 - strokeWidth),\n height: Math.max(0.01, h4 - strokeWidth),\n pointerEvents: \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"rect\", {\n x: strokeWidth \/ 2,\n y: strokeWidth \/ 2,\n rx: borderRadius,\n ry: borderRadius,\n width: Math.max(0.01, w4 - strokeWidth),\n height: Math.max(0.01, h4 - strokeWidth),\n strokeWidth,\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\")\n })\n ]\n })\n ]\n }));\n }\n ));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale[v4 != null ? v4 : \"md\"],\n strokeWidth: levelToScale[v4 != null ? v4 : \"md\"] \/ 10\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n borderRadius,\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"rect\", {\n width: w4,\n height: h4,\n rx: borderRadius,\n ry: borderRadius,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : void 0\n })\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n if (props.borderRadius !== void 0)\n props.borderRadius = Math.max(0, props.borderRadius);\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n};\n__publicField(BoxShape, \"id\", \"box\");\n__publicField(BoxShape, \"defaultProps\", {\n id: \"box\",\n parentId: \"page\",\n type: \"box\",\n point: [0, 0],\n size: [100, 100],\n borderRadius: 2,\n stroke: \"\",\n fill: \"\",\n noFill: false,\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1,\n label: \"\"\n});\n__decorateClass([\n computed\n], BoxShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], BoxShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/EllipseShape.tsx\nvar React55 = __toESM(require(\"react\"));\nvar import_jsx_runtime54 = require(\"react\/jsx-runtime\");\nvar font2 = \"18px \/ 1 var(--ls-font-family)\";\nvar levelToScale2 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar EllipseShape = class extends TLEllipseShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(\n ({ isSelected, isErasing, events, isEditing, onEditingEnd }) => {\n const {\n size: [w4, h4],\n stroke,\n fill,\n noFill,\n strokeWidth,\n strokeType,\n opacity,\n label,\n italic,\n fontWeight,\n fontSize\n } = this.props;\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n ) : [0, 0];\n const midPoint = src_default.mul(this.props.size, 0.5);\n const scale = Math.max(0.5, Math.min(1, w4 \/ labelSize[0], h4 \/ labelSize[1]));\n const bounds = this.getBounds();\n const offset = React55.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React55.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n className: \"tl-ellipse-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(TextLabel, {\n font: font2,\n text: label,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1],\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontSize,\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsxs)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n className: isSelected || !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2)\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2),\n strokeWidth,\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\")\n })\n ]\n }))\n ]\n }));\n }\n ));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale2[v4 != null ? v4 : \"md\"],\n strokeWidth: levelToScale2[v4 != null ? v4 : \"md\"] \/ 10\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n size: [w4, h4],\n isLocked\n } = this.props;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: w4 \/ 2,\n ry: h4 \/ 2,\n strokeWidth: 2,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n })\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx(opts) {\n const {\n size: [w4, h4],\n stroke,\n fill,\n noFill,\n strokeWidth,\n strokeType,\n opacity\n } = this.props;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsxs)(\"g\", {\n opacity,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n className: !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2)\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2),\n strokeWidth,\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\")\n })\n ]\n });\n }\n};\n__publicField(EllipseShape, \"id\", \"ellipse\");\n__publicField(EllipseShape, \"defaultProps\", {\n id: \"ellipse\",\n parentId: \"page\",\n type: \"ellipse\",\n point: [0, 0],\n size: [100, 100],\n stroke: \"\",\n fill: \"\",\n noFill: false,\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1,\n label: \"\"\n});\n__decorateClass([\n computed\n], EllipseShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], EllipseShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/GroupShape.tsx\nvar import_jsx_runtime55 = require(\"react\/jsx-runtime\");\nvar GroupShape = class extends TLGroupShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"ReactComponent\", observer(({ events }) => {\n const strokeWidth = 2;\n const bounds = this.getBounds();\n const app = useApp();\n const childSelected = app.selectedShapesArray.some((s4) => {\n return app.shapesInGroups([this]).includes(s4);\n });\n const Indicator2 = this.ReactIndicator;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsxs)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n className: \"tl-group-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(\"rect\", {\n className: \"tl-hitarea-fill\",\n x: strokeWidth \/ 2,\n y: strokeWidth \/ 2,\n width: Math.max(0.01, bounds.width - strokeWidth),\n height: Math.max(0.01, bounds.height - strokeWidth),\n pointerEvents: \"all\"\n }),\n childSelected && \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(\"g\", {\n stroke: \"var(--color-selectedFill)\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(Indicator2, {})\n })\n ]\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(\"rect\", {\n strokeDasharray: \"8 2\",\n x: -GROUP_PADDING,\n y: -GROUP_PADDING,\n rx: GROUP_PADDING \/ 2,\n ry: GROUP_PADDING \/ 2,\n width: bounds.width + GROUP_PADDING * 2,\n height: bounds.height + GROUP_PADDING * 2,\n fill: \"transparent\"\n });\n }));\n }\n};\n__publicField(GroupShape, \"id\", \"group\");\n__publicField(GroupShape, \"defaultProps\", {\n id: \"group\",\n type: \"group\",\n parentId: \"page\",\n point: [0, 0],\n size: [0, 0],\n children: []\n});\n\n\/\/ src\/lib\/shapes\/HighlighterShape.tsx\nvar import_jsx_runtime56 = require(\"react\/jsx-runtime\");\nvar levelToScale3 = {\n xs: 1,\n sm: 1.6,\n md: 2,\n lg: 3.2,\n xl: 4.8,\n xxl: 6\n};\nvar HighlighterShape = class extends TLDrawShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing }) => {\n const {\n pointsPath,\n props: { stroke, strokeWidth, opacity }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : 1,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(\"path\", {\n d: pointsPath,\n strokeWidth: strokeWidth * 16,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: \"none\",\n pointerEvents: \"all\",\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n opacity\n })\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n strokeWidth: levelToScale3[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const { pointsPath, props } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(\"path\", {\n d: pointsPath,\n fill: \"none\",\n strokeDasharray: props.isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n props = withClampedStyles(this, props);\n if (props.strokeWidth !== void 0)\n props.strokeWidth = Math.max(props.strokeWidth, 1);\n return props;\n });\n makeObservable(this);\n }\n get pointsPath() {\n const { points } = this.props;\n return SvgPathUtils.getCurvedPathForPoints(points);\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx() {\n const {\n pointsPath,\n props: { stroke, strokeWidth, opacity }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(\"path\", {\n d: pointsPath,\n strokeWidth: strokeWidth * 16,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: \"none\",\n pointerEvents: \"all\",\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n opacity\n });\n }\n};\n__publicField(HighlighterShape, \"id\", \"highlighter\");\n__publicField(HighlighterShape, \"defaultProps\", {\n id: \"highlighter\",\n parentId: \"page\",\n type: \"highlighter\",\n point: [0, 0],\n points: [],\n isComplete: false,\n stroke: \"\",\n fill: \"\",\n noFill: true,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 0.5\n});\n__decorateClass([\n computed\n], HighlighterShape.prototype, \"pointsPath\", 1);\n__decorateClass([\n computed\n], HighlighterShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], HighlighterShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/HTMLShape.tsx\nvar React56 = __toESM(require(\"react\"));\n\n\/\/ src\/hooks\/useCameraMoving.ts\nfunction useCameraMovingRef() {\n const app = useApp();\n return app.inputs.state === \"panning\" || app.inputs.state === \"pinching\";\n}\n\n\/\/ src\/lib\/shapes\/HTMLShape.tsx\nvar import_jsx_runtime57 = require(\"react\/jsx-runtime\");\nvar levelToScale4 = {\n xs: 0.5,\n sm: 0.8,\n md: 1,\n lg: 1.5,\n xl: 2,\n xxl: 3\n};\nvar HTMLShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"htmlAnchorRef\", React56.createRef());\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n var _a3;\n const newSize = src_default.mul(\n this.props.size,\n levelToScale4[v4 != null ? v4 : \"md\"] \/ levelToScale4[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"]\n );\n this.update({\n scaleLevel: v4\n });\n yield delay();\n this.update({\n size: newSize\n });\n }));\n __publicField(this, \"onResetBounds\", (info) => {\n var _a3;\n if (this.htmlAnchorRef.current) {\n const rect = this.htmlAnchorRef.current.getBoundingClientRect();\n const [w4, h4] = src_default.div([rect.width, rect.height], (_a3 = info == null ? void 0 : info.zoom) != null ? _a3 : 1);\n const clamp3 = (v4) => Math.max(Math.min(v4 || 400, 1400), 10);\n this.update({\n size: [clamp3(w4), clamp3(h4)]\n });\n }\n return this;\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing }) => {\n const {\n props: { html, scaleLevel }\n } = this;\n const isMoving = useCameraMovingRef();\n const app = useApp();\n const isSelected = app.selectedIds.has(this.id);\n const tlEventsEnabled = isMoving || isSelected && !isEditing || app.selectedTool.id !== \"select\";\n const stop2 = React56.useCallback(\n (e2) => {\n if (!tlEventsEnabled) {\n e2.stopPropagation();\n }\n },\n [tlEventsEnabled]\n );\n const scaleRatio = levelToScale4[scaleLevel != null ? scaleLevel : \"md\"];\n React56.useEffect(() => {\n if (this.props.size[1] === 0) {\n this.onResetBounds({ zoom: app.viewport.camera.zoom });\n app.persist(true);\n }\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(\"div\", {\n onWheelCapture: stop2,\n onPointerDown: stop2,\n onPointerUp: stop2,\n className: \"tl-html-container\",\n style: {\n pointerEvents: !isMoving && (isEditing || isSelected) ? \"all\" : \"none\",\n overflow: isEditing ? \"auto\" : \"hidden\",\n width: `calc(100% \/ ${scaleRatio})`,\n height: `calc(100% \/ ${scaleRatio})`,\n transform: `scale(${scaleRatio})`\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(\"div\", {\n ref: this.htmlAnchorRef,\n className: \"tl-html-anchor\",\n dangerouslySetInnerHTML: { __html: html.trim() }\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n};\n__publicField(HTMLShape, \"id\", \"html\");\n__publicField(HTMLShape, \"defaultProps\", {\n id: \"html\",\n type: \"html\",\n parentId: \"page\",\n point: [0, 0],\n size: [600, 0],\n html: \"\"\n});\n__decorateClass([\n computed\n], HTMLShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], HTMLShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/IFrameShape.tsx\nvar React57 = __toESM(require(\"react\"));\nvar import_jsx_runtime58 = require(\"react\/jsx-runtime\");\nvar IFrameShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"frameRef\", React57.createRef());\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"onIFrameSourceChange\", (url) => {\n this.update({ url });\n });\n __publicField(this, \"reload\", () => {\n var _a3, _b;\n if (this.frameRef.current) {\n this.frameRef.current.src = (_b = (_a3 = this.frameRef) == null ? void 0 : _a3.current) == null ? void 0 : _b.src;\n }\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing }) => {\n const ref = React57.useRef(null);\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"div\", {\n className: \"tl-iframe-container\",\n style: {\n pointerEvents: isEditing || app.readOnly ? \"all\" : \"none\",\n userSelect: \"none\"\n },\n children: this.props.url && \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"div\", {\n style: {\n overflow: \"hidden\",\n position: \"relative\",\n height: \"100%\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"iframe\", {\n ref: this.frameRef,\n className: \"absolute inset-0 w-full h-full m-0\",\n width: \"100%\",\n height: \"100%\",\n src: `${this.props.url}`,\n frameBorder: \"0\",\n sandbox: \"allow-scripts allow-same-origin allow-presentation\"\n })\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n};\n__publicField(IFrameShape, \"id\", \"iframe\");\n__publicField(IFrameShape, \"defaultProps\", {\n id: \"iframe\",\n type: \"iframe\",\n parentId: \"page\",\n point: [0, 0],\n size: [853, 480],\n url: \"\"\n});\n__decorateClass([\n action\n], IFrameShape.prototype, \"onIFrameSourceChange\", 2);\n__decorateClass([\n action\n], IFrameShape.prototype, \"reload\", 2);\n\n\/\/ src\/lib\/shapes\/ImageShape.tsx\nvar React58 = __toESM(require(\"react\"));\nvar import_jsx_runtime59 = require(\"react\/jsx-runtime\");\nvar ImageShape = class extends TLImageShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isBinding, asset }) => {\n const {\n props: {\n opacity,\n objectFit,\n clipping,\n size: [w4, h4]\n }\n } = this;\n const [t2, r4, b5, l5] = Array.isArray(clipping) ? clipping : [clipping, clipping, clipping, clipping];\n const { handlers } = React58.useContext(LogseqContext);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsxs)(HTMLContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: [\n isBinding && \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(BindingIndicator, {\n mode: \"html\",\n strokeWidth: 4,\n size: [w4, h4]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"div\", {\n \"data-asset-loaded\": !!asset,\n className: \"tl-image-shape-container\",\n children: asset ? \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"img\", {\n src: handlers ? handlers.makeAssetUrl(asset.src) : asset.src,\n draggable: false,\n style: {\n position: \"relative\",\n top: -t2,\n left: -l5,\n width: w4 + (l5 - r4),\n height: h4 + (t2 - b5),\n objectFit\n }\n }) : \"Asset is missing\"\n })\n ]\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n getShapeSVGJsx({ assets }) {\n var _a3, _b;\n const bounds = this.getBounds();\n const {\n assetId,\n clipping,\n size: [w4, h4]\n } = this.props;\n const asset = assets.find((ass) => ass.id === assetId);\n if (asset) {\n const [t2, r4, b5, l5] = Array.isArray(clipping) ? clipping : [clipping, clipping, clipping, clipping];\n const make_asset_url = (_b = (_a3 = window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.make_asset_url;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"image\", {\n width: bounds.width,\n height: bounds.height,\n href: make_asset_url ? make_asset_url(asset.src) : asset.src\n });\n } else {\n return super.getShapeSVGJsx({});\n }\n }\n};\n__publicField(ImageShape, \"id\", \"image\");\n__publicField(ImageShape, \"defaultProps\", {\n id: \"image1\",\n parentId: \"page\",\n type: \"image\",\n point: [0, 0],\n size: [100, 100],\n opacity: 1,\n assetId: \"\",\n clipping: 0,\n objectFit: \"fill\",\n isAspectRatioLocked: true\n});\n\n\/\/ src\/lib\/shapes\/LineShape.tsx\nvar React60 = __toESM(require(\"react\"));\n\n\/\/ src\/lib\/shapes\/arrow\/Arrow.tsx\nvar React59 = __toESM(require(\"react\"));\n\n\/\/ src\/lib\/shapes\/arrow\/ArrowHead.tsx\nvar import_jsx_runtime60 = require(\"react\/jsx-runtime\");\nfunction Arrowhead({ left, middle, right, stroke, strokeWidth }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime60.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime60.jsx)(\"path\", {\n className: \"tl-stroke-hitarea\",\n d: `M ${left} L ${middle} ${right}`\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime60.jsx)(\"path\", {\n d: `M ${left} L ${middle} ${right}`,\n fill: \"none\",\n stroke,\n strokeWidth,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n pointerEvents: \"none\"\n })\n ]\n });\n}\n\n\/\/ src\/lib\/shapes\/arrow\/arrowHelpers.ts\nfunction getStraightArrowHeadPoints(A4, B3, r4) {\n const ints = intersectCircleLineSegment(A4, r4, A4, B3).points;\n if (!ints) {\n console.warn(\"Could not find an intersection for the arrow head.\");\n return { left: A4, right: A4 };\n }\n const int = ints[0];\n const left = int ? src_default.rotWith(int, A4, Math.PI \/ 6) : A4;\n const right = int ? src_default.rotWith(int, A4, -Math.PI \/ 6) : A4;\n return { left, right };\n}\nfunction getStraightArrowHeadPath(A4, B3, r4) {\n const { left, right } = getStraightArrowHeadPoints(A4, B3, r4);\n return `M ${left} L ${A4} ${right}`;\n}\nfunction getArrowPath(style, start, end, decorationStart, decorationEnd) {\n const strokeWidth = style.strokeWidth;\n const arrowDist = src_default.dist(start, end);\n const arrowHeadLength = Math.min(arrowDist \/ 3, strokeWidth * 16);\n const path = [];\n path.push(`M ${start} L ${end}`);\n if (decorationStart) {\n path.push(getStraightArrowHeadPath(start, end, arrowHeadLength));\n }\n if (decorationEnd) {\n path.push(getStraightArrowHeadPath(end, start, arrowHeadLength));\n }\n return path.join(\" \");\n}\n\n\/\/ src\/lib\/shapes\/arrow\/Arrow.tsx\nvar import_jsx_runtime61 = require(\"react\/jsx-runtime\");\nvar levelToScale5 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar Arrow = React59.memo(function StraightArrow({\n style,\n start,\n end,\n decorationStart,\n decorationEnd,\n scaleLevel\n}) {\n const arrowDist = src_default.dist(start, end);\n if (arrowDist < 2)\n return null;\n const { strokeWidth } = style;\n const sw = 1 + strokeWidth * levelToScale5[scaleLevel != null ? scaleLevel : \"md\"] \/ 10;\n const path = \"M\" + src_default.toFixed(start) + \"L\" + src_default.toFixed(end);\n const arrowHeadLength = Math.min(arrowDist \/ 3, strokeWidth * levelToScale5[scaleLevel != null ? scaleLevel : \"md\"]);\n const startArrowHead = decorationStart ? getStraightArrowHeadPoints(start, end, arrowHeadLength) : null;\n const endArrowHead = decorationEnd ? getStraightArrowHeadPoints(end, start, arrowHeadLength) : null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(\"path\", {\n className: \"tl-stroke-hitarea\",\n d: path\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(\"path\", {\n d: path,\n strokeWidth: sw,\n stroke: style.stroke,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeDasharray: style.strokeType === \"dashed\" ? \"8 4\" : void 0,\n pointerEvents: \"stroke\"\n }),\n startArrowHead && \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(Arrowhead, {\n left: startArrowHead.left,\n middle: start,\n right: startArrowHead.right,\n stroke: style.stroke,\n strokeWidth: sw\n }),\n endArrowHead && \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(Arrowhead, {\n left: endArrowHead.left,\n middle: end,\n right: endArrowHead.right,\n stroke: style.stroke,\n strokeWidth: sw\n })\n ]\n });\n});\n\n\/\/ src\/lib\/shapes\/text\/LabelMask.tsx\nvar import_jsx_runtime62 = require(\"react\/jsx-runtime\");\nfunction LabelMask({ id: id3, bounds, labelSize, offset, scale = 1 }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsx)(\"defs\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsxs)(\"mask\", {\n id: id3 + \"_clip\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsx)(\"rect\", {\n x: -100,\n y: -100,\n width: bounds.width + 200,\n height: bounds.height + 200,\n fill: \"white\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsx)(\"rect\", {\n x: bounds.width \/ 2 - labelSize[0] \/ 2 * scale + ((offset == null ? void 0 : offset[0]) || 0),\n y: bounds.height \/ 2 - labelSize[1] \/ 2 * scale + ((offset == null ? void 0 : offset[1]) || 0),\n width: labelSize[0] * scale,\n height: labelSize[1] * scale,\n rx: 4 * scale,\n ry: 4 * scale,\n fill: \"black\"\n })\n ]\n })\n });\n}\n\n\/\/ src\/lib\/shapes\/LineShape.tsx\nvar import_jsx_runtime63 = require(\"react\/jsx-runtime\");\nvar font3 = \"20px \/ 1 var(--ls-font-family)\";\nvar levelToScale6 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar LineShape = class extends TLLineShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"hideSelection\", true);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, onEditingEnd }) => {\n const {\n stroke,\n handles: { start, end },\n opacity,\n label,\n italic,\n fontWeight,\n fontSize,\n id: id3\n } = this.props;\n const labelSize = label || isEditing ? getTextLabelSize(\n label || \"Enter text\",\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 6\n ) : [0, 0];\n const midPoint = src_default.med(start.point, end.point);\n const dist = src_default.dist(start.point, end.point);\n const scale = Math.max(\n 0.5,\n Math.min(1, Math.max(dist \/ (labelSize[1] + 128), dist \/ (labelSize[0] + 128)))\n );\n const bounds = this.getBounds();\n const offset = React60.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React60.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n className: \"tl-line-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(TextLabel, {\n font: font3,\n text: label,\n fontSize,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1],\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(SVGContainer, {\n opacity: isErasing ? 0.2 : opacity,\n id: id3 + \"_svg\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(LabelMask, {\n id: id3,\n bounds,\n labelSize,\n offset,\n scale\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"g\", {\n pointerEvents: \"none\",\n mask: label || isEditing ? `url(#${id3}_clip)` : ``,\n children: this.getShapeSVGJsx({ preview: false })\n })\n ]\n })\n ]\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale6[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(({ isEditing }) => {\n const {\n id: id3,\n decorations,\n label,\n strokeWidth,\n fontSize,\n fontWeight,\n handles: { start, end },\n isLocked\n } = this.props;\n const bounds = this.getBounds();\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 6\n ) : [0, 0];\n const midPoint = src_default.med(start.point, end.point);\n const dist = src_default.dist(start.point, end.point);\n const scale = Math.max(\n 0.5,\n Math.min(1, Math.max(dist \/ (labelSize[1] + 128), dist \/ (labelSize[0] + 128)))\n );\n const offset = React60.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"path\", {\n mask: label ? `url(#${id3}_clip)` : ``,\n d: getArrowPath(\n { strokeWidth },\n start.point,\n end.point,\n decorations == null ? void 0 : decorations.start,\n decorations == null ? void 0 : decorations.end\n ),\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n }),\n label && !isEditing && \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"rect\", {\n x: bounds.width \/ 2 - labelSize[0] \/ 2 * scale + offset[0],\n y: bounds.height \/ 2 - labelSize[1] \/ 2 * scale + offset[1],\n width: labelSize[0] * scale,\n height: labelSize[1] * scale,\n rx: 4 * scale,\n ry: 4 * scale,\n fill: \"transparent\"\n })\n ]\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx({ preview }) {\n const {\n stroke,\n fill,\n strokeWidth,\n strokeType,\n decorations,\n label,\n scaleLevel,\n handles: { start, end }\n } = this.props;\n const midPoint = src_default.med(start.point, end.point);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(Arrow, {\n style: {\n stroke: getComputedColor(stroke, \"text\"),\n fill,\n strokeWidth,\n strokeType\n },\n scaleLevel,\n start: start.point,\n end: end.point,\n decorationStart: decorations == null ? void 0 : decorations.start,\n decorationEnd: decorations == null ? void 0 : decorations.end\n }),\n preview && \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(import_jsx_runtime63.Fragment, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"text\", {\n style: {\n transformOrigin: \"top left\"\n },\n fontFamily: \"Inter\",\n fontSize: 20,\n transform: `translate(${midPoint[0]}, ${midPoint[1]})`,\n textAnchor: \"middle\",\n fill: getComputedColor(stroke, \"text\"),\n stroke: getComputedColor(stroke, \"text\"),\n children: label\n })\n })\n ]\n });\n }\n};\n__publicField(LineShape, \"id\", \"line\");\n__publicField(LineShape, \"defaultProps\", {\n id: \"line\",\n parentId: \"page\",\n type: \"line\",\n point: [0, 0],\n handles: {\n start: { id: \"start\", canBind: true, point: [0, 0] },\n end: { id: \"end\", canBind: true, point: [1, 1] }\n },\n stroke: \"\",\n fill: \"\",\n noFill: true,\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n strokeType: \"line\",\n strokeWidth: 1,\n opacity: 1,\n decorations: {\n end: \"arrow\" \/* Arrow *\/\n },\n label: \"\"\n});\n__decorateClass([\n computed\n], LineShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], LineShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/LogseqPortalShape.tsx\nvar React61 = __toESM(require(\"react\"));\nvar import_jsx_runtime64 = require(\"react\/jsx-runtime\");\nvar HEADER_HEIGHT = 40;\nvar AUTO_RESIZE_THRESHOLD = 1;\nvar levelToScale7 = {\n xs: 0.5,\n sm: 0.8,\n md: 1,\n lg: 1.5,\n xl: 2,\n xxl: 3\n};\nvar LogseqPortalShapeHeader = observer(\n ({\n type,\n fill,\n opacity,\n children\n }) => {\n const bgColor = fill !== \"var(--ls-secondary-background-color)\" ? getComputedColor(fill, \"background\") : \"var(--ls-tertiary-background-color)\";\n const fillGradient = fill && fill !== \"var(--ls-secondary-background-color)\" ? isBuiltInColor(fill) ? `var(--ls-highlight-color-${fill})` : fill : \"var(--ls-secondary-background-color)\";\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(\"div\", {\n className: `tl-logseq-portal-header tl-logseq-portal-header-${type === \"P\" ? \"page\" : \"block\"}`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"absolute inset-0 tl-logseq-portal-header-bg\",\n style: {\n opacity,\n background: type === \"P\" ? bgColor : `linear-gradient(0deg, ${fillGradient}, ${bgColor})`\n }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"relative\",\n children\n })\n ]\n });\n }\n);\nvar LogseqPortalShape = class extends TLBoxShape {\n constructor(props = {}) {\n var _a3;\n super(props);\n __publicField(this, \"hideRotateHandle\", true);\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canFlip\", true);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"persist\", null);\n __publicField(this, \"initialHeightCalculated\", true);\n __publicField(this, \"getInnerHeight\", null);\n __publicField(this, \"setCollapsed\", (collapsed) => __async(this, null, function* () {\n var _a3;\n if (this.props.blockType === \"B\") {\n this.update({ compact: collapsed });\n this.canResize[1] = !collapsed;\n if (!collapsed) {\n this.onResetBounds();\n }\n } else {\n const originalHeight = this.props.size[1];\n this.canResize[1] = !collapsed;\n this.update({\n isAutoResizing: !collapsed,\n collapsed,\n size: [this.props.size[0], collapsed ? this.getHeaderHeight() : this.props.collapsedHeight],\n collapsedHeight: collapsed ? originalHeight : this.props.collapsedHeight\n });\n }\n (_a3 = this.persist) == null ? void 0 : _a3.call(this);\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n var _a3;\n const newSize = src_default.mul(\n this.props.size,\n levelToScale7[v4 != null ? v4 : \"md\"] \/ levelToScale7[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"]\n );\n this.update({\n scaleLevel: v4\n });\n yield delay();\n this.update({\n size: newSize\n });\n }));\n __publicField(this, \"onResetBounds\", (info) => {\n const height = this.getAutoResizeHeight();\n if (height !== null && Math.abs(height - this.props.size[1]) > AUTO_RESIZE_THRESHOLD) {\n this.update({\n size: [this.props.size[0], height]\n });\n this.initialHeightCalculated = true;\n }\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n var _a3;\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n let height = bounds.height;\n if (this.props.isAutoResizing) {\n height = (_a3 = this.getAutoResizeHeight()) != null ? _a3 : height;\n }\n return this.update({\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, height)],\n scale: nextScale,\n rotation\n });\n });\n __publicField(this, \"PortalComponent\", observer(({}) => {\n const {\n props: { pageId, fill, opacity }\n } = this;\n const { renderers } = React61.useContext(LogseqContext);\n const app = useApp();\n const cpRefContainer = React61.useRef(null);\n const [, innerHeight] = this.useComponentSize(\n cpRefContainer,\n this.props.compact ? \".tl-logseq-cp-container > .single-block\" : \".tl-logseq-cp-container > .page\"\n );\n if (!(renderers == null ? void 0 : renderers.Page)) {\n return null;\n }\n const { Page, Block } = renderers;\n const [loaded, setLoaded] = React61.useState(false);\n React61.useEffect(() => {\n var _a3, _b;\n if (this.props.isAutoResizing) {\n const latestInnerHeight = (_b = (_a3 = this.getInnerHeight) == null ? void 0 : _a3.call(this)) != null ? _b : innerHeight;\n const newHeight = latestInnerHeight + this.getHeaderHeight();\n if (innerHeight && Math.abs(newHeight - this.props.size[1]) > AUTO_RESIZE_THRESHOLD) {\n this.update({\n size: [this.props.size[0], newHeight]\n });\n if (loaded)\n app.persist(true);\n }\n }\n }, [innerHeight, this.props.isAutoResizing]);\n React61.useEffect(() => {\n if (!this.initialHeightCalculated) {\n setTimeout(() => {\n this.onResetBounds();\n app.persist(true);\n });\n }\n }, [this.initialHeightCalculated]);\n React61.useEffect(() => {\n setTimeout(function() {\n setLoaded(true);\n });\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"absolute inset-0 tl-logseq-cp-container-bg\",\n style: {\n textRendering: app.viewport.camera.zoom < 0.5 ? \"optimizeSpeed\" : \"auto\",\n background: fill && fill !== \"var(--ls-secondary-background-color)\" ? isBuiltInColor(fill) ? `var(--ls-highlight-color-${fill})` : fill : \"var(--ls-secondary-background-color)\",\n opacity\n }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n ref: cpRefContainer,\n className: \"relative tl-logseq-cp-container\",\n style: { overflow: this.props.isAutoResizing ? \"visible\" : \"auto\" },\n children: (loaded || !this.initialHeightCalculated) && (this.props.blockType === \"B\" && this.props.compact ? \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(Block, {\n blockId: pageId\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(Page, {\n pageName: pageId\n }))\n })\n ]\n });\n }));\n __publicField(this, \"ReactComponent\", observer((componentProps) => {\n var _a3;\n const { events, isErasing, isEditing, isBinding } = componentProps;\n const {\n props: { opacity, pageId, fill, scaleLevel, strokeWidth, size, isLocked }\n } = this;\n const app = useApp();\n const { renderers, handlers } = React61.useContext(LogseqContext);\n this.persist = () => app.persist();\n const isMoving = useCameraMovingRef();\n const isSelected = app.selectedIds.has(this.id) && app.selectedIds.size === 1;\n const isCreating = app.isIn(\"logseq-portal.creating\") && !pageId;\n const tlEventsEnabled = (isMoving || isSelected && !isEditing || app.selectedTool.id !== \"select\") && !isCreating;\n const stop2 = React61.useCallback(\n (e2) => {\n if (!tlEventsEnabled) {\n e2.stopPropagation();\n }\n },\n [tlEventsEnabled]\n );\n const portalSelected = app.selectedShapesArray.length === 1 && app.selectedShapesArray.some(\n (shape) => shape.type === \"logseq-portal\" && shape.props.id !== this.props.id && pageId && shape.props[\"pageId\"] === pageId\n );\n const scaleRatio = levelToScale7[scaleLevel != null ? scaleLevel : \"md\"];\n React61.useEffect(() => {\n if (this.props.collapsed && isEditing) {\n this.update({\n size: [this.props.size[0], this.props.collapsedHeight]\n });\n return () => {\n this.update({\n size: [this.props.size[0], this.getHeaderHeight()]\n });\n };\n }\n return () => {\n };\n }, [isEditing, this.props.collapsed]);\n React61.useEffect(() => {\n if (isCreating) {\n const screenSize = [app.viewport.bounds.width, app.viewport.bounds.height];\n const boundScreenCenter = app.viewport.getScreenPoint([this.bounds.minX, this.bounds.minY]);\n if (boundScreenCenter[0] > screenSize[0] - 400 || boundScreenCenter[1] > screenSize[1] - 240 || app.viewport.camera.zoom > 1.5 || app.viewport.camera.zoom < 0.5) {\n app.viewport.zoomToBounds(__spreadProps(__spreadValues({}, this.bounds), { minY: this.bounds.maxY + 25 }));\n }\n }\n }, [app.viewport.bounds.height.toFixed(2)]);\n const onPageNameChanged = React61.useCallback((id3) => {\n this.initialHeightCalculated = false;\n const blockType = validUUID(id3) ? \"B\" : \"P\";\n this.update({\n pageId: id3,\n size: [400, 320],\n blockType,\n compact: blockType === \"B\"\n });\n app.selectTool(\"select\");\n app.history.resume();\n app.history.persist();\n }, []);\n const PortalComponent = this.PortalComponent;\n const blockContent = React61.useMemo(() => {\n var _a4;\n if (pageId && this.props.blockType === \"B\") {\n return (_a4 = handlers == null ? void 0 : handlers.queryBlockByUUID(pageId)) == null ? void 0 : _a4.content;\n }\n }, [handlers == null ? void 0 : handlers.queryBlockByUUID, pageId]);\n const targetNotFound = this.props.blockType === \"B\" && typeof blockContent !== \"string\";\n const showingPortal = (!this.props.collapsed || isEditing) && !targetNotFound;\n if (!(renderers == null ? void 0 : renderers.Page)) {\n return null;\n }\n const { Breadcrumb, PageName } = renderers;\n const portalStyle = {\n width: `calc(100% \/ ${scaleRatio})`,\n height: `calc(100% \/ ${scaleRatio})`,\n opacity: isErasing ? 0.2 : 1\n };\n if (scaleRatio !== 1) {\n portalStyle.transform = `scale(${scaleRatio})`;\n }\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n pointerEvents: \"all\"\n }\n }, events), {\n children: [\n isBinding && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(BindingIndicator, {\n mode: \"html\",\n strokeWidth,\n size\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n \"data-inner-events\": !tlEventsEnabled,\n onWheelCapture: stop2,\n onPointerDown: stop2,\n onPointerUp: stop2,\n style: {\n width: \"100%\",\n height: \"100%\",\n pointerEvents: !isMoving && (isEditing || isSelected) ? \"all\" : \"none\"\n },\n children: isCreating ? \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(LogseqQuickSearch, {\n onChange: onPageNameChanged,\n onAddBlock: (uuid) => {\n setTimeout(() => {\n var _a4, _b, _c;\n app.api.editShape(this);\n (_c = (_b = (_a4 = window.logseq) == null ? void 0 : _a4.api) == null ? void 0 : _b.edit_block) == null ? void 0 : _c.call(_b, uuid);\n });\n },\n placeholder: \"Create or search your graph...\"\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(\"div\", {\n className: \"tl-logseq-portal-container\",\n \"data-collapsed\": this.collapsed,\n \"data-page-id\": pageId,\n \"data-portal-selected\": portalSelected,\n \"data-editing\": isEditing,\n style: portalStyle,\n children: [\n !this.props.compact && !targetNotFound && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(LogseqPortalShapeHeader, {\n type: (_a3 = this.props.blockType) != null ? _a3 : \"P\",\n fill,\n opacity,\n children: this.props.blockType === \"P\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(PageName, {\n pageName: pageId\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(Breadcrumb, {\n blockId: pageId\n })\n }),\n targetNotFound && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"tl-target-not-found\",\n children: \"Target not found\"\n }),\n showingPortal && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(PortalComponent, __spreadValues({}, componentProps))\n ]\n })\n })\n ]\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"rect\", {\n width: bounds.width,\n height: bounds.height,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: this.props.isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n var _a3;\n if (props.size !== void 0) {\n const scale = levelToScale7[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"];\n props.size[0] = Math.max(props.size[0], 60 * scale);\n props.size[1] = Math.max(props.size[1], HEADER_HEIGHT * scale);\n }\n return withClampedStyles(this, props);\n });\n makeObservable(this);\n if (props.collapsed) {\n Object.assign(this.canResize, [true, false]);\n }\n if (((_a3 = props.size) == null ? void 0 : _a3[1]) === 0) {\n this.initialHeightCalculated = false;\n }\n }\n static isPageOrBlock(id3) {\n const blockRefEg = \"((62af02d0-0443-42e8-a284-946c162b0f89))\";\n if (id3) {\n return \/^\\(\\(.*\\)\\)$\/.test(id3) && id3.length === blockRefEg.length ? \"B\" : \"P\";\n }\n return false;\n }\n get collapsed() {\n return this.props.blockType === \"B\" ? this.props.compact : this.props.collapsed;\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n useComponentSize(ref, selector = \"\") {\n const [size, setSize] = React61.useState([0, 0]);\n const app = useApp();\n React61.useEffect(() => {\n setTimeout(() => {\n if (ref == null ? void 0 : ref.current) {\n const el = selector ? ref.current.querySelector(selector) : ref.current;\n if (el) {\n const updateSize = () => {\n const { width, height } = el.getBoundingClientRect();\n const bound = src_default.div([width, height], app.viewport.camera.zoom);\n setSize(bound);\n return bound;\n };\n updateSize();\n this.getInnerHeight = () => updateSize()[1];\n const resizeObserver = new ResizeObserver(() => {\n updateSize();\n });\n resizeObserver.observe(el);\n return () => {\n resizeObserver.disconnect();\n };\n }\n }\n return () => {\n };\n }, 10);\n }, [ref, selector]);\n return size;\n }\n getHeaderHeight() {\n var _a3;\n const scale = levelToScale7[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"];\n return this.props.compact ? 0 : HEADER_HEIGHT * scale;\n }\n getAutoResizeHeight() {\n if (this.getInnerHeight) {\n return this.getHeaderHeight() + this.getInnerHeight();\n }\n return null;\n }\n getShapeSVGJsx({ preview }) {\n var _a3, _b, _c;\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"rect\", {\n fill: this.props.fill && this.props.fill !== \"var(--ls-secondary-background-color)\" ? isBuiltInColor(this.props.fill) ? `var(--ls-highlight-color-${this.props.fill})` : this.props.fill : \"var(--ls-secondary-background-color)\",\n stroke: getComputedColor(this.props.fill, \"background\"),\n strokeWidth: (_a3 = this.props.strokeWidth) != null ? _a3 : 2,\n fillOpacity: (_b = this.props.opacity) != null ? _b : 0.2,\n width: bounds.width,\n rx: 8,\n ry: 8,\n height: bounds.height\n }),\n !this.props.compact && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"rect\", {\n fill: this.props.fill && this.props.fill !== \"var(--ls-secondary-background-color)\" ? getComputedColor(this.props.fill, \"background\") : \"var(--ls-tertiary-background-color)\",\n fillOpacity: (_c = this.props.opacity) != null ? _c : 0.2,\n x: 1,\n y: 1,\n width: bounds.width - 2,\n height: HEADER_HEIGHT - 2,\n rx: 8,\n ry: 8\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"text\", {\n style: {\n transformOrigin: \"top left\"\n },\n transform: `translate(${bounds.width \/ 2}, ${10 + bounds.height \/ 2})`,\n textAnchor: \"middle\",\n fontFamily: \"var(--ls-font-family)\",\n fontSize: \"32\",\n fill: \"var(--ls-secondary-text-color)\",\n stroke: \"var(--ls-secondary-text-color)\",\n children: this.props.blockType === \"P\" ? this.props.pageId : \"\"\n })\n ]\n });\n }\n};\n__publicField(LogseqPortalShape, \"id\", \"logseq-portal\");\n__publicField(LogseqPortalShape, \"defaultSearchQuery\", \"\");\n__publicField(LogseqPortalShape, \"defaultSearchFilter\", null);\n__publicField(LogseqPortalShape, \"defaultProps\", {\n id: \"logseq-portal\",\n type: \"logseq-portal\",\n parentId: \"page\",\n point: [0, 0],\n size: [400, 50],\n collapsedHeight: 0,\n stroke: \"\",\n fill: \"\",\n noFill: false,\n borderRadius: 8,\n strokeWidth: 2,\n strokeType: \"line\",\n opacity: 1,\n pageId: \"\",\n collapsed: false,\n compact: false,\n scaleLevel: \"md\",\n isAutoResizing: true\n});\n__decorateClass([\n computed\n], LogseqPortalShape.prototype, \"collapsed\", 1);\n__decorateClass([\n action\n], LogseqPortalShape.prototype, \"setCollapsed\", 2);\n__decorateClass([\n computed\n], LogseqPortalShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], LogseqPortalShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ ..\/..\/node_modules\/perfect-freehand\/dist\/esm\/index.js\nfunction $2(e2, t2, u4, x4 = (h4) => h4) {\n return e2 * x4(0.5 - t2 * (0.5 - u4));\n}\nfunction se2(e2) {\n return [-e2[0], -e2[1]];\n}\nfunction l4(e2, t2) {\n return [e2[0] + t2[0], e2[1] + t2[1]];\n}\nfunction a4(e2, t2) {\n return [e2[0] - t2[0], e2[1] - t2[1]];\n}\nfunction b4(e2, t2) {\n return [e2[0] * t2, e2[1] * t2];\n}\nfunction he2(e2, t2) {\n return [e2[0] \/ t2, e2[1] \/ t2];\n}\nfunction R4(e2) {\n return [e2[1], -e2[0]];\n}\nfunction B2(e2, t2) {\n return e2[0] * t2[0] + e2[1] * t2[1];\n}\nfunction ue2(e2, t2) {\n return e2[0] === t2[0] && e2[1] === t2[1];\n}\nfunction ge2(e2) {\n return Math.hypot(e2[0], e2[1]);\n}\nfunction de2(e2) {\n return e2[0] * e2[0] + e2[1] * e2[1];\n}\nfunction A3(e2, t2) {\n return de2(a4(e2, t2));\n}\nfunction G2(e2) {\n return he2(e2, ge2(e2));\n}\nfunction ie2(e2, t2) {\n return Math.hypot(e2[1] - t2[1], e2[0] - t2[0]);\n}\nfunction L4(e2, t2, u4) {\n let x4 = Math.sin(u4), h4 = Math.cos(u4), y4 = e2[0] - t2[0], n4 = e2[1] - t2[1], f4 = y4 * h4 - n4 * x4, d4 = y4 * x4 + n4 * h4;\n return [f4 + t2[0], d4 + t2[1]];\n}\nfunction K2(e2, t2, u4) {\n return l4(e2, b4(a4(t2, e2), u4));\n}\nfunction ee2(e2, t2, u4) {\n return l4(e2, b4(t2, u4));\n}\nvar { min: C3, PI: xe2 } = Math;\nvar pe2 = 0.275;\nvar V3 = xe2 + 1e-4;\nfunction ce2(e2, t2 = {}) {\n let { size: u4 = 16, smoothing: x4 = 0.5, thinning: h4 = 0.5, simulatePressure: y4 = true, easing: n4 = (r4) => r4, start: f4 = {}, end: d4 = {}, last: D4 = false } = t2, { cap: S3 = true, easing: j2 = (r4) => r4 * (2 - r4) } = f4, { cap: q2 = true, easing: c4 = (r4) => --r4 * r4 * r4 + 1 } = d4;\n if (e2.length === 0 || u4 <= 0)\n return [];\n let p4 = e2[e2.length - 1].runningLength, g4 = f4.taper === false ? 0 : f4.taper === true ? Math.max(u4, p4) : f4.taper, T4 = d4.taper === false ? 0 : d4.taper === true ? Math.max(u4, p4) : d4.taper, te2 = Math.pow(u4 * x4, 2), _2 = [], M2 = [], H3 = e2.slice(0, 10).reduce((r4, i4) => {\n let o4 = i4.pressure;\n if (y4) {\n let s4 = C3(1, i4.distance \/ u4), W3 = C3(1, 1 - s4);\n o4 = C3(1, r4 + (W3 - r4) * (s4 * pe2));\n }\n return (r4 + o4) \/ 2;\n }, e2[0].pressure), m4 = $2(u4, h4, e2[e2.length - 1].pressure, n4), U2, X2 = e2[0].vector, z3 = e2[0].point, F2 = z3, O3 = z3, E4 = F2, J2 = false;\n for (let r4 = 0; r4 < e2.length; r4++) {\n let { pressure: i4 } = e2[r4], { point: o4, vector: s4, distance: W3, runningLength: I2 } = e2[r4];\n if (r4 < e2.length - 1 && p4 - I2 < 3)\n continue;\n if (h4) {\n if (y4) {\n let v4 = C3(1, W3 \/ u4), Z2 = C3(1, 1 - v4);\n i4 = C3(1, H3 + (Z2 - H3) * (v4 * pe2));\n }\n m4 = $2(u4, h4, i4, n4);\n } else\n m4 = u4 \/ 2;\n U2 === void 0 && (U2 = m4);\n let le2 = I2 < g4 ? j2(I2 \/ g4) : 1, fe2 = p4 - I2 < T4 ? c4((p4 - I2) \/ T4) : 1;\n m4 = Math.max(0.01, m4 * Math.min(le2, fe2));\n let re2 = (r4 < e2.length - 1 ? e2[r4 + 1] : e2[r4]).vector, Y2 = r4 < e2.length - 1 ? B2(s4, re2) : 1, be2 = B2(s4, X2) < 0 && !J2, ne2 = Y2 !== null && Y2 < 0;\n if (be2 || ne2) {\n let v4 = b4(R4(X2), m4);\n for (let Z2 = 1 \/ 13, w4 = 0; w4 <= 1; w4 += Z2)\n O3 = L4(a4(o4, v4), o4, V3 * w4), _2.push(O3), E4 = L4(l4(o4, v4), o4, V3 * -w4), M2.push(E4);\n z3 = O3, F2 = E4, ne2 && (J2 = true);\n continue;\n }\n if (J2 = false, r4 === e2.length - 1) {\n let v4 = b4(R4(s4), m4);\n _2.push(a4(o4, v4)), M2.push(l4(o4, v4));\n continue;\n }\n let oe2 = b4(R4(K2(re2, s4, Y2)), m4);\n O3 = a4(o4, oe2), (r4 <= 1 || A3(z3, O3) > te2) && (_2.push(O3), z3 = O3), E4 = l4(o4, oe2), (r4 <= 1 || A3(F2, E4) > te2) && (M2.push(E4), F2 = E4), H3 = i4, X2 = s4;\n }\n let P3 = e2[0].point.slice(0, 2), k3 = e2.length > 1 ? e2[e2.length - 1].point.slice(0, 2) : l4(e2[0].point, [1, 1]), Q2 = [], N3 = [];\n if (e2.length === 1) {\n if (!(g4 || T4) || D4) {\n let r4 = ee2(P3, G2(R4(a4(P3, k3))), -(U2 || m4)), i4 = [];\n for (let o4 = 1 \/ 13, s4 = o4; s4 <= 1; s4 += o4)\n i4.push(L4(r4, P3, V3 * 2 * s4));\n return i4;\n }\n } else {\n if (!(g4 || T4 && e2.length === 1))\n if (S3)\n for (let i4 = 1 \/ 13, o4 = i4; o4 <= 1; o4 += i4) {\n let s4 = L4(M2[0], P3, V3 * o4);\n Q2.push(s4);\n }\n else {\n let i4 = a4(_2[0], M2[0]), o4 = b4(i4, 0.5), s4 = b4(i4, 0.51);\n Q2.push(a4(P3, o4), a4(P3, s4), l4(P3, s4), l4(P3, o4));\n }\n let r4 = R4(se2(e2[e2.length - 1].vector));\n if (T4 || g4 && e2.length === 1)\n N3.push(k3);\n else if (q2) {\n let i4 = ee2(k3, r4, m4);\n for (let o4 = 1 \/ 29, s4 = o4; s4 < 1; s4 += o4)\n N3.push(L4(i4, k3, V3 * 3 * s4));\n } else\n N3.push(l4(k3, b4(r4, m4)), l4(k3, b4(r4, m4 * 0.99)), a4(k3, b4(r4, m4 * 0.99)), a4(k3, b4(r4, m4)));\n }\n return _2.concat(N3, M2.reverse(), Q2);\n}\nfunction me2(e2, t2 = {}) {\n var q2;\n let { streamline: u4 = 0.5, size: x4 = 16, last: h4 = false } = t2;\n if (e2.length === 0)\n return [];\n let y4 = 0.15 + (1 - u4) * 0.85, n4 = Array.isArray(e2[0]) ? e2 : e2.map(({ x: c4, y: p4, pressure: g4 = 0.5 }) => [c4, p4, g4]);\n if (n4.length === 2) {\n let c4 = n4[1];\n n4 = n4.slice(0, -1);\n for (let p4 = 1; p4 < 5; p4++)\n n4.push(K2(n4[0], c4, p4 \/ 4));\n }\n n4.length === 1 && (n4 = [...n4, [...l4(n4[0], [1, 1]), ...n4[0].slice(2)]]);\n let f4 = [{ point: [n4[0][0], n4[0][1]], pressure: n4[0][2] >= 0 ? n4[0][2] : 0.25, vector: [1, 1], distance: 0, runningLength: 0 }], d4 = false, D4 = 0, S3 = f4[0], j2 = n4.length - 1;\n for (let c4 = 1; c4 < n4.length; c4++) {\n let p4 = h4 && c4 === j2 ? n4[c4].slice(0, 2) : K2(S3.point, n4[c4], y4);\n if (ue2(S3.point, p4))\n continue;\n let g4 = ie2(p4, S3.point);\n if (D4 += g4, c4 < j2 && !d4) {\n if (D4 < x4)\n continue;\n d4 = true;\n }\n S3 = { point: p4, pressure: n4[c4][2] >= 0 ? n4[c4][2] : 0.5, vector: G2(a4(S3.point, p4)), distance: g4, runningLength: D4 }, f4.push(S3);\n }\n return f4[0].vector = ((q2 = f4[1]) == null ? void 0 : q2.vector) || [0, 0], f4;\n}\n\n\/\/ src\/lib\/shapes\/PencilShape.tsx\nvar import_jsx_runtime65 = require(\"react\/jsx-runtime\");\nvar levelToScale8 = {\n xs: 1,\n sm: 1.6,\n md: 2,\n lg: 3.2,\n xl: 4.8,\n xxl: 6\n};\nvar simulatePressureSettings = {\n easing: (t2) => Math.sin(t2 * Math.PI \/ 2),\n simulatePressure: true\n};\nvar realPressureSettings = {\n easing: (t2) => t2 * t2,\n simulatePressure: false\n};\nfunction getFreehandOptions(shape) {\n const options = __spreadProps(__spreadValues({\n size: 1 + shape.strokeWidth * 1.5,\n thinning: 0.65,\n streamline: 0.65,\n smoothing: 0.65\n }, shape.points[1][2] === 0.5 ? simulatePressureSettings : realPressureSettings), {\n last: shape.isComplete\n });\n return options;\n}\nfunction getDrawStrokePoints(shape, options) {\n return me2(shape.points, options);\n}\nfunction getDrawStrokePathTDSnapshot(shape) {\n if (shape.points.length < 2)\n return \"\";\n const options = getFreehandOptions(shape);\n const strokePoints = getDrawStrokePoints(shape, options);\n const path = SvgPathUtils.getSvgPathFromStroke(ce2(strokePoints, options));\n return path;\n}\nvar PencilShape = class extends TLDrawShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing }) => {\n const {\n props: { opacity }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime65.jsx)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: this.getShapeSVGJsx()\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n strokeWidth: levelToScale8[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const { pointsPath } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime65.jsx)(\"path\", {\n d: pointsPath,\n strokeDasharray: this.props.isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n props = withClampedStyles(this, props);\n if (props.strokeWidth !== void 0)\n props.strokeWidth = Math.max(props.strokeWidth, 1);\n return props;\n });\n makeObservable(this);\n }\n get pointsPath() {\n return getDrawStrokePathTDSnapshot(this.props);\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx() {\n const {\n pointsPath,\n props: { stroke, strokeWidth, strokeType }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime65.jsx)(\"path\", {\n pointerEvents: \"all\",\n d: pointsPath,\n strokeWidth: strokeWidth \/ 2,\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n stroke: getComputedColor(stroke, \"text\"),\n fill: getComputedColor(stroke, \"text\"),\n strokeDasharray: strokeType === \"dashed\" ? \"12 4\" : void 0\n });\n }\n};\n__publicField(PencilShape, \"id\", \"pencil\");\n__publicField(PencilShape, \"defaultProps\", {\n id: \"pencil\",\n parentId: \"page\",\n type: \"pencil\",\n point: [0, 0],\n points: [],\n isComplete: false,\n stroke: \"\",\n fill: \"\",\n noFill: true,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1\n});\n__decorateClass([\n computed\n], PencilShape.prototype, \"pointsPath\", 1);\n__decorateClass([\n computed\n], PencilShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], PencilShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/PolygonShape.tsx\nvar React62 = __toESM(require(\"react\"));\nvar import_jsx_runtime66 = require(\"react\/jsx-runtime\");\nvar font4 = \"20px \/ 1 var(--ls-font-family)\";\nvar levelToScale9 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar PolygonShape = class extends TLPolygonShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(\n ({ events, isErasing, isSelected, isEditing, onEditingEnd }) => {\n const {\n offset: [x4, y4],\n props: {\n stroke,\n fill,\n noFill,\n strokeWidth,\n opacity,\n strokeType,\n label,\n italic,\n fontWeight,\n fontSize\n }\n } = this;\n const path = this.getVertices(strokeWidth \/ 2).join();\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n ) : [0, 0];\n const midPoint = [this.props.size[0] \/ 2, this.props.size[1] * 2 \/ 3];\n const scale = Math.max(\n 0.5,\n Math.min(\n 1,\n this.props.size[0] \/ (labelSize[0] * 2),\n this.props.size[1] \/ (labelSize[1] * 2)\n )\n );\n const bounds = this.getBounds();\n const offset = React62.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React62.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(TextLabel, {\n font: font4,\n text: label,\n fontSize,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1] \/ scale,\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(SVGContainer, {\n opacity: isErasing ? 0.2 : opacity,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsxs)(\"g\", {\n transform: `translate(${x4}, ${y4})`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n className: isSelected || !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n points: path\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n points: path,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\"),\n strokeWidth,\n rx: 2,\n ry: 2,\n strokeLinejoin: \"round\",\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0\n })\n ]\n })\n })\n ]\n }));\n }\n ));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale9[v4 != null ? v4 : \"md\"],\n strokeWidth: levelToScale9[v4 != null ? v4 : \"md\"] \/ 10\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n offset: [x4, y4],\n props: { strokeWidth, isLocked }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n transform: `translate(${x4}, ${y4})`,\n points: this.getVertices(strokeWidth \/ 2).join(),\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n })\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.sides !== void 0)\n props.sides = Math.max(props.sides, 3);\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx(opts) {\n const {\n offset: [x4, y4],\n props: { stroke, fill, noFill, strokeWidth, opacity, strokeType }\n } = this;\n const path = this.getVertices(strokeWidth \/ 2).join();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsxs)(\"g\", {\n transform: `translate(${x4}, ${y4})`,\n opacity,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n className: !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n points: path\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n points: path,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\"),\n strokeWidth,\n rx: 2,\n ry: 2,\n strokeLinejoin: \"round\",\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0\n })\n ]\n });\n }\n};\n__publicField(PolygonShape, \"id\", \"polygon\");\n__publicField(PolygonShape, \"defaultProps\", {\n id: \"polygon\",\n parentId: \"page\",\n type: \"polygon\",\n point: [0, 0],\n size: [100, 100],\n sides: 3,\n ratio: 1,\n isFlippedY: false,\n stroke: \"\",\n fill: \"\",\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n noFill: false,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1,\n label: \"\"\n});\n__decorateClass([\n computed\n], PolygonShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], PolygonShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/TextShape.tsx\nvar React63 = __toESM(require(\"react\"));\nvar import_jsx_runtime67 = require(\"react\/jsx-runtime\");\nvar levelToScale10 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar TextShape = class extends TLTextShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, onEditingEnd }) => {\n const {\n props: {\n opacity,\n fontFamily,\n fontSize,\n fontWeight,\n italic,\n lineHeight,\n text,\n stroke,\n padding\n }\n } = this;\n const rInput = React63.useRef(null);\n const rIsMounted = React63.useRef(false);\n const rInnerWrapper = React63.useRef(null);\n const handleChange = React63.useCallback((e2) => {\n const { isSizeLocked } = this.props;\n const text2 = TextUtils.normalizeText(e2.currentTarget.value);\n if (isSizeLocked) {\n this.update({ text: text2, size: this.getAutoSizedBoundingBox({ text: text2 }) });\n return;\n }\n this.update({ text: text2 });\n }, []);\n const handleKeyDown = React63.useCallback((e2) => {\n if (e2.key === \"Escape\")\n return;\n if (e2.key === \"Tab\" && text.length === 0) {\n e2.preventDefault();\n return;\n }\n if (!(e2.key === \"Meta\" || e2.metaKey)) {\n e2.stopPropagation();\n } else if (e2.key === \"z\" && e2.metaKey) {\n if (e2.shiftKey) {\n document.execCommand(\"redo\", false);\n } else {\n document.execCommand(\"undo\", false);\n }\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n if (e2.key === \"Tab\") {\n e2.preventDefault();\n if (e2.shiftKey) {\n TextAreaUtils.unindent(e2.currentTarget);\n } else {\n TextAreaUtils.indent(e2.currentTarget);\n }\n this.update({ text: TextUtils.normalizeText(e2.currentTarget.value) });\n }\n }, []);\n const handleBlur = React63.useCallback(\n (e2) => {\n if (!isEditing)\n return;\n onEditingEnd == null ? void 0 : onEditingEnd();\n },\n [onEditingEnd]\n );\n const handleFocus = React63.useCallback(\n (e2) => {\n if (!isEditing)\n return;\n if (!rIsMounted.current)\n return;\n if (document.activeElement === e2.currentTarget) {\n e2.currentTarget.select();\n }\n },\n [isEditing]\n );\n const handlePointerDown = React63.useCallback(\n (e2) => {\n if (isEditing)\n e2.stopPropagation();\n },\n [isEditing]\n );\n React63.useEffect(() => {\n if (isEditing) {\n requestAnimationFrame(() => {\n rIsMounted.current = true;\n const elm = rInput.current;\n if (elm) {\n elm.focus();\n elm.select();\n }\n });\n }\n }, [isEditing, onEditingEnd]);\n React63.useLayoutEffect(() => {\n if (this.props.size[0] === 0 || this.props.size[1] === 0) {\n this.onResetBounds();\n }\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(HTMLContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"div\", {\n ref: rInnerWrapper,\n className: \"tl-text-shape-wrapper\",\n \"data-hastext\": !!text,\n \"data-isediting\": isEditing,\n style: {\n fontFamily,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontSize,\n fontWeight,\n padding,\n lineHeight,\n color: getComputedColor(stroke, \"text\")\n },\n children: isEditing ? \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"textarea\", {\n ref: rInput,\n className: \"tl-text-shape-input\",\n name: \"text\",\n tabIndex: -1,\n autoComplete: \"false\",\n autoCapitalize: \"false\",\n autoCorrect: \"false\",\n autoSave: \"false\",\n placeholder: \"\",\n spellCheck: \"true\",\n wrap: \"off\",\n dir: \"auto\",\n datatype: \"wysiwyg\",\n defaultValue: text,\n onFocus: handleFocus,\n onChange: handleChange,\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n onPointerDown: handlePointerDown\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, {\n children: [\n text,\n \"\\u200B\"\n ]\n })\n })\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale10[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(({ isEditing }) => {\n const {\n props: { borderRadius, isLocked },\n bounds\n } = this;\n return isEditing ? null : \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"rect\", {\n width: bounds.width,\n height: bounds.height,\n rx: borderRadius,\n ry: borderRadius,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.isSizeLocked || this.props.isSizeLocked) {\n }\n return withClampedStyles(this, props);\n });\n __publicField(this, \"getBounds\", () => {\n const [x4, y4] = this.props.point;\n const [width, height] = this.props.size;\n return {\n minX: x4,\n minY: y4,\n maxX: x4 + width,\n maxY: y4 + height,\n width,\n height\n };\n });\n __publicField(this, \"onResizeStart\", ({ isSingle }) => {\n var _a3;\n if (!isSingle)\n return this;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n return this.update({\n isSizeLocked: false\n });\n });\n __publicField(this, \"onResetBounds\", () => {\n this.update({\n size: this.getAutoSizedBoundingBox(),\n isSizeLocked: true\n });\n return this;\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getAutoSizedBoundingBox(props = {}) {\n const {\n text = this.props.text,\n fontFamily = this.props.fontFamily,\n fontSize = this.props.fontSize,\n fontWeight = this.props.fontWeight,\n lineHeight = this.props.lineHeight,\n padding = this.props.padding\n } = props;\n const [width, height] = getTextLabelSize(\n text,\n { fontFamily, fontSize, lineHeight, fontWeight },\n padding\n );\n return [width, height];\n }\n getShapeSVGJsx() {\n if (isSafari()) {\n return super.getShapeSVGJsx(null);\n }\n const {\n props: { text, stroke, fontSize, fontFamily }\n } = this;\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"foreignObject\", {\n width: bounds.width,\n height: bounds.height,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"div\", {\n style: {\n color: getComputedColor(stroke, \"text\"),\n fontSize,\n fontFamily,\n display: \"contents\"\n },\n children: text\n })\n });\n }\n};\n__publicField(TextShape, \"id\", \"text\");\n__publicField(TextShape, \"defaultProps\", {\n id: \"box\",\n parentId: \"page\",\n type: \"text\",\n point: [0, 0],\n size: [0, 0],\n isSizeLocked: true,\n text: \"\",\n lineHeight: 1.2,\n fontSize: 20,\n fontWeight: 400,\n italic: false,\n padding: 4,\n fontFamily: \"var(--ls-font-family)\",\n borderRadius: 0,\n stroke: \"\",\n fill: \"\",\n noFill: true,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1\n});\n__decorateClass([\n computed\n], TextShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], TextShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/VideoShape.tsx\nvar React64 = __toESM(require(\"react\"));\nvar import_jsx_runtime68 = require(\"react\/jsx-runtime\");\nvar VideoShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"canChangeAspectRatio\", false);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, asset, isEditing }) => {\n const {\n props: {\n opacity,\n size: [w4, h4]\n }\n } = this;\n const isMoving = useCameraMovingRef();\n const app = useApp();\n const isSelected = app.selectedIds.has(this.id);\n const tlEventsEnabled = isMoving || isSelected && !isEditing || app.selectedTool.id !== \"select\";\n const stop2 = React64.useCallback(\n (e2) => {\n if (!tlEventsEnabled) {\n e2.stopPropagation();\n }\n },\n [tlEventsEnabled]\n );\n const { handlers } = React64.useContext(LogseqContext);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : opacity\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(\"div\", {\n onWheelCapture: stop2,\n onPointerDown: stop2,\n onPointerUp: stop2,\n className: \"tl-video-container\",\n style: {\n pointerEvents: !isMoving && (isEditing || isSelected) ? \"all\" : \"none\",\n overflow: isEditing ? \"auto\" : \"hidden\"\n },\n children: asset && \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(\"video\", {\n controls: true,\n src: handlers ? handlers.makeAssetUrl(asset.src) : asset.src\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n};\n__publicField(VideoShape, \"id\", \"video\");\n__publicField(VideoShape, \"defaultProps\", {\n id: \"video1\",\n parentId: \"page\",\n type: \"video\",\n point: [0, 0],\n size: [100, 100],\n opacity: 1,\n assetId: \"\",\n clipping: 0,\n isAspectRatioLocked: true\n});\n\n\/\/ src\/lib\/shapes\/YouTubeShape.tsx\nvar import_jsx_runtime69 = require(\"react\/jsx-runtime\");\nvar YOUTUBE_REGEX = \/^(?:https?:\\\/\\\/)?(?:www\\.)?(?:youtu\\.be\\\/|youtube\\.com\\\/(?:embed\\\/|v\\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$\/;\nvar _YouTubeShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"aspectRatio\", 480 \/ 853);\n __publicField(this, \"canChangeAspectRatio\", false);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"onYoutubeLinkChange\", (url) => {\n this.update({ url, size: _YouTubeShape.defaultProps.size });\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, isSelected }) => {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"div\", {\n className: \"rounded-lg w-full h-full relative overflow-hidden shadow-xl tl-youtube-container\",\n style: {\n pointerEvents: isEditing || app.readOnly ? \"all\" : \"none\",\n userSelect: \"none\",\n background: `url('https:\/\/img.youtube.com\/vi\/${this.embedId}\/mqdefault.jpg') no-repeat center\/cover`\n },\n children: this.embedId ? \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"div\", {\n style: {\n overflow: \"hidden\",\n position: \"relative\",\n height: \"100%\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"iframe\", {\n className: \"absolute inset-0 w-full h-full m-0\",\n width: \"853\",\n height: \"480\",\n src: `https:\/\/www.youtube.com\/embed\/${this.embedId}`,\n frameBorder: \"0\",\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",\n allowFullScreen: true,\n title: \"Embedded youtube\"\n })\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"div\", {\n className: \"w-full h-full flex items-center justify-center p-4\",\n style: {\n backgroundColor: \"var(--ls-primary-background-color)\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"svg\", {\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n viewBox: \"0 0 502 210.649\",\n height: \"210.65\",\n width: \"128\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M498.333 45.7s-2.91-20.443-11.846-29.447C475.157 4.44 462.452 4.38 456.627 3.687c-41.7-3-104.25-3-104.25-3h-.13s-62.555 0-104.255 3c-5.826.693-18.523.753-29.86 12.566-8.933 9.004-11.84 29.447-11.84 29.447s-2.983 24.003-2.983 48.009v22.507c0 24.006 2.983 48.013 2.983 48.013s2.907 20.44 11.84 29.446c11.337 11.817 26.23 11.44 32.86 12.677 23.84 2.28 101.315 2.983 101.315 2.983s62.62-.094 104.32-3.093c5.824-.694 18.527-.75 29.857-12.567 8.936-9.006 11.846-29.446 11.846-29.446s2.98-24.007 2.98-48.013V93.709c0-24.006-2.98-48.01-2.98-48.01\",\n fill: \"#cd201f\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M187.934 169.537h-18.96V158.56c-7.19 8.24-13.284 12.4-19.927 12.4-5.826 0-9.876-2.747-11.9-7.717-1.23-3.02-2.103-7.736-2.103-14.663V68.744h18.957v81.833c.443 2.796 1.636 3.823 4.043 3.823 3.63 0 6.913-3.153 10.93-8.817V68.744h18.96v100.793zM102.109 139.597c.996 9.98-2.1 14.93-7.987 14.93s-8.98-4.95-7.98-14.93v-39.92c-1-9.98 2.093-14.657 7.98-14.657 5.89 0 8.993 4.677 7.996 14.657l-.01 39.92zm18.96-37.923c0-10.77-2.164-18.86-5.987-23.95-5.054-6.897-12.973-9.72-20.96-9.72-9.033 0-15.913 2.823-20.957 9.72-3.886 5.09-5.97 13.266-5.97 24.036l-.016 35.84c0 10.71 1.853 18.11 5.736 23.153 5.047 6.873 13.227 10.513 21.207 10.513 7.986 0 16.306-3.64 21.36-10.513 3.823-5.043 5.586-12.443 5.586-23.153v-35.926zM46.223 114.647v54.889h-19.96v-54.89S5.582 47.358 1.314 34.815H22.27L36.277 87.38l13.936-52.566H71.17l-24.947 79.833z\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsxs)(\"g\", {\n fill: \"#fff\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M440.413 96.647c0-9.33 2.557-11.874 8.59-11.874 5.99 0 8.374 2.777 8.374 11.997v10.893l-16.964.02V96.647zm35.96 25.986l-.003-20.4c0-10.656-2.1-18.456-5.88-23.5-5.06-6.823-12.253-10.436-21.317-10.436-9.226 0-16.42 3.613-21.643 10.436-3.84 5.044-6.076 13.28-6.076 23.943v34.927c0 10.596 2.46 18.013 6.296 23.003 5.227 6.813 12.42 10.216 21.87 10.216 9.44 0 16.853-3.566 21.85-10.81 2.2-3.196 3.616-6.82 4.226-10.823.164-1.81.64-5.933.64-11.753v-2.827h-18.96c0 7.247.037 11.557-.133 12.54-1.033 4.834-3.623 7.25-8.07 7.25-6.203 0-8.826-4.636-8.76-13.843v-17.923h35.96zM390.513 140.597c0 9.98-2.353 13.806-7.563 13.806-2.973 0-6.4-1.53-9.423-4.553l.02-60.523c3.02-2.98 6.43-4.55 9.403-4.55 5.21 0 7.563 2.93 7.563 12.91v42.91zm2.104-72.453c-6.647 0-13.253 4.087-19.09 11.27l.02-43.603h-17.963V169.54h17.963l.027-10.05c6.036 7.47 12.62 11.333 19.043 11.333 7.193 0 12.45-3.85 14.863-11.267 1.203-4.226 1.993-10.733 1.993-19.956V99.684c0-9.447-1.21-15.907-2.416-19.917-2.41-7.466-7.247-11.623-14.44-11.623M340.618 169.537h-18.956V158.56c-7.193 8.24-13.283 12.4-19.926 12.4-5.827 0-9.877-2.747-11.9-7.717-1.234-3.02-2.107-7.736-2.107-14.663V69.744h18.96v80.833c.443 2.796 1.633 3.823 4.043 3.823 3.63 0 6.913-3.153 10.93-8.817V69.744h18.957v99.793z\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M268.763 169.537h-19.956V54.77h-20.956V35.835l62.869-.024v18.96h-21.957v114.766z\"\n })\n ]\n })\n ]\n })\n })\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[0] * this.aspectRatio, 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get embedId() {\n var _a3, _b;\n const url = this.props.url;\n const match = url.match(YOUTUBE_REGEX);\n const embedId = (_b = (_a3 = match == null ? void 0 : match[1]) != null ? _a3 : url) != null ? _b : \"\";\n return embedId;\n }\n getShapeSVGJsx() {\n const bounds = this.getBounds();\n const embedId = this.embedId;\n if (embedId) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"image\", {\n width: bounds.width,\n height: bounds.height,\n href: `https:\/\/img.youtube.com\/vi\/${embedId}\/mqdefault.jpg`,\n className: \"grayscale-[50%]\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"svg\", {\n x: bounds.width \/ 4,\n y: bounds.height \/ 4,\n width: bounds.width \/ 2,\n height: bounds.height \/ 2,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M4.76447 3.12199C5.63151 3.04859 6.56082 3 7.5 3C8.43918 3 9.36849 3.04859 10.2355 3.12199C11.2796 3.21037 11.9553 3.27008 12.472 3.39203C12.9425 3.50304 13.2048 3.64976 13.4306 3.88086C13.4553 3.90618 13.4902 3.94414 13.5133 3.97092C13.7126 4.20149 13.8435 4.4887 13.918 5.03283C13.9978 5.6156 14 6.37644 14 7.52493C14 8.66026 13.9978 9.41019 13.9181 9.98538C13.8439 10.5206 13.7137 10.8061 13.5125 11.0387C13.4896 11.0651 13.4541 11.1038 13.4296 11.1287C13.2009 11.3625 12.9406 11.5076 12.4818 11.6164C11.9752 11.7365 11.3143 11.7942 10.2878 11.8797C9.41948 11.9521 8.47566 12 7.5 12C6.52434 12 5.58052 11.9521 4.7122 11.8797C3.68572 11.7942 3.02477 11.7365 2.51816 11.6164C2.05936 11.5076 1.7991 11.3625 1.57037 11.1287C1.54593 11.1038 1.51035 11.0651 1.48748 11.0387C1.28628 10.8061 1.15612 10.5206 1.08193 9.98538C1.00221 9.41019 1 8.66026 1 7.52493C1 6.37644 1.00216 5.6156 1.082 5.03283C1.15654 4.4887 1.28744 4.20149 1.48666 3.97092C1.5098 3.94414 1.54468 3.90618 1.56942 3.88086C1.7952 3.64976 2.05752 3.50304 2.52796 3.39203C3.04473 3.27008 3.7204 3.21037 4.76447 3.12199ZM0 7.52493C0 5.28296 0 4.16198 0.729985 3.31713C0.766457 3.27491 0.815139 3.22194 0.854123 3.18204C1.63439 2.38339 2.64963 2.29744 4.68012 2.12555C5.56923 2.05028 6.52724 2 7.5 2C8.47276 2 9.43077 2.05028 10.3199 2.12555C12.3504 2.29744 13.3656 2.38339 14.1459 3.18204C14.1849 3.22194 14.2335 3.27491 14.27 3.31713C15 4.16198 15 5.28296 15 7.52493C15 9.74012 15 10.8477 14.2688 11.6929C14.2326 11.7348 14.1832 11.7885 14.1444 11.8281C13.3629 12.6269 12.3655 12.71 10.3709 12.8763C9.47971 12.9505 8.50782 13 7.5 13C6.49218 13 5.52028 12.9505 4.62915 12.8763C2.63446 12.71 1.63712 12.6269 0.855558 11.8281C0.816844 11.7885 0.767442 11.7348 0.731221 11.6929C0 10.8477 0 9.74012 0 7.52493ZM5.25 5.38264C5.25 5.20225 5.43522 5.08124 5.60041 5.15369L10.428 7.27105C10.6274 7.35853 10.6274 7.64147 10.428 7.72895L5.60041 9.84631C5.43522 9.91876 5.25 9.79775 5.25 9.61736V5.38264Z\",\n fill: \"#D10014\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })\n })\n ]\n });\n }\n return super.getShapeSVGJsx({});\n }\n};\nvar YouTubeShape = _YouTubeShape;\n__publicField(YouTubeShape, \"id\", \"youtube\");\n__publicField(YouTubeShape, \"defaultProps\", {\n id: \"youtube\",\n type: \"youtube\",\n parentId: \"page\",\n point: [0, 0],\n size: [853, 480],\n url: \"\"\n});\n__decorateClass([\n computed\n], YouTubeShape.prototype, \"embedId\", 1);\n__decorateClass([\n action\n], YouTubeShape.prototype, \"onYoutubeLinkChange\", 2);\n\n\/\/ src\/lib\/shapes\/TweetShape.tsx\nvar React65 = __toESM(require(\"react\"));\nvar import_jsx_runtime70 = require(\"react\/jsx-runtime\");\nvar TWITTER_REGEX = \/https?:\\\/\\\/twitter.com\\\/[0-9a-zA-Z_]{1,20}\\\/status\\\/([0-9]*)\/;\nvar _TweetShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"initialHeightCalculated\", true);\n __publicField(this, \"getInnerHeight\", null);\n __publicField(this, \"onTwitterLinkChange\", (url) => {\n this.update({ url, size: _TweetShape.defaultProps.size });\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, isSelected }) => {\n const {\n renderers: { Tweet }\n } = React65.useContext(LogseqContext);\n const app = useApp();\n const cpRefContainer = React65.useRef(null);\n const [, innerHeight] = this.useComponentSize(cpRefContainer);\n React65.useEffect(() => {\n var _a3, _b;\n const latestInnerHeight = (_b = (_a3 = this.getInnerHeight) == null ? void 0 : _a3.call(this)) != null ? _b : innerHeight;\n const newHeight = latestInnerHeight;\n if (innerHeight && Math.abs(newHeight - this.props.size[1]) > 1) {\n this.update({\n size: [this.props.size[0], newHeight]\n });\n app.persist(true);\n }\n }, [innerHeight]);\n React65.useEffect(() => {\n if (!this.initialHeightCalculated) {\n setTimeout(() => {\n this.onResetBounds();\n app.persist(true);\n });\n }\n }, [this.initialHeightCalculated]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"div\", {\n className: \"rounded-xl w-full h-full relative shadow-xl tl-tweet-container\",\n style: {\n pointerEvents: isEditing || app.readOnly ? \"all\" : \"none\",\n userSelect: \"none\"\n },\n children: this.embedId ? \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"div\", {\n ref: cpRefContainer,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(Tweet, {\n tweetId: this.embedId\n })\n }) : null\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"onResetBounds\", (info) => {\n const height = this.getAutoResizeHeight();\n if (height !== null && Math.abs(height - this.props.size[1]) > 1) {\n this.update({\n size: [this.props.size[0], height]\n });\n this.initialHeightCalculated = true;\n }\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n var _a3;\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n const height = (_a3 = this.getAutoResizeHeight()) != null ? _a3 : bounds.height;\n return this.update({\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, height)],\n scale: nextScale,\n rotation\n });\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.min(Math.max(props.size[0], 300), 550);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get embedId() {\n var _a3, _b;\n const url = this.props.url;\n const match = url.match(TWITTER_REGEX);\n const embedId = (_b = (_a3 = match == null ? void 0 : match[1]) != null ? _a3 : url) != null ? _b : \"\";\n return embedId;\n }\n useComponentSize(ref, selector = \"\") {\n const [size, setSize] = React65.useState([0, 0]);\n const app = useApp();\n React65.useEffect(() => {\n if (ref == null ? void 0 : ref.current) {\n const el = selector ? ref.current.querySelector(selector) : ref.current;\n if (el) {\n const updateSize = () => {\n const { width, height } = el.getBoundingClientRect();\n const bound = src_default.div([width, height], app.viewport.camera.zoom);\n setSize(bound);\n return bound;\n };\n updateSize();\n this.getInnerHeight = () => updateSize()[1];\n const resizeObserver = new ResizeObserver(() => {\n updateSize();\n });\n resizeObserver.observe(el);\n return () => {\n resizeObserver.disconnect();\n };\n }\n }\n return () => {\n };\n }, [ref, selector]);\n return size;\n }\n getAutoResizeHeight() {\n if (this.getInnerHeight) {\n return this.getInnerHeight();\n }\n return null;\n }\n getShapeSVGJsx() {\n const bounds = this.getBounds();\n const embedId = this.embedId;\n if (embedId) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"rect\", {\n width: bounds.width,\n height: bounds.height,\n fill: \"#15202b\",\n rx: 8,\n ry: 8\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"svg\", {\n x: bounds.width \/ 4,\n y: bounds.height \/ 4,\n width: bounds.width \/ 2,\n height: bounds.height \/ 2,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"path\", {\n d: \"m13.464 4.4401c0.0091 0.13224 0.0091 0.26447 0.0091 0.39793 0 4.0664-3.0957 8.7562-8.7562 8.7562v-0.0024c-1.6721 0.0024-3.3095-0.47658-4.7172-1.3797 0.24314 0.02925 0.48751 0.04387 0.73248 0.04448 1.3857 0.0013 2.7319-0.46374 3.8221-1.3199-1.3169-0.024981-2.4717-0.8836-2.8751-2.1371 0.4613 0.08897 0.93662 0.070688 1.3894-0.053016-1.4357-0.29007-2.4686-1.5515-2.4686-3.0165v-0.039001c0.42779 0.23827 0.90676 0.37051 1.3967 0.38513-1.3522-0.90372-1.769-2.7026-0.95247-4.1091 1.5625 1.9226 3.8678 3.0914 6.3425 3.2151-0.24802-1.0689 0.090798-2.1889 0.89031-2.9403 1.2395-1.1651 3.1889-1.1054 4.3541 0.13346 0.68921-0.13589 1.3498-0.38879 1.9543-0.74711-0.22974 0.71237-0.71054 1.3175-1.3528 1.702 0.60999-0.071907 1.206-0.23522 1.7672-0.48446-0.41316 0.61913-0.93358 1.1584-1.5356 1.5942z\",\n fill: \"#1d9bf0\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })\n })\n ]\n });\n }\n return super.getShapeSVGJsx({});\n }\n};\nvar TweetShape = _TweetShape;\n__publicField(TweetShape, \"id\", \"tweet\");\n__publicField(TweetShape, \"defaultProps\", {\n id: \"tweet\",\n type: \"tweet\",\n parentId: \"page\",\n point: [0, 0],\n size: [331, 290],\n url: \"\"\n});\n__decorateClass([\n computed\n], TweetShape.prototype, \"embedId\", 1);\n__decorateClass([\n action\n], TweetShape.prototype, \"onTwitterLinkChange\", 2);\n\n\/\/ src\/lib\/shapes\/PdfShape.tsx\nvar React66 = __toESM(require(\"react\"));\nvar import_jsx_runtime71 = require(\"react\/jsx-runtime\");\nvar PdfShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"frameRef\", React66.createRef());\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canFlip\", true);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(({ events, asset, isErasing, isEditing }) => {\n const ref = React66.useRef(null);\n const { handlers } = React66.useContext(LogseqContext);\n const app = useApp();\n const isMoving = useCameraMovingRef();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime71.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: asset ? \/* @__PURE__ *\/ (0, import_jsx_runtime71.jsx)(\"embed\", {\n src: handlers ? handlers.inflateAsset(asset.src).url : asset.src,\n className: \"relative tl-pdf-container\",\n onWheelCapture: stop,\n onPointerDown: stop,\n onPointerUp: stop,\n style: {\n width: \"100%\",\n height: \"100%\",\n pointerEvents: !isMoving && isEditing ? \"all\" : \"none\"\n }\n }) : null\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime71.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n};\n__publicField(PdfShape, \"id\", \"pdf\");\n__publicField(PdfShape, \"defaultProps\", {\n id: \"pdf\",\n type: \"pdf\",\n parentId: \"page\",\n point: [0, 0],\n size: [595, 842],\n assetId: \"\"\n});\n\n\/\/ src\/lib\/shapes\/DotShape.tsx\nvar import_jsx_runtime72 = require(\"react\/jsx-runtime\");\n\n\/\/ src\/lib\/shapes\/index.ts\nvar shapes = [\n BoxShape,\n EllipseShape,\n HighlighterShape,\n ImageShape,\n VideoShape,\n LineShape,\n PencilShape,\n PolygonShape,\n TextShape,\n YouTubeShape,\n TweetShape,\n IFrameShape,\n HTMLShape,\n PdfShape,\n LogseqPortalShape,\n GroupShape\n];\n\n\/\/ src\/lib\/tools\/BoxTool.tsx\nvar BoxTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", BoxShape);\n }\n};\n__publicField(BoxTool, \"id\", \"box\");\n__publicField(BoxTool, \"shortcut\", \"whiteboard\/rectangle\");\n\n\/\/ src\/lib\/tools\/EllipseTool.tsx\nvar EllipseTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", EllipseShape);\n }\n};\n__publicField(EllipseTool, \"id\", \"ellipse\");\n__publicField(EllipseTool, \"shortcut\", \"whiteboard\/ellipse\");\n\n\/\/ src\/lib\/tools\/EraseTool.tsx\nvar NuEraseTool = class extends TLEraseTool {\n};\n__publicField(NuEraseTool, \"id\", \"erase\");\n__publicField(NuEraseTool, \"shortcut\", \"whiteboard\/eraser\");\n\n\/\/ src\/lib\/tools\/HighlighterTool.tsx\nvar HighlighterTool = class extends TLDrawTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", HighlighterShape);\n __publicField(this, \"simplify\", true);\n __publicField(this, \"simplifyTolerance\", 0.618);\n }\n};\n__publicField(HighlighterTool, \"id\", \"highlighter\");\n__publicField(HighlighterTool, \"shortcut\", \"whiteboard\/highlighter\");\n\n\/\/ src\/lib\/tools\/LineTool.tsx\nvar LineTool = class extends TLLineTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", LineShape);\n }\n};\n__publicField(LineTool, \"id\", \"line\");\n__publicField(LineTool, \"shortcut\", \"whiteboard\/connector\");\n\n\/\/ src\/lib\/tools\/PencilTool.tsx\nvar PencilTool = class extends TLDrawTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", PencilShape);\n __publicField(this, \"simplify\", false);\n }\n};\n__publicField(PencilTool, \"id\", \"pencil\");\n__publicField(PencilTool, \"shortcut\", \"whiteboard\/pencil\");\n\n\/\/ src\/lib\/tools\/PolygonTool.tsx\nvar PolygonTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", PolygonShape);\n }\n};\n__publicField(PolygonTool, \"id\", \"polygon\");\n\n\/\/ src\/lib\/tools\/TextTool.tsx\nvar TextTool = class extends TLTextTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", TextShape);\n }\n};\n__publicField(TextTool, \"id\", \"text\");\n__publicField(TextTool, \"shortcut\", \"whiteboard\/text\");\n\n\/\/ src\/lib\/tools\/YouTubeTool.tsx\nvar YouTubeTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", YouTubeShape);\n }\n};\n__publicField(YouTubeTool, \"id\", \"youtube\");\n\n\/\/ src\/lib\/tools\/LogseqPortalTool\/states\/CreatingState.tsx\nvar CreatingState6 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"creatingShape\");\n __publicField(this, \"offset\", [0, 0]);\n __publicField(this, \"onEnter\", () => {\n this.app.history.pause();\n transaction(() => {\n let point = src_default.sub(this.app.inputs.originPoint, this.offset);\n if (this.app.settings.snapToGrid) {\n point = src_default.snap(point, GRID_SIZE);\n }\n const shape = new LogseqPortalShape({\n id: uniqueId(),\n parentId: this.app.currentPage.id,\n point,\n size: LogseqPortalShape.defaultProps.size,\n fill: this.app.settings.color,\n stroke: this.app.settings.color\n });\n this.creatingShape = shape;\n this.app.currentPage.addShapes(shape);\n this.app.setEditingShape(shape);\n this.app.setSelectedShapes([shape]);\n });\n });\n __publicField(this, \"onPointerDown\", (info) => {\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n if (info.shape === this.creatingShape)\n return;\n this.app.selectTool(\"select\");\n break;\n }\n case \"selection\" \/* Selection *\/: {\n break;\n }\n case \"handle\" \/* Handle *\/: {\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n if (!info.order) {\n this.app.selectTool(\"select\");\n }\n break;\n }\n }\n });\n __publicField(this, \"onExit\", () => {\n var _a3;\n if (!this.creatingShape)\n return;\n this.app.history.resume();\n if ((_a3 = this.creatingShape) == null ? void 0 : _a3.props.pageId) {\n this.app.setSelectedShapes([this.creatingShape.id]);\n } else {\n this.app.deleteShapes([this.creatingShape.id]);\n this.app.setEditingShape();\n }\n this.creatingShape = void 0;\n });\n }\n};\n__publicField(CreatingState6, \"id\", \"creating\");\n\n\/\/ src\/lib\/tools\/LogseqPortalTool\/states\/IdleState.tsx\nvar IdleState9 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"onPointerDown\", (e2) => {\n this.tool.transition(\"creating\");\n });\n }\n};\n__publicField(IdleState9, \"id\", \"idle\");\n\n\/\/ src\/lib\/tools\/LogseqPortalTool\/LogseqPortalTool.tsx\nvar LogseqPortalTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", LogseqPortalShape);\n __publicField(this, \"onPinch\", (info) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n }\n};\n__publicField(LogseqPortalTool, \"id\", \"logseq-portal\");\n__publicField(LogseqPortalTool, \"shortcut\", \"whiteboard\/portal\");\n__publicField(LogseqPortalTool, \"states\", [IdleState9, CreatingState6]);\n__publicField(LogseqPortalTool, \"initial\", \"idle\");\n\n\/\/ src\/lib\/tools\/HTMLTool.tsx\nvar HTMLTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", HTMLShape);\n }\n};\n__publicField(HTMLTool, \"id\", \"youtube\");\n\n\/\/ src\/lib\/tools\/IFrameTool.tsx\nvar IFrameTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", IFrameShape);\n }\n};\n__publicField(IFrameTool, \"id\", \"iframe\");\n\n\/\/ src\/lib\/preview-manager.tsx\nvar import_server = __toESM(require(\"react-dom\/server\"));\nvar import_jsx_runtime73 = require(\"react\/jsx-runtime\");\nvar SVG_EXPORT_PADDING = 16;\nvar ShapesMap = new Map(shapes.map((shape) => [shape.id, shape]));\nvar getShapeClass = (type) => {\n if (!type)\n throw Error(\"No shape type provided.\");\n const Shape5 = ShapesMap.get(type);\n if (!Shape5)\n throw Error(`Could not find shape class for ${type}`);\n return Shape5;\n};\nvar PreviewManager = class {\n constructor(serializedApp) {\n __publicField(this, \"shapes\");\n __publicField(this, \"pageId\");\n __publicField(this, \"assets\");\n if (serializedApp) {\n this.load(serializedApp);\n }\n }\n load(snapshot) {\n var _a3;\n const page = (_a3 = snapshot == null ? void 0 : snapshot.pages) == null ? void 0 : _a3[0];\n this.pageId = page == null ? void 0 : page.id;\n this.assets = snapshot.assets;\n this.shapes = page == null ? void 0 : page.shapes.map((s4) => {\n const ShapeClass = getShapeClass(s4.type);\n return new ShapeClass(s4);\n }).filter((s4) => s4.type !== \"group\");\n }\n generatePreviewJsx(viewport, ratio) {\n var _a3, _b;\n const allBounds = [...((_a3 = this.shapes) != null ? _a3 : []).map((s4) => s4.getRotatedBounds())];\n const vBounds = viewport == null ? void 0 : viewport.currentView;\n if (vBounds) {\n allBounds.push(vBounds);\n }\n let commonBounds = BoundsUtils.getCommonBounds(allBounds);\n if (!commonBounds) {\n return null;\n }\n commonBounds = BoundsUtils.expandBounds(commonBounds, SVG_EXPORT_PADDING);\n commonBounds = ratio ? BoundsUtils.ensureRatio(commonBounds, ratio) : commonBounds;\n const translatePoint = (p4) => {\n return [(p4[0] - commonBounds.minX).toFixed(2), (p4[1] - commonBounds.minY).toFixed(2)];\n };\n const [vx, vy] = vBounds ? translatePoint([vBounds.minX, vBounds.minY]) : [0, 0];\n const svgElement = commonBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsxs)(\"svg\", {\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n \"data-common-bound-x\": commonBounds.minX.toFixed(2),\n \"data-common-bound-y\": commonBounds.minY.toFixed(2),\n \"data-common-bound-width\": commonBounds.width.toFixed(2),\n \"data-common-bound-height\": commonBounds.height.toFixed(2),\n viewBox: [0, 0, commonBounds.width, commonBounds.height].join(\" \"),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"defs\", {\n children: vBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"rect\", {\n id: this.pageId + \"-camera-rect\",\n transform: `translate(${vx}, ${vy})`,\n width: vBounds.width,\n height: vBounds.height\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsxs)(\"mask\", {\n id: this.pageId + \"-camera-mask\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"rect\", {\n width: commonBounds.width,\n height: commonBounds.height,\n fill: \"white\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"use\", {\n href: `#${this.pageId}-camera-rect`,\n fill: \"black\"\n })\n ]\n })\n ]\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"g\", {\n id: this.pageId + \"-preview-shapes\",\n children: (_b = this.shapes) == null ? void 0 : _b.map((s4) => {\n var _a4, _b2;\n const {\n bounds,\n props: { rotation }\n } = s4;\n const [tx, ty] = translatePoint([bounds.minX, bounds.minY]);\n const r4 = +(((rotation != null ? rotation : 0) + ((_a4 = bounds.rotation) != null ? _a4 : 0)) * 180 \/ Math.PI).toFixed(2);\n const [rdx, rdy] = [(bounds.width \/ 2).toFixed(2), (bounds.height \/ 2).toFixed(2)];\n const transformArr = [`translate(${tx}, ${ty})`, `rotate(${r4}, ${rdx}, ${rdy})`];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"g\", {\n transform: transformArr.join(\" \"),\n children: s4.getShapeSVGJsx({\n assets: (_b2 = this.assets) != null ? _b2 : []\n })\n }, s4.id);\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"rect\", {\n mask: vBounds ? `url(#${this.pageId}-camera-mask)` : \"\",\n width: commonBounds.width,\n height: commonBounds.height,\n fill: \"transparent\"\n }),\n vBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"use\", {\n id: \"minimap-camera-rect\",\n \"data-x\": vx,\n \"data-y\": vy,\n \"data-width\": vBounds.width,\n \"data-height\": vBounds.height,\n href: `#${this.pageId}-camera-rect`,\n fill: \"transparent\",\n stroke: \"red\",\n strokeWidth: 4 \/ viewport.camera.zoom\n })\n ]\n });\n return svgElement;\n }\n exportAsSVG(ratio) {\n const svgElement = this.generatePreviewJsx(void 0, ratio);\n return svgElement ? import_server.default.renderToString(svgElement) : \"\";\n }\n};\nfunction generateSVGFromModel(serializedApp, ratio = 4 \/ 3) {\n const preview = new PreviewManager(serializedApp);\n return preview.exportAsSVG(ratio);\n}\nfunction generateJSXFromModel(serializedApp, ratio = 4 \/ 3) {\n const preview = new PreviewManager(serializedApp);\n return preview.generatePreviewJsx(void 0, ratio);\n}\n\n\/\/ src\/components\/inputs\/TextInput.tsx\nvar React67 = __toESM(require(\"react\"));\nvar import_jsx_runtime74 = require(\"react\/jsx-runtime\");\nvar TextInput = React67.forwardRef(\n (_a3, ref) => {\n var _b = _a3, { autoResize = true, value, className } = _b, rest = __objRest(_b, [\"autoResize\", \"value\", \"className\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsx)(\"div\", {\n className: \"tl-input\" + (className ? \" \" + className : \"\"),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsxs)(\"div\", {\n className: \"tl-input-sizer\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsx)(\"div\", {\n className: \"tl-input-hidden\",\n children: value\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsx)(\"input\", __spreadValues({\n ref,\n value,\n className: \"tl-text-input\",\n type: \"text\"\n }, rest))\n ]\n })\n });\n }\n);\n\n\/\/ src\/components\/QuickSearch\/QuickSearch.tsx\nvar import_jsx_runtime75 = require(\"react\/jsx-runtime\");\nvar LogseqTypeTag = ({\n type,\n active\n}) => {\n const nameMapping = {\n B: \"block\",\n P: \"page\",\n WP: \"whiteboard\",\n BA: \"new-block\",\n PA: \"new-page\",\n WA: \"new-whiteboard\",\n BS: \"block-search\",\n PS: \"page-search\"\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"span\", {\n className: \"tl-type-tag\",\n \"data-active\": active,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"i\", {\n className: `tie tie-${nameMapping[type]}`\n })\n });\n};\nfunction escapeRegExp(text) {\n return text.replace(\/[-[\\]{}()*+?.,\\\\^$|#\\s]\/g, \"\\\\$&\");\n}\nvar highlightedJSX = (input, keyword) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"span\", {\n children: input.split(new RegExp(`(${escapeRegExp(keyword)})`, \"gi\")).map((part, index3) => {\n if (index3 % 2 === 1) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"mark\", {\n className: \"tl-highlighted\",\n children: part\n });\n }\n return part;\n }).map((frag, idx) => \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(import_react86.default.Fragment, {\n children: frag\n }, idx))\n });\n};\nvar useSearch = (q2, searchFilter) => {\n const { handlers } = import_react86.default.useContext(LogseqContext);\n const [results, setResults] = import_react86.default.useState(null);\n const dq = useDebouncedValue(q2, 200);\n import_react86.default.useEffect(() => {\n let canceled = false;\n if (dq.length > 0) {\n const filter2 = { \"pages?\": true, \"blocks?\": true, \"files?\": false };\n if (searchFilter === \"B\") {\n filter2[\"pages?\"] = false;\n } else if (searchFilter === \"P\") {\n filter2[\"blocks?\"] = false;\n }\n handlers.search(dq, filter2).then((_results) => {\n if (!canceled) {\n setResults(_results);\n }\n });\n } else {\n setResults(null);\n }\n return () => {\n canceled = true;\n };\n }, [dq, handlers == null ? void 0 : handlers.search]);\n return results;\n};\nvar LogseqQuickSearch = observer(\n ({ className, style, placeholder: placeholder2, onChange, onBlur, onAddBlock }) => {\n const [q2, setQ] = import_react86.default.useState(LogseqPortalShape.defaultSearchQuery);\n const [searchFilter, setSearchFilter] = import_react86.default.useState(\n LogseqPortalShape.defaultSearchFilter\n );\n const rInput = import_react86.default.useRef(null);\n const { handlers, renderers } = import_react86.default.useContext(LogseqContext);\n const t2 = handlers.t;\n const finishSearching = import_react86.default.useCallback((id3) => {\n var _a3;\n setTimeout(() => onChange(id3));\n (_a3 = rInput.current) == null ? void 0 : _a3.blur();\n if (id3) {\n LogseqPortalShape.defaultSearchQuery = \"\";\n LogseqPortalShape.defaultSearchFilter = null;\n }\n }, []);\n const handleAddBlock = import_react86.default.useCallback(\n (content) => {\n const uuid = handlers == null ? void 0 : handlers.addNewBlock(content);\n if (uuid) {\n finishSearching(uuid);\n onAddBlock == null ? void 0 : onAddBlock(uuid);\n }\n return uuid;\n },\n [onAddBlock]\n );\n const optionsWrapperRef = import_react86.default.useRef(null);\n const [focusedOptionIdx, setFocusedOptionIdx] = import_react86.default.useState(0);\n const searchResult = useSearch(q2, searchFilter);\n const [prefixIcon, setPrefixIcon] = import_react86.default.useState(\"circle-plus\");\n const [showPanel, setShowPanel] = import_react86.default.useState(false);\n import_react86.default.useEffect(() => {\n setTimeout(() => {\n var _a3;\n (_a3 = rInput.current) == null ? void 0 : _a3.focus();\n });\n }, [searchFilter]);\n import_react86.default.useEffect(() => {\n LogseqPortalShape.defaultSearchQuery = q2;\n LogseqPortalShape.defaultSearchFilter = searchFilter;\n }, [q2, searchFilter]);\n const options = import_react86.default.useMemo(() => {\n var _a3;\n const options2 = [];\n const Breadcrumb = renderers == null ? void 0 : renderers.Breadcrumb;\n if (!Breadcrumb || !handlers) {\n return [];\n }\n if (onAddBlock) {\n options2.push({\n actionIcon: \"circle-plus\",\n onChosen: () => {\n return !!handleAddBlock(q2);\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n active: true,\n type: \"BA\"\n }),\n q2.length > 0 ? \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-block\")\n }),\n q2\n ]\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-block-no-colon\")\n })\n ]\n })\n });\n }\n if (!((_a3 = searchResult == null ? void 0 : searchResult.pages) == null ? void 0 : _a3.some((p4) => p4.toLowerCase() === q2.toLowerCase())) && q2) {\n options2.push(\n {\n actionIcon: \"circle-plus\",\n onChosen: () => {\n finishSearching(q2);\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n active: true,\n type: \"PA\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-page\")\n }),\n q2\n ]\n })\n },\n {\n actionIcon: \"circle-plus\",\n onChosen: () => {\n handlers == null ? void 0 : handlers.addNewWhiteboard(q2);\n finishSearching(q2);\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n active: true,\n type: \"WA\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-whiteboard\")\n }),\n q2\n ]\n })\n }\n );\n }\n if (q2.length === 0 && searchFilter === null) {\n options2.push(\n {\n actionIcon: \"search\",\n onChosen: () => {\n setSearchFilter(\"B\");\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: \"BS\"\n }),\n t2(\"whiteboard\/search-only-blocks\")\n ]\n })\n },\n {\n actionIcon: \"search\",\n onChosen: () => {\n setSearchFilter(\"P\");\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: \"PS\"\n }),\n t2(\"whiteboard\/search-only-pages\")\n ]\n })\n }\n );\n }\n if ((!searchFilter || searchFilter === \"P\") && searchResult && searchResult.pages) {\n options2.push(\n ...searchResult.pages.map((page) => {\n return {\n actionIcon: \"search\",\n onChosen: () => {\n finishSearching(page);\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: handlers.isWhiteboardPage(page) ? \"WP\" : \"P\"\n }),\n highlightedJSX(page, q2)\n ]\n })\n };\n })\n );\n }\n if ((!searchFilter || searchFilter === \"B\") && searchResult && searchResult.blocks) {\n options2.push(\n ...searchResult.blocks.filter((block) => block.content && block.uuid).map(({ content, uuid }) => {\n const block = handlers.queryBlockByUUID(uuid);\n return {\n actionIcon: \"search\",\n onChosen: () => {\n var _a4, _b, _c;\n if (block) {\n finishSearching(uuid);\n (_c = (_b = (_a4 = window.logseq) == null ? void 0 : _a4.api) == null ? void 0 : _b.set_blocks_id) == null ? void 0 : _c.call(_b, [uuid]);\n return true;\n }\n return false;\n },\n element: block ? \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: \"B\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-option-breadcrumb\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(Breadcrumb, {\n blockId: uuid\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-option-placeholder\"\n }),\n highlightedJSX(content, q2)\n ]\n })\n ]\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: t2(\"whiteboard\/cache-outdated\")\n })\n };\n })\n );\n }\n return options2;\n }, [q2, searchFilter, searchResult, renderers == null ? void 0 : renderers.Breadcrumb, handlers]);\n import_react86.default.useEffect(() => {\n const keydownListener = (e2) => {\n var _a3, _b;\n let newIndex = focusedOptionIdx;\n if (e2.key === \"ArrowDown\") {\n newIndex = Math.min(options.length - 1, focusedOptionIdx + 1);\n } else if (e2.key === \"ArrowUp\") {\n newIndex = Math.max(0, focusedOptionIdx - 1);\n } else if (e2.key === \"Enter\") {\n (_a3 = options[focusedOptionIdx]) == null ? void 0 : _a3.onChosen();\n e2.stopPropagation();\n e2.preventDefault();\n } else if (e2.key === \"Backspace\" && q2.length === 0) {\n setSearchFilter(null);\n } else if (e2.key === \"Escape\") {\n finishSearching(\"\");\n }\n if (newIndex !== focusedOptionIdx) {\n const option = options[newIndex];\n setFocusedOptionIdx(newIndex);\n setPrefixIcon(option.actionIcon);\n e2.stopPropagation();\n e2.preventDefault();\n const optionElement = (_b = optionsWrapperRef.current) == null ? void 0 : _b.querySelector(\n \".tl-quick-search-option:nth-child(\" + (newIndex + 1) + \")\"\n );\n if (optionElement) {\n optionElement == null ? void 0 : optionElement.scrollIntoViewIfNeeded(false);\n }\n }\n };\n document.addEventListener(\"keydown\", keydownListener, true);\n return () => {\n document.removeEventListener(\"keydown\", keydownListener, true);\n };\n }, [options, focusedOptionIdx, q2]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search \" + (className != null ? className : \"\"),\n style,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(CircleButton, {\n icon: prefixIcon,\n onClick: () => {\n var _a3;\n (_a3 = options[focusedOptionIdx]) == null ? void 0 : _a3.onChosen();\n }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-input-container\",\n children: [\n searchFilter && \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-input-filter\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: searchFilter\n }),\n searchFilter === \"B\" ? \"Search blocks\" : \"Search pages\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-input-filter-remove\",\n onClick: () => setSearchFilter(null),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(TablerIcon, {\n name: \"x\"\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(TextInput, {\n ref: rInput,\n type: \"text\",\n value: q2,\n className: \"tl-quick-search-input\",\n placeholder: placeholder2 != null ? placeholder2 : \"Create or search your graph...\",\n onChange: (q3) => setQ(q3.target.value),\n onKeyDown: (e2) => {\n if (e2.key === \"Enter\") {\n finishSearching(q2);\n }\n e2.stopPropagation();\n },\n onFocus: () => {\n setShowPanel(true);\n },\n onBlur: () => {\n setShowPanel(false);\n onBlur == null ? void 0 : onBlur();\n }\n })\n ]\n }),\n options.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n onWheelCapture: (e2) => e2.stopPropagation(),\n className: \"tl-quick-search-options\",\n ref: optionsWrapperRef,\n style: {\n visibility: showPanel ? \"visible\" : \"hidden\",\n pointerEvents: showPanel ? \"all\" : \"none\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(cn, {\n style: { height: Math.min(Math.max(1, options.length), 12) * 40 },\n totalCount: options.length,\n itemContent: (index3) => {\n const { actionIcon, onChosen, element } = options[index3];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n \"data-focused\": index3 === focusedOptionIdx,\n className: \"tl-quick-search-option\",\n tabIndex: 0,\n onMouseEnter: () => {\n setPrefixIcon(actionIcon);\n setFocusedOptionIdx(index3);\n },\n onPointerDownCapture: (e2) => {\n if (onChosen()) {\n e2.stopPropagation();\n e2.preventDefault();\n }\n },\n children: element\n }, index3);\n }\n })\n })\n ]\n });\n }\n);\n\n\/\/ src\/components\/inputs\/ShapeLinksInput.tsx\nvar import_jsx_runtime76 = require(\"react\/jsx-runtime\");\nfunction ShapeLinkItem({\n id: id3,\n type,\n onRemove,\n showContent\n}) {\n const app = useApp();\n const { handlers } = import_react88.default.useContext(LogseqContext);\n const t2 = handlers.t;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"tl-shape-links-panel-item color-level relative\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"whitespace-pre break-all overflow-hidden text-ellipsis inline-flex\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(BlockLink, {\n id: id3,\n showReferenceContent: showContent\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"flex-1\"\n }),\n handlers.getBlockPageName(id3) !== app.currentPage.name && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-page\"),\n type: \"button\",\n onClick: () => handlers == null ? void 0 : handlers.redirectToPage(id3),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: \"open-as-page\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-page-in-sidebar\"),\n type: \"button\",\n onClick: () => handlers == null ? void 0 : handlers.sidebarAddBlock(id3, type === \"B\" ? \"block\" : \"page\"),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: \"move-to-sidebar-right\"\n })\n }),\n onRemove && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Button, {\n className: \"tl-shape-links-panel-item-remove-button\",\n tooltip: t2(\"whiteboard\/remove-link\"),\n type: \"button\",\n onClick: onRemove,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: \"x\",\n className: \"!translate-y-0\"\n })\n })\n ]\n });\n}\nvar ShapeLinksInput = observer(function ShapeLinksInput2(_a3) {\n var _b = _a3, {\n pageId,\n portalType,\n shapeType,\n refs,\n side,\n onRefsChange\n } = _b, rest = __objRest(_b, [\n \"pageId\",\n \"portalType\",\n \"shapeType\",\n \"refs\",\n \"side\",\n \"onRefsChange\"\n ]);\n const {\n handlers: { t: t2 }\n } = import_react88.default.useContext(LogseqContext);\n const noOfLinks = refs.length + (pageId ? 1 : 0);\n const canAddLink = refs.length === 0;\n const addNewRef = (value) => {\n if (value && !refs.includes(value) && canAddLink) {\n onRefsChange([...refs, value]);\n }\n };\n const showReferencePanel = !!(pageId && portalType);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(PopoverButton, __spreadProps(__spreadValues({}, rest), {\n side,\n align: \"start\",\n alignOffset: -6,\n label: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Tooltip, {\n content: t2(\"whiteboard\/link\"),\n sideOffset: 14,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"flex gap-1 relative items-center justify-center px-1\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: noOfLinks > 0 ? \"link\" : \"add-link\"\n }),\n noOfLinks > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"tl-shape-links-count\",\n children: noOfLinks\n })\n ]\n })\n }),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"color-level rounded-lg\",\n \"data-show-reference-panel\": showReferencePanel,\n children: [\n showReferencePanel && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"tl-shape-links-reference-panel\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"text-base inline-flex gap-1 items-center\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n className: \"opacity-50\",\n name: \"internal-link\"\n }),\n t2(\"whiteboard\/references\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(ShapeLinkItem, {\n type: portalType,\n id: pageId\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"tl-shape-links-panel color-level\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"text-base inline-flex gap-1 items-center\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n className: \"opacity-50\",\n name: \"add-link\"\n }),\n t2(\"whiteboard\/link-to-any-page-or-block\")\n ]\n }),\n canAddLink && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(LogseqQuickSearch, {\n style: {\n width: \"calc(100% - 46px)\",\n marginLeft: \"46px\"\n },\n placeholder: t2(\"whiteboard\/start-typing-to-search\"),\n onChange: addNewRef\n }),\n refs.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"flex flex-col items-stretch gap-2\",\n children: refs.map((ref, i4) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(ShapeLinkItem, {\n id: ref,\n type: validUUID(ref) ? \"B\" : \"P\",\n onRemove: () => {\n onRefsChange(refs.filter((_2, j2) => i4 !== j2));\n },\n showContent: true\n }, ref);\n })\n })\n ]\n })\n ]\n })\n }));\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-toggle-group\/dist\/index.module.js\nvar import_react89 = __toESM(require(\"react\"));\nvar $6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [$6c1fd9e6a8969628$var$createToggleGroupContext, $6c1fd9e6a8969628$export$d1c7c4bcd9f26dd4] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME, [\n $d7bdfb9eb0fdf311$export$c7109489551a4f4\n]);\nvar $6c1fd9e6a8969628$var$useRovingFocusGroupScope = $d7bdfb9eb0fdf311$export$c7109489551a4f4();\nvar $6c1fd9e6a8969628$export$af3ec21f6cfb5e30 = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { type } = _a3, toggleGroupProps = __objRest(_a3, [\"type\"]);\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImplSingle, _extends2({}, singleProps, {\n ref: forwardedRef\n }));\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImplMultiple, _extends2({}, multipleProps, {\n ref: forwardedRef\n }));\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${$6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME}\\``);\n});\nvar [$6c1fd9e6a8969628$var$ToggleGroupValueProvider, $6c1fd9e6a8969628$var$useToggleGroupValueContext] = $6c1fd9e6a8969628$var$createToggleGroupContext($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME);\nvar $6c1fd9e6a8969628$var$ToggleGroupImplSingle = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { value: valueProp, defaultValue, onValueChange = () => {\n } } = _a3, toggleGroupSingleProps = __objRest(_a3, [\"value\", \"defaultValue\", \"onValueChange\"]);\n const [value, setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupValueProvider, {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: value ? [\n value\n ] : [],\n onItemActivate: setValue,\n onItemDeactivate: import_react89.default.useCallback(\n () => setValue(\"\"),\n [\n setValue\n ]\n )\n }, \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImpl, _extends2({}, toggleGroupSingleProps, {\n ref: forwardedRef\n })));\n});\nvar $6c1fd9e6a8969628$var$ToggleGroupImplMultiple = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { value: valueProp, defaultValue, onValueChange = () => {\n } } = _a3, toggleGroupMultipleProps = __objRest(_a3, [\"value\", \"defaultValue\", \"onValueChange\"]);\n const [value1 = [], setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const handleButtonActivate = import_react89.default.useCallback(\n (itemValue) => setValue(\n (prevValue = []) => [\n ...prevValue,\n itemValue\n ]\n ),\n [\n setValue\n ]\n );\n const handleButtonDeactivate = import_react89.default.useCallback(\n (itemValue) => setValue(\n (prevValue = []) => prevValue.filter(\n (value) => value !== itemValue\n )\n ),\n [\n setValue\n ]\n );\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupValueProvider, {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value: value1,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate\n }, \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImpl, _extends2({}, toggleGroupMultipleProps, {\n ref: forwardedRef\n })));\n});\nvar [$6c1fd9e6a8969628$var$ToggleGroupContext, $6c1fd9e6a8969628$var$useToggleGroupContext] = $6c1fd9e6a8969628$var$createToggleGroupContext($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME);\nvar $6c1fd9e6a8969628$var$ToggleGroupImpl = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { __scopeToggleGroup, disabled = false, rovingFocus = true, orientation, dir, loop = true } = _a3, toggleGroupProps = __objRest(_a3, [\"__scopeToggleGroup\", \"disabled\", \"rovingFocus\", \"orientation\", \"dir\", \"loop\"]);\n const rovingFocusGroupScope = $6c1fd9e6a8969628$var$useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const commonProps = __spreadValues({\n role: \"group\",\n dir: direction\n }, toggleGroupProps);\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupContext, {\n scope: __scopeToggleGroup,\n rovingFocus,\n disabled\n }, rovingFocus ? \/* @__PURE__ *\/ import_react89.default.createElement($d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n orientation,\n dir: direction,\n loop\n }), \/* @__PURE__ *\/ import_react89.default.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, commonProps, {\n ref: forwardedRef\n }))) : \/* @__PURE__ *\/ import_react89.default.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, commonProps, {\n ref: forwardedRef\n })));\n});\nvar $6c1fd9e6a8969628$var$ITEM_NAME = \"ToggleGroupItem\";\nvar $6c1fd9e6a8969628$export$b453109e13abe10b = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const valueContext = $6c1fd9e6a8969628$var$useToggleGroupValueContext($6c1fd9e6a8969628$var$ITEM_NAME, props.__scopeToggleGroup);\n const context = $6c1fd9e6a8969628$var$useToggleGroupContext($6c1fd9e6a8969628$var$ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = $6c1fd9e6a8969628$var$useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = __spreadProps(__spreadValues({}, props), {\n pressed,\n disabled\n });\n const ref = import_react89.default.useRef(null);\n return context.rovingFocus ? \/* @__PURE__ *\/ import_react89.default.createElement($d7bdfb9eb0fdf311$export$6d08773d2e66f8f2, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n focusable: !disabled,\n active: pressed,\n ref\n }), \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupItemImpl, _extends2({}, commonProps, {\n ref: forwardedRef\n }))) : \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupItemImpl, _extends2({}, commonProps, {\n ref: forwardedRef\n }));\n});\nvar $6c1fd9e6a8969628$var$ToggleGroupItemImpl = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { __scopeToggleGroup, value } = _a3, itemProps = __objRest(_a3, [\"__scopeToggleGroup\", \"value\"]);\n const valueContext = $6c1fd9e6a8969628$var$useToggleGroupValueContext($6c1fd9e6a8969628$var$ITEM_NAME, __scopeToggleGroup);\n const singleProps = {\n role: \"radio\",\n \"aria-checked\": props.pressed,\n \"aria-pressed\": void 0\n };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return \/* @__PURE__ *\/ import_react89.default.createElement($b3bbe2732c13b576$export$bea8ebba691c5813, _extends2({}, typeProps, itemProps, {\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed)\n valueContext.onItemActivate(value);\n else\n valueContext.onItemDeactivate(value);\n }\n }));\n});\nvar $6c1fd9e6a8969628$export$be92b6f5f03c0fe9 = $6c1fd9e6a8969628$export$af3ec21f6cfb5e30;\nvar $6c1fd9e6a8969628$export$6d08773d2e66f8f2 = $6c1fd9e6a8969628$export$b453109e13abe10b;\n\n\/\/ src\/components\/inputs\/ToggleGroupInput.tsx\nvar import_jsx_runtime77 = require(\"react\/jsx-runtime\");\nfunction ToggleGroupInput({ options, value, onValueChange }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$be92b6f5f03c0fe9, {\n className: \"tl-toggle-group-input\",\n type: \"single\",\n value,\n onValueChange,\n children: options.map((option) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(Tooltip, {\n content: option.tooltip,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(\"div\", {\n className: \"inline-block\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$6d08773d2e66f8f2, {\n className: \"tl-toggle-group-input-button\",\n value: option.value,\n disabled: option.value === value,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(TablerIcon, {\n name: option.icon\n })\n })\n })\n }, option.value);\n })\n });\n}\nfunction ToggleGroupMultipleInput({\n options,\n value,\n onValueChange\n}) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$be92b6f5f03c0fe9, {\n className: \"tl-toggle-group-input\",\n type: \"multiple\",\n value,\n onValueChange,\n children: options.map((option) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$6d08773d2e66f8f2, {\n className: \"tl-toggle-group-input-button\",\n value: option.value,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(TablerIcon, {\n name: option.icon\n })\n }, option.value);\n })\n });\n}\n\n\/\/ src\/components\/ContextBar\/contextBarActionFactory.tsx\nvar import_jsx_runtime78 = require(\"react\/jsx-runtime\");\nvar contextBarActionTypes = [\n \"EditPdf\",\n \"LogseqPortalViewMode\",\n \"Geometry\",\n \"AutoResizing\",\n \"Swatch\",\n \"NoFill\",\n \"StrokeType\",\n \"ScaleLevel\",\n \"TextStyle\",\n \"YoutubeLink\",\n \"TwitterLink\",\n \"IFrameSource\",\n \"ArrowMode\",\n \"Links\"\n];\nvar singleShapeActions = [\n \"YoutubeLink\",\n \"TwitterLink\",\n \"IFrameSource\",\n \"Links\",\n \"EditPdf\"\n];\nvar contextBarActionMapping = \/* @__PURE__ *\/ new Map();\nvar shapeMapping = {\n \"logseq-portal\": [\"Swatch\", \"LogseqPortalViewMode\", \"ScaleLevel\", \"AutoResizing\", \"Links\"],\n youtube: [\"YoutubeLink\", \"Links\"],\n tweet: [\"TwitterLink\", \"Links\"],\n iframe: [\"IFrameSource\", \"Links\"],\n box: [\"Geometry\", \"TextStyle\", \"Swatch\", \"ScaleLevel\", \"NoFill\", \"StrokeType\", \"Links\"],\n ellipse: [\"Geometry\", \"TextStyle\", \"Swatch\", \"ScaleLevel\", \"NoFill\", \"StrokeType\", \"Links\"],\n polygon: [\"Geometry\", \"TextStyle\", \"Swatch\", \"ScaleLevel\", \"NoFill\", \"StrokeType\", \"Links\"],\n line: [\"TextStyle\", \"Swatch\", \"ScaleLevel\", \"ArrowMode\", \"Links\"],\n pencil: [\"Swatch\", \"Links\", \"ScaleLevel\"],\n highlighter: [\"Swatch\", \"Links\", \"ScaleLevel\"],\n text: [\"TextStyle\", \"Swatch\", \"ScaleLevel\", \"AutoResizing\", \"Links\"],\n html: [\"ScaleLevel\", \"AutoResizing\", \"Links\"],\n image: [\"Links\"],\n video: [\"Links\"],\n pdf: [\"EditPdf\", \"Links\"]\n};\nvar withFillShapes = Object.entries(shapeMapping).filter(([key, types]) => {\n return types.includes(\"NoFill\") && types.includes(\"Swatch\");\n}).map(([key]) => key);\nfunction filterShapeByAction(type) {\n const app = useApp();\n const unlockedSelectedShapes = app.selectedShapesArray.filter((s4) => !s4.props.isLocked);\n return unlockedSelectedShapes.filter((shape) => {\n var _a3;\n return (_a3 = shapeMapping[shape.props.type]) == null ? void 0 : _a3.includes(type);\n });\n}\nvar AutoResizingAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"AutoResizing\");\n const pressed = shapes2.every((s4) => s4.props.isAutoResizing);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/auto-resize\"),\n toggle: shapes2.every((s4) => s4.props.type === \"logseq-portal\"),\n className: \"tl-button\",\n pressed,\n onPressedChange: (v4) => {\n shapes2.forEach((s4) => {\n if (s4.props.type === \"logseq-portal\") {\n s4.update({\n isAutoResizing: v4\n });\n } else {\n s4.onResetBounds({ zoom: app.viewport.camera.zoom });\n }\n });\n app.persist();\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"dimensions\"\n })\n });\n});\nvar LogseqPortalViewModeAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"LogseqPortalViewMode\");\n const collapsed = shapes2.every((s4) => s4.collapsed);\n if (!collapsed && !shapes2.every((s4) => !s4.collapsed)) {\n return null;\n }\n const tooltip = \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"div\", {\n className: \"flex\",\n children: [\n collapsed ? t2(\"whiteboard\/expand\") : t2(\"whiteboard\/collapse\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(KeyboardShortcut, {\n action: collapsed ? \"editor\/expand-block-children\" : \"editor\/collapse-block-children\"\n })\n ]\n });\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip,\n toggle: shapes2.every((s4) => s4.props.type === \"logseq-portal\"),\n className: \"tl-button\",\n pressed: collapsed,\n onPressedChange: () => app.api.setCollapsed(!collapsed),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: collapsed ? \"object-expanded\" : \"object-compact\"\n })\n });\n});\nvar ScaleLevelAction = observer(() => {\n const {\n handlers: { isMobile }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"ScaleLevel\");\n const scaleLevel = new Set(shapes2.map((s4) => s4.scaleLevel)).size > 1 ? \"\" : shapes2[0].scaleLevel;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ScaleInput, {\n scaleLevel,\n compact: isMobile()\n });\n});\nvar IFrameSourceAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shape = filterShapeByAction(\"IFrameSource\")[0];\n const handleChange = import_react91.default.useCallback((e2) => {\n shape.onIFrameSourceChange(e2.target.value.trim().toLowerCase());\n app.persist();\n }, []);\n const handleReload = import_react91.default.useCallback(() => {\n shape.reload();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-3\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/reload\"),\n type: \"button\",\n onClick: handleReload,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"refresh\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TextInput, {\n title: t2(\"whiteboard\/website-url\"),\n className: \"tl-iframe-src\",\n value: `${shape.props.url}`,\n onChange: handleChange\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-website-url\"),\n type: \"button\",\n onClick: () => window.open(shape.props.url),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"external-link\"\n })\n })\n ]\n });\n});\nvar YoutubeLinkAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shape = filterShapeByAction(\"YoutubeLink\")[0];\n const handleChange = import_react91.default.useCallback((e2) => {\n shape.onYoutubeLinkChange(e2.target.value);\n app.persist();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-3\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TextInput, {\n title: t2(\"whiteboard\/youtube-url\"),\n className: \"tl-youtube-link\",\n value: `${shape.props.url}`,\n onChange: handleChange\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-youtube-url\"),\n type: \"button\",\n onClick: () => {\n var _a3, _b, _c;\n return (_c = (_b = (_a3 = window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.open_external_link) == null ? void 0 : _c.call(_b, shape.props.url);\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"external-link\"\n })\n })\n ]\n });\n});\nvar TwitterLinkAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shape = filterShapeByAction(\"TwitterLink\")[0];\n const handleChange = import_react91.default.useCallback((e2) => {\n shape.onTwitterLinkChange(e2.target.value);\n app.persist();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-3\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TextInput, {\n title: t2(\"whiteboard\/twitter-url\"),\n className: \"tl-twitter-link\",\n value: `${shape.props.url}`,\n onChange: handleChange\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-twitter-url\"),\n type: \"button\",\n onClick: () => {\n var _a3, _b, _c;\n return (_c = (_b = (_a3 = window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.open_external_link) == null ? void 0 : _c.call(_b, shape.props.url);\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"external-link\"\n })\n })\n ]\n });\n});\nvar EditPdfAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2, setCurrentPdf }\n } = import_react91.default.useContext(LogseqContext);\n const shape = app.selectedShapesArray[0];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/edit-pdf\"),\n type: \"button\",\n onClick: () => setCurrentPdf(app.assets[shape.props.assetId].src),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"edit\"\n })\n });\n});\nvar NoFillAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"NoFill\");\n const handleChange = import_react91.default.useCallback((v4) => {\n app.selectedShapesArray.forEach((s4) => s4.update({ noFill: v4 }));\n app.persist();\n }, []);\n const noFill = shapes2.every((s4) => s4.props.noFill);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/fill\"),\n className: \"tl-button\",\n pressed: noFill,\n onPressedChange: handleChange,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: noFill ? \"droplet-off\" : \"droplet\"\n })\n });\n});\nvar SwatchAction = observer(() => {\n const app = useApp();\n const shapes2 = filterShapeByAction(\"Swatch\");\n const handleSetColor = import_react91.default.useCallback((color2) => {\n app.selectedShapesArray.forEach((s4) => {\n s4.update({ fill: color2, stroke: color2 });\n });\n app.persist();\n }, []);\n const handleSetOpacity = import_react91.default.useCallback((opacity) => {\n app.selectedShapesArray.forEach((s4) => {\n s4.update({ opacity });\n });\n app.persist();\n }, []);\n const color = shapes2[0].props.noFill ? shapes2[0].props.stroke : shapes2[0].props.fill;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ColorInput, {\n popoverSide: \"top\",\n color,\n opacity: shapes2[0].props.opacity,\n setOpacity: handleSetOpacity,\n setColor: handleSetColor\n });\n});\nvar GeometryAction = observer(() => {\n const app = useApp();\n const handleSetGeometry = import_react91.default.useCallback((e2) => {\n const type = e2.currentTarget.dataset.tool;\n app.api.convertShapes(type);\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(GeometryTools, {\n popoverSide: \"top\",\n chevron: false,\n setGeometry: handleSetGeometry\n });\n});\nvar StrokeTypeAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"StrokeType\");\n const StrokeTypeOptions = [\n {\n value: \"line\",\n icon: \"circle\",\n tooltip: \"Solid\"\n },\n {\n value: \"dashed\",\n icon: \"circle-dashed\",\n tooltip: \"Dashed\"\n }\n ];\n const value = shapes2.every((s4) => s4.props.strokeType === \"dashed\") ? \"dashed\" : shapes2.every((s4) => s4.props.strokeType === \"line\") ? \"line\" : \"mixed\";\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleGroupInput, {\n title: t2(\"whiteboard\/stroke-type\"),\n options: StrokeTypeOptions,\n value,\n onValueChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n strokeType: v4\n });\n });\n app.persist();\n }\n });\n});\nvar ArrowModeAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"ArrowMode\");\n const StrokeTypeOptions = [\n {\n value: \"start\",\n icon: \"arrow-narrow-left\"\n },\n {\n value: \"end\",\n icon: \"arrow-narrow-right\"\n }\n ];\n const startValue = shapes2.every((s4) => {\n var _a3;\n return ((_a3 = s4.props.decorations) == null ? void 0 : _a3.start) === \"arrow\" \/* Arrow *\/;\n });\n const endValue = shapes2.every((s4) => {\n var _a3;\n return ((_a3 = s4.props.decorations) == null ? void 0 : _a3.end) === \"arrow\" \/* Arrow *\/;\n });\n const value = [startValue ? \"start\" : null, endValue ? \"end\" : null].filter(isNonNullable);\n const valueToDecorations = (value2) => {\n return {\n start: value2.includes(\"start\") ? \"arrow\" \/* Arrow *\/ : null,\n end: value2.includes(\"end\") ? \"arrow\" \/* Arrow *\/ : null\n };\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleGroupMultipleInput, {\n title: t2(\"whiteboard\/arrow-head\"),\n options: StrokeTypeOptions,\n value,\n onValueChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n decorations: valueToDecorations(v4)\n });\n });\n app.persist();\n }\n });\n});\nvar TextStyleAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"TextStyle\");\n const bold = shapes2.every((s4) => s4.props.fontWeight > 500);\n const italic = shapes2.every((s4) => s4.props.italic);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-1\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/bold\"),\n className: \"tl-button\",\n pressed: bold,\n onPressedChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n fontWeight: v4 ? 700 : 400\n });\n shape.onResetBounds();\n });\n app.persist();\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"bold\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/italic\"),\n className: \"tl-button\",\n pressed: italic,\n onPressedChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n italic: v4\n });\n shape.onResetBounds();\n });\n app.persist();\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"italic\"\n })\n })\n ]\n });\n});\nvar LinksAction = observer(() => {\n var _a3;\n const app = useApp();\n const shape = app.selectedShapesArray[0];\n const handleChange = (refs) => {\n shape.update({ refs });\n app.persist();\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ShapeLinksInput, {\n onRefsChange: handleChange,\n refs: (_a3 = shape.props.refs) != null ? _a3 : [],\n shapeType: shape.props.type,\n side: \"right\",\n pageId: shape.props.type === \"logseq-portal\" ? shape.props.pageId : void 0,\n portalType: shape.props.type === \"logseq-portal\" ? shape.props.blockType : void 0\n });\n});\ncontextBarActionMapping.set(\"Geometry\", GeometryAction);\ncontextBarActionMapping.set(\"AutoResizing\", AutoResizingAction);\ncontextBarActionMapping.set(\"LogseqPortalViewMode\", LogseqPortalViewModeAction);\ncontextBarActionMapping.set(\"ScaleLevel\", ScaleLevelAction);\ncontextBarActionMapping.set(\"YoutubeLink\", YoutubeLinkAction);\ncontextBarActionMapping.set(\"TwitterLink\", TwitterLinkAction);\ncontextBarActionMapping.set(\"IFrameSource\", IFrameSourceAction);\ncontextBarActionMapping.set(\"NoFill\", NoFillAction);\ncontextBarActionMapping.set(\"Swatch\", SwatchAction);\ncontextBarActionMapping.set(\"StrokeType\", StrokeTypeAction);\ncontextBarActionMapping.set(\"ArrowMode\", ArrowModeAction);\ncontextBarActionMapping.set(\"TextStyle\", TextStyleAction);\ncontextBarActionMapping.set(\"Links\", LinksAction);\ncontextBarActionMapping.set(\"EditPdf\", EditPdfAction);\nvar getContextBarActionTypes = (type) => {\n var _a3;\n return ((_a3 = shapeMapping[type]) != null ? _a3 : []).filter(isNonNullable);\n};\nvar getContextBarActionsForShapes = (shapes2) => {\n const types = shapes2.map((s4) => s4.props.type);\n const actionTypes = new Set(shapes2.length > 0 ? getContextBarActionTypes(types[0]) : []);\n for (let i4 = 1; i4 < types.length && actionTypes.size > 0; i4++) {\n const otherActionTypes = getContextBarActionTypes(types[i4]);\n actionTypes.forEach((action2) => {\n if (!otherActionTypes.includes(action2)) {\n actionTypes.delete(action2);\n }\n });\n }\n if (shapes2.length > 1) {\n singleShapeActions.forEach((action2) => {\n if (actionTypes.has(action2)) {\n actionTypes.delete(action2);\n }\n });\n }\n return Array.from(actionTypes).sort((a5, b5) => contextBarActionTypes.indexOf(a5) - contextBarActionTypes.indexOf(b5)).map((action2) => contextBarActionMapping.get(action2));\n};\n\n\/\/ src\/components\/ContextBar\/ContextBar.tsx\nvar import_jsx_runtime79 = require(\"react\/jsx-runtime\");\nvar _ContextBar = ({ shapes: shapes2, offsets, hidden }) => {\n const app = useApp();\n const rSize = React71.useRef(null);\n const rContextBar = React71.useRef(null);\n React71.useLayoutEffect(() => {\n setTimeout(() => {\n const elm = rContextBar.current;\n if (!elm)\n return;\n const { offsetWidth, offsetHeight } = elm;\n rSize.current = [offsetWidth, offsetHeight];\n });\n });\n React71.useLayoutEffect(() => {\n var _a3;\n const elm = rContextBar.current;\n if (!elm)\n return;\n const size = (_a3 = rSize.current) != null ? _a3 : [0, 0];\n const [x4, y4] = getContextBarTranslation(size, offsets);\n elm.style.transform = `translateX(${x4}px) translateY(${y4}px)`;\n }, [offsets]);\n if (!app)\n return null;\n const Actions = getContextBarActionsForShapes(shapes2);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)(HTMLContainer, {\n centered: true,\n children: Actions.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)(\"div\", {\n ref: rContextBar,\n className: \"tl-toolbar tl-context-bar\",\n style: {\n visibility: hidden ? \"hidden\" : \"visible\",\n pointerEvents: hidden ? \"none\" : \"all\"\n },\n children: Actions.map((Action, idx) => \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsxs)(React71.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)(Action, {}),\n idx < Actions.length - 1 && \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n })\n ]\n }, idx))\n })\n });\n};\nvar ContextBar = observer(_ContextBar);\n\n\/\/ src\/components\/ContextMenu\/ContextMenu.tsx\nvar React72 = __toESM(require(\"react\"));\nvar import_jsx_runtime80 = require(\"react\/jsx-runtime\");\nvar LSUI = window.LSUI;\nvar ContextMenu = observer(function ContextMenu2({\n children,\n collisionRef\n}) {\n var _a3, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n const app = useApp();\n const { handlers } = React72.useContext(LogseqContext);\n const t2 = handlers.t;\n const rContent = React72.useRef(null);\n const runAndTransition = (f4) => {\n f4();\n app.transition(\"select\");\n };\n const developerMode = React72.useMemo(() => {\n return isDev();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenu, {\n onOpenChange: (open) => {\n if (open && !app.isIn(\"select.contextMenu\")) {\n app.transition(\"select\").selectedTool.transition(\"contextMenu\");\n } else if (!open && app.isIn(\"select.contextMenu\")) {\n app.selectedTool.transition(\"idle\");\n }\n },\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuTrigger, {\n disabled: app.editingShape && Object.keys(app.editingShape).length !== 0,\n children\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuContent, {\n className: \"tl-menu tl-context-menu\",\n ref: rContent,\n onEscapeKeyDown: () => app.transition(\"select\"),\n collisionBoundary: collisionRef.current,\n asChild: true,\n tabIndex: -1,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(\"div\", {\n children: [\n ((_a3 = app.selectedShapes) == null ? void 0 : _a3.size) > 1 && !app.readOnly && ((_b = app.selectedShapesArray) == null ? void 0 : _b.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-button-row-wrap\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(\"div\", {\n className: \"tl-menu-button-row pb-0\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-left\"),\n onClick: () => runAndTransition(() => app.align(\"left\" \/* Left *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-left\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-center-horizontally\"),\n onClick: () => runAndTransition(() => app.align(\"centerHorizontal\" \/* CenterHorizontal *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-center\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-right\"),\n onClick: () => runAndTransition(() => app.align(\"right\" \/* Right *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-right\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/distribute-horizontally\"),\n onClick: () => runAndTransition(() => app.distribute(\"horizontal\" \/* Horizontal *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-distribute-vertical\"\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(\"div\", {\n className: \"tl-menu-button-row pt-0\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-top\"),\n onClick: () => runAndTransition(() => app.align(\"top\" \/* Top *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-top\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-center-vertically\"),\n onClick: () => runAndTransition(() => app.align(\"centerVertical\" \/* CenterVertical *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-middle\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-bottom\"),\n onClick: () => runAndTransition(() => app.align(\"bottom\" \/* Bottom *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-bottom\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/distribute-vertically\"),\n onClick: () => runAndTransition(() => app.distribute(\"vertical\" \/* Vertical *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-distribute-horizontal\"\n })\n })\n ]\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.packIntoRectangle),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"layout-grid\"\n }),\n t2(\"whiteboard\/pack-into-rectangle\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n })\n ]\n }),\n ((_c = app.selectedShapes) == null ? void 0 : _c.size) > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.zoomToSelection),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/zoom-to-fit\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-to-fit\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n })\n ]\n }),\n (app.selectedShapesArray.some((s4) => s4.type === \"group\" || app.getParentGroup(s4)) || app.selectedShapesArray.length > 1) && ((_d = app.selectedShapesArray) == null ? void 0 : _d.some((s4) => !s4.props.isLocked)) && !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n app.selectedShapesArray.some((s4) => s4.type === \"group\" || app.getParentGroup(s4)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.unGroup),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"ungroup\"\n }),\n t2(\"whiteboard\/ungroup\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/ungroup\"\n })\n ]\n }),\n app.selectedShapesArray.length > 1 && ((_e2 = app.selectedShapesArray) == null ? void 0 : _e2.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.doGroup),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"group\"\n }),\n t2(\"whiteboard\/group\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/group\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n })\n ]\n }),\n ((_f = app.selectedShapes) == null ? void 0 : _f.size) > 0 && ((_g = app.selectedShapesArray) == null ? void 0 : _g.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.cut),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"cut\"\n }),\n t2(\"whiteboard\/cut\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.copy),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"copy\"\n }),\n t2(\"whiteboard\/copy\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"editor\/copy\"\n })\n ]\n })\n ]\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.paste),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"clipboard\"\n }),\n t2(\"whiteboard\/paste\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n shortcut: `${MOD_KEY}+v`\n })\n ]\n }),\n ((_h = app.selectedShapes) == null ? void 0 : _h.size) === 1 && !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(() => app.paste(void 0, true)),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/paste-as-link\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n shortcut: `${MOD_KEY}+\\u21E7+v`\n })\n ]\n }),\n ((_i = app.selectedShapes) == null ? void 0 : _i.size) > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(\n () => {\n var _a4, _b2;\n return handlers.exportToImage(app.currentPageId, {\n x: app.selectionBounds.minX + app.viewport.camera.point[0] - EXPORT_PADDING,\n y: app.selectionBounds.minY + app.viewport.camera.point[1] - EXPORT_PADDING,\n width: ((_a4 = app.selectionBounds) == null ? void 0 : _a4.width) + EXPORT_PADDING * 2,\n height: ((_b2 = app.selectionBounds) == null ? void 0 : _b2.height) + EXPORT_PADDING * 2,\n zoom: app.viewport.camera.zoom\n });\n }\n ),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"file-export\"\n }),\n t2(\"whiteboard\/export\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(\"div\", {\n className: \"tl-menu-right-slot\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(\"span\", {\n className: \"keyboard-shortcut\"\n })\n })\n ]\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.selectAll),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/select-all\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"editor\/select-parent\"\n })\n ]\n }),\n ((_j = app.selectedShapes) == null ? void 0 : _j.size) > 1 && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.deselectAll),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/deselect-all\")\n ]\n }),\n !app.readOnly && ((_k = app.selectedShapes) == null ? void 0 : _k.size) > 0 && ((_l = app.selectedShapesArray) == null ? void 0 : _l.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(() => app.setLocked(true)),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"lock\"\n }),\n t2(\"whiteboard\/lock\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/lock\"\n })\n ]\n }),\n !app.readOnly && ((_m = app.selectedShapes) == null ? void 0 : _m.size) > 0 && ((_n = app.selectedShapesArray) == null ? void 0 : _n.some((s4) => s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(() => app.setLocked(false)),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"lock-open\"\n }),\n t2(\"whiteboard\/unlock\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/unlock\"\n })\n ]\n }),\n ((_o = app.selectedShapes) == null ? void 0 : _o.size) > 0 && !app.readOnly && ((_p = app.selectedShapesArray) == null ? void 0 : _p.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.deleteShapes),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"backspace\"\n }),\n t2(\"whiteboard\/delete\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"editor\/delete\"\n })\n ]\n }),\n ((_q = app.selectedShapes) == null ? void 0 : _q.size) > 1 && !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.flipHorizontal),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"flip-horizontal\"\n }),\n t2(\"whiteboard\/flip-horizontally\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.flipVertical),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"flip-vertical\"\n }),\n t2(\"whiteboard\/flip-vertically\")\n ]\n })\n ]\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.bringToFront),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/move-to-front\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/bring-to-front\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.sendToBack),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/move-to-back\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/send-to-back\"\n })\n ]\n })\n ]\n }),\n developerMode && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => {\n if (app.selectedShapesArray.length === 1) {\n console.log(toJS(app.selectedShapesArray[0].serialized));\n } else {\n console.log(app.selectedShapesArray.map((s4) => toJS(s4.serialized)));\n }\n },\n children: t2(\"whiteboard\/dev-print-shape-props\")\n })\n ]\n })\n ]\n })\n })\n ]\n });\n});\n\n\/\/ src\/components\/QuickLinks\/QuickLinks.tsx\nvar import_react95 = __toESM(require(\"react\"));\nvar import_jsx_runtime81 = require(\"react\/jsx-runtime\");\nvar QuickLinks = observer(({ shape }) => {\n const app = useApp();\n const { handlers } = import_react95.default.useContext(LogseqContext);\n const t2 = handlers.t;\n const links = import_react95.default.useMemo(() => {\n var _a3;\n const links2 = [...(_a3 = shape.props.refs) != null ? _a3 : []].map(\n (l5) => [l5, true]\n );\n if (shape.props.type === \"logseq-portal\" && shape.props.pageId) {\n links2.unshift([shape.props.pageId, false]);\n }\n return links2.filter(\n (link) => link[0].toLowerCase() !== app.currentPage.name && handlers.getBlockPageName(link[0]) !== app.currentPage.name\n );\n }, [shape.props.id, shape.props.type, shape.props.parentId, shape.props.refs]);\n if (links.length === 0)\n return null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime81.jsx)(\"div\", {\n className: \"tl-quick-links\",\n title: t2(\"whiteboard\/shape-quick-links\"),\n children: links.map(([ref, showReferenceContent]) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime81.jsx)(\"div\", {\n className: \"tl-quick-links-row\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime81.jsx)(BlockLink, {\n id: ref,\n showReferenceContent\n })\n }, ref);\n })\n });\n});\n\n\/\/ src\/hooks\/useDrop.ts\nvar React75 = __toESM(require(\"react\"));\n\n\/\/ src\/hooks\/usePaste.ts\nvar React74 = __toESM(require(\"react\"));\nvar isValidURL = (url) => {\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.host && [\"http:\", \"https:\"].includes(parsedUrl.protocol);\n } catch (e2) {\n return false;\n }\n};\nvar assetExtensions = {\n image: [\".png\", \".svg\", \".jpg\", \".jpeg\", \".gif\"],\n video: [\".mp4\", \".webm\", \".ogg\"],\n pdf: [\".pdf\"]\n};\nfunction getFileType(filename) {\n var _a3;\n const extensionMatch = filename.match(\/\\.[0-9a-z]+$\/i);\n if (!extensionMatch)\n return \"unknown\";\n const extension = extensionMatch[0].toLowerCase();\n const [type, _extensions] = (_a3 = Object.entries(assetExtensions).find(\n ([_type, extensions]) => extensions.includes(extension)\n )) != null ? _a3 : [\"unknown\", null];\n return type;\n}\nfunction tryCreateShapeHelper(...fns) {\n return (...args) => __async(this, null, function* () {\n for (const fn of fns) {\n const result = yield fn(...args);\n if (result && result.length > 0) {\n return result;\n }\n }\n return null;\n });\n}\nfunction getDataFromType(item, type) {\n return __async(this, null, function* () {\n if (!item.types.includes(type)) {\n return null;\n }\n if (item instanceof DataTransfer) {\n return item.getData(type);\n }\n const blob = yield item.getType(type);\n return yield blob.text();\n });\n}\nvar handleCreatingShapes = (_0, _1, _2) => __async(void 0, [_0, _1, _2], function* (app, { point, shiftKey, dataTransfer, fromDrop }, handlers) {\n var _a3, _b;\n let imageAssetsToCreate = [];\n let assetsToClone = [];\n const bindingsToCreate = [];\n function createAssetsFromURL(url, type) {\n return __async(this, null, function* () {\n const existingAsset = Object.values(app.assets).find((asset2) => asset2.src === url);\n if (existingAsset) {\n return existingAsset;\n }\n const asset = {\n id: uniqueId(),\n type,\n src: url,\n size: yield getSizeFromSrc(handlers.makeAssetUrl(url), type)\n };\n return asset;\n });\n }\n function createAssetsFromFiles(files) {\n return __async(this, null, function* () {\n const tasks = files.filter((file) => getFileType(file.name) !== \"unknown\").map((file) => __async(this, null, function* () {\n try {\n const dataurl = yield handlers.saveAsset(file);\n return yield createAssetsFromURL(dataurl, getFileType(file.name));\n } catch (err) {\n console.error(err);\n }\n return null;\n }));\n return (yield Promise.all(tasks)).filter(isNonNullable);\n });\n }\n function createHTMLShape(text) {\n return [\n __spreadProps(__spreadValues({}, HTMLShape.defaultProps), {\n html: text,\n point: [point[0], point[1]]\n })\n ];\n }\n function tryCreateShapesFromDataTransfer(dataTransfer2) {\n return __async(this, null, function* () {\n return tryCreateShapeHelper(\n tryCreateShapeFromFilePath,\n tryCreateShapeFromFiles,\n tryCreateShapeFromPageName,\n tryCreateShapeFromBlockUUID,\n tryCreateShapeFromTextPlain,\n tryCreateShapeFromTextHTML,\n tryCreateLogseqPortalShapesFromString\n )(dataTransfer2);\n });\n }\n function tryCreateShapesFromClipboard() {\n return __async(this, null, function* () {\n const items = yield navigator.clipboard.read();\n const createShapesFn = tryCreateShapeHelper(\n tryCreateShapeFromTextPlain,\n tryCreateShapeFromTextHTML,\n tryCreateLogseqPortalShapesFromString\n );\n const allShapes = (yield Promise.all(items.map((item) => createShapesFn(item)))).flat().filter(isNonNullable);\n return allShapes;\n });\n }\n function tryCreateShapeFromFilePath(item) {\n return __async(this, null, function* () {\n const file = item.getData(\"file\");\n if (!file)\n return null;\n const asset = yield createAssetsFromURL(file, \"pdf\");\n app.addAssets([asset]);\n const newShape = __spreadProps(__spreadValues({}, PdfShape.defaultProps), {\n id: uniqueId(),\n assetId: asset.id,\n url: file,\n opacity: 1\n });\n if (asset.size) {\n Object.assign(newShape, {\n point: [point[0] - asset.size[0] \/ 4 + 16, point[1] - asset.size[1] \/ 4 + 16],\n size: src_default.div(asset.size, 2)\n });\n }\n return [newShape];\n });\n }\n function tryCreateShapeFromFiles(item) {\n return __async(this, null, function* () {\n const files = Array.from(item.files);\n if (files.length > 0) {\n const assets = yield createAssetsFromFiles(files);\n imageAssetsToCreate = assets;\n return assets.map((asset, i4) => {\n let defaultProps = null;\n switch (asset.type) {\n case \"video\":\n defaultProps = VideoShape.defaultProps;\n break;\n case \"image\":\n defaultProps = ImageShape.defaultProps;\n break;\n case \"pdf\":\n defaultProps = PdfShape.defaultProps;\n break;\n default:\n return null;\n }\n const newShape = __spreadProps(__spreadValues({}, defaultProps), {\n id: uniqueId(),\n assetId: asset.id,\n opacity: 1\n });\n if (asset.size) {\n Object.assign(newShape, {\n point: [point[0] - asset.size[0] \/ 4 + i4 * 16, point[1] - asset.size[1] \/ 4 + i4 * 16],\n size: src_default.div(asset.size, 2)\n });\n }\n return newShape;\n });\n }\n return null;\n });\n }\n function tryCreateShapeFromTextHTML(item) {\n return __async(this, null, function* () {\n if (item.types.includes(\"text\/plain\") && (shiftKey || fromDrop)) {\n return null;\n }\n const rawText = yield getDataFromType(item, \"text\/html\");\n if (rawText) {\n return tryCreateShapeHelper(tryCreateClonedShapesFromJSON, createHTMLShape)(rawText);\n }\n return null;\n });\n }\n function tryCreateShapeFromBlockUUID(dataTransfer2) {\n return __async(this, null, function* () {\n var _a4, _b2, _c, _d, _e2, _f;\n const rawText = dataTransfer2.getData(\"block-uuid\");\n if (rawText) {\n const text = rawText.trim();\n const allSelectedBlocks = (_c = (_b2 = (_a4 = window.logseq) == null ? void 0 : _a4.api) == null ? void 0 : _b2.get_selected_blocks) == null ? void 0 : _c.call(_b2);\n const blockUUIDs = allSelectedBlocks && (allSelectedBlocks == null ? void 0 : allSelectedBlocks.length) > 1 ? allSelectedBlocks.map((b5) => b5.uuid) : [text];\n (_f = (_e2 = (_d = window.logseq) == null ? void 0 : _d.api) == null ? void 0 : _e2.set_blocks_id) == null ? void 0 : _f.call(_e2, blockUUIDs);\n const tasks = blockUUIDs.map((uuid) => tryCreateLogseqPortalShapesFromUUID(`((${uuid}))`));\n const newShapes2 = (yield Promise.all(tasks)).flat().filter(isNonNullable);\n return newShapes2.map((s4, idx) => {\n return __spreadProps(__spreadValues({}, s4), {\n point: [point[0] + (LogseqPortalShape.defaultProps.size[0] + 16) * idx, point[1]]\n });\n });\n }\n return null;\n });\n }\n function tryCreateShapeFromPageName(dataTransfer2) {\n return __async(this, null, function* () {\n const rawText = dataTransfer2.getData(\"page-name\");\n if (rawText) {\n const text = rawText.trim();\n return tryCreateLogseqPortalShapesFromUUID(`[[${text}]]`);\n }\n return null;\n });\n }\n function tryCreateShapeFromTextPlain(item) {\n return __async(this, null, function* () {\n const rawText = yield getDataFromType(item, \"text\/plain\");\n if (rawText) {\n const text = rawText.trim();\n return tryCreateShapeHelper(tryCreateShapeFromURL, tryCreateShapeFromIframeString)(text);\n }\n return null;\n });\n }\n function tryCreateClonedShapesFromJSON(rawText) {\n const result = app.api.getClonedShapesFromTldrString(decodeURIComponent(rawText), point);\n if (result) {\n const { shapes: shapes2, assets, bindings } = result;\n assetsToClone.push(...assets);\n bindingsToCreate.push(...bindings);\n return shapes2;\n }\n return null;\n }\n function tryCreateShapeFromURL(rawText) {\n return __async(this, null, function* () {\n if (isValidURL(rawText) && !shiftKey) {\n if (YOUTUBE_REGEX.test(rawText)) {\n return [\n __spreadProps(__spreadValues({}, YouTubeShape.defaultProps), {\n url: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n if (TWITTER_REGEX.test(rawText)) {\n return [\n __spreadProps(__spreadValues({}, TweetShape.defaultProps), {\n url: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n return [\n __spreadProps(__spreadValues({}, IFrameShape.defaultProps), {\n url: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n return null;\n });\n }\n function tryCreateShapeFromIframeString(rawText) {\n if (rawText.startsWith(\"<iframe\")) {\n return [\n __spreadProps(__spreadValues({}, HTMLShape.defaultProps), {\n html: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n return null;\n }\n function tryCreateLogseqPortalShapesFromUUID(rawText) {\n return __async(this, null, function* () {\n if (\/^\\(\\(.*\\)\\)$\/.test(rawText) && rawText.length === nil_default.length + 4) {\n const blockRef = rawText.slice(2, -2);\n if (validUUID(blockRef)) {\n return [\n __spreadProps(__spreadValues({}, LogseqPortalShape.defaultProps), {\n point: [point[0], point[1]],\n size: [400, 0],\n pageId: blockRef,\n fill: app.settings.color,\n stroke: app.settings.color,\n scaleLevel: app.settings.scaleLevel,\n blockType: \"B\"\n })\n ];\n }\n } else if (\/^\\[\\[.*\\]\\]$\/.test(rawText)) {\n const pageName = rawText.slice(2, -2);\n return [\n __spreadProps(__spreadValues({}, LogseqPortalShape.defaultProps), {\n point: [point[0], point[1]],\n size: [400, 0],\n pageId: pageName,\n fill: app.settings.color,\n stroke: app.settings.color,\n scaleLevel: app.settings.scaleLevel,\n blockType: \"P\"\n })\n ];\n }\n return null;\n });\n }\n function tryCreateLogseqPortalShapesFromString(item) {\n return __async(this, null, function* () {\n const rawText = yield getDataFromType(item, \"text\/plain\");\n if (rawText) {\n const text = rawText.trim();\n const uuid = handlers == null ? void 0 : handlers.addNewBlock(text);\n if (uuid) {\n return [\n __spreadProps(__spreadValues({}, LogseqPortalShape.defaultProps), {\n size: [400, 0],\n point: [point[0], point[1]],\n pageId: uuid,\n fill: app.settings.color,\n stroke: app.settings.color,\n scaleLevel: app.settings.scaleLevel,\n blockType: \"B\",\n compact: true\n })\n ];\n }\n }\n return null;\n });\n }\n app.cursors.setCursor(\"progress\" \/* Progress *\/);\n let newShapes = [];\n try {\n if (dataTransfer) {\n newShapes.push(...(_a3 = yield tryCreateShapesFromDataTransfer(dataTransfer)) != null ? _a3 : []);\n } else {\n newShapes.push(...(_b = yield tryCreateShapesFromClipboard()) != null ? _b : []);\n }\n } catch (error) {\n console.error(error);\n }\n const allShapesToAdd = newShapes.map((shape) => {\n return __spreadProps(__spreadValues({}, shape), {\n parentId: app.currentPageId,\n isLocked: false,\n id: validUUID(shape.id) ? shape.id : uniqueId()\n });\n });\n const filesOnly = dataTransfer == null ? void 0 : dataTransfer.types.every((t2) => t2 === \"Files\");\n app.wrapUpdate(() => {\n const allAssets = [...imageAssetsToCreate, ...assetsToClone];\n if (allAssets.length > 0) {\n app.createAssets(allAssets);\n }\n if (allShapesToAdd.length > 0) {\n app.createShapes(allShapesToAdd);\n }\n app.currentPage.updateBindings(Object.fromEntries(bindingsToCreate.map((b5) => [b5.id, b5])));\n if (app.selectedShapesArray.length === 1 && allShapesToAdd.length === 1 && fromDrop) {\n const source = app.selectedShapesArray[0];\n const target = app.getShapeById(allShapesToAdd[0].id);\n app.createNewLineBinding(source, target);\n }\n app.setSelectedShapes(allShapesToAdd.map((s4) => s4.id));\n app.selectedTool.transition(\"idle\");\n app.cursors.setCursor(\"default\" \/* Default *\/);\n if (fromDrop || filesOnly) {\n app.packIntoRectangle();\n }\n });\n});\nfunction usePaste() {\n const { handlers } = React74.useContext(LogseqContext);\n return React74.useCallback((app, info) => __async(this, null, function* () {\n if (info.shiftKey && app.selectedShapesArray.length === 1) {\n const items = yield navigator.clipboard.read();\n let newRef;\n if (items.length > 0) {\n const blob = yield items[0].getType(\"text\/plain\");\n const rawText = (yield blob.text()).trim();\n if (rawText) {\n if (\/^\\(\\(.*\\)\\)$\/.test(rawText) && rawText.length === nil_default.length + 4) {\n const blockRef = rawText.slice(2, -2);\n if (validUUID(blockRef)) {\n newRef = blockRef;\n }\n } else if (\/^\\[\\[.*\\]\\]$\/.test(rawText)) {\n newRef = rawText.slice(2, -2);\n }\n }\n }\n if (newRef) {\n app.selectedShapesArray[0].update({\n refs: [newRef]\n });\n app.persist();\n return;\n }\n }\n handleCreatingShapes(app, info, handlers);\n }), []);\n}\n\n\/\/ src\/hooks\/useDrop.ts\nfunction useDrop() {\n const handlePaste = usePaste();\n return React75.useCallback(\n (_0, _1) => __async(this, [_0, _1], function* (app, { dataTransfer, point }) {\n handlePaste(app, { point, shiftKey: false, dataTransfer, fromDrop: true });\n }),\n []\n );\n}\n\n\/\/ src\/hooks\/useCopy.ts\nvar React76 = __toESM(require(\"react\"));\nfunction useCopy() {\n const { handlers } = React76.useContext(LogseqContext);\n return React76.useCallback((app, { text, html }) => {\n handlers.copyToClipboard(text, html);\n }, []);\n}\n\n\/\/ src\/hooks\/useQuickAdd.ts\nvar import_react96 = __toESM(require(\"react\"));\nfunction useQuickAdd() {\n return import_react96.default.useCallback((app) => __async(this, null, function* () {\n setTimeout(() => {\n app.transition(\"logseq-portal\").selectedTool.transition(\"creating\");\n }, 100);\n }), []);\n}\n\n\/\/ src\/app.tsx\nvar import_jsx_runtime82 = require(\"react\/jsx-runtime\");\nvar tools = [\n BoxTool,\n EllipseTool,\n PolygonTool,\n NuEraseTool,\n HighlighterTool,\n LineTool,\n PencilTool,\n TextTool,\n YouTubeTool,\n IFrameTool,\n HTMLTool,\n LogseqPortalTool\n];\nvar BacklinksCount = (props) => {\n const { renderers } = React78.useContext(LogseqContext);\n const options = { \"portal?\": false };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(renderers.BacklinksCount, __spreadProps(__spreadValues({}, props), {\n options\n }));\n};\nvar AppImpl = () => {\n const ref = React78.useRef(null);\n const app = useApp();\n const components = React78.useMemo(\n () => ({\n ContextBar,\n BacklinksCount,\n QuickLinks\n }),\n []\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(ContextMenu, {\n collisionRef: ref,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(\"div\", {\n ref,\n className: \"logseq-tldraw logseq-tldraw-wrapper\",\n \"data-tlapp\": app.uuid,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppCanvas, {\n components,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppUI, {})\n })\n })\n });\n};\nvar AppInner = (_a3) => {\n var _b = _a3, {\n onPersist,\n readOnly,\n model\n } = _b, rest = __objRest(_b, [\n \"onPersist\",\n \"readOnly\",\n \"model\"\n ]);\n const onDrop = useDrop();\n const onPaste = usePaste();\n const onCopy = useCopy();\n const onQuickAdd = readOnly ? null : useQuickAdd();\n const onPersistOnDiff = React78.useCallback(\n (app, info) => {\n onPersist == null ? void 0 : onPersist(app, info);\n },\n [model]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppProvider, __spreadProps(__spreadValues({\n Shapes: shapes,\n Tools: tools,\n onDrop,\n onPaste,\n onCopy,\n readOnly,\n onCanvasDBClick: onQuickAdd,\n onPersist: onPersistOnDiff,\n model\n }, rest), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppImpl, {})\n }));\n};\nvar App3 = function App4(_a3) {\n var _b = _a3, { renderers, handlers } = _b, rest = __objRest(_b, [\"renderers\", \"handlers\"]);\n const memoRenders = React78.useMemo(() => {\n return Object.fromEntries(\n Object.entries(renderers).map(([key, comp]) => {\n return [key, React78.memo(comp)];\n })\n );\n }, []);\n const contextValue = {\n renderers: memoRenders,\n handlers\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(LogseqContext.Provider, {\n value: contextValue,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppInner, __spreadValues({}, rest))\n });\n};\n\/*!\n * is-plain-object <https:\/\/github.com\/jonschlinkert\/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n *\/\n\n};"],"names":["shadow$provide","global","require","module","exports","rng","getRandomValues","crypto","bind","Error","rnds8","unsafeStringify","arr","offset","toLowerCase","byteToHex","potpack","boxes","area","maxWidth","box2","w","h","Math","max","sort","a5","b5","spaces","x","y","startWidth","ceil","sqrt","Infinity","height","width","i4","length","space","last","pop","push","fill","createIntersection","message","points","didIntersect","getRectangleSides","point","size","rotation","center","tl","Vec","rotWith","tr","add","br","bl","intersectRayLineSegment","origin","direction","a1","a22","x4","y4","dx","dy","x1","y1","x22","y22","d4","r4","s4","intersectRayRectangle","intersectRectangleRay","intersectRayBounds","bounds","minX","minY","intersectLineSegmentLineSegment","b1","b22","AB","sub","BV","AV","ua_t","ub_t","u_b","ua","ub","mul","intersectLineSegmentCircle","c4","deter","e2","u1","u22","results","lrp","intersectLineSegmentEllipse","rx","ry","isEqual","diff","A4","B3","tValues","discriminant","root","filter","t2","map","p4","intersectLineSegmentPolyline","pts","int","reduce","sideIntersections","acc","intersection","intersectRectangleLineSegment","intersectRectangleCircle","__spreadProps","__spreadValues","intersectRectangleEllipse","intersectRectanglePolyline","intersectRectanglePolygon","intersectEllipseRectangle","intersectBoundsLineSegment","die","error","_len","arguments","args","Array","_key","String","join","getGlobal","globalThis","window","self","mockGlobal","assertProxies","hasProxy","once","func","invoked","apply","isFunction","fn","isStringish","value","isObject","isPlainObject","proto","Object","getPrototypeOf","protoConstructor","hasOwnProperty","call","constructor","toString","plainObjectString","isGenerator","obj","name","displayName","addHiddenProp","object2","propName","defineProperty","enumerable","writable","configurable","addHiddenFinalProp","createInstanceofPredicate","theClass","prototype","isES6Map","thing","Map","isES6Set","Set","getPlainObjectKeys","keys","hasGetOwnPropertySymbols","symbols","getOwnPropertySymbols","concat","objectPrototype","propertyIsEnumerable","toPrimitive","hasProp","target","prop","_defineProperties","props","descriptor","key","_createClass","Constructor","protoProps","staticProps","_extends","assign","source","_inheritsLoose","subClass","superClass","create","_setPrototypeOf","o4","setPrototypeOf","_setPrototypeOf3","o5","p5","__proto__","_assertThisInitialized","self2","ReferenceError","_unsupportedIterableToArray","minLen","_arrayLikeToArray","n4","slice","from","test","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it2","Symbol","iterator","next","isArray","done","TypeError","createDecoratorAnnotation","annotation","decorator","property","storeAnnotation","storedAnnotationsSymbol","annotationType_","OVERRIDE","collectStoredAnnotations","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","noop","atom","Atom","interceptHook","ON_BECOME_OBSERVED","arg3","onBecomeUnobserved","deepEnhancer","v4","_2","_isObservable","observable","array","object","set","isAction","isFlow","flow","autoAction","referenceEnhancer","newValue","createActionAnnotation","options","options_","make_","make_$1","extend_","extend_$1","adm","_this$options_","bound","target_","actionDescriptor","createActionDescriptor","proxyTrap","defineProperty_","safeDescriptors","_annotation$options_","_annotation$options_$","_annotation$options_2","_annotation$options_$2","_annotation$options_3","_annotation$options_4","_adm$proxy_2","globalState","_adm$proxy_","proxy_","createAction","isPlainObject_","createFlowAnnotation","make_$2","extend_$2","flowDescriptor","createFlowDescriptor","_this$options_2","isMobXFlow","createComputedAnnotation","make_$3","extend_$3","defineComputedProperty_","get","createObservableAnnotation","make_$4","extend_$4","_this$options_$enhanc","defineObservableProperty_","enhancer","createAutoAnnotation","AUTO","make_$5","extend_$5","_this$options_3","_this$options_4","computed","set4","flowAnnotation2","autoBind","actionAnnotation2","observableAnnotation2","deep","ref","_this$options_5","_this$options_6","getEnhancerFromOptions","createObservable","arg2","observableAnnotation","box","actionName","autoAction2","res","prevDerivation_","trackingDerivation","runAsAction","startBatch","prevAllowStateChanges_","allowStateChanges","untrackedStart","allowStateChangesStart","prevAllowStateReads_","allowStateReadsStart","nextActionId","currentActionId","actionId_","scope","err","error_","parentActionId_","suppressReactionErrors","allowStateReads","endBatch","isMobxAction","isFunctionNameConfigurable","tmpNameDescriptor","allowStateChanges2","prev","shouldCompute","derivation","dependenciesState_","IDerivationState_","UP_TO_DATE_","NOT_TRACKING_","STALE_","POSSIBLY_STALE_","prevAllowStateReads","prevUntracked","obs","observing_","l5","isComputedValue","disableErrorBoundaries","changeDependenciesStateTo0","trackDerivedFunction","f4","context","newObserving_","unboundDepsCount_","runId_","runId","prevTracking","inBatch","result","CaughtException","prevObserving","observing","lowestNewObservingDerivationState","i0","dep","diffValue_","_dep","removeObserver","_dep2","observable2","observers_","node","lowestObserverState_","onBecomeStale_","clearObserving","untracked","action2","isolateGlobalState","pendingReactions","isRunningReactions","isolateCalled","canMergeGlobalState","global2","__mobxInstanceCount","__mobxGlobals","MobXGlobals","queueForUnobservation","isPendingUnobservation_","pendingUnobservations","reactionScheduler","runReactionsHelper","list","isBeingObserved_","onBUO","ComputedValue","suspend_","reportObserved","lastAccessedBy_","trackingContext","onBO","propagateChanged","forEach","propagateChangeConfirmed","propagateMaybeChanged","allReactions","iterations","MAX_REACTION_ITERATIONS","console","splice","remainingReactions","runReaction_","setReactionScheduler","baseScheduler","spy","listener","warn","createActionFactory","arg1","DEFAULT_ACTION_NAME","autoActionAnnotation","actionAnnotation","AUTOACTION","ACTION","autorun","view","opts","reactionRunner","reaction2","_opts$name","_opts","EMPTY_OBJECT2","scheduler","delay","createSchedulerFromOptions","isScheduled","Reaction","isDisposed_","track","onError","requiresObservable","schedule_","getDisposer_","setTimeout","run","reaction","expression","effect","changed","nextValue","firstTime","equals","oldValue","fireImmediately","effectAction","_opts$name2","action","wrapErrorHandler","runSync","compareStructural","comparer","structural","errorHandler","baseFn","ON_BECOME_UNOBSERVED","hook","getAtom","cb","listenersKey","hookListeners","configure","useProxies","enforceActions","ALWAYS","NEVER","Proxy","verifyProxies","ea","OBSERVED","observableRequiresReaction","extendObservable","properties","annotations","descriptors","getOwnPropertyDescriptors","asObservableObject","$mobx","ownKeys","nodeToDependencyTree","name_","dependencies","FlowCancellationError","isObservableObject","values_","has","isAtom","isReaction","apiOwnKeys","ownKeys_","cache","map3","toJSHelper","__alreadySeen","Date","isObservableValue","isObservableArray","idx","isObservableSet","_res","isObservableMap","_res2","_res3","toJS","trace","enterBreakPoint","isTracing_","TraceMode","NONE","log","BREAK","LOG","transaction","thisArg","hasInterceptors","interceptable","interceptors_","registerInterceptor","handler","interceptors","indexOf","interceptChange","change","prevU","type","hasListeners","listenable","changeListeners_","registerListener","listeners","notifyListeners","makeObservable","_annotations","createObservableArray","initialValues","owned","ObservableArrayAdministration","proxy","arrayTraps","spliceWithArray_","addArrayExtension","funcName","funcFactory","arrayExtensions","simpleFunc","atom_","dehancedValues","dehanceValues_","mapLikeFunc","callback","_this2","element","index3","reduceLikeFunc","_this3","accumulator","currentValue","isObservableArrayAdministration","convertToMap","dataStructure","_options$name","ObservableObjectAdministration","_options$defaultDecor","defaultDecorator","getCachedObservablePropDescriptor","descriptorCache","get3","getObservablePropValue_","setObservablePropValue_","isObservableObjectAdministration","createArrayEntryDescriptor","get_","set_","reserveArrayBuffer","OBSERVABLE_ARRAY_BUFFER_SIZE","LegacyObservableArray","createLegacyArray","keysAtom_","data_","hasMap_","getDebugName","_observable","getAdministration","named","deepEqual","depth","eq","aStack","bStack","className","valueOf","unwrap","areArrays","aCtor","bCtor","entries","makeIterable","getSelf","getRelatedBindings","bindings","ids","changedShapeIds","bindingsArr","values","bindingsToUpdate","binding","toId","fromId","prevSize","delta","otherBinding","findBindingPoint","shape","handleId","bindingId","bindAnywhere","bindingPoint","getBindingPoint","id","src_default","toFixed","distance","createNewLineBinding","cs","getCenter","ct2","lineId","v1_default","lineShape","TLLineShape","defaultProps","parentId","startBinding","uni","endBinding","handles","start","end","createCacheLegacy","LegacyCache","createCacheModern","WeakMap","getCleanClone","toStringFunction","_a3","getRegExpFlagsLegacy","regExp","flags","ignoreCase","multiline","unicode","sticky","getRegExpFlagsModern","getTagLegacy","toStringObject","substring","getTagModern","toStringTag","getStrictPropertiesModern","getOwnPropertyNames","copyOwnPropertiesStrict","clone","state","getStrictProperties","length_1","getOwnPropertyDescriptor","copier","defineProperty3","copyMapLoose","copyObjectLooseLegacy","copyObjectLooseModern","length_3","symbol","copyPrimitiveWrapper","primitiveObject","copySelf","_state","copySetLoose","createCopier","array2","tagSpecificCopier","tagSpecificCopiers","getTag","then","normalizedOptions","assign2","DEFAULT_LOOSE_OPTIONS","Arguments","ArrayBuffer","arrayBuffer","Blob","blob","Boolean","DataView","dataView","date","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Number","Promise","RegExp","WeakSet","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","Uint64Array","copy","createCache","deepMerge","import_deepmerge","default","arrayMerge","destinationArray","sourceArray","modulate","rangeA","rangeB","clamp3","fromLow","fromHigh","v0","v12","min","getSizeFromSrc","dataURL","resolve","reject","video","document","createElement","addEventListener","videoWidth","videoHeight","src","img","Image","onload","img.onload","onerror","img.onerror","isBuiltInColor","color","Color","includes","getComputedColor","getMeasurementDiv","getElementById","remove","pre","style","whiteSpace","borderLeft","borderRight","borderBottom","padding","margin","opacity","position","top","left","zIndex","userSelect","pointerEvents","font","tabIndex","body","appendChild","getTextLabelSize","text","fontOrStyles","_b","_c","font5","fontStyle","fontVariant","fontWeight","fontSize","lineHeight","fontFamily","cache2","melm","parentNode","innerHTML","rect","getBoundingClientRect","validUUID","input","regex_default","parseInt","debounce","ms","immediateFn","timeoutId","clearTimeout","isDarwin","navigator","platform","isDev","logseq","api","get_state_from_store","isNonNullable","getRendererContext","id3","contextMap","React","createContext","useRendererContext","useContext","useBoundsEvents","handle","callbacks","rDoubleClickTimer","React2","useRef","useMemo","events","onPointerUp","order","elm","removeEventListener","releasePointerCapture","pointerId","now","elapsed","current","DOUBLE_CLICK_DURATION","onDoubleClick","onPointerDown","loopToHtmlElement","currentTarget","setPointerCapture","onPointerMove","onPointerEnter","onPointerLeave","onKeyDown","onKeyUp","namespaceURI","endsWith","parentElement","useResizeObserver","viewport","onBoundsChange","rIsMounted","React3","updateBounds","useCallback","maxX","maxY","useEffect","scrollingAnchor","getNearestScrollableContainer","debouncedupdateBounds","useLayoutEffect","resizeObserver","ResizeObserver","contentRect","observe","disconnect","querySelector","focus","makeCssTheme","prefix","theme","useTheme","selector","React4","cssTheme","setAttribute","head","contains","removeChild","useStyle","uid","rules","styles","delete","useStylesheet","tltheme","defaultTheme","tlcss","getAppContext","contextMap2","React5","useApp","useCanvasEvents","app","React6","penMode","settings","pointerType","isPrimary","onDrop","__async","preventDefault","drop","dataTransfer","clientX","clientY","onDragOver","onTouchEnd","tool","selectedTool","rubberband","dimension","constant","abs","pow","rubberbandIfOutOfBounds","computeRubberband","Vx","Vy","Rx","Ry","X0","X1","Y0","Y1","_defineProperty","ownKeys3","enumerableOnly","sym","_objectSpread2","defineProperties","capitalize","string","toUpperCase","hasCapture","capture","actionKey","actionsWithoutCaptureSupported","toHandlerProp","device","deviceProps","EVENT_TYPE_MAP","parseProp","eventKey","passive","replace","captureKey","pointerCaptureEvents","toDomEventType","getPointerType","event","getCurrentTargetTouchList","touches","_event$currentTarget","_event$currentTarget$","getValueEvent","changedTouches","targetTouches","distanceAngle","P1","P22","angle","atan2","PI","hypot","touchIds","touch","identifier","touchDistanceAngle","valueEvent","pointerValues","wheelValues","deltaX","deltaY","deltaMode","LINE_HEIGHT","PAGE_HEIGHT","noop3","chain","fns","selectAxis","threshold","absDx","absDy","clampStateInternalMovementToBounds","ox","oy","overflow","_delta","dirx","diry","_direction","_movement","_movementBound","registerAction","EngineMap","engine","ConfigResolverMap","resolver","resolveWith","config","resolvers","parse2","newConfig","gestureKey","_config","eventOptions","window2","enabled","transform","_excluded","sourceKeys","excluded","sourceSymbolKeys","shared","sharedConfigResolver","rest","setupGesture","ctrl","gestures","gestureEventStores","EventStore","gestureTimeoutStores","TimeoutStore","registerGesture","actions","handlers","handlerKey","internalHandlers","startKey","endKey","memo6","first","useRecognizers","nativeHandlers","import_react2","Controller","applyHandlers","applyConfig","clean","createUseGesture","useGesture2","_handlers","native","RE_NOT_NATIVE","lastMatch","mergedConfig","useGesture","dragAction","pinchAction","scrollAction","wheelAction","moveAction","hoverAction","useGestureEvents","inputs","rOriginPoint","React8","rDelta","rWheelTs","onWheel","gesture","deltaZ","ctrlKey","metaKey","signY","sign","MAX_ZOOM_STEP","absDeltaY","z3","timeStamp","altKey","buttons","currentScreenPoint","zoom","camera","onZoom","shiftKey","panCamera","onPinchStart","WheelEvent","containerOffset","onPinchEnd","onPinch","trueDelta","pinch","scaleBounds","TLViewport","maxZoom","minZoom","useCounterScaledPosition","React9","floor","useSetup","onPersist","onMount","onCreateAssets","onCreateShapes","onDeleteAssets","onDeleteShapes","onPaste","onCopy","onCanvasDBClick","React10","unsubs","uuid","unsub","subscribe","useAppSetup","React11","useState","TLReactApp","model","Shapes","Tools","readOnly","dispose","usePropControl","React12","loadDocumentModel","usePreventNavigation","rCanvas","React13","preventGestureNavigation","preventNavigation","touchXPosition","pageX","touchXRadius","radiusX","useHandleEvents","React14","getCursorCss","svg","replaceAll","useCursor","cursor","React15","CURSORS3","GeomUtils","radiansToDegrees","useZoom","React16","debouncedZoom","setProperty","useDebouncedValue","debouncedValue","setDebouncedValue","import_react4","canceled","useRestoreCamera","React18","sessionStorage","setItem","currentPageId","JSON","stringify","parse","getItem","update","selectedIds","zoomToSelection","zoomToFit","defaultNoopBatch","printDebugValue","createTrackingData","trackingData","mounted","changedBeforeMount","cleanAt","CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS","createReactionCleanupTrackingUsingFinalizationRegister","FinalizationRegistry2","cleanupTokenToReactionTrackingMap","globalCleanupTokensCounter","registry","cleanupFunction","token","trackedReaction","addReactionToTrack","reactionTrackingRef","objectRetainedByReact","register","finalizationRegistryCleanupToken","recordReactionAsCommitted","reactionRef","unregister","forceCleanupTimerToRunNowForTests","resetCleanupScheduleForTests","createTimerBasedReactionCleanupTracking","ensureCleanupTimerRunning","reactionCleanupHandle","cleanUncommittedReactions","CLEANUP_TIMER_LOOP_MILLIS","uncommittedReactionRefs","tracking","recordReactionAsCommitted2","forceCleanupTimerToRunNowForTests2","resetCleanupScheduleForTests2","uncommittedReactionRefs_1","__values","uncommittedReactionRefs_1_1","e_1_1","e_1","return","clear","objectToBeRetainedByReactFactory","ObjectToBeRetainedByReact","useObserver","baseComponentName","__read","import_react6","setState","newReaction","trackingData_1","useDebugValue","rendering","exception","observer","baseComponent","ReactMemoSymbol","useForwardRef","forwardRef","render","ReactForwardRefSymbol","observerComponent","contextTypes","import_react7","memo","copyStaticProperties","base","hoistBlackList","ObserverComponent","component","children","useKeyboardEvents","shiftKeyDownRef","React22","activeElement","editingShape","tagName","paste","selectedShapes","useShapeEvents","React26","Renderer2","components","__objRest","import_jsx_runtime29","jsx","RendererContext","meta","Canvas","_extends2","$e42e1063c40fb3ef$export$b9ecd428b558ff10","originalEventHandler","ourEventHandler","checkForDefaultPrevented","handleEvent","defaultPrevented","$6ed0406888f73fc4$export$43e446d32b3d21af","refs","$6ed0406888f73fc4$export$c7b2cbe3552a0d05","import_react12","$c512c27ab02ef895$export$50c7b4e9d9f19c1","scopeName","createContextScopeDeps","defaultContexts","createScope","scopeContexts","defaultContext","import_react13","useScope","contexts","$c512c27ab02ef895$export$fd42f52fd3ae1109","rootComponentName","Provider","Context","BaseContext","useContext16","consumerName","$c512c27ab02ef895$var$composeContextScopes","scopes","baseScope","createScope1","scopeHooks","useComposedScopes","overrideScopes","nextScopes1","nextScopes","currentScope","scopeProps","$5e63c961fc1ce211$var$isSlottable","child","import_react14","isValidElement","$5e63c961fc1ce211$export$d9f1ccf0bdb05d45","$5e63c961fc1ce211$var$mergeProps","slotProps","childProps","overrideProps","slotPropValue","childPropValue","isHandler","$8927f6f2acc4f386$export$6d1a0317bde7de7f","import_react_dom2","flushSync","dispatchEvent","$b1b2314f5f9a1d84$export$25bec8c6f54ee79a","callbackRef","import_react16","_callbackRef$current","$addc16e1bbe58fd0$export$3a72a57244d6e765","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","import_react17","handleKeyDown","$5cb92bef7577960e$var$usePointerDownOutside","onPointerDownOutside","handlePointerDownOutside","isPointerInsideReactTreeRef","import_react18","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent","$5cb92bef7577960e$var$handleAndDispatchCustomEvent","$5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE","eventDetail","discrete","originalEvent","timerId","onPointerDownCapture","$5cb92bef7577960e$var$useFocusOutside","onFocusOutside","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","$5cb92bef7577960e$var$FOCUS_OUTSIDE","onFocusCapture","onBlurCapture","$5cb92bef7577960e$var$dispatchUpdate","CustomEvent","$5cb92bef7577960e$var$CONTEXT_UPDATE","detail","bubbles","cancelable","$1746a345f3d73bb7$export$f680877a34711e37","deterministicId","setId","$2AODx$react","$1746a345f3d73bb7$var$useReactId","$9f79659886946c16$export$e5c5a5f917a5871c","reactId","$1746a345f3d73bb7$var$count","t","split","n","r","i","u4","m4","g4","a","right","bottom","l","s","h4","getClippingRect","isElement","contextElement","getDocumentElement","floating","boundary","rootBoundary","strategy","w4","convertOffsetParentRelativeRectToViewportRelativeRect","reference","offsetParent","getOffsetParent","d","t3","g","p","main","cross","R","A","some","o2","location","alert","setInterval","defaultView","i2","getComputedStyle","r2","nodeName","l2","userAgentData","brands","brand","version","userAgent","c2","HTMLElement","f2","Element","s2","ShadowRoot","u2","h2","perspective","contain","willChange","a2","w2","offsetWidth","m2","offsetHeight","visualViewport","offsetLeft","offsetTop","v2","documentElement","Node","y2","scrollLeft","scrollTop","pageXOffset","pageYOffset","x2","L2","assignedSlot","host","R2","T2","e3","W","E2","H","C","n5","r5","clientWidth","clientHeight","clientTop","clientLeft","p2","scrollWidth","scrollHeight","S","getRootNode","t4","n6","N","requestAnimationFrame","cancelAnimationFrame","deepEqual2","$$typeof","useLatestRef","React34","index2","useFloating","_temp","middleware","placement","whileElementsMounted","whileElementsMountedRef","cleanupRef","data","setData","middlewareData","latestMiddleware","setLatestMiddleware","_ref","_ref2","z","data2","isMountedRef","ReactDOM","runElementMountCallback","cleanupFn","setReference","setFloating","$db6c3485150b8e66$export$1ab7ae714698c4b8","setSize","import_react22","entry","borderSizeEntry","borderSize","unobserve","$cf1ac5d9fe0e8206$var$isDefined","$cf1ac5d9fe0e8206$var$isNotNull","$cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement","side","align","$fe963b355347cc68$export$3e6543de14f8614f","initialState","machine","import_react25","useReducer","nextState","$921a889cee6df7e8$var$usePresence","present","node1","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","$921a889cee6df7e8$var$getAnimationName","styles2","wasPresent","prevAnimationName","display","handleAnimationEnd","isCurrentAnimation","animationName","import_react_dom5","handleAnimationStart","isPresent","$71cd76cc60e0454e$export$6f32135080cb4c3","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","$71cd76cc60e0454e$var$useUncontrolledState","isControlled","value1","handleChange","setValue","import_react26","uncontrolledState","prevValueRef","$a093c7e1ec25a057$var$getExitSideFromRect","$a093c7e1ec25a057$var$getHull","newPoints","$a093c7e1ec25a057$var$getHullPresorted","upperHull","q2","lowerHull","i1","Tooltip","content","sideOffset","import_jsx_runtime33","$a093c7e1ec25a057$export$2881499e37b75b9a","delayDuration","jsxs","$a093c7e1ec25a057$export$be92b6f5f03c0fe9","$a093c7e1ec25a057$export$41fb9f06171c75f4","asChild","$a093c7e1ec25a057$export$602eac185826482c","$a093c7e1ec25a057$export$7c6e2c02157bb7d2","$a093c7e1ec25a057$export$21b07c8f274aebd5","Fragment","Button","tooltip","tooltipSide","import_jsx_runtime34","ToggleInput","toggle","pressed","onPressedChange","import_jsx_runtime36","$b3bbe2732c13b576$export$be92b6f5f03c0fe9","$e02a7d9cb1dc128c$export$c74125a8e3af6bb2","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","collectionRef","itemMap","CollectionProvider","import_react30","COLLECTION_SLOT_NAME","CollectionSlot","forwardedRef","composedRefs","$5e63c961fc1ce211$export$8c6ed5c666ac1360","ITEM_SLOT_NAME","CollectionItemSlot","itemData","ITEM_DATA_ATTR","Slot","ItemSlot","useCollection","getItems","collectionNode","orderedNodes","querySelectorAll","items","orderedItems","$f631663db3294ace$export$b39126d51d94e6f3","localDir","globalDir","import_react31","$f631663db3294ace$var$DirectionContext","$3db38b7d1fb3fe6a$export$b7ece24a22aeda8c","import_react32","_edgeGuards$","_edgeGuards$2","edgeGuards","insertAdjacentElement","$3db38b7d1fb3fe6a$var$createFocusGuard","$3db38b7d1fb3fe6a$var$count","cssText","$d3863c46a17e8a28$var$focusFirst","candidates","select","previouslyFocusedElement","candidate","$d3863c46a17e8a28$var$focus","$d3863c46a17e8a28$var$getTabbableCandidates","container","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","disabled","hidden","FILTER_SKIP","FILTER_ACCEPT","nextNode","currentNode","$d3863c46a17e8a28$var$findVisible","elements","$d3863c46a17e8a28$var$isHidden","upTo","visibility","preventScroll","HTMLInputElement","$d3863c46a17e8a28$var$arrayRemove","item","updatedArray","$d3863c46a17e8a28$var$removeLinks","$d7bdfb9eb0fdf311$var$getFocusIntent","orientation","dir","$d7bdfb9eb0fdf311$var$MAP_KEY_TO_FOCUS_INTENT","$d7bdfb9eb0fdf311$var$focusFirst","PREVIOUSLY_FOCUSED_ELEMENT","$d7bdfb9eb0fdf311$var$wrapArray","startIndex","useCallbackRef","initialValue","import_react35","facade","useMergeRefs","defaultValue","ItoI","innerCreateMedium","defaults","buffer","assigned","medium","read","useMedium","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cbs2","filter2","$6cc32821e9371a1c$var$focusFirst","$6cc32821e9371a1c$var$wrapArray","$6cc32821e9371a1c$var$getNextMatch","search","currentMatch","normalizedSearch","every","char","currentMatchIndex","wrappedValues","nextMatch","find","startsWith","$6cc32821e9371a1c$var$whenMouse","$ae6933e535247d3d$export$7d15b64cf5a3a4c4","$010c2913dbd2fe3d$export$5cae361ad82dce8b","import_react47","previous","$faa2e61a3361514f$var$getNextSortedValues","prevValues","atIndex","nextValues","$faa2e61a3361514f$var$convertValueToPercentage","$faa2e61a3361514f$var$getLabel","totalValues","$faa2e61a3361514f$var$getClosestValueIndex","distances","closestDistance","$faa2e61a3361514f$var$getThumbInBoundsOffset","halfWidth","$faa2e61a3361514f$var$linearScale","halfPercent","$faa2e61a3361514f$var$getStepsBetweenValues","output","$faa2e61a3361514f$var$roundValue","decimalCount","rounder","round","ColorInput","renderColor","color2","import_jsx_runtime44","backgroundColor","TablerIcon","popoverSide","setColor","setOpacity","import_react50","LogseqContext","handleChangeDebounced","latestValue","PopoverButton","border","arrow","label","onClick","htmlFor","$faa2e61a3361514f$export$be92b6f5f03c0fe9","onValueCommit","step","$faa2e61a3361514f$export$13921ac0cc260818","$faa2e61a3361514f$export$9a58ef0d7ad3278c","$faa2e61a3361514f$export$6521433ed15a34db","$8927f6f2acc4f386$export$6d1a0317bde7de7f2","import_react_dom7","$5cb92bef7577960e$var$usePointerDownOutside2","import_react53","$5cb92bef7577960e$var$handleAndDispatchCustomEvent2","$5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE2","$5cb92bef7577960e$var$useFocusOutside2","$5cb92bef7577960e$var$FOCUS_OUTSIDE2","$5cb92bef7577960e$var$dispatchUpdate2","$5cb92bef7577960e$var$CONTEXT_UPDATE2","$d3863c46a17e8a28$var$focusFirst2","$d3863c46a17e8a28$var$focus2","$d3863c46a17e8a28$var$getTabbableCandidates2","$d3863c46a17e8a28$var$findVisible2","$d3863c46a17e8a28$var$isHidden2","$d3863c46a17e8a28$var$arrayRemove2","$d3863c46a17e8a28$var$removeLinks2","$cf1ac5d9fe0e8206$var$isDefined2","$cf1ac5d9fe0e8206$var$isNotNull2","$cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement2","$cc7e05a45900e73f$var$useTypeaheadSearch","onSearchChange","handleSearchChange","searchRef","import_react58","timerRef","handleTypeaheadSearch","updateSearch","resetTypeahead","$cc7e05a45900e73f$var$findNextItem","currentItem","currentItemIndex","wrappedItems","$cc7e05a45900e73f$var$wrapArray","nextItem","textValue","SelectInput","chevron","onValueChange","isOpen","setIsOpen","React49","import_jsx_runtime45","$cc7e05a45900e73f$export$be92b6f5f03c0fe9","open","onOpenChange","$cc7e05a45900e73f$export$41fb9f06171c75f4","$cc7e05a45900e73f$export$4c8d1a57a761ef94","$cc7e05a45900e73f$export$f04a61298a47a40f","$cc7e05a45900e73f$export$602eac185826482c","$cc7e05a45900e73f$export$7c6e2c02157bb7d2","stopPropagation","$cc7e05a45900e73f$export$2f60d3ec9ad468f2","$cc7e05a45900e73f$export$d5c6c08dc2d3ca7","option","$cc7e05a45900e73f$export$6d08773d2e66f8f2","$cc7e05a45900e73f$export$d6e5bf9c43ea9319","$cc7e05a45900e73f$export$bf1aedc3039c8d63","ScaleInput","scaleLevel","compact","import_react60","sizeOptions","import_jsx_runtime46","setScaleLevel","compose","arg","thrush","proc","curry2to1","curry1to0","tap","tup","call2","always","joinProc","_len2","procs","_key2","noop4","emitter","subscription","SUBSCRIBE","publish","publisher","PUBLISH","reset","RESET","getValue","depot","VALUE","connect","handleNext","stream","subscriptions","statefulStream","initial","innerSubject","eventHandler","currentSubscription","streamFromEmitter","stream2","statefulStreamFromEmitter","combineOperators","operators","subscriber","reduceRight","pipe","project","defaultComparator","distinctUntilChanged","comparator","predicate","map2","mapTo","scan","scanner","skip","times","throttleTime","interval","timeout","debounceTime","withLatestFrom","_len3","sources","_key3","called","pendingCall","allCalled","bit","prevCalled","call3","merge","duc","combineLatest","emitters","system","singleton","init","systemSpec","singletons","_init","_init2","system2","_objectWithoutPropertiesLoose2","_unsupportedIterableToArray2","_arrayLikeToArray2","_createForOfIteratorHelperLoose2","omit","systemToComponent","Root","applyPropsToSystem","_iterator","requiredPropNames","_step","requiredPropName","required","_iterator2","optionalPropNames","_step2","optionalPropName","_stream","optional","buildMethods","methodNames","methodName","methods","buildEventHandlers","eventNames","eventName","import_react65","Component","propsWithChildren","_excluded2","_useState","system3","_useState2","useIsomorphicLayoutEffect","_iterator3","_step3","useImperativeHandle","usePublisher","useEmitterValue","_useState3","useEmitter","c3","m3","d3","f3","C2","import_react66","I","T3","i5","a6","l6","dataset","index","s5","u5","parseFloat","knownSize","c5","h3","ERROR","m5","endIndex","virtuosoScroller","firstElementChild","viewportType","viewportHeight","innerHeight","WARN","rowGap","w3","b3","import_react_dom11","scrollerRef","scrollByCallback","scrollBy","scrollToCallback","behavior","scrollTo","E3","H2","k","v","lvl","F","O2","U","W2","M","k2","z2","D3","G","B","P2","V2","A2","N2","_","Y","q","Z","J","$","offsetTree","lastIndex","lastOffset","lastSize","Q","DEBUG","sizeTree","d5","S3","groupOffsetTree","X","groupIndices","ee","groupIndex","te","ae","ie","fe","he","totalCount","ve","Se","Ce","se","reverse","xe","originalIndex","shift","be","topItems","topListHeight","offsetBottom","firstItemIndex","Fe","De","visibleHeight","visibleWidth","qe","Je","it","st","n3","Ke","nt","ut","Ye","C4","I2","T4","g3","Et","Rt","column","row","Ft","kt","Ht","bt","qt","_setPrototypeOf2","_inheritsLoose2","_getPrototypeOf","_getPrototypeOf2","_isNativeReflectConstruct","Reflect","construct","sham","_construct","Parent","Class","Parent2","args2","Class2","instance","Function","_wrapNativeSuper","_cache","Wrapper","convertToInt","red","green","blue","hslToRgb","hue","saturation","lightness","convert","huePrime","chroma","secondComponent","lightnessModification","parseToRgb","PolishedError","normalizedColorName","namedColorMap","normalizedColor","match","hexRegex","hexRgbaRegex","alpha","reducedHexRegex","reducedRgbaHexRegex","_alpha","rgbMatched","rgbRegex","exec","rgbaMatched","rgbaRegex","hslMatched","hslRegex","rgbColorString","hslRgbMatched","hslaMatched","hslaRegex","_hue","_saturation","_lightness","_rgbColorString","_hslRgbMatched","numberToHex","hex","convertToHex","reduceHexValue$1","rgb","toColorString","curried","combined","darken","amount","hslColor","lowerBoundary","upperBoundary","withClampedStyles","strokeWidth","noFill","withFillShapes","strokeColor","curriedDarken$1","stroke","BindingIndicator","mode","import_jsx_runtime51","boxShadow","borderRadius","useCameraMovingRef","Arrowhead","middle","import_jsx_runtime60","strokeLinecap","strokeLinejoin","getStraightArrowHeadPoints","ints","getStraightArrowHeadPath","getArrowPath","decorationStart","decorationEnd","arrowDist","dist","arrowHeadLength","path","LabelMask","labelSize","scale","import_jsx_runtime62","$2","se2","l4","a4","b4","R4","ue2","de2","G2","ie2","L4","sin","cos","K2","ee2","ce2","D4","j2","runningLength","taper","te2","M2","H3","pressure","C3","W3","pe2","U2","X2","vector","F2","O3","E4","J2","Z2","le2","fe2","re2","Y2","ne2","V3","oe2","P3","k3","Q2","N3","me2","generateSVGFromModel","serializedApp","ratio","exportAsSVG","preview","PreviewManager","generateJSXFromModel","generatePreviewJsx","ShapeLinkItem","onRemove","showContent","import_react88","import_jsx_runtime76","BlockLink","showReferenceContent","getBlockPageName","currentPage","redirectToPage","sidebarAddBlock","ToggleGroupInput","import_jsx_runtime77","$6c1fd9e6a8969628$export$be92b6f5f03c0fe9","$6c1fd9e6a8969628$export$6d08773d2e66f8f2","icon","ToggleGroupMultipleInput","filterShapeByAction","selectedShapesArray","unlockedSelectedShapes","isLocked","shapeMapping","getFileType","filename","extensionMatch","extension","assetExtensions","extensions","tryCreateShapeHelper","getDataFromType","types","DataTransfer","getData","getType","usePaste","React74","info","clipboard","newRef","rawText","trim","blockRef","persist","handleCreatingShapes","useDrop","handlePaste","React75","_0","_1","fromDrop","useCopy","React76","html","copyToClipboard","useQuickAdd","import_react96","transition","__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","exclude","__commonJS","mod","__require","__copyProps","to","except","desc","__toESM","isNodeMode","__esModule","__decorateClass","decorators","kind","__publicField","__this","__arguments","generator","fulfilled","rejected","throw","require_rbush_min","module2","define","amd","RBush","h5","r6","e4","a7","h6","f5","exp","leaf","_maxEntries","_minEntries","all","r4.prototype.all","_all","r4.prototype.search","toBBox","collides","r4.prototype.collides","load","r4.prototype.load","insert","_build","_splitRoot","_insert","r4.prototype.insert","r4.prototype.clear","r4.prototype.remove","_condense","r4.prototype.toBBox","compareMinX","r4.prototype.compareMinX","compareMinY","r4.prototype.compareMinY","toJSON","r4.prototype.toJSON","fromJSON","r4.prototype.fromJSON","r4.prototype._all","r4.prototype._build","_chooseSubtree","r4.prototype._chooseSubtree","r4.prototype._insert","_split","_adjustParentBBoxes","r4.prototype._split","_chooseSplitAxis","_chooseSplitIndex","r4.prototype._splitRoot","r4.prototype._chooseSplitIndex","r4.prototype._chooseSplitAxis","_allDistMargin","r4.prototype._allDistMargin","r4.prototype._adjustParentBBoxes","r4.prototype._condense","require_fast_deep_equal","module2.exports","equal","require_cjs","cloneUnlessOtherwiseSpecified","isMergeableObject","deepmerge2","defaultArrayMerge","getEnumerableOwnPropertySymbols","getKeys","propertyIsOnObject","mergeObject","destination","customMerge","sourceIsArray","targetIsArray","stringValue","REACT_ELEMENT_TYPE","for","deepmerge2.all","require_tslib","__extends2","__assign2","__rest2","__decorate2","__param2","__metadata2","__awaiter2","__generator2","__exportStar2","__values3","__read3","__spread2","__spreadArrays2","__spreadArray2","__await2","__asyncGenerator2","__asyncDelegator2","__asyncValues2","__makeTemplateObject2","__importStar2","__importDefault2","__classPrivateFieldGet2","__classPrivateFieldSet2","__classPrivateFieldIn2","__createBinding2","factory","createExporter","exports2","exporter","extendStatics","__","decorate","paramIndex","metadataKey","metadataValue","metadata","_arguments","adopt","verb","op","ops","trys","sent","k22","ar","il","jl","pack","resume","fulfill","settle","asyncIterator","v5","cooked","raw","__setModuleDefault","receiver","src_exports","__export","App","App3","__toCommonJS","Color2","Geometry","Geometry2","_nodeId","_clockseq","_lastMSecs","_lastNSecs","v1","buf","clockseq","seedBytes","random","msecs","nsecs","dt2","tmh","_Vec","clamp","clampV","snap","neg","Vec.neg","Vec.add","addScalar","Vec.addScalar","Vec.sub","subScalar","Vec.subScalar","vec","Vec.vec","Vec.mul","mulV","Vec.mulV","div","Vec.div","divV","Vec.divV","per","Vec.per","dpr","Vec.dpr","cpr","Vec.cpr","len2","Vec.len2","Vec.len","pry","Vec.pry","Vec.uni","normalize","Vec.normalize","tangent","Vec.tangent","dist2","Vec.dist2","Vec.dist","fastDist","Vec.fastDist","V4","aV","ang","Vec.ang","Vec.angle","med","Vec.med","rot","Vec.rot","Vec.rotWith","px","py","Vec.isEqual","Vec.lrp","Vec.int","ang3","p1","pc","p22","Vec.ang3","v22","Vec.abs","rescale","Vec.rescale","isLeft","Vec.isLeft","clockwise","Vec.clockwise","Vec.toFixed","nearestPointOnLineThroughPoint","Vec.nearestPointOnLineThroughPoint","distanceToLineThroughPoint","Vec.distanceToLineThroughPoint","nearestPointOnLineSegment","Vec.nearestPointOnLineSegment","distanceToLineSegment","Vec.distanceToLineSegment","nudge","Vec.nudge","nudgeAtAngle","Vec.nudgeAtAngle","toPrecision","Vec.toPrecision","pointsBetween","steps","Vec.pointsBetween","slope","Vec.slope","NaN","toAngle","Vec.toAngle","Vec.max","Vec.min","BoundsUtils","getBoundsSides","expandBounds","boundsCollide","boundsContain","boundsContained","boundsAreEqual","getBoundsFromPoints","pt2","centerBounds","boundsCenter","getBoundsCenter","translateBounds","snapBoundsToGrid","gridSize","multiplyBounds","divideBounds","getRotatedBounds","corners","getRotatedCorners","getRotatedEllipseBounds","getExpandedBounds","getCommonBounds","getTransformedBoundingBox","isAspectRatioLocked","ax0","ay0","ax1","ay1","bx0","by0","bx1","by1","scaleX","scaleY","aw","ah","flipX","flipY","bw","bh","isTall","tw","th","cv","c0","c1","getTransformAnchor","isFlippedX","isFlippedY","anchor","getRelativeTransformedBoundingBox","initialBounds","initialShapeBounds","getRotatedSize","getBoundsWithCenter","midX","midY","getCommonTopLeft","getTLSnapPoints","others","snapDistance","snapLines","snaps","isSnapped","xs","ys","snapResults","flatMap","gap","f","isCareful","gapX","gapY","ensureRatio","newBounds","getDistributions","shapes2","getBounds","commonBounds","span","entriesToMove","getPackedDistributions","shapesPosOriginal","fromEntries","_d","_PointUtils","pointInCircle","pointInEllipse","tdx","tdy","pointInRect","pointInPolygon","wn","pointInBounds","pointInPolyline","_getSqSegDist","_simplifyStep","sqTolerance","maxSqDist","sqDist","simplify2","tolerance","pointNearToPolyline","PointUtils","x0","y0","l0","simplify","l1","TAU","PI2","EMPTY_OBJECT","CURSORS","rotate","background","circleFromThreePoints","x32","y32","perimeterOfEllipse","shortAngleDist","a0","da","longAngleDist","lerpAngles","angleDelta","getSweep","clampRadians","snapAngleToSegments","segments","seg","isAngleBetween","degreesToRadians","getArcLength","sweep","getSweepFlag","angleAC","angleAB","getLargeArcFlag","anglePA","angleAPC","anglePC","getArcDashOffset","del0","len0","off0","getEllipseDashOffset","radiansToCardinalDirection","radians","_PolygonUtils","getPolygonCentroid","cx2","cy","getEdgeOutwardNormal","offsetVector","edges","getOffsetEdge","getOffsetEdges","getEdges","edge","slopeAB","slopePQ","PQ","isNaN","sides","pointsOnPerimeter","t1","p32","mid","centroid","BC","CA","dAB","dBC","dCA","outer","inner","theta","SvgPathUtils","getCurvedPathForPolygon","getCurvedPathForPoints","getSvgPathFromStroke","closed","getSvgPathFromStrokePoints","getDescriptor","EMPTY_ARRAY","freeze","getOwnPropertyDescriptors2","Atom2","onBUOL","onBOL","_proto","_proto.onBO","_proto.onBUO","_proto.reportObserved","reportChanged","_proto.reportChanged","_proto.toString","identity","identityComparer","structuralComparer","defaultComparer","is","shallow","shallowComparer","autoAnnotation","defaultCreateObservableOptions","OBSERVABLE","observableRefAnnotation","OBSERVABLE_REF","observableShallowAnnotation","OBSERVABLE_SHALLOW","shallowEnhancer","observableStructAnnotation","OBSERVABLE_STRUCT","refStructEnhancer","observableDecoratorAnnotation","observableFactories","ObservableValue","ObservableMap","ObservableSet","_target$$mobx","_target$$mobx$proxy_","objectProxyTraps","struct","computedAnnotation","COMPUTED","computedStructAnnotation","COMPUTED_STRUCT","_getDescriptor$config","_getDescriptor","_Symbol$toPrimitive","_Atom","ObservableValue2","notifySpy","_this","hasUnreportedChange_","value_","dehancer","dehanceValue","_proto.dehanceValue","_proto.set","prepareNewValue_","UNCHANGED","setNewValue_","_proto.prepareNewValue_","UPDATE","_proto.setNewValue_","_proto.get","intercept_","_proto.intercept_","observe_","_proto.observe_","observableKind","debugObjectName","_proto.raw","_proto.toJSON","_proto.valueOf","_Symbol$toPrimitive$1","ComputedValue2","triggeredBy_","isRunningSetter_","isComputing_","setter_","keepAlive_","requiresReaction_","equals_","scope_","requiresReaction","keepAlive","_proto.onBecomeStale_","prevTrackingContext","trackAndCompute","warnAboutUntrackedRead_","computeValue_","cause","_proto.trackAndCompute","wasSuspended","_proto.computeValue_","_proto.suspend_","prevValue","_proto.warnAboutUntrackedRead_","IDerivationState_2","TraceMode2","mobxGuid","spyListeners","globalReactionErrorHandlers","reactionRequiresObservable","computedRequiresReaction","Reaction2","onInvalidate_","errorHandler_","requiresObservable_","isRunning_","isTrackPending_","isScheduled_","_proto.schedule_","_proto.isScheduled","_proto.runReaction_","reportExceptionInDerivation_","_proto.track","prevReaction","_proto.reportExceptionInDerivation_","_proto.dispose","_proto.getDisposer_","_proto.trace","actionBoundAnnotation","ACTION_BOUND","autoActionBoundAnnotation","AUTOACTION_BOUND","generatorId","flowAnnotation","flowBoundAnnotation","flow2","gen","ctx","rejector","pendingPromise","promise","onFulfilled","res3","ret","stepId","onRejected","cancel","yieldedPromise","has_","set2","_getAdm$set_","deleteProperty","_getAdm$delete_","delete_","defineProperty2","_getAdm$definePropert","ownKeys2","preventExtensions","get2","getArrayLength_","set3","setArrayLength_","preventExtensions2","ObservableArrayAdministration2","owned_","legacyMode_","enhancer_","lastKnownLength_","this.enhancer_","newV","oldV","dehanceValue_","_proto.dehanceValue_","_proto.dehanceValues_","added","addedCount","removed","removedCount","_proto.getArrayLength_","_proto.setArrayLength_","newLength","currentLength","newItems","updateArrayLength_","_proto.updateArrayLength_","oldLength","_proto.spliceWithArray_","deleteCount","SPLICE","spliceItemsIntoValues_","notifyArraySplice_","_proto.spliceItemsIntoValues_","MAX_SPLICE_SIZE","_this$values_","oldItems","_i","notifyArrayChildUpdate_","_proto.notifyArrayChildUpdate_","notify","_proto.notifyArraySplice_","_proto.get_","_proto.set_","spliceWithArray","unshift","ObservableMapMarker","_Symbol$iterator","_Symbol$toStringTag","ObservableMap2","initialData","_proto.has_","_proto.has","newEntry","hasKey","ADD","updateValue_","addValue_","DELETE","_change","_this3$hasMap_$get","_proto.updateValue_","_proto.addValue_","_this4","_this4$hasMap_$get","_proto.keys","_proto.values","_keys$next","_proto.entries","_keys$next2","_proto.forEach","_step$value","_proto.merge","other","_this5","_proto.clear","_this6","_proto.replace","_this7","replacementMap","orderedData","keysReportChangedCalled","deleted","_iterator4","_step4","_step4$value","_value","keyExisted","_value2","iter1","next2","iter2","next1","ObservableSetMarker","_Symbol$iterator$1","_Symbol$toStringTag$1","ObservableSet2","callbackFn","_proto.add","_change2","nextIndex","observableValues","ObservableObjectAdministration2","defaultAnnotation_","pendingKeys_","appliedAnnotations_","_proto.getObservablePropValue_","_proto.setObservablePropValue_","_proto.make_","_this$target_$storedA","outcome","_adm$target_$storedAn","_proto.extend_","_proto.defineProperty_","deleteOutcome","notifyPropertyAddition_","_proto.defineObservableProperty_","cachedDescriptor","_proto.defineComputedProperty_","_proto.delete_","REMOVE","_this$pendingKeys_","_this$pendingKeys_$ge","_getDescriptor2","_proto.notifyPropertyAddition_","_this$pendingKeys_2","_this$pendingKeys_2$g","_proto.ownKeys_","keys_","_proto.keys_","ENTRY_0","StubArray","inherit","ctor","_StubArray","_Symbol$toStringTag2","_Symbol$iterator2","LegacyObservableArray2","_proto.concat","arrays","__MOBX_DEVTOOLS_GLOBAL_HOOK__","injectMobx","extras","import_jsx_runtime","TLShape","BINDING_DISTANCE","ownBounds","rotatedBounds","bindingDistance","expandedBounds","intersections","middlePoint","nonce","isDirty","lastSerialized","setIsDirty","setLastSerialized","getSerialized","isDeserializing","skipNounce","incNonce","validateProps","serialized","initialProps","nextScale","initialShape","nextHandles","deepCopy","topLeft","setNonce","getCachedSerialized","getShapeSVGJsx","strokeType","strokeDasharray","fillOpacity","TLBoxShape","TLDrawShape","pointBounds","rotatedPoints","normalizedPoints","ownPoint","rA","rB","point2","oBounds","vert","relativeCenter","isComplete","TLEllipseShape","TLImageShape","clipping","asset","clip","iClipping","objectFit","assetId","_TLPolylineShape","normalizedHandles","TLPolylineShape","_TLLineShape","nextShape","nextBounds","canBind","TLPolygonShape","rotatedVertices","vertices","getVertices","getTriangleVertices","getPolygonVertices","TLTextShape","isSizeLocked","TLGroupShape","shapes","deleteShapes","canResize","getShapes","TLRootState","stateClasses","StateClass","states","prevState","currentState","_events","onExit","setCurrentState","onTransition","onEnter","paths","isIn","_a4","_isActive","forwardEvent","onModifierKey","_id","_initial","_states","_disposables","disposable","descendants","TLState","parent","_root","_parent","registerStates","initialId","ascendants","TLTool","cursors","setCursor","toState","TLToolState","CreatingState","originPoint","currentPoint","Shape5","canChangeAspectRatio","aspectRatio","creatingShape","addShapes","setSelectedShapes","snapToGrid","GRID_SIZE","editShape","IdleState","returnTo","PointingState","TLBoxTool","CreatingState3","previousShape","history","pause","prevPoint","nextPoint","addNextPoint","previousPoint","simplifyTolerance","persistDebounced","IdleState3","PinchingState","prevDelta","pinchZoom","TLDrawTool","ErasingState","hitShapes","shapesInViewport","hitTestLineSegment","setErasingShapes","IdleState4","PointingState2","hitTestPoint","shapesToDelete","erasingShapes","TLEraseTool","TLBaseLineBindingState","modKey2","getShapeById","otherHandleId","adjusted","handleChanges","updated","currentShape","getHandlesChange","draggedBinding","draggingHandle","oppositeHandle","startBindingShapeId","nextStartBinding","startTarget","endHandle","rayPoint","isInsideShape","rayDirection","hasStartBinding","newStartBindingId","rayOrigin","startPoint","endPoint","targets","bindableShapeIds","shape2","draggedBindingId","currentBindingId","updateBindings","bindingShapes","setBindingShapes","clearBindingShape","CreatingState4","getBindableShapes","IdleState5","setHoveredShape","hoveredId","PointingState3","TLLineTool","CreatingState5","IdleState6","TLTextTool","import_rbush","TLBush","BrushingState","initialSelectedIds","initialSelectedShapes","tree","setBrush","brushBounds","hits","hitTestBounds","getParentGroup","hit","panToPointWhenNearBounds","ContextMenuState","IdleState7","button","selectionBounds","selectedShape","canEdit","PointingShapeState","PointingBoundsBackgroundState","PointingCanvasState","setEditingShape","getSelection","removeAllRanges","TranslatingState","allSelectedShapesArray","initialPoints","initialShapePoints","el","blur","empty","startCloning","moveSelectedShapesToPointer","isCloning","didClone","clones","initialClonePoints","allSelectedShapes","removeShapes","ShapeClass","getShapeClass","PointingSelectedShapeState","pointedSelectedShape","PointingResizeHandleState","updateCursor","_ResizingState","resizeType","initialInnerBounds","selectionRotation","isSingle","initialCommonBounds","snapshots","transformOrigin","innerTransformOrigin","onResizeStart","firstShape","initialShapeProps","relativeBounds","canResizeAny","canFlip","canScale","onResize","ResizingState","PointingRotateHandleState","PointingShapeBehindBoundsState","RotatingState","initialSelectionRotation","initialCommonCenter","initialAngle","snapshot","currentAngle","initialAngle2","rotatedCenter","initialHandles","handlePoints","setSelectionRotation","PinchingState2","TranslatingHandleState","PointingHandleState","HoveringSelectionHandleState","onResetBounds","assets","EditingShapeState","newText","PointingMinimapState","clientPoint","minimapContainer","minimapCamera","minimapRect","minimapZoom","commonBoundWidth","cursorInSvg","minimapCameraRect","minimapCameraCenter","newCameraPoint","getCameraPoint","TLSelectTool","PanningState","originalScreenPoint","originalCameraPoint","IdleState8","prevTool","exit","IdleHoldState","PinchingState3","TLMoveTool","TLPage","shapesToMove","parseShapesArg","visitedShapes","shapeChanged","bindingChanged","newBindings","toShape","fromShape","fromDelta","updateArrowBindings","import_fast_deep_equal","relatedShapes","isBound","hasDecoration","decorations","intersectBounds","anchorPoint","ID","bHit","bHits","shortArrowDirection","shortArrowHits","newShapesNouncesMap","lastShapesNounces","allIds","cleanup","updateShapesIndex","shapesIndex","shapeInstances","TLInputs","pagePoint","pointerIds","updateModifiers","originScreenPoint","spaceKey","updateContainerOffset","previousScreenPoint","modKey","elapsedProgress","duration","_TLViewport","panThreshold","deltaMax","currentView","deltaMin","panMultiplier","animate","p0","newPoint","animateCamera","setZoom","ZOOM_UPDATE_FACTOR","animateToViewport","startTime","performance","oldView","progress","FIT_TO_SCREEN_PADDING","TLApi","createShapes","updateShapes","flipHorizontal","flipVertical","shapesInGroups","zoomIn","zoomOut","resetZoom","zoomToBounds","showGrid","undo","redo","geometry","spacing","_e2","_f","_g","_h","_j","_k","_l","_m","_n","_o","_p","clonedShapes","oldId","findIndex","clonedBindings","oldFromIdx","oldToIdx","newBinding","clonedAssets","innerText","cloneShapes","addClonedShapes","createAssets","getClonedShapesFromTldrString","selectedGroups","ShapeGroup","group","bringForward","collapsed","setCollapsed","TLCursors","TLHistory","isPaused","replace2","creating","appUndo","appRedo","serializedShape","pages","wasPaused","newSelectedIds","pagesMap","pagesToAdd","serializedPage","page","shapesMap","shapesToAdd","instantiateShape","isInAny","addPages","removePages","TLSettings","TLApp","saving","pageId","getPageById","shapesById","newShapes","oldShape","convertShapes","normalizedShapes","parentGroup","newChildren","deleteBinding","shapeA","shapeB","allShapesToDelete","removedShapes","sendBackward","sendToBack","bringToFront","flip","boundsForShapes","deltaMap","locked","usedAssets","getCleanUpAssets","jsonString","tldrawString","encodeURIComponent","shapeBlockRefs","clipboardData","getPagePoint","editingId","newSelectedShapes","erasingIds","newErasingShapes","bindingIds","tgt","newLine","brush","Shape5.prototype.getShapes","shouldSave","unsubscribe","temporaryTransitionToMove","registerShapes","registerTools","deserialize","addAssets","groups","removeAssets","tools2","hoveredShape","hoveredGroup","activeBindings","canUnmount","hideSelection","hideSelectionDetail","showSelectionDetail","hideContextBar","hideRotateHandle","hideResizeHandles","LegacyCache2","_keys","_values","LegacyCache2.prototype.has","LegacyCache2.prototype.get","LegacyCache2.prototype.set","getRegExpFlags","_a","SUPPORTS_SYMBOL","copyArrayLoose","length_2","copyArrayBuffer","copyBlob","copyDataView","copyDate","getTime","copyObjectLoose","copyRegExp","DEFAULT_STRICT_OPTIONS","copyArrayStrict","copyMapStrict","copyObjectStrict","copySetStrict","_TextUtils","insertTextFirefox","field","setRangeText","selectionStart","selectionEnd","InputEvent","inputType","isComposing","document2","initialFocus","execCommand","wrapSelection","wrap","wrapEnd","selection","searchValue","replacer","drift","matchStart","matchLength","replacement","findLineEnd","currentEnd","lastLineStart","lastIndexOf","charAt","indent","selectedContrast","lineBreakCount","firstLineStart","newSelection","indentedText","INDENT","replacementsCount","setSelectionRange","unindent","minimumSelectionEnd","difference","firstLineIndentation","normalizeText","fixNewLines","TextUtils","MOD_KEY","NOOP","overflowY","accent","brushFill","brushStroke","selectStroke","selectFill","foreground","grid","css","strings","V","toVector","fallback","addTo","subTo","pointer","mouse","Engine","computeValues","computeInitial","ingKey","_active","active","_blocked","_force","intentional","_distance","_bounds","axis","elapsedTime","velocity","movement","compute","pointerLockElement","payload","down","_absoluteDelta","axisIntent","_m0","_m1","t0","hasCustomTransform","restrictToAxis","previousOffset","gestureIsActive","setup","computeOffset","rubberband2","computeMovement","BEFORE_LAST_KINEMATICS_DELAY","absoluteDelta","emit","triggerAllEvents","aliasKey","eventStore","timeoutStore","CoordinatesEngine","axisThreshold","lockDirection","commonConfigResolver","DEFAULT_RUBBERBAND","coordinatesConfigResolver","_v","DEFAULT_AXIS_THRESHOLD","KEYS_DELTA_MAP","ArrowRight","factor","DISPLACEMENT","ArrowLeft","ArrowUp","ArrowDown","DragEngine","_pointerId","_pointerActive","_keyboardActive","_preventScroll","_delayed","swipe","boundRect","targetRect","setActive","pointerClean","pointerDown","pointerButtons","ctrlIds","setEventIds","pointerCapture","setupPointer","preventScrollAxis","setupScrollPrevention","setupDelayTrigger","startPointerDrag","pointerMove","movementX","movementY","pointerUp","hasPointerCapture","_unused","tapsThreshold","filterTaps","vx","vy","mx","my","svx","svy","sx","sy","pointerClick","pointerLock","requestPointerLock","sharedConfig","exitPointerLock","remove2","preventScrollDelay","keyDown","deltaFn","keyUp","bindFunction","isBrowser","GestureEvent","maxTouchPoints","DEFAULT_DRAG_AXIS_THRESHOLD","pen","dragConfigResolver","lock","DEFAULT_PREVENT_SCROLL_DELAY","touchscreen","DEFAULT_SWIPE_VELOCITY","DEFAULT_SWIPE_DISTANCE","DEFAULT_SWIPE_DURATION","DEFAULT_DRAG_DELAY","PinchEngine","_pointerEvents","_touchIds","turns","axisMovementDifference","SCALE_ANGLE_RATIO_INTENT_DEG","touchStart","ctrlTouchIds","pinchStart","pointerStart","ctrlPointerIds","touchMove","pinchMove","delta_a","prev_a","delta_turns","touchEnd","pointerEnd","gestureStart","gestureMove","_previousMovement","gestureEnd","wheel","modifierKey","wheelChange","wheelStart","wheelEnd","PINCH_WHEEL_RATIO","pinchOnWheel","pinchConfigResolver","angleBounds","_scaleBounds","_angleBounds","MoveEngine","move","mouseOnly","moveChange","moveStart","moveEnd","moveConfigResolver","ScrollEngine","scroll","scrollChange","scrollEnd","scrollX","scrollY","scrollConfigResolver","WheelEngine","wheelConfigResolver","HoverEngine","enter","leave","hoverConfigResolver","_ctrl","_gestureKey","_listeners","_options","_timeouts","drag","hover","_targetEventStore","gestureConfig","bindToProps","Engine2","nativeBindFunction","handlerProp","withPassiveOption","isNative","_options$capture","_options$passive","GRAB_SVG","GRABBING_SVG","TEXT_SVG","EDGE_SVG","CORNER_SVG","ROTATE_CORNER_SVG","import_react5","import_react_dom","FinalizationRegistryLocal","FinalizationRegistry","_a2","ObjectToBeRetainedByReact2","hasSymbol","compare","observerBatching","reactionScheduler3","unstable_batchedUpdates","React20","import_jsx_runtime2","HTMLContainer","HTMLContainer2","centered","draggable","React21","import_jsx_runtime3","SVGContainer","SVGContainer2","React31","React23","import_jsx_runtime4","Container","Container2","rBounds","React24","import_jsx_runtime5","ContextBarContainer","ContextBarContainer2","ContextBar2","vpBounds","scaledBounds","screenBounds","offsets","React25","import_jsx_runtime6","HTMLLayer","HTMLLayer2","rLayer","layer","import_jsx_runtime7","Indicator","Shape","isHovered","isSelected","isBinding","isEditing","ReactIndicator","isErasing","import_jsx_runtime8","QuickLinksContainer","QuickLinksContainer2","QuickLinks2","rounded","paddingTop","minWidth","stop2","import_jsx_runtime9","BacklinksCountContainer","BacklinksCountContainer2","BacklinksCount2","onWheelCapture","title","React27","import_jsx_runtime10","SelectionDetailContainer","SelectionDetail","SelectionDetail4","import_jsx_runtime11","Shape2","Shape3","onEditingEnd","ReactComponent","isParentGrpupSelected","import_jsx_runtime12","STEPS","SVGGrid","CanvasGrid","xmlns","_size","xo","yo","gxo","gyo","patternUnits","cx","Grid","Grid2","import_jsx_runtime13","SelectionBackground","SelectionBackground2","import_jsx_runtime14","SelectionDetail2","SelectionDetail3","import_jsx_runtime15","cornerBgClassnames","CornerHandle","CornerHandle2","targetSize","corner","isHidden","import_jsx_runtime16","CloneHandle","CloneHandle2","import_jsx_runtime17","edgeClassnames","EdgeHandle","EdgeHandle2","import_jsx_runtime18","RotateHandle2","import_jsx_runtime19","RotateCornerHandle","RotateCornerHandle2","import_jsx_runtime20","SelectionForeground","SelectionForeground2","showResizeHandles","showRotateHandles","showCloneHandles","clonePadding","cloneHandleSize","import_jsx_runtime21","Brush","Brush2","import_jsx_runtime22","Cursor2","import_jsx_runtime23","Handle","Handle2","React30","import_jsx_runtime24","DirectionIndicator","DirectionIndicator2","rIndicator","insetBoundSides","import_jsx_runtime25","Renderer","selectionDirectionHint","cursorRotation","showSelection","showHandles","showSelectionRotation","showContextBar","rContainer","onlySelectedShapeWithHandles","onlySelectedShape","selectedShapesSet","erasingShapesSet","singleSelectedShape","hoveredShapes","BacklinksCount","QuickLinks","id4","ContextBar","React33","React32","import_jsx_runtime26","SVGLayer2","rGroup","import_jsx_runtime27","AppProvider","import_jsx_runtime28","App2","currentContext","setCurrentContext","Brush3","DirectionIndicator3","Grid3","Handle3","SelectionBackground3","SelectionForeground3","import_jsx_runtime30","AppCanvas","InnerApp","erasingShapesArray","clearEditingState","React78","React44","import_jsx_runtime32","extendedIcons","classNamePrefix","import_react28","import_react15","childrenArray","Children","toArray","slottable","newElement","count","only","$5e63c961fc1ce211$var$SlotClone","cloneElement","$8927f6f2acc4f386$export$250ffa63cdc0d034","$8927f6f2acc4f386$var$NODES","primitive","primitiveProps","Comp","$5cb92bef7577960e$var$originalBodyPointerEvents","$5cb92bef7577960e$var$DismissableLayerContext","layers","layersWithOutsidePointerEventsDisabled","branches","$5cb92bef7577960e$export$177fb62ff3ec1f22","_node$ownerDocument","disableOutsidePointerEvents","onInteractOutside","onDismiss","layerProps","force","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","isPointerDownOnBranch","branch","focusOutside","isFocusInBranch","handleUpdate","import_react19","import_react23","o","isRTL","getElementRects","initialPlacement","rects","c","m","getDimensions","R5","L5","centerOffset","b","overflows","t5","P","elementContext","referenceHiddenOffsets","referenceHidden","altBoundary","escapedOffsets","escaped","T","mainAxis","crossAxis","alignmentAxis","D","L","availableHeight","availableWidth","g2","D2","getClientRects","import_react20","import_react21","$7e8f5cd07187803e$export$be92b6f5f03c0fe9","$7e8f5cd07187803e$export$21b07c8f274aebd5","arrowProps","viewBox","preserveAspectRatio","$cf1ac5d9fe0e8206$var$createPopperContext","$cf1ac5d9fe0e8206$export$722aac194ae923","$cf1ac5d9fe0e8206$var$POPPER_NAME","$cf1ac5d9fe0e8206$var$PopperProvider","$cf1ac5d9fe0e8206$var$usePopperContext","$cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d","__scopePopper","virtualRef","anchorProps","$cf1ac5d9fe0e8206$var$ANCHOR_NAME","onAnchorChange","$cf1ac5d9fe0e8206$var$PopperContentProvider","$cf1ac5d9fe0e8206$var$useContentContext","$cf1ac5d9fe0e8206$var$CONTENT_NAME","$cf1ac5d9fe0e8206$var$PositionContextProvider","$cf1ac5d9fe0e8206$var$usePositionContext","hasParent","positionUpdateFns","$cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc","_arrowSize$width","_arrowSize$height","_middlewareData$arrow","_middlewareData$arrow2","_middlewareData$arrow3","_middlewareData$hide","_middlewareData$trans","_middlewareData$trans2","alignOffset","arrowPadding","collisionBoundary","collisionPaddingProp","hideWhenDetached","avoidCollisions","contentProps","setContent","arrow2","setArrow","arrowSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","hasExplicitBoundaries","detectOverflowOptions","limiter","$cf1ac5d9fe0e8206$var$transformOrigin","isPlaced","placedSide","placedAlign","arrowX","arrowY","cannotCenterArrow","contentZIndex","setContentZIndex","isRoot","commonProps","animation","hide","onArrowChange","shouldHideArrow","$cf1ac5d9fe0e8206$var$OPPOSITE_SIDE","$cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0","$cf1ac5d9fe0e8206$export$79d62cd4e10a3fd02","contentContext","$cf1ac5d9fe0e8206$var$ARROW_NAME","baseSide","_middlewareData$arrow4","_middlewareData$arrow5","_middlewareData$arrow6","_middlewareData$arrow7","_middlewareData$arrow8","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","$cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9","$cf1ac5d9fe0e8206$export$badac9ada3a0bdf9","setAnchor","import_react24","import_react_dom4","$f1701beae083dbae$export$602eac185826482c","_globalThis$document","portalProps","createPortal","$921a889cee6df7e8$export$99c2b779aa4e8b8b","presence","import_react27","$ea1ef594cf570d83$export$be92b6f5f03c0fe9","$ea1ef594cf570d83$export$439d29a4e110a164","wordWrap","$a093c7e1ec25a057$var$createTooltipContext","$a093c7e1ec25a057$var$usePopperScope","$a093c7e1ec25a057$var$TooltipProviderContextProvider","$a093c7e1ec25a057$var$useTooltipProviderContext","$a093c7e1ec25a057$var$PROVIDER_NAME","$a093c7e1ec25a057$var$TooltipContextProvider","$a093c7e1ec25a057$var$useTooltipContext","$a093c7e1ec25a057$var$TOOLTIP_NAME","$a093c7e1ec25a057$export$8c610744efcf8a1d","__scopeTooltip","triggerProps","$a093c7e1ec25a057$var$TRIGGER_NAME","providerContext","popperScope","onTriggerChange","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","contentId","stateAttribute","isPointerInTransitRef","onTriggerEnter","onTriggerLeave","onFocus","onOpen","onBlur","onClose","$a093c7e1ec25a057$var$PortalProvider","$a093c7e1ec25a057$var$usePortalContext","$a093c7e1ec25a057$var$PORTAL_NAME","forceMount","$a093c7e1ec25a057$export$e9003e2be37ec060","portalContext","$a093c7e1ec25a057$var$CONTENT_NAME","disableHoverableContent","$a093c7e1ec25a057$var$TooltipContentImpl","$a093c7e1ec25a057$var$TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","trigger","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","exitSide","exitPoint","bleed","graceArea","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","inside","xi","yi","xj","yj","isPointerOutsideGraceArea","$a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider","$a093c7e1ec25a057$var$useVisuallyHiddenContentContext","isInside","ariaLabel","$a093c7e1ec25a057$var$TOOLTIP_OPEN","handleScroll2","role","$a093c7e1ec25a057$export$c27ee0ad710f7559","visuallyHiddenContentContext","$a093c7e1ec25a057$var$ARROW_NAME","$a093c7e1ec25a057$export$f78649fb9ca566b8","$a093c7e1ec25a057$var$DEFAULT_DELAY_DURATION","skipDelayDuration","isOpenDelayed","setIsOpenDelayed","skipDelayTimerRef","skipDelayTimer","inTransit","$a093c7e1ec25a057$export$28c660c63b792dea","openProp","defaultOpen","disableHoverableContentProp","delayDurationProp","setTrigger","openTimerRef","wasOpenDelayedRef","open1","setOpen","handleOpen","handleClose","handleDelayedOpen","$a093c7e1ec25a057$export$7b36b8f925ab7497","import_jsx_runtime35","CircleButton","import_react29","$b3bbe2732c13b576$export$bea8ebba691c5813","pressedProp","defaultPressed","buttonProps","setPressed","import_react37","import_react36","import_react33","$d3863c46a17e8a28$var$EVENT_OPTIONS","$d3863c46a17e8a28$export$20e40289641fbbb6","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","container1","setContainer","onMountAutoFocus","onUnmountAutoFocus","lastFocusedElementRef","focusScope","paused","handleFocusIn","handleFocusOut","relatedTarget","$d3863c46a17e8a28$var$focusScopesStack","hasFocusedCandidate","mountEvent","$d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT","unmountEvent","$d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT","focusedElement","$d3863c46a17e8a28$var$createFocusScopesStack","stack","activeFocusScope","_stack$","import_react34","$d7bdfb9eb0fdf311$var$EVENT_OPTIONS","$d7bdfb9eb0fdf311$var$Collection","$d7bdfb9eb0fdf311$var$useCollection","$d7bdfb9eb0fdf311$var$createCollectionScope","$d7bdfb9eb0fdf311$var$GROUP_NAME","$d7bdfb9eb0fdf311$var$createRovingFocusGroupContext","$d7bdfb9eb0fdf311$export$c7109489551a4f4","$d7bdfb9eb0fdf311$var$RovingFocusProvider","$d7bdfb9eb0fdf311$var$useRovingFocusContext","$d7bdfb9eb0fdf311$export$8699f7c8af148338","__scopeRovingFocusGroup","$d7bdfb9eb0fdf311$var$RovingFocusGroupImpl","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","groupProps","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","$d7bdfb9eb0fdf311$var$ENTRY_FOCUS","onItemFocus","tabStopId","onItemShiftTab","onFocusableItemAdd","prevCount","onFocusableItemRemove","outline","onMouseDown","isKeyboardFocus","entryFocusEvent","focusable","activeItem","candidateNodes","candidateItems","$d7bdfb9eb0fdf311$export$ab9df7c53fe8454","itemProps","$d7bdfb9eb0fdf311$var$ITEM_NAME","isCurrentTabStop","focusIntent","currentIndex","PageUp","Home","PageDown","End","getDefaultParent","originalTarget","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","hideOthers","markerName","markerCounter","hiddenNodes","elementsToKeep","keep","attr","getAttribute","alreadyHidden","counterValue","markerValue","removeAttribute","import_tslib","__assign","__rest","__spreadArray","React40","React36","React35","SideCar","sideCar","Target","isSideCarExport","effectCar","createSidecarMedium","async","ssr","nothing","RemoveScroll","parentRef","onScrollCapture","onTouchMoveCapture","setCallbacks","forwardProps","removeScrollBar","shards","noIsolation","inert","allowPinchZoom","as","Container3","containerRef","containerProps","lockRef","classNames","fullWidth","fullWidthClassName","zeroRight","zeroRightClassName","React39","React38","React37","stylesheetSingleton","counter","stylesheet","tag","__webpack_nonce__","styleSheet","createTextNode","getElementsByTagName","styleHookSingleton","sheet","isDynamic","styleSingleton","useStyle2","Sheet","dynamic","zeroGap","Style","getStyles","allowRelative","gapMode","important","noScrollbarsClassName","removedBarSizeVariable","RemoveScrollBar","noRelative","noImportant","innerWidth","passiveSupported","nonPassive","elementCanBeScrolled","overflowX","locationCouldBeScrolled","elementCouldBeScrolled","isScrollable","getScrollVariables","getTouchXY","extractRef","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","Style2","lastProps","classList","allow_1","shouldCancelEvent","moveDirection","canBeScrolledInMainDirection","currentAxis","cancelingAxis","directionFactor","sourceDelta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScrollTop","availableScroll","elementScroll","scroll_1","capacity","shouldPrevent","_event","sourceEvent","should","shardNodes","shouldStop","shouldCancel","scrollTouchStart","scrollWheel","scrollTouchMove","inst","ReactRemoveScroll","$6cc32821e9371a1c$var$SELECTION_KEYS","$6cc32821e9371a1c$var$LAST_KEYS","$6cc32821e9371a1c$var$FIRST_LAST_KEYS","$6cc32821e9371a1c$var$Collection","$6cc32821e9371a1c$var$useCollection","$6cc32821e9371a1c$var$createCollectionScope","$6cc32821e9371a1c$var$MENU_NAME","$6cc32821e9371a1c$var$createMenuContext","$6cc32821e9371a1c$export$4027731b685e72eb","$6cc32821e9371a1c$var$usePopperScope","$6cc32821e9371a1c$var$useRovingFocusGroupScope","$6cc32821e9371a1c$var$MenuProvider","$6cc32821e9371a1c$var$useMenuContext","$6cc32821e9371a1c$var$MenuRootProvider","$6cc32821e9371a1c$var$useMenuRootContext","$6cc32821e9371a1c$export$9fa5ebd18bee4d43","__scopeMenu","$6cc32821e9371a1c$var$usePortalContext","$6cc32821e9371a1c$var$PORTAL_NAME","$6cc32821e9371a1c$var$MenuContentProvider","$6cc32821e9371a1c$var$useMenuContentContext","$6cc32821e9371a1c$var$CONTENT_NAME","$6cc32821e9371a1c$export$479f0f2f71193efe","rootContext","modal","$6cc32821e9371a1c$var$MenuRootContentModal","$6cc32821e9371a1c$var$MenuRootContentNonModal","$6cc32821e9371a1c$var$MenuContentImpl","trapFocus","disableOutsideScroll","onOpenAutoFocus","onCloseAutoFocus","rovingFocusGroupScope","currentItemId","setCurrentItemId","contentRef","onContentChange","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","scrollLockWrapperProps","_items$find","_items$find2","newItem","isPointerMovingToSubmenu","_pointerGraceIntentRe","_pointerGraceIntentRe2","isMovingTowards","polygon","onItemEnter","onItemLeave","_contentRef$current","onPointerGraceIntentChange","intent","_contentRef$current2","isUsingKeyboardRef","isKeyDownInside","closest","isModifierKey","isCharacterKey","pointerXHasChanged","newDir","$6cc32821e9371a1c$export$2ce376c2cc3355c8","onSelect","$6cc32821e9371a1c$var$ITEM_NAME","$6cc32821e9371a1c$var$MenuItemImpl","handleSelect","menuItem","itemSelectEvent","$6cc32821e9371a1c$var$ITEM_SELECT","_props$onPointerDown","click","isTypingAhead","isFocused","setIsFocused","textContent","setTextContent","_menuItem$textContent","$6cc32821e9371a1c$var$RADIO_GROUP_NAME","$6cc32821e9371a1c$var$ITEM_INDICATOR_NAME","checked","$6cc32821e9371a1c$var$SUB_NAME","$6cc32821e9371a1c$export$be92b6f5f03c0fe9","$6cc32821e9371a1c$export$d9b273488cd8ce6f","handleOpenChange","handlePointer","$d08ef79370b62062$var$createDropdownMenuContext","$d08ef79370b62062$var$DROPDOWN_MENU_NAME","$d08ef79370b62062$var$useMenuScope","$d08ef79370b62062$var$DropdownMenuProvider","$d08ef79370b62062$var$useDropdownMenuContext","$d08ef79370b62062$export$d2469213b3befba9","__scopeDropdownMenu","$d08ef79370b62062$var$TRIGGER_NAME","menuScope","triggerId","triggerRef","onOpenToggle","$d08ef79370b62062$export$6e76d93a37c01248","$d08ef79370b62062$var$CONTENT_NAME","hasInteractedOutsideRef","_context$triggerRef$c","ctrlLeftClick","isRightClick","$d08ef79370b62062$export$ed97964d1871885d","$d08ef79370b62062$export$be92b6f5f03c0fe9","$d08ef79370b62062$export$e44a253a59704894","prevOpen","import_react38","React42","import_jsx_runtime37","KeyboardShortcut","shortcut","renderers","Shortcut","import_jsx_runtime38","ZoomMenu","ZoomMenu2","preventEvent","import_react40","$89eedd556c436f6a$var$ORIENTATIONS","$89eedd556c436f6a$export$1ff3c3f08ae963c0","decorative","orientationProp","$89eedd556c436f6a$var$DEFAULT_ORIENTATION","domProps","semanticProps","ariaOrientation","propTypes","componentName","propValue","strVal","import_jsx_runtime39","ActionBar","ActionBar2","toggleGrid","toggleSnapToGrid","togglePenMode","import_react43","import_react_dom6","import_jsx_runtime40","printPoint","DevTools","statusbarAnchorRef","statusbarAnchor","rendererStatusText","rendererStatus","flex","alignItems","React51","import_jsx_runtime41","ToolButton","handleClick","Tool","tooltipContent","import_react45","$cb5cc270b50c6fcd$var$createPopoverContext","$cb5cc270b50c6fcd$var$POPOVER_NAME","$cb5cc270b50c6fcd$var$usePopperScope","$cb5cc270b50c6fcd$var$PopoverProvider","$cb5cc270b50c6fcd$var$usePopoverContext","$cb5cc270b50c6fcd$export$7dacb05d26466c3","__scopePopover","$cb5cc270b50c6fcd$var$TRIGGER_NAME","composedTriggerRef","hasCustomAnchor","$cb5cc270b50c6fcd$var$usePortalContext","$cb5cc270b50c6fcd$var$PORTAL_NAME","$cb5cc270b50c6fcd$export$d7e1f420b25549ff","$cb5cc270b50c6fcd$var$CONTENT_NAME","$cb5cc270b50c6fcd$var$PopoverContentModal","$cb5cc270b50c6fcd$var$PopoverContentNonModal","isRightClickOutsideRef","$cb5cc270b50c6fcd$var$PopoverContentImpl","_props$onCloseAutoFoc","_context$triggerRef$c2","_props$onInteractOuts","_context$triggerRef$c3","targetIsTrigger","$cb5cc270b50c6fcd$export$3152841115e061b2","$cb5cc270b50c6fcd$export$be92b6f5f03c0fe9","$cb5cc270b50c6fcd$export$5b6b19405a83ff9d","setHasCustomAnchor","onCustomAnchorAdd","onCustomAnchorRemove","import_react46","import_jsx_runtime42","GeometryTools","GeometryTools2","setGeometry","activeGeometry","geometries","activeTool","geo","import_react48","$faa2e61a3361514f$var$PAGE_KEYS","$faa2e61a3361514f$var$ARROW_KEYS","$faa2e61a3361514f$var$BACK_KEYS","$faa2e61a3361514f$var$Collection","$faa2e61a3361514f$var$useCollection","$faa2e61a3361514f$var$createCollectionScope","$faa2e61a3361514f$var$SLIDER_NAME","$faa2e61a3361514f$var$createSliderContext","$faa2e61a3361514f$var$SliderProvider","$faa2e61a3361514f$var$useSliderContext","$faa2e61a3361514f$export$472062a354075cee","handleSlideStart","closestIndex","updateValues","handleSlideMove","valueIndexToChangeRef","handleSlideEnd","valuesBeforeSlideStartRef","commit","snapToStep","setValues","minStepsBetweenThumbs","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","hasChanged","inverted","sliderProps","slider","setSlider","thumbRefs","isHorizontal","isFormControl","SliderOrientation","$faa2e61a3361514f$var$SliderHorizontal","$faa2e61a3361514f$var$SliderVertical","_thumbs$valueIndexToC","thumbs","__scopeSlider","onSlideStart","onSlideMove","onSlideEnd","onHomeKeyDown","onEndKeyDown","onStepKeyDown","stepDirection","isSkipKey","isPageKey","multiplier","$faa2e61a3361514f$var$BubbleInput","$faa2e61a3361514f$var$SliderOrientationProvider","$faa2e61a3361514f$var$useSliderOrientationContext","startEdge","endEdge","getValueFromPointer","rectRef","isSlidingFromLeft","isDirectionLTR","$faa2e61a3361514f$var$SliderImpl","isBackKey","slideDirection","sliderRef","isSlidingFromBottom","$faa2e61a3361514f$export$105594979f116971","trackProps","$faa2e61a3361514f$var$TRACK_NAME","$faa2e61a3361514f$export$a5cf38a7a000fe77","rangeProps","$faa2e61a3361514f$var$RANGE_NAME","valuesCount","percentages","offsetStart","offsetEnd","$faa2e61a3361514f$export$2c1b491743890dec","thumb","setThumb","$faa2e61a3361514f$var$SliderThumbImpl","thumbProps","$faa2e61a3361514f$var$THUMB_NAME","percent","thumbInBoundsOffset","orientationSize","inputProps","Event","React47","import_jsx_runtime43","tick","setTick","boundingRect","outOfView","tick2","import_react_dom10","import_react51","import_react52","$8927f6f2acc4f386$export$250ffa63cdc0d0342","$8927f6f2acc4f386$var$NODES2","$5cb92bef7577960e$var$originalBodyPointerEvents2","$5cb92bef7577960e$var$DismissableLayerContext2","$5cb92bef7577960e$export$177fb62ff3ec1f222","import_react54","$d3863c46a17e8a28$var$EVENT_OPTIONS2","$d3863c46a17e8a28$export$20e40289641fbbb62","$d3863c46a17e8a28$var$focusScopesStack2","$d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2","$d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2","$d3863c46a17e8a28$var$createFocusScopesStack2","import_react55","$cf1ac5d9fe0e8206$var$createPopperContext2","$cf1ac5d9fe0e8206$export$722aac194ae9232","$cf1ac5d9fe0e8206$var$POPPER_NAME2","$cf1ac5d9fe0e8206$var$PopperProvider2","$cf1ac5d9fe0e8206$var$usePopperContext2","$cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d2","$cf1ac5d9fe0e8206$var$ANCHOR_NAME2","$cf1ac5d9fe0e8206$var$PopperContentProvider2","$cf1ac5d9fe0e8206$var$CONTENT_NAME2","$cf1ac5d9fe0e8206$var$PositionContextProvider2","$cf1ac5d9fe0e8206$var$usePositionContext2","$cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc2","onPlaced","$cf1ac5d9fe0e8206$var$anchorCssProperties","$cf1ac5d9fe0e8206$var$transformOrigin2","handlePlaced","$cf1ac5d9fe0e8206$export$be92b6f5f03c0fe92","$cf1ac5d9fe0e8206$export$badac9ada3a0bdf92","import_react56","import_react_dom9","$f1701beae083dbae$export$602eac185826482c2","import_react57","$ea1ef594cf570d83$export$439d29a4e110a1642","$cc7e05a45900e73f$var$OPEN_KEYS","$cc7e05a45900e73f$var$SELECTION_KEYS","$cc7e05a45900e73f$var$Collection","$cc7e05a45900e73f$var$useCollection","$cc7e05a45900e73f$var$createCollectionScope","$e02a7d9cb1dc128c$export$c74125a8e3af6bb22","$cc7e05a45900e73f$var$SELECT_NAME","$cc7e05a45900e73f$var$createSelectContext","$cc7e05a45900e73f$var$usePopperScope","$cc7e05a45900e73f$var$SelectProvider","$cc7e05a45900e73f$var$useSelectContext","$cc7e05a45900e73f$var$SelectNativeOptionsProvider","$cc7e05a45900e73f$var$useSelectNativeOptionsContext","$cc7e05a45900e73f$export$3ac1e88a1c0b9f1","__scopeSelect","$cc7e05a45900e73f$var$TRIGGER_NAME","isDisabled","enabledItems","triggerPointerDownPosRef","pageY","$cc7e05a45900e73f$export$e288731fd71264f0","placeholder2","valueProps","$cc7e05a45900e73f$var$VALUE_NAME","onValueNodeHasChildrenChange","hasChildren","onValueNodeChange","$cc7e05a45900e73f$export$99b400cabb58c515","iconProps","$cc7e05a45900e73f$export$c973a4b3cb86a03d","$cc7e05a45900e73f$var$CONTENT_NAME","fragment","setFragment","DocumentFragment","$cc7e05a45900e73f$var$SelectContentImpl","$cc7e05a45900e73f$var$SelectContentProvider","$cc7e05a45900e73f$var$useSelectContentContext","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","focusFirst","firstItem","restItems","lastItem","scrollIntoView","block","focusSelectedItem","handlePointerMove","_triggerPointerDownPo","_triggerPointerDownPo2","_triggerPointerDownPo3","_triggerPointerDownPo4","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","$cc7e05a45900e73f$var$SelectPopperPosition","$cc7e05a45900e73f$var$SelectItemAlignedPosition","popperContentProps","onViewportChange","_context$trigger","onContextMenu","flexDirection","popperProps","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","valueNode","triggerRect","valueNodeRect","itemTextRect","minContentWidth","clampedLeft","$cc7e05a45900e73f$var$CONTENT_MARGIN","contentWidth","clampedRight","itemsHeight","contentStyles","contentBorderTopWidth","borderTopWidth","contentPaddingTop","contentBorderBottomWidth","borderBottomWidth","contentPaddingBottom","paddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","clampedTriggerMiddleToBottomEdge","isFirstItem","clampedTopEdgeToTriggerMiddle","minHeight","maxHeight","handleScrollButtonChange","$cc7e05a45900e73f$var$SelectViewportProvider","onScrollButtonChange","boxSizing","$cc7e05a45900e73f$var$useSelectViewportContext","$cc7e05a45900e73f$export$9ed6e7b40248d36d","viewportProps","$cc7e05a45900e73f$var$VIEWPORT_NAME","viewportContext","prevScrollTopRef","dangerouslySetInnerHTML","__html","onScroll","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","justifyContent","$cc7e05a45900e73f$var$GROUP_NAME","$cc7e05a45900e73f$var$SelectItemContextProvider","$cc7e05a45900e73f$var$useSelectItemContext","$cc7e05a45900e73f$var$ITEM_NAME","$cc7e05a45900e73f$export$13ef48a934230896","textValueProp","setTextValue","_contentContext$itemR","textId","onItemTextChange","prevTextValue","_node$textContent","_contentContext$onIte","_contentContext$onIte2","_contentContext$searc","$cc7e05a45900e73f$export$3572fb0fb821ff49","itemTextProps","$cc7e05a45900e73f$var$ITEM_TEXT_NAME","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","_contentContext$itemT","nativeOption","onNativeOptionAdd","onNativeOptionRemove","valueNodeHasChildren","$cc7e05a45900e73f$export$d8117927658af6d7","$cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME","canScrollUp1","setCanScrollUp","$cc7e05a45900e73f$var$SelectScrollButtonImpl","onAutoScroll","$cc7e05a45900e73f$export$ff951e476c12189","$cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME","canScrollDown1","setCanScrollDown","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","clearInterval","_activeItem$ref$curre","flexShrink","_contentContext$onIte3","$cc7e05a45900e73f$var$BubbleSelect","selectProps","HTMLSelectElement","$cc7e05a45900e73f$export$ef9b1a59e592288f","valueProp","autoComplete","setValueNode","setValueNodeHasChildren","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","optionsSet","$cc7e05a45900e73f$export$b2af6c9944296213","import_jsx_runtime47","PrimaryTools","PrimaryTools2","handleSetColor","handleToolClick","selectTool","activeGeomId","setActiveGeomId","prevId","import_jsx_runtime48","StatusBar","StatusBar2","import_jsx_runtime49","AppUI","AppUI2","React71","import_react91","import_react64","import_jsx_runtime50","isWhiteboardPage","queryBlockByUUID","Breadcrumb","PageName","iconName","linkType","blockContent","slicedContent","pageName","levelLimit","blockId","endSeparator","import_react86","p3","INFO","v3","S2","VIRTUOSO_LOG_LEVEL","logLevel","y3","scrollContainerState","headerHeight","fixedHeaderHeight","fixedFooterHeight","footerHeight","smoothScrollTargetReached","react18ConcurrentRendering","statefulScrollTop","deviation","scrollingInProgress","K","recalcInProgress","oe","re","sizes","ranges","prevIndex","sizeRanges","defaultItemSize","fixedItemSize","unshiftWith","shiftWith","shiftWithOffset","beforeUnshiftWith","listRefresh","statefulTotalCount","trackItemSizes","itemSize","le","g5","C5","scrollToIndex","ue","atBottom","notAtBottomBecause","ce","scrollTopDelta","atBottomBecause","jump","prevScrollTop","isScrolling","isAtTop","isAtBottom","atBottomState","atTopStateChange","atBottomStateChange","scrollDirection","atBottomThreshold","atTopThreshold","scrollVelocity","lastJumpDueToItemResize","me","propsReady","didMount","de","scrolledToInitialItem","initialTopMostItemIndex","pe","shouldFollow","followOutputBehavior","refreshed","followOutput","autoscrollToBottom","ge","groupCounts","topItemsIndexes","Te","listBoundary","overscan","increaseViewportBy","visibleRange","we","ye","o6","S4","I3","T5","w5","x5","b6","i6","l7","s6","u6","p6","listState","endReached","startReached","rangeChanged","itemsRendered","He","initialItemCount","Ee","isSeeking","scrollSeekConfiguration","scrollSeekRangeChanged","Re","topItemCount","Le","totalListHeight","totalListHeightChanged","ke","ze","Be","initialScrollTop","Pe","alignToBottom","paddingTopAddition","Oe","useWindowScroll","customScrollParent","windowScrollContainerState","windowViewportRect","windowScrollTo","Me","We","Ve","Ue","Ae","fixedItemHeight","defaultItemHeight","Ne","Ge","_e","je","Ze","itemContent","groupContent","computeItemKey","headerFooterTag","FooterComponent","HeaderComponent","TopItemListComponent","ListComponent","ItemComponent","GroupComponent","ScrollerComponent","EmptyPlaceholder","ScrollSeekPlaceholder","$e","itemHeight","scrollingStateChange","adjustForPrependedItems","maxHeightCacheSize","footer","header","HeaderContainer","FooterContainer","ItemContainer","ScrollContainer","GroupContainer","ListContainer","emptyComponent","scrollSeek","placeholder","Qe","Xe","overflowAnchor","et","tt","showTopList","gt","ht","vt","marginTop","WebkitOverflowScrolling","ot","rt","at","lt","ct","mt","dt","ft","Ct","St","pt","It","itemWidth","Tt","wt","xt","yt","Lt","viewportDimensions","itemDimensions","gridState","Bt","Pt","itemClassName","listClassName","Ot","Mt","_t","Gt","firstChild","columnGap","Wt","Vt","Ut","viewportWidth","At","Nt","Yt","Kt","jt","Zt","fixedHeaderContent","fixedFooterContent","TableComponent","TableHeadComponent","TableFooterComponent","TableBodyComponent","TableRowComponent","FillerRow","Jt","$t","Qt","Xt","an","rn","ln","en","tn","nn","un","sn","borderSpacing","React54","_Error","PolishedError2","code","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","reduceHexValue","curriedDarken","React53","TextAreaUtils","import_jsx_runtime52","TextLabel","TextLabel2","offsetX","offsetY","rInput","handleBlur","rInnerWrapper","autoCapitalize","autoCorrect","autoSave","autoFocus","spellCheck","datatype","onCut","import_jsx_runtime53","levelToScale","sm","md","lg","xl","xxl","BoxShape","italic","midPoint","handleLabelChange","label2","React55","import_jsx_runtime54","levelToScale2","EllipseShape","font2","import_jsx_runtime55","GroupShape","childSelected","Indicator2","GROUP_PADDING","import_jsx_runtime56","levelToScale3","HighlighterShape","pointsPath","React56","import_jsx_runtime57","levelToScale4","HTMLShape","createRef","newSize","htmlAnchorRef","isMoving","tlEventsEnabled","scaleRatio","React57","import_jsx_runtime58","IFrameShape","url","frameRef","frameBorder","sandbox","React58","import_jsx_runtime59","ImageShape","makeAssetUrl","ass","make_asset_url","href","React60","React59","import_jsx_runtime61","levelToScale5","Arrow","StraightArrow","sw","startArrowHead","endArrowHead","import_jsx_runtime63","levelToScale6","LineShape","font3","mask","textAnchor","React61","import_jsx_runtime64","levelToScale7","LogseqPortalShapeHeader","bgColor","fillGradient","LogseqPortalShape","blockType","originalHeight","isAutoResizing","getHeaderHeight","collapsedHeight","getAutoResizeHeight","AUTO_RESIZE_THRESHOLD","initialHeightCalculated","cpRefContainer","useComponentSize","Page","Block","loaded","setLoaded","newHeight","latestInnerHeight","getInnerHeight","textRendering","componentProps","this.persist","isCreating","portalSelected","screenSize","boundScreenCenter","getScreenPoint","onPageNameChanged","PortalComponent","targetNotFound","showingPortal","portalStyle","LogseqQuickSearch","onAddBlock","edit_block","HEADER_HEIGHT","isPageOrBlock","updateSize","this.getInnerHeight","xe2","import_jsx_runtime65","levelToScale8","simulatePressureSettings","easing","simulatePressure","realPressureSettings","PencilShape","thinning","streamline","smoothing","strokePoints","React62","import_jsx_runtime66","levelToScale9","PolygonShape","font4","React63","import_jsx_runtime67","levelToScale10","TextShape","text2","getAutoSizedBoundingBox","React64","import_jsx_runtime68","VideoShape","controls","import_jsx_runtime69","YOUTUBE_REGEX","_YouTubeShape","embedId","allow","allowFullScreen","fillRule","clipRule","YouTubeShape","React65","import_jsx_runtime70","TWITTER_REGEX","_TweetShape","Tweet","tweetId","TweetShape","React66","import_jsx_runtime71","PdfShape","inflateAsset","stop","BoxTool","EllipseTool","NuEraseTool","HighlighterTool","LineTool","PencilTool","PolygonTool","TextTool","YouTubeTool","CreatingState6","IdleState9","LogseqPortalTool","HTMLTool","IFrameTool","import_server","import_jsx_runtime73","ShapesMap","allBounds","vBounds","SVG_EXPORT_PADDING","translatePoint","_b2","tx","ty","rdx","rdy","transformArr","svgElement","renderToString","React67","import_jsx_runtime74","TextInput","import_jsx_runtime75","LogseqTypeTag","nameMapping","WP","BA","PA","WA","BS","PS","highlightedJSX","keyword","part","frag","useSearch","searchFilter","setResults","dq","_results","setQ","defaultSearchQuery","setSearchFilter","defaultSearchFilter","finishSearching","handleAddBlock","addNewBlock","optionsWrapperRef","focusedOptionIdx","setFocusedOptionIdx","searchResult","prefixIcon","setPrefixIcon","showPanel","setShowPanel","options2","actionIcon","onChosen","addNewWhiteboard","blocks","set_blocks_id","keydownListener","newIndex","optionElement","scrollIntoViewIfNeeded","q3","onMouseEnter","ShapeLinksInput","ShapeLinksInput2","portalType","onRefsChange","noOfLinks","canAddLink","addNewRef","showReferencePanel","marginLeft","import_react89","$6c1fd9e6a8969628$var$createToggleGroupContext","$6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME","$6c1fd9e6a8969628$var$useRovingFocusGroupScope","$6c1fd9e6a8969628$export$af3ec21f6cfb5e30","toggleGroupProps","$6c1fd9e6a8969628$var$ToggleGroupImplSingle","$6c1fd9e6a8969628$var$ToggleGroupImplMultiple","$6c1fd9e6a8969628$var$ToggleGroupValueProvider","$6c1fd9e6a8969628$var$useToggleGroupValueContext","toggleGroupSingleProps","__scopeToggleGroup","onItemActivate","onItemDeactivate","$6c1fd9e6a8969628$var$ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","handleButtonDeactivate","$6c1fd9e6a8969628$var$ToggleGroupContext","$6c1fd9e6a8969628$var$useToggleGroupContext","rovingFocus","$6c1fd9e6a8969628$export$b453109e13abe10b","valueContext","$6c1fd9e6a8969628$var$ITEM_NAME","$6c1fd9e6a8969628$var$ToggleGroupItemImpl","singleProps","typeProps","import_jsx_runtime78","contextBarActionTypes","singleShapeActions","contextBarActionMapping","youtube","tweet","iframe","ellipse","line","pencil","highlighter","image","pdf","AutoResizingAction","LogseqPortalViewModeAction","ScaleLevelAction","isMobile","IFrameSourceAction","onIFrameSourceChange","handleReload","reload","YoutubeLinkAction","onYoutubeLinkChange","open_external_link","TwitterLinkAction","onTwitterLinkChange","EditPdfAction","setCurrentPdf","NoFillAction","SwatchAction","handleSetOpacity","GeometryAction","handleSetGeometry","StrokeTypeAction","StrokeTypeOptions","ArrowModeAction","startValue","endValue","TextStyleAction","bold","LinksAction","shapeType","getContextBarActionTypes","getContextBarActionsForShapes","actionTypes","otherActionTypes","import_jsx_runtime79","_ContextBar","rSize","rContextBar","Actions","Action","React72","import_jsx_runtime80","LSUI","ContextMenu","ContextMenu2","collisionRef","_q","rContent","runAndTransition","developerMode","ContextMenuTrigger","ContextMenuContent","ContextMenuItem","distribute","ContextMenuSeparator","packIntoRectangle","unGroup","doGroup","cut","exportToImage","EXPORT_PADDING","selectAll","deselectAll","setLocked","import_react95","import_jsx_runtime81","links","links2","link","createAssetsFromURL","existingAsset","asset2","createAssetsFromFiles","files","tasks","file","dataurl","saveAsset","createHTMLShape","tryCreateShapesFromDataTransfer","dataTransfer2","tryCreateShapeFromFilePath","tryCreateShapeFromFiles","tryCreateShapeFromPageName","tryCreateShapeFromBlockUUID","tryCreateShapeFromTextPlain","tryCreateShapeFromTextHTML","tryCreateLogseqPortalShapesFromString","tryCreateShapesFromClipboard","createShapesFn","flat","allShapes","newShape","imageAssetsToCreate","tryCreateClonedShapesFromJSON","allSelectedBlocks","get_selected_blocks","blockUUIDs","tryCreateLogseqPortalShapesFromUUID","newShapes2","tryCreateShapeFromURL","tryCreateShapeFromIframeString","decodeURIComponent","assetsToClone","bindingsToCreate","parsedUrl","URL","protocol","allShapesToAdd","filesOnly","wrapUpdate","allAssets","import_jsx_runtime82","tools","AppImpl","AppInner","onQuickAdd","onPersistOnDiff","contextValue","memoRenders","comp"]}},{"offset":{"line":1616,"column":0},"map":{"version":3,"file":"tldraw.js","lineCount":324,"mappings":"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\/ChB,CAAAA,CAAAA,EAA+CgB,IAA\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\/C,CAAAA,EA2C0C+C,IA3C1C\/C,CAAAA,CAAAA,EA2C0C+C,IA3C1C\/C,CAAAA,CAAAA,EA2C0C+C,IA3C1C\/C,CAAAA;AAD0DD,CAsRtD\/C,EApGCsH,uDAAAA,QAAAA,CAEJ5F,wCAFI4F,CAEJ5F;AACK6F,0CAAAA,GAAQC,IAAAA,CAAAA,6CAAAA,CAAAA,+BAAAA,CAA+B9F,wCAA\/B8F,CAARD;AAANE,SACGC,IAAAA,CAAAA,mBAAAA,CAAAA,+BAAAA,CAAOC,IAAAA,CAAAA,oDAAPD,EAAkCH,wCAAlCG,CADHD;AADC\/F,CAkGG1B,EA9FC4H,qDAAAA,QAAAA,CAEJlG,wEAFIkG,CAEJlG;AACDmG,MAAMC,uBAAQD,IAAAA,CAAAA,+BAAArF,CAAAA,+BAAAqF,CAAS7F,IAAAA,CAAAA,6BAAD6F,CAAgBnG,wEAAhBmG,CAARA,CAAdA;AACMN,0EAAAA,GAAQD,oDAADO,CAAuBnG,wEAAvBmG,CAAPN;AACAQ,0EAAAA,GAAatD,IAAAA,CAAAA,mBAAAA,CAAAA,+BAAAA,CAAOoD,QAAAA,CAAKhC,mBAALgC,CAAKhC;AAAOgC,WAACG,IAAAA,CAAAA,iBAAAA,CAAAA,+BAAAA,CAAEF,oBAAFE,EAAUH,IAAAA,CAAAA,+BAAArF,CAAAA,+BAAAqF,CAAQA,IAAAA,CAAAA,sCAAArF,CAAAA,+BAAAqF,CAAehC,mBAAfgC,CAARA,CAAVG,CAADH;AAAPhC,GAAZpB,EAA+D8C,wEAA\/D9C,CAAbsD;AAA4ER,MAC5EU,yBAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAAA,+BAAAA,CAAAA,IAAAA,CAAAA,uBAAAA,EAC0B3H,IAAAA,CAAAA,gBAAAA,CAAAA,+BAADuH,CAAKA,QAAAA,CAAKhC,mBAALgC,CAEJrE;AAFgBqE,WAAAK,IAAAA,CAAAA,mBAAApE,CAAAA,+BAAA+D,CAAAhC,mBAAAgC,EAAAA,IAAAzC,IAAAA,CAAAA,6BAAAyC,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAxC,IAAAA,CAAAA,wCAAAwC,EAAAA,CAAAA,IAAAA,CAAAA,oCAAAA,EAAAA,IAAAA,CAAAA,+BAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,IAAAA,CAAAA;AAEhBrE,GAFDqE,EADAE,wEACAF,CADzBI,CAAAA,CAD4EV;AAK5EY,0EAAAA,GAAoBC,IAAAA,CAAAA,mBAAAjI,CAAAA,+BAAA0H,CAAAA,QAAAA,CAAAQ,4BAAAR,CAACH;AAAQY,gCAAAA,GAAqBT,IAAAA,CAAAA,+BAAArF,CAAAA,+BAAAqF,CAAAQ,4BAAAR,CAArBS;AAAAT,WAAAU,sBAAA\/F,CAAAA,+BAAAqF,GAAAU,sBAAA\/F,CAAAA,+BAAAqF,CAAAS,4BAAAT,CAAAA,GAAAS,sBAAAA,CAAAA,IAAAA,CAAAA,IAAAA,EAAAA,4BAAAA,CAAAT;AAARH,GAADG,EAA0CE,wEAA1CF,CAApBM;AAPNN,SAQS5C,IAAAA,CAAAA,gBAAD4C,CAAKM,wEAALN,CARRA,GAQmCW,IAAAA,CAAAA,kBAAAA,CAAML,wEAANK,CARnCX,GAQEA,IARFA;AADCnG,CA4FG1B,EKgzCAyI,gDAAAA,QAAAA,CACH3D,iBADG2D,EACE\/G,sBADF+G,CACE\/G;AADRgH,SAIQpI,IAAAA,CAAAA,gBAAAA,CAAAA,+BAAAA,CAAIoI,QAAAA,CAAAC,yBAAAD,CAAAC;AAAAA,QAAAC,yCAAAlF,IAAAA,CAAAA,8BAAAgF,CAAAC,yBAAAD,CAAAC;AAAAC,6BAAAA,GAAAhF,IAAAA,CAAAA,gBAAAA,CAAAA,+BAAA8E,CAAAE,sCAAAF,EAAAA,IAAAA,CAAAA,oCAAAA,CAAAE;AAAmBC,0CAAAA,GAAnBjF,IAAAA,CAAAA,gBAAAA,CAAAA,+BAAA8E,CAAAE,sCAAAF,EAAAA,IAAAA,CAAAA,0CAAAA,CAAmBG;AAAnBH,WAAAA,IAAAzG,IAAAA,CAAAA,+BAAAyG,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,EAAArC,IAAAA,CAAAA,gBAAA7D,CAAAA,+BAAAkG,CACYG,yBADZH,CAAAA,EACYG,IAAAA,CAAAA,yBADZH,EAEUvD,IAAAA,CAAAA,mBAAAhF,CAAAA,+BAAAuI,CAAAhC,sCAAAgC,EAAAA,IAAAtD,IAAAA,CAAAA,6BAAAsD,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAArD,IAAAA,CAAAA,wCAAAqD,EAAAA,CAAAA,IAAAA,CAAAA,+CAAAA,EAAQhC,IAAAA,CAAAA,yBAARgC,CAAAA,EAAQhC,IAARgC,CAAAA,CAFVA,CAAAA,EAEkBhC,IAFlBgC,CAAAA;AAAAC,GAAJrI,EADDiE,IAAAA,CAAAA,mBAAApE,CAAAA,+BAAAuI,CAAAA,QAAAA,CAAAI,mBAAAJ,CAACjE;AAADiE,WAASA,IAAAA,CAAAA,+CAAAlG,CAAAA,+BAAAkG,CAAsBA,IAAAA,CAAAA,0CAAAlG,CAAAA,+BAAAkG,CAAAI,mBAAAJ,CAAtBA,CAATA;AAACjE,GAADiE,EADAK,IAAAA,CAAAA,6CAAAjF,CAAAA,+BAAA4E,CAAA5D,iBAAA4D,EAAAhG,sBAAAgG,EAAAA,IAAAzG,IAAAA,CAAAA,+BAAAyG,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,wBAAAA,EAAAA,IAAAtD,IAAAA,CAAAA,6BAAAsD,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAArD,IAAAA,CAAAA,wCAAAqD,EAAAA,CAAAA,IAAAA,CAAAA,oCAAAA,EAA+BhH,IAAAA,CAAAA,0CAA\/BgH,CAAAA,EAA+BhH,IAA\/BgH,CAAAA,CAAAA,EAA+BhH,IAA\/BgH,CAAAA,CACAA,CACCpI,CAJRoI;AACQhH,CLjzCF1B,EAvOAgJ,2DAAAA,QAAAA,CAAsBtH,sBAAtBsH,EAAoCpG,oEAApCoG,EAAwCjG,+EAAxCiG,CAAwCjG;AAC5CkG,MAAMhJ,gEAAaiJ,IAAAA,CAAAA,mBAAAA,CAAQV,IAAAA,CAAAA,kBAAAA,CAAM5F,oEAASA,CAAAA,KAAf4F,CAARU,CAAnBD,EACME,+FAAO5I,6DAAcN,CAAAA,MAD3BgJ,EAEMG,kGAAYpH,IAAAA,CAAAA,6BAADiH,CAAgBvH,sBAAhBuH,CAFjBA;AAGMI,iGAAAA,GAAkBlE,IAAAA,CAAAA,mBAAAhF,CAAAA,+BAAA8I,CAAAK,+FAAAL,EAAAA,IAAA7D,IAAAA,CAAAA,6BAAA6D,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAA5D,IAAAA,CAAAA,wCAAA4D,EAAAA,CAAAA,IAAAA,CAAAA,0CAAAA,EAAAA,IAAAA,CAAAA,8CAAAA,EAAAA,IAAAA,CAAAA,qCAAAA,CAAAA,EAAQG,IAARH,CAAAA,CAAlBI;AAA0BD,MAC1BG,6BAAsBnG,IAAAA,CAAAA,mBAAD6F,CAAQI,+FAARJ,EAA2B5F,IAAAA,CAAAA,kBAAAA,CAAAA,+BAAD4F,CAAQO,IAAAA,CAAAA,kBAADP,CAAOI,+FAAPJ,CAAPA,CAA1BA,CADKG;AAE1BvG,8FAAAA,GAAeW,IAAAA,CAAAA,gBAADyF,CAAMQ,IAAAA,CAAAA,wBAAAA,CAAAA,+BAADR,CAAaA,QAAAA,CAAKS,iBAALT,EAAS\/C,iBAAT+C,CAAS\/C;AAAT+C,QACAjF,mBAAGkC,iBAAMA,CAAAA,EADT+C;AACNA,WAAAA,IAAAhH,IAAAA,CAAAA,+BAAAgH,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,EAAAjF,gBAAAiF,EAAAA,IAAAA,CAAAA,yBAAAA,EAEejB,IAAAA,CAAAA,iBAAAA,CAAAA,+BAADiB,CAAGS,iBAAHT,EAAQrF,IAAAA,CAAAA,gBAAAA,CAAAA,+BAAAA,CAAI2F,0BAAJ3F,EAAyBI,gBAAzBJ,CAARqF,CAAJA,GACW\/C,iBAAAA,CAAAA,KADX+C,GAEEU,IAACC,CAAAA,GAADX,EAJZA,CAAAA,EAIaW,IAJbX,CAAAA;AADe\/C,GAAtB+C,EAKqCE,4FALrCF,CAALA,CAAdpG;AAKwDsG,MACxDrE,qBAAMC,IAAAA,CAAAA,kCAADkE,EADmDE;AAExDrG,iGAAAA,GAAamG,QAAAA,EAAAA;AAAAA,QAAA1G,iCACC4C,IAAAA,CAAAA,mBAAAhF,CAAAA,+BAAA8I,CMgzCnBY,IAAAA,CAAAA,mBAAAA,CNhzC4BC,IAAAA,CAAAA,sDMgzC5BD,CNhzCmBZ,EAASa,IAAAA,IAAAA,CAAAA,6BAAAA,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,IAAAA,CAAAA,wCAAAA,EAAAA,CAAoBhF,kBAApBgF,EAAyBpI,sBAAzBoI,CAAAA,EAAyBpI,IAAzBoI,CAATb,CADDA;AAAAA,WAAAxG,IAAAA,CAAAA,mBAAAwG,CAAA1G,8BAAA0G,CAAAA,GAAA1G,8BAAA0G,GAEEzF,IAAAA,CAAAA,gBAAAA,CACStD,IAAAA,CAAAA,gBAAAC,CAAAA,+BAAA8I,CAAAA,QAAAA,CAAAc,mBAAAd,CAAC3I;AAAD2I,aAAMe,IAAAA,CAAAA,mBAAAlG,CAAAA,+BAAAmF,CAAAc,mBAAAd,EAACgB,IAAAA,CAAAA,sBAADhB,EAAciB,IAAAA,CAAAA,gBAAdjB,CAANA;AAAC3I,KAAD2I,EADCR,6CAAAA,CAA+B3D,kBAA\/B2D,EAAoC\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\/D,CANrB0D;AAQS\/C,+GAAAA,GAAQqD,IAAAA,CAAAA,2CAAAA,CAAapD,4FAAboD,EAAwBjF,2FAAxBiF,CAARrD;AACAsD,kGAAAA,GAAWC,IAAAA,CAAAA,0DAADR,CAAqC9C,4FAArC8C,CAAVO;AACA7K,iGAAAA,GAAOsK,IAAAA,CAAAA,0BAAA1J,CAAAA,+BAAA0J,CAASO,4FAATP,CAAPtK;AACA+K,kGAAAA,GAAST,IAAAA,CAAAA,4BAAA1J,CAAAA,+BAAA0J,CAAWO,4FAAXP,CAATS;AAkBgCV,qBAjBHA,CAAAA,0BAAAA,CAAIW,IAAAA,CAAAA,uBAAAV,CAAAA,IAAAjK,IAAAA,CAAAA,+BAAAiK,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,EAAkB\/C,yGAAlB+C,EAAkB\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\/BqG,EAA+BrG,IAAAA,CAAAA,yBAA\/BqG,EAA6CM,kBAA7CN,CAAAA,EAA6CM,IAA7CN,CAAAA,CAHFrM,CAAAqM;AAEiDG,SAFjD\/M,CAAA4M;AAC+CH,OAD\/CzM,CAAA4M;AAAiEG,KAAjE\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\/M,4DAAA+M,CAAAA,GAAA\/M,4DAAA+M,GAGIU,6BAHJV;AAGIU,QACdgC,iCAAcC,IAAAA,CAAAA,uCAAD3C,CAAoB5N,4DAApB4N,CADCU,EAEdkC,iCAAa3B,IAAAA,CAAAA,2CAADjB,CAAwB5N,4DAAxB4N,CAFEU;AAGlBV,WAAA7M,IAAAA,CAAAA,mBAAA6M,CAAM0C,8BAAN1C,CAAAA,GACE7M,IAAAA,CAAAA,mBAAA6M,CAAI4C,8BAAJ5C,CAAAA,GACE6C,IAAAA,CAAAA,yFAAA7C,CAAA5M,4DAAA4M,EAAAA,IAAArN,IAAAA,CAAAA,+BAAAqN,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,iCAAAA,EAA4DU,6BAA5DV,CAAAA,EAA4DU,IAA5DV,CAAAA,CADFA,GAEG8C,IAAAA,CAAAA,mFAAAA,CH84BbnC,IAAAA,CAAAA,8EAAAX,CG94B2EU,6BH84B3EV;AAAAA,KAAAA,CAAAA,CG94Ba8C,CAHL9C,GAAAA,IAAAA;AAPCU,GA5BxBV,EAGqBA,QAAAA,CAAK+C,uBAAL\/C,CAAK+C;AACH\/C,WAACQ,IAAAA,CAAAA,uBAAAA,CACCwC,IAAAA,CAAAA,wCAADhD,CAA4ByC,IAAAA,CAAAA,uBAADzC,CAAY+C,uBAAZ\/C,CAA3BA,CADAQ,CAADR;AADG+C,GAH1B\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\/BagO,IAAAA,CAAAA,8EAAA,CH3Wb\/N,IAAAA,CAAAA,kCM\/oBAQ,CAAA8Q,kBAAA9Q,EAAA,UAAAA,CH0\/Ba,EAAA,CAAA,CAAA,CG1\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","sources":["frontend\/handler\/whiteboard.cljs","logseq\/graph_parser\/util.cljs","goog\/object\/object.js","frontend\/db.cljs","frontend\/util.cljc","frontend\/db\/model.cljs","cljs\/core.cljs","frontend\/state.cljs","frontend\/extensions\/tldraw.cljs","frontend\/search.cljs","datascript\/core.cljc","shadow\/loader.js","shadow\/module\/tldraw\/prepend.js","frontend\/tldraw-logseq.js","frontend\/rum.cljs","frontend\/config.cljs","goog\/base.js"],"sourcesContent":["(ns frontend.handler.whiteboard\n \"Whiteboard related handlers\"\n (:require [datascript.core :as d]\n [dommy.core :as dom]\n [frontend.db :as db]\n [frontend.db.model :as model]\n [frontend.db.utils :as db-utils]\n [frontend.handler.editor :as editor-handler]\n [frontend.handler.route :as route-handler]\n [frontend.modules.editor.undo-redo :as history]\n [frontend.modules.outliner.core :as outliner]\n [frontend.modules.outliner.file :as outliner-file]\n [frontend.state :as state]\n [frontend.config :as config]\n [frontend.storage :as storage]\n [frontend.util :as util]\n [logseq.graph-parser.util :as gp-util]\n [logseq.graph-parser.whiteboard :as gp-whiteboard]\n [promesa.core :as p]\n [goog.object :as gobj]\n [clojure.set :as set]\n [clojure.string :as string]\n [cljs-bean.core :as bean]))\n\n(defn js->clj-keywordize\n [obj]\n (js->clj obj :keywordize-keys true))\n\n(defn shape->block [shape page-name]\n (let [properties {:ls-type :whiteboard-shape\n :logseq.tldraw.shape shape}\n block {:block\/page {:block\/name (util\/page-name-sanity-lc page-name)}\n :block\/parent {:block\/name page-name}\n :block\/properties properties}\n additional-props (gp-whiteboard\/with-whiteboard-block-props block page-name)]\n (merge block additional-props)))\n\n(defn- get-whiteboard-clj [page-name]\n (when (model\/page-exists? page-name)\n (let [page-block (model\/get-page page-name)\n ;; fixme: can we use cache?\n blocks (model\/get-page-blocks-no-cache page-name)]\n [page-block blocks])))\n\n(defn- build-shapes\n [page-block blocks]\n (let [shapes-index (get-in page-block [:block\/properties :logseq.tldraw.page :shapes-index])\n shape-id->index (zipmap shapes-index (range 0 (count shapes-index)))]\n (->> blocks\n (map (fn [block]\n (assoc block :index (get shape-id->index (str (:block\/uuid block)) 0))))\n (filter gp-whiteboard\/shape-block?)\n (map gp-whiteboard\/block->shape)\n (sort-by :index))))\n\n(defn- whiteboard-clj->tldr [page-block blocks]\n (let [id (str (:block\/uuid page-block))\n shapes (build-shapes page-block blocks)\n tldr-page (gp-whiteboard\/page-block->tldr-page page-block)\n assets (:assets tldr-page)\n tldr-page (dissoc tldr-page :assets)]\n (clj->js {:currentPageId id\n :assets (or assets #js[])\n :selectedIds #js[]\n :pages [(merge tldr-page\n {:id id\n :name (:block\/name page-block)\n :shapes shapes})]})))\n\n(defn build-page-block\n [page-name tldraw-page assets shapes-index]\n (let [page-entity (model\/get-page page-name)\n get-k #(gobj\/get tldraw-page %)]\n {:block\/name page-name\n :block\/type \"whiteboard\"\n :block\/properties {:ls-type :whiteboard-page\n :logseq.tldraw.page {:id (get-k \"id\")\n :name (get-k \"name\")\n :bindings (js->clj-keywordize (get-k \"bindings\"))\n :nonce (get-k \"nonce\")\n :assets (js->clj-keywordize assets)\n :shapes-index shapes-index}}\n :block\/updated-at (util\/time-ms)\n :block\/created-at (or (:block\/created-at page-entity)\n (util\/time-ms))}))\n\n(defn- compute-tx\n [^js app ^js tl-page new-id-nonces db-id-nonces page-name replace?]\n (let [assets (js->clj-keywordize (.getCleanUpAssets app))\n new-shapes (.-shapes tl-page)\n shapes-index (map #(gobj\/get % \"id\") new-shapes)\n shape-id->index (zipmap shapes-index (range (.-length new-shapes)))\n upsert-shapes (->> (set\/difference new-id-nonces db-id-nonces)\n (map (fn [{:keys [id]}]\n (-> (.-serialized ^js (.getShapeById tl-page id))\n js->clj-keywordize\n (assoc :index (get shape-id->index id)))))\n (set))\n old-ids (set (map :id db-id-nonces))\n new-ids (set (map :id new-id-nonces))\n created-ids (->> (set\/difference new-ids old-ids)\n (remove string\/blank?)\n (set))\n created-shapes (set (filter #(created-ids (:id %)) upsert-shapes))\n deleted-ids (->> (set\/difference old-ids new-ids)\n (remove string\/blank?))\n repo (state\/get-current-repo)\n deleted-shapes (when (seq deleted-ids)\n (->> (db\/pull-many repo '[*] (mapv (fn [id] [:block\/uuid (uuid id)]) deleted-ids))\n (map (fn [b]\n (get-in b [:block\/properties :logseq.tldraw.shape])))))\n deleted-shapes-tx (mapv (fn [id] [:db\/retractEntity [:block\/uuid (uuid id)]]) deleted-ids)\n with-timestamps (fn [block]\n (if (contains? created-ids (str (:block\/uuid block)))\n (assoc block :block\/updated-at (util\/time-ms))\n (outliner\/block-with-timestamps block)))\n changed-shapes (set\/difference upsert-shapes created-shapes)\n prev-changed-blocks (when (seq changed-shapes)\n (db\/pull-many repo '[*] (mapv (fn [shape]\n [:block\/uuid (uuid (:id shape))]) changed-shapes)))]\n {:page-block (build-page-block page-name tl-page assets shapes-index)\n :upserted-blocks (->> upsert-shapes\n (map #(shape->block % page-name))\n (map with-timestamps))\n :delete-blocks deleted-shapes-tx\n :metadata {:whiteboard\/transact? (not replace?)\n :replace? replace?\n :data {:page-name page-name\n :deleted-shapes deleted-shapes\n :new-shapes created-shapes\n :changed-shapes changed-shapes\n :prev-changed-blocks prev-changed-blocks}}}))\n\n(defonce *last-shapes-nonce (atom {}))\n(defn transact-tldr-delta! [page-name ^js app replace?]\n (let [tl-page ^js (second (first (.-pages app)))\n shapes (.-shapes ^js tl-page)\n page-block (model\/get-page page-name)\n prev-shapes-index (get-in page-block [:block\/properties :logseq.tldraw.page :shapes-index])\n shape-id->prev-index (zipmap prev-shapes-index (range (count prev-shapes-index)))\n new-id-nonces (set (map-indexed (fn [idx shape]\n (let [id (.-id shape)]\n {:id id\n :nonce (if (= idx (get shape-id->prev-index id))\n (.-nonce shape)\n (js\/Date.now))})) shapes))\n repo (state\/get-current-repo)\n db-id-nonces (or\n (get-in @*last-shapes-nonce [repo page-name])\n (set (->> (model\/get-whiteboard-id-nonces repo page-name)\n (map #(update % :id str)))))\n {:keys [page-block upserted-blocks delete-blocks metadata]}\n (compute-tx app tl-page new-id-nonces db-id-nonces page-name replace?)\n tx-data (concat delete-blocks [page-block] upserted-blocks)\n new-shapes (get-in metadata [:data :new-shapes])\n deleted-shapes (get-in metadata [:data :deleted-shapes])\n metadata' (cond\n ;; group\n (some #(= \"group\" (:type %)) new-shapes)\n (assoc metadata :whiteboard\/op :group)\n\n ;; ungroup\n (and (not-empty deleted-shapes) (every? #(= \"group\" (:type %)) deleted-shapes))\n (assoc metadata :whiteboard\/op :un-group)\n\n ;; arrow\n (some #(and (= \"line\" (:type %))\n (= \"arrow \" (:end (:decorations %)))) new-shapes)\n\n (assoc metadata :whiteboard\/op :new-arrow)\n :else\n metadata)\n metadata' (if (seq (concat upserted-blocks delete-blocks))\n metadata'\n (assoc metadata :undo? true))]\n (swap! *last-shapes-nonce assoc-in [repo page-name] new-id-nonces)\n (if (contains? #{:new-arrow} (:whiteboard\/op metadata'))\n (state\/set-state! :whiteboard\/pending-tx-data\n {:tx-data tx-data\n :metadata metadata'})\n (let [pending-tx-data (:whiteboard\/pending-tx-data @state\/state)\n tx-data' (concat (:tx-data pending-tx-data) tx-data)\n metadata'' (merge metadata' (:metadata pending-tx-data))]\n (state\/set-state! :whiteboard\/pending-tx-data {})\n (db-utils\/transact! repo tx-data' metadata'')))))\n\n(defn get-default-new-whiteboard-tx\n [page-name id]\n [#:block{:name (util\/page-name-sanity-lc page-name),\n :original-name page-name\n :type \"whiteboard\",\n :properties\n {:ls-type :whiteboard-page,\n :logseq.tldraw.page\n {:id id,\n :name page-name,\n :ls-type :whiteboard-page,\n :bindings {},\n :nonce 1,\n :assets []}},\n :updated-at (util\/time-ms),\n :created-at (util\/time-ms)}])\n\n(defn get-whiteboard-entity [page-name]\n (db-utils\/entity [:block\/name (util\/page-name-sanity-lc page-name)]))\n\n(defn create-new-whiteboard-page!\n ([]\n (create-new-whiteboard-page! nil))\n ([name]\n (let [uuid (or (and name (parse-uuid name)) (d\/squuid))\n name (or name (str uuid))]\n (db\/transact! (get-default-new-whiteboard-tx name (str uuid)))\n (let [entity (get-whiteboard-entity name)\n tx (assoc (select-keys entity [:db\/id])\n :block\/uuid uuid)]\n (db-utils\/transact! [tx])\n (let [page-entity (get-whiteboard-entity name)]\n (when (and page-entity (nil? (:block\/file page-entity)))\n (outliner-file\/sync-to-file page-entity)))))))\n\n(defn create-new-whiteboard-and-redirect!\n ([]\n (create-new-whiteboard-and-redirect! (str (d\/squuid))))\n ([name]\n (when-not config\/publishing?\n (create-new-whiteboard-page! name)\n (route-handler\/redirect-to-whiteboard! name {:new-whiteboard? true}))))\n\n(defn ->logseq-portal-shape\n [block-id point]\n {:blockType (if (parse-uuid (str block-id)) \"B\" \"P\")\n :id (str (d\/squuid))\n :compact false\n :pageId (str block-id)\n :point point\n :size [400, 0]\n :type \"logseq-portal\"})\n\n(defn add-new-block-portal-shape!\n \"Given the block uuid, add a new shape to the referenced block.\n By default it will be placed next to the given shape id\"\n [block-uuid source-shape & {:keys [link? bottom?]}]\n (when-let [app (state\/active-tldraw-app)]\n (let [^js api (.-api app)\n point (-> (.getShapeById app source-shape)\n (.-bounds)\n ((fn [bounds] (if bottom?\n [(.-minX ^js bounds) (+ 64 (.-maxY ^js bounds))]\n [(+ 64 (.-maxX ^js bounds)) (.-minY ^js bounds)]))))\n shape (->logseq-portal-shape block-uuid point)]\n (when (uuid? block-uuid) (editor-handler\/set-blocks-id! [block-uuid]))\n (.createShapes api (clj->js shape))\n (when link?\n (.createNewLineBinding api source-shape (:id shape))))))\n\n(defn page-name->tldr!\n ([page-name]\n (clj->js\n (if page-name\n (if-let [[page-block blocks] (get-whiteboard-clj page-name)]\n (whiteboard-clj->tldr page-block blocks)\n (create-new-whiteboard-page! page-name))\n (create-new-whiteboard-page! nil)))))\n\n(defn- get-whiteboard-blocks\n \"Given a page, return all the logseq blocks (exclude all shapes)\"\n [page-name]\n (let [blocks (model\/get-page-blocks-no-cache page-name)]\n (remove gp-whiteboard\/shape-block? blocks)))\n\n(defn- get-last-root-block\n \"Get the last root Logseq block in the page. Main purpose is to calculate the new :block\/left id\"\n [page-name]\n (let [page-id (:db\/id (model\/get-page page-name))\n blocks (get-whiteboard-blocks page-name)\n root-blocks (filter (fn [block] (= page-id (:db\/id (:block\/parent block)))) blocks)\n root-block-left-ids (->> root-blocks\n (map (fn [block] (get-in block [:block\/left :db\/id] nil)))\n (remove nil?)\n (set))\n blocks-with-no-next (remove #(root-block-left-ids (:db\/id %)) root-blocks)]\n (when (seq blocks-with-no-next) (first blocks-with-no-next))))\n\n(defn add-new-block!\n [page-name content]\n (let [uuid (d\/squuid)\n page-entity (model\/get-page page-name)\n last-root-block (or (get-last-root-block page-name) page-entity)\n tx {:block\/left (select-keys last-root-block [:db\/id])\n :block\/uuid uuid\n :block\/content (or content \"\")\n :block\/format :markdown ;; fixme to support org?\n :block\/page {:block\/name (util\/page-name-sanity-lc page-name)\n :block\/original-name page-name}\n :block\/parent {:block\/name page-name}}]\n (db-utils\/transact! [tx])\n uuid))\n\n(defn inside-portal?\n [target]\n (some? (dom\/closest target \".tl-logseq-cp-container\")))\n\n(defn closest-shape\n [target]\n (when-let [shape-el (dom\/closest target \"[data-shape-id]\")]\n (.getAttribute shape-el \"data-shape-id\")))\n\n(defn get-onboard-whiteboard-edn\n []\n (p\/let [^js res (js\/fetch \".\/whiteboard\/onboarding.edn\") ;; do we need to cache it?\n text (.text res)\n edn (gp-util\/safe-read-string text)]\n edn))\n\n(defn clone-whiteboard-from-edn\n \"Given a tldr, clone the whiteboard page into current active whiteboard\"\n ([edn]\n (when-let [app (state\/active-tldraw-app)]\n (clone-whiteboard-from-edn edn (.-api app))))\n ([{:keys [pages blocks]} api]\n (let [page-block (first pages)\n ;; FIXME: should also clone normal blocks\n shapes (build-shapes page-block blocks)\n tldr-page (gp-whiteboard\/page-block->tldr-page page-block)\n assets (:assets tldr-page)\n bindings (:bindings tldr-page)]\n (.cloneShapesIntoCurrentPage ^js api (clj->js {:shapes shapes\n :assets assets\n :bindings bindings})))))\n(defn should-populate-onboarding-whiteboard?\n \"When there is no whiteboard, or there is only one whiteboard that has the given page name, we should populate the onboarding shapes\"\n [page-name]\n (let [whiteboards (model\/get-all-whiteboards (state\/get-current-repo))]\n (and (or (empty? whiteboards)\n (and\n (= 1 (count whiteboards))\n (= page-name (:block\/name (first whiteboards)))))\n (not (state\/get-onboarding-whiteboard?)))))\n\n(defn populate-onboarding-whiteboard\n [api]\n (when (some? api)\n (-> (p\/let [edn (get-onboard-whiteboard-edn)]\n (clone-whiteboard-from-edn edn api)\n (state\/set-onboarding-whiteboard! true))\n (p\/catch\n (fn [e] (js\/console.warn \"Failed to populate onboarding whiteboard\" e))))))\n\n(defn- delete-shapes!\n [^js api shapes]\n (apply (.-deleteShapes api) (map :id shapes)))\n\n(defn- create-shapes!\n [^js api shapes]\n (apply (.-createShapes api) (bean\/->js shapes)))\n\n(defn- update-shapes!\n [^js api shapes]\n (apply (.-updateShapes api) (bean\/->js shapes)))\n\n(defn- select-shapes\n [^js api ids]\n (apply (.-selectShapes api) ids))\n\n(defn cleanup!\n [^js tl-page]\n (let [shapes (.-shapes tl-page)]\n (.cleanup tl-page (map #(.-id %) shapes))))\n\n(defn update-bindings!\n [^js tl-page page-name]\n (when-let [page (db\/entity [:block\/name page-name])]\n (let [bindings (get-in page [:block\/properties :logseq.tldraw.page :bindings])]\n (when (seq bindings)\n (.updateBindings tl-page (bean\/->js bindings))))))\n\n(defn update-shapes-index!\n [^js tl-page page-name]\n (when-let [page (db\/entity [:block\/name page-name])]\n (let [shapes-index (get-in page [:block\/properties :logseq.tldraw.page :shapes-index])]\n (when (seq shapes-index)\n (.updateShapesIndex tl-page (bean\/->js shapes-index))))))\n\n(defn undo!\n [{:keys [tx-meta]}]\n (history\/pause-listener!)\n (try\n (when-let [app (state\/active-tldraw-app)]\n (let [{:keys [page-name deleted-shapes new-shapes changed-shapes prev-changed-blocks]} (:data tx-meta)\n whiteboard-op (:whiteboard\/op tx-meta)\n ^js api (.-api app)\n tl-page ^js (second (first (.-pages app)))]\n (when api\n (update-bindings! tl-page page-name)\n (update-shapes-index! tl-page page-name)\n (case whiteboard-op\n :group\n (do\n (select-shapes api (map :id new-shapes))\n (.unGroup api))\n :un-group\n (do\n (select-shapes api (mapcat :children deleted-shapes))\n (.doGroup api))\n (do\n (when (seq deleted-shapes)\n (create-shapes! api deleted-shapes))\n (when (seq new-shapes)\n (delete-shapes! api new-shapes))\n (when (seq changed-shapes)\n (let [prev-shapes (map (fn [b] (get-in b [:block\/properties :logseq.tldraw.shape]))\n prev-changed-blocks)]\n (update-shapes! api prev-shapes))))))))\n (catch :default e\n (js\/console.error e)))\n (history\/resume-listener!))\n\n(defn redo!\n [{:keys [tx-meta]}]\n (history\/pause-listener!)\n (try\n (when-let [app (state\/active-tldraw-app)]\n (let [{:keys [page-name deleted-shapes new-shapes changed-shapes]} (:data tx-meta)\n whiteboard-op (:whiteboard\/op tx-meta)\n ^js api (.-api app)\n tl-page ^js (second (first (.-pages app)))]\n (when api\n (update-bindings! tl-page page-name)\n (update-shapes-index! tl-page page-name)\n (case whiteboard-op\n :group\n (do\n (select-shapes api (mapcat :children new-shapes))\n (.doGroup api))\n :un-group\n (do\n (select-shapes api (map :id deleted-shapes))\n (.unGroup api))\n (do\n (when (seq deleted-shapes)\n (delete-shapes! api deleted-shapes))\n (when (seq new-shapes)\n (create-shapes! api new-shapes))\n (when (seq changed-shapes)\n (update-shapes! api changed-shapes)))))))\n (catch :default e\n (js\/console.error e)))\n (history\/resume-listener!))\n\n(defn onboarding-show\n []\n (when (not (or (state\/sub :whiteboard\/onboarding-tour?)\n (config\/demo-graph?)\n (util\/mobile?)))\n (state\/pub-event! [:whiteboard\/onboarding])\n (state\/set-state! [:whiteboard\/onboarding-tour?] true)\n (storage\/set :whiteboard-onboarding-tour? true)))\n","(ns logseq.graph-parser.util\n \"Util fns shared between graph-parser and rest of app. Util fns only rely on\n clojure standard libraries.\"\n (:require [cljs.reader :as reader]\n [clojure.edn :as edn]\n [clojure.string :as string]\n [clojure.walk :as walk]\n [logseq.graph-parser.log :as log]))\n\n(defn safe-decode-uri-component\n [uri]\n (try\n (js\/decodeURIComponent uri)\n (catch :default _\n (log\/error :decode-uri-component-failed uri)\n uri)))\n\n(defn safe-url-decode\n [string]\n (if (string\/includes? string \"%\")\n (some-> string str safe-decode-uri-component)\n string))\n\n(defn path-normalize\n \"Normalize file path (for reading paths from FS, not required by writing)\n Keep capitalization senstivity\"\n [s]\n (.normalize s \"NFC\"))\n\n(defn remove-nils\n \"remove pairs of key-value that has nil value from a (possibly nested) map or\n coll of maps.\"\n [nm]\n (walk\/postwalk\n (fn [el]\n (if (map? el)\n (into {} (remove (comp nil? second)) el)\n el))\n nm))\n\n(defn remove-nils-non-nested\n \"remove pairs of key-value that has nil value from a map (nested not supported).\"\n [nm]\n (into {} (remove (comp nil? second)) nm))\n\n(defn fast-remove-nils\n \"remove pairs of key-value that has nil value from a coll of maps.\"\n [nm]\n (keep (fn [m] (if (map? m) (remove-nils-non-nested m) m)) nm))\n\n(defn split-first [pattern s]\n (when-let [first-index (string\/index-of s pattern)]\n [(subs s 0 first-index)\n (subs s (+ first-index (count pattern)) (count s))]))\n\n(defn split-last [pattern s]\n (when-let [last-index (string\/last-index-of s pattern)]\n [(subs s 0 last-index)\n (subs s (+ last-index (count pattern)) (count s))]))\n\n(defn tag-valid?\n [tag-name]\n (when (string? tag-name)\n (not (re-find #\"[# \\t\\r\\n]+\" tag-name))))\n\n(defn safe-subs\n ([s start]\n (let [c (count s)]\n (safe-subs s start c)))\n ([s start end]\n (let [c (count s)]\n (subs s (min c start) (min c end)))))\n\n(defn unquote-string\n [v]\n (string\/trim (subs v 1 (dec (count v)))))\n\n(defn wrapped-by-quotes?\n [v]\n (and (string? v) (>= (count v) 2) (= \"\\\"\" (first v) (last v))))\n\n(defn url?\n \"Test if it is a `protocol:\/\/`-style URL.\n\n NOTE: Can not handle mailto: links, use this with caution.\"\n [s]\n (and (string? s)\n (try\n (not (contains? #{nil \"null\"} (.-origin (js\/URL. s))))\n (catch :default _e\n false))))\n\n(defn json->clj\n [json-string]\n (-> json-string\n (js\/JSON.parse)\n (js->clj :keywordize-keys true)))\n\n(defn zero-pad\n \"Copy of frontend.util\/zero-pad. Too basic to couple to main app\"\n [n]\n (if (< n 10)\n (str \"0\" n)\n (str n)))\n\n(defn remove-boundary-slashes\n [s]\n (when (string? s)\n (let [s (if (= \\\/ (first s))\n (subs s 1)\n s)]\n (if (= \\\/ (last s))\n (subs s 0 (dec (count s)))\n s))))\n\n(defn split-namespace-pages\n [title]\n (let [parts (string\/split title \"\/\")]\n (loop [others (rest parts)\n result [(first parts)]]\n (if (seq others)\n (let [prev (last result)]\n (recur (rest others)\n (conj result (str prev \"\/\" (first others)))))\n result))))\n\n(defn decode-namespace-underlines\n \"Decode namespace underlines to slashed;\n If continuous underlines, only decode at start;\n Having empty namespace is invalid.\"\n [string]\n (string\/replace string \"___\" \"\/\"))\n\n(defn page-name-sanity\n \"Sanitize the page-name. Unify different diacritics and other visual differences.\n Two objectives:\n 1. To be the same as in the filesystem;\n 2. To be easier to search\"\n [page-name]\n (some-> page-name\n (remove-boundary-slashes)\n (path-normalize)))\n\n(defn make-valid-namespaces\n \"Remove those empty namespaces from title to make it a valid page name.\"\n [title]\n (->> (string\/split title \"\/\")\n (remove empty?)\n (string\/join \"\/\")))\n\n(def url-encoded-pattern #\"(?i)%[0-9a-f]{2}\") ;; (?i) for case-insensitive mode\n\n(defn- tri-lb-title-parsing\n \"Parsing file name under the new file name format\n Avoid calling directly\"\n [file-name]\n (some-> file-name\n (decode-namespace-underlines)\n (string\/replace url-encoded-pattern safe-url-decode)\n (make-valid-namespaces)))\n\n(defn page-name-sanity-lc\n \"Sanitize the query string for a page name (mandate for :block\/name)\"\n [s]\n (page-name-sanity (string\/lower-case s)))\n\n(defn capitalize-all\n [s]\n (some->> (string\/split s #\" \")\n (map string\/capitalize)\n (string\/join \" \")))\n\n\n(defn distinct-by\n \"Copy from medley\"\n [f coll]\n (let [step (fn step [xs seen]\n (lazy-seq\n ((fn [[x :as xs] seen]\n (when-let [s (seq xs)]\n (let [fx (f x)]\n (if (contains? seen fx)\n (recur (rest s) seen)\n (cons x (step (rest s) (conj seen fx)))))))\n xs seen)))]\n (step (seq coll) #{})))\n\n(defn normalize-format\n [format]\n (case (keyword format)\n :md :markdown\n ;; default\n (keyword format)))\n\n(defn path->file-name\n ;; Only for internal paths, as they are converted to POXIS already\n ;; https:\/\/github.com\/logseq\/logseq\/blob\/48b8e54e0fdd8fbd2c5d25b7f1912efef8814714\/deps\/graph-parser\/src\/logseq\/graph_parser\/extract.cljc#L32\n ;; Should be converted to POXIS first for external paths\n [path]\n (if (string\/includes? path \"\/\")\n (last (split-last \"\/\" path))\n path))\n\n(defn path->file-body\n [path]\n (when-let [file-name (path->file-name path)]\n (if (string\/includes? file-name \".\")\n (first (split-last \".\" file-name))\n file-name)))\n\n(defn path->file-ext\n [path-or-file-name]\n (second (re-find #\"(?:\\.)(\\w+)[^.]*$\" path-or-file-name)))\n\n(defn get-format\n \"File path to format keyword, :org, :markdown, etc.\"\n [file]\n (when file\n (normalize-format (keyword (some-> (path->file-ext file) string\/lower-case)))))\n\n(defn get-file-ext\n \"Copy of frontend.util\/get-file-ext. Too basic to couple to main app\"\n [file]\n (and\n (string? file)\n (string\/includes? file \".\")\n (some-> (path->file-ext file) string\/lower-case)))\n\n(defn valid-edn-keyword?\n \"Determine if string is a valid edn keyword\"\n [s]\n (try\n (boolean (and (= \\: (first s))\n (edn\/read-string (str \"{\" s \" nil}\"))))\n (catch :default _\n false)))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;; Keep for backward compatibility ;;\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n;; Rule of dir-ver 0\n;; Source: https:\/\/github.com\/logseq\/logseq\/blob\/e7110eea6790eda5861fdedb6b02c2a78b504cd9\/deps\/graph-parser\/src\/logseq\/graph_parser\/extract.cljc#L35\n(defn legacy-title-parsing\n [file-name-body]\n (let [title (string\/replace file-name-body \".\" \"\/\")]\n (or (safe-decode-uri-component title) title)))\n\n;; Register sanitization \/ parsing fns in:\n;; logseq.graph-parser.util (parsing only)\n;; frontend.util.fs (sanitization only)\n;; frontend.handler.conversion (both)\n(defn title-parsing\n \"Convert file name in the given file name format to page title\"\n [file-name-body filename-format]\n (case filename-format\n :triple-lowbar (tri-lb-title-parsing file-name-body)\n (legacy-title-parsing file-name-body)))\n\n(defn safe-read-string\n ([content]\n (safe-read-string {} content))\n ([opts content]\n (try\n (reader\/read-string opts content)\n (catch :default e\n (log\/error :parse\/read-string-failed e)\n {}))))\n\n;; Copied from Medley\n;; https:\/\/github.com\/weavejester\/medley\/blob\/d1e00337cf6c0843fb6547aadf9ad78d981bfae5\/src\/medley\/core.cljc#L22\n(defn dissoc-in\n \"Dissociate a value in a nested associative structure, identified by a sequence\n of keys. Any collections left empty by the operation will be dissociated from\n their containing structures.\"\n ([m ks]\n (if-let [[k & ks] (seq ks)]\n (if (seq ks)\n (let [v (dissoc-in (get m k) ks)]\n (if (empty? v)\n (dissoc m k)\n (assoc m k v)))\n (dissoc m k))\n m))\n ([m ks & kss]\n (if-let [[ks' & kss] (seq kss)]\n (recur (dissoc-in m ks) ks' kss)\n (dissoc-in m ks))))\n","\/**\n * @license\n * Copyright The Closure Library Authors.\n * SPDX-License-Identifier: Apache-2.0\n *\/\n\n\/**\n * @fileoverview Utilities for manipulating objects\/maps\/hashes.\n *\/\ngoog.module('goog.object');\ngoog.module.declareLegacyNamespace();\n\n\/**\n * Calls a function for each element in an object\/map\/hash.\n * @param {?Object<K,V>} obj The object over which to iterate.\n * @param {function(this:T,V,?,?Object<K,V>):?} f The function to call for every\n * element. This function takes 3 arguments (the value, the key and the\n * object) and the return value is ignored.\n * @param {T=} opt_obj This is used as the 'this' object within f.\n * @return {void}\n * @template T,K,V\n *\/\nfunction forEach(obj, f, opt_obj) {\n for (const key in obj) {\n f.call(\/** @type {?} *\/ (opt_obj), obj[key], key, obj);\n }\n}\n\n\/**\n * Calls a function for each element in an object\/map\/hash. If that call returns\n * true, adds the element to a new object.\n * @param {?Object<K,V>} obj The object over which to iterate.\n * @param {function(this:T,V,?,?Object<K,V>):boolean} f The function to call for\n * every element. This function takes 3 arguments (the value, the key and\n * the object) and should return a boolean. If the return value is true the\n * element is added to the result object. If it is false the element is not\n * included.\n * @param {T=} opt_obj This is used as the 'this' object within f.\n * @return {!Object<K,V>} a new object in which only elements that passed the\n * test are present.\n * @template T,K,V\n *\/\nfunction filter(obj, f, opt_obj) {\n const res = {};\n for (const key in obj) {\n if (f.call(\/** @type {?} *\/ (opt_obj), obj[key], key, obj)) {\n res[key] = obj[key];\n }\n }\n return res;\n}\n\n\/**\n * For every element in an object\/map\/hash calls a function and inserts the\n * result into a new object.\n * @param {?Object<K,V>} obj The object over which to iterate.\n * @param {function(this:T,V,?,?Object<K,V>):R} f The function to call for every\n * element. This function takes 3 arguments (the value, the key and the\n * object) and should return something. The result will be inserted into a\n * new object.\n * @param {T=} opt_obj This is used as the 'this' object within f.\n * @return {!Object<K,R>} a new object with the results from f.\n * @template T,K,V,R\n *\/\nfunction map(obj, f, opt_obj) {\n const res = {};\n for (const key in obj) {\n res[key] = f.call(\/** @type {?} *\/ (opt_obj), obj[key], key, obj);\n }\n return res;\n}\n\n\/**\n * Calls a function for each element in an object\/map\/hash. If any\n * call returns true, returns true (without checking the rest). If\n * all calls return false, returns false.\n * @param {?Object<K,V>} obj The object to check.\n * @param {function(this:T,V,?,?Object<K,V>):boolean} f The function to call for\n * every element. This function takes 3 arguments (the value, the key and\n * the object) and should return a boolean.\n * @param {T=} opt_obj This is used as the 'this' object within f.\n * @return {boolean} true if any element passes the test.\n * @template T,K,V\n *\/\nfunction some(obj, f, opt_obj) {\n for (const key in obj) {\n if (f.call(\/** @type {?} *\/ (opt_obj), obj[key], key, obj)) {\n return true;\n }\n }\n return false;\n}\n\n\/**\n * Calls a function for each element in an object\/map\/hash. If\n * all calls return true, returns true. If any call returns false, returns\n * false at this point and does not continue to check the remaining elements.\n * @param {?Object<K,V>} obj The object to check.\n * @param {?function(this:T,V,?,?Object<K,V>):boolean} f The function to call\n * for every element. This function takes 3 arguments (the value, the key\n * and the object) and should return a boolean.\n * @param {T=} opt_obj This is used as the 'this' object within f.\n * @return {boolean} false if any element fails the test.\n * @template T,K,V\n *\/\nfunction every(obj, f, opt_obj) {\n for (const key in obj) {\n if (!f.call(\/** @type {?} *\/ (opt_obj), obj[key], key, obj)) {\n return false;\n }\n }\n return true;\n}\n\n\/**\n * Returns the number of key-value pairs in the object map.\n * @param {?Object} obj The object for which to get the number of key-value\n * pairs.\n * @return {number} The number of key-value pairs in the object map.\n *\/\nfunction getCount(obj) {\n let rv = 0;\n for (const key in obj) {\n rv++;\n }\n return rv;\n}\n\n\/**\n * Returns one key from the object map, if any exists.\n * For map literals the returned key will be the first one in most of the\n * browsers (a know exception is Konqueror).\n * @param {?Object} obj The object to pick a key from.\n * @return {string|undefined} The key or undefined if the object is empty.\n *\/\nfunction getAnyKey(obj) {\n for (const key in obj) {\n return key;\n }\n}\n\n\/**\n * Returns one value from the object map, if any exists.\n * For map literals the returned value will be the first one in most of the\n * browsers (a know exception is Konqueror).\n * @param {?Object<K,V>} obj The object to pick a value from.\n * @return {V|undefined} The value or undefined if the object is empty.\n * @template K,V\n *\/\nfunction getAnyValue(obj) {\n for (const key in obj) {\n return obj[key];\n }\n}\n\n\/**\n * Whether the object\/hash\/map contains the given object as a value.\n * An alias for containsValue(obj, val).\n * @param {?Object<K,V>} obj The object in which to look for val.\n * @param {V} val The object for which to check.\n * @return {boolean} true if val is present.\n * @template K,V\n *\/\nfunction contains(obj, val) {\n return containsValue(obj, val);\n}\n\n\/**\n * Returns the values of the object\/map\/hash.\n * @param {?Object<K,V>} obj The object from which to get the values.\n * @return {!Array<V>} The values in the object\/map\/hash.\n * @template K,V\n *\/\nfunction getValues(obj) {\n const res = [];\n let i = 0;\n for (const key in obj) {\n res[i++] = obj[key];\n }\n return res;\n}\n\n\/**\n * Returns the keys of the object\/map\/hash.\n * @param {?Object} obj The object from which to get the keys.\n * @return {!Array<string>} Array of property keys.\n *\/\nfunction getKeys(obj) {\n const res = [];\n let i = 0;\n for (const key in obj) {\n res[i++] = key;\n }\n return res;\n}\n\n\/**\n * Get a value from an object multiple levels deep. This is useful for\n * pulling values from deeply nested objects, such as JSON responses.\n * Example usage: getValueByKeys(jsonObj, 'foo', 'entries', 3)\n * @param {?Object} obj An object to get the value from. Can be array-like.\n * @param {...(string|number|!IArrayLike<number|string>)} var_args A number of\n * keys (as strings, or numbers, for array-like objects). Can also be\n * specified as a single array of keys.\n * @return {*} The resulting value. If, at any point, the value for a key in the\n * current object is null or undefined, returns undefined.\n *\/\nfunction getValueByKeys(obj, var_args) {\n const isArrayLike = goog.isArrayLike(var_args);\n const keys = isArrayLike ?\n \/** @type {!IArrayLike<number|string>} *\/ (var_args) :\n arguments;\n\n \/\/ Start with the 2nd parameter for the variable parameters syntax.\n for (let i = isArrayLike ? 0 : 1; i < keys.length; i++) {\n if (obj == null) return undefined;\n obj = obj[keys[i]];\n }\n\n return obj;\n}\n\n\/**\n * Whether the object\/map\/hash contains the given key.\n * @param {?Object} obj The object in which to look for key.\n * @param {?} key The key for which to check.\n * @return {boolean} true If the map contains the key.\n *\/\nfunction containsKey(obj, key) {\n return obj !== null && key in obj;\n}\n\n\/**\n * Whether the object\/map\/hash contains the given value. This is O(n).\n * @param {?Object<K,V>} obj The object in which to look for val.\n * @param {V} val The value for which to check.\n * @return {boolean} true If the map contains the value.\n * @template K,V\n *\/\nfunction containsValue(obj, val) {\n for (const key in obj) {\n if (obj[key] == val) {\n return true;\n }\n }\n return false;\n}\n\n\/**\n * Searches an object for an element that satisfies the given condition and\n * returns its key.\n * @param {?Object<K,V>} obj The object to search in.\n * @param {function(this:T,V,string,?Object<K,V>):boolean} f The function to\n * call for every element. Takes 3 arguments (the value, the key and the\n * object) and should return a boolean.\n * @param {T=} thisObj An optional \"this\" context for the function.\n * @return {string|undefined} The key of an element for which the function\n * returns true or undefined if no such element is found.\n * @template T,K,V\n *\/\nfunction findKey(obj, f, thisObj = undefined) {\n for (const key in obj) {\n if (f.call(\/** @type {?} *\/ (thisObj), obj[key], key, obj)) {\n return key;\n }\n }\n return undefined;\n}\n\n\/**\n * Searches an object for an element that satisfies the given condition and\n * returns its value.\n * @param {?Object<K,V>} obj The object to search in.\n * @param {function(this:T,V,string,?Object<K,V>):boolean} f The function to\n * call for every element. Takes 3 arguments (the value, the key and the\n * object) and should return a boolean.\n * @param {T=} thisObj An optional \"this\" context for the function.\n * @return {V} The value of an element for which the function returns true or\n * undefined if no such element is found.\n * @template T,K,V\n *\/\nfunction findValue(obj, f, thisObj = undefined) {\n const key = findKey(obj, f, thisObj);\n return key && obj[key];\n}\n\n\/**\n * Whether the object\/map\/hash is empty.\n * @param {?Object} obj The object to test.\n * @return {boolean} true if obj is empty.\n *\/\nfunction isEmpty(obj) {\n for (const key in obj) {\n return false;\n }\n return true;\n}\n\n\/**\n * Removes all key value pairs from the object\/map\/hash.\n * @param {?Object} obj The object to clear.\n * @return {void}\n *\/\nfunction clear(obj) {\n for (const i in obj) {\n delete obj[i];\n }\n}\n\n\/**\n * Removes a key-value pair based on the key.\n * @param {?Object} obj The object from which to remove the key.\n * @param {?} key The key to remove.\n * @return {boolean} Whether an element was removed.\n *\/\nfunction remove(obj, key) {\n let rv;\n if (rv = key in \/** @type {!Object} *\/ (obj)) {\n delete obj[key];\n }\n return rv;\n}\n\n\/**\n * Adds a key-value pair to the object. Throws an exception if the key is\n * already in use. Use set if you want to change an existing pair.\n * @param {?Object<K,V>} obj The object to which to add the key-value pair.\n * @param {string} key The key to add.\n * @param {V} val The value to add.\n * @return {void}\n * @template K,V\n *\/\nfunction add(obj, key, val) {\n if (obj !== null && key in obj) {\n throw new Error(`The object already contains the key \"${key}\"`);\n }\n set(obj, key, val);\n}\n\n\/**\n * Returns the value for the given key.\n * @param {?Object<K,V>} obj The object from which to get the value.\n * @param {string} key The key for which to get the value.\n * @param {R=} val The value to return if no item is found for the given key\n * (default is undefined).\n * @return {V|R|undefined} The value for the given key.\n * @template K,V,R\n *\/\nfunction get(obj, key, val = undefined) {\n if (obj !== null && key in obj) {\n return obj[key];\n }\n return val;\n}\n\n\/**\n * Adds a key-value pair to the object\/map\/hash.\n * @param {?Object<K,V>} obj The object to which to add the key-value pair.\n * @param {string} key The key to add.\n * @param {V} value The value to add.\n * @template K,V\n * @return {void}\n *\/\nfunction set(obj, key, value) {\n obj[key] = value;\n}\n\n\/**\n * Adds a key-value pair to the object\/map\/hash if it doesn't exist yet.\n * @param {?Object<K,V>} obj The object to which to add the key-value pair.\n * @param {string} key The key to add.\n * @param {V} value The value to add if the key wasn't present.\n * @return {V} The value of the entry at the end of the function.\n * @template K,V\n *\/\nfunction setIfUndefined(obj, key, value) {\n return key in \/** @type {!Object} *\/ (obj) ? obj[key] : (obj[key] = value);\n}\n\n\/**\n * Sets a key and value to an object if the key is not set. The value will be\n * the return value of the given function. If the key already exists, the\n * object will not be changed and the function will not be called (the function\n * will be lazily evaluated -- only called if necessary).\n * This function is particularly useful when used with an `Object` which is\n * acting as a cache.\n * @param {?Object<K,V>} obj The object to which to add the key-value pair.\n * @param {string} key The key to add.\n * @param {function():V} f The value to add if the key wasn't present.\n * @return {V} The value of the entry at the end of the function.\n * @template K,V\n *\/\nfunction setWithReturnValueIfNotSet(obj, key, f) {\n if (key in obj) {\n return obj[key];\n }\n\n const val = f();\n obj[key] = val;\n return val;\n}\n\n\/**\n * Compares two objects for equality using === on the values.\n * @param {!Object<K,V>} a\n * @param {!Object<K,V>} b\n * @return {boolean}\n * @template K,V\n *\/\nfunction equals(a, b) {\n for (const k in a) {\n if (!(k in b) || a[k] !== b[k]) {\n return false;\n }\n }\n for (const k in b) {\n if (!(k in a)) {\n return false;\n }\n }\n return true;\n}\n\n\/**\n * Returns a shallow clone of the object.\n * @param {?Object<K,V>} obj Object to clone.\n * @return {!Object<K,V>} Clone of the input object.\n * @template K,V\n *\/\nfunction clone(obj) {\n const res = {};\n for (const key in obj) {\n res[key] = obj[key];\n }\n return res;\n}\n\n\/**\n * Clones a value. The input may be an Object, Array, or basic type. Objects and\n * arrays will be cloned recursively.\n * WARNINGS:\n * <code>unsafeClone<\/code> does not detect reference loops. Objects\n * that refer to themselves will cause infinite recursion.\n * <code>unsafeClone<\/code> is unaware of unique identifiers, and\n * copies UIDs created by <code>getUid<\/code> into cloned results.\n * @param {T} obj The value to clone.\n * @return {T} A clone of the input value.\n * @template T\n *\/\nfunction unsafeClone(obj) {\n if (!obj || typeof obj !== 'object') return obj;\n if (typeof obj.clone === 'function') return obj.clone();\n if (typeof Map !== 'undefined' && obj instanceof Map) {\n return new Map(obj);\n } else if (typeof Set !== 'undefined' && obj instanceof Set) {\n return new Set(obj);\n }\n const clone = Array.isArray(obj) ? [] :\n typeof ArrayBuffer === 'function' &&\n typeof ArrayBuffer.isView === 'function' && ArrayBuffer.isView(obj) &&\n !(obj instanceof DataView) ?\n new obj.constructor(obj.length) :\n {};\n for (const key in obj) {\n clone[key] = unsafeClone(obj[key]);\n }\n return clone;\n}\n\n\/**\n * Returns a new object in which all the keys and values are interchanged\n * (keys become values and values become keys). If multiple keys map to the\n * same value, the chosen transposed value is implementation-dependent.\n * @param {?Object} obj The object to transpose.\n * @return {!Object} The transposed object.\n *\/\nfunction transpose(obj) {\n const transposed = {};\n for (const key in obj) {\n transposed[obj[key]] = key;\n }\n return transposed;\n}\n\n\/**\n * The names of the fields that are defined on Object.prototype.\n * @type {!Array<string>}\n *\/\nconst PROTOTYPE_FIELDS = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf',\n];\n\n\/**\n * Extends an object with another object.\n * This operates 'in-place'; it does not create a new Object.\n * Example:\n * var o = {};\n * extend(o, {a: 0, b: 1});\n * o; \/\/ {a: 0, b: 1}\n * extend(o, {b: 2, c: 3});\n * o; \/\/ {a: 0, b: 2, c: 3}\n * @param {?Object} target The object to modify. Existing properties will be\n * overwritten if they are also present in one of the objects in `var_args`.\n * @param {...(?Object|undefined)} var_args The objects from which values\n * will be copied.\n * @return {void}\n * @deprecated Prefer Object.assign\n *\/\nfunction extend(target, var_args) {\n let key;\n let source;\n for (let i = 1; i < arguments.length; i++) {\n source = arguments[i];\n for (key in source) {\n target[key] = source[key];\n }\n\n \/\/ For IE the for-in-loop does not contain any properties that are not\n \/\/ enumerable on the prototype object (for example isPrototypeOf from\n \/\/ Object.prototype) and it will also not include 'replace' on objects that\n \/\/ extend String and change 'replace' (not that it is common for anyone to\n \/\/ extend anything except Object).\n\n for (let j = 0; j < PROTOTYPE_FIELDS.length; j++) {\n key = PROTOTYPE_FIELDS[j];\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n}\n\n\/**\n * Creates a new object built from the key-value pairs provided as arguments.\n * @param {...*} var_args If only one argument is provided and it is an array\n * then this is used as the arguments, otherwise even arguments are used as\n * the property names and odd arguments are used as the property values.\n * @return {!Object} The new object.\n * @throws {!Error} If there are uneven number of arguments or there is only one\n * non array argument.\n *\/\nfunction create(var_args) {\n const argLength = arguments.length;\n if (argLength == 1 && Array.isArray(arguments[0])) {\n return create.apply(null, arguments[0]);\n }\n\n if (argLength % 2) {\n throw new Error('Uneven number of arguments');\n }\n\n const rv = {};\n for (let i = 0; i < argLength; i += 2) {\n rv[arguments[i]] = arguments[i + 1];\n }\n return rv;\n}\n\n\/**\n * Creates a new object where the property names come from the arguments but\n * the value is always set to true\n * @param {...*} var_args If only one argument is provided and it is an array\n * then this is used as the arguments, otherwise the arguments are used as\n * the property names.\n * @return {!Object} The new object.\n *\/\nfunction createSet(var_args) {\n const argLength = arguments.length;\n if (argLength == 1 && Array.isArray(arguments[0])) {\n return createSet.apply(null, arguments[0]);\n }\n\n const rv = {};\n for (let i = 0; i < argLength; i++) {\n rv[arguments[i]] = true;\n }\n return rv;\n}\n\n\/**\n * Creates an immutable view of the underlying object, if the browser\n * supports immutable objects.\n * In default mode, writes to this view will fail silently. In strict mode,\n * they will throw an error.\n * @param {!Object<K,V>} obj An object.\n * @return {!Object<K,V>} An immutable view of that object, or the original\n * object if this browser does not support immutables.\n * @template K,V\n *\/\nfunction createImmutableView(obj) {\n let result = obj;\n if (Object.isFrozen && !Object.isFrozen(obj)) {\n result = Object.create(obj);\n Object.freeze(result);\n }\n return result;\n}\n\n\/**\n * @param {!Object} obj An object.\n * @return {boolean} Whether this is an immutable view of the object.\n *\/\nfunction isImmutableView(obj) {\n return !!Object.isFrozen && Object.isFrozen(obj);\n}\n\n\/**\n * Get all properties names on a given Object regardless of enumerability.\n * <p> If the browser does not support `Object.getOwnPropertyNames` nor\n * `Object.getPrototypeOf` then this is equivalent to using\n * `getKeys`\n * @param {?Object} obj The object to get the properties of.\n * @param {boolean=} includeObjectPrototype Whether properties defined on\n * `Object.prototype` should be included in the result.\n * @param {boolean=} includeFunctionPrototype Whether properties defined on\n * `Function.prototype` should be included in the result.\n * @return {!Array<string>}\n * @public\n *\/\nfunction getAllPropertyNames(\n obj, includeObjectPrototype = undefined,\n includeFunctionPrototype = undefined) {\n if (!obj) {\n return [];\n }\n\n \/\/ Naively use a for..in loop to get the property names if the browser doesn't\n \/\/ support any other APIs for getting it.\n if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) {\n return getKeys(obj);\n }\n\n const visitedSet = {};\n\n \/\/ Traverse the prototype chain and add all properties to the visited set.\n let proto = obj;\n while (proto && (proto !== Object.prototype || !!includeObjectPrototype) &&\n (proto !== Function.prototype || !!includeFunctionPrototype)) {\n const names = Object.getOwnPropertyNames(proto);\n for (let i = 0; i < names.length; i++) {\n visitedSet[names[i]] = true;\n }\n proto = Object.getPrototypeOf(proto);\n }\n\n return getKeys(visitedSet);\n}\n\n\/**\n * Given a ES5 or ES6 class reference, return its super class \/ super\n * constructor.\n * This should be used in rare cases where you need to walk up the inheritance\n * tree (this is generally a bad idea). But this work with ES5 and ES6 classes,\n * unlike relying on the superClass_ property.\n * Note: To start walking up the hierarchy from an instance call this with its\n * `constructor` property; e.g. `getSuperClass(instance.constructor)`.\n * @param {function(new: ?)} constructor\n * @return {?Object}\n *\/\nfunction getSuperClass(constructor) {\n const proto = Object.getPrototypeOf(constructor.prototype);\n return proto && proto.constructor;\n}\n\nexports = {\n add,\n clear,\n clone,\n contains,\n containsKey,\n containsValue,\n create,\n createImmutableView,\n createSet,\n equals,\n every,\n extend,\n filter,\n findKey,\n findValue,\n forEach,\n get,\n getAllPropertyNames,\n getAnyKey,\n getAnyValue,\n getCount,\n getKeys,\n getSuperClass,\n getValueByKeys,\n getValues,\n isEmpty,\n isImmutableView,\n map,\n remove,\n set,\n setIfUndefined,\n setWithReturnValueIfNotSet,\n some,\n transpose,\n unsafeClone,\n};\n","(ns frontend.db\n \"Main entry ns for db related fns\"\n (:require [clojure.core.async :as async]\n [datascript.core :as d]\n [logseq.db.schema :as db-schema]\n [frontend.db.conn :as conn]\n [logseq.db.default :as default-db]\n [frontend.db.model]\n [frontend.db.query-custom]\n [frontend.db.query-react]\n [frontend.db.react :as react]\n [frontend.db.utils]\n [frontend.db.persist :as db-persist]\n [frontend.db.migrate :as db-migrate]\n [frontend.namespaces :refer [import-vars]]\n [frontend.state :as state]\n [frontend.util :as util]\n [promesa.core :as p]\n [electron.ipc :as ipc]))\n\n(import-vars\n [frontend.db.conn\n ;; TODO: remove later\n conns\n get-repo-path\n get-repo-name\n get-short-repo-name\n datascript-db\n get-db\n remove-conn!]\n\n [frontend.db.utils\n db->json db->edn-str db->string get-max-tx-id get-tx-id\n group-by-page seq-flatten\n string->db\n\n entity pull pull-many transact! get-key-value]\n\n [frontend.db.model\n blocks-count blocks-count-cache delete-blocks get-pre-block\n delete-files delete-pages-by-files get-all-block-contents get-all-block-avets get-all-tagged-pages get-single-block-contents\n get-all-templates get-block-and-children get-block-by-uuid get-block-children sort-by-left\n get-block-parent get-block-parents parents-collapsed? get-block-referenced-blocks get-all-referenced-blocks-uuid\n get-block-children-ids get-block-immediate-children get-block-page\n get-custom-css get-date-scheduled-or-deadlines\n get-file-last-modified-at get-file get-file-page get-file-page-id file-exists?\n get-files get-files-blocks get-files-full get-journals-length get-pages-with-file\n get-latest-journals get-page get-page-alias get-page-alias-names get-paginated-blocks\n get-page-blocks-count get-page-blocks-no-cache get-page-file get-page-format get-page-properties\n get-page-referenced-blocks get-page-referenced-blocks-full get-page-referenced-pages get-page-unlinked-references\n get-all-pages get-pages get-pages-relation get-pages-that-mentioned-page get-tag-pages\n journal-page? page-alias-set sub-block\n set-file-last-modified-at! page-empty? page-exists? page-empty-or-dummy? get-alias-source-page\n set-file-content! has-children? get-namespace-pages get-all-namespace-relation get-pages-by-name-partition\n get-original-name]\n\n [frontend.db.react\n get-current-page set-key-value\n remove-key! remove-q! remove-query-component! add-q! add-query-component! clear-query-state!\n clear-query-state-without-refs-and-embeds! kv q\n query-state query-components remove-custom-query! set-new-result! sub-key-value refresh!]\n\n [frontend.db.query-custom\n custom-query]\n\n [frontend.db.query-react\n react-query custom-query-result-transform]\n\n [logseq.db.default built-in-pages-names built-in-pages])\n\n(defn- old-schema?\n \"Requires migration if the schema version is older than db-schema\/version\"\n [db]\n (let [v (db-migrate\/get-schema-version db)\n ;; backward compatibility\n v (if (integer? v) v 0)]\n (cond\n (= db-schema\/version v)\n false\n\n (< db-schema\/version v)\n (do\n (js\/console.error \"DB schema version is newer than the app, please update the app. \" \":db-version\" v)\n false)\n\n :else\n true)))\n\n;; persisting DBs between page reloads\n(defn persist! [repo]\n (let [key (datascript-db repo)\n db (get-db repo)]\n (when db\n (let [db-str (if db (db->string db) \"\")]\n (p\/let [_ (db-persist\/save-graph! key db-str)])))))\n\n(defonce persistent-jobs (atom {}))\n\n(defn clear-repo-persistent-job!\n [repo]\n (when-let [old-job (get @persistent-jobs repo)]\n (js\/clearTimeout old-job)))\n\n(defn persist-if-idle!\n [repo]\n (clear-repo-persistent-job! repo)\n (let [job (js\/setTimeout\n (fn []\n (if (and (state\/input-idle? repo)\n (state\/db-idle? repo)\n ;; It's ok to not persist here since new changes\n ;; will be notified when restarting the app.\n (not (state\/whiteboard-route?)))\n (persist! repo)\n ;; (state\/set-db-persisted! repo true)\n\n (persist-if-idle! repo)))\n 3000)]\n (swap! persistent-jobs assoc repo job)))\n\n;; only save when user's idle\n\n(defonce *db-listener (atom nil))\n\n(defn- repo-listen-to-tx!\n [repo conn]\n (d\/listen! conn :persistence\n (fn [tx-report]\n (when (not (:new-graph? (:tx-meta tx-report))) ; skip initial txs\n (if (util\/electron?)\n (when-not (:dbsync? (:tx-meta tx-report))\n ;; sync with other windows if needed\n (p\/let [graph-has-other-window? (ipc\/ipc \"graphHasOtherWindow\" repo)]\n (when graph-has-other-window?\n (ipc\/ipc \"dbsync\" repo {:data (db->string (:tx-data tx-report))}))))\n (do\n (state\/set-last-transact-time! repo (util\/time-ms))\n (persist-if-idle! repo)))\n\n (when-let [db-listener @*db-listener]\n (db-listener repo tx-report))))))\n\n(defn listen-and-persist!\n [repo]\n (when-let [conn (get-db repo false)]\n (d\/unlisten! conn :persistence)\n (repo-listen-to-tx! repo conn)))\n\n(defn start-db-conn!\n ([repo]\n (start-db-conn! repo {}))\n ([repo option]\n (conn\/start! repo\n (assoc option\n :listen-handler listen-and-persist!))))\n\n(defn restore-graph-from-text!\n \"Swap db string into the current db status\n stored: the text to restore from\"\n [repo stored]\n (p\/let [db-name (datascript-db repo)\n db-conn (d\/create-conn db-schema\/schema)\n _ (swap! conns assoc db-name db-conn)\n _ (when stored\n (let [stored-db (try (string->db stored)\n (catch :default _e\n (js\/console.warn \"Invalid graph cache\")\n (d\/empty-db db-schema\/schema)))\n attached-db (d\/db-with stored-db\n default-db\/built-in-pages) ;; TODO bug overriding uuids?\n db (if (old-schema? attached-db)\n (db-migrate\/migrate attached-db)\n attached-db)]\n (conn\/reset-conn! db-conn db)))]\n (d\/transact! db-conn [{:schema\/version db-schema\/version}])))\n\n(defn restore-graph!\n \"Restore db from serialized db cache\"\n [repo]\n (p\/let [db-name (datascript-db repo)\n stored (db-persist\/get-serialized-graph db-name)]\n (restore-graph-from-text! repo stored)))\n\n(defn restore!\n [repo]\n (p\/let [_ (restore-graph! repo)]\n (listen-and-persist! repo)))\n\n(defn run-batch-txs!\n []\n (let [chan (state\/get-db-batch-txs-chan)]\n (async\/go-loop []\n (let [f (async\/<! chan)]\n (f))\n (recur))\n chan))\n\n(defn new-block-id\n []\n (d\/squuid))\n","(ns frontend.util\n \"Main ns for utility fns. This ns should be split up into more focused namespaces\"\n #?(:clj (:refer-clojure :exclude [format]))\n #?(:cljs (:require-macros [frontend.util]))\n #?(:cljs (:require\n [\"\/frontend\/selection\" :as selection]\n [\"\/frontend\/utils\" :as utils]\n [\"@capacitor\/status-bar\" :refer [^js StatusBar Style]]\n [\"@capgo\/capacitor-navigation-bar\" :refer [^js NavigationBar]]\n [\"grapheme-splitter\" :as GraphemeSplitter]\n [\"remove-accents\" :as removeAccents]\n [\"sanitize-filename\" :as sanitizeFilename]\n [\"check-password-strength\" :refer [passwordStrength]]\n [\"path-complete-extname\" :as pathCompleteExtname]\n [frontend.loader :refer [load]]\n [cljs-bean.core :as bean]\n [cljs-time.coerce :as tc]\n [cljs-time.core :as t]\n [clojure.pprint]\n [dommy.core :as d]\n [frontend.mobile.util :as mobile-util]\n [logseq.graph-parser.util :as gp-util]\n [goog.dom :as gdom]\n [goog.object :as gobj]\n [goog.string :as gstring]\n [goog.userAgent]\n [promesa.core :as p]\n [rum.core :as rum]\n [clojure.core.async :as async]\n [cljs.core.async.impl.channels :refer [ManyToManyChannel]]\n [medley.core :as medley]\n [frontend.pubsub :as pubsub]))\n #?(:cljs (:import [goog.async Debouncer]))\n (:require\n [clojure.pprint]\n [clojure.string :as string]\n [clojure.walk :as walk]))\n\n#?(:cljs (goog-define NODETEST false)\n :clj (def NODETEST false))\n(defonce node-test? NODETEST)\n\n#?(:cljs\n (extend-protocol IPrintWithWriter\n js\/Symbol\n (-pr-writer [sym writer _]\n (-write writer (str \"\\\"\" (.toString sym) \"\\\"\")))))\n\n#?(:cljs (defonce ^js node-path utils\/nodePath))\n#?(:cljs (defonce ^js full-path-extname pathCompleteExtname))\n#?(:cljs (defn app-scroll-container-node\n ([]\n (gdom\/getElement \"main-content-container\"))\n ([el]\n (if (.closest el \"#main-content-container\")\n (app-scroll-container-node)\n (or\n (gdom\/getElementByClass \"sidebar-item-list\")\n (app-scroll-container-node))))))\n#?(:cljs (defonce el-visible-in-viewport? utils\/elementIsVisibleInViewport))\n#?(:cljs (defonce convert-to-roman utils\/convertToRoman))\n#?(:cljs (defonce convert-to-letters utils\/convertToLetters))\n#?(:cljs (defonce hsl2hex utils\/hsl2hex))\n\n(defn string-join-path\n \"Replace all `strings\/join` used to construct paths with this function to reduce lint output.\n https:\/\/github.com\/logseq\/logseq\/pull\/8679\"\n [parts]\n (string\/join \"\/\" parts))\n\n#?(:cljs\n (defn safe-re-find\n {:malli\/schema [:=> [:cat :any :string] [:or :nil :string [:vector [:maybe :string]]]]}\n [pattern s]\n (when-not (string? s)\n ;; TODO: sentry\n (js\/console.trace))\n (when (string? s)\n (re-find pattern s))))\n\n#?(:cljs\n (do\n (def uuid-pattern \"[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}\")\n (defonce exactly-uuid-pattern (re-pattern (str \"(?i)^\" uuid-pattern \"$\")))\n (defn uuid-string?\n {:malli\/schema [:=> [:cat :string] :boolean]}\n [s]\n (boolean (safe-re-find exactly-uuid-pattern s)))\n (defn check-password-strength\n {:malli\/schema [:=> [:cat :string] [:maybe\n [:map\n [:contains [:sequential :string]]\n [:length :int]\n [:id :int]\n [:value :string]]]]}\n [input]\n (when-let [^js ret (and (string? input)\n (not (string\/blank? input))\n (passwordStrength input))]\n (bean\/->clj ret)))\n (defn safe-sanitize-file-name\n {:malli\/schema [:=> [:cat :string] :string]}\n [s]\n (sanitizeFilename (str s)))))\n\n\n#?(:cljs\n (do\n (defn- ios*?\n []\n (utils\/ios))\n (def ios? (memoize ios*?))))\n\n#?(:cljs\n (do\n (defn- safari*?\n []\n (let [ua (string\/lower-case js\/navigator.userAgent)]\n (and (string\/includes? ua \"webkit\")\n (not (string\/includes? ua \"chrome\")))))\n (def safari? (memoize safari*?))))\n\n#?(:cljs\n (do\n (defn- mobile*?\n \"Triggering condition: Mobile phones\n *** Warning!!! ***\n For UX logic only! Don't use for FS logic\n iPad \/ Android Pad doesn't trigger!\"\n []\n (when-not node-test?\n (safe-re-find #\"Mobi\" js\/navigator.userAgent)))\n (def mobile? (memoize mobile*?))))\n\n#?(:cljs\n (do\n (defn- electron*?\n []\n (when (and js\/window (gobj\/get js\/window \"navigator\"))\n (gstring\/caseInsensitiveContains js\/navigator.userAgent \" electron\")))\n (def electron? (memoize electron*?))))\n\n#?(:cljs\n (defn mocked-open-dir-path\n \"Mocked open DIR path for by-passing open dir in electron during testing. Nil if not given\"\n []\n (when (electron?) (. js\/window -__MOCKED_OPEN_DIR_PATH__))))\n\n;; #?(:cljs\n;; (defn ci?\n;; []\n;; (boolean (. js\/window -__E2E_TESTING__))))\n\n#?(:cljs\n (do\n (def nfs? (and (not (electron?))\n (not (mobile-util\/native-platform?))))\n (def web-platform? nfs?)))\n\n#?(:cljs\n (defn file-protocol?\n []\n (string\/starts-with? js\/window.location.href \"file:\/\/\")))\n\n(defn format\n [fmt & args]\n #?(:cljs (apply gstring\/format fmt args)\n :clj (apply clojure.core\/format fmt args)))\n\n#?(:cljs\n (defn evalue\n [event]\n (gobj\/getValueByKeys event \"target\" \"value\")))\n\n#?(:cljs\n (defn ekey [event]\n (gobj\/getValueByKeys event \"key\")))\n\n#?(:cljs\n (defn echecked? [event]\n (gobj\/getValueByKeys event \"target\" \"checked\")))\n\n#?(:cljs\n (defn set-change-value\n \"compatible change event for React\"\n [node value]\n (utils\/triggerInputChange node value)))\n\n#?(:cljs\n (defn p-handle\n ([p ok-handler]\n (p-handle p ok-handler (fn [error]\n (js\/console.error error))))\n ([p ok-handler error-handler]\n (-> p\n (p\/then (fn [result]\n (ok-handler result)))\n (p\/catch (fn [error]\n (error-handler error)))))))\n\n#?(:cljs\n (defn get-width\n []\n (gobj\/get js\/window \"innerWidth\")))\n\n;; Keep the following colors in sync with common.css\n#?(:cljs\n (defn- get-computed-bg-color\n []\n ;; window.getComputedStyle(document.body, null).getPropertyValue('background-color');\n (let [styles (js\/window.getComputedStyle (js\/document.querySelector \"#app-container\"))\n bg-color (gobj\/get styles \"background-color\")\n ;; convert rgb(r,g,b) to #rrggbb\n rgb2hex (fn [rgb]\n (->> rgb\n (map (comp #(.toString % 16) parse-long string\/trim))\n (map #(if (< (count %) 2)\n (str \"0\" %)\n %))\n (string\/join)\n (str \"#\")))]\n (when (string\/starts-with? bg-color \"rgb(\")\n (let [rgb (-> bg-color\n (string\/replace #\"^rgb\\(\" \"\")\n (string\/replace #\"\\)$\" \"\")\n (string\/split #\",\"))\n rgb (take 3 rgb)]\n (rgb2hex rgb)))))\n)\n\n#?(:cljs\n (defn set-android-theme\n []\n (when (mobile-util\/native-android?)\n (when-let [bg-color (try (get-computed-bg-color)\n (catch :default _\n nil))]\n (.setNavigationBarColor NavigationBar (clj->js {:color bg-color}))\n (.setBackgroundColor StatusBar (clj->js {:color bg-color}))))))\n\n#?(:cljs\n (defn set-theme-light\n []\n (p\/do!\n (.setStyle StatusBar (clj->js {:style (.-Light Style)}))\n (set-android-theme))))\n\n#?(:cljs\n (defn set-theme-dark\n []\n (p\/do!\n (.setStyle StatusBar (clj->js {:style (.-Dark Style)}))\n (set-android-theme))))\n\n(defn find-first\n [pred coll]\n (first (filter pred coll)))\n\n(defn find-index\n \"Find first index of an element in list\"\n [pred-or-val coll]\n (let [pred (if (fn? pred-or-val) pred-or-val #(= pred-or-val %))]\n (reduce-kv #(if (pred %3) (reduced %2) %1) -1\n (cond-> coll (list? coll) (vec)))))\n\n;; (defn format\n;; [fmt & args]\n;; (apply gstring\/format fmt args))\n\n(defn remove-nils-non-nested\n [nm]\n (into {} (remove (comp nil? second)) nm))\n\n;; \".lg:absolute.lg:inset-y-0.lg:right-0.lg:w-1\/2\"\n(defn hiccup->class\n [class]\n (some->> (string\/split class #\"\\.\")\n (string\/join \" \")\n (string\/trim)))\n\n#?(:cljs\n (defn fetch\n ([url on-ok on-failed]\n (fetch url {} on-ok on-failed))\n ([url opts on-ok on-failed]\n (-> (js\/fetch url (bean\/->js opts))\n (.then (fn [resp]\n (if (>= (.-status resp) 400)\n (on-failed resp)\n (if (.-ok resp)\n (-> (.json resp)\n (.then bean\/->clj)\n (.then #(on-ok %)))\n (on-failed resp)))))))))\n\n(defn zero-pad\n [n]\n (if (< n 10)\n (str \"0\" n)\n (str n)))\n\n#?(:cljs\n (defn safe-parse-int\n \"Use if arg could be an int or string. If arg is only a string, use `parse-long`.\"\n {:malli\/schema [:=> [:cat [:or :int :string]] :int]}\n [x]\n (if (string? x)\n (parse-long x)\n x)))\n\n#?(:cljs\n (defn safe-parse-float\n \"Use if arg could be a float or string. If arg is only a string, use `parse-double`\"\n {:malli\/schema [:=> [:cat [:or :double :string]] :double]}\n [x]\n (if (string? x)\n (parse-double x)\n x)))\n\n\n#?(:cljs\n (defn debounce\n \"Returns a function that will call f only after threshold has passed without new calls\n to the function. Calls prep-fn on the args in a sync way, which can be used for things like\n calling .persist on the event object to be able to access the event attributes in f\"\n ([threshold f] (debounce threshold f (constantly nil)))\n ([threshold f prep-fn]\n (let [t (atom nil)]\n (fn [& args]\n (when @t (js\/clearTimeout @t))\n (apply prep-fn args)\n (reset! t (js\/setTimeout #(do\n (reset! t nil)\n (apply f args))\n threshold)))))))\n#?(:cljs\n (defn cancelable-debounce\n \"Create a stateful debounce function with specified interval\n\n Returns [fire-fn, cancel-fn]\n\n Use `fire-fn` to call the function(debounced)\n\n Use `cancel-fn` to cancel pending callback if there is\"\n [f interval]\n (let [debouncer (Debouncer. f interval)]\n [(fn [& args] (.apply (.-fire debouncer) debouncer (to-array args)))\n (fn [] (.stop debouncer))])))\n\n(defn nth-safe [c i]\n (if (or (< i 0) (>= i (count c)))\n nil\n (nth c i)))\n\n#?(:cljs\n (when-not node-test?\n (extend-type js\/NodeList\n ISeqable\n (-seq [array] (array-seq array 0)))))\n\n;; Caret\n#?(:cljs\n (defn caret-range [node]\n (when-let [doc (or (gobj\/get node \"ownerDocument\")\n (gobj\/get node \"document\"))]\n (let [win (or (gobj\/get doc \"defaultView\")\n (gobj\/get doc \"parentWindow\"))\n selection (.getSelection win)]\n (if selection\n (let [range-count (gobj\/get selection \"rangeCount\")]\n (when (> range-count 0)\n (let [range (-> (.getSelection win)\n (.getRangeAt 0))\n pre-caret-range (.cloneRange range)]\n (.selectNodeContents pre-caret-range node)\n (.setEnd pre-caret-range\n (gobj\/get range \"endContainer\")\n (gobj\/get range \"endOffset\"))\n (let [contents (.cloneContents pre-caret-range)\n html (some-> (first (.-childNodes contents))\n (gobj\/get \"innerHTML\")\n str)\n ;; FIXME: this depends on the dom structure,\n ;; need a converter from html to text includes newlines\n br-ended? (and html\n (or\n ;; first line with a new line\n (string\/ends-with? html \"<div class=\\\"is-paragraph\\\"><\/div><\/div><\/span><\/div><\/div><\/div>\")\n ;; multiple lines with a new line\n (string\/ends-with? html \"<br><\/div><\/div><\/span><\/div><\/div><\/div>\")))\n value (.toString pre-caret-range)]\n (if br-ended?\n (str value \"\\n\")\n value)))))\n (when-let [selection (gobj\/get doc \"selection\")]\n (when (not= \"Control\" (gobj\/get selection \"type\"))\n (let [text-range (.createRange selection)\n pre-caret-text-range (.createTextRange (gobj\/get doc \"body\"))]\n (.moveToElementText pre-caret-text-range node)\n (.setEndPoint pre-caret-text-range \"EndToEnd\" text-range)\n (gobj\/get pre-caret-text-range \"text\")))))))))\n\n(defn get-selection-start\n [input]\n (when input\n (.-selectionStart input)))\n\n(defn get-selection-end\n [input]\n (when input\n (.-selectionEnd input)))\n\n(defn input-text-selected?\n [input]\n (not= (get-selection-start input)\n (get-selection-end input)))\n\n(defn get-selection-direction\n [input]\n (when input\n (.-selectionDirection input)))\n\n(defn get-first-or-last-line-pos\n [input]\n (let [pos (get-selection-start input)\n value (.-value input)\n last-newline-pos (or (string\/last-index-of value \\newline (dec pos)) -1)]\n (- pos last-newline-pos 1)))\n\n#?(:cljs\n (defn stop [e]\n (when e (doto e (.preventDefault) (.stopPropagation)))))\n\n#?(:cljs\n (defn stop-propagation [e]\n (when e (.stopPropagation e))))\n\n#?(:cljs\n (defn nearest-scrollable-container [^js\/HTMLElement element]\n (some #(when-let [overflow-y (.-overflowY (js\/window.getComputedStyle %))]\n (when (contains? #{\"auto\" \"scroll\" \"overlay\"} overflow-y)\n %))\n (take-while (complement nil?) (iterate #(.-parentElement %) element)))))\n\n#?(:cljs\n (defn element-visible?\n [element]\n (when element\n (when-let [r (.getBoundingClientRect element)]\n (and (>= (.-top r) 0)\n (<= (+ (.-bottom r) 64)\n (or (.-innerHeight js\/window)\n (js\/document.documentElement.clientHeight))))))))\n\n#?(:cljs\n (defn element-top [elem top]\n (when elem\n (if (.-offsetParent elem)\n (let [client-top (or (.-clientTop elem) 0)\n offset-top (.-offsetTop elem)]\n (+ top client-top offset-top (element-top (.-offsetParent elem) top)))\n top))))\n\n#?(:cljs\n (defn scroll-to-element\n [elem-id]\n (when-not (safe-re-find #\"^\/\\d+$\" elem-id)\n (when elem-id\n (when-let [elem (gdom\/getElement elem-id)]\n (.scroll (app-scroll-container-node)\n #js {:top (let [top (element-top elem 0)]\n (if (< top 256)\n 0\n (- top 80)))\n :behavior \"smooth\"}))))))\n\n#?(:cljs\n (defn scroll-to\n ([pos]\n (scroll-to (app-scroll-container-node) pos))\n ([node pos]\n (scroll-to node pos true))\n ([node pos animate?]\n (when node\n (.scroll node\n #js {:top pos\n :behavior (if animate? \"smooth\" \"auto\")})))))\n\n#?(:cljs\n (defn scroll-top\n \"Returns the scroll top position of the `node`. If `node` is not specified,\n returns the scroll top position of the `app-scroll-container-node`.\"\n ([]\n (scroll-top (app-scroll-container-node)))\n ([node]\n (when node (.-scrollTop node)))))\n\n#?(:cljs\n (defn scroll-to-top\n ([]\n (scroll-to (app-scroll-container-node) 0 false))\n ([animate?]\n (scroll-to (app-scroll-container-node) 0 animate?))))\n\n#?(:cljs\n (defn scroll-to-block\n \"Scroll into the view to vertically align a non-visible block to the centre\n of the visible area\"\n ([block]\n (scroll-to-block block true))\n ([block animate?]\n (when block\n (when-not (element-visible? block)\n (.scrollIntoView block\n #js {:behavior (if animate? \"smooth\" \"auto\")\n :block \"center\"}))))))\n\n#?(:cljs\n (defn link?\n [node]\n (contains?\n #{\"A\" \"BUTTON\"}\n (gobj\/get node \"tagName\"))))\n\n#?(:cljs\n (defn time?\n [node]\n (contains?\n #{\"TIME\"}\n (gobj\/get node \"tagName\"))))\n\n#?(:cljs\n (defn audio?\n [node]\n (contains?\n #{\"AUDIO\"}\n (gobj\/get node \"tagName\"))))\n\n#?(:cljs\n (defn video?\n [node]\n (contains?\n #{\"VIDEO\"}\n (gobj\/get node \"tagName\"))))\n\n#?(:cljs\n (defn sup?\n [node]\n (contains?\n #{\"SUP\"}\n (gobj\/get node \"tagName\"))))\n\n#?(:cljs\n (defn input?\n [node]\n (when node\n (contains?\n #{\"INPUT\" \"TEXTAREA\"}\n (gobj\/get node \"tagName\")))))\n\n#?(:cljs\n (defn select?\n [node]\n (when node\n (= \"SELECT\" (gobj\/get node \"tagName\")))))\n\n#?(:cljs\n (defn details-or-summary?\n [node]\n (when node\n (contains?\n #{\"DETAILS\" \"SUMMARY\"}\n (gobj\/get node \"tagName\")))))\n\n;; Debug\n(defn starts-with?\n [s substr]\n (string\/starts-with? s substr))\n\n\n#?(:cljs\n (defn distinct-by\n [f col]\n (medley\/distinct-by f (seq col))))\n\n#?(:cljs\n (defn distinct-by-last-wins\n [f col]\n {:pre [(sequential? col)]}\n (reverse (distinct-by f (reverse col)))))\n\n(defn get-git-owner-and-repo\n [repo-url]\n (take-last 2 (string\/split repo-url #\"\/\")))\n\n(defn safe-lower-case\n [s]\n (if (string? s)\n (string\/lower-case s) s))\n\n(defn trim-safe\n [s]\n (when s\n (string\/trim s)))\n\n(defn trimr-without-newlines\n [s]\n (.replace s #\"[ \\t\\r]+$\" \"\"))\n\n(defn triml-without-newlines\n [s]\n (.replace s #\"^[ \\t\\r]+\" \"\"))\n\n(defn concat-without-spaces\n [left right]\n (when (and (string? left)\n (string? right))\n (let [left (trimr-without-newlines left)\n not-space? (or\n (string\/blank? left)\n (= \"\\n\" (last left)))]\n (str left\n (when-not not-space? \" \")\n (triml-without-newlines right)))))\n\n(defn cjk-string?\n [s]\n (re-find #\"[\\u3040-\\u30ff\\u3400-\\u4dbf\\u4e00-\\u9fff\\uf900-\\ufaff\\uff66-\\uff9f]\" s))\n\n;; Add documentation\n(defn replace-first [pattern s new-value]\n (if-let [first-index (string\/index-of s pattern)]\n (str new-value (subs s (+ first-index (count pattern))))\n s))\n\n(defn replace-last\n ([pattern s new-value]\n (replace-last pattern s new-value true))\n ([pattern s new-value space?]\n (if-let [last-index (string\/last-index-of s pattern)]\n (let [prefix (subs s 0 last-index)]\n (if space?\n (concat-without-spaces prefix new-value)\n (str prefix new-value)))\n s)))\n\n(defonce escape-chars \"[]{}().+*?|\")\n\n(defn escape-regex-chars\n \"Escapes characters in string `old-value\"\n [old-value]\n (reduce (fn [acc escape-char]\n (string\/replace acc escape-char (str \"\\\\\" escape-char)))\n old-value escape-chars))\n\n(defn replace-ignore-case\n [s old-value new-value]\n (string\/replace s (re-pattern (str \"(?i)\" (escape-regex-chars old-value))) new-value))\n\n;; copy from https:\/\/stackoverflow.com\/questions\/18735665\/how-can-i-get-the-positions-of-regex-matches-in-clojurescript\n#?(:cljs\n (defn re-pos [re s]\n (let [re (js\/RegExp. (.-source re) \"g\")]\n (loop [res []]\n (if-let [m (.exec re s)]\n (recur (conj res [(.-index m) (first m)]))\n res)))))\n\n#?(:cljs\n (defn safe-set-range-text!\n ([input text start end]\n (try\n (.setRangeText input text start end)\n (catch :default _e\n nil)))\n ([input text start end select-mode]\n (try\n (.setRangeText input text start end select-mode)\n (catch :default _e\n nil)))))\n\n#?(:cljs\n ;; for widen char\n (defn safe-dec-current-pos-from-end\n [input current-pos]\n (if-let [len (and (string? input) (.-length input))]\n (when-let [input (and (>= len 2) (<= current-pos len)\n (.substring input (max (- current-pos 20) 0) current-pos))]\n (try\n (let [^js splitter (GraphemeSplitter.)\n ^js input (.splitGraphemes splitter input)]\n (- current-pos (.-length (.pop input))))\n (catch :default e\n (js\/console.error e)\n (dec current-pos))))\n (dec current-pos))))\n\n#?(:cljs\n ;; for widen char\n (defn safe-inc-current-pos-from-start\n [input current-pos]\n (if-let [len (and (string? input) (.-length input))]\n (when-let [input (and (>= len 2) (<= current-pos len)\n (.substr input current-pos 20))]\n (try\n (let [^js splitter (GraphemeSplitter.)\n ^js input (.splitGraphemes splitter input)]\n (+ current-pos (.-length (.shift input))))\n (catch :default e\n (js\/console.error e)\n (inc current-pos))))\n (inc current-pos))))\n\n#?(:cljs\n (defn kill-line-before!\n [input]\n (let [val (.-value input)\n end (get-selection-start input)\n n-pos (string\/last-index-of val \\newline (dec end))\n start (if n-pos (inc n-pos) 0)]\n (safe-set-range-text! input \"\" start end))))\n\n#?(:cljs\n (defn kill-line-after!\n [input]\n (let [val (.-value input)\n start (get-selection-start input)\n end (or (string\/index-of val \\newline start)\n (count val))]\n (safe-set-range-text! input \"\" start end))))\n\n#?(:cljs\n (defn insert-at-current-position!\n [input text]\n (let [start (get-selection-start input)\n end (get-selection-end input)]\n (safe-set-range-text! input text start end \"end\"))))\n\n;; copied from re_com\n#?(:cljs\n (defn deref-or-value\n \"Takes a value or an atom\n If it's a value, returns it\n If it's a Reagent object that supports IDeref, returns the value inside it by derefing\n \"\n [val-or-atom]\n (if (satisfies? IDeref val-or-atom)\n @val-or-atom\n val-or-atom)))\n\n;; copied from re_com\n#?(:cljs\n (defn now->utc\n \"Return a goog.date.UtcDateTime based on local date\/time.\"\n []\n (let [local-date-time (js\/goog.date.DateTime.)]\n (js\/goog.date.UtcDateTime.\n (.getYear local-date-time)\n (.getMonth local-date-time)\n (.getDate local-date-time)\n 0 0 0 0))))\n\n(defn safe-subvec [xs start end]\n (if (or (neg? start)\n (> end (count xs)))\n []\n (subvec xs start end)))\n\n#?(:cljs\n (defn get-nodes-between-two-nodes\n [id1 id2 class]\n (when-let [nodes (array-seq (js\/document.getElementsByClassName class))]\n (let [node-1 (gdom\/getElement id1)\n node-2 (gdom\/getElement id2)\n idx-1 (.indexOf nodes node-1)\n idx-2 (.indexOf nodes node-2)\n start (min idx-1 idx-2)\n end (inc (max idx-1 idx-2))]\n (safe-subvec (vec nodes) start end)))))\n\n#?(:cljs\n (defn get-direction-between-two-nodes\n [id1 id2 class]\n (when-let [nodes (array-seq (js\/document.getElementsByClassName class))]\n (let [node-1 (gdom\/getElement id1)\n node-2 (gdom\/getElement id2)\n idx-1 (.indexOf nodes node-1)\n idx-2 (.indexOf nodes node-2)]\n (if (>= idx-1 idx-2)\n :up\n :down)))))\n\n#?(:cljs\n (defn rec-get-tippy-container\n [node]\n (if (and node (d\/has-class? node \"tippy-tooltip-content\"))\n node\n (and node\n (rec-get-tippy-container (gobj\/get node \"parentNode\"))))))\n\n#?(:cljs\n (defn rec-get-blocks-container\n [node]\n (if (and node (d\/has-class? node \"blocks-container\"))\n node\n (and node\n (rec-get-blocks-container (gobj\/get node \"parentNode\"))))))\n\n#?(:cljs\n (defn rec-get-blocks-content-section\n [node]\n (if (and node (d\/has-class? node \"content\"))\n node\n (and node\n (rec-get-blocks-content-section (gobj\/get node \"parentNode\"))))))\n\n#?(:cljs\n (defn get-blocks-noncollapse\n ([]\n (->> (d\/sel \"div:not(.reveal) .ls-block\")\n (filter (fn [b] (some? (gobj\/get b \"offsetParent\"))))))\n ([blocks-container]\n (->> (d\/sel blocks-container \"div:not(.reveal) .ls-block\")\n (filter (fn [b] (some? (gobj\/get b \"offsetParent\"))))))))\n\n#?(:cljs\n (defn remove-embedded-blocks [blocks]\n (->> blocks\n (remove (fn [b] (= \"true\" (d\/attr b \"data-embed\")))))))\n\n#?(:cljs\n (defn get-selected-text\n []\n (utils\/getSelectionText)))\n\n#?(:cljs (def clear-selection! selection\/clearSelection))\n\n#?(:cljs\n (defn copy-to-clipboard!\n [text & {:keys [html blocks owner-window]}]\n (let [data (clj->js\n (gp-util\/remove-nils-non-nested\n {:text text\n :html html\n :blocks (when (seq blocks) (pr-str blocks))}))]\n (if owner-window\n (utils\/writeClipboard data owner-window)\n (utils\/writeClipboard data)))))\n\n(defn drop-nth [n coll]\n (keep-indexed #(when (not= %1 n) %2) coll))\n\n#?(:cljs\n (defn react\n [ref]\n (if rum\/*reactions*\n (rum\/react ref)\n @ref)))\n\n(defn time-ms\n []\n #?(:cljs (tc\/to-long (t\/now))))\n\n(defn d\n [k f]\n (let [result (atom nil)]\n (println (str \"Debug \" k))\n (time (reset! result (doall (f))))\n @result))\n\n(defn concat-without-nil\n [& cols]\n (->> (apply concat cols)\n (remove nil?)))\n\n#?(:cljs\n (defn set-title!\n [title]\n (set! (.-title js\/document) title)))\n\n#?(:cljs\n (defn get-block-container\n [block-element]\n (when block-element\n (when-let [section (some-> (rec-get-blocks-content-section block-element)\n (d\/parent))]\n (when section\n (gdom\/getElement section \"id\"))))))\n\n#?(:cljs\n (defn get-prev-block-non-collapsed\n \"Gets previous non-collapsed block. If given a container\n looks up blocks in that container e.g. for embed\"\n ([block] (get-prev-block-non-collapsed block {}))\n ([block {:keys [container]}]\n (when-let [blocks (if container\n (get-blocks-noncollapse container)\n (get-blocks-noncollapse))]\n (let [block-id (.-id block)\n block-ids (mapv #(.-id %) blocks)]\n (when-let [index (.indexOf block-ids block-id)]\n (let [idx (dec index)]\n (when (>= idx 0)\n (nth-safe blocks idx)))))))))\n\n#?(:cljs\n (defn get-prev-block-non-collapsed-non-embed\n [block]\n (when-let [blocks (->> (get-blocks-noncollapse)\n remove-embedded-blocks)]\n (let [block-id (.-id block)\n block-ids (mapv #(.-id %) blocks)]\n (when-let [index (.indexOf block-ids block-id)]\n (let [idx (dec index)]\n (when (>= idx 0)\n (nth-safe blocks idx))))))))\n\n#?(:cljs\n (defn get-next-block-non-collapsed\n [block]\n (when-let [blocks (get-blocks-noncollapse)]\n (let [block-id (.-id block)\n block-ids (mapv #(.-id %) blocks)]\n (when-let [index (.indexOf block-ids block-id)]\n (let [idx (inc index)]\n (when (>= (count blocks) idx)\n (nth-safe blocks idx))))))))\n\n#?(:cljs\n (defn get-next-block-non-collapsed-skip\n [block]\n (when-let [blocks (get-blocks-noncollapse)]\n (let [block-id (.-id block)\n block-ids (mapv #(.-id %) blocks)]\n (when-let [index (.indexOf block-ids block-id)]\n (loop [idx (inc index)]\n (when (>= (count blocks) idx)\n (let [block (nth-safe blocks idx)\n nested? (->> (array-seq (gdom\/getElementsByClass \"selected\"))\n (some (fn [dom] (.contains dom block))))]\n (if nested?\n (recur (inc idx))\n block)))))))))\n\n(defn rand-str\n [n]\n #?(:cljs (-> (.toString (js\/Math.random) 36)\n (.substr 2 n))\n :clj (->> (repeatedly #(Integer\/toString (rand 36) 36))\n (take n)\n (apply str))))\n\n(defn unique-id\n []\n (str (rand-str 6) (rand-str 3)))\n\n(defn pp-str [x]\n #_:clj-kondo\/ignore\n (with-out-str (clojure.pprint\/pprint x)))\n\n(defn hiccup-keywordize\n [hiccup]\n (walk\/postwalk\n (fn [f]\n (if (and (vector? f) (string? (first f)))\n (update f 0 keyword)\n f))\n hiccup))\n\n#?(:cljs\n (defn chrome?\n []\n (let [user-agent js\/navigator.userAgent\n vendor js\/navigator.vendor]\n (and (safe-re-find #\"Chrome\" user-agent)\n (safe-re-find #\"Google Inc\" vendor)))))\n\n#?(:cljs\n (defn indexeddb-check?\n [error-handler]\n (let [test-db \"logseq-test-db-foo-bar-baz\"\n db (and js\/window.indexedDB\n (js\/window.indexedDB.open test-db))]\n (when (and db (not (chrome?)))\n (gobj\/set db \"onerror\" error-handler)\n (gobj\/set db \"onsuccess\"\n (fn []\n (js\/window.indexedDB.deleteDatabase test-db)))))))\n\n(defonce mac? #?(:cljs goog.userAgent\/MAC\n :clj nil))\n\n(defonce win32? #?(:cljs goog.userAgent\/WINDOWS\n :clj nil))\n\n(defonce linux? #?(:cljs goog.userAgent\/LINUX\n :clj nil))\n\n(defn default-content-with-title\n [text-format]\n (case (name text-format)\n \"org\"\n \"* \"\n\n \"- \"))\n\n#?(:cljs\n (defn get-first-block-by-id\n [block-id]\n (when block-id\n (let [block-id (str block-id)]\n (when (uuid-string? block-id)\n (first (array-seq (js\/document.getElementsByClassName block-id))))))))\n\n#?(:cljs\n (defn url-encode\n [string]\n (some-> string str (js\/encodeURIComponent) (.replace \"+\" \"%20\"))))\n\n#?(:cljs\n (defn search-normalize\n \"Normalize string for searching (loose)\"\n [s remove-accents?]\n (when s\n (let [normalize-str (.normalize (string\/lower-case s) \"NFKC\")]\n (if remove-accents?\n (removeAccents normalize-str)\n normalize-str)))))\n\n#?(:cljs\n (def page-name-sanity-lc\n \"Delegate to gp-util to loosely couple app usages to graph-parser\"\n gp-util\/page-name-sanity-lc))\n\n#?(:cljs\n (defn safe-page-name-sanity-lc\n [s]\n (if (string? s)\n (page-name-sanity-lc s) s)))\n\n(defn get-page-original-name\n [page]\n (or (:block\/original-name page)\n (:block\/name page)))\n\n#?(:cljs\n (defn add-style!\n [style]\n (when (some? style)\n (let [parent-node (d\/sel1 :head)\n id \"logseq-custom-theme-id\"\n old-link-element (d\/sel1 (str \"#\" id))\n style (if (string\/starts-with? style \"http\")\n style\n (str \"data:text\/css;charset=utf-8,\" (js\/encodeURIComponent style)))]\n (when old-link-element\n (d\/remove! old-link-element))\n (let [link (->\n (d\/create-element :link)\n (d\/set-attr! :id id)\n (d\/set-attr! :rel \"stylesheet\")\n (d\/set-attr! :type \"text\/css\")\n (d\/set-attr! :href style)\n (d\/set-attr! :media \"all\"))]\n (d\/append! parent-node link))\n (set-android-theme)))))\n\n(defn remove-common-preceding\n [col1 col2]\n (if (and (= (first col1) (first col2))\n (seq col1))\n (recur (rest col1) (rest col2))\n [col1 col2]))\n\n;; fs\n#?(:cljs\n (defn get-file-ext\n [file]\n (and\n (string? file)\n (string\/includes? file \".\")\n (some-> (gp-util\/path->file-ext file) string\/lower-case))))\n\n(defn get-dir-and-basename\n [path]\n (let [parts (string\/split path \"\/\")\n basename (last parts)\n dir (->> (butlast parts)\n string-join-path)]\n [dir basename]))\n\n(defn get-relative-path\n [current-file-path another-file-path]\n (let [directories-f #(butlast (string\/split % \"\/\"))\n parts-1 (directories-f current-file-path)\n parts-2 (directories-f another-file-path)\n [parts-1 parts-2] (remove-common-preceding parts-1 parts-2)\n another-file-name (last (string\/split another-file-path \"\/\"))]\n (->> (concat\n (if (seq parts-1)\n (repeat (count parts-1) \"..\")\n [\".\"])\n parts-2\n [another-file-name])\n string-join-path)))\n\n;; Copied from https:\/\/github.com\/tonsky\/datascript-todo\n#?(:clj\n (defmacro profile\n [k & body]\n `(if goog.DEBUG\n (let [k# ~k]\n (.time js\/console k#)\n (let [res# (do ~@body)]\n (.timeEnd js\/console k#)\n res#))\n (do ~@body))))\n\n#?(:clj\n (defmacro with-time\n \"Evaluates expr and prints the time it took.\n Returns the value of expr and the spent time of float number in msecs.\"\n [expr]\n `(let [start# (cljs.core\/system-time)\n ret# ~expr]\n {:result ret#\n :time (- (cljs.core\/system-time) start#)})))\n\n;; TODO: profile and profileEnd\n\n(comment\n (= (get-relative-path \"journals\/2020_11_18.org\" \"pages\/grant_ideas.org\")\n \"..\/pages\/grant_ideas.org\")\n\n (= (get-relative-path \"journals\/2020_11_18.org\" \"journals\/2020_11_19.org\")\n \".\/2020_11_19.org\")\n\n (= (get-relative-path \"a\/b\/c\/d\/g.org\" \"a\/b\/c\/e\/f.org\")\n \"..\/e\/f.org\"))\n\n(defn keyname [key] (str (namespace key) \"\/\" (name key)))\n\n#?(:cljs\n (defn drain-chan\n \"drop all stuffs in CH, and return all of them\"\n [ch]\n (->> (repeatedly #(async\/poll! ch))\n (take-while identity))))\n\n#?(:cljs\n (defn <ratelimit\n \"return a channel CH,\n ratelimit flush items in in-ch every max-duration(ms),\n opts:\n - :filter-fn filter item before putting items into returned CH, (filter-fn item)\n will poll it when its return value is channel,\n - :flush-fn exec flush-fn when time to flush, (flush-fn item-coll)\n - :stop-ch stop go-loop when stop-ch closed\n - :distinct-key-fn distinct coll when put into CH\n - :chan-buffer buffer of return CH, default use (async\/chan 1000)\n - :flush-now-ch flush the content in the queue immediately\n - :refresh-timeout-ch refresh (timeout max-duration)\"\n [in-ch max-duration & {:keys [filter-fn flush-fn stop-ch distinct-key-fn chan-buffer flush-now-ch refresh-timeout-ch]}]\n (let [ch (if chan-buffer (async\/chan chan-buffer) (async\/chan 1000))\n stop-ch* (or stop-ch (async\/chan))\n flush-now-ch* (or flush-now-ch (async\/chan))\n refresh-timeout-ch* (or refresh-timeout-ch (async\/chan))]\n (async\/go-loop [timeout-ch (async\/timeout max-duration) coll []]\n (let [{:keys [refresh-timeout timeout e stop flush-now]}\n (async\/alt! refresh-timeout-ch* {:refresh-timeout true}\n timeout-ch {:timeout true}\n in-ch ([e] {:e e})\n stop-ch* {:stop true}\n flush-now-ch* {:flush-now true})]\n (cond\n refresh-timeout\n (recur (async\/timeout max-duration) coll)\n\n (or flush-now timeout)\n (do (async\/onto-chan! ch coll false)\n (flush-fn coll)\n (drain-chan flush-now-ch*)\n (recur (async\/timeout max-duration) []))\n\n (some? e)\n (let [filter-v (filter-fn e)\n filter-v* (if (instance? ManyToManyChannel filter-v)\n (async\/<! filter-v)\n filter-v)]\n (if filter-v*\n (recur timeout-ch (cond->> (conj coll e)\n distinct-key-fn (distinct-by distinct-key-fn)\n true vec))\n (recur timeout-ch coll)))\n\n (or stop\n ;; got nil from in-ch, means in-ch is closed\n ;; so we stop the whole go-loop\n (nil? e))\n (async\/close! ch))))\n ch)))\n\n\n#?(:cljs\n (defn trace!\n []\n (js\/console.trace)))\n\n(defn remove-first [pred coll]\n ((fn inner [coll]\n (lazy-seq\n (when-let [[x & xs] (seq coll)]\n (if (pred x)\n xs\n (cons x (inner xs))))))\n coll))\n\n(def pprint clojure.pprint\/pprint)\n\n#?(:cljs\n (defn backward-kill-word\n [input]\n (let [val (.-value input)\n current (get-selection-start input)\n prev (or\n (->> [(string\/last-index-of val \\space (dec current))\n (string\/last-index-of val \\newline (dec current))]\n (remove nil?)\n (apply max))\n 0)\n idx (if (zero? prev)\n 0\n (->\n (loop [idx prev]\n (if (#{\\space \\newline} (nth-safe val idx))\n (recur (dec idx))\n idx))\n inc))]\n (safe-set-range-text! input \"\" idx current))))\n\n#?(:cljs\n (defn forward-kill-word\n [input]\n (let [val (.-value input)\n current (get-selection-start input)\n current (loop [idx current]\n (if (#{\\space \\newline} (nth-safe val idx))\n (recur (inc idx))\n idx))\n idx (or (->> [(string\/index-of val \\space current)\n (string\/index-of val \\newline current)]\n (remove nil?)\n (apply min))\n (count val))]\n (safe-set-range-text! input \"\" current (inc idx)))))\n\n#?(:cljs\n (defn fix-open-external-with-shift!\n [^js\/MouseEvent e]\n (when (and (.-shiftKey e) win32? (electron?)\n (= (string\/lower-case (.. e -target -nodeName)) \"a\")\n (string\/starts-with? (.. e -target -href) \"file:\"))\n (.preventDefault e))))\n\n(defn classnames\n \"Like react classnames utility:\n\n ```\n [:div {:class (classnames [:a :b {:c true}])}\n ```\n \"\n [args]\n (into #{} (mapcat\n #(if (map? %)\n (for [[k v] %]\n (when v (name k)))\n (when-not (nil? %) [(name %)]))\n args)))\n\n#?(:cljs\n (defn- get-dom-top\n [node]\n (when node\n (gobj\/get (.getBoundingClientRect node) \"top\"))))\n\n#?(:cljs\n (defn sort-by-height\n [elements]\n (sort (fn [x y]\n (< (get-dom-top x) (get-dom-top y)))\n (remove nil? elements))))\n\n#?(:cljs\n (defn calc-delta-rect-offset\n [^js\/HTMLElement target ^js\/HTMLElement container]\n (let [target-rect (bean\/->clj (.toJSON (.getBoundingClientRect target)))\n viewport-rect {:width (.-clientWidth container)\n :height (.-clientHeight container)}]\n\n {:y (- (:height viewport-rect) (:bottom target-rect))\n :x (- (:width viewport-rect) (:right target-rect))})))\n\n(def regex-char-esc-smap\n (let [esc-chars \"{}[]()&^%$#!?*.+|\\\\\"]\n (zipmap esc-chars\n (map #(str \"\\\\\" %) esc-chars))))\n\n(defn regex-escape\n \"Escape all regex meta chars in text.\"\n [text]\n (string\/join (replace regex-char-esc-smap text)))\n\n(comment\n (re-matches (re-pattern (regex-escape \"$u^8(d)+w.*[dw]d?\")) \"$u^8(d)+w.*[dw]d?\"))\n\n#?(:cljs\n (defn meta-key? [e]\n (if mac?\n (gobj\/get e \"metaKey\")\n (gobj\/get e \"ctrlKey\"))))\n\n#?(:cljs\n (defn right-click?\n [e]\n (let [which (gobj\/get e \"which\")\n button (gobj\/get e \"button\")]\n (or (= which 3)\n (= button 2)))))\n\n(def keyboard-height (atom nil))\n#?(:cljs\n (defn scroll-editor-cursor\n [^js\/HTMLElement el & {:keys [to-vw-one-quarter?]}]\n (when (and el (or (mobile-util\/native-platform?) (mobile?)))\n (let [box-rect (.getBoundingClientRect el)\n box-top (.-top box-rect)\n box-bottom (.-bottom box-rect)\n\n header-height (-> (gdom\/getElementByClass \"cp__header\")\n .-clientHeight)\n\n main-node (app-scroll-container-node el)\n scroll-top (.-scrollTop main-node)\n\n current-pos (get-selection-start el)\n mock-text (some-> (gdom\/getElement \"mock-text\")\n gdom\/getChildren\n array-seq\n (nth-safe current-pos))\n offset-top (and mock-text (.-offsetTop mock-text))\n offset-height (and mock-text (.-offsetHeight mock-text))\n\n cursor-y (if offset-top (+ offset-top box-top offset-height 2) box-bottom)\n vw-height (or (.-height js\/window.visualViewport)\n (.-clientHeight js\/document.documentElement))\n ;; mobile toolbar height: 40px\n scroll (- cursor-y (- vw-height (+ @keyboard-height (+ 40 4))))]\n (cond\n (and to-vw-one-quarter? (> cursor-y (* vw-height 0.4)))\n (set! (.-scrollTop main-node) (+ scroll-top (- cursor-y (\/ vw-height 4))))\n\n (and (< cursor-y (+ header-height offset-height 4)) ;; 4 is top+bottom padding for per line\n (>= cursor-y header-height))\n (.scrollBy main-node (bean\/->js {:top (- (+ offset-height 4))}))\n\n (< cursor-y header-height)\n (let [_ (.scrollIntoView el true)\n main-node (app-scroll-container-node el)\n scroll-top (.-scrollTop main-node)]\n (set! (.-scrollTop main-node) (- scroll-top (\/ vw-height 4))))\n\n (> scroll 0)\n (set! (.-scrollTop main-node) (+ scroll-top scroll))\n\n :else\n nil)))))\n\n#?(:cljs\n (do\n (defn breakpoint?\n [size]\n (< (.-offsetWidth js\/document.documentElement) size))\n\n (defn sm-breakpoint?\n [] (breakpoint? 640))))\n\n#?(:cljs\n (do\n (defn goog-event?\n [^js e]\n (and e (fn? (gobj\/get e \"getBrowserEvent\"))))\n\n (defn goog-event-is-composing?\n \"Check if keydown event is a composing (IME) event.\n Ignore the IME process by default.\"\n ([^js e]\n (goog-event-is-composing? e false))\n ([^js e include-process?]\n (when (goog-event? e)\n (let [event-composing? (some-> (.getBrowserEvent e) (.-isComposing))]\n (if include-process?\n (or event-composing?\n (= (gobj\/get e \"keyCode\") 229)\n (= (gobj\/get e \"key\") \"Process\"))\n event-composing?)))))))\n\n#?(:cljs\n (defn native-event-is-composing?\n \"Check if onchange event of Input is a composing (IME) event.\n Always ignore the IME process.\"\n [^js e]\n (when-let [^js native-event\n (and e (cond\n (goog-event? e)\n (.getBrowserEvent e)\n\n (js-in \"_reactName\" e)\n (.-nativeEvent e)\n\n :else e))]\n (.-isComposing native-event))))\n\n#?(:cljs\n (defn open-url\n [url]\n (let [route? (or (string\/starts-with? url\n (string\/replace js\/location.href js\/location.hash \"\"))\n (string\/starts-with? url \"#\"))]\n (if (and (not route?) (electron?))\n (js\/window.apis.openExternal url)\n (set! (.-href js\/window.location) url)))))\n\n(defn collapsed?\n [block]\n (:block\/collapsed? block))\n\n#?(:cljs\n (defn atom? [v]\n (instance? Atom v)))\n\n;; https:\/\/stackoverflow.com\/questions\/32511405\/how-would-time-ago-function-implementation-look-like-in-clojure\n#?(:cljs\n (defn time-ago\n \"time: inst-ms or js\/Date\"\n [time]\n (let [units [{:name \"second\" :limit 60 :in-second 1}\n {:name \"minute\" :limit 3600 :in-second 60}\n {:name \"hour\" :limit 86400 :in-second 3600}\n {:name \"day\" :limit 604800 :in-second 86400}\n {:name \"week\" :limit 2629743 :in-second 604800}\n {:name \"month\" :limit 31556926 :in-second 2629743}\n {:name \"year\" :limit js\/Number.MAX_SAFE_INTEGER :in-second 31556926}]\n diff (t\/in-seconds (t\/interval (if (instance? js\/Date time) time (js\/Date. time)) (t\/now)))]\n (if (< diff 5)\n \"just now\"\n (let [unit (first (drop-while #(or (>= diff (:limit %))\n (not (:limit %)))\n units))]\n (-> (\/ diff (:in-second unit))\n Math\/floor\n int\n (#(str % \" \" (:name unit) (when (> % 1) \"s\") \" ago\"))))))))\n#?(:cljs\n (def JS_ROOT\n (when-not node-test?\n (if (= js\/location.protocol \"file:\")\n \".\/js\"\n \".\/static\/js\"))))\n\n#?(:cljs\n (defn js-load$\n [url]\n (p\/create\n (fn [resolve]\n (load url resolve)))))\n\n#?(:cljs\n (defn css-load$\n ([url] (css-load$ url nil))\n ([url id]\n (p\/create\n (fn [resolve reject]\n (let [id (str \"css-load-\" (or id url))]\n (if-not (gdom\/getElement id)\n (let [^js link (js\/document.createElement \"link\")]\n (set! (.-id link) id)\n (set! (.-rel link) \"stylesheet\")\n (set! (.-href link) url)\n (set! (.-onload link) resolve)\n (set! (.-onerror link) reject)\n (.append (.-head js\/document) link))\n (resolve))))))))\n\n#?(:cljs\n (defn copy-image-to-clipboard\n [src]\n (-> (js\/fetch src)\n (.then (fn [data]\n (-> (.blob data)\n (.then (fn [blob]\n (js\/navigator.clipboard.write (clj->js [(js\/ClipboardItem. (clj->js {(.-type blob) blob}))]))))\n (.catch js\/console.error)))))))\n\n\n(defn memoize-last\n \"Different from core.memoize, it only cache the last result.\n Returns a memoized version of a referentially transparent function. The\n memoized version of the function cache the the last result, and replay when calls\n with the same arguments, or update cache when with different arguments.\"\n [f]\n (let [last-mem (atom nil)\n last-args (atom nil)]\n (fn [& args]\n (if (or (nil? @last-mem)\n (not= @last-args args))\n (let [ret (apply f args)]\n (reset! last-args args)\n (reset! last-mem ret)\n ret)\n @last-mem))))\n\n#?(:cljs\n (do\n (defn <app-wake-up-from-sleep-loop\n \"start a async\/go-loop to check the app awake from sleep.\nUse (async\/tap `pubsub\/app-wake-up-from-sleep-mult`) to receive messages.\nArg *stop: atom, reset to true to stop the loop\"\n [*stop]\n (let [*last-activated-at (volatile! (tc\/to-epoch (t\/now)))]\n (async\/go-loop []\n (if @*stop\n (println :<app-wake-up-from-sleep-loop :stop)\n (let [now-epoch (tc\/to-epoch (t\/now))]\n (when (< @*last-activated-at (- now-epoch 10))\n (async\/>! pubsub\/app-wake-up-from-sleep-ch {:last-activated-at @*last-activated-at :now now-epoch}))\n (vreset! *last-activated-at now-epoch)\n (async\/<! (async\/timeout 5000))\n (recur))))))))\n\n\n(defmacro concatv\n \"Vector version of concat. non-lazy\"\n [& args]\n `(vec (concat ~@args)))\n\n(defmacro mapcatv\n \"Vector version of mapcat. non-lazy\"\n [f coll & colls]\n `(vec (mapcat ~f ~coll ~@colls)))\n\n(defmacro removev\n \"Vector version of remove. non-lazy\"\n [pred coll]\n `(vec (remove ~pred ~coll)))\n\n#?(:cljs\n (defn safe-with-meta\n [o meta]\n (if (satisfies? IMeta o)\n (with-meta o meta)\n o)))\n","(ns frontend.db.model\n \"Core db functions.\"\n ;; TODO: Remove this config once how repos are passed to this ns are standardized\n {:clj-kondo\/config {:linters {:unused-binding {:level :off}}}}\n (:require [clojure.set :as set]\n [clojure.string :as string]\n [clojure.walk :as walk]\n [datascript.core :as d]\n [frontend.date :as date]\n [frontend.db.conn :as conn]\n [frontend.db.react :as react]\n [frontend.db.utils :as db-utils]\n [frontend.state :as state]\n [frontend.util :as util :refer [react]]\n [frontend.util.drawer :as drawer]\n [logseq.db.default :as default-db]\n [logseq.db.rules :as rules]\n [logseq.graph-parser.config :as gp-config]\n [logseq.graph-parser.text :as text]\n [logseq.graph-parser.util.page-ref :as page-ref]\n [logseq.graph-parser.util.db :as db-util]\n [logseq.graph-parser.util :as gp-util]\n [cljs-time.core :as t]\n [cljs-time.format :as tf]))\n\n;; lazy loading\n\n(def initial-blocks-length 50)\n\n(def step-loading-blocks 25)\n\n\n;; TODO: extract to specific models and move data transform logic to the\n;; corresponding handlers.\n\n;; Use it as an input argument for datalog queries\n(def block-attrs\n '[:db\/id\n :block\/uuid\n :block\/parent\n :block\/left\n :block\/collapsed?\n :block\/format\n :block\/refs\n :block\/_refs\n :block\/path-refs\n :block\/tags\n :block\/content\n :block\/marker\n :block\/priority\n :block\/properties\n :block\/properties-order\n :block\/properties-text-values\n :block\/pre-block?\n :block\/scheduled\n :block\/deadline\n :block\/repeated?\n :block\/created-at\n :block\/updated-at\n ;; TODO: remove this in later releases\n :block\/heading-level\n :block\/file\n {:block\/page [:db\/id :block\/name :block\/original-name :block\/journal-day]}\n {:block\/_parent ...}])\n\n(defn sub-block\n [id]\n (when-let [repo (state\/get-current-repo)]\n (->\n (react\/q repo [:frontend.db.react\/block id]\n {:query-fn (fn [_]\n (db-utils\/pull (butlast block-attrs) id))}\n nil)\n react)))\n\n(def get-original-name util\/get-page-original-name)\n\n(defn get-tag-pages\n [repo tag-name]\n (when tag-name\n (d\/q '[:find ?original-name ?name\n :in $ ?tag\n :where\n [?e :block\/name ?tag]\n [?page :block\/tags ?e]\n [?page :block\/original-name ?original-name]\n [?page :block\/name ?name]]\n (conn\/get-db repo)\n (util\/page-name-sanity-lc tag-name))))\n\n(defn get-all-tagged-pages\n [repo]\n (d\/q '[:find ?page-name ?tag\n :where\n [?page :block\/tags ?e]\n [?e :block\/name ?tag]\n [?page :block\/name ?page-name]]\n (conn\/get-db repo)))\n\n(defn get-all-namespace-relation\n [repo]\n (d\/q '[:find ?page-name ?parent\n :where\n [?page :block\/name ?page-name]\n [?page :block\/namespace ?e]\n [?e :block\/name ?parent]]\n (conn\/get-db repo)))\n\n(defn get-all-namespace-parents\n [repo]\n (->> (get-all-namespace-relation repo)\n (map second)))\n\n(defn get-pages\n [repo]\n (->> (d\/q\n '[:find ?page-original-name\n :where\n [?page :block\/name ?page-name]\n [(get-else $ ?page :block\/original-name ?page-name) ?page-original-name]]\n (conn\/get-db repo))\n (map first)))\n\n(defn get-all-pages\n [repo]\n (d\/q\n '[:find [(pull ?page [*]) ...]\n :where\n [?page :block\/name]]\n (conn\/get-db repo)))\n\n(defn get-all-page-original-names\n [repo]\n (let [db (conn\/get-db repo)]\n (->> (d\/datoms db :avet :block\/original-name)\n (map :v))))\n\n(defn get-pages-with-file\n \"Return full file entity for calling file renaming\"\n [repo]\n (d\/q\n '[:find (pull ?page [:block\/name :block\/properties :block\/journal?]) (pull ?file [*])\n :where\n [?page :block\/name ?page-name]\n [?page :block\/file ?file]]\n (conn\/get-db repo)))\n\n(defn get-page-alias\n [repo page-name]\n (when-let [db (and repo (conn\/get-db repo))]\n (some->> (d\/q '[:find ?alias\n :in $ ?page-name\n :where\n [?page :block\/name ?page-name]\n [?page :block\/alias ?alias]]\n db\n (util\/page-name-sanity-lc page-name))\n db-utils\/seq-flatten\n distinct)))\n\n(defn get-alias-source-page\n \"return the source page (page-name) of an alias\"\n [repo alias]\n (when-let [db (and repo (conn\/get-db repo))]\n (let [alias (util\/page-name-sanity-lc alias)\n pages (->>\n (d\/q '[:find (pull ?p [*])\n :in $ ?alias\n :where\n [?a :block\/name ?alias]\n [?p :block\/alias ?a]]\n db\n alias)\n (db-utils\/seq-flatten))]\n ;; may be a case that a user added same alias into multiple pages.\n ;; only return the first result for idiot-proof\n (when (seq pages)\n (some (fn [page]\n (let [aliases (->> (get-in page [:block\/properties :alias])\n (map util\/page-name-sanity-lc)\n set)]\n (when (contains? aliases alias)\n page)))\n pages)))))\n\n(defn get-files\n [repo]\n (when-let [db (conn\/get-db repo)]\n (->> (d\/q\n '[:find ?path\n ;; ?modified-at\n :where\n [?file :file\/path ?path]]\n ;; [?file :file\/last-modified-at ?modified-at]\n\n db)\n (seq)\n ;; (sort-by last)\n (reverse))))\n\n(defn get-files-blocks\n [repo-url paths]\n (let [paths (set paths)\n pred (fn [_db e]\n (contains? paths e))]\n (-> (d\/q '[:find ?block\n :in $ ?pred\n :where\n [?file :file\/path ?path]\n [(?pred $ ?path)]\n [?p :block\/file ?file]\n [?block :block\/page ?p]]\n (conn\/get-db repo-url) pred)\n db-utils\/seq-flatten)))\n\n(defn set-file-last-modified-at!\n \"Refresh file timestamps to DB\"\n [repo path last-modified-at]\n (when (and repo path last-modified-at)\n (when-let [conn (conn\/get-db repo false)]\n (d\/transact! conn\n [{:file\/path path\n :file\/last-modified-at last-modified-at}]\n {:skip-refresh? true}))))\n\n(defn get-file-last-modified-at\n [repo path]\n (when (and repo path)\n (when-let [db (conn\/get-db repo)]\n (-> (db-utils\/entity db [:file\/path path])\n :file\/last-modified-at))))\n\n(defn file-exists?\n [repo path]\n (when (and repo path)\n (when-let [db (conn\/get-db repo)]\n (db-utils\/entity db [:file\/path path]))))\n\n(defn get-files-full\n [repo]\n (when-let [db (conn\/get-db repo)]\n (->>\n (d\/q\n '[:find (pull ?file [*])\n :where\n [?file :file\/path]]\n db)\n (flatten))))\n\n(defn get-file\n ([path]\n (get-file (state\/get-current-repo) path))\n ([repo path]\n (when (and repo path)\n (when-let [db (conn\/get-db repo)]\n (:file\/content (db-utils\/entity db [:file\/path path]))))))\n\n(defn get-custom-css\n []\n (when-let [repo (state\/get-current-repo)]\n (get-file repo \"logseq\/custom.css\")))\n\n(defn get-block-by-uuid\n [id]\n (db-utils\/entity [:block\/uuid (if (uuid? id) id (uuid id))]))\n\n(defn query-block-by-uuid\n \"Return block or page entity, depends on the uuid\"\n [id]\n (db-utils\/pull [:block\/uuid (if (uuid? id) id (uuid id))]))\n\n(defn heading-content->route-name\n \"Converts a heading block's content to its route name. This works\nindependent of format as format specific heading characters are stripped\"\n [block-content]\n (some->> block-content\n (re-find #\"^#{0,}\\s*(.*)(?:\\n|$)\")\n second\n string\/lower-case))\n\n(defn get-block-by-page-name-and-block-route-name\n \"Returns first block for given page name and block's route name. Block's route\n name must match the content of a page's block header\"\n [repo page-name route-name]\n (->> (d\/q '[:find (pull ?b [:block\/uuid])\n :in $ ?page-name ?route-name ?content-matches\n :where\n [?page :block\/name ?page-name]\n [?b :block\/page ?page]\n [?b :block\/properties ?prop]\n [(get ?prop :heading) _]\n [?b :block\/content ?content]\n [(?content-matches ?content ?route-name)]]\n (conn\/get-db repo)\n page-name\n route-name\n (fn content-matches? [block-content external-content]\n (= (heading-content->route-name block-content)\n (string\/lower-case external-content))))\n ffirst))\n\n(defn get-page-format\n [page-name]\n {:post [(keyword? %)]}\n (keyword\n (or\n (let [page (db-utils\/entity [:block\/name (util\/safe-page-name-sanity-lc page-name)])]\n (or\n (:block\/format page)\n (when-let [file (:block\/file page)]\n (when-let [path (:file\/path (db-utils\/entity (:db\/id file)))]\n (gp-util\/get-format path)))))\n (state\/get-preferred-format)\n :markdown)))\n\n(defn page-alias-set\n [repo-url page]\n (when-let [page-id (:db\/id (db-utils\/entity repo-url [:block\/name (util\/safe-page-name-sanity-lc page)]))]\n (->>\n (d\/q '[:find ?e\n :in $ ?page-name %\n :where\n [?page :block\/name ?page-name]\n (alias ?page ?e)]\n (conn\/get-db repo-url)\n (util\/safe-page-name-sanity-lc page)\n (:alias rules\/rules))\n db-utils\/seq-flatten\n (set)\n (set\/union #{page-id}))))\n\n(defn get-entities-by-ids\n ([ids]\n (get-entities-by-ids (state\/get-current-repo) ids))\n ([repo ids]\n (when repo\n (db-utils\/pull-many repo '[*] ids))))\n\n(defn get-page-names-by-ids\n ([ids]\n (get-page-names-by-ids (state\/get-current-repo) ids))\n ([repo ids]\n (when repo\n (->> (db-utils\/pull-many repo '[:block\/name] ids)\n (map :block\/name)))))\n\n(defn get-page-alias-names\n [repo page-name]\n (let [alias-ids (page-alias-set repo page-name)]\n (when (seq alias-ids)\n (let [names (->> (get-page-names-by-ids repo alias-ids)\n distinct\n (remove #(= (util\/page-name-sanity-lc %) (util\/page-name-sanity-lc page-name))))\n lookup-refs (map (fn [name]\n [:block\/name (util\/page-name-sanity-lc name)]) names)]\n (->> (db-utils\/pull-many repo '[:block\/name :block\/original-name] lookup-refs)\n (map (fn [m]\n (or (:block\/original-name m) (:block\/name m)))))))))\n\n(defn with-pages\n [blocks]\n (let [pages-ids (->> (map (comp :db\/id :block\/page) blocks)\n (remove nil?))\n pages (when (seq pages-ids)\n (db-utils\/pull-many '[:db\/id :block\/name :block\/original-name :block\/journal-day] pages-ids))\n pages-map (reduce (fn [acc p] (assoc acc (:db\/id p) p)) {} pages)\n blocks (map\n (fn [block]\n (assoc block :block\/page\n (get pages-map (:db\/id (:block\/page block)))))\n blocks)]\n blocks))\n\n(defn get-page-properties\n [page]\n (when-let [page (db-utils\/entity [:block\/name (util\/safe-page-name-sanity-lc page)])]\n (:block\/properties page)))\n\n;; FIXME: alert\n(defn sort-by-left\n ([blocks parent]\n (sort-by-left blocks parent {:check? true}))\n ([blocks parent {:keys [check?]}]\n (let [blocks (util\/distinct-by :db\/id blocks)]\n (when (and check?\n ;; Top-level blocks on whiteboards have no relationships of :block\/left\n (not= \"whiteboard\" (:block\/type (db-utils\/entity (:db\/id parent)))))\n (when (not= (count blocks) (count (set (map :block\/left blocks))))\n (let [duplicates (->> (map (comp :db\/id :block\/left) blocks)\n frequencies\n (filter (fn [[_k v]] (> v 1)))\n (map (fn [[k _v]]\n (let [left (db-utils\/pull k)]\n {:left left\n :duplicates (->>\n (filter (fn [block]\n (= k (:db\/id (:block\/left block))))\n blocks)\n (map #(select-keys % [:db\/id :block\/level :block\/content :block\/file])))}))))]\n (util\/pprint duplicates)))\n (assert (= (count blocks) (count (set (map :block\/left blocks)))) \"Each block should have a different left node\"))\n\n (let [left->blocks (reduce (fn [acc b] (assoc acc (:db\/id (:block\/left b)) b)) {} blocks)]\n (loop [block parent\n result []]\n (if-let [next (get left->blocks (:db\/id block))]\n (recur next (conj result next))\n (vec result)))))))\n\n(defn try-sort-by-left\n [blocks parent]\n (let [result' (sort-by-left blocks parent {:check? false})]\n (if (= (count result') (count blocks))\n result'\n blocks)))\n\n(defn sort-by-left-recursive\n [form]\n (walk\/postwalk (fn [f]\n (if (and (map? f)\n (:block\/_parent f))\n (let [children (:block\/_parent f)]\n (-> f\n (dissoc :block\/_parent)\n (assoc :block\/children (sort-by-left children f))))\n f))\n form))\n\n(defn get-sorted-page-block-ids\n [page-id]\n (let [root (db-utils\/entity page-id)]\n (loop [result []\n children (sort-by-left (:block\/_parent root) root)]\n (if (seq children)\n (let [child (first children)]\n (recur (conj result (:db\/id child))\n (concat\n (sort-by-left (:block\/_parent child) child)\n (rest children))))\n result))))\n\n(defn sort-page-random-blocks\n \"Blocks could be non consecutive.\"\n [blocks]\n (assert (every? #(= (:block\/page %) (:block\/page (first blocks))) blocks) \"Blocks must to be in a same page.\")\n (let [page-id (:db\/id (:block\/page (first blocks)))\n ;; TODO: there's no need to sort all the blocks\n sorted-ids (get-sorted-page-block-ids page-id)\n blocks-map (zipmap (map :db\/id blocks) blocks)]\n (keep blocks-map sorted-ids)))\n\n;; Diverged of get-sorted-page-block-ids\n(defn get-sorted-page-block-ids-and-levels\n \"page-name: the page name, original name\n return: a list with elements in:\n :id - a list of block ids, sorted by :block\/left\n :level - the level of the block, 1 for root, 2 for children of root, etc.\"\n [page-name]\n {:pre [(string? page-name)]}\n (let [sanitized-page (gp-util\/page-name-sanity-lc page-name)\n page-id (:db\/id (db-utils\/entity [:block\/name sanitized-page]))\n root (db-utils\/entity page-id)]\n (loop [result []\n children (sort-by-left (:block\/_parent root) root)\n ;; BFS log of walking depth\n levels (repeat (count children) 1)]\n (if (seq children)\n (let [child (first children)\n cur-level (first levels)\n next-children (sort-by-left (:block\/_parent child) child)]\n (recur (conj result {:id (:db\/id child) :level cur-level})\n (concat\n next-children\n (rest children))\n (concat\n (repeat (count next-children) (inc cur-level))\n (rest levels))))\n result))))\n\n(defn has-children?\n ([block-id]\n (has-children? (conn\/get-db) block-id))\n ([db block-id]\n (some? (:block\/_parent (db-utils\/entity db [:block\/uuid block-id])))))\n\n(defn- collapsed-and-has-children?\n [db block]\n (and (:block\/collapsed? block) (has-children? db (:block\/uuid block))))\n\n(defn get-by-parent-&-left\n [db parent-id left-id]\n (when (and parent-id left-id)\n (let [lefts (:block\/_left (db-utils\/entity db left-id))]\n (some (fn [node] (when (and (= parent-id (:db\/id (:block\/parent node)))\n (not= parent-id (:db\/id node)))\n node)) lefts))))\n\n(defn- get-next-outdented-block\n \"Get the next outdented block of the block that has the `id`.\n e.g.\n - a\n - b\n - c\n - d\n\n The next outdented block of `c` is `d`.\"\n [db id]\n (when-let [block (db-utils\/entity db id)]\n (let [parent (:block\/parent block)]\n (if-let [parent-sibling (get-by-parent-&-left db\n (:db\/id (:block\/parent parent))\n (:db\/id parent))]\n parent-sibling\n (get-next-outdented-block db (:db\/id parent))))))\n\n(defn top-block?\n [block]\n (= (:db\/id (:block\/parent block))\n (:db\/id (:block\/page block))))\n\n(defn get-block-parent\n ([block-id]\n (get-block-parent (state\/get-current-repo) block-id))\n ([repo block-id]\n (when-let [db (conn\/get-db repo)]\n (when-let [block (db-utils\/entity db [:block\/uuid block-id])]\n (:block\/parent block)))))\n\n;; non recursive query\n(defn get-block-parents\n ([repo block-id]\n (get-block-parents repo block-id 100))\n ([repo block-id depth]\n (loop [block-id block-id\n parents (list)\n d 1]\n (if (> d depth)\n parents\n (if-let [parent (get-block-parent repo block-id)]\n (recur (:block\/uuid parent) (conj parents parent) (inc d))\n parents)))))\n\n;; Use built-in recursive\n(defn get-block-parents-v2\n [repo block-id]\n (d\/pull (conn\/get-db repo)\n '[:db\/id :block\/collapsed? :block\/properties {:block\/parent ...}]\n [:block\/uuid block-id]))\n\n(defn get-next-open-block\n ([db block]\n (get-next-open-block db block nil))\n ([db block scoped-block-id]\n (let [block-id (:db\/id block)\n block-parent-id (:db\/id (:block\/parent block))\n next-block (or\n (if (and (collapsed-and-has-children? db block)\n (not= block-id scoped-block-id)) ; skips children\n ;; Sibling\n (get-by-parent-&-left db block-parent-id block-id)\n (or\n ;; Child\n (get-by-parent-&-left db block-id block-id)\n ;; Sibling\n (get-by-parent-&-left db block-parent-id block-id)))\n\n ;; Next outdented block\n (get-next-outdented-block db block-id))]\n (if (and scoped-block-id next-block)\n (let [parents (->> (get-block-parents (state\/get-current-repo) (:block\/uuid next-block))\n (map :db\/id)\n (set))]\n (when (contains? parents scoped-block-id)\n next-block))\n next-block))))\n\n(defn get-paginated-blocks-no-cache\n \"Result should be sorted.\"\n [db start-id {:keys [limit include-start? scoped-block-id end-id]}]\n (when-let [start (db-utils\/entity db start-id)]\n (let [scoped-block-parents (when scoped-block-id\n (let [block (db-utils\/entity db scoped-block-id)]\n (->> (get-block-parents (state\/get-current-repo) (:block\/uuid block))\n (map :db\/id)\n (set))))\n result (loop [block start\n result []]\n (if (and limit (>= (count result) limit))\n result\n (let [next-block (get-next-open-block db block scoped-block-id)]\n (if next-block\n (cond\n (and (seq scoped-block-parents)\n (contains? scoped-block-parents (:db\/id (:block\/parent next-block))))\n result\n\n (and end-id (= end-id (:db\/id next-block)))\n (conj result next-block)\n\n :else\n (recur next-block (conj result next-block)))\n result))))]\n (if include-start?\n (cons start result)\n result))))\n\n(defn get-block-last-direct-child\n \"Notice: if `not-collapsed?` is true, will skip searching for any collapsed block.\"\n ([db db-id]\n (get-block-last-direct-child db db-id true))\n ([db db-id not-collapsed?]\n (when-let [block (db-utils\/entity db db-id)]\n (when (if not-collapsed?\n (not (collapsed-and-has-children? db block))\n true)\n (let [children (:block\/_parent block)\n all-left (set (concat (map (comp :db\/id :block\/left) children) [db-id]))\n all-ids (set (map :db\/id children))]\n (first (set\/difference all-ids all-left)))))))\n\n(defn get-block-last-child\n [db db-id]\n (let [last-child (get-block-last-direct-child db db-id)]\n (loop [prev last-child\n last-child last-child]\n (if last-child\n (recur last-child (get-block-last-direct-child db last-child))\n prev))))\n\n(defn get-prev-open-block\n [db id]\n (let [block (db-utils\/entity db id)\n left (:block\/left block)\n left-id (:db\/id left)]\n (if (= (:db\/id left) (:db\/id (:block\/parent block)))\n left-id\n (if (util\/collapsed? left)\n left-id\n (or (get-block-last-child db (:db\/id left)) left-id)))))\n\n(defn recursive-child?\n [repo child-id parent-id]\n (let [*last-node (atom nil)]\n (loop [node (db-utils\/entity repo child-id)]\n (when-not (= @*last-node node)\n (reset! *last-node node)\n (if node\n (let [parent (:block\/parent node)]\n (if (= (:db\/id parent) parent-id)\n true\n (recur parent)))\n false)))))\n\n(defn get-prev-sibling\n [db id]\n (when-let [e (db-utils\/entity db id)]\n (let [left (:block\/left e)]\n (when (not= (:db\/id left) (:db\/id (:block\/parent e)))\n left))))\n\n(defn get-right-sibling\n [db db-id]\n (when-let [block (db-utils\/entity db db-id)]\n (get-by-parent-&-left db\n (:db\/id (:block\/parent block))\n db-id)))\n\n(defn last-child-block?\n \"The child block could be collapsed.\"\n [db parent-id child-id]\n (when-let [child (db-utils\/entity db child-id)]\n (cond\n (= parent-id child-id)\n true\n\n (get-right-sibling db child-id)\n false\n\n :else\n (last-child-block? db parent-id (:db\/id (:block\/parent child))))))\n\n(defn- consecutive-block?\n [block-1 block-2]\n (let [db (conn\/get-db)\n aux-fn (fn [block-1 block-2]\n (and (= (:block\/page block-1) (:block\/page block-2))\n (or\n ;; sibling or child\n (= (:db\/id (:block\/left block-2)) (:db\/id block-1))\n (when-let [prev-sibling (get-prev-sibling db (:db\/id block-2))]\n (last-child-block? db (:db\/id prev-sibling) (:db\/id block-1))))))]\n (or (aux-fn block-1 block-2) (aux-fn block-2 block-1))))\n\n(defn get-non-consecutive-blocks\n [blocks]\n (vec\n (keep-indexed\n (fn [i _block]\n (when (< (inc i) (count blocks))\n (when-not (consecutive-block? (nth blocks i)\n (nth blocks (inc i)))\n (nth blocks i))))\n blocks)))\n\n(defn- get-start-id-for-pagination-query\n [repo-url current-db {:keys [db-before tx-meta] :as tx-report}\n result outliner-op page-id block-id tx-block-ids]\n (let [db-before (or db-before current-db)\n cached-ids (map :db\/id @result)\n cached-ids-set (set (conj cached-ids page-id))\n first-changed-id (cond\n (= (:real-outliner-op tx-meta) :indent-outdent)\n (if (state\/logical-outdenting?)\n (first (:move-blocks tx-meta))\n (last (:move-blocks tx-meta)))\n\n (= outliner-op :move-blocks)\n (let [{:keys [move-blocks target from-page to-page]} tx-meta]\n (cond\n (= page-id target) ; move to the first block\n nil\n\n (and from-page to-page (not= from-page to-page))\n (if (= page-id from-page)\n (first move-blocks)\n target)\n\n :else\n ;; same page, get the most top block before dragging\n (let [match-ids (set (conj move-blocks target))]\n (loop [[id & others] cached-ids]\n (if id\n (if (contains? match-ids id)\n id\n (when (seq others)\n (recur others)))\n nil)))))\n :else\n (let [insert? (= :insert-blocks outliner-op)]\n (some #(when (and (or (and insert? (not (contains? cached-ids-set %)))\n true)\n (recursive-child? repo-url % block-id))\n %) tx-block-ids)))]\n (when first-changed-id\n (or (get-prev-open-block db-before first-changed-id)\n (get-prev-open-block current-db first-changed-id)))))\n\n(defn- build-paginated-blocks-from-cache\n \"Notice: tx-report could be nil.\"\n [repo-url tx-report result outliner-op page-id block-id tx-block-ids scoped-block-id]\n (let [{:keys [tx-meta]} tx-report\n current-db (conn\/get-db repo-url)]\n (cond\n (and (or (:undo? tx-meta) (:redo? tx-meta)) @result)\n (let [blocks-range (:pagination-blocks-range tx-meta)\n [start-block-id end-block-id] (:new blocks-range)]\n (get-paginated-blocks-no-cache current-db start-block-id\n {:end-id end-block-id\n :include-start? true\n :scoped-block-id scoped-block-id}))\n\n (and (= :delete-blocks outliner-op)\n (<= (count @result) initial-blocks-length)) ; load more blocks\n nil\n\n (= :save-block outliner-op)\n @result\n\n (contains? #{:insert-blocks :collapse-expand-blocks :move-blocks} outliner-op)\n (when-let [start-id (get-start-id-for-pagination-query\n repo-url current-db tx-report result outliner-op page-id block-id tx-block-ids)]\n (let [start-page? (:block\/name (db-utils\/entity start-id))]\n (when-not start-page?\n (let [previous-blocks (take-while (fn [b] (not= start-id (:db\/id b))) @result)\n limit (-> (max (- initial-blocks-length (count previous-blocks))\n (count tx-block-ids))\n (+ 25))\n more (get-paginated-blocks-no-cache current-db start-id {:limit limit\n :include-start? true\n :scoped-block-id scoped-block-id})]\n (concat previous-blocks more)))))\n\n :else\n nil)))\n\n(defn get-paginated-blocks\n \"Get paginated blocks for a page or a specific block.\n `scoped-block-id`: if specified, returns its children only.\"\n ([repo-url block-id]\n (get-paginated-blocks repo-url block-id {}))\n ([repo-url block-id {:keys [pull-keys start-block limit use-cache? scoped-block-id]\n :or {pull-keys '[* :block\/_refs]\n limit initial-blocks-length\n use-cache? true\n scoped-block-id nil}}]\n (when block-id\n (assert (integer? block-id) (str \"wrong block-id: \" block-id))\n (let [entity (db-utils\/entity repo-url block-id)\n page? (some? (:block\/name entity))\n page-entity (if page? entity (:block\/page entity))\n page-id (:db\/id page-entity)\n bare-page-map {:db\/id page-id\n :block\/name (:block\/name page-entity)\n :block\/original-name (:block\/original-name page-entity)\n :block\/journal-day (:block\/journal-day page-entity)}\n query-key (if page?\n :frontend.db.react\/page-blocks\n :frontend.db.react\/block-and-children)]\n (some->\n (react\/q repo-url [query-key block-id]\n {:use-cache? use-cache?\n :query-fn (fn [db tx-report result]\n (let [tx-data (:tx-data tx-report)\n refs (some->> (filter #(= :block\/refs (:a %)) tx-data)\n (map :v))\n tx-block-ids (distinct (-> (map :e tx-data)\n (concat refs)))\n [tx-id->block cached-id->block] (when (and tx-report result)\n (let [blocks (->> (db-utils\/pull-many repo-url pull-keys tx-block-ids)\n (remove nil?))]\n [(zipmap (mapv :db\/id blocks) blocks)\n (zipmap (mapv :db\/id @result) @result)]))\n limit (if (and result @result)\n (max (+ (count @result) 5) limit)\n limit)\n outliner-op (get-in tx-report [:tx-meta :outliner-op])\n blocks (build-paginated-blocks-from-cache repo-url tx-report result outliner-op page-id block-id tx-block-ids scoped-block-id)\n blocks (or blocks\n (get-paginated-blocks-no-cache (conn\/get-db repo-url) block-id {:limit limit\n :include-start? (not page?)\n :scoped-block-id scoped-block-id}))\n block-eids (map :db\/id blocks)\n blocks (if (and (seq tx-id->block)\n (not (contains? #{:move-blocks} outliner-op)))\n (map (fn [id]\n (or (get tx-id->block id)\n (get cached-id->block id)\n (db-utils\/pull repo-url pull-keys id))) block-eids)\n (db-utils\/pull-many repo-url pull-keys block-eids))\n blocks (remove (fn [b] (nil? (:block\/content b))) blocks)]\n\n (map (fn [b] (assoc b :block\/page bare-page-map)) blocks)))}\n nil)\n react)))))\n\n(defn get-page-blocks-no-cache\n \"Return blocks of the designated page, without using cache.\n page - name \/ title of the page\"\n ([page]\n (get-page-blocks-no-cache (state\/get-current-repo) page nil))\n ([repo-url page]\n (get-page-blocks-no-cache repo-url page nil))\n ([repo-url page {:keys [pull-keys]\n :or {pull-keys '[*]}}]\n (when page\n (let [page (util\/page-name-sanity-lc page)\n page-id (:db\/id (db-utils\/entity repo-url [:block\/name page]))\n db (conn\/get-db repo-url)]\n (when page-id\n (let [datoms (d\/datoms db :avet :block\/page page-id)\n block-eids (mapv :e datoms)]\n (db-utils\/pull-many repo-url pull-keys block-eids)))))))\n\n(defn get-page-blocks-count\n [repo page-id]\n (when-let [db (conn\/get-db repo)]\n (count (d\/datoms db :avet :block\/page page-id))))\n\n(defn page-exists?\n \"Whether a page exists.\"\n [page-name]\n (when page-name\n (db-utils\/entity [:block\/name (util\/page-name-sanity-lc page-name)])))\n\n(defn page-empty?\n \"Whether a page is empty. Does it has a non-page block?\n `page-id` could be either a string or a db\/id.\"\n [repo page-id]\n (when-let [db (conn\/get-db repo)]\n (try\n (let [page-id (if (string? page-id)\n [:block\/name (util\/safe-page-name-sanity-lc page-id)]\n page-id)\n page (db-utils\/entity db page-id)]\n (nil? (:block\/_left page)))\n (catch :default e\n (when (string\/includes? (ex-message e) \"Lookup ref attribute should be marked as :db\/unique: [:block\/name\")\n ;; old db schema\n (state\/pub-event! [:notification\/show\n {:content \"It seems that the current graph is outdated, please re-index it.\"\n :status :error}]))))))\n\n(defn page-empty-or-dummy?\n [repo page-id]\n (or\n (page-empty? repo page-id)\n (when-let [db (conn\/get-db repo)]\n (let [datoms (d\/datoms db :avet :block\/page page-id)]\n (and (= (count datoms) 1)\n (= \"\" (:block\/content (db-utils\/pull (:e (first datoms))))))))))\n\n(defn parents-collapsed?\n [repo block-uuid]\n (when-let [block (:block\/parent (get-block-parents-v2 repo block-uuid))]\n (->> (tree-seq map? (fn [x] [(:block\/parent x)]) block)\n (some util\/collapsed?))))\n\n(defn get-block-page\n [repo block-uuid]\n (assert (uuid? block-uuid) (str \"get-block-page requires block-uuid to be of type uuid but got \" block-uuid))\n (when-let [block (db-utils\/entity repo [:block\/uuid block-uuid])]\n (db-utils\/entity repo (:db\/id (:block\/page block)))))\n\n(defn get-pages-by-name-partition\n [repo partition]\n (when-let [db (conn\/get-db repo)]\n (when-not (string\/blank? partition)\n (let [partition (util\/page-name-sanity-lc (string\/trim partition))\n ids (->> (d\/datoms db :aevt :block\/name)\n (filter (fn [datom]\n (let [page (:v datom)]\n (string\/includes? page partition))))\n (map :e))]\n (when (seq ids)\n (db-utils\/pull-many repo\n '[:db\/id :block\/name :block\/original-name]\n ids))))))\n(defn get-block-children-ids-in-db\n [db block-uuid]\n (when-let [eid (:db\/id (db-utils\/entity db [:block\/uuid block-uuid]))]\n (let [seen (volatile! [])]\n (loop [steps 100 ;check result every 100 steps\n eids-to-expand [eid]]\n (when (seq eids-to-expand)\n (let [eids-to-expand*\n (mapcat (fn [eid] (map first (d\/datoms db :avet :block\/parent eid))) eids-to-expand)\n uuids-to-add (remove nil? (map #(:block\/uuid (db-utils\/entity db %)) eids-to-expand*))]\n (when (and (zero? steps)\n (seq (set\/intersection (set @seen) (set uuids-to-add))))\n (throw (ex-info \"bad outliner data, need to re-index to fix\"\n {:seen @seen :eids-to-expand eids-to-expand})))\n (vswap! seen (partial apply conj) uuids-to-add)\n (recur (if (zero? steps) 100 (dec steps)) eids-to-expand*))))\n @seen)))\n\n(defn get-block-children-ids\n ([repo block-uuid]\n (when-let [db (conn\/get-db repo)]\n (get-block-children-ids-in-db db block-uuid))))\n\n(defn get-block-immediate-children\n \"Doesn't include nested children.\"\n [repo block-uuid]\n (when-let [db (conn\/get-db repo)]\n (when-let [parent (db-utils\/entity repo [:block\/uuid block-uuid])]\n (sort-by-left (:block\/_parent parent) parent))))\n\n(defn get-block-children\n \"Including nested children.\"\n [repo block-uuid]\n (let [ids (get-block-children-ids repo block-uuid)]\n (when (seq ids)\n (let [ids' (map (fn [id] [:block\/uuid id]) ids)]\n (db-utils\/pull-many repo '[*] ids')))))\n\n;; TODO: use the tree directly\n(defn- flatten-tree\n [blocks-tree]\n (if-let [children (:block\/_parent blocks-tree)]\n (cons (dissoc blocks-tree :block\/_parent) (mapcat flatten-tree children))\n [blocks-tree]))\n\n(defn get-block-and-children\n [repo block-uuid]\n (some-> (d\/q\n '[:find [(pull ?block ?block-attrs) ...]\n :in $ ?id ?block-attrs\n :where\n [?block :block\/uuid ?id]]\n (conn\/get-db repo)\n block-uuid\n block-attrs)\n first\n flatten-tree))\n\n(defn get-file-page\n ([file-path]\n (get-file-page file-path true))\n ([file-path original-name?]\n (when-let [repo (state\/get-current-repo)]\n (when-let [db (conn\/get-db repo)]\n (some->\n (d\/q\n (if original-name?\n '[:find ?page-name\n :in $ ?path\n :where\n [?file :file\/path ?path]\n [?page :block\/file ?file]\n [?page :block\/original-name ?page-name]]\n '[:find ?page-name\n :in $ ?path\n :where\n [?file :file\/path ?path]\n [?page :block\/file ?file]\n [?page :block\/name ?page-name]])\n db file-path)\n db-utils\/seq-flatten\n first)))))\n\n(defn get-page-file\n ([page-name]\n (get-page-file (state\/get-current-repo) page-name))\n ([repo page-name]\n (some-> (or (db-utils\/entity repo [:block\/name page-name])\n (db-utils\/entity repo [:block\/original-name page-name]))\n :block\/file)))\n\n(defn get-block-file-path\n [block]\n (when-let [page-id (:db\/id (:block\/page block))]\n (:file\/path (:block\/file (db-utils\/entity page-id)))))\n\n(defn get-file-page-id\n [file-path]\n (when-let [repo (state\/get-current-repo)]\n (when-let [db (conn\/get-db repo)]\n (some->\n (d\/q\n '[:find ?page\n :in $ ?path\n :where\n [?file :file\/path ?path]\n [?page :block\/name]\n [?page :block\/file ?file]]\n db file-path)\n db-utils\/seq-flatten\n first))))\n\n(defn get-page\n [page-name]\n (if-let [id (parse-uuid page-name)]\n (db-utils\/entity [:block\/uuid id])\n (db-utils\/entity [:block\/name (util\/page-name-sanity-lc page-name)])))\n\n(defn get-redirect-page-name\n \"Given any readable page-name, return the exact page-name in db. If page\n doesn't exists yet, will return the passed `page-name`. Accepts both\n sanitized or unsanitized names.\n alias?: if true, alias is allowed to be returned; otherwise, it would be deref.\"\n ([page-name] (get-redirect-page-name page-name false))\n ([page-name alias?]\n (when page-name\n (let [page-name' (util\/page-name-sanity-lc page-name)\n page-entity (db-utils\/entity [:block\/name page-name'])]\n (cond\n alias?\n page-name'\n\n (nil? page-entity)\n page-name\n\n (page-empty-or-dummy? (state\/get-current-repo) (:db\/id page-entity))\n (let [source-page (get-alias-source-page (state\/get-current-repo) page-name')]\n (or (when source-page (:block\/name source-page))\n page-name'))\n\n :else\n page-name')))))\n\n(defn get-page-original-name\n [page-name]\n (when (string? page-name)\n (let [page (db-utils\/pull [:block\/name (util\/page-name-sanity-lc page-name)])]\n (or (:block\/original-name page)\n (:block\/name page)))))\n\n(defn get-journals-length\n []\n (let [today (db-util\/date->int (js\/Date.))]\n (d\/q '[:find (count ?page) .\n :in $ ?today\n :where\n [?page :block\/journal? true]\n [?page :block\/journal-day ?journal-day]\n [(<= ?journal-day ?today)]]\n (conn\/get-db (state\/get-current-repo))\n today)))\n\n(defn get-latest-journals\n ([n]\n (get-latest-journals (state\/get-current-repo) n))\n ([repo-url n]\n (when (conn\/get-db repo-url)\n (let [date (js\/Date.)\n _ (.setDate date (- (.getDate date) (dec n)))\n today (db-util\/date->int (js\/Date.))]\n (->>\n (react\/q repo-url [:frontend.db.react\/journals] {:use-cache? false}\n '[:find [(pull ?page [*]) ...]\n :in $ ?today\n :where\n [?page :block\/name ?page-name]\n [?page :block\/journal? true]\n [?page :block\/journal-day ?journal-day]\n [(<= ?journal-day ?today)]]\n today)\n (react)\n (sort-by :block\/journal-day)\n (reverse)\n (take n))))))\n\n;; get pages that this page referenced\n(defn get-page-referenced-pages\n [repo page]\n (when-let [db (conn\/get-db repo)]\n (let [page-name (util\/safe-page-name-sanity-lc page)\n pages (page-alias-set repo page)\n page-id (:db\/id (db-utils\/entity [:block\/name page-name]))\n ref-pages (d\/q\n '[:find [?ref-page-name ...]\n :in $ ?pages\n :where\n [(untuple ?pages) [?page ...]]\n [?block :block\/page ?page]\n [?block :block\/refs ?ref-page]\n [?ref-page :block\/name ?ref-page-name]]\n db\n pages)]\n (mapv (fn [page] [page (get-page-alias repo page)]) ref-pages))))\n\n(def ns-char \"\/\")\n(def ns-re #\"\/\")\n\n(defn- get-parents-namespace-list\n \"Return list of parents namespace\"\n [page-namespace & nested-found]\n (if (text\/namespace-page? page-namespace)\n (let [pre-nested-vec (drop-last (string\/split page-namespace ns-re))\n my-nested-found (if (nil? nested-found)\n []\n nested-found)]\n (if (= (count pre-nested-vec) 1)\n (conj my-nested-found (nth pre-nested-vec 0))\n (let [pre-nested-str (string\/join ns-char pre-nested-vec)]\n (recur pre-nested-str (conj my-nested-found pre-nested-str)))))\n []))\n\n(defn- get-unnecessary-namespaces-name\n \"Return unnecessary namespace from a list of page's name\"\n [pages-list]\n (->> pages-list\n (remove nil?)\n (mapcat get-parents-namespace-list)\n distinct))\n\n(defn- remove-nested-namespaces-link\n \"Remove relations between pages and their nested namespace\"\n [pages-relations]\n (let [pages-relations-to-return (distinct (mapcat\n identity\n (for [item (for [a-link-from (mapv (fn [a-rel] (first a-rel)) pages-relations)]\n [a-link-from (mapv\n (fn [a-rel] (second a-rel))\n (filterv\n (fn [link-target] (= a-link-from (first link-target)))\n pages-relations))])\n :let [list-to (get item 1)\n page (get item 0)\n namespaces-to-remove (get-unnecessary-namespaces-name list-to)\n list-to-without-nested-ns (filterv (fn [elem] (not (some #{elem} namespaces-to-remove))) list-to)\n node-links (for [item-ok list-to-without-nested-ns]\n [page item-ok])]]\n (seq node-links))))]\n pages-relations-to-return))\n\n;; Ignore files with empty blocks for now\n(defn get-pages-relation\n [repo with-journal?]\n (when-let [db (conn\/get-db repo)]\n (let [q (if with-journal?\n '[:find ?page ?ref-page-name\n :where\n [?p :block\/name ?page]\n [?block :block\/page ?p]\n [?block :block\/refs ?ref-page]\n [?ref-page :block\/name ?ref-page-name]]\n '[:find ?page ?ref-page-name\n :where\n [?p :block\/journal? false]\n [?p :block\/name ?page]\n [?block :block\/page ?p]\n [?block :block\/refs ?ref-page]\n [?ref-page :block\/name ?ref-page-name]])]\n (->>\n (d\/q q db)\n (map (fn [[page ref-page-name]]\n [page ref-page-name]))\n (remove-nested-namespaces-link)))))\n\n;; get pages who mentioned this page\n;; TODO: use :block\/_refs\n(defn get-pages-that-mentioned-page\n [repo page include-journals]\n (when (conn\/get-db repo)\n (let [page-id (:db\/id (db-utils\/entity [:block\/name (util\/safe-page-name-sanity-lc page)]))\n pages (page-alias-set repo page)\n query-base '[:find ?mentioned-page-name\n :in $ ?pages ?page-name\n :where\n [?block :block\/refs ?p]\n [(contains? ?pages ?p)]\n [?block :block\/page ?mentioned-page]\n [?mentioned-page :block\/name ?mentioned-page-name]]\n query (if include-journals\n query-base\n (conj query-base '[?mentioned-page :block\/journal? false]))\n\n mentioned-pages (->> (react\/q repo [:frontend.db.react\/page<-pages page-id] {:use-cache? false}\n query\n pages\n page)\n react\n db-utils\/seq-flatten)]\n (mapv (fn [page] [page (get-page-alias repo page)]) mentioned-pages))))\n\n(defn get-page-referenced-blocks-full\n ([page]\n (get-page-referenced-blocks-full (state\/get-current-repo) page nil))\n ([page options]\n (get-page-referenced-blocks-full (state\/get-current-repo) page options))\n ([repo page options]\n (when repo\n (when-let [db (conn\/get-db repo)]\n (let [page-id (:db\/id (db-utils\/entity [:block\/name (util\/safe-page-name-sanity-lc page)]))\n pages (page-alias-set repo page)\n aliases (set\/difference pages #{page-id})]\n (->>\n (d\/q\n '[:find [(pull ?block ?block-attrs) ...]\n :in $ [?ref-page ...] ?block-attrs\n :where\n [?block :block\/path-refs ?ref-page]]\n db\n pages\n (butlast block-attrs))\n (remove (fn [block] (= page-id (:db\/id (:block\/page block)))))\n db-utils\/group-by-page\n (map (fn [[k blocks]]\n (let [k (if (contains? aliases (:db\/id k))\n (assoc k :block\/alias? true)\n k)]\n [k blocks])))))))))\n\n(defn get-page-referenced-blocks\n ([page]\n (get-page-referenced-blocks (state\/get-current-repo) page nil))\n ([page options]\n (get-page-referenced-blocks (state\/get-current-repo) page options))\n ([repo page options]\n (when repo\n (when (conn\/get-db repo)\n (let [page-id (:db\/id (db-utils\/entity [:block\/name (util\/safe-page-name-sanity-lc page)]))\n pages (page-alias-set repo page)\n aliases (set\/difference pages #{page-id})]\n (->>\n (react\/q repo\n [:frontend.db.react\/refs page-id]\n {:use-cache? false\n :query-fn (fn []\n (let [entities (mapcat (fn [id]\n (:block\/_path-refs (db-utils\/entity id))) pages)\n blocks (map (fn [e]\n {:block\/parent (:block\/parent e)\n :block\/left (:block\/left e)\n :block\/page (:block\/page e)\n :block\/collapsed? (:block\/collapsed? e)}) entities)]\n {:entities entities\n :blocks blocks}))}\n nil)\n react\n :entities\n (remove (fn [block] (= page-id (:db\/id (:block\/page block)))))))))))\n\n(defn get-date-scheduled-or-deadlines\n [journal-title]\n (when-let [date (date\/journal-title->int journal-title)]\n (let [future-days (state\/get-scheduled-future-days)\n date-format (tf\/formatter \"yyyyMMdd\")\n current-day (tf\/parse date-format (str date))\n future-day (some->> (t\/plus current-day (t\/days future-days))\n (tf\/unparse date-format)\n (parse-long))]\n (when future-day\n (when-let [repo (state\/get-current-repo)]\n (->> (react\/q repo [:custom :scheduled-deadline journal-title]\n {:use-cache? false}\n '[:find [(pull ?block ?block-attrs) ...]\n :in $ ?day ?future ?block-attrs\n :where\n (or\n [?block :block\/scheduled ?d]\n [?block :block\/deadline ?d])\n [(get-else $ ?block :block\/repeated? false) ?repeated]\n [(get-else $ ?block :block\/marker \"NIL\") ?marker]\n [(not= ?marker \"DONE\")]\n [(not= ?marker \"CANCELED\")]\n [(not= ?marker \"CANCELLED\")]\n [(<= ?d ?future)]\n (or-join [?repeated ?d ?day]\n [(true? ?repeated)]\n [(>= ?d ?day)])]\n date\n future-day\n block-attrs)\n react\n (sort-by-left-recursive)\n db-utils\/group-by-page))))))\n\n(defn- pattern [name]\n (re-pattern (str \"(?i)(^|[^\\\\[#0-9a-zA-Z]|((^|[^\\\\[])\\\\[))\"\n (util\/regex-escape name)\n \"($|[^0-9a-zA-Z])\")))\n\n(defn get-page-unlinked-references\n [page]\n (when-let [repo (state\/get-current-repo)]\n (when (conn\/get-db repo)\n (let [page (util\/safe-page-name-sanity-lc page)\n page-id (:db\/id (db-utils\/entity [:block\/name page]))\n alias-names (get-page-alias-names repo page)\n patterns (->> (conj alias-names page)\n (map pattern))\n filter-fn (fn [datom]\n (some (fn [p]\n (re-find p (->> (:v datom)\n (drawer\/remove-logbook))))\n patterns))]\n (->> (react\/q repo [:frontend.db.react\/page-unlinked-refs page-id]\n {:query-fn (fn [db _tx-report _result]\n (let [ids\n (->> (d\/datoms db :aevt :block\/content)\n (filter filter-fn)\n (map :e))\n result (d\/pull-many db block-attrs ids)]\n (remove (fn [block] (= page-id (:db\/id (:block\/page block)))) result)))}\n nil)\n react\n (sort-by-left-recursive)\n db-utils\/group-by-page)))))\n\n(defn get-block-referenced-blocks\n ([block-uuid]\n (get-block-referenced-blocks block-uuid {}))\n ([block-uuid options]\n (when-let [repo (state\/get-current-repo)]\n (when (conn\/get-db repo)\n (let [block (db-utils\/entity [:block\/uuid block-uuid])\n query-result (->> (react\/q repo [:frontend.db.react\/refs\n (:db\/id block)]\n {}\n '[:find [(pull ?ref-block ?block-attrs) ...]\n :in $ ?block-uuid ?block-attrs\n :where\n [?block :block\/uuid ?block-uuid]\n [?ref-block :block\/refs ?block]]\n block-uuid\n block-attrs)\n react\n (sort-by-left-recursive))]\n (db-utils\/group-by-page query-result))))))\n\n(defn journal-page?\n \"sanitized page-name only\"\n [page-name]\n (:block\/journal? (db-utils\/entity [:block\/name page-name])))\n\n(defn get-all-templates\n []\n (let [pred (fn [_db properties]\n (some? (:template properties)))]\n (->> (d\/q\n '[:find ?b ?p\n :in $ ?pred\n :where\n [?b :block\/properties ?p]\n [(?pred $ ?p)]]\n (conn\/get-db)\n pred)\n (map (fn [[e m]]\n [(get m :template) e]))\n (into {}))))\n\n(defn get-all-properties\n []\n (let [properties (d\/q\n '[:find [?p ...]\n :where\n [_ :block\/properties ?p]]\n (conn\/get-db))\n properties (remove (fn [m] (empty? m)) properties)]\n (->> (map keys properties)\n (apply concat)\n distinct\n sort)))\n\n(defn- property-value-for-refs-and-text\n \"Given a property value's refs and full text, determines the value to\n autocomplete\"\n [[refs text]]\n (if (or (not (coll? refs)) (= 1 (count refs)))\n text\n (map #(cond\n (string\/includes? text (page-ref\/->page-ref %))\n (page-ref\/->page-ref %)\n (string\/includes? text (str \"#\" %))\n (str \"#\" %)\n :else\n %)\n refs)))\n\n(defn get-property-values\n [property]\n (let [pred (fn [_db properties text-properties]\n [(get properties property)\n (get text-properties property)])]\n (->>\n (d\/q\n '[:find ?property-val ?text-property-val\n :in $ ?pred\n :where\n [?b :block\/properties ?p]\n [?b :block\/properties-text-values ?p2]\n [(?pred $ ?p ?p2) [?property-val ?text-property-val]]]\n (conn\/get-db)\n pred)\n (map property-value-for-refs-and-text)\n (map (fn [x] (if (coll? x) x [x])))\n (apply concat)\n (map str)\n (remove string\/blank?)\n (distinct)\n (sort))))\n\n(defn get-template-by-name\n [name]\n (when (string? name)\n (->> (d\/q\n '[:find [(pull ?b [*]) ...]\n :in $ ?name\n :where\n [?b :block\/properties ?p]\n [(get ?p :template) ?t]\n [(= ?t ?name)]]\n (conn\/get-db)\n name)\n (sort-by :block\/name)\n (first))))\n\n(defonce blocks-count-cache (atom nil))\n\n(defn blocks-count\n ([]\n (blocks-count true))\n ([cache?]\n (if (and cache? @blocks-count-cache)\n @blocks-count-cache\n (when-let [db (conn\/get-db)]\n (let [n (count (d\/datoms db :avet :block\/uuid))]\n (reset! blocks-count-cache n)\n n)))))\n\n(defn get-all-referenced-blocks-uuid\n \"Get all uuids of blocks with any back link exists.\"\n []\n (when-let [db (conn\/get-db)]\n (d\/q '[:find [?refed-uuid ...]\n :where\n ;; ?referee-b is block with ref towards ?refed-b\n [?refed-b :block\/uuid ?refed-uuid]\n [?referee-b :block\/refs ?refed-b]] db)))\n\n;; block\/uuid and block\/content\n(defn get-single-block-contents [id]\n (let [e (db-utils\/entity [:block\/uuid id])]\n (when (and (not (:block\/name e))\n (not (string\/blank? (:block\/content e))))\n {:db\/id (:db\/id e)\n :block\/uuid id\n :block\/page (:db\/id (:block\/page e))\n :block\/content (:block\/content e)\n :block\/format (:block\/format e)})))\n\n(defn get-all-block-contents\n []\n (when-let [db (conn\/get-db)]\n (->> (d\/datoms db :avet :block\/uuid)\n (map :v)\n (map get-single-block-contents)\n (remove nil?))))\n\n(defn get-all-block-avets\n []\n (when-let [db (conn\/get-db)]\n (->> (d\/datoms db :avet :block\/uuid))))\n\n;; Deprecated?\n(defn delete-blocks\n [repo-url files _delete-page?]\n (when (seq files)\n (let [blocks (get-files-blocks repo-url files)]\n (mapv (fn [eid] [:db.fn\/retractEntity eid]) blocks))))\n\n(defn delete-files\n [files]\n (mapv (fn [path] [:db.fn\/retractEntity [:file\/path path]]) files))\n\n(defn delete-pages-by-files\n [files]\n (let [pages (->> (mapv get-file-page files)\n (remove nil?))]\n (when (seq pages)\n (mapv (fn [page] [:db.fn\/retractEntity [:block\/name page]]) (map util\/page-name-sanity-lc pages)))))\n\n(defn set-file-content!\n ([repo path content]\n (set-file-content! repo path content {}))\n ([repo path content opts]\n (when (and repo path)\n (let [tx-data {:file\/path path\n :file\/content content}]\n (db-utils\/transact! repo [tx-data] (merge opts {:skip-refresh? true}))))))\n\n(defn get-pre-block\n [repo page-id]\n (-> (d\/q '[:find (pull ?b [*])\n :in $ ?page\n :where\n [?b :block\/page ?page]\n [?b :block\/pre-block? true]]\n (conn\/get-db repo)\n page-id)\n ffirst))\n\n(defn get-namespace-pages\n \"Accepts both sanitized and unsanitized namespaces\"\n [repo namespace]\n (assert (string? namespace))\n (let [namespace (util\/page-name-sanity-lc namespace)]\n (d\/q\n '[:find [(pull ?c [:db\/id :block\/name :block\/original-name\n :block\/namespace\n {:block\/file [:db\/id :file\/path]}]) ...]\n :in $ % ?namespace\n :where\n [?p :block\/name ?namespace]\n (namespace ?p ?c)]\n (conn\/get-db repo)\n (:namespace rules\/rules)\n namespace)))\n\n(defn- tree [flat-col root]\n (let [sort-fn #(sort-by :block\/name %)\n children (group-by :block\/namespace flat-col)\n namespace-children (fn namespace-children [parent-id]\n (map (fn [m]\n (assoc m :namespace\/children\n (sort-fn (namespace-children {:db\/id (:db\/id m)}))))\n (sort-fn (get children parent-id))))]\n (namespace-children root)))\n\n(defn get-namespace-hierarchy\n \"Unsanitized namespaces\"\n [repo namespace]\n (let [children (get-namespace-pages repo namespace)\n namespace-id (:db\/id (db-utils\/entity [:block\/name (util\/page-name-sanity-lc namespace)]))\n root {:db\/id namespace-id}\n col (conj children root)]\n (tree col root)))\n\n(defn get-page-namespace\n [repo page]\n (:block\/namespace (db-utils\/entity repo [:block\/name (util\/page-name-sanity-lc page)])))\n\n(defn get-page-namespace-routes\n [repo page]\n (assert (string? page))\n (when-let [db (conn\/get-db repo)]\n (when-not (string\/blank? page)\n (let [page (util\/page-name-sanity-lc (string\/trim page))\n page-exist? (db-utils\/entity repo [:block\/name page])\n ids (if page-exist?\n '()\n (->> (d\/datoms db :aevt :block\/name)\n (filter (fn [datom]\n (string\/ends-with? (:v datom) (str \"\/\" page))))\n (map :e)))]\n (when (seq ids)\n (db-utils\/pull-many repo\n '[:db\/id :block\/name :block\/original-name\n {:block\/file [:db\/id :file\/path]}]\n ids))))))\n\n(defn whiteboard-page?\n \"Given a page name or a page object, check if it is a whiteboard page\"\n [page]\n (cond\n (string? page)\n (let [page (db-utils\/entity [:block\/name (util\/safe-page-name-sanity-lc page)])]\n (or\n (= \"whiteboard\" (:block\/type page))\n (when-let [file (:block\/file page)]\n (when-let [path (:file\/path (db-utils\/entity (:db\/id file)))]\n (gp-config\/whiteboard? path)))))\n\n (seq page)\n (= \"whiteboard\" (:block\/type page))\n\n :else false))\n\n(defn get-orphaned-pages\n [{:keys [repo pages empty-ref-f]\n :or {repo (state\/get-current-repo)\n empty-ref-f (fn [page] (zero? (count (:block\/_refs page))))}}]\n (let [pages (->> (or pages (get-pages repo))\n (remove nil?))\n built-in-pages (set (map string\/lower-case default-db\/built-in-pages-names))\n orphaned-pages (->>\n (map\n (fn [page]\n (let [name (util\/page-name-sanity-lc page)]\n (when-let [page (db-utils\/entity [:block\/name name])]\n (and\n (empty-ref-f page)\n (or\n (page-empty? repo (:db\/id page))\n (let [first-child (first (:block\/_left page))\n children (:block\/_page page)]\n (and\n first-child\n (= 1 (count children))\n (contains? #{\"\" \"-\" \"*\"} (string\/trim (:block\/content first-child))))))\n (not (contains? built-in-pages name))\n (not (whiteboard-page? page))\n (not (:block\/_namespace page))\n ;; a\/b\/c might be deleted but a\/b\/c\/d still exists (for backward compatibility)\n (not (and (string\/includes? name \"\/\")\n (not (:block\/journal? page))))\n page))))\n pages)\n (remove false?)\n (remove nil?))]\n orphaned-pages))\n\n(defn get-macro-blocks\n [repo macro-name]\n (d\/q\n '[:find [(pull ?b [*]) ...]\n :in $ ?macro-name\n :where\n [?b :block\/type \"macro\"]\n [?b :block\/properties ?properties]\n [(get ?properties :logseq.macro-name) ?name]\n [(= ?name ?macro-name)]]\n (conn\/get-db repo)\n macro-name))\n\n(defn- block-or-page\n [page-name-or-uuid]\n (let [entity (get-page (str page-name-or-uuid))]\n (if-not (some? (:block\/name entity)) :block :page)))\n\n(defn page?\n [page-name-or-uuid]\n (= :page (block-or-page page-name-or-uuid)))\n\n(defn untitled-page?\n [page-name]\n (when-let [entity (db-utils\/entity [:block\/name (util\/page-name-sanity-lc page-name)])]\n (some? (parse-uuid page-name))))\n\n(defn get-all-whiteboards\n [repo]\n (d\/q\n '[:find [(pull ?page [:block\/name\n :block\/original-name\n :block\/created-at\n :block\/updated-at]) ...]\n :where\n [?page :block\/name]\n [?page :block\/type \"whiteboard\"]]\n (conn\/get-db repo)))\n\n(defn get-whiteboard-id-nonces\n [repo page-name]\n (->> (get-page-blocks-no-cache repo page-name {:keys [:block\/uuid :block\/properties]})\n (filter #(:logseq.tldraw.shape (:block\/properties %)))\n (map (fn [{:block\/keys [uuid properties]}]\n {:id (str uuid)\n :nonce (get-in properties [:logseq.tldraw.shape :nonce])}))))\n","; Copyright (c) Rich Hickey. All rights reserved.\n; The use and distribution terms for this software are covered by the\n; Eclipse Public License 1.0 (http:\/\/opensource.org\/licenses\/eclipse-1.0.php)\n; which can be found in the file epl-v10.html at the root of this distribution.\n; By using this software in any fashion, you are agreeing to be bound by\n; the terms of this license.\n; You must not remove this notice, or any other, from this software.\n\n(ns cljs.core\n (:require goog.math.Long\n goog.math.Integer\n [goog.string :as gstring]\n [goog.object :as gobject]\n [goog.array :as garray]\n [goog.Uri])\n (:import [goog.string StringBuffer]))\n\n;; next line is auto-generated by the build-script - Do not edit!\n(def *clojurescript-version* \"1.11.54\")\n\n;; Setting of these Vars is in ClojureScript code is associated with intrinsics\n;; that affect compilation state, but otherwise turn into no-ops in the emitted\n;; JavaScript.\n\n;; The scope of *unchecked-if* is controlled by balanced pairs of set! calls.\n(def *unchecked-if* false)\n;; The scope of *unchecked-arrays* is file-scope: In JVM ClojureScript its side-\n;; effect is to set same-named analyzer dynamic Var, which is unset via binding\n;; scopes. In self-hosted it is cleared via cljs.js\/post-file-side-effects.\n(def *unchecked-arrays* false)\n;; The scope of *warn-on-infer* is file-scope: Its side effect is to set the\n;; cljs.analyzer\/*cljs-warnings* dynamic Var, which is unset via binding scopes.\n(def *warn-on-infer* false)\n\n(set! *unchecked-arrays* true)\n\n(defonce PROTOCOL_SENTINEL #js {})\n\n(def MODULE_URIS nil) ;; set by compiler\n(def MODULE_INFOS nil) ;; set by compiler\n\n(goog-define\n ^{:dynamic true\n :doc \"Var bound to the name value of the compiler build :target option.\n For example, if the compiler build :target is :nodejs, *target* will be bound\n to \\\"nodejs\\\". *target* is a Google Closure define and can be set by compiler\n :closure-defines option.\"}\n *target* \"default\")\n\n(goog-define\n ^{:dynamic true\n :doc \"Manually set the JavaScript global context. Only \\\"window\\\", \\\"self\\\"\n , and \\\"global\\\" supported. \"}\n *global* \"default\")\n\n(def\n ^{:dynamic true\n :doc \"Var bound to the current namespace. Only used for bootstrapping.\"\n :jsdoc [\"@type {*}\"]}\n *ns* nil)\n\n(def\n ^{:dynamic true\n :jsdoc [\"@type {*}\"]}\n *out* nil)\n\n(def\n ^{:dynamic true}\n *assert* true)\n\n(defonce\n ^{:doc \"Each runtime environment provides a different way to print output.\n Whatever function *print-fn* is bound to will be passed any\n Strings which should be printed.\" :dynamic true}\n *print-fn* nil)\n\n(declare boolean)\n\n(defn ^{:doc \"Arranges to have tap functions executed via the supplied f, a\n function of no arguments. Returns true if successful, false otherwise.\" :dynamic true}\n *exec-tap-fn*\n [f]\n (and\n (exists? js\/setTimeout)\n ;; See CLJS-3274 - workaround for recent WebKit releases\n (boolean (js\/setTimeout f 0))))\n\n(defonce\n ^{:doc \"Each runtime environment provides a different way to print error output.\n Whatever function *print-err-fn* is bound to will be passed any\n Strings which should be printed.\" :dynamic true}\n *print-err-fn* nil)\n\n(defn set-print-fn!\n \"Set *print-fn* to f.\"\n [f] (set! *print-fn* f))\n\n(defn set-print-err-fn!\n \"Set *print-err-fn* to f.\"\n [f] (set! *print-err-fn* f))\n\n(def\n ^{:dynamic true\n :doc \"When set to true, output will be flushed whenever a newline is printed.\n\n Defaults to true.\"}\n *flush-on-newline* true)\n\n(def\n ^{:dynamic true\n :doc \"When set to logical false will drop newlines from printing calls.\n This is to work around the implicit newlines emitted by standard JavaScript\n console objects.\"}\n *print-newline* true)\n\n(def\n ^{:dynamic true\n :doc \"When set to logical false, strings and characters will be printed with\n non-alphanumeric characters converted to the appropriate escape sequences.\n\n Defaults to true\"}\n *print-readably* true)\n\n(def\n ^{:dynamic true\n :doc \"If set to logical true, when printing an object, its metadata will also\n be printed in a form that can be read back by the reader.\n\n Defaults to false.\"}\n *print-meta* false)\n\n(def\n ^{:dynamic true\n :doc \"When set to logical true, objects will be printed in a way that preserves\n their type when read in later.\n\n Defaults to false.\"}\n *print-dup* false)\n\n(def\n ^{:dynamic true\n :doc \"*print-namespace-maps* controls whether the printer will print\n namespace map literal syntax.\n\n Defaults to false, but the REPL binds it to true.\"}\n *print-namespace-maps* false)\n\n(def\n ^{:dynamic true\n :doc \"*print-length* controls how many items of each collection the\n printer will print. If it is bound to logical false, there is no\n limit. Otherwise, it must be bound to an integer indicating the maximum\n number of items of each collection to print. If a collection contains\n more items, the printer will print items up to the limit followed by\n '...' to represent the remaining items. The root binding is nil\n indicating no limit.\"\n :jsdoc [\"@type {null|number}\"]}\n *print-length* nil)\n\n(def\n ^{:dynamic true\n :doc \"*print-level* controls how many levels deep the printer will\n print nested objects. If it is bound to logical false, there is no\n limit. Otherwise, it must be bound to an integer indicating the maximum\n level to print. Each argument to print is at level 0; if an argument is a\n collection, its items are at level 1; and so on. If an object is a\n collection and is at a level greater than or equal to the value bound to\n *print-level*, the printer prints '#' to represent it. The root binding\n is nil indicating no limit.\"\n :jsdoc [\"@type {null|number}\"]}\n *print-level* nil)\n\n(def\n ^{:dynamic true\n :doc \"*print-fns-bodies* controls whether functions print their source or\n only their names.\"}\n *print-fn-bodies* false)\n\n(defonce\n ^{:dynamic true\n :jsdoc [\"@type {*}\"]}\n *loaded-libs* nil)\n\n(defn- pr-opts []\n {:flush-on-newline *flush-on-newline*\n :readably *print-readably*\n :meta *print-meta*\n :dup *print-dup*\n :print-length *print-length*})\n\n(declare into-array)\n\n(defn enable-console-print!\n \"Set *print-fn* to console.log\"\n []\n (set! *print-newline* false)\n (set-print-fn!\n (fn []\n (let [xs (js-arguments)]\n (.apply (.-log js\/console) js\/console (garray\/clone xs)))))\n (set-print-err-fn!\n (fn []\n (let [xs (js-arguments)]\n (.apply (.-error js\/console) js\/console (garray\/clone xs)))))\n nil)\n\n(def\n ^{:doc \"bound in a repl thread to the most recent value printed\"}\n *1)\n\n(def\n ^{:doc \"bound in a repl thread to the second most recent value printed\"}\n *2)\n\n(def\n ^{:doc \"bound in a repl thread to the third most recent value printed\"}\n *3)\n\n(def\n ^{:doc \"bound in a repl thread to the most recent exception caught by the repl\"}\n *e)\n\n(defn truth_\n \"Internal - do not use!\"\n [x]\n (cljs.core\/truth_ x))\n\n(def not-native nil)\n\n(declare instance? Keyword)\n\n(defn ^boolean identical?\n \"Tests if 2 arguments are the same object\"\n [x y]\n (cljs.core\/identical? x y))\n\n(defn ^boolean nil?\n \"Returns true if x is nil, false otherwise.\"\n [x]\n (coercive-= x nil))\n\n(defn ^boolean array?\n \"Returns true if x is a JavaScript array.\"\n [x]\n (if (identical? *target* \"nodejs\")\n (.isArray js\/Array x)\n (instance? js\/Array x)))\n\n(defn ^boolean number?\n \"Returns true if x is a JavaScript number.\"\n [x]\n (cljs.core\/number? x))\n\n(defn not\n \"Returns true if x is logical false, false otherwise.\"\n [x]\n (cond\n (nil? x) true\n (false? x) true\n :else false))\n\n(defn ^boolean some?\n \"Returns true if x is not nil, false otherwise.\"\n [x] (not (nil? x)))\n\n(defn object?\n \"Returns true if x's constructor is Object\"\n [x]\n (if-not (nil? x)\n (identical? (.-constructor x) js\/Object)\n false))\n\n(defn ^boolean string?\n \"Returns true if x is a JavaScript string.\"\n [x]\n (identical? \"string\" (goog\/typeOf x)))\n\n(defn char?\n \"Returns true if x is a JavaScript string of length one.\"\n [x]\n (and (string? x) (== 1 (.-length x))))\n\n(defn any?\n \"Returns true if given any argument.\"\n [x] true)\n\n(set! *unchecked-if* true)\n(defn native-satisfies?\n \"Internal - do not use!\"\n [p x]\n (let [x (if (nil? x) nil x)]\n (cond\n (unchecked-get p (goog\/typeOf x)) true\n (unchecked-get p \"_\") true\n :else false)))\n(set! *unchecked-if* false)\n\n(defn is_proto_\n [x]\n (identical? (.-prototype (.-constructor x)) x))\n\n(def\n ^{:doc \"When compiled for a command-line target, whatever function\n *main-cli-fn* is set to will be called with the command-line\n argv as arguments\"}\n *main-cli-fn* nil)\n\n(def\n ^{:doc \"A sequence of the supplied command line arguments, or nil if\n none were supplied\"}\n *command-line-args* nil)\n\n(defn type\n \"Return x's constructor.\"\n [x]\n (when-not (nil? x)\n (.-constructor x)))\n\n(defn missing-protocol [proto obj]\n (let [ty (type obj)\n ty (if (and ty (.-cljs$lang$type ty))\n (.-cljs$lang$ctorStr ty)\n (goog\/typeOf obj))]\n (js\/Error.\n (.join (array \"No protocol method \" proto\n \" defined for type \" ty \": \" obj) \"\"))))\n\n(defn type->str [ty]\n (if-let [s (.-cljs$lang$ctorStr ty)]\n s\n (str ty)))\n\n;; INTERNAL - do not use, only for Node.js\n(defn load-file [file]\n (when-not js\/COMPILED\n (cljs.core\/load-file* file)))\n\n(if (and (exists? js\/Symbol)\n (identical? (goog\/typeOf js\/Symbol) \"function\"))\n (def ITER_SYMBOL (.-iterator js\/Symbol))\n (def ITER_SYMBOL \"@@iterator\"))\n\n(def ^{:jsdoc [\"@enum {string}\"]}\n CHAR_MAP\n #js {\"-\" \"_\"\n \":\" \"_COLON_\"\n \"+\" \"_PLUS_\"\n \">\" \"_GT_\"\n \"<\" \"_LT_\"\n \"=\" \"_EQ_\"\n \"~\" \"_TILDE_\"\n \"!\" \"_BANG_\"\n \"@\" \"_CIRCA_\"\n \"#\" \"_SHARP_\"\n \"'\" \"_SINGLEQUOTE_\"\n \"\\\\\\\"\" \"_DOUBLEQUOTE_\"\n \"%\" \"_PERCENT_\"\n \"^\" \"_CARET_\"\n \"&\" \"_AMPERSAND_\"\n \"*\" \"_STAR_\"\n \"|\" \"_BAR_\"\n \"{\" \"_LBRACE_\"\n \"}\" \"_RBRACE_\"\n \"[\" \"_LBRACK_\"\n \"]\" \"_RBRACK_\"\n \"\/\" \"_SLASH_\"\n \"\\\\\\\\\" \"_BSLASH_\"\n \"?\" \"_QMARK_\"})\n\n(def ^{:jsdoc [\"@enum {string}\"]}\n DEMUNGE_MAP\n #js {\"_\" \"-\"\n \"_COLON_\" \":\"\n \"_PLUS_\" \"+\"\n \"_GT_\" \">\"\n \"_LT_\" \"<\"\n \"_EQ_\" \"=\"\n \"_TILDE_\" \"~\"\n \"_BANG_\" \"!\"\n \"_CIRCA_\" \"@\"\n \"_SHARP_\" \"#\"\n \"_SINGLEQUOTE_\" \"'\"\n \"_DOUBLEQUOTE_\" \"\\\\\\\"\"\n \"_PERCENT_\" \"%\"\n \"_CARET_\" \"^\"\n \"_AMPERSAND_\" \"&\"\n \"_STAR_\" \"*\"\n \"_BAR_\" \"|\"\n \"_LBRACE_\" \"{\"\n \"_RBRACE_\" \"}\"\n \"_LBRACK_\" \"[\"\n \"_RBRACK_\" \"]\"\n \"_SLASH_\" \"\/\"\n \"_BSLASH_\" \"\\\\\\\\\"\n \"_QMARK_\" \"?\"})\n\n(def DEMUNGE_PATTERN nil)\n\n(defn system-time\n \"Returns highest resolution time offered by host in milliseconds.\"\n []\n (cond\n (and (exists? js\/performance)\n (not (nil? (. js\/performance -now))))\n (.now js\/performance)\n\n (and (exists? js\/process)\n (not (nil? (. js\/process -hrtime))))\n (let [t (.hrtime js\/process)]\n (\/ (+ (* (aget t 0) 1e9) (aget t 1)) 1e6))\n\n :else (.getTime (js\/Date.))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; arrays ;;;;;;;;;;;;;;;;\n\n(declare apply)\n\n(defn ^array make-array\n \"Construct a JavaScript array of the specified dimensions. Accepts ignored\n type argument for compatibility with Clojure. Note that there is no efficient\n way to allocate multi-dimensional arrays in JavaScript; as such, this function\n will run in polynomial time when called with 3 or more arguments.\"\n ([size]\n (js\/Array. size))\n ([type size]\n (make-array size))\n ([type size & more-sizes]\n (let [dims more-sizes\n dimarray (make-array size)]\n (dotimes [i (alength dimarray)]\n (aset dimarray i (apply make-array nil dims)))\n dimarray)))\n\n(defn aclone\n \"Returns a javascript array, cloned from the passed in array\"\n [arr]\n (let [len (alength arr)\n new-arr (make-array len)]\n (dotimes [i len]\n (aset new-arr i (aget arr i)))\n new-arr))\n\n(defn ^array array\n \"Creates a new javascript array.\n@param {...*} var_args\" ;;array is a special case, don't emulate this doc string\n [var-args] ;; [& items]\n (let [a (js\/Array. (alength (cljs.core\/js-arguments)))]\n (loop [i 0]\n (if (< i (alength a))\n (do\n (aset a i (aget (cljs.core\/js-arguments) i))\n (recur (inc i)))\n a))))\n\n(defn- maybe-warn\n [e]\n (when *print-err-fn*\n (*print-err-fn* e)))\n\n(defn- checked-aget\n ([array idx]\n (when-assert\n (try\n (assert (or (array? array) (goog\/isArrayLike array)))\n (assert (number? idx))\n (assert (not (neg? idx)))\n (assert (< idx (alength array)))\n (catch :default e\n (maybe-warn e))))\n (unchecked-get array idx))\n ([array idx & idxs]\n (apply checked-aget (checked-aget array idx) idxs)))\n\n(defn- checked-aset\n ([array idx val]\n (when-assert\n (try\n (assert (or (array? array) (goog\/isArrayLike array)))\n (assert (number? idx))\n (assert (not (neg? idx)))\n (assert (< idx (alength array)))\n (catch :default e\n (maybe-warn e))))\n (unchecked-set array idx val))\n ([array idx idx2 & idxv]\n (apply checked-aset (checked-aget array idx) idx2 idxv)))\n\n(defn- checked-aget'\n ([array idx]\n {:pre [(or (array? array) (goog\/isArrayLike array))\n (number? idx) (not (neg? idx)) (< idx (alength array))]}\n (unchecked-get array idx))\n ([array idx & idxs]\n (apply checked-aget' (checked-aget' array idx) idxs)))\n\n(defn- checked-aset'\n ([array idx val]\n {:pre [(or (array? array) (goog\/isArrayLike array))\n (number? idx) (not (neg? idx)) (< idx (alength array))]}\n (unchecked-set array idx val))\n ([array idx idx2 & idxv]\n (apply checked-aset' (checked-aget' array idx) idx2 idxv)))\n\n(defn aget\n \"Returns the value at the index\/indices. Works on JavaScript arrays.\"\n ([array idx]\n (cljs.core\/aget array idx))\n ([array idx & idxs]\n (apply aget (aget array idx) idxs)))\n\n(defn aset\n \"Sets the value at the index\/indices. Works on JavaScript arrays.\n Returns val.\"\n ([array idx val]\n (cljs.core\/aset array idx val))\n ([array idx idx2 & idxv]\n (apply aset (aget array idx) idx2 idxv)))\n\n(defn ^number alength\n \"Returns the length of the array. Works on arrays of all types.\"\n [array]\n (cljs.core\/alength array))\n\n(declare reduce)\n\n(defn ^array into-array\n \"Returns an array with components set to the values in aseq. Optional type\n argument accepted for compatibility with Clojure.\"\n ([aseq]\n (into-array nil aseq))\n ([type aseq]\n (reduce (fn [a x] (.push a x) a) (array) aseq)))\n\n(defn js-invoke\n \"Invoke JavaScript object method via string. Needed when the\n string is not a valid unquoted property name.\"\n [obj s & args]\n (.apply (unchecked-get obj s) obj (into-array args)))\n\n(defn js-symbol?\n \"Returns true if x is an instance of Symbol\"\n [x]\n (or (identical? (goog\/typeOf x) \"symbol\")\n (and (exists? js\/Symbol)\n (instance? js\/Symbol x))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;; core protocols ;;;;;;;;;;;;;\n\n(defprotocol Fn\n \"Marker protocol\")\n\n(defprotocol IFn\n \"Protocol for adding the ability to invoke an object as a function.\n For example, a vector can also be used to look up a value:\n ([1 2 3 4] 1) => 2\"\n (-invoke\n [this]\n [this a]\n [this a b]\n [this a b c]\n [this a b c d]\n [this a b c d e]\n [this a b c d e f]\n [this a b c d e f g]\n [this a b c d e f g h]\n [this a b c d e f g h i]\n [this a b c d e f g h i j]\n [this a b c d e f g h i j k]\n [this a b c d e f g h i j k l]\n [this a b c d e f g h i j k l m]\n [this a b c d e f g h i j k l m n]\n [this a b c d e f g h i j k l m n o]\n [this a b c d e f g h i j k l m n o p]\n [this a b c d e f g h i j k l m n o p q]\n [this a b c d e f g h i j k l m n o p q r]\n [this a b c d e f g h i j k l m n o p q r s]\n [this a b c d e f g h i j k l m n o p q r s t]\n [this a b c d e f g h i j k l m n o p q r s t rest]))\n\n(defprotocol ICloneable\n \"Protocol for cloning a value.\"\n (^clj -clone [value]\n \"Creates a clone of value.\"))\n\n(defprotocol ICounted\n \"Protocol for adding the ability to count a collection in constant time.\"\n (^number -count [coll]\n \"Calculates the count of coll in constant time. Used by cljs.core\/count.\"))\n\n(defprotocol IEmptyableCollection\n \"Protocol for creating an empty collection.\"\n (-empty [coll]\n \"Returns an empty collection of the same category as coll. Used\n by cljs.core\/empty.\"))\n\n(defprotocol ICollection\n \"Protocol for adding to a collection.\"\n (^clj -conj [coll o]\n \"Returns a new collection of coll with o added to it. The new item\n should be added to the most efficient place, e.g.\n (conj [1 2 3 4] 5) => [1 2 3 4 5]\n (conj '(2 3 4 5) 1) => '(1 2 3 4 5)\"))\n\n#_(defprotocol IOrdinal\n (-index [coll]))\n\n(defprotocol IIndexed\n \"Protocol for collections to provide indexed-based access to their items.\"\n (-nth [coll n] [coll n not-found]\n \"Returns the value at the index n in the collection coll.\n Returns not-found if index n is out of bounds and not-found is supplied.\"))\n\n(defprotocol ASeq\n \"Marker protocol indicating an array sequence.\")\n\n(defprotocol ISeq\n \"Protocol for collections to provide access to their items as sequences.\"\n (-first [coll]\n \"Returns the first item in the collection coll. Used by cljs.core\/first.\")\n (^clj -rest [coll]\n \"Returns a new collection of coll without the first item. It should\n always return a seq, e.g.\n (rest []) => ()\n (rest nil) => ()\"))\n\n(defprotocol INext\n \"Protocol for accessing the next items of a collection.\"\n (^clj-or-nil -next [coll]\n \"Returns a new collection of coll without the first item. In contrast to\n rest, it should return nil if there are no more items, e.g.\n (next []) => nil\n (next nil) => nil\"))\n\n(defprotocol ILookup\n \"Protocol for looking up a value in a data structure.\"\n (-lookup [o k] [o k not-found]\n \"Use k to look up a value in o. If not-found is supplied and k is not\n a valid value that can be used for look up, not-found is returned.\"))\n\n(defprotocol IAssociative\n \"Protocol for adding associativity to collections.\"\n (^boolean -contains-key? [coll k]\n \"Returns true if k is a key in coll.\")\n #_(-entry-at [coll k])\n (^clj -assoc [coll k v]\n \"Returns a new collection of coll with a mapping from key k to\n value v added to it.\"))\n\n(defprotocol IFind\n \"Protocol for implementing entry finding in collections.\"\n (-find [coll k] \"Returns the map entry for key, or nil if key not present.\"))\n\n(defprotocol IMap\n \"Protocol for adding mapping functionality to collections.\"\n #_(-assoc-ex [coll k v])\n (^clj -dissoc [coll k]\n \"Returns a new collection of coll without the mapping for key k.\"))\n\n(defprotocol IMapEntry\n \"Protocol for examining a map entry.\"\n (-key [coll]\n \"Returns the key of the map entry.\")\n (-val [coll]\n \"Returns the value of the map entry.\"))\n\n(defprotocol ISet\n \"Protocol for adding set functionality to a collection.\"\n (^clj -disjoin [coll v]\n \"Returns a new collection of coll that does not contain v.\"))\n\n(defprotocol IStack\n \"Protocol for collections to provide access to their items as stacks. The top\n of the stack should be accessed in the most efficient way for the different\n data structures.\"\n (-peek [coll]\n \"Returns the item from the top of the stack. Is used by cljs.core\/peek.\")\n (^clj -pop [coll]\n \"Returns a new stack without the item on top of the stack. Is used\n by cljs.core\/pop.\"))\n\n(defprotocol IVector\n \"Protocol for adding vector functionality to collections.\"\n (^clj -assoc-n [coll n val]\n \"Returns a new vector with value val added at position n.\"))\n\n(defprotocol IDeref\n \"Protocol for adding dereference functionality to a reference.\"\n (-deref [o]\n \"Returns the value of the reference o.\"))\n\n(defprotocol IDerefWithTimeout\n (-deref-with-timeout [o msec timeout-val]))\n\n(defprotocol IMeta\n \"Protocol for accessing the metadata of an object.\"\n (^clj-or-nil -meta [o]\n \"Returns the metadata of object o.\"))\n\n(defprotocol IWithMeta\n \"Protocol for adding metadata to an object.\"\n (^clj -with-meta [o meta]\n \"Returns a new object with value of o and metadata meta added to it.\"))\n\n(defprotocol IReduce\n \"Protocol for seq types that can reduce themselves.\n Called by cljs.core\/reduce.\"\n (-reduce [coll f] [coll f start]\n \"f should be a function of 2 arguments. If start is not supplied,\n returns the result of applying f to the first 2 items in coll, then\n applying f to that result and the 3rd item, etc.\"))\n\n(defprotocol IKVReduce\n \"Protocol for associative types that can reduce themselves\n via a function of key and val. Called by cljs.core\/reduce-kv.\"\n (-kv-reduce [coll f init]\n \"Reduces an associative collection and returns the result. f should be\n a function that takes three arguments.\"))\n\n(defprotocol IEquiv\n \"Protocol for adding value comparison functionality to a type.\"\n (^boolean -equiv [o other]\n \"Returns true if o and other are equal, false otherwise.\"))\n\n(defprotocol IHash\n \"Protocol for adding hashing functionality to a type.\"\n (-hash [o]\n \"Returns the hash code of o.\"))\n\n(defprotocol ISeqable\n \"Protocol for adding the ability to a type to be transformed into a sequence.\"\n (^clj-or-nil -seq [o]\n \"Returns a seq of o, or nil if o is empty.\"))\n\n(defprotocol ISequential\n \"Marker interface indicating a persistent collection of sequential items\")\n\n(defprotocol IList\n \"Marker interface indicating a persistent list\")\n\n(defprotocol IRecord\n \"Marker interface indicating a record object\")\n\n(defprotocol IReversible\n \"Protocol for reversing a seq.\"\n (^clj -rseq [coll]\n \"Returns a seq of the items in coll in reversed order.\"))\n\n(defprotocol ISorted\n \"Protocol for a collection which can represent their items\n in a sorted manner. \"\n (^clj -sorted-seq [coll ascending?]\n \"Returns a sorted seq from coll in either ascending or descending order.\")\n (^clj -sorted-seq-from [coll k ascending?]\n \"Returns a sorted seq from coll in either ascending or descending order.\n If ascending is true, the result should contain all items which are > or >=\n than k. If ascending is false, the result should contain all items which\n are < or <= than k, e.g.\n (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 true) => (3 4 5)\n (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 false) => (3 2 1)\")\n (-entry-key [coll entry]\n \"Returns the key for entry.\")\n (-comparator [coll]\n \"Returns the comparator for coll.\"))\n\n(defprotocol IWriter\n \"Protocol for writing. Currently only implemented by StringBufferWriter.\"\n (-write [writer s]\n \"Writes s with writer and returns the result.\")\n (-flush [writer]\n \"Flush writer.\"))\n\n(defprotocol IPrintWithWriter\n \"The old IPrintable protocol's implementation consisted of building a giant\n list of strings to concatenate. This involved lots of concat calls,\n intermediate vectors, and lazy-seqs, and was very slow in some older JS\n engines. IPrintWithWriter implements printing via the IWriter protocol, so it\n be implemented efficiently in terms of e.g. a StringBuffer append.\"\n (-pr-writer [o writer opts]))\n\n(defprotocol IPending\n \"Protocol for types which can have a deferred realization. Currently only\n implemented by Delay and LazySeq.\"\n (^boolean -realized? [x]\n \"Returns true if a value for x has been produced, false otherwise.\"))\n\n(defprotocol IWatchable\n \"Protocol for types that can be watched. Currently only implemented by Atom.\"\n (-notify-watches [this oldval newval]\n \"Calls all watchers with this, oldval and newval.\")\n (-add-watch [this key f]\n \"Adds a watcher function f to this. Keys must be unique per reference,\n and can be used to remove the watch with -remove-watch.\")\n (-remove-watch [this key]\n \"Removes watcher that corresponds to key from this.\"))\n\n(defprotocol IEditableCollection\n \"Protocol for collections which can transformed to transients.\"\n (^clj -as-transient [coll]\n \"Returns a new, transient version of the collection, in constant time.\"))\n\n(defprotocol ITransientCollection\n \"Protocol for adding basic functionality to transient collections.\"\n (^clj -conj! [tcoll val]\n \"Adds value val to tcoll and returns tcoll.\")\n (^clj -persistent! [tcoll]\n \"Creates a persistent data structure from tcoll and returns it.\"))\n\n(defprotocol ITransientAssociative\n \"Protocol for adding associativity to transient collections.\"\n (^clj -assoc! [tcoll key val]\n \"Returns a new transient collection of tcoll with a mapping from key to\n val added to it.\"))\n\n(defprotocol ITransientMap\n \"Protocol for adding mapping functionality to transient collections.\"\n (^clj -dissoc! [tcoll key]\n \"Returns a new transient collection of tcoll without the mapping for key.\"))\n\n(defprotocol ITransientVector\n \"Protocol for adding vector functionality to transient collections.\"\n (^clj -assoc-n! [tcoll n val]\n \"Returns tcoll with value val added at position n.\")\n (^clj -pop! [tcoll]\n \"Returns tcoll with the last item removed from it.\"))\n\n(defprotocol ITransientSet\n \"Protocol for adding set functionality to a transient collection.\"\n (^clj -disjoin! [tcoll v]\n \"Returns tcoll without v.\"))\n\n(defprotocol IComparable\n \"Protocol for values that can be compared.\"\n (^number -compare [x y]\n \"Returns a negative number, zero, or a positive number when x is logically\n 'less than', 'equal to', or 'greater than' y.\"))\n\n(defprotocol IChunk\n \"Protocol for accessing the items of a chunk.\"\n (-drop-first [coll]\n \"Return a new chunk of coll with the first item removed.\"))\n\n(defprotocol IChunkedSeq\n \"Protocol for accessing a collection as sequential chunks.\"\n (-chunked-first [coll]\n \"Returns the first chunk in coll.\")\n (-chunked-rest [coll]\n \"Return a new collection of coll with the first chunk removed.\"))\n\n(defprotocol IChunkedNext\n \"Protocol for accessing the chunks of a collection.\"\n (-chunked-next [coll]\n \"Returns a new collection of coll without the first chunk.\"))\n\n(defprotocol INamed\n \"Protocol for adding a name.\"\n (^string -name [x]\n \"Returns the name String of x.\")\n ( ^{:tag #{string clj-nil}}-namespace [x]\n \"Returns the namespace String of x.\"))\n\n(defprotocol IAtom\n \"Marker protocol indicating an atom.\")\n\n(defprotocol IReset\n \"Protocol for adding resetting functionality.\"\n (-reset! [o new-value]\n \"Sets the value of o to new-value.\"))\n\n(defprotocol ISwap\n \"Protocol for adding swapping functionality.\"\n (-swap! [o f] [o f a] [o f a b] [o f a b xs]\n \"Swaps the value of o to be (apply f current-value-of-atom args).\"))\n\n(defprotocol IVolatile\n \"Protocol for adding volatile functionality.\"\n (-vreset! [o new-value]\n \"Sets the value of volatile o to new-value without regard for the\n current value. Returns new-value.\"))\n\n(defprotocol IIterable\n \"Protocol for iterating over a collection.\"\n (-iterator [coll]\n \"Returns an iterator for coll.\"))\n\n;; Printing support\n\n(deftype StringBufferWriter [sb]\n IWriter\n (-write [_ s] (.append sb s))\n (-flush [_] nil))\n\n(defn pr-str*\n \"Support so that collections can implement toString without\n loading all the printing machinery.\"\n [^not-native obj]\n (let [sb (StringBuffer.)\n writer (StringBufferWriter. sb)]\n (-pr-writer obj writer (pr-opts))\n (-flush writer)\n (str sb)))\n\n;;;;;;;;;;;;;;;;;;; Murmur3 ;;;;;;;;;;;;;;;\n\n;;http:\/\/hg.openjdk.java.net\/jdk7u\/jdk7u6\/jdk\/file\/8c2c5d63a17e\/src\/share\/classes\/java\/lang\/Integer.java\n(defn ^number int-rotate-left [x n]\n (bit-or\n (bit-shift-left x n)\n (unsigned-bit-shift-right x (- n))))\n\n;; http:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Math\/imul\n(if (and (exists? Math\/imul)\n (not (zero? (Math\/imul 0xffffffff 5))))\n (defn ^number imul [a b] (Math\/imul a b))\n (defn ^number imul [a b]\n (let [ah (bit-and (unsigned-bit-shift-right a 16) 0xffff)\n al (bit-and a 0xffff)\n bh (bit-and (unsigned-bit-shift-right b 16) 0xffff)\n bl (bit-and b 0xffff)]\n (bit-or\n (+ (* al bl)\n (unsigned-bit-shift-right\n (bit-shift-left (+ (* ah bl) (* al bh)) 16) 0)) 0))))\n\n;; http:\/\/smhasher.googlecode.com\/svn\/trunk\/MurmurHash3.cpp\n(def m3-seed 0)\n(def m3-C1 (int 0xcc9e2d51))\n(def m3-C2 (int 0x1b873593))\n\n(defn ^number m3-mix-K1 [k1]\n (-> (int k1) (imul m3-C1) (int-rotate-left 15) (imul m3-C2)))\n\n(defn ^number m3-mix-H1 [h1 k1]\n (int (-> (int h1) (bit-xor (int k1)) (int-rotate-left 13) (imul 5) (+ (int 0xe6546b64)))))\n\n(defn ^number m3-fmix [h1 len]\n (as-> (int h1) h1\n (bit-xor h1 len)\n (bit-xor h1 (unsigned-bit-shift-right h1 16))\n (imul h1 (int 0x85ebca6b))\n (bit-xor h1 (unsigned-bit-shift-right h1 13))\n (imul h1 (int 0xc2b2ae35))\n (bit-xor h1 (unsigned-bit-shift-right h1 16))))\n\n(defn ^number m3-hash-int [in]\n (if (zero? in)\n in\n (let [k1 (m3-mix-K1 in)\n h1 (m3-mix-H1 m3-seed k1)]\n (m3-fmix h1 4))))\n\n(defn ^number m3-hash-unencoded-chars [in]\n (let [h1 (loop [i 1 h1 m3-seed]\n (if (< i (.-length in))\n (recur (+ i 2)\n (m3-mix-H1 h1\n (m3-mix-K1\n (bit-or (.charCodeAt in (dec i))\n (bit-shift-left (.charCodeAt in i) 16)))))\n h1))\n h1 (if (== (bit-and (.-length in) 1) 1)\n (bit-xor h1 (m3-mix-K1 (.charCodeAt in (dec (.-length in)))))\n h1)]\n (m3-fmix h1 (imul 2 (.-length in)))))\n\n;;;;;;;;;;;;;;;;;;; symbols ;;;;;;;;;;;;;;;\n\n(declare list Symbol = compare)\n\n;; Simple caching of string hashcode\n(def string-hash-cache (js-obj))\n(def string-hash-cache-count 0)\n\n;;http:\/\/hg.openjdk.java.net\/jdk7u\/jdk7u6\/jdk\/file\/8c2c5d63a17e\/src\/share\/classes\/java\/lang\/String.java\n(defn hash-string* [s]\n (if-not (nil? s)\n (let [len (.-length s)]\n (if (pos? len)\n (loop [i 0 hash 0]\n (if (< i len)\n (recur (inc i) (+ (imul 31 hash) (.charCodeAt s i)))\n hash))\n 0))\n 0))\n\n(defn add-to-string-hash-cache [k]\n (let [h (hash-string* k)]\n (gobject\/set string-hash-cache k h)\n (set! string-hash-cache-count (inc string-hash-cache-count))\n h))\n\n(defn hash-string [k]\n (when (> string-hash-cache-count 255)\n (set! string-hash-cache (js-obj))\n (set! string-hash-cache-count 0))\n (if (nil? k)\n 0\n (let [h (unchecked-get string-hash-cache k)]\n (if (number? h)\n h\n (add-to-string-hash-cache k)))))\n\n(defn hash\n \"Returns the hash code of its argument. Note this is the hash code\n consistent with =.\"\n [o]\n (cond\n (implements? IHash o)\n (bit-xor (-hash o) 0)\n\n (number? o)\n (if ^boolean (js\/isFinite o)\n (js-mod (Math\/floor o) 2147483647)\n (case o\n ##Inf\n 2146435072\n ##-Inf\n -1048576\n 2146959360))\n\n ;; note: mirrors Clojure's behavior on the JVM, where the hashCode is\n ;; 1231 for true and 1237 for false\n ;; http:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/Boolean.html#hashCode%28%29\n (true? o) 1231\n\n (false? o) 1237\n\n (string? o)\n (m3-hash-int (hash-string o))\n\n (instance? js\/Date o)\n (bit-xor (.valueOf o) 0)\n\n (nil? o) 0\n\n :else\n (bit-xor (-hash o) 0)))\n\n(defn hash-combine [seed hash]\n ; a la boost\n (bit-xor seed\n (+ hash 0x9e3779b9\n (bit-shift-left seed 6)\n (bit-shift-right seed 2))))\n\n(defn ^boolean instance?\n \"Evaluates x and tests if it is an instance of the type\n c. Returns true or false\"\n [c x]\n (cljs.core\/instance? c x))\n\n(defn ^boolean symbol?\n \"Return true if x is a Symbol\"\n [x]\n (instance? Symbol x))\n\n(defn- hash-symbol [sym]\n (hash-combine\n (m3-hash-unencoded-chars (.-name sym))\n (hash-string (.-ns sym))))\n\n(defn- compare-symbols [a b]\n (cond\n (identical? (.-str a) (.-str b)) 0\n (and (not (.-ns a)) (.-ns b)) -1\n (.-ns a) (if-not (.-ns b)\n 1\n (let [nsc (garray\/defaultCompare (.-ns a) (.-ns b))]\n (if (== 0 nsc)\n (garray\/defaultCompare (.-name a) (.-name b))\n nsc)))\n :default (garray\/defaultCompare (.-name a) (.-name b))))\n\n(declare get)\n\n(deftype Symbol [ns name str ^:mutable _hash _meta]\n Object\n (toString [_] str)\n (equiv [this other] (-equiv this other))\n\n IEquiv\n (-equiv [_ other]\n (if (instance? Symbol other)\n (identical? str (.-str other))\n false))\n\n IFn\n (-invoke [sym coll]\n (get coll sym))\n (-invoke [sym coll not-found]\n (get coll sym not-found))\n\n IMeta\n (-meta [_] _meta)\n\n IWithMeta\n (-with-meta [_ new-meta] (Symbol. ns name str _hash new-meta))\n\n IHash\n (-hash [sym]\n (caching-hash sym hash-symbol _hash))\n\n INamed\n (-name [_] name)\n (-namespace [_] ns)\n\n IPrintWithWriter\n (-pr-writer [o writer _] (-write writer str)))\n\n(defn var?\n \"Returns true if v is of type cljs.core.Var\"\n [v]\n (instance? cljs.core.Var v))\n\n(defn symbol\n \"Returns a Symbol with the given namespace and name. Arity-1 works\n on strings, keywords, and vars.\"\n ([name]\n (cond (symbol? name) name\n (string? name) (let [idx (.indexOf name \"\/\")]\n (if (< idx 1)\n (symbol nil name)\n (symbol (.substring name 0 idx)\n (.substring name (inc idx) (. name -length)))))\n (var? name) (.-sym name)\n (keyword? name) (recur (.-fqn name))\n :else (throw (new js\/Error \"no conversion to symbol\"))))\n ([ns name]\n (let [sym-str (if-not (nil? ns)\n (str ns \"\/\" name)\n name)]\n (Symbol. ns name sym-str nil nil))))\n\n(deftype Var [val sym _meta]\n Object\n (isMacro [_]\n (. (val) -cljs$lang$macro))\n (toString [_]\n (str \"#'\" sym))\n IDeref\n (-deref [_] (val))\n IMeta\n (-meta [_] _meta)\n IWithMeta\n (-with-meta [_ new-meta]\n (Var. val sym new-meta))\n IEquiv\n (-equiv [this other]\n (if (instance? Var other)\n (= (.-sym this) (.-sym other))\n false))\n IHash\n (-hash [_]\n (hash-symbol sym))\n Fn\n IFn\n (-invoke [_]\n ((val)))\n (-invoke [_ a]\n ((val) a))\n (-invoke [_ a b]\n ((val) a b))\n (-invoke [_ a b c]\n ((val) a b c))\n (-invoke [_ a b c d]\n ((val) a b c d))\n (-invoke [_ a b c d e]\n ((val) a b c d e))\n (-invoke [_ a b c d e f]\n ((val) a b c d e f))\n (-invoke [_ a b c d e f g]\n ((val) a b c d e f g))\n (-invoke [_ a b c d e f g h]\n ((val) a b c d e f g h))\n (-invoke [_ a b c d e f g h i]\n ((val) a b c d e f g h i))\n (-invoke [_ a b c d e f g h i j]\n ((val) a b c d e f g h i j))\n (-invoke [_ a b c d e f g h i j k]\n ((val) a b c d e f g h i j k))\n (-invoke [_ a b c d e f g h i j k l]\n ((val) a b c d e f g h i j k l))\n (-invoke [_ a b c d e f g h i j k l m]\n ((val) a b c d e f g h i j k l m))\n (-invoke [_ a b c d e f g h i j k l m n]\n ((val) a b c d e f g h i j k l m n))\n (-invoke [_ a b c d e f g h i j k l m n o]\n ((val) a b c d e f g h i j k l m n o))\n (-invoke [_ a b c d e f g h i j k l m n o p]\n ((val) a b c d e f g h i j k l m n o p))\n (-invoke [_ a b c d e f g h i j k l m n o p q]\n ((val) a b c d e f g h i j k l m n o p q))\n (-invoke [_ a b c d e f g h i j k l m n o p q r]\n ((val) a b c d e f g h i j k l m n o p q r))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s]\n ((val) a b c d e f g h i j k l m n o p q r s))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t]\n ((val) a b c d e f g h i j k l m n o p q r s t))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t rest]\n (apply (val) a b c d e f g h i j k l m n o p q r s t rest)))\n\n;;;;;;;;;;;;;;;;;;; fundamentals ;;;;;;;;;;;;;;;\n\n(declare array-seq prim-seq IndexedSeq)\n\n(defn iterable?\n \"Return true if x implements IIterable protocol.\"\n [x]\n (satisfies? IIterable x))\n\n(defn js-iterable?\n \"Return true if x has a JavaScript iterator property\"\n [x]\n (and (not (nil? x))\n (not (nil? (js* \"~{}[~{}]\" x ITER_SYMBOL)))))\n\n(defn clone\n \"Clone the supplied value which must implement ICloneable.\"\n [value]\n (-clone value))\n\n(defn cloneable?\n \"Return true if x implements ICloneable protocol.\"\n [value]\n (satisfies? ICloneable value))\n\n(declare es6-iterator-seq)\n\n(defn ^seq seq\n \"Returns a seq on the collection. If the collection is\n empty, returns nil. (seq nil) returns nil. seq also works on\n Strings.\"\n [coll]\n (when-not (nil? coll)\n (cond\n (implements? ISeqable coll)\n (-seq coll)\n\n (array? coll)\n (when-not (zero? (alength coll))\n (IndexedSeq. coll 0 nil))\n\n (string? coll)\n (when-not (zero? (.-length coll))\n (IndexedSeq. coll 0 nil))\n\n (js-iterable? coll)\n (es6-iterator-seq\n (.call (gobject\/get coll ITER_SYMBOL) coll))\n\n (native-satisfies? ISeqable coll)\n (-seq coll)\n\n :else (throw (js\/Error. (str coll \" is not ISeqable\"))))))\n\n(defn first\n \"Returns the first item in the collection. Calls seq on its\n argument. If coll is nil, returns nil.\"\n [coll]\n (when-not (nil? coll)\n (if (implements? ISeq coll)\n (-first coll)\n (let [s (seq coll)]\n (when-not (nil? s)\n (-first s))))))\n\n(defn ^seq rest\n \"Returns a possibly empty seq of the items after the first. Calls seq on its\n argument.\"\n [coll]\n (if-not (nil? coll)\n (if (implements? ISeq coll)\n (-rest coll)\n (let [s (seq coll)]\n (if s\n (-rest ^not-native s)\n ())))\n ()))\n\n(defn ^seq next\n \"Returns a seq of the items after the first. Calls seq on its\n argument. If there are no more items, returns nil\"\n [coll]\n (when-not (nil? coll)\n (if (implements? INext coll)\n (-next coll)\n (seq (rest coll)))))\n\n(defn ^boolean =\n \"Equality. Returns true if x equals y, false if not. Compares\n numbers and collections in a type-independent manner. Clojure's immutable data\n structures define -equiv (and thus =) as a value, not an identity,\n comparison.\"\n ([x] true)\n ([x y]\n (if (nil? x)\n (nil? y)\n (or (identical? x y)\n ^boolean (-equiv x y))))\n ([x y & more]\n (if (= x y)\n (if (next more)\n (recur y (first more) (next more))\n (= y (first more)))\n false)))\n\n;; EXPERIMENTAL: subject to change\n(deftype ES6Iterator [^:mutable s]\n Object\n (next [_]\n (if-not (nil? s)\n (let [x (first s)]\n (set! s (next s))\n #js {:value x :done false})\n #js {:value nil :done true})))\n\n(defn es6-iterator\n \"EXPERIMENTAL: Return a ES2015 compatible iterator for coll.\"\n [coll]\n (ES6Iterator. (seq coll)))\n\n(deftype ES6IteratorSeq [value iter ^:mutable _rest]\n ISeqable\n (-seq [this] this)\n ISeq\n (-first [_] value)\n (-rest [_]\n (when (nil? _rest)\n (set! _rest (es6-iterator-seq iter)))\n _rest))\n\n(defn es6-iterator-seq\n \"EXPERIMENTAL: Given an ES2015 compatible iterator return a seq.\"\n [iter]\n (let [v (.next iter)]\n (if (.-done v)\n nil\n (ES6IteratorSeq. (.-value v) iter nil))))\n\n;;;;;;;;;;;;;;;;;;; Murmur3 Helpers ;;;;;;;;;;;;;;;;\n\n(defn ^number mix-collection-hash\n \"Mix final collection hash for ordered or unordered collections.\n hash-basis is the combined collection hash, count is the number\n of elements included in the basis. Note this is the hash code\n consistent with =, different from .hashCode.\n See http:\/\/clojure.org\/data_structures#hash for full algorithms.\"\n [hash-basis count]\n (let [h1 m3-seed\n k1 (m3-mix-K1 hash-basis)\n h1 (m3-mix-H1 h1 k1)]\n (m3-fmix h1 count)))\n\n(defn ^number hash-ordered-coll\n \"Returns the hash code, consistent with =, for an external ordered\n collection implementing Iterable.\n See http:\/\/clojure.org\/data_structures#hash for full algorithms.\"\n [coll]\n (loop [n 0 hash-code 1 coll (seq coll)]\n (if-not (nil? coll)\n (recur (inc n) (bit-or (+ (imul 31 hash-code) (hash (first coll))) 0)\n (next coll))\n (mix-collection-hash hash-code n))))\n\n(def ^:private empty-ordered-hash\n (mix-collection-hash 1 0))\n\n(defn ^number hash-unordered-coll\n \"Returns the hash code, consistent with =, for an external unordered\n collection implementing Iterable. For maps, the iterator should\n return map entries whose hash is computed as\n (hash-ordered-coll [k v]).\n See http:\/\/clojure.org\/data_structures#hash for full algorithms.\"\n [coll]\n (loop [n 0 hash-code 0 coll (seq coll)]\n (if-not (nil? coll)\n (recur (inc n) (bit-or (+ hash-code (hash (first coll))) 0) (next coll))\n (mix-collection-hash hash-code n))))\n\n(def ^:private empty-unordered-hash\n (mix-collection-hash 0 0))\n\n;;;;;;;;;;;;;;;;;;; protocols on primitives ;;;;;;;;\n(declare hash-map list equiv-sequential)\n\n(extend-type nil\n ICounted\n (-count [_] 0))\n\n;; TODO: we should remove this and handle date equality checking\n;; by some other means, probably by adding a new primitive type\n;; case to the hash table lookup - David\n\n(extend-type js\/Date\n IEquiv\n (-equiv [o other]\n (and (instance? js\/Date other)\n (== (.valueOf o) (.valueOf other))))\n\n IComparable\n (-compare [this other]\n (if (instance? js\/Date other)\n (garray\/defaultCompare (.valueOf this) (.valueOf other))\n (throw (js\/Error. (str \"Cannot compare \" this \" to \" other))))))\n\n(defprotocol Inst\n (inst-ms* [inst]))\n\n(extend-protocol Inst\n js\/Date\n (inst-ms* [inst] (.getTime inst)))\n\n(defn inst-ms\n \"Return the number of milliseconds since January 1, 1970, 00:00:00 GMT\"\n [inst]\n (inst-ms* inst))\n\n(defn inst?\n \"Return true if x satisfies Inst\"\n [x]\n (satisfies? Inst x))\n\n(extend-type number\n IEquiv\n (-equiv [x o] (identical? x o)))\n\n(declare with-meta)\n\n(extend-type function\n Fn\n IMeta\n (-meta [_] nil))\n\n(extend-type default\n IHash\n (-hash [o]\n (goog\/getUid o)))\n\n;;this is primitive because & emits call to array-seq\n(defn inc\n \"Returns a number one greater than num.\"\n [x] (cljs.core\/+ x 1))\n\n(declare deref)\n\n(deftype Reduced [val]\n IDeref\n (-deref [o] val))\n\n(defn reduced\n \"Wraps x in a way such that a reduce will terminate with the value x\"\n [x]\n (Reduced. x))\n\n(defn reduced?\n \"Returns true if x is the result of a call to reduced\"\n [r]\n (instance? Reduced r))\n\n(defn ensure-reduced\n \"If x is already reduced?, returns it, else returns (reduced x)\"\n [x]\n (if (reduced? x) x (reduced x)))\n\n(defn unreduced\n \"If x is reduced?, returns (deref x), else returns x\"\n [x]\n (if (reduced? x) (deref x) x))\n\n;; generic to all refs\n;; (but currently hard-coded to atom!)\n(defn deref\n \"Also reader macro: @var\/@atom\/@delay. Returns the\n most-recently-committed value of ref. When applied to a var\n or atom, returns its current state. When applied to a delay, forces\n it if not already forced. See also - realized?.\"\n [o]\n (-deref o))\n\n(defn- ci-reduce\n \"Accepts any collection which satisfies the ICount and IIndexed protocols and\nreduces them without incurring seq initialization\"\n ([^not-native cicoll f]\n (let [cnt (-count cicoll)]\n (if (zero? cnt)\n (f)\n (loop [val (-nth cicoll 0), n 1]\n (if (< n cnt)\n (let [nval (f val (-nth cicoll n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n ([^not-native cicoll f val]\n (let [cnt (-count cicoll)]\n (loop [val val, n 0]\n (if (< n cnt)\n (let [nval (f val (-nth cicoll n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n\n(defn- array-reduce\n ([arr f]\n (let [cnt (alength arr)]\n (if (zero? (alength arr))\n (f)\n (loop [val (aget arr 0), n 1]\n (if (< n cnt)\n (let [nval (f val (aget arr n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n ([arr f val]\n (let [cnt (alength arr)]\n (loop [val val, n 0]\n (if (< n cnt)\n (let [nval (f val (aget arr n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val))))\n ([arr f val idx]\n (let [cnt (alength arr)]\n (loop [val val, n idx]\n (if (< n cnt)\n (let [nval (f val (aget arr n))]\n (if (reduced? nval)\n @nval\n (recur nval (inc n))))\n val)))))\n\n(declare hash-coll cons drop count nth RSeq List)\n\n(defn counted?\n \"Returns true if coll implements count in constant time\"\n [x] (satisfies? ICounted x))\n\n(defn indexed?\n \"Returns true if coll implements nth in constant time\"\n [x] (satisfies? IIndexed x))\n\n(defn- -indexOf\n ([coll x]\n (-indexOf coll x 0))\n ([coll x start]\n (let [len (count coll)]\n (if (>= start len)\n -1\n (loop [idx (cond\n (pos? start) start\n (neg? start) (max 0 (+ start len))\n :else start)]\n (if (< idx len)\n (if (= (nth coll idx) x)\n idx\n (recur (inc idx)))\n -1))))))\n\n(defn- -lastIndexOf\n ([coll x]\n (-lastIndexOf coll x (count coll)))\n ([coll x start]\n (let [len (count coll)]\n (if (zero? len)\n -1\n (loop [idx (cond\n (pos? start) (min (dec len) start)\n (neg? start) (+ len start)\n :else start)]\n (if (>= idx 0)\n (if (= (nth coll idx) x)\n idx\n (recur (dec idx)))\n -1))))))\n\n(deftype IndexedSeqIterator [arr ^:mutable i]\n Object\n (hasNext [_]\n (< i (alength arr)))\n (next [_]\n (let [ret (aget arr i)]\n (set! i (inc i))\n ret)))\n\n(deftype IndexedSeq [arr i meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (IndexedSeq. arr i meta))\n\n ISeqable\n (-seq [this]\n (when (< i (alength arr))\n this))\n\n IMeta\n (-meta [coll] meta)\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (IndexedSeq. arr i new-meta)))\n\n ASeq\n ISeq\n (-first [_] (aget arr i))\n (-rest [_] (if (< (inc i) (alength arr))\n (IndexedSeq. arr (inc i) nil)\n (list)))\n\n INext\n (-next [_] (if (< (inc i) (alength arr))\n (IndexedSeq. arr (inc i) nil)\n nil))\n\n ICounted\n (-count [_]\n (max 0 (- (alength arr) i)))\n\n IIndexed\n (-nth [coll n]\n (let [i (+ n i)]\n (if (and (<= 0 i) (< i (alength arr)))\n (aget arr i)\n (throw (js\/Error. \"Index out of bounds\")))))\n (-nth [coll n not-found]\n (let [i (+ n i)]\n (if (and (<= 0 i) (< i (alength arr)))\n (aget arr i)\n not-found)))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IIterable\n (-iterator [coll]\n (IndexedSeqIterator. arr i))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IReduce\n (-reduce [coll f]\n (array-reduce arr f (aget arr i) (inc i)))\n (-reduce [coll f start]\n (array-reduce arr f start i))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n IReversible\n (-rseq [coll]\n (let [c (-count coll)]\n (if (pos? c)\n (RSeq. coll (dec c) nil)))))\n\n(es6-iterable IndexedSeq)\n\n(defn prim-seq\n \"Create seq from a primitive JavaScript Array-like.\"\n ([prim]\n (prim-seq prim 0))\n ([prim i]\n (when (< i (alength prim))\n (IndexedSeq. prim i nil))))\n\n(defn array-seq\n \"Create a seq from a JavaScript array.\"\n ([array]\n (prim-seq array 0))\n ([array i]\n (prim-seq array i)))\n\n(declare with-meta seq-reduce)\n\n(deftype RSeq [ci i meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (RSeq. ci i meta))\n\n IMeta\n (-meta [coll] meta)\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (RSeq. ci i new-meta)))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ISeq\n (-first [coll]\n (-nth ci i))\n (-rest [coll]\n (if (pos? i)\n (RSeq. ci (dec i) nil)\n ()))\n\n INext\n (-next [coll]\n (when (pos? i)\n (RSeq. ci (dec i) nil)))\n\n ICounted\n (-count [coll] (inc i))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n IReduce\n (-reduce [col f] (seq-reduce f col))\n (-reduce [col f start] (seq-reduce f start col)))\n\n(es6-iterable RSeq)\n\n(defn second\n \"Same as (first (next x))\"\n [coll]\n (first (next coll)))\n\n(defn ffirst\n \"Same as (first (first x))\"\n [coll]\n (first (first coll)))\n\n(defn nfirst\n \"Same as (next (first x))\"\n [coll]\n (next (first coll)))\n\n(defn fnext\n \"Same as (first (next x))\"\n [coll]\n (first (next coll)))\n\n(defn nnext\n \"Same as (next (next x))\"\n [coll]\n (next (next coll)))\n\n(defn last\n \"Return the last item in coll, in linear time\"\n [s]\n (let [sn (next s)]\n (if-not (nil? sn)\n (recur sn)\n (first s))))\n\n(extend-type default\n IEquiv\n (-equiv [x o] (identical? x o)))\n\n(defn conj\n \"conj[oin]. Returns a new collection with the xs\n 'added'. (conj nil item) returns (item).\n (conj coll) returns coll. (conj) returns [].\n The 'addition' may happen at different 'places' depending\n on the concrete type.\"\n ([] [])\n ([coll] coll)\n ([coll x]\n (if-not (nil? coll)\n (-conj coll x)\n (list x)))\n ([coll x & xs]\n (if xs\n (recur (conj coll x) (first xs) (next xs))\n (conj coll x))))\n\n(defn empty\n \"Returns an empty collection of the same category as coll, or nil\"\n [coll]\n (when-not (nil? coll)\n (cond\n (implements? IEmptyableCollection coll)\n (-empty coll)\n\n (satisfies? IEmptyableCollection coll)\n (-empty coll)\n\n :else nil)))\n\n(defn- accumulating-seq-count [coll]\n (loop [s (seq coll) acc 0]\n (if (counted? s) ; assumes nil is counted, which it currently is\n (+ acc (-count s))\n (recur (next s) (inc acc)))))\n\n(defn count\n \"Returns the number of items in the collection. (count nil) returns\n 0. Also works on strings, arrays, and Maps\"\n [coll]\n (if-not (nil? coll)\n (cond\n (implements? ICounted coll)\n (-count coll)\n\n (array? coll)\n (alength coll)\n\n (string? coll)\n ^number (.-length coll)\n\n (implements? ISeqable coll)\n (accumulating-seq-count coll)\n\n :else (-count coll))\n 0))\n\n(defn- linear-traversal-nth\n ([coll n]\n (cond\n (nil? coll) (throw (js\/Error. \"Index out of bounds\"))\n (zero? n) (if (seq coll)\n (first coll)\n (throw (js\/Error. \"Index out of bounds\")))\n (indexed? coll) (-nth coll n)\n (seq coll) (recur (next coll) (dec n))\n :else (throw (js\/Error. \"Index out of bounds\"))))\n ([coll n not-found]\n (cond\n (nil? coll) not-found\n (zero? n) (if (seq coll)\n (first coll)\n not-found)\n (indexed? coll) (-nth coll n not-found)\n (seq coll) (recur (next coll) (dec n) not-found)\n :else not-found)))\n\n(defn nth\n \"Returns the value at the index. get returns nil if index out of\n bounds, nth throws an exception unless not-found is supplied. nth\n also works for strings, arrays, regex Matchers and Lists, and,\n in O(n) time, for sequences.\"\n ([coll n]\n (cond\n (not (number? n))\n (throw (js\/Error. \"Index argument to nth must be a number\"))\n\n (nil? coll)\n coll\n\n (implements? IIndexed coll)\n (-nth coll n)\n\n (array? coll)\n (if (and (< -1 n (.-length coll)))\n (aget coll (int n))\n (throw (js\/Error. \"Index out of bounds\")))\n\n (string? coll)\n (if (and (< -1 n (.-length coll)))\n (.charAt coll (int n))\n (throw (js\/Error. \"Index out of bounds\")))\n\n (or (implements? ISeq coll)\n (implements? ISequential coll))\n (if (neg? n)\n (throw (js\/Error. \"Index out of bounds\"))\n (linear-traversal-nth coll n))\n\n (native-satisfies? IIndexed coll)\n (-nth coll n)\n\n :else\n (throw (js\/Error. (str \"nth not supported on this type \"\n (type->str (type coll)))))))\n ([coll n not-found]\n (cond\n (not (number? n))\n (throw (js\/Error. \"Index argument to nth must be a number.\"))\n\n (nil? coll)\n not-found\n\n (implements? IIndexed coll)\n (-nth coll n not-found)\n\n (array? coll)\n (if (and (< -1 n (.-length coll)))\n (aget coll (int n))\n not-found)\n\n (string? coll)\n (if (and (< -1 n (.-length coll)))\n (.charAt coll (int n))\n not-found)\n\n (or (implements? ISeq coll)\n (implements? ISequential coll))\n (if (neg? n)\n not-found\n (linear-traversal-nth coll n not-found))\n\n (native-satisfies? IIndexed coll)\n (-nth coll n not-found)\n\n :else\n (throw (js\/Error. (str \"nth not supported on this type \"\n (type->str (type coll))))))))\n\n(defn nthrest\n \"Returns the nth rest of coll, coll when n is 0.\"\n [coll n]\n (loop [n n xs coll]\n (if-let [xs (and (pos? n) (seq xs))]\n (recur (dec n) (rest xs))\n xs)))\n\n(defn get\n \"Returns the value mapped to key, not-found or nil if key not present\n in associative collection, set, string, array, or ILookup instance.\"\n ([o k]\n (when-not (nil? o)\n (cond\n (implements? ILookup o)\n (-lookup o k)\n\n (array? o)\n (when (and (some? k) (< k (.-length o)))\n (aget o (int k)))\n\n (string? o)\n (when (and (some? k) (< -1 k (.-length o)))\n (.charAt o (int k)))\n\n (native-satisfies? ILookup o)\n (-lookup o k)\n\n :else nil)))\n ([o k not-found]\n (if-not (nil? o)\n (cond\n (implements? ILookup o)\n (-lookup o k not-found)\n\n (array? o)\n (if (and (some? k) (< -1 k (.-length o)))\n (aget o (int k))\n not-found)\n\n (string? o)\n (if (and (some? k) (< -1 k (.-length o)))\n (.charAt o (int k))\n not-found)\n\n (native-satisfies? ILookup o)\n (-lookup o k not-found)\n\n :else not-found)\n not-found)))\n\n(declare PersistentHashMap PersistentArrayMap MapEntry)\n\n(defn assoc\n \"assoc[iate]. When applied to a map, returns a new map of the\n same (hashed\/sorted) type, that contains the mapping of key(s) to\n val(s). When applied to a vector, returns a new vector that\n contains val at index. Note - index must be <= (count vector).\"\n ([coll k v]\n (if (implements? IAssociative coll)\n (-assoc coll k v)\n (if-not (nil? coll)\n (-assoc coll k v)\n (array-map k v))))\n ([coll k v & kvs]\n (let [ret (assoc coll k v)]\n (if kvs\n (recur ret (first kvs) (second kvs) (nnext kvs))\n ret))))\n\n(defn dissoc\n \"dissoc[iate]. Returns a new map of the same (hashed\/sorted) type,\n that does not contain a mapping for key(s).\"\n ([coll] coll)\n ([coll k]\n (when-not (nil? coll)\n (-dissoc coll k)))\n ([coll k & ks]\n (when-not (nil? coll)\n (let [ret (dissoc coll k)]\n (if ks\n (recur ret (first ks) (next ks))\n ret)))))\n\n(defn fn?\n \"Return true if f is a JavaScript function or satisfies the Fn protocol.\"\n [f]\n (or (js-fn? f) (satisfies? Fn f)))\n\n(deftype MetaFn [afn meta]\n IMeta\n (-meta [_] meta)\n IWithMeta\n (-with-meta [_ new-meta]\n (MetaFn. afn new-meta))\n Fn\n IFn\n (-invoke [_]\n (afn))\n (-invoke [_ a]\n (afn a))\n (-invoke [_ a b]\n (afn a b))\n (-invoke [_ a b c]\n (afn a b c))\n (-invoke [_ a b c d]\n (afn a b c d))\n (-invoke [_ a b c d e]\n (afn a b c d e))\n (-invoke [_ a b c d e f]\n (afn a b c d e f))\n (-invoke [_ a b c d e f g]\n (afn a b c d e f g))\n (-invoke [_ a b c d e f g h]\n (afn a b c d e f g h))\n (-invoke [_ a b c d e f g h i]\n (afn a b c d e f g h i))\n (-invoke [_ a b c d e f g h i j]\n (afn a b c d e f g h i j))\n (-invoke [_ a b c d e f g h i j k]\n (afn a b c d e f g h i j k))\n (-invoke [_ a b c d e f g h i j k l]\n (afn a b c d e f g h i j k l))\n (-invoke [_ a b c d e f g h i j k l m]\n (afn a b c d e f g h i j k l m))\n (-invoke [_ a b c d e f g h i j k l m n]\n (afn a b c d e f g h i j k l m n))\n (-invoke [_ a b c d e f g h i j k l m n o]\n (afn a b c d e f g h i j k l m n o))\n (-invoke [_ a b c d e f g h i j k l m n o p]\n (afn a b c d e f g h i j k l m n o p))\n (-invoke [_ a b c d e f g h i j k l m n o p q]\n (afn a b c d e f g h i j k l m n o p q))\n (-invoke [_ a b c d e f g h i j k l m n o p q r]\n (afn a b c d e f g h i j k l m n o p q r))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s]\n (afn a b c d e f g h i j k l m n o p q r s))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t]\n (afn a b c d e f g h i j k l m n o p q r s t))\n (-invoke [_ a b c d e f g h i j k l m n o p q r s t rest]\n (apply afn a b c d e f g h i j k l m n o p q r s t rest)))\n\n(defn with-meta\n \"Returns an object of the same type and value as obj, with\n map m as its metadata.\"\n [o meta]\n (if (js-fn? o)\n (MetaFn. o meta)\n (when-not (nil? o)\n (-with-meta o meta))))\n\n(defn meta\n \"Returns the metadata of obj, returns nil if there is no metadata.\"\n [o]\n (when (and (not (nil? o))\n (satisfies? IMeta o))\n (-meta o)))\n\n(defn peek\n \"For a list or queue, same as first, for a vector, same as, but much\n more efficient than, last. If the collection is empty, returns nil.\"\n [coll]\n (when-not (nil? coll)\n (-peek coll)))\n\n(defn pop\n \"For a list or queue, returns a new list\/queue without the first\n item, for a vector, returns a new vector without the last item.\n Note - not the same as next\/butlast.\"\n [coll]\n (when-not (nil? coll)\n (-pop coll)))\n\n(defn disj\n \"disj[oin]. Returns a new set of the same (hashed\/sorted) type, that\n does not contain key(s).\"\n ([coll] coll)\n ([coll k]\n (when-not (nil? coll)\n (-disjoin coll k)))\n ([coll k & ks]\n (when-not (nil? coll)\n (let [ret (disj coll k)]\n (if ks\n (recur ret (first ks) (next ks))\n ret)))))\n\n(defn empty?\n \"Returns true if coll has no items - same as (not (seq coll)).\n Please use the idiom (seq x) rather than (not (empty? x))\"\n [coll] (or (nil? coll)\n (not (seq coll))))\n\n(defn coll?\n \"Returns true if x satisfies ICollection\"\n [x]\n (if (nil? x)\n false\n (satisfies? ICollection x)))\n\n(defn set?\n \"Returns true if x satisfies ISet\"\n [x]\n (if (nil? x)\n false\n (satisfies? ISet x)))\n\n(defn associative?\n \"Returns true if coll implements IAssociative\"\n [x] (satisfies? IAssociative x))\n\n(defn ifind?\n \"Returns true if coll implements IFind\"\n [x] (satisfies? IFind x))\n\n(defn sequential?\n \"Returns true if coll satisfies ISequential\"\n [x] (satisfies? ISequential x))\n\n(defn sorted?\n \"Returns true if coll satisfies ISorted\"\n [x] (satisfies? ISorted x))\n\n(defn reduceable?\n \"Returns true if coll satisfies IReduce\"\n [x] (satisfies? IReduce x))\n\n(defn map?\n \"Return true if x satisfies IMap\"\n [x]\n (if (nil? x)\n false\n (satisfies? IMap x)))\n\n(defn record?\n \"Return true if x satisfies IRecord\"\n [x]\n (satisfies? IRecord x))\n\n(defn vector?\n \"Return true if x satisfies IVector\"\n [x] (satisfies? IVector x))\n\n(declare ChunkedCons ChunkedSeq)\n\n(defn chunked-seq?\n \"Return true if x satisfies IChunkedSeq.\"\n [x] (implements? IChunkedSeq x))\n\n;;;;;;;;;;;;;;;;;;;; js primitives ;;;;;;;;;;;;\n(defn js-obj\n \"Create JavaSript object from an even number arguments representing\n interleaved keys and values.\"\n ([]\n (cljs.core\/js-obj))\n ([& keyvals]\n (apply gobject\/create keyvals)))\n\n(defn js-keys\n \"Return the JavaScript keys for an object.\"\n [obj]\n (gobject\/getKeys obj))\n\n(defn js-delete\n \"Delete a property from a JavaScript object.\n Returns true upon success, false otherwise.\"\n [obj key]\n (cljs.core\/js-delete obj key))\n\n(defn- array-copy\n ([from i to j len]\n (loop [i i j j len len]\n (if (zero? len)\n to\n (do (aset to j (aget from i))\n (recur (inc i) (inc j) (dec len)))))))\n\n(defn- array-copy-downward\n ([from i to j len]\n (loop [i (+ i (dec len)) j (+ j (dec len)) len len]\n (if (zero? len)\n to\n (do (aset to j (aget from i))\n (recur (dec i) (dec j) (dec len)))))))\n\n;;;;;;;;;;;;;;;; preds ;;;;;;;;;;;;;;;;;;\n\n(def ^:private lookup-sentinel (js-obj))\n\n(defn ^boolean false?\n \"Returns true if x is the value false, false otherwise.\"\n [x] (cljs.core\/false? x))\n\n(defn ^boolean true?\n \"Returns true if x is the value true, false otherwise.\"\n [x] (cljs.core\/true? x))\n\n(defn boolean?\n \"Return true if x is a Boolean\"\n [x] (or (cljs.core\/true? x) (cljs.core\/false? x)))\n\n(defn ^boolean undefined?\n \"Returns true if x identical to the JavaScript undefined value.\"\n [x]\n (cljs.core\/undefined? x))\n\n(defn seq?\n \"Return true if s satisfies ISeq\"\n [s]\n (if (nil? s)\n false\n (satisfies? ISeq s)))\n\n(defn seqable?\n \"Return true if the seq function is supported for s\"\n [s]\n (or\n (nil? s)\n (satisfies? ISeqable s)\n (array? s)\n (string? s)))\n\n(defn boolean\n \"Coerce to boolean\"\n [x]\n (cond\n (nil? x) false\n (false? x) false\n :else true))\n\n(defn ifn?\n \"Returns true if f returns true for fn? or satisfies IFn.\"\n [f]\n (or (fn? f) (satisfies? IFn f)))\n\n(defn integer?\n \"Returns true if n is a JavaScript number with no decimal part.\"\n [n]\n (and (number? n)\n (not ^boolean (js\/isNaN n))\n (not (identical? n js\/Infinity))\n (== (js\/parseFloat n) (js\/parseInt n 10))))\n\n(def\n ^{:doc \"INTERNAL: do not use\"}\n LongImpl goog.math.Long)\n\n(defn int?\n \"Return true if x satisfies integer? or is an instance of goog.math.Integer\n or goog.math.Long.\"\n [x]\n (or (integer? x)\n (instance? goog.math.Integer x)\n (instance? goog.math.Long x)))\n\n(defn pos-int?\n \"Return true if x satisfies int? and is positive.\"\n [x]\n (cond\n (integer? x) (pos? x)\n\n (instance? goog.math.Integer x)\n (and (not (.isNegative x))\n (not (.isZero x)))\n\n (instance? goog.math.Long x)\n (and (not (.isNegative x))\n (not (.isZero x)))\n\n :else false))\n\n(defn ^boolean neg-int?\n \"Return true if x satisfies int? and is negative.\"\n [x]\n (cond\n (integer? x) (neg? x)\n\n (instance? goog.math.Integer x)\n (.isNegative x)\n\n (instance? goog.math.Long x)\n (.isNegative x)\n\n :else false))\n\n(defn nat-int?\n \"Return true if x satisfies int? and is a natural integer value.\"\n [x]\n (cond\n (integer? x)\n (not (neg? x))\n\n (instance? goog.math.Integer x)\n (not (.isNegative x))\n\n (instance? goog.math.Long x)\n (not (.isNegative x))\n\n :else false))\n\n(defn float?\n \"Returns true for JavaScript numbers, false otherwise.\"\n [x]\n (number? x))\n\n(defn double?\n \"Returns true for JavaScript numbers, false otherwise.\"\n [x]\n (number? x))\n\n(defn infinite?\n \"Returns true for Infinity and -Infinity values.\"\n [x]\n (or (identical? x js\/Number.POSITIVE_INFINITY)\n (identical? x js\/Number.NEGATIVE_INFINITY)))\n\n(defn contains?\n \"Returns true if key is present in the given collection, otherwise\n returns false. Note that for numerically indexed collections like\n vectors and arrays, this tests if the numeric key is within the\n range of indexes. 'contains?' operates constant or logarithmic time;\n it will not perform a linear search for a value. See also 'some'.\"\n [coll v]\n (cond\n (implements? IAssociative coll)\n (-contains-key? coll v)\n\n (native-satisfies? IAssociative coll)\n (-contains-key? coll v)\n\n (identical? (get coll v lookup-sentinel) lookup-sentinel)\n false\n\n :else\n true))\n\n(defn find\n \"Returns the map entry for key, or nil if key not present.\"\n [coll k]\n (if (ifind? coll)\n (-find coll k)\n (when (and (not (nil? coll))\n (associative? coll)\n (contains? coll k))\n (MapEntry. k (get coll k) nil))))\n\n(defn ^boolean distinct?\n \"Returns true if no two of the arguments are =\"\n ([x] true)\n ([x y] (not (= x y)))\n ([x y & more]\n (if (not (= x y))\n (loop [s #{x y} xs more]\n (let [x (first xs)\n etc (next xs)]\n (if xs\n (if (contains? s x)\n false\n (recur (conj s x) etc))\n true)))\n false)))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Seq fns ;;;;;;;;;;;;;;;;\n\n(defn ^number compare\n \"Comparator. Returns a negative number, zero, or a positive number\n when x is logically 'less than', 'equal to', or 'greater than'\n y. Uses IComparable if available and google.array.defaultCompare for objects\n of the same type and special-cases nil to be less than any other object.\"\n [x y]\n (cond\n (identical? x y) 0\n\n (nil? x) -1\n\n (nil? y) 1\n\n (number? x) (if (number? y)\n (garray\/defaultCompare x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y))))\n\n (satisfies? IComparable x)\n (-compare x y)\n\n :else\n (if (and (or (string? x) (array? x) (true? x) (false? x))\n (identical? (type x) (type y)))\n (garray\/defaultCompare x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y))))))\n\n(defn ^:private compare-indexed\n \"Compare indexed collection.\"\n ([xs ys]\n (let [xl (count xs)\n yl (count ys)]\n (cond\n (< xl yl) -1\n (> xl yl) 1\n (== xl 0) 0\n :else (compare-indexed xs ys xl 0))))\n ([xs ys len n]\n (let [d (compare (nth xs n) (nth ys n))]\n (if (and (zero? d) (< (+ n 1) len))\n (recur xs ys len (inc n))\n d))))\n\n(defn ^:private fn->comparator\n \"Given a fn that might be boolean valued or a comparator,\n return a fn that is a comparator.\"\n [f]\n (if (= f compare)\n compare\n (fn [x y]\n (let [r (f x y)]\n (if (number? r)\n r\n (if r\n -1\n (if (f y x) 1 0)))))))\n\n(declare to-array)\n\n(defn sort\n \"Returns a sorted sequence of the items in coll. Comp can be\n boolean-valued comparison function, or a -\/0\/+ valued comparator.\n Comp defaults to compare.\"\n ([coll]\n (sort compare coll))\n ([comp coll]\n (if (seq coll)\n (let [a (to-array coll)]\n ;; matching Clojure's stable sort, though docs don't promise it\n (garray\/stableSort a (fn->comparator comp))\n (with-meta (seq a) (meta coll)))\n ())))\n\n(defn sort-by\n \"Returns a sorted sequence of the items in coll, where the sort\n order is determined by comparing (keyfn item). Comp can be\n boolean-valued comparison function, or a -\/0\/+ valued comparator.\n Comp defaults to compare.\"\n ([keyfn coll]\n (sort-by keyfn compare coll))\n ([keyfn comp coll]\n (sort (fn [x y] ((fn->comparator comp) (keyfn x) (keyfn y))) coll)))\n\n; simple reduce based on seqs, used as default\n(defn- seq-reduce\n ([f coll]\n (if-let [s (seq coll)]\n (reduce f (first s) (next s))\n (f)))\n ([f val coll]\n (loop [val val, coll (seq coll)]\n (if coll\n (let [nval (f val (first coll))]\n (if (reduced? nval)\n @nval\n (recur nval (next coll))))\n val))))\n\n(declare vec)\n\n(defn shuffle\n \"Return a random permutation of coll\"\n [coll]\n (let [a (to-array coll)]\n (garray\/shuffle a)\n (vec a)))\n\n(defn- iter-reduce\n ([coll f]\n (let [iter (-iterator coll)]\n (if (.hasNext iter)\n (let [init (.next iter)]\n (loop [acc init]\n (if ^boolean (.hasNext iter)\n (let [nacc (f acc (.next iter))]\n (if (reduced? nacc)\n @nacc\n (recur nacc)))\n acc)))\n (f))))\n ([coll f init]\n (let [iter (-iterator coll)]\n (loop [acc init]\n (if ^boolean (.hasNext iter)\n (let [nacc (f acc (.next iter))]\n (if (reduced? nacc)\n @nacc\n (recur nacc)))\n acc)))))\n\n(defn reduce\n \"f should be a function of 2 arguments. If val is not supplied,\n returns the result of applying f to the first 2 items in coll, then\n applying f to that result and the 3rd item, etc. If coll contains no\n items, f must accept no arguments as well, and reduce returns the\n result of calling f with no arguments. If coll has only 1 item, it\n is returned and f is not called. If val is supplied, returns the\n result of applying f to val and the first item in coll, then\n applying f to that result and the 2nd item, etc. If coll contains no\n items, returns val and f is not called.\"\n ([f coll]\n (cond\n (implements? IReduce coll)\n (-reduce coll f)\n\n (array? coll)\n (array-reduce coll f)\n\n (string? coll)\n (array-reduce coll f)\n\n (native-satisfies? IReduce coll)\n (-reduce coll f)\n\n (iterable? coll)\n (iter-reduce coll f)\n\n :else\n (seq-reduce f coll)))\n ([f val coll]\n (cond\n (implements? IReduce coll)\n (-reduce coll f val)\n\n (array? coll)\n (array-reduce coll f val)\n\n (string? coll)\n (array-reduce coll f val)\n\n (native-satisfies? IReduce coll)\n (-reduce coll f val)\n\n (iterable? coll)\n (iter-reduce coll f val)\n\n :else\n (seq-reduce f val coll))))\n\n(defn reduce-kv\n \"Reduces an associative collection. f should be a function of 3\n arguments. Returns the result of applying f to init, the first key\n and the first value in coll, then applying f to that result and the\n 2nd key and value, etc. If coll contains no entries, returns init\n and f is not called. Note that reduce-kv is supported on vectors,\n where the keys will be the ordinals.\"\n ([f init coll]\n (if-not (nil? coll)\n (-kv-reduce coll f init)\n init)))\n\n(defn identity\n \"Returns its argument.\"\n [x] x)\n\n(defn completing\n \"Takes a reducing function f of 2 args and returns a fn suitable for\n transduce by adding an arity-1 signature that calls cf (default -\n identity) on the result argument.\"\n ([f] (completing f identity))\n ([f cf]\n (fn\n ([] (f))\n ([x] (cf x))\n ([x y] (f x y)))))\n\n(defn transduce\n \"reduce with a transformation of f (xf). If init is not\n supplied, (f) will be called to produce it. f should be a reducing\n step function that accepts both 1 and 2 arguments, if it accepts\n only 2 you can add the arity-1 with 'completing'. Returns the result\n of applying (the transformed) xf to init and the first item in coll,\n then applying xf to that result and the 2nd item, etc. If coll\n contains no items, returns init and f is not called. Note that\n certain transforms may inject or skip items.\"\n ([xform f coll] (transduce xform f (f) coll))\n ([xform f init coll]\n (let [f (xform f)\n ret (reduce f init coll)]\n (f ret))))\n\n;;; Math - variadic forms will not work until the following implemented:\n;;; first, next, reduce\n\n(defn ^number +\n \"Returns the sum of nums. (+) returns 0.\"\n ([] 0)\n ([x] x)\n ([x y] (cljs.core\/+ x y))\n ([x y & more]\n (reduce + (cljs.core\/+ x y) more)))\n\n(defn ^number -\n \"If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result.\"\n ([x] (cljs.core\/- x))\n ([x y] (cljs.core\/- x y))\n ([x y & more] (reduce - (cljs.core\/- x y) more)))\n\n(defn ^number *\n \"Returns the product of nums. (*) returns 1.\"\n ([] 1)\n ([x] x)\n ([x y] (cljs.core\/* x y))\n ([x y & more] (reduce * (cljs.core\/* x y) more)))\n\n(declare divide)\n\n(defn ^number \/\n \"If no denominators are supplied, returns 1\/numerator,\n else returns numerator divided by all of the denominators.\"\n ([x] (\/ 1 x))\n ([x y] (cljs.core\/divide x y)) ;; FIXME: waiting on cljs.core\/\/\n ([x y & more] (reduce \/ (\/ x y) more)))\n\n(defn ^boolean <\n \"Returns non-nil if nums are in monotonically increasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core\/< x y))\n ([x y & more]\n (if (cljs.core\/< x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core\/< y (first more)))\n false)))\n\n(defn ^boolean <=\n \"Returns non-nil if nums are in monotonically non-decreasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core\/<= x y))\n ([x y & more]\n (if (cljs.core\/<= x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core\/<= y (first more)))\n false)))\n\n(defn ^boolean >\n \"Returns non-nil if nums are in monotonically decreasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core\/> x y))\n ([x y & more]\n (if (cljs.core\/> x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core\/> y (first more)))\n false)))\n\n(defn ^boolean >=\n \"Returns non-nil if nums are in monotonically non-increasing order,\n otherwise false.\"\n ([x] true)\n ([x y] (cljs.core\/>= x y))\n ([x y & more]\n (if (cljs.core\/>= x y)\n (if (next more)\n (recur y (first more) (next more))\n (cljs.core\/>= y (first more)))\n false)))\n\n(defn dec\n \"Returns a number one less than num.\"\n [x] (- x 1))\n\n(defn ^number abs\n {:doc \"Returns the absolute value of a.\"\n :added \"1.11.10\"}\n [a] (Math\/abs a))\n\n(defn ^number max\n \"Returns the greatest of the nums.\"\n ([x] x)\n ([x y] (cljs.core\/max x y))\n ([x y & more]\n (reduce max (cljs.core\/max x y) more)))\n\n(defn ^number min\n \"Returns the least of the nums.\"\n ([x] x)\n ([x y] (cljs.core\/min x y))\n ([x y & more]\n (reduce min (cljs.core\/min x y) more)))\n\n(defn ^number byte [x] x)\n\n(defn char\n \"Coerce to char\"\n [x]\n (cond\n (number? x) (.fromCharCode js\/String x)\n (and (string? x) (== (.-length x) 1)) x\n :else (throw (js\/Error. \"Argument to char must be a character or number\"))))\n\n(defn ^number short [x] x)\n(defn ^number float [x] x)\n(defn ^number double [x] x)\n\n(defn ^number unchecked-byte [x] x)\n(defn ^number unchecked-char [x] x)\n(defn ^number unchecked-short [x] x)\n(defn ^number unchecked-float [x] x)\n(defn ^number unchecked-double [x] x)\n\n(defn ^number unchecked-add\n \"Returns the sum of nums. (+) returns 0.\"\n ([] 0)\n ([x] x)\n ([x y] (cljs.core\/unchecked-add x y))\n ([x y & more] (reduce unchecked-add (cljs.core\/unchecked-add x y) more)))\n\n(defn ^number unchecked-add-int\n \"Returns the sum of nums. (+) returns 0.\"\n ([] 0)\n ([x] x)\n ([x y] (cljs.core\/unchecked-add-int x y))\n ([x y & more] (reduce unchecked-add-int (cljs.core\/unchecked-add-int x y) more)))\n\n(defn unchecked-dec\n \"Returns a number one less than x, an int.\"\n [x]\n (cljs.core\/unchecked-dec x))\n\n(defn unchecked-dec-int\n \"Returns a number one less than x, an int.\"\n [x]\n (cljs.core\/unchecked-dec-int x))\n\n(defn ^number unchecked-divide-int\n \"If no denominators are supplied, returns 1\/numerator,\n else returns numerator divided by all of the denominators.\"\n ([x] (unchecked-divide-int 1 x))\n ([x y] (cljs.core\/divide x y)) ;; FIXME: waiting on cljs.core\/\/\n ([x y & more] (reduce unchecked-divide-int (unchecked-divide-int x y) more)))\n\n(defn unchecked-inc [x]\n (cljs.core\/unchecked-inc x))\n\n(defn unchecked-inc-int [x]\n (cljs.core\/unchecked-inc-int x))\n\n(defn ^number unchecked-multiply\n \"Returns the product of nums. (*) returns 1.\"\n ([] 1)\n ([x] x)\n ([x y] (cljs.core\/unchecked-multiply x y))\n ([x y & more] (reduce unchecked-multiply (cljs.core\/unchecked-multiply x y) more)))\n\n(defn ^number unchecked-multiply-int\n \"Returns the product of nums. (*) returns 1.\"\n ([] 1)\n ([x] x)\n ([x y] (cljs.core\/unchecked-multiply-int x y))\n ([x y & more] (reduce unchecked-multiply-int (cljs.core\/unchecked-multiply-int x y) more)))\n\n(defn unchecked-negate [x]\n (cljs.core\/unchecked-negate x))\n\n(defn unchecked-negate-int [x]\n (cljs.core\/unchecked-negate-int x))\n\n(declare mod)\n\n(defn unchecked-remainder-int [x n]\n (cljs.core\/unchecked-remainder-int x n))\n\n(defn ^number unchecked-subtract\n \"If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result.\"\n ([x] (cljs.core\/unchecked-subtract x))\n ([x y] (cljs.core\/unchecked-subtract x y))\n ([x y & more] (reduce unchecked-subtract (cljs.core\/unchecked-subtract x y) more)))\n\n(defn ^number unchecked-subtract-int\n \"If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result.\"\n ([x] (cljs.core\/unchecked-subtract-int x))\n ([x y] (cljs.core\/unchecked-subtract-int x y))\n ([x y & more] (reduce unchecked-subtract-int (cljs.core\/unchecked-subtract-int x y) more)))\n\n(defn- ^number fix [q]\n (if (>= q 0)\n (Math\/floor q)\n (Math\/ceil q)))\n\n(defn int\n \"Coerce to int by stripping decimal places.\"\n [x]\n (bit-or x 0))\n\n(defn unchecked-int\n \"Coerce to int by stripping decimal places.\"\n [x]\n (fix x))\n\n(defn long\n \"Coerce to long by stripping decimal places. Identical to `int'.\"\n [x]\n (fix x))\n\n(defn unchecked-long\n \"Coerce to long by stripping decimal places. Identical to `int'.\"\n [x]\n (fix x))\n\n(defn booleans [x] x)\n(defn bytes [x] x)\n(defn chars [x] x)\n(defn shorts [x] x)\n(defn ints [x] x)\n(defn floats [x] x)\n(defn doubles [x] x)\n(defn longs [x] x)\n\n(defn js-mod\n \"Modulus of num and div with original javascript behavior. i.e. bug for negative numbers\"\n [n d]\n (cljs.core\/js-mod n d))\n\n(defn mod\n \"Modulus of num and div. Truncates toward negative infinity.\"\n [n d]\n (js-mod (+ (js-mod n d) d) d))\n\n(defn quot\n \"quot[ient] of dividing numerator by denominator.\"\n [n d]\n (let [rem (js-mod n d)]\n (fix (\/ (- n rem) d))))\n\n(defn rem\n \"remainder of dividing numerator by denominator.\"\n [n d]\n (let [q (quot n d)]\n (- n (* d q))))\n\n(defn bit-xor\n \"Bitwise exclusive or\"\n ([x y] (cljs.core\/bit-xor x y))\n ([x y & more]\n (reduce bit-xor (cljs.core\/bit-xor x y) more)))\n\n(defn bit-and\n \"Bitwise and\"\n ([x y] (cljs.core\/bit-and x y))\n ([x y & more]\n (reduce bit-and (cljs.core\/bit-and x y) more)))\n\n(defn bit-or\n \"Bitwise or\"\n ([x y] (cljs.core\/bit-or x y))\n ([x y & more]\n (reduce bit-or (cljs.core\/bit-or x y) more)))\n\n(defn bit-and-not\n \"Bitwise and with complement\"\n ([x y] (cljs.core\/bit-and-not x y))\n ([x y & more]\n (reduce bit-and-not (cljs.core\/bit-and-not x y) more)))\n\n(defn bit-clear\n \"Clear bit at index n\"\n [x n]\n (cljs.core\/bit-clear x n))\n\n(defn bit-flip\n \"Flip bit at index n\"\n [x n]\n (cljs.core\/bit-flip x n))\n\n(defn bit-not\n \"Bitwise complement\"\n [x] (cljs.core\/bit-not x))\n\n(defn bit-set\n \"Set bit at index n\"\n [x n]\n (cljs.core\/bit-set x n))\n\n(defn ^boolean bit-test\n \"Test bit at index n\"\n [x n]\n (cljs.core\/bit-test x n))\n\n(defn bit-shift-left\n \"Bitwise shift left\"\n [x n] (cljs.core\/bit-shift-left x n))\n\n(defn bit-shift-right\n \"Bitwise shift right\"\n [x n] (cljs.core\/bit-shift-right x n))\n\n(defn bit-shift-right-zero-fill\n \"DEPRECATED: Bitwise shift right with zero fill\"\n [x n] (cljs.core\/bit-shift-right-zero-fill x n))\n\n(defn unsigned-bit-shift-right\n \"Bitwise shift right with zero fill\"\n [x n] (cljs.core\/unsigned-bit-shift-right x n))\n\n(defn bit-count\n \"Counts the number of bits set in n\"\n [v]\n (let [v (- v (bit-and (bit-shift-right v 1) 0x55555555))\n v (+ (bit-and v 0x33333333) (bit-and (bit-shift-right v 2) 0x33333333))]\n (bit-shift-right (* (bit-and (+ v (bit-shift-right v 4)) 0xF0F0F0F) 0x1010101) 24)))\n\n(defn ^boolean ==\n \"Returns non-nil if nums all have the equivalent\n value, otherwise false. Behavior on non nums is\n undefined.\"\n ([x] true)\n ([x y] (-equiv x y))\n ([x y & more]\n (if (== x y)\n (if (next more)\n (recur y (first more) (next more))\n (== y (first more)))\n false)))\n\n(defn ^boolean pos?\n \"Returns true if num is greater than zero, else false\"\n [x] (cljs.core\/pos? x))\n\n(defn ^boolean zero?\n \"Returns true if num is zero, else false\"\n [x]\n (cljs.core\/zero? x))\n\n(defn ^boolean neg?\n \"Returns true if num is less than zero, else false\"\n [x] (cljs.core\/neg? x))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; protocols for host types ;;;;;;\n\n(defn nthnext\n \"Returns the nth next of coll, (seq coll) when n is 0.\"\n [coll n]\n (loop [n n xs (seq coll)]\n (if (and xs (pos? n))\n (recur (dec n) (next xs))\n xs)))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;; basics ;;;;;;;;;;;;;;;;;;\n\n(defn str\n \"With no args, returns the empty string. With one arg x, returns\n x.toString(). (str nil) returns the empty string. With more than\n one arg, returns the concatenation of the str values of the args.\"\n ([] \"\")\n ([x] (if (nil? x)\n \"\"\n (.join #js [x] \"\")))\n ([x & ys]\n (loop [sb (StringBuffer. (str x)) more ys]\n (if more\n (recur (. sb (append (str (first more)))) (next more))\n (.toString sb)))))\n\n(defn subs\n \"Returns the substring of s beginning at start inclusive, and ending\n at end (defaults to length of string), exclusive.\"\n ([s start] ^string (.substring s start))\n ([s start end] ^string (.substring s start end)))\n\n(declare map name)\n\n(defn- equiv-sequential\n \"Assumes x is sequential. Returns true if x equals y, otherwise\n returns false.\"\n [x y]\n (boolean\n (when (sequential? y)\n (if (and (counted? x) (counted? y)\n (not (== (count x) (count y))))\n false\n (loop [xs (seq x) ys (seq y)]\n (cond (nil? xs) (nil? ys)\n (nil? ys) false\n (= (first xs) (first ys)) (recur (next xs) (next ys))\n :else false))))))\n\n(defn- hash-coll [coll]\n (if (seq coll)\n (loop [res (hash (first coll)) s (next coll)]\n (if (nil? s)\n res\n (recur (hash-combine res (hash (first s))) (next s))))\n 0))\n\n(declare key val)\n\n(defn- hash-imap [m]\n ;; a la clojure.lang.APersistentMap\n (loop [h 0 s (seq m)]\n (if s\n (let [e (first s)]\n (recur (js-mod (+ h (bit-xor (hash (key e)) (hash (val e))))\n 4503599627370496)\n (next s)))\n h)))\n\n(defn- hash-iset [s]\n ;; a la clojure.lang.APersistentSet\n (loop [h 0 s (seq s)]\n (if s\n (let [e (first s)]\n (recur (js-mod (+ h (hash e)) 4503599627370496)\n (next s)))\n h)))\n\n(declare name chunk-first chunk-rest)\n\n(defn- extend-object!\n \"Takes a JavaScript object and a map of names to functions and\n attaches said functions as methods on the object. Any references to\n JavaScript's implicit this (via the this-as macro) will resolve to the\n object that the function is attached.\"\n [obj fn-map]\n (doseq [[key-name f] fn-map]\n (let [str-name (name key-name)]\n (gobject\/set obj str-name f)))\n obj)\n\n;;;;;;;;;;;;;;;; cons ;;;;;;;;;;;;;;;;\n(deftype List [meta first rest count ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x count))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IList\n\n ICloneable\n (-clone [_] (List. meta first rest count __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (List. new-meta first rest count __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ASeq\n ISeq\n (-first [coll] first)\n (-rest [coll]\n (if (== count 1)\n ()\n rest))\n\n INext\n (-next [coll]\n (if (== count 1)\n nil\n rest))\n\n IStack\n (-peek [coll] first)\n (-pop [coll] (-rest coll))\n\n ICollection\n (-conj [coll o] (List. meta o coll (inc count) nil))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY List) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll] coll)\n\n ICounted\n (-count [coll] count)\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(defn list?\n \"Returns true if x implements IList\"\n [x]\n (satisfies? IList x))\n\n(es6-iterable List)\n\n(deftype EmptyList [meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IList\n\n ICloneable\n (-clone [_] (EmptyList. meta))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (EmptyList. new-meta)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll] nil)\n (-rest [coll] ())\n\n INext\n (-next [coll] nil)\n\n IStack\n (-peek [coll] nil)\n (-pop [coll] (throw (js\/Error. \"Can't pop empty list\")))\n\n ICollection\n (-conj [coll o] (List. meta o nil 1 nil))\n\n IEmptyableCollection\n (-empty [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other]\n (if (or (list? other)\n (sequential? other))\n (nil? (seq other))\n false))\n\n IHash\n (-hash [coll] empty-ordered-hash)\n\n ISeqable\n (-seq [coll] nil)\n\n ICounted\n (-count [coll] 0)\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(set! (.-EMPTY List) (EmptyList. nil))\n\n(es6-iterable EmptyList)\n\n(defn reversible?\n \"Returns true if coll satisfies? IReversible.\"\n [coll]\n (satisfies? IReversible coll))\n\n(defn ^seq rseq\n \"Returns, in constant time, a seq of the items in rev (which\n can be a vector or sorted-map), in reverse order. If rev is empty returns nil\"\n [rev]\n (-rseq rev))\n\n(defn reverse\n \"Returns a seq of the items in coll in reverse order. Not lazy.\"\n [coll]\n (if (reversible? coll)\n (or (rseq coll) ())\n (reduce conj () coll)))\n\n(defn list\n \"Creates a new list containing the items.\"\n [& xs]\n (let [arr (if (and (instance? IndexedSeq xs) (zero? (.-i xs)))\n (.-arr xs)\n (let [arr (array)]\n (loop [^not-native xs xs]\n (if-not (nil? xs)\n (do\n (.push arr (-first xs))\n (recur (-next xs)))\n arr))))]\n (loop [i (alength arr) r ()]\n (if (> i 0)\n (recur (dec i) (-conj r (aget arr (dec i))))\n r))))\n\n(deftype Cons [meta first rest ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IList\n\n ICloneable\n (-clone [_] (Cons. meta first rest __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Cons. new-meta first rest __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ASeq\n ISeq\n (-first [coll] first)\n (-rest [coll] (if (nil? rest) () rest))\n\n INext\n (-next [coll]\n (if (nil? rest) nil (seq rest)))\n\n ICollection\n (-conj [coll o] (Cons. nil o coll nil))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll] coll)\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable Cons)\n\n(defn cons\n \"Returns a new seq where x is the first element and coll is the rest.\"\n [x coll]\n (cond\n (nil? coll) (List. nil x nil 1 nil)\n (implements? ISeq coll) (Cons. nil x coll nil)\n :default (Cons. nil x (seq coll) nil)))\n\n(defn hash-keyword [k]\n (int (+ (hash-symbol k) 0x9e3779b9)))\n\n(defn- compare-keywords [a b]\n (cond\n (identical? (.-fqn a) (.-fqn b)) 0\n (and (not (.-ns a)) (.-ns b)) -1\n (.-ns a) (if-not (.-ns b)\n 1\n (let [nsc (garray\/defaultCompare (.-ns a) (.-ns b))]\n (if (== 0 nsc)\n (garray\/defaultCompare (.-name a) (.-name b))\n nsc)))\n :default (garray\/defaultCompare (.-name a) (.-name b))))\n\n(deftype Keyword [ns name fqn ^:mutable _hash]\n Object\n (toString [_] (str \":\" fqn))\n (equiv [this other]\n (-equiv this other))\n\n IEquiv\n (-equiv [_ other]\n (if (instance? Keyword other)\n (identical? fqn (.-fqn other))\n false))\n IFn\n (-invoke [kw coll]\n (get coll kw))\n (-invoke [kw coll not-found]\n (get coll kw not-found))\n\n IHash\n (-hash [this]\n (caching-hash this hash-keyword _hash))\n\n INamed\n (-name [_] name)\n (-namespace [_] ns)\n\n IPrintWithWriter\n (-pr-writer [o writer _] (-write writer (str \":\" fqn))))\n\n(defn keyword?\n \"Return true if x is a Keyword\"\n [x]\n (instance? Keyword x))\n\n(defn keyword-identical?\n \"Efficient test to determine that two keywords are identical.\"\n [x y]\n (if (identical? x y)\n true\n (if (and (keyword? x) (keyword? y))\n (identical? (.-fqn x) (.-fqn y))\n false)))\n\n(defn symbol-identical?\n \"Efficient test to determine that two symbols are identical.\"\n [x y]\n (if (identical? x y)\n true\n (if (and (symbol? x) (symbol? y))\n (identical? (.-str x) (.-str y))\n false)))\n\n(defn namespace\n \"Returns the namespace String of a symbol or keyword, or nil if not present.\"\n [x]\n (if (implements? INamed x)\n (-namespace x)\n (throw (js\/Error. (str \"Doesn't support namespace: \" x)))))\n\n(defn ident?\n \"Return true if x is a symbol or keyword\"\n [x] (or (keyword? x) (symbol? x)))\n\n(defn simple-ident?\n \"Return true if x is a symbol or keyword without a namespace\"\n [x] (and (ident? x) (nil? (namespace x))))\n\n(defn qualified-ident?\n \"Return true if x is a symbol or keyword with a namespace\"\n [x] (boolean (and (ident? x) (namespace x) true)))\n\n(defn simple-symbol?\n \"Return true if x is a symbol without a namespace\"\n [x] (and (symbol? x) (nil? (namespace x))))\n\n(defn qualified-symbol?\n \"Return true if x is a symbol with a namespace\"\n [x] (boolean (and (symbol? x) (namespace x) true)))\n\n(defn simple-keyword?\n \"Return true if x is a keyword without a namespace\"\n [x] (and (keyword? x) (nil? (namespace x))))\n\n(defn qualified-keyword?\n \"Return true if x is a keyword with a namespace\"\n [x] (boolean (and (keyword? x) (namespace x) true)))\n\n(defn keyword\n \"Returns a Keyword with the given namespace and name. Do not use :\n in the keyword strings, it will be added automatically.\"\n ([name] (cond\n (keyword? name) name\n (symbol? name) (Keyword.\n (cljs.core\/namespace name)\n (cljs.core\/name name) (.-str name) nil)\n (= \"\/\" name) (Keyword. nil name name nil)\n (string? name) (let [parts (.split name \"\/\")]\n (if (== (alength parts) 2)\n (Keyword. (aget parts 0) (aget parts 1) name nil)\n (Keyword. nil (aget parts 0) name nil)))))\n ([ns name]\n (let [ns (cond\n (keyword? ns) (cljs.core\/name ns)\n (symbol? ns) (cljs.core\/name ns)\n :else ns)\n name (cond\n (keyword? name) (cljs.core\/name name)\n (symbol? name) (cljs.core\/name name)\n :else name)]\n (Keyword. ns name (str (when ns (str ns \"\/\")) name) nil))))\n\n\n(deftype LazySeq [meta ^:mutable fn ^:mutable s ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (sval [coll]\n (if (nil? fn)\n s\n (do\n (set! s (fn))\n (set! fn nil)\n s)))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IPending\n (-realized? [coll]\n (not fn))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (LazySeq. new-meta #(-seq coll) nil __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n (-seq coll)\n (when-not (nil? s)\n (first s)))\n (-rest [coll]\n (-seq coll)\n (if-not (nil? s)\n (rest s)\n ()))\n\n INext\n (-next [coll]\n (-seq coll)\n (when-not (nil? s)\n (next s)))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY List) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (.sval coll)\n (when-not (nil? s)\n (loop [ls s]\n (if (instance? LazySeq ls)\n (recur (.sval ls))\n (do (set! s ls)\n (seq s))))))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable LazySeq)\n\n(declare ArrayChunk)\n\n(deftype ChunkBuffer [^:mutable buf ^:mutable end]\n Object\n (add [_ o]\n (aset buf end o)\n (set! end (inc end)))\n\n (chunk [_]\n (let [ret (ArrayChunk. buf 0 end)]\n (set! buf nil)\n ret))\n\n ICounted\n (-count [_] end))\n\n(defn chunk-buffer [capacity]\n (ChunkBuffer. (make-array capacity) 0))\n\n(deftype ArrayChunk [arr off end]\n ICounted\n (-count [_] (- end off))\n\n IIndexed\n (-nth [coll i]\n (aget arr (+ off i)))\n (-nth [coll i not-found]\n (if (and (>= i 0) (< i (- end off)))\n (aget arr (+ off i))\n not-found))\n\n IChunk\n (-drop-first [coll]\n (if (== off end)\n (throw (js\/Error. \"-drop-first of empty chunk\"))\n (ArrayChunk. arr (inc off) end)))\n\n IReduce\n (-reduce [coll f]\n (array-reduce arr f (aget arr off) (inc off)))\n (-reduce [coll f start]\n (array-reduce arr f start off)))\n\n(defn array-chunk\n ([arr]\n (ArrayChunk. arr 0 (alength arr)))\n ([arr off]\n (ArrayChunk. arr off (alength arr)))\n ([arr off end]\n (ArrayChunk. arr off end)))\n\n(deftype ChunkedCons [chunk more meta ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (ChunkedCons. chunk more new-meta __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ISeqable\n (-seq [coll] coll)\n\n ASeq\n ISeq\n (-first [coll] (-nth chunk 0))\n (-rest [coll]\n (if (> (-count chunk) 1)\n (ChunkedCons. (-drop-first chunk) more nil nil)\n (if (nil? more)\n ()\n more)))\n\n INext\n (-next [coll]\n (if (> (-count chunk) 1)\n (ChunkedCons. (-drop-first chunk) more nil nil)\n (when-not (nil? more)\n (-seq more))))\n\n IChunkedSeq\n (-chunked-first [coll] chunk)\n (-chunked-rest [coll]\n (if (nil? more)\n ()\n more))\n\n IChunkedNext\n (-chunked-next [coll]\n (if (nil? more)\n nil\n more))\n\n ICollection\n (-conj [this o]\n (cons o this))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash)))\n\n(es6-iterable ChunkedCons)\n\n(defn chunk-cons [chunk rest]\n (if (zero? (-count chunk))\n rest\n (ChunkedCons. chunk rest nil nil)))\n\n(defn chunk-append [b x]\n (.add b x))\n\n(defn chunk [b]\n (.chunk b))\n\n(defn chunk-first [s]\n (-chunked-first s))\n\n(defn chunk-rest [s]\n (-chunked-rest s))\n\n(defn chunk-next [s]\n (if (implements? IChunkedNext s)\n (-chunked-next s)\n (seq (-chunked-rest s))))\n\n;;;;;;;;;;;;;;;;\n\n(defn to-array\n \"Returns an array containing the contents of coll.\"\n [coll]\n (let [ary (array)]\n (loop [s (seq coll)]\n (if-not (nil? s)\n (do (. ary push (first s))\n (recur (next s)))\n ary))))\n\n(defn to-array-2d\n \"Returns a (potentially-ragged) 2-dimensional array\n containing the contents of coll.\"\n [coll]\n (let [ret (make-array (count coll))]\n (loop [i 0 xs (seq coll)]\n (when-not (nil? xs)\n (aset ret i (to-array (first xs)))\n (recur (inc i) (next xs))))\n ret))\n\n(defn int-array\n \"Creates an array of ints. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (int-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn long-array\n \"Creates an array of longs. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (long-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn double-array\n \"Creates an array of doubles. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (double-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn object-array\n \"Creates an array of objects. Does not coerce array, provided for compatibility\n with Clojure.\"\n ([size-or-seq]\n (if (number? size-or-seq)\n (object-array size-or-seq nil)\n (into-array size-or-seq)))\n ([size init-val-or-seq]\n (let [a (make-array size)]\n (if (seq? init-val-or-seq)\n (let [s (seq init-val-or-seq)]\n (loop [i 0 s s]\n (if (and s (< i size))\n (do\n (aset a i (first s))\n (recur (inc i) (next s)))\n a)))\n (do\n (dotimes [i size]\n (aset a i init-val-or-seq))\n a)))))\n\n(defn bounded-count\n \"If coll is counted? returns its count, else will count at most the first n\n elements of coll using its seq\"\n {:added \"1.9\"}\n [n coll]\n (if (counted? coll)\n (count coll)\n (loop [i 0 s (seq coll)]\n (if (and (not (nil? s)) (< i n))\n (recur (inc i) (next s))\n i))))\n\n(defn spread\n [arglist]\n (when-not (nil? arglist)\n (let [n (next arglist)]\n (if (nil? n)\n (seq (first arglist))\n (cons (first arglist)\n (spread n))))))\n\n(defn concat\n \"Returns a lazy seq representing the concatenation of the elements in the supplied colls.\"\n ([] (lazy-seq nil))\n ([x] (lazy-seq x))\n ([x y]\n (lazy-seq\n (let [s (seq x)]\n (if s\n (if (chunked-seq? s)\n (chunk-cons (chunk-first s) (concat (chunk-rest s) y))\n (cons (first s) (concat (rest s) y)))\n y))))\n ([x y & zs]\n (let [cat (fn cat [xys zs]\n (lazy-seq\n (let [xys (seq xys)]\n (if xys\n (if (chunked-seq? xys)\n (chunk-cons (chunk-first xys)\n (cat (chunk-rest xys) zs))\n (cons (first xys) (cat (rest xys) zs)))\n (when zs\n (cat (first zs) (next zs)))))))]\n (cat (concat x y) zs))))\n\n(defn list*\n \"Creates a new list containing the items prepended to the rest, the\n last of which will be treated as a sequence.\"\n ([args] (seq args))\n ([a args] (cons a args))\n ([a b args] (cons a (cons b args)))\n ([a b c args] (cons a (cons b (cons c args))))\n ([a b c d & more]\n (cons a (cons b (cons c (cons d (spread more)))))))\n\n\n;;; Transients\n\n(defn transient\n \"Returns a new, transient version of the collection, in constant time.\"\n [coll]\n (-as-transient coll))\n\n(defn persistent!\n \"Returns a new, persistent version of the transient collection, in\n constant time. The transient collection cannot be used after this\n call, any such use will throw an exception.\"\n [tcoll]\n (-persistent! tcoll))\n\n(defn conj!\n \"Adds val to the transient collection, and return tcoll. The 'addition'\n may happen at different 'places' depending on the concrete type.\"\n ([] (transient []))\n ([tcoll] tcoll)\n ([tcoll val]\n (-conj! tcoll val))\n ([tcoll val & vals]\n (let [ntcoll (-conj! tcoll val)]\n (if vals\n (recur ntcoll (first vals) (next vals))\n ntcoll))))\n\n(defn assoc!\n \"When applied to a transient map, adds mapping of key(s) to\n val(s). When applied to a transient vector, sets the val at index.\n Note - index must be <= (count vector). Returns coll.\"\n ([tcoll key val]\n (-assoc! tcoll key val))\n ([tcoll key val & kvs]\n (let [ntcoll (-assoc! tcoll key val)]\n (if kvs\n (recur ntcoll (first kvs) (second kvs) (nnext kvs))\n ntcoll))))\n\n(defn dissoc!\n \"Returns a transient map that doesn't contain a mapping for key(s).\"\n ([tcoll key]\n (-dissoc! tcoll key))\n ([tcoll key & ks]\n (let [ntcoll (-dissoc! tcoll key)]\n (if ks\n (recur ntcoll (first ks) (next ks))\n ntcoll))))\n\n(defn pop!\n \"Removes the last item from a transient vector. If\n the collection is empty, throws an exception. Returns tcoll\"\n [tcoll]\n (-pop! tcoll))\n\n(defn disj!\n \"disj[oin]. Returns a transient set of the same (hashed\/sorted) type, that\n does not contain key(s).\"\n ([tcoll val]\n (-disjoin! tcoll val))\n ([tcoll val & vals]\n (let [ntcoll (-disjoin! tcoll val)]\n (if vals\n (recur ntcoll (first vals) (next vals))\n ntcoll))))\n\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; apply ;;;;;;;;;;;;;;;;\n\n;; see core.clj\n(gen-apply-to)\n\n(set! *unchecked-if* true)\n\n(defn- ^seq next*\n \"Internal. DO NOT USE! Next without the nil? check.\"\n [coll]\n (if (implements? INext coll)\n (-next ^not-native coll)\n (seq (rest coll))))\n\n(defn- apply-to-simple\n \"Internal. DO NOT USE!\n Assumes args was already called with seq beforehand!\"\n ([f ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$0 f)\n (.cljs$core$IFn$_invoke$arity$0 f)\n (.call f f))\n (apply-to-simple f (-first args) (next* args))))\n ([f a0 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$1 f)\n (.cljs$core$IFn$_invoke$arity$1 f a0)\n (.call f f a0))\n (apply-to-simple f a0 (-first args) (next* args))))\n ([f a0 a1 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$2 f)\n (.cljs$core$IFn$_invoke$arity$2 f a0 a1)\n (.call f f a0 a1))\n (apply-to-simple f a0 a1 (-first args) (next* args))))\n ([f a0 a1 a2 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$3 f)\n (.cljs$core$IFn$_invoke$arity$3 f a0 a1 a2)\n (.call f f a0 a1 a2))\n (apply-to-simple f a0 a1 a2 (-first args) (next* args))))\n ([f a0 a1 a2 a3 ^seq args]\n (if (nil? args)\n (if (.-cljs$core$IFn$_invoke$arity$4 f)\n (.cljs$core$IFn$_invoke$arity$4 f a0 a1 a2 a3)\n (.call f f a0 a1 a2 a3))\n (gen-apply-to-simple f 4 args))))\n\n(defn apply\n \"Applies fn f to the argument list formed by prepending intervening arguments to args.\"\n ([f args]\n (if (.-cljs$lang$applyTo f)\n (let [fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (bounded-count (inc fixed-arity) args)]\n (if (<= bc fixed-arity)\n (apply-to f bc args)\n (.cljs$lang$applyTo f args)))\n (apply-to-simple f (seq args))))\n ([f x args]\n (if (.-cljs$lang$applyTo f)\n (let [arglist (list* x args)\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (inc (bounded-count fixed-arity args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f x (seq args))))\n ([f x y args]\n (if (.-cljs$lang$applyTo f)\n (let [arglist (list* x y args)\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (+ 2 (bounded-count (dec fixed-arity) args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f x y (seq args))))\n ([f x y z args]\n (if (.-cljs$lang$applyTo f)\n (let [arglist (list* x y z args)\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (+ 3 (bounded-count (- fixed-arity 2) args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f x y z (seq args))))\n ([f a b c d & args]\n (if (.-cljs$lang$applyTo f)\n (let [spread-args (spread args)\n arglist (cons a (cons b (cons c (cons d spread-args))))\n fixed-arity (.-cljs$lang$maxFixedArity f)\n bc (+ 4 (bounded-count (- fixed-arity 3) spread-args))]\n (if (<= bc fixed-arity)\n (apply-to f bc arglist)\n (.cljs$lang$applyTo f arglist)))\n (apply-to-simple f a b c d (spread args)))))\n\n(set! *unchecked-if* false)\n\n;; CLJS-3200: used by destructure macro for maps to reduce amount of repeated code\n;; placed here because it needs apply and hash-map (only declared at this point)\n(defn --destructure-map [gmap]\n (if (implements? ISeq gmap)\n (if (next gmap)\n (.createAsIfByAssoc PersistentArrayMap (to-array gmap))\n (if (seq gmap)\n (first gmap)\n (.-EMPTY PersistentArrayMap)))\n gmap))\n\n(defn vary-meta\n \"Returns an object of the same type and value as obj, with\n (apply f (meta obj) args) as its metadata.\"\n ([obj f]\n (with-meta obj (f (meta obj))))\n ([obj f a]\n (with-meta obj (f (meta obj) a)))\n ([obj f a b]\n (with-meta obj (f (meta obj) a b)))\n ([obj f a b c]\n (with-meta obj (f (meta obj) a b c)))\n ([obj f a b c d]\n (with-meta obj (f (meta obj) a b c d)))\n ([obj f a b c d & args]\n (with-meta obj (apply f (meta obj) a b c d args))))\n\n(defn ^boolean not=\n \"Same as (not (= obj1 obj2))\"\n ([x] false)\n ([x y] (not (= x y)))\n ([x y & more]\n (not (apply = x y more))))\n\n(defn not-empty\n \"If coll is empty, returns nil, else coll\"\n [coll] (when (seq coll) coll))\n\n(defn nil-iter []\n (reify\n Object\n (hasNext [_] false)\n (next [_] (js\/Error. \"No such element\"))\n (remove [_] (js\/Error. \"Unsupported operation\"))))\n\n(deftype StringIter [s ^:mutable i]\n Object\n (hasNext [_] (< i (.-length s)))\n (next [_]\n (let [ret (.charAt s i)]\n (set! i (inc i))\n ret))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(defn string-iter [x]\n (StringIter. x 0))\n\n(deftype ArrayIter [arr ^:mutable i]\n Object\n (hasNext [_] (< i (alength arr)))\n (next [_]\n (let [ret (aget arr i)]\n (set! i (inc i))\n ret))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(defn array-iter [x]\n (ArrayIter. x 0))\n\n(def INIT #js {})\n(def START #js {})\n\n(deftype SeqIter [^:mutable _seq ^:mutable _next]\n Object\n (hasNext [_]\n (if (identical? _seq INIT)\n (do\n (set! _seq START)\n (set! _next (seq _next)))\n (if (identical? _seq _next)\n (set! _next (next _seq))))\n (not (nil? _next)))\n (next [this]\n (if-not ^boolean (.hasNext this)\n (throw (js\/Error. \"No such element\"))\n (do\n (set! _seq _next)\n (first _next))))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(defn seq-iter [coll]\n (SeqIter. INIT coll))\n\n(defn iter [coll]\n (cond\n (iterable? coll) (-iterator coll)\n (nil? coll) (nil-iter)\n (string? coll) (string-iter coll)\n (array? coll) (array-iter coll)\n (seqable? coll) (seq-iter coll)\n :else (throw (js\/Error. (str \"Cannot create iterator from \" coll)))))\n\n(deftype Many [vals]\n Object\n (add [this o]\n (.push vals o)\n this)\n (remove [this]\n (.shift vals))\n (isEmpty [this]\n (zero? (.-length vals)))\n (toString [this]\n (str \"Many: \" vals)))\n\n(def ^:private NONE #js {})\n\n(deftype Single [^:mutable val]\n Object\n (add [this o]\n (if (identical? val NONE)\n (do\n (set! val o)\n this)\n (Many. #js [val o])))\n (remove [this]\n (if (identical? val NONE)\n (throw (js\/Error. (str \"Removing object from empty buffer\")))\n (let [ret val]\n (set! val NONE)\n ret)))\n (isEmpty [this]\n (identical? val NONE))\n (toString [this]\n (str \"Single: \" val)))\n\n(deftype Empty []\n Object\n (add [this o]\n (Single. o))\n (remove [this]\n (throw (js\/Error. (str \"Removing object from empty buffer\"))))\n (isEmpty [this]\n true)\n (toString [this]\n \"Empty\"))\n\n(def ^:private EMPTY (Empty.))\n\n(deftype MultiIterator [iters]\n Object\n (hasNext [_]\n (loop [iters (seq iters)]\n (if-not (nil? iters)\n (let [iter (first iters)]\n (if-not ^boolean (.hasNext iter)\n false\n (recur (next iters))))\n true)))\n (next [_]\n (let [nexts (array)]\n (dotimes [i (alength iters)]\n (aset nexts i (.next (aget iters i))))\n (prim-seq nexts 0))))\n\n(defn- chunkIteratorSeq [iter]\n (lazy-seq\n (when ^boolean (.hasNext iter)\n (let [arr (array)]\n (loop [n 0]\n (if (and (.hasNext iter) (< n 32))\n (do\n (aset arr n (.next iter))\n (recur (inc n)))\n (chunk-cons (array-chunk arr 0 n) (chunkIteratorSeq iter))))))))\n\n(deftype TransformerIterator [^:mutable buffer ^:mutable _next ^:mutable completed ^:mutable xf sourceIter multi]\n Object\n (step [this]\n (if-not (identical? _next NONE)\n true\n (loop []\n (if (identical? _next NONE)\n (if ^boolean (.isEmpty buffer)\n (if ^boolean completed\n false\n (if ^boolean (.hasNext sourceIter)\n (let [iter (if ^boolean multi\n (apply xf (cons nil (.next sourceIter)))\n (xf nil (.next sourceIter)))]\n (when (reduced? iter)\n (xf nil)\n (set! completed true))\n (recur))\n (do\n (xf nil)\n (set! completed true)\n (recur))))\n (do\n (set! _next (.remove buffer))\n (recur)))\n true))))\n (hasNext [this]\n (.step this))\n (next [this]\n (if ^boolean (.hasNext this)\n (let [ret _next]\n (set! _next NONE)\n ret)\n (throw (js\/Error. \"No such element\"))))\n (remove [_]\n (js\/Error. \"Unsupported operation\")))\n\n(es6-iterable TransformerIterator)\n\n(defn transformer-iterator\n [xform sourceIter multi]\n (let [iterator (TransformerIterator. EMPTY NONE false nil sourceIter multi)]\n (set! (.-xf iterator)\n (xform (fn\n ([] nil)\n ([acc] acc)\n ([acc o]\n (set! (.-buffer iterator) (.add (.-buffer iterator) o))\n acc))))\n iterator))\n\n(set! (.-create TransformerIterator)\n (fn [xform source]\n (transformer-iterator xform source false)))\n\n(set! (.-createMulti TransformerIterator)\n (fn [xform sources]\n (transformer-iterator xform (MultiIterator. (to-array sources)) true)))\n\n(defn sequence\n \"Coerces coll to a (possibly empty) sequence, if it is not already\n one. Will not force a lazy seq. (sequence nil) yields (), When a\n transducer is supplied, returns a lazy sequence of applications of\n the transform to the items in coll(s), i.e. to the set of first\n items of each coll, followed by the set of second\n items in each coll, until any one of the colls is exhausted. Any\n remaining items in other colls are ignored. The transform should accept\n number-of-colls arguments\"\n ([coll]\n (if (seq? coll)\n coll\n (or (seq coll) ())))\n ([xform coll]\n (or (chunkIteratorSeq\n (.create TransformerIterator xform (iter coll)))\n ()))\n ([xform coll & colls]\n (or (chunkIteratorSeq\n (.createMulti TransformerIterator xform (map iter (cons coll colls))))\n ())))\n\n(defn every?\n \"Returns true if (pred x) is logical true for every x in coll, else\n false.\"\n [pred coll]\n (cond\n (nil? (seq coll)) true\n (pred (first coll)) (recur pred (next coll))\n :else false))\n\n(defn not-every?\n \"Returns false if (pred x) is logical true for every x in\n coll, else true.\"\n [pred coll] (not (every? pred coll)))\n\n(defn some\n \"Returns the first logical true value of (pred x) for any x in coll,\n else nil. One common idiom is to use a set as pred, for example\n this will return :fred if :fred is in the sequence, otherwise nil:\n (some #{:fred} coll)\"\n [pred coll]\n (when-let [s (seq coll)]\n (or (pred (first s)) (recur pred (next s)))))\n\n(defn not-any?\n \"Returns false if (pred x) is logical true for any x in coll,\n else true.\"\n [pred coll] (not (some pred coll)))\n\n(defn even?\n \"Returns true if n is even, throws an exception if n is not an integer\"\n [n] (if (integer? n)\n (zero? (bit-and n 1))\n (throw (js\/Error. (str \"Argument must be an integer: \" n)))))\n\n(defn odd?\n \"Returns true if n is odd, throws an exception if n is not an integer\"\n [n] (not (even? n)))\n\n(defn complement\n \"Takes a fn f and returns a fn that takes the same arguments as f,\n has the same effects, if any, and returns the opposite truth value.\"\n [f]\n (fn\n ([] (not (f)))\n ([x] (not (f x)))\n ([x y] (not (f x y)))\n ([x y & zs] (not (apply f x y zs)))))\n\n(defn constantly\n \"Returns a function that takes any number of arguments and returns x.\"\n [x] (fn [& args] x))\n\n(defn comp\n \"Takes a set of functions and returns a fn that is the composition\n of those fns. The returned fn takes a variable number of args,\n applies the rightmost of fns to the args, the next\n fn (right-to-left) to the result, etc.\"\n ([] identity)\n ([f] f)\n ([f g]\n (fn\n ([] (f (g)))\n ([x] (f (g x)))\n ([x y] (f (g x y)))\n ([x y z] (f (g x y z)))\n ([x y z & args] (f (apply g x y z args)))))\n ([f g h]\n (fn\n ([] (f (g (h))))\n ([x] (f (g (h x))))\n ([x y] (f (g (h x y))))\n ([x y z] (f (g (h x y z))))\n ([x y z & args] (f (g (apply h x y z args))))))\n ([f1 f2 f3 & fs]\n (let [fs (reverse (list* f1 f2 f3 fs))]\n (fn [& args]\n (loop [ret (apply (first fs) args) fs (next fs)]\n (if fs\n (recur ((first fs) ret) (next fs))\n ret))))))\n\n(defn partial\n \"Takes a function f and fewer than the normal arguments to f, and\n returns a fn that takes a variable number of additional args. When\n called, the returned function calls f with args + additional args.\"\n ([f] f)\n ([f arg1]\n (fn\n ([] (f arg1))\n ([x] (f arg1 x))\n ([x y] (f arg1 x y))\n ([x y z] (f arg1 x y z))\n ([x y z & args] (apply f arg1 x y z args))))\n ([f arg1 arg2]\n (fn\n ([] (f arg1 arg2))\n ([x] (f arg1 arg2 x))\n ([x y] (f arg1 arg2 x y))\n ([x y z] (f arg1 arg2 x y z))\n ([x y z & args] (apply f arg1 arg2 x y z args))))\n ([f arg1 arg2 arg3]\n (fn\n ([] (f arg1 arg2 arg3))\n ([x] (f arg1 arg2 arg3 x))\n ([x y] (f arg1 arg2 arg3 x y))\n ([x y z] (f arg1 arg2 arg3 x y z))\n ([x y z & args] (apply f arg1 arg2 arg3 x y z args))))\n ([f arg1 arg2 arg3 & more]\n (fn [& args] (apply f arg1 arg2 arg3 (concat more args)))))\n\n(defn fnil\n \"Takes a function f, and returns a function that calls f, replacing\n a nil first argument to f with the supplied value x. Higher arity\n versions can replace arguments in the second and third\n positions (y, z). Note that the function f can take any number of\n arguments, not just the one(s) being nil-patched.\"\n ([f x]\n (fn\n ([a] (f (if (nil? a) x a)))\n ([a b] (f (if (nil? a) x a) b))\n ([a b c] (f (if (nil? a) x a) b c))\n ([a b c & ds] (apply f (if (nil? a) x a) b c ds))))\n ([f x y]\n (fn\n ([a b] (f (if (nil? a) x a) (if (nil? b) y b)))\n ([a b c] (f (if (nil? a) x a) (if (nil? b) y b) c))\n ([a b c & ds] (apply f (if (nil? a) x a) (if (nil? b) y b) c ds))))\n ([f x y z]\n (fn\n ([a b] (f (if (nil? a) x a) (if (nil? b) y b)))\n ([a b c] (f (if (nil? a) x a) (if (nil? b) y b) (if (nil? c) z c)))\n ([a b c & ds] (apply f (if (nil? a) x a) (if (nil? b) y b) (if (nil? c) z c) ds)))))\n\n(declare volatile!)\n\n(defn map-indexed\n \"Returns a lazy sequence consisting of the result of applying f to 0\n and the first item of coll, followed by applying f to 1 and the second\n item in coll, etc, until coll is exhausted. Thus function f should\n accept 2 arguments, index and item. Returns a stateful transducer when\n no collection is provided.\"\n ([f]\n (fn [rf]\n (let [i (volatile! -1)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (rf result (f (vswap! i inc) input)))))))\n ([f coll]\n (letfn [(mapi [idx coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (chunk-append b (f (+ idx i) (-nth c i))))\n (chunk-cons (chunk b) (mapi (+ idx size) (chunk-rest s))))\n (cons (f idx (first s)) (mapi (inc idx) (rest s)))))))]\n (mapi 0 coll))))\n\n(defn keep\n \"Returns a lazy sequence of the non-nil results of (f item). Note,\n this means false return values will be included. f must be free of\n side-effects. Returns a transducer when no collection is provided.\"\n ([f]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [v (f input)]\n (if (nil? v)\n result\n (rf result v)))))))\n ([f coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (let [x (f (-nth c i))]\n (when-not (nil? x)\n (chunk-append b x))))\n (chunk-cons (chunk b) (keep f (chunk-rest s))))\n (let [x (f (first s))]\n (if (nil? x)\n (keep f (rest s))\n (cons x (keep f (rest s))))))))))\n\n;; =============================================================================\n;; Atom\n\n(deftype Atom [state meta validator watches]\n Object\n (equiv [this other]\n (-equiv this other))\n\n IAtom\n\n IEquiv\n (-equiv [o other] (identical? o other))\n\n IDeref\n (-deref [_] state)\n\n IMeta\n (-meta [_] meta)\n\n IWatchable\n (-notify-watches [this oldval newval]\n (doseq [[key f] watches]\n (f key this oldval newval)))\n (-add-watch [this key f]\n (set! (.-watches this) (assoc watches key f))\n this)\n (-remove-watch [this key]\n (set! (.-watches this) (dissoc watches key)))\n\n IHash\n (-hash [this] (goog\/getUid this)))\n\n(defn atom\n \"Creates and returns an Atom with an initial value of x and zero or\n more options (in any order):\n\n :meta metadata-map\n\n :validator validate-fn\n\n If metadata-map is supplied, it will become the metadata on the\n atom. validate-fn must be nil or a side-effect-free fn of one\n argument, which will be passed the intended new state on any state\n change. If the new state is unacceptable, the validate-fn should\n return false or throw an Error. If either of these error conditions\n occur, then the value of the atom will not change.\"\n ([x] (Atom. x nil nil nil))\n ([x & {:keys [meta validator]}] (Atom. x meta validator nil)))\n\n(declare pr-str)\n\n(defn reset!\n \"Sets the value of atom to newval without regard for the\n current value. Returns new-value.\"\n [a new-value]\n (if (instance? Atom a)\n (let [validate (.-validator a)]\n (when-not (nil? validate)\n (when-not (validate new-value)\n (throw (js\/Error. \"Validator rejected reference state\"))))\n (let [old-value (.-state a)]\n (set! (.-state a) new-value)\n (when-not (nil? (.-watches a))\n (-notify-watches a old-value new-value))\n new-value))\n (-reset! a new-value)))\n\n(defn reset-vals!\n \"Sets the value of atom to newval. Returns [old new], the value of the\n atom before and after the reset.\"\n {:added \"1.9\"}\n [a new-value]\n (let [validate (.-validator a)]\n (when-not (nil? validate)\n (when-not (validate new-value)\n (throw (js\/Error. \"Validator rejected reference state\"))))\n (let [old-value (.-state a)]\n (set! (.-state a) new-value)\n (when-not (nil? (.-watches a))\n (-notify-watches a old-value new-value))\n [old-value new-value])))\n\n(defn swap!\n \"Atomically swaps the value of atom to be:\n (apply f current-value-of-atom args). Note that f may be called\n multiple times, and thus should be free of side effects. Returns\n the value that was swapped in.\"\n ([a f]\n (if (instance? Atom a)\n (reset! a (f (.-state a)))\n (-swap! a f)))\n ([a f x]\n (if (instance? Atom a)\n (reset! a (f (.-state a) x))\n (-swap! a f x)))\n ([a f x y]\n (if (instance? Atom a)\n (reset! a (f (.-state a) x y))\n (-swap! a f x y)))\n ([a f x y & more]\n (if (instance? Atom a)\n (reset! a (apply f (.-state a) x y more))\n (-swap! a f x y more))))\n\n(defn swap-vals!\n \"Atomically swaps the value of atom to be:\n (apply f current-value-of-atom args). Note that f may be called\n multiple times, and thus should be free of side effects.\n Returns [old new], the value of the atom before and after the swap.\"\n {:added \"1.9\"}\n ([a f]\n (reset-vals! a (f (.-state a))))\n ([a f x]\n (reset-vals! a (f (.-state a) x)))\n ([a f x y]\n (reset-vals! a (f (.-state a) x y)))\n ([a f x y & more]\n (reset-vals! a (apply f (.-state a) x y more))))\n\n(defn compare-and-set!\n \"Atomically sets the value of atom to newval if and only if the\n current value of the atom is equal to oldval. Returns true if\n set happened, else false.\"\n [^not-native a oldval newval]\n (if (= (-deref a) oldval)\n (do (reset! a newval) true)\n false))\n\n(defn set-validator!\n \"Sets the validator-fn for an atom. validator-fn must be nil or a\n side-effect-free fn of one argument, which will be passed the intended\n new state on any state change. If the new state is unacceptable, the\n validator-fn should return false or throw an Error. If the current state\n is not acceptable to the new validator, an Error will be thrown and the\n validator will not be changed.\"\n [iref val]\n (when (and (some? val)\n (not (val (-deref iref))))\n (throw (js\/Error. \"Validator rejected reference state\")))\n (set! (.-validator iref) val))\n\n(defn get-validator\n \"Gets the validator-fn for a var\/ref\/agent\/atom.\"\n [iref]\n (.-validator iref))\n\n(deftype Volatile [^:mutable state]\n IVolatile\n (-vreset! [_ new-state]\n (set! state new-state))\n\n IDeref\n (-deref [_] state))\n\n(defn volatile!\n \"Creates and returns a Volatile with an initial value of val.\"\n [val]\n (Volatile. val))\n\n(defn volatile?\n \"Returns true if x is a volatile.\"\n [x] (instance? Volatile x))\n\n(defn vreset!\n \"Sets the value of volatile to newval without regard for the\n current value. Returns newval.\"\n [vol newval] (-vreset! vol newval))\n\n(defn keep-indexed\n \"Returns a lazy sequence of the non-nil results of (f index item). Note,\n this means false return values will be included. f must be free of\n side-effects. Returns a stateful transducer when no collection is\n provided.\"\n ([f]\n (fn [rf]\n (let [ia (volatile! -1)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [i (vswap! ia inc)\n v (f i input)]\n (if (nil? v)\n result\n (rf result v))))))))\n ([f coll]\n (letfn [(keepi [idx coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (let [x (f (+ idx i) (-nth c i))]\n (when-not (nil? x)\n (chunk-append b x))))\n (chunk-cons (chunk b) (keepi (+ idx size) (chunk-rest s))))\n (let [x (f idx (first s))]\n (if (nil? x)\n (keepi (inc idx) (rest s))\n (cons x (keepi (inc idx) (rest s)))))))))]\n (keepi 0 coll))))\n\n(defn every-pred\n \"Takes a set of predicates and returns a function f that returns true if all of its\n composing predicates return a logical true value against all of its arguments, else it returns\n false. Note that f is short-circuiting in that it will stop execution on the first\n argument that triggers a logical false result against the original predicates.\"\n ([p]\n (fn ep1\n ([] true)\n ([x] (boolean (p x)))\n ([x y] (boolean (and (p x) (p y))))\n ([x y z] (boolean (and (p x) (p y) (p z))))\n ([x y z & args] (boolean (and (ep1 x y z)\n (every? p args))))))\n ([p1 p2]\n (fn ep2\n ([] true)\n ([x] (boolean (and (p1 x) (p2 x))))\n ([x y] (boolean (and (p1 x) (p1 y) (p2 x) (p2 y))))\n ([x y z] (boolean (and (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z))))\n ([x y z & args] (boolean (and (ep2 x y z)\n (every? #(and (p1 %) (p2 %)) args))))))\n ([p1 p2 p3]\n (fn ep3\n ([] true)\n ([x] (boolean (and (p1 x) (p2 x) (p3 x))))\n ([x y] (boolean (and (p1 x) (p1 y) (p2 x) (p2 y) (p3 x) (p3 y))))\n ([x y z] (boolean (and (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z) (p3 x) (p3 y) (p3 z))))\n ([x y z & args] (boolean (and (ep3 x y z)\n (every? #(and (p1 %) (p2 %) (p3 %)) args))))))\n ([p1 p2 p3 & ps]\n (let [ps (list* p1 p2 p3 ps)]\n (fn epn\n ([] true)\n ([x] (every? #(% x) ps))\n ([x y] (every? #(and (% x) (% y)) ps))\n ([x y z] (every? #(and (% x) (% y) (% z)) ps))\n ([x y z & args] (boolean (and (epn x y z)\n (every? #(every? % args) ps))))))))\n\n(defn some-fn\n \"Takes a set of predicates and returns a function f that returns the first logical true value\n returned by one of its composing predicates against any of its arguments, else it returns\n logical false. Note that f is short-circuiting in that it will stop execution on the first\n argument that triggers a logical true result against the original predicates.\"\n ([p]\n (fn sp1\n ([] nil)\n ([x] (p x))\n ([x y] (or (p x) (p y)))\n ([x y z] (or (p x) (p y) (p z)))\n ([x y z & args] (or (sp1 x y z)\n (some p args)))))\n ([p1 p2]\n (fn sp2\n ([] nil)\n ([x] (or (p1 x) (p2 x)))\n ([x y] (or (p1 x) (p1 y) (p2 x) (p2 y)))\n ([x y z] (or (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z)))\n ([x y z & args] (or (sp2 x y z)\n (some #(or (p1 %) (p2 %)) args)))))\n ([p1 p2 p3]\n (fn sp3\n ([] nil)\n ([x] (or (p1 x) (p2 x) (p3 x)))\n ([x y] (or (p1 x) (p1 y) (p2 x) (p2 y) (p3 x) (p3 y)))\n ([x y z] (or (p1 x) (p1 y) (p1 z) (p2 x) (p2 y) (p2 z) (p3 x) (p3 y) (p3 z)))\n ([x y z & args] (or (sp3 x y z)\n (some #(or (p1 %) (p2 %) (p3 %)) args)))))\n ([p1 p2 p3 & ps]\n (let [ps (list* p1 p2 p3 ps)]\n (fn spn\n ([] nil)\n ([x] (some #(% x) ps))\n ([x y] (some #(or (% x) (% y)) ps))\n ([x y z] (some #(or (% x) (% y) (% z)) ps))\n ([x y z & args] (or (spn x y z)\n (some #(some % args) ps)))))))\n\n(defn map\n \"Returns a lazy sequence consisting of the result of applying f to\n the set of first items of each coll, followed by applying f to the\n set of second items in each coll, until any one of the colls is\n exhausted. Any remaining items in other colls are ignored. Function\n f should accept number-of-colls arguments. Returns a transducer when\n no collection is provided.\"\n ([f]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (rf result (f input)))\n ([result input & inputs]\n (rf result (apply f input inputs))))))\n ([f coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (chunk-append b (f (-nth c i))))\n (chunk-cons (chunk b) (map f (chunk-rest s))))\n (cons (f (first s)) (map f (rest s)))))))\n ([f c1 c2]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2)]\n (when (and s1 s2)\n (cons (f (first s1) (first s2))\n (map f (rest s1) (rest s2)))))))\n ([f c1 c2 c3]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2) s3 (seq c3)]\n (when (and s1 s2 s3)\n (cons (f (first s1) (first s2) (first s3))\n (map f (rest s1) (rest s2) (rest s3)))))))\n ([f c1 c2 c3 & colls]\n (let [step (fn step [cs]\n (lazy-seq\n (let [ss (map seq cs)]\n (when (every? identity ss)\n (cons (map first ss) (step (map rest ss)))))))]\n (map #(apply f %) (step (conj colls c3 c2 c1))))))\n\n(defn take\n \"Returns a lazy sequence of the first n items in coll, or all items if\n there are fewer than n. Returns a stateful transducer when\n no collection is provided.\"\n ([n]\n {:pre [(number? n)]}\n (fn [rf]\n (let [na (volatile! n)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [n @na\n nn (vswap! na dec)\n result (if (pos? n)\n (rf result input)\n result)]\n (if (not (pos? nn))\n (ensure-reduced result)\n result)))))))\n ([n coll]\n {:pre [(number? n)]}\n (lazy-seq\n (when (pos? n)\n (when-let [s (seq coll)]\n (cons (first s) (take (dec n) (rest s))))))))\n\n(defn drop\n \"Returns a lazy sequence of all but the first n items in coll.\n Returns a stateful transducer when no collection is provided.\"\n ([n]\n {:pre [(number? n)]}\n (fn [rf]\n (let [na (volatile! n)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [n @na]\n (vswap! na dec)\n (if (pos? n)\n result\n (rf result input))))))))\n ([n coll]\n {:pre [(number? n)]}\n (let [step (fn [n coll]\n (let [s (seq coll)]\n (if (and (pos? n) s)\n (recur (dec n) (rest s))\n s)))]\n (lazy-seq (step n coll)))))\n\n(defn drop-last\n \"Return a lazy sequence of all but the last n (default 1) items in coll\"\n ([s] (drop-last 1 s))\n ([n s] (map (fn [x _] x) s (drop n s))))\n\n(defn take-last\n \"Returns a seq of the last n items in coll. Depending on the type\n of coll may be no better than linear time. For vectors, see also subvec.\"\n [n coll]\n (loop [s (seq coll), lead (seq (drop n coll))]\n (if lead\n (recur (next s) (next lead))\n s)))\n\n(defn drop-while\n \"Returns a lazy sequence of the items in coll starting from the\n first item for which (pred item) returns logical false. Returns a\n stateful transducer when no collection is provided.\"\n ([pred]\n (fn [rf]\n (let [da (volatile! true)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [drop? @da]\n (if (and drop? (pred input))\n result\n (do\n (vreset! da nil)\n (rf result input)))))))))\n ([pred coll]\n (let [step (fn [pred coll]\n (let [s (seq coll)]\n (if (and s (pred (first s)))\n (recur pred (rest s))\n s)))]\n (lazy-seq (step pred coll)))))\n\n(deftype Cycle [meta all prev ^:mutable current ^:mutable _next]\n Object\n (toString [coll]\n (pr-str* coll))\n (currentval [coll]\n (when-not ^seq current\n (if-let [c (next prev)]\n (set! current c)\n (set! current all)))\n current)\n\n IPending\n (-realized? [coll]\n (some? current))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Cycle. new-meta all prev current _next)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n (first (.currentval coll)))\n (-rest [coll]\n (when (nil? _next)\n (set! _next (Cycle. nil all (.currentval coll) nil nil)))\n _next)\n\n INext\n (-next [coll]\n (-rest coll))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeqable\n (-seq [coll] coll)\n\n IReduce\n (-reduce [coll f]\n (loop [s (.currentval coll) ret (first s)]\n (let [s (or (next s) all)\n ret (f ret (first s))]\n (if (reduced? ret)\n @ret\n (recur s ret)))))\n (-reduce [coll f start]\n (loop [s (.currentval coll) ret start]\n (let [ret (f ret (first s))]\n (if (reduced? ret)\n @ret\n (recur (or (next s) all) ret))))))\n\n(defn cycle\n \"Returns a lazy (infinite!) sequence of repetitions of the items in coll.\"\n [coll] (if-let [vals (seq coll)]\n (Cycle. nil vals nil vals nil)\n (.-EMPTY List)))\n\n(defn split-at\n \"Returns a vector of [(take n coll) (drop n coll)]\"\n [n coll]\n [(take n coll) (drop n coll)])\n\n(deftype Repeat [meta count val ^:mutable next ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x count))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IPending\n (-realized? [coll] false)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Repeat. new-meta count val next nil)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n val)\n (-rest [coll]\n (if (nil? next)\n (if (> count 1)\n (do\n (set! next (Repeat. nil (dec count) val nil nil))\n next)\n (if (== -1 count)\n coll\n ()))\n next))\n\n INext\n (-next [coll]\n (if (nil? next)\n (if (> count 1)\n (do\n (set! next (Repeat. nil (dec count) val nil nil))\n next)\n (if (== -1 count)\n coll\n nil))\n next))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISequential\n ISeqable\n (-seq [coll] coll)\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IReduce\n (-reduce [coll f]\n (if (== count -1)\n (loop [ret (f val val)]\n (if (reduced? ret)\n @ret\n (recur (f ret val))))\n (loop [i 1 ret val]\n (if (< i count)\n (let [ret (f ret val)]\n (if (reduced? ret)\n @ret\n (recur (inc i) ret)))\n ret))))\n (-reduce [coll f start]\n (if (== count -1)\n (loop [ret (f start val)]\n (if (reduced? ret)\n @ret\n (recur (f ret val))))\n (loop [i 0 ret start]\n (if (< i count)\n (let [ret (f ret val)]\n (if (reduced? ret)\n @ret\n (recur (inc i) ret)))\n ret)))))\n\n(defn repeat\n \"Returns a lazy (infinite!, or length n if supplied) sequence of xs.\"\n ([x] (Repeat. nil -1 x nil nil))\n ([n x] (if (pos? n)\n (Repeat. nil n x nil nil)\n (.-EMPTY List))))\n\n(defn replicate\n \"DEPRECATED: Use 'repeat' instead.\n Returns a lazy seq of n xs.\"\n [n x] (take n (repeat x)))\n\n(defn repeatedly\n \"Takes a function of no args, presumably with side effects, and\n returns an infinite (or length n if supplied) lazy sequence of calls\n to it\"\n ([f] (lazy-seq (cons (f) (repeatedly f))))\n ([n f] (take n (repeatedly f))))\n\n(def ^:private UNREALIZED-SEED #js {})\n\n(deftype Iterate [meta f prev-seed ^:mutable seed ^:mutable next]\n Object\n (toString [coll]\n (pr-str* coll))\n\n IPending\n (-realized? [coll]\n (not (identical? seed UNREALIZED-SEED)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (Iterate. new-meta f prev-seed seed next)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll]\n (when (identical? UNREALIZED-SEED seed)\n (set! seed (f prev-seed)))\n seed)\n (-rest [coll]\n (when (nil? next)\n (set! next (Iterate. nil f (-first coll) UNREALIZED-SEED nil)))\n next)\n\n INext\n (-next [coll]\n (-rest coll))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeqable\n (-seq [coll] coll)\n\n IReduce\n (-reduce [coll rf]\n (let [first (-first coll)\n v (f first)]\n (loop [ret (rf first v) v v]\n (if (reduced? ret)\n @ret\n (let [v (f v)]\n (recur (rf ret v) v))))))\n (-reduce [coll rf start]\n (let [v (-first coll)]\n (loop [ret (rf start v) v v]\n (if (reduced? ret)\n @ret\n (let [v (f v)]\n (recur (rf ret v) v)))))))\n\n(defn iterate\n \"Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects\"\n {:added \"1.0\"}\n [f x] (Iterate. nil f nil x nil))\n\n(defn interleave\n \"Returns a lazy seq of the first item in each coll, then the second etc.\"\n ([] ())\n ([c1] (lazy-seq c1))\n ([c1 c2]\n (lazy-seq\n (let [s1 (seq c1) s2 (seq c2)]\n (when (and s1 s2)\n (cons (first s1) (cons (first s2)\n (interleave (rest s1) (rest s2))))))))\n ([c1 c2 & colls]\n (lazy-seq\n (let [ss (map seq (conj colls c2 c1))]\n (when (every? identity ss)\n (concat (map first ss) (apply interleave (map rest ss))))))))\n\n(defn interpose\n \"Returns a lazy seq of the elements of coll separated by sep.\n Returns a stateful transducer when no collection is provided.\"\n ([sep]\n (fn [rf]\n (let [started (volatile! false)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if @started\n (let [sepr (rf result sep)]\n (if (reduced? sepr)\n sepr\n (rf sepr input)))\n (do\n (vreset! started true)\n (rf result input))))))))\n ([sep coll] (drop 1 (interleave (repeat sep) coll))))\n\n\n\n(defn- flatten1\n \"Take a collection of collections, and return a lazy seq\n of items from the inner collection\"\n [colls]\n (let [cat (fn cat [coll colls]\n (lazy-seq\n (if-let [coll (seq coll)]\n (cons (first coll) (cat (rest coll) colls))\n (when (seq colls)\n (cat (first colls) (rest colls))))))]\n (cat nil colls)))\n\n(declare cat)\n\n(defn mapcat\n \"Returns the result of applying concat to the result of applying map\n to f and colls. Thus function f should return a collection. Returns\n a transducer when no collections are provided\"\n {:added \"1.0\"\n :static true}\n ([f] (comp (map f) cat))\n ([f & colls]\n (apply concat (apply map f colls))))\n\n(defn filter\n \"Returns a lazy sequence of the items in coll for which\n (pred item) returns logical true. pred must be free of side-effects.\n Returns a transducer when no collection is provided.\"\n ([pred]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if (pred input)\n (rf result input)\n result)))))\n ([pred coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (if (chunked-seq? s)\n (let [c (chunk-first s)\n size (count c)\n b (chunk-buffer size)]\n (dotimes [i size]\n (when (pred (-nth c i))\n (chunk-append b (-nth c i))))\n (chunk-cons (chunk b) (filter pred (chunk-rest s))))\n (let [f (first s) r (rest s)]\n (if (pred f)\n (cons f (filter pred r))\n (filter pred r))))))))\n\n(defn remove\n \"Returns a lazy sequence of the items in coll for which\n (pred item) returns logical false. pred must be free of side-effects.\n Returns a transducer when no collection is provided.\"\n ([pred] (filter (complement pred)))\n ([pred coll]\n (filter (complement pred) coll)))\n\n(defn tree-seq\n \"Returns a lazy sequence of the nodes in a tree, via a depth-first walk.\n branch? must be a fn of one arg that returns true if passed a node\n that can have children (but may not). children must be a fn of one\n arg that returns a sequence of the children. Will only be called on\n nodes for which branch? returns true. Root is the root node of the\n tree.\"\n [branch? children root]\n (let [walk (fn walk [node]\n (lazy-seq\n (cons node\n (when (branch? node)\n (mapcat walk (children node))))))]\n (walk root)))\n\n(defn flatten\n \"Takes any nested combination of sequential things (lists, vectors,\n etc.) and returns their contents as a single, flat sequence.\n (flatten nil) returns nil.\"\n [x]\n (filter #(not (sequential? %))\n (rest (tree-seq sequential? seq x))))\n\n(defn into\n \"Returns a new coll consisting of to-coll with all of the items of\n from-coll conjoined. A transducer may be supplied.\"\n ([] [])\n ([to] to)\n ([to from]\n (if-not (nil? to)\n (if (implements? IEditableCollection to)\n (-with-meta (persistent! (reduce -conj! (transient to) from)) (meta to))\n (reduce -conj to from))\n (reduce conj to from)))\n ([to xform from]\n (if (implements? IEditableCollection to)\n (let [tm (meta to)\n rf (fn\n ([coll] (-> (persistent! coll) (-with-meta tm)))\n ([coll v] (conj! coll v)))]\n (transduce xform rf (transient to) from))\n (transduce xform conj to from))))\n\n(defn mapv\n \"Returns a vector consisting of the result of applying f to the\n set of first items of each coll, followed by applying f to the set\n of second items in each coll, until any one of the colls is\n exhausted. Any remaining items in other colls are ignored. Function\n f should accept number-of-colls arguments.\"\n ([f coll]\n (-> (reduce (fn [v o] (conj! v (f o))) (transient []) coll)\n persistent!))\n ([f c1 c2]\n (into [] (map f c1 c2)))\n ([f c1 c2 c3]\n (into [] (map f c1 c2 c3)))\n ([f c1 c2 c3 & colls]\n (into [] (apply map f c1 c2 c3 colls))))\n\n(defn filterv\n \"Returns a vector of the items in coll for which\n (pred item) returns logical true. pred must be free of side-effects.\"\n [pred coll]\n (-> (reduce (fn [v o] (if (pred o) (conj! v o) v))\n (transient [])\n coll)\n persistent!))\n\n(defn partition\n \"Returns a lazy sequence of lists of n items each, at offsets step\n apart. If step is not supplied, defaults to n, i.e. the partitions\n do not overlap. If a pad collection is supplied, use its elements as\n necessary to complete last partition up to n items. In case there are\n not enough padding elements, return a partition with less than n items.\"\n ([n coll]\n (partition n n coll))\n ([n step coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [p (take n s)]\n (when (== n (count p))\n (cons p (partition n step (drop step s))))))))\n ([n step pad coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [p (take n s)]\n (if (== n (count p))\n (cons p (partition n step pad (drop step s)))\n (list (take n (concat p pad)))))))))\n\n(defn get-in\n \"Returns the value in a nested associative structure,\n where ks is a sequence of keys. Returns nil if the key is not present,\n or the not-found value if supplied.\"\n {:added \"1.2\"\n :static true}\n ([m ks]\n (reduce get m ks))\n ([m ks not-found]\n (loop [sentinel lookup-sentinel\n m m\n ks (seq ks)]\n (if-not (nil? ks)\n (let [m (get m (first ks) sentinel)]\n (if (identical? sentinel m)\n not-found\n (recur sentinel m (next ks))))\n m))))\n\n(defn assoc-in\n \"Associates a value in a nested associative structure, where ks is a\n sequence of keys and v is the new value and returns a new nested structure.\n If any levels do not exist, hash-maps will be created.\"\n [m [k & ks] v]\n (if ks\n (assoc m k (assoc-in (get m k) ks v))\n (assoc m k v)))\n\n(defn update-in\n \"'Updates' a value in a nested associative structure, where ks is a\n sequence of keys and f is a function that will take the old value\n and any supplied args and return the new value, and returns a new\n nested structure. If any levels do not exist, hash-maps will be\n created.\"\n ([m [k & ks] f]\n (if ks\n (assoc m k (update-in (get m k) ks f))\n (assoc m k (f (get m k)))))\n ([m [k & ks] f a]\n (if ks\n (assoc m k (update-in (get m k) ks f a))\n (assoc m k (f (get m k) a))))\n ([m [k & ks] f a b]\n (if ks\n (assoc m k (update-in (get m k) ks f a b))\n (assoc m k (f (get m k) a b))))\n ([m [k & ks] f a b c]\n (if ks\n (assoc m k (update-in (get m k) ks f a b c))\n (assoc m k (f (get m k) a b c))))\n ([m [k & ks] f a b c & args]\n (if ks\n (assoc m k (apply update-in (get m k) ks f a b c args))\n (assoc m k (apply f (get m k) a b c args)))))\n\n(defn update\n \"'Updates' a value in an associative structure, where k is a\n key and f is a function that will take the old value\n and any supplied args and return the new value, and returns a new\n structure. If the key does not exist, nil is passed as the old value.\"\n ([m k f]\n (assoc m k (f (get m k))))\n ([m k f x]\n (assoc m k (f (get m k) x)))\n ([m k f x y]\n (assoc m k (f (get m k) x y)))\n ([m k f x y z]\n (assoc m k (f (get m k) x y z)))\n ([m k f x y z & more]\n (assoc m k (apply f (get m k) x y z more))))\n\n;;; PersistentVector\n\n(deftype VectorNode [edit arr])\n\n(defn- pv-fresh-node [edit]\n (VectorNode. edit (make-array 32)))\n\n(defn- pv-aget [node idx]\n (aget (.-arr node) idx))\n\n(defn- pv-aset [node idx val]\n (aset (.-arr node) idx val))\n\n(defn- pv-clone-node [node]\n (VectorNode. (.-edit node) (aclone (.-arr node))))\n\n(defn- tail-off [pv]\n (let [cnt (.-cnt pv)]\n (if (< cnt 32)\n 0\n (bit-shift-left (bit-shift-right-zero-fill (dec cnt) 5) 5))))\n\n(defn- new-path [edit level node]\n (loop [ll level\n ret node]\n (if (zero? ll)\n ret\n (let [embed ret\n r (pv-fresh-node edit)\n _ (pv-aset r 0 embed)]\n (recur (- ll 5) r)))))\n\n(defn- push-tail [pv level parent tailnode]\n (let [ret (pv-clone-node parent)\n subidx (bit-and (bit-shift-right-zero-fill (dec (.-cnt pv)) level) 0x01f)]\n (if (== 5 level)\n (do\n (pv-aset ret subidx tailnode)\n ret)\n (let [child (pv-aget parent subidx)]\n (if-not (nil? child)\n (let [node-to-insert (push-tail pv (- level 5) child tailnode)]\n (pv-aset ret subidx node-to-insert)\n ret)\n (let [node-to-insert (new-path nil (- level 5) tailnode)]\n (pv-aset ret subidx node-to-insert)\n ret))))))\n\n(defn- vector-index-out-of-bounds [i cnt]\n (throw (js\/Error. (str \"No item \" i \" in vector of length \" cnt))))\n\n(defn- first-array-for-longvec [pv]\n ;; invariants: (count pv) > 32.\n (loop [node (.-root pv)\n level (.-shift pv)]\n (if (pos? level)\n (recur (pv-aget node 0) (- level 5))\n (.-arr node))))\n\n(defn- unchecked-array-for [pv i]\n ;; invariant: i is a valid index of pv (use array-for if unknown).\n (if (>= i (tail-off pv))\n (.-tail pv)\n (loop [node (.-root pv)\n level (.-shift pv)]\n (if (pos? level)\n (recur (pv-aget node (bit-and (bit-shift-right-zero-fill i level) 0x01f))\n (- level 5))\n (.-arr node)))))\n\n(defn- array-for [pv i]\n (if (and (<= 0 i) (< i (.-cnt pv)))\n (unchecked-array-for pv i)\n (vector-index-out-of-bounds i (.-cnt pv))))\n\n(defn- do-assoc [pv level node i val]\n (let [ret (pv-clone-node node)]\n (if (zero? level)\n (do\n (pv-aset ret (bit-and i 0x01f) val)\n ret)\n (let [subidx (bit-and (bit-shift-right-zero-fill i level) 0x01f)]\n (pv-aset ret subidx (do-assoc pv (- level 5) (pv-aget node subidx) i val))\n ret))))\n\n(defn- pop-tail [pv level node]\n (let [subidx (bit-and (bit-shift-right-zero-fill (- (.-cnt pv) 2) level) 0x01f)]\n (cond\n (> level 5) (let [new-child (pop-tail pv (- level 5) (pv-aget node subidx))]\n (if (and (nil? new-child) (zero? subidx))\n nil\n (let [ret (pv-clone-node node)]\n (pv-aset ret subidx new-child)\n ret)))\n (zero? subidx) nil\n :else (let [ret (pv-clone-node node)]\n (pv-aset ret subidx nil)\n ret))))\n\n(deftype RangedIterator [^:mutable i ^:mutable base ^:mutable arr v start end]\n Object\n (hasNext [this]\n (< i end))\n (next [this]\n (when (== (- i base) 32)\n (set! arr (unchecked-array-for v i))\n (set! base (+ base 32)))\n (let [ret (aget arr (bit-and i 0x01f))]\n (set! i (inc i))\n ret)))\n\n(defn ranged-iterator [v start end]\n (let [i start]\n (RangedIterator. i (- i (js-mod i 32))\n (when (< start (count v))\n (unchecked-array-for v i))\n v start end)))\n\n(defn- pv-reduce\n ([pv f start end]\n (if (< start end)\n (pv-reduce pv f (nth pv start) (inc start) end)\n (f)))\n ([pv f init start end]\n (loop [acc init i start arr (unchecked-array-for pv start)]\n (if (< i end)\n (let [j (bit-and i 0x01f)\n arr (if (zero? j) (unchecked-array-for pv i) arr)\n nacc (f acc (aget arr j))]\n (if (reduced? nacc)\n @nacc\n (recur nacc (inc i) arr)))\n acc))))\n\n(declare tv-editable-root tv-editable-tail TransientVector deref\n pr-sequential-writer pr-writer chunked-seq)\n\n(defprotocol APersistentVector\n \"Marker protocol\")\n\n(deftype PersistentVector [meta cnt shift root tail ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (PersistentVector. meta cnt shift root tail __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentVector. new-meta cnt shift root tail __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n IStack\n (-peek [coll]\n (when (> cnt 0)\n (-nth coll (dec cnt))))\n (-pop [coll]\n (cond\n (zero? cnt) (throw (js\/Error. \"Can't pop empty vector\"))\n (== 1 cnt) (-with-meta (.-EMPTY PersistentVector) meta)\n (< 1 (- cnt (tail-off coll)))\n (PersistentVector. meta (dec cnt) shift root (.slice tail 0 -1) nil)\n :else (let [new-tail (unchecked-array-for coll (- cnt 2))\n nr (pop-tail coll shift root)\n new-root (if (nil? nr) (.-EMPTY-NODE PersistentVector) nr)\n cnt-1 (dec cnt)]\n (if (and (< 5 shift) (nil? (pv-aget new-root 1)))\n (PersistentVector. meta cnt-1 (- shift 5) (pv-aget new-root 0) new-tail nil)\n (PersistentVector. meta cnt-1 shift new-root new-tail nil)))))\n\n ICollection\n (-conj [coll o]\n (if (< (- cnt (tail-off coll)) 32)\n (let [len (alength tail)\n new-tail (make-array (inc len))]\n (dotimes [i len]\n (aset new-tail i (aget tail i)))\n (aset new-tail len o)\n (PersistentVector. meta (inc cnt) shift root new-tail nil))\n (let [root-overflow? (> (bit-shift-right-zero-fill cnt 5) (bit-shift-left 1 shift))\n new-shift (if root-overflow? (+ shift 5) shift)\n new-root (if root-overflow?\n (let [n-r (pv-fresh-node nil)]\n (pv-aset n-r 0 root)\n (pv-aset n-r 1 (new-path nil shift (VectorNode. nil tail)))\n n-r)\n (push-tail coll shift root (VectorNode. nil tail)))]\n (PersistentVector. meta (inc cnt) new-shift new-root (array o) nil))))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentVector) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other]\n (if (instance? PersistentVector other)\n (if (== cnt (count other))\n (let [me-iter (-iterator coll)\n you-iter (-iterator other)]\n (loop []\n (if ^boolean (.hasNext me-iter)\n (let [x (.next me-iter)\n y (.next you-iter)]\n (if (= x y)\n (recur)\n false))\n true)))\n false)\n (equiv-sequential coll other)))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (cond\n (zero? cnt) nil\n (<= cnt 32) (IndexedSeq. tail 0 nil)\n :else (chunked-seq coll (first-array-for-longvec coll) 0 0)))\n\n ICounted\n (-count [coll] cnt)\n\n IIndexed\n (-nth [coll n]\n (aget (array-for coll n) (bit-and n 0x01f)))\n (-nth [coll n not-found]\n (if (and (<= 0 n) (< n cnt))\n (aget (unchecked-array-for coll n) (bit-and n 0x01f))\n not-found))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n (-lookup [coll k not-found] (if (number? k)\n (-nth coll k not-found)\n not-found))\n\n IAssociative\n (-assoc [coll k v]\n (if (number? k)\n (-assoc-n coll k v)\n (throw (js\/Error. \"Vector's key for assoc must be a number.\"))))\n (-contains-key? [coll k]\n (if (integer? k)\n (and (<= 0 k) (< k cnt))\n false))\n\n IFind\n (-find [coll n]\n (when (and (<= 0 n) (< n cnt))\n (MapEntry. n (aget (unchecked-array-for coll n) (bit-and n 0x01f)) nil)))\n\n APersistentVector\n IVector\n (-assoc-n [coll n val]\n (cond\n (and (<= 0 n) (< n cnt))\n (if (<= (tail-off coll) n)\n (let [new-tail (aclone tail)]\n (aset new-tail (bit-and n 0x01f) val)\n (PersistentVector. meta cnt shift root new-tail nil))\n (PersistentVector. meta cnt shift (do-assoc coll shift root n val) tail nil))\n (== n cnt) (-conj coll val)\n :else (throw (js\/Error. (str \"Index \" n \" out of bounds [0,\" cnt \"]\")))))\n\n IReduce\n (-reduce [v f]\n (pv-reduce v f 0 cnt))\n (-reduce [v f init]\n (loop [i 0 init init]\n (if (< i cnt)\n (let [arr (unchecked-array-for v i)\n len (alength arr)\n init (loop [j 0 init init]\n (if (< j len)\n (let [init (f init (aget arr j))]\n (if (reduced? init)\n init\n (recur (inc j) init)))\n init))]\n (if (reduced? init)\n @init\n (recur (+ i len) init)))\n init)))\n\n IKVReduce\n (-kv-reduce [v f init]\n (loop [i 0 init init]\n (if (< i cnt)\n (let [arr (unchecked-array-for v i)\n len (alength arr)\n init (loop [j 0 init init]\n (if (< j len)\n (let [init (f init (+ j i) (aget arr j))]\n (if (reduced? init)\n init\n (recur (inc j) init)))\n init))]\n (if (reduced? init)\n @init\n (recur (+ i len) init)))\n init)))\n\n IFn\n (-invoke [coll k]\n (if (number? k)\n (-nth coll k)\n (throw (js\/Error. \"Key must be integer\"))))\n\n IEditableCollection\n (-as-transient [coll]\n (TransientVector. cnt shift (tv-editable-root root) (tv-editable-tail tail)))\n\n IReversible\n (-rseq [coll]\n (when (pos? cnt)\n (RSeq. coll (dec cnt) nil)))\n\n IIterable\n (-iterator [this]\n (ranged-iterator this 0 cnt)))\n\n(set! (.-EMPTY-NODE PersistentVector) (VectorNode. nil (make-array 32)))\n\n(set! (.-EMPTY PersistentVector)\n (PersistentVector. nil 0 5 (.-EMPTY-NODE PersistentVector) (array) empty-ordered-hash))\n\n(set! (.-fromArray PersistentVector)\n (fn [xs ^boolean no-clone]\n (let [l (alength xs)\n xs (if no-clone xs (aclone xs))]\n (if (< l 32)\n (PersistentVector. nil l 5 (.-EMPTY-NODE PersistentVector) xs nil)\n (let [node (.slice xs 0 32)\n v (PersistentVector. nil 32 5 (.-EMPTY-NODE PersistentVector) node nil)]\n (loop [i 32 out (-as-transient v)]\n (if (< i l)\n (recur (inc i) (conj! out (aget xs i)))\n (persistent! out))))))))\n\n(es6-iterable PersistentVector)\n\n(declare map-entry?)\n\n(defn vec\n \"Creates a new vector containing the contents of coll. JavaScript arrays\n will be aliased and should not be modified.\"\n [coll]\n (cond\n (map-entry? coll)\n [(key coll) (val coll)]\n\n (vector? coll)\n (with-meta coll nil)\n\n (array? coll)\n (.fromArray PersistentVector coll true)\n\n :else\n (-persistent!\n (reduce -conj!\n (-as-transient (.-EMPTY PersistentVector))\n coll))))\n\n(defn vector\n \"Creates a new vector containing the args.\"\n [& args]\n (if (and (instance? IndexedSeq args) (zero? (.-i args)))\n (.fromArray PersistentVector (.-arr args) (not (array? (.-arr args))))\n (vec args)))\n\n(declare subvec)\n\n(deftype ChunkedSeq [vec node i off meta ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (chunked-seq vec node i off new-meta)))\n IMeta\n (-meta [coll] meta)\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ASeq\n ISeq\n (-first [coll]\n (aget node off))\n (-rest [coll]\n (if (< (inc off) (alength node))\n (let [s (chunked-seq vec node i (inc off))]\n (if (nil? s)\n ()\n s))\n (-chunked-rest coll)))\n\n INext\n (-next [coll]\n (if (< (inc off) (alength node))\n (let [s (chunked-seq vec node i (inc off))]\n (if (nil? s)\n nil\n s))\n (-chunked-next coll)))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll]\n ())\n\n IChunkedSeq\n (-chunked-first [coll]\n (array-chunk node off))\n (-chunked-rest [coll]\n (let [end (+ i (alength node))]\n (if (< end (-count vec))\n (chunked-seq vec (unchecked-array-for vec end) end 0)\n ())))\n\n IChunkedNext\n (-chunked-next [coll]\n (let [end (+ i (alength node))]\n (when (< end (-count vec))\n (chunked-seq vec (unchecked-array-for vec end) end 0))))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IReduce\n (-reduce [coll f]\n (pv-reduce vec f (+ i off) (count vec)))\n\n (-reduce [coll f start]\n (pv-reduce vec f start (+ i off) (count vec))))\n\n(es6-iterable ChunkedSeq)\n\n(defn chunked-seq\n ([vec i off] (ChunkedSeq. vec (array-for vec i) i off nil nil))\n ([vec node i off] (ChunkedSeq. vec node i off nil nil))\n ([vec node i off meta]\n (ChunkedSeq. vec node i off meta nil)))\n\n(declare build-subvec)\n\n(deftype Subvec [meta v start end ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [_] (Subvec. meta v start end __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (build-subvec new-meta v start end __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n IStack\n (-peek [coll]\n (when-not (== start end)\n (-nth v (dec end))))\n (-pop [coll]\n (if (== start end)\n (throw (js\/Error. \"Can't pop empty vector\"))\n (build-subvec meta v start (dec end) nil)))\n\n ICollection\n (-conj [coll o]\n (build-subvec meta (-assoc-n v end o) start (inc end) nil))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentVector) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (let [subvec-seq (fn subvec-seq [i]\n (when-not (== i end)\n (cons (-nth v i)\n (lazy-seq\n (subvec-seq (inc i))))))]\n (subvec-seq start)))\n\n IReversible\n (-rseq [coll]\n (if-not (== start end)\n (RSeq. coll (dec (- end start)) nil)))\n\n ICounted\n (-count [coll] (- end start))\n\n IIndexed\n (-nth [coll n]\n (if (or (neg? n) (<= end (+ start n)))\n (vector-index-out-of-bounds n (- end start))\n (-nth v (+ start n))))\n (-nth [coll n not-found]\n (if (or (neg? n) (<= end (+ start n)))\n not-found\n (-nth v (+ start n) not-found)))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n (-lookup [coll k not-found] (if (number? k)\n (-nth coll k not-found)\n not-found))\n\n IAssociative\n (-assoc [coll key val]\n (if (number? key)\n (-assoc-n coll key val)\n (throw (js\/Error. \"Subvec's key for assoc must be a number.\"))))\n (-contains-key? [coll key]\n (if (integer? key)\n (and (<= 0 key) (< key (- end start)))\n false))\n\n IFind\n (-find [coll n]\n (when-not (neg? n)\n (let [idx (+ start n)]\n (when (< idx end)\n (MapEntry. n (-lookup v idx) nil)))))\n\n IVector\n (-assoc-n [coll n val]\n (let [v-pos (+ start n)]\n (if (or (neg? n) (<= (inc end) v-pos))\n (throw (js\/Error. (str \"Index \" n \" out of bounds [0,\" (-count coll) \"]\")))\n (build-subvec meta (assoc v v-pos val) start (max end (inc v-pos)) nil))))\n\n IReduce\n (-reduce [coll f]\n (if (implements? APersistentVector v)\n (pv-reduce v f start end)\n (ci-reduce coll f)))\n (-reduce [coll f init]\n (if (implements? APersistentVector v)\n (pv-reduce v f init start end)\n (ci-reduce coll f init)))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (loop [i start j 0 init init]\n (if (< i end)\n (let [init (f init j (-nth v i))]\n (if (reduced? init)\n @init\n (recur (inc i) (inc j) init)))\n init)))\n\n IFn\n (-invoke [coll k]\n (-nth coll k))\n (-invoke [coll k not-found]\n (-nth coll k not-found))\n\n IIterable\n (-iterator [coll]\n (if (implements? APersistentVector v)\n (ranged-iterator v start end)\n (seq-iter coll))))\n\n(es6-iterable Subvec)\n\n(defn- build-subvec [meta v start end __hash]\n (if (instance? Subvec v)\n (recur meta (.-v v) (+ (.-start v) start) (+ (.-start v) end) __hash)\n (do\n (when-not (vector? v)\n (throw (js\/Error. \"v must satisfy IVector\")))\n (when (or (neg? start)\n (< end start)\n (> end (count v)))\n (throw (js\/Error. \"Index out of bounds\")))\n (Subvec. meta v start end __hash))))\n\n(defn subvec\n \"Returns a persistent vector of the items in vector from\n start (inclusive) to end (exclusive). If end is not supplied,\n defaults to (count vector). This operation is O(1) and very fast, as\n the resulting vector shares structure with the original and no\n trimming is done.\"\n ([v start]\n (subvec v start (count v)))\n ([v start end]\n (assert (and (not (nil? start)) (not (nil? end))))\n (build-subvec nil v (int start) (int end) nil)))\n\n(defn- tv-ensure-editable [edit node]\n (if (identical? edit (.-edit node))\n node\n (VectorNode. edit (aclone (.-arr node)))))\n\n(defn- tv-editable-root [node]\n (VectorNode. (js-obj) (aclone (.-arr node))))\n\n(defn- tv-editable-tail [tl]\n (let [ret (make-array 32)]\n (array-copy tl 0 ret 0 (alength tl))\n ret))\n\n(defn- tv-push-tail [tv level parent tail-node]\n (let [ret (tv-ensure-editable (.. tv -root -edit) parent)\n subidx (bit-and (bit-shift-right-zero-fill (dec (.-cnt tv)) level) 0x01f)]\n (pv-aset ret subidx\n (if (== level 5)\n tail-node\n (let [child (pv-aget ret subidx)]\n (if-not (nil? child)\n (tv-push-tail tv (- level 5) child tail-node)\n (new-path (.. tv -root -edit) (- level 5) tail-node)))))\n ret))\n\n(defn- tv-pop-tail [tv level node]\n (let [node (tv-ensure-editable (.. tv -root -edit) node)\n subidx (bit-and (bit-shift-right-zero-fill (- (.-cnt tv) 2) level) 0x01f)]\n (cond\n (> level 5) (let [new-child (tv-pop-tail\n tv (- level 5) (pv-aget node subidx))]\n (if (and (nil? new-child) (zero? subidx))\n nil\n (do (pv-aset node subidx new-child)\n node)))\n (zero? subidx) nil\n :else (do (pv-aset node subidx nil)\n node))))\n\n(defn- unchecked-editable-array-for [tv i]\n ;; invariant: i is a valid index of tv.\n (if (>= i (tail-off tv))\n (.-tail tv)\n (let [root (.-root tv)]\n (loop [node root\n level (.-shift tv)]\n (if (pos? level)\n (recur (tv-ensure-editable\n (.-edit root)\n (pv-aget node\n (bit-and (bit-shift-right-zero-fill i level)\n 0x01f)))\n (- level 5))\n (.-arr node))))))\n\n(deftype TransientVector [^:mutable cnt\n ^:mutable shift\n ^:mutable root\n ^:mutable tail]\n ITransientCollection\n (-conj! [tcoll o]\n (if ^boolean (.-edit root)\n (if (< (- cnt (tail-off tcoll)) 32)\n (do (aset tail (bit-and cnt 0x01f) o)\n (set! cnt (inc cnt))\n tcoll)\n (let [tail-node (VectorNode. (.-edit root) tail)\n new-tail (make-array 32)]\n (aset new-tail 0 o)\n (set! tail new-tail)\n (if (> (bit-shift-right-zero-fill cnt 5)\n (bit-shift-left 1 shift))\n (let [new-root-array (make-array 32)\n new-shift (+ shift 5)]\n (aset new-root-array 0 root)\n (aset new-root-array 1 (new-path (.-edit root) shift tail-node))\n (set! root (VectorNode. (.-edit root) new-root-array))\n (set! shift new-shift)\n (set! cnt (inc cnt))\n tcoll)\n (let [new-root (tv-push-tail tcoll shift root tail-node)]\n (set! root new-root)\n (set! cnt (inc cnt))\n tcoll))))\n (throw (js\/Error. \"conj! after persistent!\"))))\n\n (-persistent! [tcoll]\n (if ^boolean (.-edit root)\n (do (set! (.-edit root) nil)\n (let [len (- cnt (tail-off tcoll))\n trimmed-tail (make-array len)]\n (array-copy tail 0 trimmed-tail 0 len)\n (PersistentVector. nil cnt shift root trimmed-tail nil)))\n (throw (js\/Error. \"persistent! called twice\"))))\n\n ITransientAssociative\n (-assoc! [tcoll key val]\n (if (number? key)\n (-assoc-n! tcoll key val)\n (throw (js\/Error. \"TransientVector's key for assoc! must be a number.\"))))\n\n ITransientVector\n (-assoc-n! [tcoll n val]\n (if ^boolean (.-edit root)\n (cond\n (and (<= 0 n) (< n cnt))\n (if (<= (tail-off tcoll) n)\n (do (aset tail (bit-and n 0x01f) val)\n tcoll)\n (let [new-root\n ((fn go [level node]\n (let [node (tv-ensure-editable (.-edit root) node)]\n (if (zero? level)\n (do (pv-aset node (bit-and n 0x01f) val)\n node)\n (let [subidx (bit-and (bit-shift-right-zero-fill n level)\n 0x01f)]\n (pv-aset node subidx\n (go (- level 5) (pv-aget node subidx)))\n node))))\n shift root)]\n (set! root new-root)\n tcoll))\n (== n cnt) (-conj! tcoll val)\n :else\n (throw\n (js\/Error.\n (str \"Index \" n \" out of bounds for TransientVector of length\" cnt))))\n (throw (js\/Error. \"assoc! after persistent!\"))))\n\n (-pop! [tcoll]\n (if ^boolean (.-edit root)\n (cond\n (zero? cnt) (throw (js\/Error. \"Can't pop empty vector\"))\n (== 1 cnt) (do (set! cnt 0) tcoll)\n (pos? (bit-and (dec cnt) 0x01f)) (do (set! cnt (dec cnt)) tcoll)\n :else\n (let [new-tail (unchecked-editable-array-for tcoll (- cnt 2))\n new-root (let [nr (tv-pop-tail tcoll shift root)]\n (if-not (nil? nr)\n nr\n (VectorNode. (.-edit root) (make-array 32))))]\n (if (and (< 5 shift) (nil? (pv-aget new-root 1)))\n (let [new-root (tv-ensure-editable (.-edit root) (pv-aget new-root 0))]\n (set! root new-root)\n (set! shift (- shift 5))\n (set! cnt (dec cnt))\n (set! tail new-tail)\n tcoll)\n (do (set! root new-root)\n (set! cnt (dec cnt))\n (set! tail new-tail)\n tcoll))))\n (throw (js\/Error. \"pop! after persistent!\"))))\n\n ICounted\n (-count [coll]\n (if ^boolean (.-edit root)\n cnt\n (throw (js\/Error. \"count after persistent!\"))))\n\n IIndexed\n (-nth [coll n]\n (if ^boolean (.-edit root)\n (aget (array-for coll n) (bit-and n 0x01f))\n (throw (js\/Error. \"nth after persistent!\"))))\n\n (-nth [coll n not-found]\n (if (and (<= 0 n) (< n cnt))\n (-nth coll n)\n not-found))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (cond\n (not ^boolean (.-edit root)) (throw (js\/Error. \"lookup after persistent!\"))\n (number? k) (-nth coll k not-found)\n :else not-found))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found)))\n\n;;; PersistentQueue ;;;\n\n(deftype PersistentQueueIter [^:mutable fseq riter]\n Object\n (hasNext [_]\n (or (and (some? fseq) (seq fseq)) (and (some? riter) (.hasNext riter))))\n (next [_]\n (cond\n (some? fseq)\n (let [ret (first fseq)]\n (set! fseq (next fseq))\n ret)\n (and (some? riter) ^boolean (.hasNext riter))\n (.next riter)\n :else (throw (js\/Error. \"No such element\"))))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(deftype PersistentQueueSeq [meta front rear ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentQueueSeq. new-meta front rear __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll] (first front))\n (-rest [coll]\n (if-let [f1 (next front)]\n (PersistentQueueSeq. meta f1 rear nil)\n (if (nil? rear)\n (-empty coll)\n (PersistentQueueSeq. meta rear nil nil))))\n\n INext\n (-next [coll]\n (if-let [f1 (next front)]\n (PersistentQueueSeq. meta f1 rear nil)\n (when (some? rear)\n (PersistentQueueSeq. meta rear nil nil))))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY List) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll] coll))\n\n(es6-iterable PersistentQueueSeq)\n\n(deftype PersistentQueue [meta count front rear ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ICloneable\n (-clone [coll] (PersistentQueue. meta count front rear __hash))\n\n IIterable\n (-iterator [coll]\n (PersistentQueueIter. front (-iterator rear)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentQueue. new-meta count front rear __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ISeq\n (-first [coll] (first front))\n (-rest [coll] (rest (seq coll)))\n\n IStack\n (-peek [coll] (first front))\n (-pop [coll]\n (if front\n (if-let [f1 (next front)]\n (PersistentQueue. meta (dec count) f1 rear nil)\n (PersistentQueue. meta (dec count) (seq rear) [] nil))\n coll))\n\n ICollection\n (-conj [coll o]\n (if front\n (PersistentQueue. meta (inc count) front (conj (or rear []) o) nil)\n (PersistentQueue. meta (inc count) (conj front o) [] nil)))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentQueue) meta))\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (let [rear (seq rear)]\n (if (or front rear)\n (PersistentQueueSeq. nil front (seq rear) nil))))\n\n ICounted\n (-count [coll] count))\n\n(set! (.-EMPTY PersistentQueue) (PersistentQueue. nil 0 nil [] empty-ordered-hash))\n\n(es6-iterable PersistentQueue)\n\n(deftype NeverEquiv []\n Object\n (equiv [this other]\n (-equiv this other))\n IEquiv\n (-equiv [o other] false))\n\n(def ^:private never-equiv (NeverEquiv.))\n\n(defn equiv-map\n \"Test map equivalence. Returns true if x equals y, otherwise returns false.\"\n [x y]\n (boolean\n (when (and (map? y) (not (record? y)))\n ; assume all maps are counted\n (when (== (count x) (count y))\n (if (satisfies? IKVReduce x)\n (reduce-kv\n (fn [_ k v]\n (if (= (get y k never-equiv) v)\n true\n (reduced false)))\n true x)\n (every?\n (fn [xkv]\n (= (get y (first xkv) never-equiv) (second xkv)))\n x))))))\n\n\n(defn- scan-array [incr k array]\n (let [len (alength array)]\n (loop [i 0]\n (when (< i len)\n (if (identical? k (aget array i))\n i\n (recur (+ i incr)))))))\n\n; The keys field is an array of all keys of this map, in no particular\n; order. Any string, keyword, or symbol key is used as a property name\n; to store the value in strobj. If a key is assoc'ed when that same\n; key already exists in strobj, the old value is overwritten. If a\n; non-string key is assoc'ed, return a HashMap object instead.\n\n(defn- obj-map-compare-keys [a b]\n (let [a (hash a)\n b (hash b)]\n (cond\n (< a b) -1\n (> a b) 1\n :else 0)))\n\n(defn- obj-map->hash-map [m k v]\n (let [ks (.-keys m)\n len (alength ks)\n so (.-strobj m)\n mm (meta m)]\n (loop [i 0\n out (transient (.-EMPTY PersistentHashMap))]\n (if (< i len)\n (let [k (aget ks i)]\n (recur (inc i) (assoc! out k (gobject\/get so k))))\n (-with-meta (persistent! (assoc! out k v)) mm)))))\n\n;;; ObjMap - DEPRECATED\n\n(defn- obj-clone [obj ks]\n (let [new-obj (js-obj)\n l (alength ks)]\n (loop [i 0]\n (when (< i l)\n (let [k (aget ks i)]\n (gobject\/set new-obj k (gobject\/get obj k))\n (recur (inc i)))))\n new-obj))\n\n(deftype ObjMap [meta keys strobj update-count ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (ObjMap. new-meta keys strobj update-count __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (reduce -conj\n coll\n entry)))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY ObjMap) meta))\n\n IEquiv\n (-equiv [coll other] (equiv-map coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (when (pos? (alength keys))\n (map #(vector % (unchecked-get strobj %))\n (.sort keys obj-map-compare-keys))))\n\n ICounted\n (-count [coll] (alength keys))\n\n ILookup\n (-lookup [coll k] (-lookup coll k nil))\n (-lookup [coll k not-found]\n (if (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n (unchecked-get strobj k)\n not-found))\n\n IAssociative\n (-assoc [coll k v]\n (if (string? k)\n (if (or (> update-count (.-HASHMAP_THRESHOLD ObjMap))\n (>= (alength keys) (.-HASHMAP_THRESHOLD ObjMap)))\n (obj-map->hash-map coll k v)\n (if-not (nil? (scan-array 1 k keys))\n (let [new-strobj (obj-clone strobj keys)]\n (gobject\/set new-strobj k v)\n (ObjMap. meta keys new-strobj (inc update-count) nil)) ; overwrite\n (let [new-strobj (obj-clone strobj keys) ; append\n new-keys (aclone keys)]\n (gobject\/set new-strobj k v)\n (.push new-keys k)\n (ObjMap. meta new-keys new-strobj (inc update-count) nil))))\n ;; non-string key. game over.\n (obj-map->hash-map coll k v)))\n (-contains-key? [coll k]\n (if (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n true\n false))\n\n IFind\n (-find [coll k]\n (when (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n (MapEntry. k (unchecked-get strobj k) nil)))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (let [len (alength keys)]\n (loop [keys (.sort keys obj-map-compare-keys)\n init init]\n (if (seq keys)\n (let [k (first keys)\n init (f init k (unchecked-get strobj k))]\n (if (reduced? init)\n @init\n (recur (rest keys) init)))\n init))))\n\n IMap\n (-dissoc [coll k]\n (if (and (string? k)\n (not (nil? (scan-array 1 k keys))))\n (let [new-keys (aclone keys)\n new-strobj (obj-clone strobj keys)]\n (.splice new-keys (scan-array 1 k new-keys) 1)\n (js-delete new-strobj k)\n (ObjMap. meta new-keys new-strobj (inc update-count) nil))\n coll)) ; key not found, return coll unchanged\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll]\n (transient (into (hash-map) coll))))\n\n(set! (.-EMPTY ObjMap) (ObjMap. nil (array) (js-obj) 0 empty-unordered-hash))\n\n(set! (.-HASHMAP_THRESHOLD ObjMap) 8)\n\n(set! (.-fromObject ObjMap) (fn [ks obj] (ObjMap. nil ks obj 0 nil)))\n\n;; Record Iterator\n(deftype RecordIter [^:mutable i record base-count fields ext-map-iter]\n Object\n (hasNext [_]\n (or (< i base-count) (.hasNext ext-map-iter)))\n (next [_]\n (if (< i base-count)\n (let [k (nth fields i)]\n (set! i (inc i))\n (MapEntry. k (-lookup record k) nil))\n (.next ext-map-iter)))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n;; EXPERIMENTAL: subject to change\n(deftype ES6EntriesIterator [^:mutable s]\n Object\n (next [_]\n (if-not (nil? s)\n (let [[k v] (first s)]\n (set! s (next s))\n #js {:value #js [k v] :done false})\n #js {:value nil :done true})))\n\n(defn es6-entries-iterator [coll]\n (ES6EntriesIterator. (seq coll)))\n\n;; EXPERIMENTAL: subject to change\n(deftype ES6SetEntriesIterator [^:mutable s]\n Object\n (next [_]\n (if-not (nil? s)\n (let [x (first s)]\n (set! s (next s))\n #js {:value #js [x x] :done false})\n #js {:value nil :done true})))\n\n(defn es6-set-entries-iterator [coll]\n (ES6SetEntriesIterator. (seq coll)))\n\n;;; PersistentArrayMap\n\n(defn- array-index-of-nil? [arr]\n (let [len (alength arr)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (nil? (aget arr i)) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-keyword? [arr k]\n (let [len (alength arr)\n kstr (.-fqn k)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (and (keyword? (aget arr i))\n (identical? kstr (.-fqn (aget arr i)))) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-symbol? [arr k]\n (let [len (alength arr)\n kstr (.-str k)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (and (symbol? (aget arr i))\n (identical? kstr (.-str (aget arr i)))) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-identical? [arr k]\n (let [len (alength arr)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (identical? k (aget arr i)) i\n :else (recur (+ i 2))))))\n\n(defn- array-index-of-equiv? [arr k]\n (let [len (alength arr)]\n (loop [i 0]\n (cond\n (<= len i) -1\n (= k (aget arr i)) i\n :else (recur (+ i 2))))))\n\n(defn array-index-of [arr k]\n (cond\n (keyword? k) (array-index-of-keyword? arr k)\n\n (or (string? k) (number? k))\n (array-index-of-identical? arr k)\n\n (symbol? k) (array-index-of-symbol? arr k)\n\n (nil? k)\n (array-index-of-nil? arr)\n\n :else (array-index-of-equiv? arr k)))\n\n(defn- array-map-index-of [m k]\n (array-index-of (.-arr m) k))\n\n(defn- array-extend-kv [arr k v]\n (let [l (alength arr)\n narr (make-array (+ l 2))]\n (loop [i 0]\n (when (< i l)\n (aset narr i (aget arr i))\n (recur (inc i))))\n (aset narr l k)\n (aset narr (inc l) v)\n narr))\n\n(defn- array-map-extend-kv [m k v]\n (array-extend-kv (.-arr m) k v))\n\n(declare TransientArrayMap)\n\n(deftype MapEntry [key val ^:mutable __hash]\n Object\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMapEntry\n (-key [node] key)\n (-val [node] val)\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IMeta\n (-meta [node] nil)\n\n IWithMeta\n (-with-meta [node meta]\n (with-meta [key val] meta))\n\n IStack\n (-peek [node] val)\n\n (-pop [node] [key])\n\n ICollection\n (-conj [node o] [key val o])\n\n IEmptyableCollection\n (-empty [node] nil)\n\n ISequential\n ISeqable\n (-seq [node] (IndexedSeq. #js [key val] 0 nil))\n\n IReversible\n (-rseq [node] (IndexedSeq. #js [val key] 0 nil))\n\n ICounted\n (-count [node] 2)\n\n IIndexed\n (-nth [node n]\n (cond (== n 0) key\n (== n 1) val\n :else (throw (js\/Error. \"Index out of bounds\"))))\n\n (-nth [node n not-found]\n (cond (== n 0) key\n (== n 1) val\n :else not-found))\n\n ILookup\n (-lookup [node k] (-nth node k nil))\n (-lookup [node k not-found] (-nth node k not-found))\n\n IAssociative\n (-assoc [node k v]\n (assoc [key val] k v))\n (-contains-key? [node k]\n (or (== k 0) (== k 1)))\n\n IFind\n (-find [node k]\n (case k\n 0 (MapEntry. 0 key nil)\n 1 (MapEntry. 1 val nil)\n nil))\n\n IVector\n (-assoc-n [node n v]\n (-assoc-n [key val] n v))\n\n IReduce\n (-reduce [node f]\n (ci-reduce node f))\n\n (-reduce [node f start]\n (ci-reduce node f start))\n\n IFn\n (-invoke [node k]\n (-nth node k))\n\n (-invoke [node k not-found]\n (-nth node k not-found)))\n\n(defn map-entry?\n \"Returns true if x satisfies IMapEntry\"\n [x]\n (implements? IMapEntry x))\n\n(deftype PersistentArrayMapSeq [arr i _meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] _meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta _meta)\n coll\n (PersistentArrayMapSeq. arr i new-meta)))\n\n ICounted\n (-count [coll]\n (\/ (- (alength arr) i) 2))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n ISeq\n (-first [coll]\n (MapEntry. (aget arr i) (aget arr (inc i)) nil))\n\n (-rest [coll]\n (if (< i (- (alength arr) 2))\n (PersistentArrayMapSeq. arr (+ i 2) nil)\n ()))\n\n INext\n (-next [coll]\n (when (< i (- (alength arr) 2))\n (PersistentArrayMapSeq. arr (+ i 2) nil)))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable PersistentArrayMapSeq)\n\n(defn persistent-array-map-seq [arr i _meta]\n (when (<= i (- (alength arr) 2))\n (PersistentArrayMapSeq. arr i _meta)))\n\n(declare keys vals)\n\n(deftype PersistentArrayMapIterator [arr ^:mutable i cnt]\n Object\n (hasNext [_]\n (< i cnt))\n (next [_]\n (let [ret (MapEntry. (aget arr i) (aget arr (inc i)) nil)]\n (set! i (+ i 2))\n ret)))\n\n(deftype PersistentArrayMap [meta cnt arr ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n\n ;; EXPERIMENTAL: subject to change\n (keys [coll]\n (es6-iterator (keys coll)))\n (entries [coll]\n (es6-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (vals coll)))\n (has [coll k]\n (contains? coll k))\n (get [coll k not-found]\n (-lookup coll k not-found))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentArrayMap. meta cnt arr __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentArrayMap. new-meta cnt arr __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (loop [ret coll es (seq entry)]\n (if (nil? es)\n ret\n (let [e (first es)]\n (if (vector? e)\n (recur (-assoc ret (-nth e 0) (-nth e 1))\n (next es))\n (throw (js\/Error. \"conj on a map takes map entries or seqables of map entries\"))))))))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentArrayMap) meta))\n\n IEquiv\n (-equiv [coll other]\n (if (and (map? other) (not (record? other)))\n (let [alen (alength arr)\n ^not-native other other]\n (if (== cnt (-count other))\n (loop [i 0]\n (if (< i alen)\n (let [v (-lookup other (aget arr i) lookup-sentinel)]\n (if-not (identical? v lookup-sentinel)\n (if (= (aget arr (inc i)) v)\n (recur (+ i 2))\n false)\n false))\n true))\n false))\n false))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n IIterable\n (-iterator [this]\n (PersistentArrayMapIterator. arr 0 (* cnt 2)))\n\n ISeqable\n (-seq [coll]\n (persistent-array-map-seq arr 0 nil))\n\n ICounted\n (-count [coll] cnt)\n\n ILookup\n (-lookup [coll k]\n (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (let [idx (array-map-index-of coll k)]\n (if (== idx -1)\n not-found\n (aget arr (inc idx)))))\n\n IAssociative\n (-assoc [coll k v]\n (let [idx (array-map-index-of coll k)]\n (cond\n (== idx -1)\n (if (< cnt (.-HASHMAP-THRESHOLD PersistentArrayMap))\n (let [arr (array-map-extend-kv coll k v)]\n (PersistentArrayMap. meta (inc cnt) arr nil))\n (-> (into (.-EMPTY PersistentHashMap) coll)\n (-assoc k v)\n (-with-meta meta)))\n\n (identical? v (aget arr (inc idx)))\n coll\n\n :else\n (let [arr (doto (aclone arr)\n (aset (inc idx) v))]\n (PersistentArrayMap. meta cnt arr nil)))))\n\n (-contains-key? [coll k]\n (not (== (array-map-index-of coll k) -1)))\n\n IFind\n (-find [coll k]\n (let [idx (array-map-index-of coll k)]\n (when-not (== idx -1)\n (MapEntry. (aget arr idx) (aget arr (inc idx)) nil))))\n\n IMap\n (-dissoc [coll k]\n (let [idx (array-map-index-of coll k)]\n (if (>= idx 0)\n (let [len (alength arr)\n new-len (- len 2)]\n (if (zero? new-len)\n (-empty coll)\n (let [new-arr (make-array new-len)]\n (loop [s 0 d 0]\n (cond\n (>= s len) (PersistentArrayMap. meta (dec cnt) new-arr nil)\n (= k (aget arr s)) (recur (+ s 2) d)\n :else (do (aset new-arr d (aget arr s))\n (aset new-arr (inc d) (aget arr (inc s)))\n (recur (+ s 2) (+ d 2))))))))\n coll)))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (let [len (alength arr)]\n (loop [i 0 init init]\n (if (< i len)\n (let [init (f init (aget arr i) (aget arr (inc i)))]\n (if (reduced? init)\n @init\n (recur (+ i 2) init)))\n init))))\n\n IReduce\n (-reduce [coll f]\n (iter-reduce coll f))\n (-reduce [coll f start]\n (iter-reduce coll f start))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll]\n (TransientArrayMap. (js-obj) (alength arr) (aclone arr))))\n\n(set! (.-EMPTY PersistentArrayMap) (PersistentArrayMap. nil 0 (array) empty-unordered-hash))\n\n(set! (.-HASHMAP-THRESHOLD PersistentArrayMap) 8)\n\n(set! (.-fromArray PersistentArrayMap)\n (fn [arr ^boolean no-clone ^boolean no-check]\n (as-> (if no-clone arr (aclone arr)) arr\n (if no-check\n arr\n (let [ret (array)]\n (loop [i 0]\n (when (< i (alength arr))\n (let [k (aget arr i)\n v (aget arr (inc i))\n idx (array-index-of ret k)]\n (when (== idx -1)\n (.push ret k)\n (.push ret v)))\n (recur (+ i 2))))\n ret))\n (let [cnt (\/ (alength arr) 2)]\n (PersistentArrayMap. nil cnt arr nil)))))\n\n(set! (.-createWithCheck PersistentArrayMap)\n (fn [arr]\n (let [ret (array)]\n (loop [i 0]\n (when (< i (alength arr))\n (let [k (aget arr i)\n v (aget arr (inc i))\n idx (array-index-of ret k)]\n (if (== idx -1)\n (doto ret (.push k) (.push v))\n (throw (js\/Error. (str \"Duplicate key: \" k)))))\n (recur (+ i 2))))\n (let [cnt (\/ (alength arr) 2)]\n (PersistentArrayMap. nil cnt arr nil)))))\n\n(defn key-test [key other]\n (cond\n (identical? key other) true\n (keyword-identical? key other) true\n :else (= key other)))\n\n(defn- ^boolean pam-dupes? [arr]\n (loop [i 0]\n (if (< i (alength arr))\n (let [dupe? (loop [j 0]\n (if (< j i)\n (or\n (key-test (aget arr i) (aget arr j))\n (recur (+ 2 j)))\n false))]\n (or dupe? (recur (+ 2 i))))\n false)))\n\n(defn- pam-new-size [arr]\n (loop [i 0 n 0]\n (if (< i (alength arr))\n (let [dupe? (loop [j 0]\n (if (< j i)\n (or\n (key-test (aget arr i) (aget arr j))\n (recur (+ 2 j)))\n false))]\n (recur (+ 2 i) (if dupe? n (+ n 2))))\n n)))\n\n(defn- pam-grow-seed-array [seed trailing]\n (let [seed-cnt (dec (alength seed))\n extra-kvs (seq trailing)\n ret (make-array (+ seed-cnt (* 2 (count extra-kvs))))\n ret (array-copy seed 0 ret 0 seed-cnt)]\n (loop [i seed-cnt extra-kvs extra-kvs]\n (if extra-kvs\n (let [kv (first extra-kvs)]\n (aset ret i (-key kv))\n (aset ret (inc i) (-val kv))\n (recur (+ 2 seed-cnt) (next extra-kvs)))\n ret))))\n\n(set! (.-createAsIfByAssoc PersistentArrayMap)\n (fn [init]\n ;; check trailing element\n (let [len (alength init)\n has-trailing? (== 1 (bit-and len 1))]\n (if-not (or has-trailing? (pam-dupes? init))\n (PersistentArrayMap. nil (\/ len 2) init nil)\n (.createAsIfByAssocComplexPath PersistentArrayMap init has-trailing?)))))\n\n(set! (.-createAsIfByAssocComplexPath PersistentArrayMap)\n (fn [init ^boolean has-trailing?]\n (let [init (if has-trailing?\n (pam-grow-seed-array init\n ;; into {} in case the final element is not a map but something conj-able\n ;; for parity with Clojure implementation of CLJ-2603\n (into {} (aget init (dec (alength init)))))\n init)\n n (pam-new-size init)\n len (alength init)]\n (if (< n len)\n (let [nodups (make-array n)]\n (loop [i 0 m 0]\n (if (< i len)\n (let [dupe? (loop [j 0]\n (if (< j m)\n (or\n (key-test (aget init i) (aget init j))\n (recur (+ 2 j)))\n false))]\n (if-not dupe?\n (let [j (loop [j (- len 2)]\n (if (>= j i)\n (if (key-test (aget init i) (aget init j))\n j\n (recur (- j 2)))\n j))]\n (aset nodups m (aget init i))\n (aset nodups (inc m) (aget init (inc j)))\n (recur (+ 2 i) (+ 2 m)))\n (recur (+ 2 i) m)))))\n (PersistentArrayMap. nil (\/ (alength nodups) 2) nodups nil))\n (PersistentArrayMap. nil (\/ (alength init) 2) init nil)))))\n\n(es6-iterable PersistentArrayMap)\n\n(declare array->transient-hash-map)\n\n(deftype TransientArrayMap [^:mutable ^boolean editable?\n ^:mutable len\n arr]\n ICounted\n (-count [tcoll]\n (if editable?\n (quot len 2)\n (throw (js\/Error. \"count after persistent!\"))))\n\n ILookup\n (-lookup [tcoll k]\n (-lookup tcoll k nil))\n\n (-lookup [tcoll k not-found]\n (if editable?\n (let [idx (array-map-index-of tcoll k)]\n (if (== idx -1)\n not-found\n (aget arr (inc idx))))\n (throw (js\/Error. \"lookup after persistent!\"))))\n\n ITransientCollection\n (-conj! [tcoll o]\n (if editable?\n (cond\n (map-entry? o)\n (-assoc! tcoll (key o) (val o))\n\n (vector? o)\n (-assoc! tcoll (o 0) (o 1))\n\n :else\n (loop [es (seq o) tcoll tcoll]\n (if-let [e (first es)]\n (recur (next es)\n (-assoc! tcoll (key e) (val e)))\n tcoll)))\n (throw (js\/Error. \"conj! after persistent!\"))))\n\n (-persistent! [tcoll]\n (if editable?\n (do (set! editable? false)\n (PersistentArrayMap. nil (quot len 2) arr nil))\n (throw (js\/Error. \"persistent! called twice\"))))\n\n ITransientAssociative\n (-assoc! [tcoll key val]\n (if editable?\n (let [idx (array-map-index-of tcoll key)]\n (if (== idx -1)\n (if (<= (+ len 2) (* 2 (.-HASHMAP-THRESHOLD PersistentArrayMap)))\n (do (set! len (+ len 2))\n (.push arr key)\n (.push arr val)\n tcoll)\n (assoc! (array->transient-hash-map len arr) key val))\n (if (identical? val (aget arr (inc idx)))\n tcoll\n (do (aset arr (inc idx) val)\n tcoll))))\n (throw (js\/Error. \"assoc! after persistent!\"))))\n\n ITransientMap\n (-dissoc! [tcoll key]\n (if editable?\n (let [idx (array-map-index-of tcoll key)]\n (when (>= idx 0)\n (aset arr idx (aget arr (- len 2)))\n (aset arr (inc idx) (aget arr (dec len)))\n (doto arr .pop .pop)\n (set! len (- len 2)))\n tcoll)\n (throw (js\/Error. \"dissoc! after persistent!\"))))\n\n IFn\n (-invoke [tcoll key]\n (-lookup tcoll key nil))\n (-invoke [tcoll key not-found]\n (-lookup tcoll key not-found)))\n\n(declare TransientHashMap)\n\n(defn- array->transient-hash-map [len arr]\n (loop [out (transient (.-EMPTY PersistentHashMap))\n i 0]\n (if (< i len)\n (recur (assoc! out (aget arr i) (aget arr (inc i))) (+ i 2))\n out)))\n\n;;; PersistentHashMap\n\n(deftype Box [^:mutable val])\n\n(declare create-inode-seq create-array-node-seq reset! create-node atom deref)\n\n(defn- mask [hash shift]\n (bit-and (bit-shift-right-zero-fill hash shift) 0x01f))\n\n(defn- clone-and-set\n ([arr i a]\n (doto (aclone arr)\n (aset i a)))\n ([arr i a j b]\n (doto (aclone arr)\n (aset i a)\n (aset j b))))\n\n(defn- remove-pair [arr i]\n (let [new-arr (make-array (- (alength arr) 2))]\n (array-copy arr 0 new-arr 0 (* 2 i))\n (array-copy arr (* 2 (inc i)) new-arr (* 2 i) (- (alength new-arr) (* 2 i)))\n new-arr))\n\n(defn- bitmap-indexed-node-index [bitmap bit]\n (bit-count (bit-and bitmap (dec bit))))\n\n(defn- bitpos [hash shift]\n (bit-shift-left 1 (mask hash shift)))\n\n(defn- edit-and-set\n ([inode edit i a]\n (let [editable (.ensure-editable inode edit)]\n (aset (.-arr editable) i a)\n editable))\n ([inode edit i a j b]\n (let [editable (.ensure-editable inode edit)]\n (aset (.-arr editable) i a)\n (aset (.-arr editable) j b)\n editable)))\n\n(defn- inode-kv-reduce [arr f init]\n (let [len (alength arr)]\n (loop [i 0 init init]\n (if (< i len)\n (let [init (let [k (aget arr i)]\n (if-not (nil? k)\n (f init k (aget arr (inc i)))\n (let [node (aget arr (inc i))]\n (if-not (nil? node)\n (.kv-reduce node f init)\n init))))]\n (if (reduced? init)\n init\n (recur (+ i 2) init)))\n init))))\n\n(declare ArrayNode)\n\n (deftype NodeIterator [arr ^:mutable i ^:mutable next-entry ^:mutable next-iter]\n Object\n (advance [this]\n (let [len (alength arr)]\n (loop []\n (if (< i len)\n (let [key (aget arr i)\n node-or-val (aget arr (inc i))\n ^boolean found\n (cond (some? key)\n (set! next-entry (MapEntry. key node-or-val nil))\n (some? node-or-val)\n (let [new-iter (-iterator node-or-val)]\n (if ^boolean (.hasNext new-iter)\n (set! next-iter new-iter)\n false))\n :else false)]\n (set! i (+ i 2))\n (if found true (recur)))\n false))))\n (hasNext [this]\n (or (some? next-entry) (some? next-iter) (.advance this)))\n (next [this]\n (cond\n (some? next-entry)\n (let [ret next-entry]\n (set! next-entry nil)\n ret)\n (some? next-iter)\n (let [ret (.next next-iter)]\n (when-not ^boolean (.hasNext next-iter)\n (set! next-iter nil))\n ret)\n ^boolean (.advance this)\n (.next this)\n :else (throw (js\/Error. \"No such element\"))))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(deftype BitmapIndexedNode [edit ^:mutable bitmap ^:mutable arr]\n Object\n (inode-assoc [inode shift hash key val added-leaf?]\n (let [bit (bitpos hash shift)\n idx (bitmap-indexed-node-index bitmap bit)]\n (if (zero? (bit-and bitmap bit))\n (let [n (bit-count bitmap)]\n (if (>= n 16)\n (let [nodes (make-array 32)\n jdx (mask hash shift)]\n (aset nodes jdx (.inode-assoc (.-EMPTY BitmapIndexedNode) (+ shift 5) hash key val added-leaf?))\n (loop [i 0 j 0]\n (if (< i 32)\n (if (zero? (bit-and (bit-shift-right-zero-fill bitmap i) 1))\n (recur (inc i) j)\n (do (aset nodes i\n (if-not (nil? (aget arr j))\n (.inode-assoc (.-EMPTY BitmapIndexedNode)\n (+ shift 5) (cljs.core\/hash (aget arr j)) (aget arr j) (aget arr (inc j)) added-leaf?)\n (aget arr (inc j))))\n (recur (inc i) (+ j 2))))))\n (ArrayNode. nil (inc n) nodes))\n (let [new-arr (make-array (* 2 (inc n)))]\n (array-copy arr 0 new-arr 0 (* 2 idx))\n (aset new-arr (* 2 idx) key)\n (aset new-arr (inc (* 2 idx)) val)\n (array-copy arr (* 2 idx) new-arr (* 2 (inc idx)) (* 2 (- n idx)))\n (set! (.-val added-leaf?) true)\n (BitmapIndexedNode. nil (bit-or bitmap bit) new-arr))))\n (let [key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-assoc val-or-node (+ shift 5) hash key val added-leaf?)]\n (if (identical? n val-or-node)\n inode\n (BitmapIndexedNode. nil bitmap (clone-and-set arr (inc (* 2 idx)) n))))\n\n (key-test key key-or-nil)\n (if (identical? val val-or-node)\n inode\n (BitmapIndexedNode. nil bitmap (clone-and-set arr (inc (* 2 idx)) val)))\n\n :else\n (do (set! (.-val added-leaf?) true)\n (BitmapIndexedNode. nil bitmap\n (clone-and-set arr (* 2 idx) nil (inc (* 2 idx))\n (create-node (+ shift 5) key-or-nil val-or-node hash key val)))))))))\n\n (inode-without [inode shift hash key]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n inode\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-without val-or-node (+ shift 5) hash key)]\n (cond (identical? n val-or-node) inode\n (not (nil? n)) (BitmapIndexedNode. nil bitmap (clone-and-set arr (inc (* 2 idx)) n))\n (== bitmap bit) nil\n :else (BitmapIndexedNode. nil (bit-xor bitmap bit) (remove-pair arr idx))))\n (key-test key key-or-nil)\n (if (== bitmap bit)\n nil\n (BitmapIndexedNode. nil (bit-xor bitmap bit) (remove-pair arr idx)))\n :else inode)))))\n\n (inode-lookup [inode shift hash key not-found]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n not-found\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil) (.inode-lookup val-or-node (+ shift 5) hash key not-found)\n (key-test key key-or-nil) val-or-node\n :else not-found)))))\n\n (inode-find [inode shift hash key not-found]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n not-found\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil) (.inode-find val-or-node (+ shift 5) hash key not-found)\n (key-test key key-or-nil) (MapEntry. key-or-nil val-or-node nil)\n :else not-found)))))\n\n (inode-seq [inode]\n (create-inode-seq arr))\n\n (ensure-editable [inode e]\n (if (identical? e edit)\n inode\n (let [n (bit-count bitmap)\n new-arr (make-array (if (neg? n) 4 (* 2 (inc n))))]\n (array-copy arr 0 new-arr 0 (* 2 n))\n (BitmapIndexedNode. e bitmap new-arr))))\n\n (edit-and-remove-pair [inode e bit i]\n (if (== bitmap bit)\n nil\n (let [editable (.ensure-editable inode e)\n earr (.-arr editable)\n len (alength earr)]\n (set! (.-bitmap editable) (bit-xor bit (.-bitmap editable)))\n (array-copy earr (* 2 (inc i))\n earr (* 2 i)\n (- len (* 2 (inc i))))\n (aset earr (- len 2) nil)\n (aset earr (dec len) nil)\n editable)))\n\n (inode-assoc! [inode edit shift hash key val added-leaf?]\n (let [bit (bitpos hash shift)\n idx (bitmap-indexed-node-index bitmap bit)]\n (if (zero? (bit-and bitmap bit))\n (let [n (bit-count bitmap)]\n (cond\n (< (* 2 n) (alength arr))\n (let [editable (.ensure-editable inode edit)\n earr (.-arr editable)]\n (set! (.-val added-leaf?) true)\n (array-copy-downward earr (* 2 idx)\n earr (* 2 (inc idx))\n (* 2 (- n idx)))\n (aset earr (* 2 idx) key)\n (aset earr (inc (* 2 idx)) val)\n (set! (.-bitmap editable) (bit-or (.-bitmap editable) bit))\n editable)\n\n (>= n 16)\n (let [nodes (make-array 32)\n jdx (mask hash shift)]\n (aset nodes jdx (.inode-assoc! (.-EMPTY BitmapIndexedNode) edit (+ shift 5) hash key val added-leaf?))\n (loop [i 0 j 0]\n (if (< i 32)\n (if (zero? (bit-and (bit-shift-right-zero-fill bitmap i) 1))\n (recur (inc i) j)\n (do (aset nodes i\n (if-not (nil? (aget arr j))\n (.inode-assoc! (.-EMPTY BitmapIndexedNode)\n edit (+ shift 5) (cljs.core\/hash (aget arr j)) (aget arr j) (aget arr (inc j)) added-leaf?)\n (aget arr (inc j))))\n (recur (inc i) (+ j 2))))))\n (ArrayNode. edit (inc n) nodes))\n\n :else\n (let [new-arr (make-array (* 2 (+ n 4)))]\n (array-copy arr 0 new-arr 0 (* 2 idx))\n (aset new-arr (* 2 idx) key)\n (aset new-arr (inc (* 2 idx)) val)\n (array-copy arr (* 2 idx) new-arr (* 2 (inc idx)) (* 2 (- n idx)))\n (set! (.-val added-leaf?) true)\n (let [editable (.ensure-editable inode edit)]\n (set! (.-arr editable) new-arr)\n (set! (.-bitmap editable) (bit-or (.-bitmap editable) bit))\n editable))))\n (let [key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-assoc! val-or-node edit (+ shift 5) hash key val added-leaf?)]\n (if (identical? n val-or-node)\n inode\n (edit-and-set inode edit (inc (* 2 idx)) n)))\n\n (key-test key key-or-nil)\n (if (identical? val val-or-node)\n inode\n (edit-and-set inode edit (inc (* 2 idx)) val))\n\n :else\n (do (set! (.-val added-leaf?) true)\n (edit-and-set inode edit (* 2 idx) nil (inc (* 2 idx))\n (create-node edit (+ shift 5) key-or-nil val-or-node hash key val))))))))\n\n (inode-without! [inode edit shift hash key removed-leaf?]\n (let [bit (bitpos hash shift)]\n (if (zero? (bit-and bitmap bit))\n inode\n (let [idx (bitmap-indexed-node-index bitmap bit)\n key-or-nil (aget arr (* 2 idx))\n val-or-node (aget arr (inc (* 2 idx)))]\n (cond (nil? key-or-nil)\n (let [n (.inode-without! val-or-node edit (+ shift 5) hash key removed-leaf?)]\n (cond (identical? n val-or-node) inode\n (not (nil? n)) (edit-and-set inode edit (inc (* 2 idx)) n)\n (== bitmap bit) nil\n :else (.edit-and-remove-pair inode edit bit idx)))\n (key-test key key-or-nil)\n (do (set! (.-val removed-leaf?) true)\n (.edit-and-remove-pair inode edit bit idx))\n :else inode)))))\n\n (kv-reduce [inode f init]\n (inode-kv-reduce arr f init))\n\n IIterable\n (-iterator [coll]\n (NodeIterator. arr 0 nil nil)))\n\n(set! (.-EMPTY BitmapIndexedNode) (BitmapIndexedNode. nil 0 (make-array 0)))\n\n(defn- pack-array-node [array-node edit idx]\n (let [arr (.-arr array-node)\n len (alength arr)\n new-arr (make-array (* 2 (dec (.-cnt array-node))))]\n (loop [i 0 j 1 bitmap 0]\n (if (< i len)\n (if (and (not (== i idx))\n (not (nil? (aget arr i))))\n (do (aset new-arr j (aget arr i))\n (recur (inc i) (+ j 2) (bit-or bitmap (bit-shift-left 1 i))))\n (recur (inc i) j bitmap))\n (BitmapIndexedNode. edit bitmap new-arr)))))\n\n(deftype ArrayNodeIterator [arr ^:mutable i ^:mutable next-iter]\n Object\n (hasNext [this]\n (let [len (alength arr)]\n (loop []\n (if-not (and (some? next-iter) ^boolean (.hasNext next-iter))\n (if (< i len)\n (let [node (aget arr i)]\n (set! i (inc i))\n (when (some? node)\n (set! next-iter (-iterator node)))\n (recur))\n false)\n true))))\n (next [this]\n (if ^boolean (.hasNext this)\n (.next next-iter)\n (throw (js\/Error. \"No such element\"))))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(deftype ArrayNode [edit ^:mutable cnt ^:mutable arr]\n Object\n (inode-assoc [inode shift hash key val added-leaf?]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if (nil? node)\n (ArrayNode. nil (inc cnt) (clone-and-set arr idx (.inode-assoc (.-EMPTY BitmapIndexedNode) (+ shift 5) hash key val added-leaf?)))\n (let [n (.inode-assoc node (+ shift 5) hash key val added-leaf?)]\n (if (identical? n node)\n inode\n (ArrayNode. nil cnt (clone-and-set arr idx n)))))))\n\n (inode-without [inode shift hash key]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if-not (nil? node)\n (let [n (.inode-without node (+ shift 5) hash key)]\n (cond\n (identical? n node)\n inode\n\n (nil? n)\n (if (<= cnt 8)\n (pack-array-node inode nil idx)\n (ArrayNode. nil (dec cnt) (clone-and-set arr idx n)))\n\n :else\n (ArrayNode. nil cnt (clone-and-set arr idx n))))\n inode)))\n\n (inode-lookup [inode shift hash key not-found]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if-not (nil? node)\n (.inode-lookup node (+ shift 5) hash key not-found)\n not-found)))\n\n (inode-find [inode shift hash key not-found]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if-not (nil? node)\n (.inode-find node (+ shift 5) hash key not-found)\n not-found)))\n\n (inode-seq [inode]\n (create-array-node-seq arr))\n\n (ensure-editable [inode e]\n (if (identical? e edit)\n inode\n (ArrayNode. e cnt (aclone arr))))\n\n (inode-assoc! [inode edit shift hash key val added-leaf?]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if (nil? node)\n (let [editable (edit-and-set inode edit idx (.inode-assoc! (.-EMPTY BitmapIndexedNode) edit (+ shift 5) hash key val added-leaf?))]\n (set! (.-cnt editable) (inc (.-cnt editable)))\n editable)\n (let [n (.inode-assoc! node edit (+ shift 5) hash key val added-leaf?)]\n (if (identical? n node)\n inode\n (edit-and-set inode edit idx n))))))\n\n (inode-without! [inode edit shift hash key removed-leaf?]\n (let [idx (mask hash shift)\n node (aget arr idx)]\n (if (nil? node)\n inode\n (let [n (.inode-without! node edit (+ shift 5) hash key removed-leaf?)]\n (cond\n (identical? n node)\n inode\n\n (nil? n)\n (if (<= cnt 8)\n (pack-array-node inode edit idx)\n (let [editable (edit-and-set inode edit idx n)]\n (set! (.-cnt editable) (dec (.-cnt editable)))\n editable))\n\n :else\n (edit-and-set inode edit idx n))))))\n\n (kv-reduce [inode f init]\n (let [len (alength arr)] ; actually 32\n (loop [i 0 init init]\n (if (< i len)\n (let [node (aget arr i)]\n (if-not (nil? node)\n (let [init (.kv-reduce node f init)]\n (if (reduced? init)\n init\n (recur (inc i) init)))\n (recur (inc i) init)))\n init))))\n\n IIterable\n (-iterator [coll]\n (ArrayNodeIterator. arr 0 nil)))\n\n(defn- hash-collision-node-find-index [arr cnt key]\n (let [lim (* 2 cnt)]\n (loop [i 0]\n (if (< i lim)\n (if (key-test key (aget arr i))\n i\n (recur (+ i 2)))\n -1))))\n\n(deftype HashCollisionNode [edit\n ^:mutable collision-hash\n ^:mutable cnt\n ^:mutable arr]\n Object\n (inode-assoc [inode shift hash key val added-leaf?]\n (if (== hash collision-hash)\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (if (== idx -1)\n (let [len (* 2 cnt)\n new-arr (make-array (+ len 2))]\n (array-copy arr 0 new-arr 0 len)\n (aset new-arr len key)\n (aset new-arr (inc len) val)\n (set! (.-val added-leaf?) true)\n (HashCollisionNode. nil collision-hash (inc cnt) new-arr))\n (if (= (aget arr (inc idx)) val)\n inode\n (HashCollisionNode. nil collision-hash cnt (clone-and-set arr (inc idx) val)))))\n (.inode-assoc (BitmapIndexedNode. nil (bitpos collision-hash shift) (array nil inode))\n shift hash key val added-leaf?)))\n\n (inode-without [inode shift hash key]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (cond (== idx -1) inode\n (== cnt 1) nil\n :else (HashCollisionNode. nil collision-hash (dec cnt) (remove-pair arr (quot idx 2))))))\n\n (inode-lookup [inode shift hash key not-found]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (cond (< idx 0) not-found\n (key-test key (aget arr idx)) (aget arr (inc idx))\n :else not-found)))\n\n (inode-find [inode shift hash key not-found]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (cond (< idx 0) not-found\n (key-test key (aget arr idx)) (MapEntry. (aget arr idx) (aget arr (inc idx)) nil)\n :else not-found)))\n\n (inode-seq [inode]\n (create-inode-seq arr))\n\n (ensure-editable [inode e]\n (if (identical? e edit)\n inode\n (let [new-arr (make-array (* 2 (inc cnt)))]\n (array-copy arr 0 new-arr 0 (* 2 cnt))\n (HashCollisionNode. e collision-hash cnt new-arr))))\n\n (ensure-editable-array [inode e count array]\n (if (identical? e edit)\n (do (set! arr array)\n (set! cnt count)\n inode)\n (HashCollisionNode. edit collision-hash count array)))\n\n (inode-assoc! [inode edit shift hash key val added-leaf?]\n (if (== hash collision-hash)\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (if (== idx -1)\n (if (> (alength arr) (* 2 cnt))\n (let [editable (edit-and-set inode edit (* 2 cnt) key (inc (* 2 cnt)) val)]\n (set! (.-val added-leaf?) true)\n (set! (.-cnt editable) (inc (.-cnt editable)))\n editable)\n (let [len (alength arr)\n new-arr (make-array (+ len 2))]\n (array-copy arr 0 new-arr 0 len)\n (aset new-arr len key)\n (aset new-arr (inc len) val)\n (set! (.-val added-leaf?) true)\n (.ensure-editable-array inode edit (inc cnt) new-arr)))\n (if (identical? (aget arr (inc idx)) val)\n inode\n (edit-and-set inode edit (inc idx) val))))\n (.inode-assoc! (BitmapIndexedNode. edit (bitpos collision-hash shift) (array nil inode nil nil))\n edit shift hash key val added-leaf?)))\n\n (inode-without! [inode edit shift hash key removed-leaf?]\n (let [idx (hash-collision-node-find-index arr cnt key)]\n (if (== idx -1)\n inode\n (do (set! (.-val removed-leaf?) true)\n (if (== cnt 1)\n nil\n (let [editable (.ensure-editable inode edit)\n earr (.-arr editable)]\n (aset earr idx (aget earr (- (* 2 cnt) 2)))\n (aset earr (inc idx) (aget earr (dec (* 2 cnt))))\n (aset earr (dec (* 2 cnt)) nil)\n (aset earr (- (* 2 cnt) 2) nil)\n (set! (.-cnt editable) (dec (.-cnt editable)))\n editable))))))\n\n (kv-reduce [inode f init]\n (inode-kv-reduce arr f init))\n\n IIterable\n (-iterator [coll]\n (NodeIterator. arr 0 nil nil)))\n\n(defn- create-node\n ([shift key1 val1 key2hash key2 val2]\n (let [key1hash (hash key1)]\n (if (== key1hash key2hash)\n (HashCollisionNode. nil key1hash 2 (array key1 val1 key2 val2))\n (let [added-leaf? (Box. false)]\n (-> (.-EMPTY BitmapIndexedNode)\n (.inode-assoc shift key1hash key1 val1 added-leaf?)\n (.inode-assoc shift key2hash key2 val2 added-leaf?))))))\n ([edit shift key1 val1 key2hash key2 val2]\n (let [key1hash (hash key1)]\n (if (== key1hash key2hash)\n (HashCollisionNode. nil key1hash 2 (array key1 val1 key2 val2))\n (let [added-leaf? (Box. false)]\n (-> (.-EMPTY BitmapIndexedNode)\n (.inode-assoc! edit shift key1hash key1 val1 added-leaf?)\n (.inode-assoc! edit shift key2hash key2 val2 added-leaf?)))))))\n\n(deftype NodeSeq [meta nodes i s ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (NodeSeq. new-meta nodes i s __hash)))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeq\n (-first [coll]\n (if (nil? s)\n (MapEntry. (aget nodes i) (aget nodes (inc i)) nil)\n (first s)))\n\n (-rest [coll]\n (let [ret (if (nil? s)\n (create-inode-seq nodes (+ i 2) nil)\n (create-inode-seq nodes i (next s)))]\n (if-not (nil? ret) ret ())))\n\n INext\n (-next [coll]\n (if (nil? s)\n (create-inode-seq nodes (+ i 2) nil)\n (create-inode-seq nodes i (next s))))\n\n ISeqable\n (-seq [this] this)\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable NodeSeq)\n\n(defn- create-inode-seq\n ([nodes]\n (create-inode-seq nodes 0 nil))\n ([nodes i s]\n (if (nil? s)\n (let [len (alength nodes)]\n (loop [j i]\n (if (< j len)\n (if-not (nil? (aget nodes j))\n (NodeSeq. nil nodes j nil nil)\n (if-let [node (aget nodes (inc j))]\n (if-let [node-seq (.inode-seq node)]\n (NodeSeq. nil nodes (+ j 2) node-seq nil)\n (recur (+ j 2)))\n (recur (+ j 2)))))))\n (NodeSeq. nil nodes i s nil))))\n\n(deftype ArrayNodeSeq [meta nodes i s ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (ArrayNodeSeq. new-meta nodes i s __hash)))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n ISequential\n ISeq\n (-first [coll] (first s))\n (-rest [coll]\n (let [ret (create-array-node-seq nodes i (next s))]\n (if-not (nil? ret) ret ())))\n\n INext\n (-next [coll]\n (create-array-node-seq nodes i (next s)))\n\n ISeqable\n (-seq [this] this)\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable ArrayNodeSeq)\n\n(defn- create-array-node-seq\n ([nodes] (create-array-node-seq nodes 0 nil))\n ([nodes i s]\n (if (nil? s)\n (let [len (alength nodes)]\n (loop [j i]\n (if (< j len)\n (if-let [nj (aget nodes j)]\n (if-let [ns (.inode-seq nj)]\n (ArrayNodeSeq. nil nodes (inc j) ns nil)\n (recur (inc j)))\n (recur (inc j))))))\n (ArrayNodeSeq. nil nodes i s nil))))\n\n(deftype HashMapIter [nil-val root-iter ^:mutable seen]\n Object\n (hasNext [_]\n (or (not ^boolean seen) ^boolean (.hasNext root-iter)))\n (next [_]\n (if-not ^boolean seen\n (do\n (set! seen true)\n (MapEntry. nil nil-val nil))\n (.next root-iter)))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(deftype PersistentHashMap [meta cnt root ^boolean has-nil? nil-val ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n\n ;; EXPERIMENTAL: subject to change\n (keys [coll]\n (es6-iterator (keys coll)))\n (entries [coll]\n (es6-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (vals coll)))\n (has [coll k]\n (contains? coll k))\n (get [coll k not-found]\n (-lookup coll k not-found))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentHashMap. meta cnt root has-nil? nil-val __hash))\n\n IIterable\n (-iterator [coll]\n (let [root-iter (if ^boolean root (-iterator root) (nil-iter))]\n (if has-nil?\n (HashMapIter. nil-val root-iter false)\n root-iter)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentHashMap. new-meta cnt root has-nil? nil-val __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (loop [ret coll es (seq entry)]\n (if (nil? es)\n ret\n (let [e (first es)]\n (if (vector? e)\n (recur (-assoc ret (-nth e 0) (-nth e 1))\n (next es))\n (throw (js\/Error. \"conj on a map takes map entries or seqables of map entries\"))))))))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentHashMap) meta))\n\n IEquiv\n (-equiv [coll other] (equiv-map coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll]\n (when (pos? cnt)\n (let [s (if-not (nil? root) (.inode-seq root))]\n (if has-nil?\n (cons (MapEntry. nil nil-val nil) s)\n s))))\n\n ICounted\n (-count [coll] cnt)\n\n ILookup\n (-lookup [coll k]\n (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (cond (nil? k) (if has-nil?\n nil-val\n not-found)\n (nil? root) not-found\n :else (.inode-lookup root 0 (hash k) k not-found)))\n\n IAssociative\n (-assoc [coll k v]\n (if (nil? k)\n (if (and has-nil? (identical? v nil-val))\n coll\n (PersistentHashMap. meta (if has-nil? cnt (inc cnt)) root true v nil))\n (let [added-leaf? (Box. false)\n new-root (-> (if (nil? root)\n (.-EMPTY BitmapIndexedNode)\n root)\n (.inode-assoc 0 (hash k) k v added-leaf?))]\n (if (identical? new-root root)\n coll\n (PersistentHashMap. meta (if ^boolean (.-val added-leaf?) (inc cnt) cnt) new-root has-nil? nil-val nil)))))\n\n (-contains-key? [coll k]\n (cond (nil? k) has-nil?\n (nil? root) false\n :else (not (identical? (.inode-lookup root 0 (hash k) k lookup-sentinel)\n lookup-sentinel))))\n\n IFind\n (-find [coll k]\n (cond\n (nil? k) (when has-nil? (MapEntry. nil nil-val nil))\n (nil? root) nil\n :else (.inode-find root 0 (hash k) k nil)))\n\n IMap\n (-dissoc [coll k]\n (cond (nil? k) (if has-nil?\n (PersistentHashMap. meta (dec cnt) root false nil nil)\n coll)\n (nil? root) coll\n :else\n (let [new-root (.inode-without root 0 (hash k) k)]\n (if (identical? new-root root)\n coll\n (PersistentHashMap. meta (dec cnt) new-root has-nil? nil-val nil)))))\n\n IKVReduce\n (-kv-reduce [coll f init]\n (let [init (if has-nil? (f init nil nil-val) init)]\n (cond\n (reduced? init) @init\n (not (nil? root)) (unreduced (.kv-reduce root f init))\n :else init)))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll]\n (TransientHashMap. (js-obj) root cnt has-nil? nil-val)))\n\n(set! (.-EMPTY PersistentHashMap) (PersistentHashMap. nil 0 nil false nil empty-unordered-hash))\n\n(set! (.-fromArray PersistentHashMap)\n (fn [arr ^boolean no-clone]\n (let [arr (if no-clone arr (aclone arr))\n len (alength arr)]\n (loop [i 0 ret (transient (.-EMPTY PersistentHashMap))]\n (if (< i len)\n (recur (+ i 2)\n (-assoc! ret (aget arr i) (aget arr (inc i))))\n (-persistent! ret))))))\n\n(set! (.-fromArrays PersistentHashMap)\n (fn [ks vs]\n (let [len (alength ks)]\n (loop [i 0 ^not-native out (transient (.-EMPTY PersistentHashMap))]\n (if (< i len)\n (if (<= (alength vs) i)\n (throw (js\/Error. (str \"No value supplied for key: \" (aget ks i))))\n (recur (inc i) (-assoc! out (aget ks i) (aget vs i))))\n (persistent! out))))))\n\n(set! (.-createWithCheck PersistentHashMap)\n (fn [arr]\n (let [len (alength arr)\n ret (transient (.-EMPTY PersistentHashMap))]\n (loop [i 0]\n (when (< i len)\n (-assoc! ret (aget arr i) (aget arr (inc i)))\n (if (not= (-count ret) (inc (\/ i 2)))\n (throw (js\/Error. (str \"Duplicate key: \" (aget arr i))))\n (recur (+ i 2)))))\n (-persistent! ret))))\n\n(es6-iterable PersistentHashMap)\n\n(deftype TransientHashMap [^:mutable ^boolean edit\n ^:mutable root\n ^:mutable count\n ^:mutable ^boolean has-nil?\n ^:mutable nil-val]\n Object\n (conj! [tcoll o]\n (if edit\n (cond\n (map-entry? o)\n (.assoc! tcoll (key o) (val o))\n\n (vector? o)\n (.assoc! tcoll (o 0) (o 1))\n\n :else\n (loop [es (seq o) tcoll tcoll]\n (if-let [e (first es)]\n (recur (next es)\n (.assoc! tcoll (key e) (val e)))\n tcoll)))\n (throw (js\/Error. \"conj! after persistent\"))))\n\n (assoc! [tcoll k v]\n (if edit\n (if (nil? k)\n (do (if (identical? nil-val v)\n nil\n (set! nil-val v))\n (if has-nil?\n nil\n (do (set! count (inc count))\n (set! has-nil? true)))\n tcoll)\n (let [added-leaf? (Box. false)\n node (-> (if (nil? root)\n (.-EMPTY BitmapIndexedNode)\n root)\n (.inode-assoc! edit 0 (hash k) k v added-leaf?))]\n (if (identical? node root)\n nil\n (set! root node))\n (if ^boolean (.-val added-leaf?)\n (set! count (inc count)))\n tcoll))\n (throw (js\/Error. \"assoc! after persistent!\"))))\n\n (without! [tcoll k]\n (if edit\n (if (nil? k)\n (if has-nil?\n (do (set! has-nil? false)\n (set! nil-val nil)\n (set! count (dec count))\n tcoll)\n tcoll)\n (if (nil? root)\n tcoll\n (let [removed-leaf? (Box. false)\n node (.inode-without! root edit 0 (hash k) k removed-leaf?)]\n (if (identical? node root)\n nil\n (set! root node))\n (if ^boolean (.-val removed-leaf?)\n (set! count (dec count)))\n tcoll)))\n (throw (js\/Error. \"dissoc! after persistent!\"))))\n\n (persistent! [tcoll]\n (if edit\n (do (set! edit nil)\n (PersistentHashMap. nil count root has-nil? nil-val nil))\n (throw (js\/Error. \"persistent! called twice\"))))\n\n ICounted\n (-count [coll]\n (if edit\n count\n (throw (js\/Error. \"count after persistent!\"))))\n\n ILookup\n (-lookup [tcoll k]\n (if (nil? k)\n (if has-nil?\n nil-val)\n (if (nil? root)\n nil\n (.inode-lookup root 0 (hash k) k))))\n\n (-lookup [tcoll k not-found]\n (if (nil? k)\n (if has-nil?\n nil-val\n not-found)\n (if (nil? root)\n not-found\n (.inode-lookup root 0 (hash k) k not-found))))\n\n ITransientCollection\n (-conj! [tcoll val] (.conj! tcoll val))\n\n (-persistent! [tcoll] (.persistent! tcoll))\n\n ITransientAssociative\n (-assoc! [tcoll key val] (.assoc! tcoll key val))\n\n ITransientMap\n (-dissoc! [tcoll key] (.without! tcoll key))\n\n IFn\n (-invoke [tcoll key]\n (-lookup tcoll key))\n (-invoke [tcoll key not-found]\n (-lookup tcoll key not-found)))\n\n;;; PersistentTreeMap\n\n(defn- tree-map-seq-push [node stack ^boolean ascending?]\n (loop [t node stack stack]\n (if-not (nil? t)\n (recur (if ascending? (.-left t) (.-right t))\n (conj stack t))\n stack)))\n\n(deftype PersistentTreeMapSeq [meta stack ^boolean ascending? cnt ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ISeqable\n (-seq [this] this)\n\n ISequential\n ISeq\n (-first [this] (peek stack))\n (-rest [this]\n (let [t (first stack)\n next-stack (tree-map-seq-push (if ascending? (.-right t) (.-left t))\n (next stack)\n ascending?)]\n (if-not (nil? next-stack)\n (PersistentTreeMapSeq. nil next-stack ascending? (dec cnt) nil)\n ())))\n INext\n (-next [this]\n (let [t (first stack)\n next-stack (tree-map-seq-push (if ascending? (.-right t) (.-left t))\n (next stack)\n ascending?)]\n (when-not (nil? next-stack)\n (PersistentTreeMapSeq. nil next-stack ascending? (dec cnt) nil))))\n\n ICounted\n (-count [coll]\n (if (neg? cnt)\n (inc (count (next coll)))\n cnt))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o] (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IMeta\n (-meta [coll] meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentTreeMapSeq. new-meta stack ascending? cnt __hash)))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable PersistentTreeMapSeq)\n\n(defn- create-tree-map-seq [tree ascending? cnt]\n (PersistentTreeMapSeq. nil (tree-map-seq-push tree nil ascending?) ascending? cnt nil))\n\n(declare RedNode BlackNode)\n\n(defn- balance-left [key val ins right]\n (if (instance? RedNode ins)\n (cond\n (instance? RedNode (.-left ins))\n (RedNode. (.-key ins) (.-val ins)\n (.blacken (.-left ins))\n (BlackNode. key val (.-right ins) right nil)\n nil)\n\n (instance? RedNode (.-right ins))\n (RedNode. (.. ins -right -key) (.. ins -right -val)\n (BlackNode. (.-key ins) (.-val ins)\n (.-left ins)\n (.. ins -right -left)\n nil)\n (BlackNode. key val\n (.. ins -right -right)\n right\n nil)\n nil)\n\n :else\n (BlackNode. key val ins right nil))\n (BlackNode. key val ins right nil)))\n\n(defn- balance-right [key val left ins]\n (if (instance? RedNode ins)\n (cond\n (instance? RedNode (.-right ins))\n (RedNode. (.-key ins) (.-val ins)\n (BlackNode. key val left (.-left ins) nil)\n (.blacken (.-right ins))\n nil)\n\n (instance? RedNode (.-left ins))\n (RedNode. (.. ins -left -key) (.. ins -left -val)\n (BlackNode. key val left (.. ins -left -left) nil)\n (BlackNode. (.-key ins) (.-val ins)\n (.. ins -left -right)\n (.-right ins)\n nil)\n nil)\n\n :else\n (BlackNode. key val left ins nil))\n (BlackNode. key val left ins nil)))\n\n(defn- balance-left-del [key val del right]\n (cond\n (instance? RedNode del)\n (RedNode. key val (.blacken del) right nil)\n\n (instance? BlackNode right)\n (balance-right key val del (.redden right))\n\n (and (instance? RedNode right) (instance? BlackNode (.-left right)))\n (RedNode. (.. right -left -key) (.. right -left -val)\n (BlackNode. key val del (.. right -left -left) nil)\n (balance-right (.-key right) (.-val right)\n (.. right -left -right)\n (.redden (.-right right)))\n nil)\n\n :else\n (throw (js\/Error. \"red-black tree invariant violation\"))))\n\n(defn- balance-right-del [key val left del]\n (cond\n (instance? RedNode del)\n (RedNode. key val left (.blacken del) nil)\n\n (instance? BlackNode left)\n (balance-left key val (.redden left) del)\n\n (and (instance? RedNode left) (instance? BlackNode (.-right left)))\n (RedNode. (.. left -right -key) (.. left -right -val)\n (balance-left (.-key left) (.-val left)\n (.redden (.-left left))\n (.. left -right -left))\n (BlackNode. key val (.. left -right -right) del nil)\n nil)\n\n :else\n (throw (js\/Error. \"red-black tree invariant violation\"))))\n\n(defn- tree-map-kv-reduce [node f init]\n (let [init (if-not (nil? (.-left node))\n (tree-map-kv-reduce (.-left node) f init)\n init)]\n (if (reduced? init)\n init\n (let [init (f init (.-key node) (.-val node))]\n (if (reduced? init)\n init\n (if-not (nil? (.-right node))\n (tree-map-kv-reduce (.-right node) f init)\n init))))))\n\n(deftype BlackNode [key val left right ^:mutable __hash]\n Object\n (add-left [node ins]\n (.balance-left ins node))\n\n (add-right [node ins]\n (.balance-right ins node))\n\n (remove-left [node del]\n (balance-left-del key val del right))\n\n (remove-right [node del]\n (balance-right-del key val left del))\n\n (blacken [node] node)\n\n (redden [node] (RedNode. key val left right nil))\n\n (balance-left [node parent]\n (BlackNode. (.-key parent) (.-val parent) node (.-right parent) nil))\n\n (balance-right [node parent]\n (BlackNode. (.-key parent) (.-val parent) (.-left parent) node nil))\n\n (replace [node key val left right]\n (BlackNode. key val left right nil))\n\n (kv-reduce [node f init]\n (tree-map-kv-reduce node f init))\n\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMapEntry\n (-key [node] key)\n (-val [node] val)\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IMeta\n (-meta [node] nil)\n\n IWithMeta\n (-with-meta [node meta]\n (-with-meta [key val] meta))\n\n IStack\n (-peek [node] val)\n\n (-pop [node] [key])\n\n ICollection\n (-conj [node o] [key val o])\n\n IEmptyableCollection\n (-empty [node] nil)\n\n ISequential\n ISeqable\n (-seq [node] (IndexedSeq. #js [key val] 0 nil))\n\n IReversible\n (-rseq [node] (IndexedSeq. #js [val key] 0 nil))\n\n ICounted\n (-count [node] 2)\n\n IIndexed\n (-nth [node n]\n (cond (== n 0) key\n (== n 1) val\n :else (throw (js\/Error. \"Index out of bounds\"))))\n\n (-nth [node n not-found]\n (cond (== n 0) key\n (== n 1) val\n :else not-found))\n\n ILookup\n (-lookup [node k] (-nth node k nil))\n (-lookup [node k not-found] (-nth node k not-found))\n\n IAssociative\n (-assoc [node k v]\n (assoc [key val] k v))\n (-contains-key? [node k]\n (or (== k 0) (== k 1)))\n\n IFind\n (-find [node k]\n (case k\n 0 (MapEntry. 0 key nil)\n 1 (MapEntry. 1 val nil)\n nil))\n\n IVector\n (-assoc-n [node n v]\n (-assoc-n [key val] n v))\n\n IReduce\n (-reduce [node f]\n (ci-reduce node f))\n\n (-reduce [node f start]\n (ci-reduce node f start))\n\n IFn\n (-invoke [node k]\n (-nth node k))\n\n (-invoke [node k not-found]\n (-nth node k not-found)))\n\n(es6-iterable BlackNode)\n\n(deftype RedNode [key val left right ^:mutable __hash]\n Object\n (add-left [node ins]\n (RedNode. key val ins right nil))\n\n (add-right [node ins]\n (RedNode. key val left ins nil))\n\n (remove-left [node del]\n (RedNode. key val del right nil))\n\n (remove-right [node del]\n (RedNode. key val left del nil))\n\n (blacken [node]\n (BlackNode. key val left right nil))\n\n (redden [node]\n (throw (js\/Error. \"red-black tree invariant violation\")))\n\n (balance-left [node parent]\n (cond\n (instance? RedNode left)\n (RedNode. key val\n (.blacken left)\n (BlackNode. (.-key parent) (.-val parent) right (.-right parent) nil)\n nil)\n\n (instance? RedNode right)\n (RedNode. (.-key right) (.-val right)\n (BlackNode. key val left (.-left right) nil)\n (BlackNode. (.-key parent) (.-val parent)\n (.-right right)\n (.-right parent)\n nil)\n nil)\n\n :else\n (BlackNode. (.-key parent) (.-val parent) node (.-right parent) nil)))\n\n (balance-right [node parent]\n (cond\n (instance? RedNode right)\n (RedNode. key val\n (BlackNode. (.-key parent) (.-val parent)\n (.-left parent)\n left\n nil)\n (.blacken right)\n nil)\n\n (instance? RedNode left)\n (RedNode. (.-key left) (.-val left)\n (BlackNode. (.-key parent) (.-val parent)\n (.-left parent)\n (.-left left)\n nil)\n (BlackNode. key val (.-right left) right nil)\n nil)\n\n :else\n (BlackNode. (.-key parent) (.-val parent) (.-left parent) node nil)))\n\n (replace [node key val left right]\n (RedNode. key val left right nil))\n\n (kv-reduce [node f init]\n (tree-map-kv-reduce node f init))\n\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMapEntry\n (-key [node] key)\n (-val [node] val)\n\n IHash\n (-hash [coll] (caching-hash coll hash-ordered-coll __hash))\n\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n IMeta\n (-meta [node] nil)\n\n IWithMeta\n (-with-meta [node meta]\n (-with-meta [key val] meta))\n\n IStack\n (-peek [node] val)\n\n (-pop [node] [key])\n\n ICollection\n (-conj [node o] [key val o])\n\n IEmptyableCollection\n (-empty [node] nil)\n\n ISequential\n ISeqable\n (-seq [node] (IndexedSeq. #js [key val] 0 nil))\n\n IReversible\n (-rseq [node] (IndexedSeq. #js [val key] 0 nil))\n\n ICounted\n (-count [node] 2)\n\n IIndexed\n (-nth [node n]\n (cond (== n 0) key\n (== n 1) val\n :else (throw (js\/Error. \"Index out of bounds\"))))\n\n (-nth [node n not-found]\n (cond (== n 0) key\n (== n 1) val\n :else not-found))\n\n ILookup\n (-lookup [node k] (-nth node k nil))\n (-lookup [node k not-found] (-nth node k not-found))\n\n IAssociative\n (-assoc [node k v]\n (assoc [key val] k v))\n (-contains-key? [node k]\n (or (== k 0) (== k 1)))\n\n IFind\n (-find [node k]\n (case k\n 0 (MapEntry. 0 key nil)\n 1 (MapEntry. 1 val nil)\n nil))\n\n IVector\n (-assoc-n [node n v]\n (-assoc-n [key val] n v))\n\n IReduce\n (-reduce [node f]\n (ci-reduce node f))\n\n (-reduce [node f start]\n (ci-reduce node f start))\n\n IFn\n (-invoke [node k]\n (-nth node k))\n\n (-invoke [node k not-found]\n (-nth node k not-found)))\n\n(es6-iterable RedNode)\n\n(defn- tree-map-add [comp tree k v found]\n (if (nil? tree)\n (RedNode. k v nil nil nil)\n (let [c (comp k (.-key tree))]\n (cond\n (zero? c)\n (do (aset found 0 tree)\n nil)\n\n (neg? c)\n (let [ins (tree-map-add comp (.-left tree) k v found)]\n (if-not (nil? ins)\n (.add-left tree ins)))\n\n :else\n (let [ins (tree-map-add comp (.-right tree) k v found)]\n (if-not (nil? ins)\n (.add-right tree ins)))))))\n\n(defn- tree-map-append [left right]\n (cond\n (nil? left)\n right\n\n (nil? right)\n left\n\n (instance? RedNode left)\n (if (instance? RedNode right)\n (let [app (tree-map-append (.-right left) (.-left right))]\n (if (instance? RedNode app)\n (RedNode. (.-key app) (.-val app)\n (RedNode. (.-key left) (.-val left)\n (.-left left)\n (.-left app)\n nil)\n (RedNode. (.-key right) (.-val right)\n (.-right app)\n (.-right right)\n nil)\n nil)\n (RedNode. (.-key left) (.-val left)\n (.-left left)\n (RedNode. (.-key right) (.-val right) app (.-right right) nil)\n nil)))\n (RedNode. (.-key left) (.-val left)\n (.-left left)\n (tree-map-append (.-right left) right)\n nil))\n\n (instance? RedNode right)\n (RedNode. (.-key right) (.-val right)\n (tree-map-append left (.-left right))\n (.-right right)\n nil)\n\n :else\n (let [app (tree-map-append (.-right left) (.-left right))]\n (if (instance? RedNode app)\n (RedNode. (.-key app) (.-val app)\n (BlackNode. (.-key left) (.-val left)\n (.-left left)\n (.-left app)\n nil)\n (BlackNode. (.-key right) (.-val right)\n (.-right app)\n (.-right right)\n nil)\n nil)\n (balance-left-del (.-key left) (.-val left)\n (.-left left)\n (BlackNode. (.-key right) (.-val right)\n app\n (.-right right)\n nil))))))\n\n(defn- tree-map-remove [comp tree k found]\n (if-not (nil? tree)\n (let [c (comp k (.-key tree))]\n (cond\n (zero? c)\n (do (aset found 0 tree)\n (tree-map-append (.-left tree) (.-right tree)))\n\n (neg? c)\n (let [del (tree-map-remove comp (.-left tree) k found)]\n (if (or (not (nil? del)) (not (nil? (aget found 0))))\n (if (instance? BlackNode (.-left tree))\n (balance-left-del (.-key tree) (.-val tree) del (.-right tree))\n (RedNode. (.-key tree) (.-val tree) del (.-right tree) nil))))\n\n :else\n (let [del (tree-map-remove comp (.-right tree) k found)]\n (if (or (not (nil? del)) (not (nil? (aget found 0))))\n (if (instance? BlackNode (.-right tree))\n (balance-right-del (.-key tree) (.-val tree) (.-left tree) del)\n (RedNode. (.-key tree) (.-val tree) (.-left tree) del nil))))))))\n\n(defn- tree-map-replace [comp tree k v]\n (let [tk (.-key tree)\n c (comp k tk)]\n (cond (zero? c) (.replace tree tk v (.-left tree) (.-right tree))\n (neg? c) (.replace tree tk (.-val tree) (tree-map-replace comp (.-left tree) k v) (.-right tree))\n :else (.replace tree tk (.-val tree) (.-left tree) (tree-map-replace comp (.-right tree) k v)))))\n\n(declare key)\n\n(deftype PersistentTreeMap [comp tree cnt meta ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n\n ;; EXPERIMENTAL: subject to change\n (keys [coll]\n (es6-iterator (keys coll)))\n (entries [coll]\n (es6-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (vals coll)))\n (has [coll k]\n (contains? coll k))\n (get [coll k not-found]\n (-lookup coll k not-found))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n (entry-at [coll k]\n (loop [t tree]\n (if-not (nil? t)\n (let [c (comp k (.-key t))]\n (cond (zero? c) t\n (neg? c) (recur (.-left t))\n :else (recur (.-right t)))))))\n\n ICloneable\n (-clone [_] (PersistentTreeMap. comp tree cnt meta __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentTreeMap. comp tree cnt new-meta __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll entry]\n (if (vector? entry)\n (-assoc coll (-nth entry 0) (-nth entry 1))\n (loop [ret coll es (seq entry)]\n (if (nil? es)\n ret\n (let [e (first es)]\n (if (vector? e)\n (recur (-assoc ret (-nth e 0) (-nth e 1))\n (next es))\n (throw (js\/Error. \"conj on a map takes map entries or seqables of map entries\"))))))))\n\n IEmptyableCollection\n (-empty [coll] (PersistentTreeMap. comp nil 0 meta 0))\n\n IEquiv\n (-equiv [coll other] (equiv-map coll other))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ICounted\n (-count [coll] cnt)\n\n IKVReduce\n (-kv-reduce [coll f init]\n (if-not (nil? tree)\n (unreduced (tree-map-kv-reduce tree f init))\n init))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n ISeqable\n (-seq [coll]\n (if (pos? cnt)\n (create-tree-map-seq tree true cnt)))\n\n IReversible\n (-rseq [coll]\n (if (pos? cnt)\n (create-tree-map-seq tree false cnt)))\n\n ILookup\n (-lookup [coll k]\n (-lookup coll k nil))\n\n (-lookup [coll k not-found]\n (let [n (.entry-at coll k)]\n (if-not (nil? n)\n (.-val n)\n not-found)))\n\n IAssociative\n (-assoc [coll k v]\n (let [found (array nil)\n t (tree-map-add comp tree k v found)]\n (if (nil? t)\n (let [found-node (nth found 0)]\n (if (= v (.-val found-node))\n coll\n (PersistentTreeMap. comp (tree-map-replace comp tree k v) cnt meta nil)))\n (PersistentTreeMap. comp (.blacken t) (inc cnt) meta nil))))\n\n (-contains-key? [coll k]\n (not (nil? (.entry-at coll k))))\n\n IFind\n (-find [coll k]\n (.entry-at coll k))\n\n IMap\n (-dissoc [coll k]\n (let [found (array nil)\n t (tree-map-remove comp tree k found)]\n (if (nil? t)\n (if (nil? (nth found 0))\n coll\n (PersistentTreeMap. comp nil 0 meta nil))\n (PersistentTreeMap. comp (.blacken t) (dec cnt) meta nil))))\n\n ISorted\n (-sorted-seq [coll ascending?]\n (if (pos? cnt)\n (create-tree-map-seq tree ascending? cnt)))\n\n (-sorted-seq-from [coll k ascending?]\n (if (pos? cnt)\n (loop [stack nil t tree]\n (if-not (nil? t)\n (let [c (comp k (.-key t))]\n (cond\n (zero? c) (PersistentTreeMapSeq. nil (conj stack t) ascending? -1 nil)\n ascending? (if (neg? c)\n (recur (conj stack t) (.-left t))\n (recur stack (.-right t)))\n :else (if (pos? c)\n (recur (conj stack t) (.-right t))\n (recur stack (.-left t)))))\n (when-not (nil? stack)\n (PersistentTreeMapSeq. nil stack ascending? -1 nil))))))\n\n (-entry-key [coll entry] (key entry))\n\n (-comparator [coll] comp))\n\n(set! (.-EMPTY PersistentTreeMap) (PersistentTreeMap. compare nil 0 nil empty-unordered-hash))\n\n(es6-iterable PersistentTreeMap)\n\n(defn hash-map\n \"keyval => key val\n Returns a new hash map with supplied mappings.\"\n [& keyvals]\n (loop [in (seq keyvals), out (transient (.-EMPTY PersistentHashMap))]\n (if in\n (let [in' (next in)]\n (if (nil? in')\n (throw (js\/Error. (str \"No value supplied for key: \" (first in))))\n (recur (next in') (assoc! out (first in) (first in')) )))\n (persistent! out))))\n\n(defn array-map\n \"keyval => key val\n Returns a new array map with supplied mappings.\"\n [& keyvals]\n (let [arr (if (and (instance? IndexedSeq keyvals) (zero? (.-i keyvals)))\n (.-arr keyvals)\n (into-array keyvals))]\n (if (odd? (alength arr))\n (throw (js\/Error. (str \"No value supplied for key: \" (last arr))))\n (.createAsIfByAssoc PersistentArrayMap arr))))\n\n(defn seq-to-map-for-destructuring\n \"Builds a map from a seq as described in\n https:\/\/clojure.org\/reference\/special_forms#keyword-arguments\"\n [s]\n (if (next s)\n (.createAsIfByAssoc PersistentArrayMap (to-array s))\n (if (seq s) (first s) (.-EMPTY PersistentArrayMap))))\n\n(defn obj-map\n \"keyval => key val\n Returns a new object map with supplied mappings.\"\n [& keyvals]\n (let [ks (array)\n obj (js-obj)]\n (loop [kvs (seq keyvals)]\n (if kvs\n (do (.push ks (first kvs))\n (gobject\/set obj (first kvs) (second kvs))\n (recur (nnext kvs)))\n (.fromObject ObjMap ks obj)))))\n\n(defn sorted-map\n \"keyval => key val\n Returns a new sorted map with supplied mappings.\"\n ([& keyvals]\n (loop [in (seq keyvals) out (.-EMPTY PersistentTreeMap)]\n (if in\n (recur (nnext in) (assoc out (first in) (second in)))\n out))))\n\n(defn sorted-map-by\n \"keyval => key val\n Returns a new sorted map with supplied mappings, using the supplied comparator.\"\n ([comparator & keyvals]\n (loop [in (seq keyvals)\n out (PersistentTreeMap. (fn->comparator comparator) nil 0 nil 0)]\n (if in\n (recur (nnext in) (assoc out (first in) (second in)))\n out))))\n\n(deftype KeySeq [^not-native mseq _meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] _meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta _meta)\n coll\n (KeySeq. mseq new-meta)))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n ISeq\n (-first [coll]\n (let [^not-native me (-first mseq)]\n (-key me)))\n\n (-rest [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (if-not (nil? nseq)\n (KeySeq. nseq nil)\n ())))\n\n INext\n (-next [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (when-not (nil? nseq)\n (KeySeq. nseq nil))))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable KeySeq)\n\n(defn keys\n \"Returns a sequence of the map's keys, in the same order as (seq map).\"\n [map]\n (when-let [mseq (seq map)]\n (KeySeq. mseq nil)))\n\n(defn key\n \"Returns the key of the map entry.\"\n [map-entry]\n (-key map-entry))\n\n(deftype ValSeq [^not-native mseq _meta]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n IMeta\n (-meta [coll] _meta)\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta _meta)\n coll\n (ValSeq. mseq new-meta)))\n\n ISeqable\n (-seq [coll] coll)\n\n ISequential\n IEquiv\n (-equiv [coll other] (equiv-sequential coll other))\n\n ICollection\n (-conj [coll o]\n (cons o coll))\n\n IEmptyableCollection\n (-empty [coll] (.-EMPTY List))\n\n IHash\n (-hash [coll] (hash-ordered-coll coll))\n\n ISeq\n (-first [coll]\n (let [^not-native me (-first mseq)]\n (-val me)))\n\n (-rest [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (if-not (nil? nseq)\n (ValSeq. nseq nil)\n ())))\n\n INext\n (-next [coll]\n (let [nseq (if (satisfies? INext mseq)\n (-next mseq)\n (next mseq))]\n (when-not (nil? nseq)\n (ValSeq. nseq nil))))\n\n IReduce\n (-reduce [coll f] (seq-reduce f coll))\n (-reduce [coll f start] (seq-reduce f start coll)))\n\n(es6-iterable ValSeq)\n\n(defn vals\n \"Returns a sequence of the map's values, in the same order as (seq map).\"\n [map]\n (when-let [mseq (seq map)]\n (ValSeq. mseq nil)))\n\n(defn val\n \"Returns the value in the map entry.\"\n [map-entry]\n (-val map-entry))\n\n(defn merge\n \"Returns a map that consists of the rest of the maps conj-ed onto\n the first. If a key occurs in more than one map, the mapping from\n the latter (left-to-right) will be the mapping in the result.\"\n [& maps]\n (when (some identity maps)\n (reduce #(conj (or %1 {}) %2) maps)))\n\n(defn merge-with\n \"Returns a map that consists of the rest of the maps conj-ed onto\n the first. If a key occurs in more than one map, the mapping(s)\n from the latter (left-to-right) will be combined with the mapping in\n the result by calling (f val-in-result val-in-latter).\"\n [f & maps]\n (when (some identity maps)\n (let [merge-entry (fn [m e]\n (let [k (key e) v (val e)]\n (if (contains? m k)\n (assoc m k (f (get m k) v))\n (assoc m k v))))\n merge2 (fn [m1 m2]\n (reduce merge-entry (or m1 {}) (seq m2)))]\n (reduce merge2 maps))))\n\n(defn select-keys\n \"Returns a map containing only those entries in map whose key is in keys\"\n [map keyseq]\n (loop [ret {} keys (seq keyseq)]\n (if keys\n (let [key (first keys)\n entry (get map key ::not-found)]\n (recur\n (if (not= entry ::not-found)\n (assoc ret key entry)\n ret)\n (next keys)))\n (-with-meta ret (meta map)))))\n\n;;; PersistentHashSet\n\n(declare TransientHashSet)\n\n(deftype HashSetIter [iter]\n Object\n (hasNext [_]\n (.hasNext iter))\n (next [_]\n (if ^boolean (.hasNext iter)\n (.-key (.next iter))\n (throw (js\/Error. \"No such element\"))))\n (remove [_] (js\/Error. \"Unsupported operation\")))\n\n(deftype PersistentHashSet [meta hash-map ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n\n ;; EXPERIMENTAL: subject to change\n (keys [coll]\n (es6-iterator (seq coll)))\n (entries [coll]\n (es6-set-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (seq coll)))\n (has [coll k]\n (contains? coll k))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentHashSet. meta hash-map __hash))\n\n IIterable\n (-iterator [coll]\n (HashSetIter. (-iterator hash-map)))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentHashSet. new-meta hash-map __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll o]\n (PersistentHashSet. meta (assoc hash-map o nil) nil))\n\n IEmptyableCollection\n (-empty [coll] (-with-meta (.-EMPTY PersistentHashSet) meta))\n\n IEquiv\n (-equiv [coll other]\n (and\n (set? other)\n (== (count coll) (count other))\n ^boolean\n (try\n (reduce-kv\n #(or (contains? other %2) (reduced false))\n true hash-map)\n (catch js\/Error ex\n false))))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll] (keys hash-map))\n\n ICounted\n (-count [coll] (-count hash-map))\n\n ILookup\n (-lookup [coll v]\n (-lookup coll v nil))\n (-lookup [coll v not-found]\n (if-let [entry (-find hash-map v)]\n (key entry)\n not-found))\n\n ISet\n (-disjoin [coll v]\n (PersistentHashSet. meta (-dissoc hash-map v) nil))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n (-invoke [coll k not-found]\n (-lookup coll k not-found))\n\n IEditableCollection\n (-as-transient [coll] (TransientHashSet. (-as-transient hash-map))))\n\n(set! (.-EMPTY PersistentHashSet)\n (PersistentHashSet. nil (.-EMPTY PersistentArrayMap) empty-unordered-hash))\n\n(set! (.-fromArray PersistentHashSet)\n (fn [items ^boolean no-clone]\n (let [len (alength items)]\n (if (<= len (.-HASHMAP-THRESHOLD PersistentArrayMap))\n (let [arr (if no-clone items (aclone items))]\n (loop [i 0\n out (transient (.-EMPTY PersistentArrayMap))]\n (if (< i len)\n (recur (inc i) (-assoc! out (aget items i) nil))\n (PersistentHashSet. nil (-persistent! out) nil))))\n (loop [i 0\n out (transient (.-EMPTY PersistentHashSet))]\n (if (< i len)\n (recur (inc i) (-conj! out (aget items i)))\n (-persistent! out)))))))\n\n(set! (.-createWithCheck PersistentHashSet)\n (fn [items]\n (let [len (alength items)\n t (-as-transient (.-EMPTY PersistentHashSet))]\n (dotimes [i len]\n (-conj! t (aget items i))\n (when-not (= (count t) (inc i))\n (throw (js\/Error. (str \"Duplicate key: \" (aget items i))))))\n (-persistent! t))))\n\n(set! (.-createAsIfByAssoc PersistentHashSet)\n (fn [items]\n (let [len (alength items)\n t (-as-transient (.-EMPTY PersistentHashSet))]\n (dotimes [i len] (-conj! t (aget items i)))\n (-persistent! t))))\n\n(es6-iterable PersistentHashSet)\n\n(deftype TransientHashSet [^:mutable transient-map]\n ITransientCollection\n (-conj! [tcoll o]\n (set! transient-map (assoc! transient-map o nil))\n tcoll)\n\n (-persistent! [tcoll]\n (PersistentHashSet. nil (persistent! transient-map) nil))\n\n ITransientSet\n (-disjoin! [tcoll v]\n (set! transient-map (dissoc! transient-map v))\n tcoll)\n\n ICounted\n (-count [tcoll] (count transient-map))\n\n ILookup\n (-lookup [tcoll v]\n (-lookup tcoll v nil))\n\n (-lookup [tcoll v not-found]\n (if (identical? (-lookup transient-map v lookup-sentinel) lookup-sentinel)\n not-found\n v))\n\n IFn\n (-invoke [tcoll k]\n (if (identical? (-lookup transient-map k lookup-sentinel) lookup-sentinel)\n nil\n k))\n\n (-invoke [tcoll k not-found]\n (if (identical? (-lookup transient-map k lookup-sentinel) lookup-sentinel)\n not-found\n k)))\n\n(deftype PersistentTreeSet [meta tree-map ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n\n ;; EXPERIMENTAL: subject to change\n (keys [coll]\n (es6-iterator (seq coll)))\n (entries [coll]\n (es6-set-entries-iterator (seq coll)))\n (values [coll]\n (es6-iterator (seq coll)))\n (has [coll k]\n (contains? coll k))\n (forEach [coll f]\n (doseq [[k v] coll]\n (f v k)))\n\n ICloneable\n (-clone [_] (PersistentTreeSet. meta tree-map __hash))\n\n IWithMeta\n (-with-meta [coll new-meta]\n (if (identical? new-meta meta)\n coll\n (PersistentTreeSet. new-meta tree-map __hash)))\n\n IMeta\n (-meta [coll] meta)\n\n ICollection\n (-conj [coll o]\n (PersistentTreeSet. meta (assoc tree-map o nil) nil))\n\n IEmptyableCollection\n (-empty [coll] (PersistentTreeSet. meta (-empty tree-map) 0))\n\n IEquiv\n (-equiv [coll other]\n (and\n (set? other)\n (== (count coll) (count other))\n ^boolean\n (try\n (reduce-kv\n #(or (contains? other %2) (reduced false))\n true tree-map)\n (catch js\/Error ex\n false))))\n\n IHash\n (-hash [coll] (caching-hash coll hash-unordered-coll __hash))\n\n ISeqable\n (-seq [coll] (keys tree-map))\n\n ISorted\n (-sorted-seq [coll ascending?]\n (map key (-sorted-seq tree-map ascending?)))\n\n (-sorted-seq-from [coll k ascending?]\n (map key (-sorted-seq-from tree-map k ascending?)))\n\n (-entry-key [coll entry] entry)\n\n (-comparator [coll] (-comparator tree-map))\n\n IReversible\n (-rseq [coll]\n (if (pos? (count tree-map))\n (map key (rseq tree-map))))\n\n ICounted\n (-count [coll] (count tree-map))\n\n ILookup\n (-lookup [coll v]\n (-lookup coll v nil))\n (-lookup [coll v not-found]\n (let [n (.entry-at tree-map v)]\n (if-not (nil? n)\n (.-key n)\n not-found)))\n\n ISet\n (-disjoin [coll v]\n (PersistentTreeSet. meta (dissoc tree-map v) nil))\n\n IFn\n (-invoke [coll k]\n (-lookup coll k))\n (-invoke [coll k not-found]\n (-lookup coll k not-found)))\n\n(set! (.-EMPTY PersistentTreeSet)\n (PersistentTreeSet. nil (.-EMPTY PersistentTreeMap) empty-unordered-hash))\n\n(es6-iterable PersistentTreeSet)\n\n(defn set-from-indexed-seq [iseq]\n (let [arr (.-arr iseq)\n ret (areduce arr i ^not-native res (-as-transient #{})\n (-conj! res (aget arr i)))]\n (-persistent! ^not-native ret)))\n\n(defn set\n \"Returns a set of the distinct elements of coll.\"\n [coll]\n (if (set? coll)\n (with-meta coll nil)\n (let [in (seq coll)]\n (cond\n (nil? in) #{}\n\n (and (instance? IndexedSeq in) (zero? (.-i in)))\n (.createAsIfByAssoc PersistentHashSet (.-arr in))\n\n :else\n (loop [^not-native in in\n ^not-native out (-as-transient #{})]\n (if-not (nil? in)\n (recur (next in) (-conj! out (-first in)))\n (persistent! out)))))))\n\n(defn hash-set\n \"Returns a new hash set with supplied keys. Any equal keys are\n handled as if by repeated uses of conj.\"\n ([] #{})\n ([& keys] (set keys)))\n\n(defn sorted-set\n \"Returns a new sorted set with supplied keys.\"\n ([& keys]\n (reduce -conj (.-EMPTY PersistentTreeSet) keys)))\n\n(defn sorted-set-by\n \"Returns a new sorted set with supplied keys, using the supplied comparator.\"\n ([comparator & keys]\n (reduce -conj\n (PersistentTreeSet. nil (sorted-map-by comparator) 0)\n keys)))\n\n(defn replace\n \"Given a map of replacement pairs and a vector\/collection, returns a\n vector\/seq with any elements = a key in smap replaced with the\n corresponding val in smap. Returns a transducer when no collection\n is provided.\"\n ([smap]\n (map #(if-let [e (find smap %)] (val e) %)))\n ([smap coll]\n (if (vector? coll)\n (let [n (count coll)]\n (reduce (fn [v i]\n (if-let [e (find smap (nth v i))]\n (assoc v i (second e))\n v))\n coll (take n (iterate inc 0))))\n (map #(if-let [e (find smap %)] (second e) %) coll))))\n\n(defn distinct\n \"Returns a lazy sequence of the elements of coll with duplicates removed.\n Returns a stateful transducer when no collection is provided.\"\n ([]\n (fn [rf]\n (let [seen (volatile! #{})]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if (contains? @seen input)\n result\n (do (vswap! seen conj input)\n (rf result input))))))))\n ([coll]\n (let [step (fn step [xs seen]\n (lazy-seq\n ((fn [[f :as xs] seen]\n (when-let [s (seq xs)]\n (if (contains? seen f)\n (recur (rest s) seen)\n (cons f (step (rest s) (conj seen f))))))\n xs seen)))]\n (step coll #{}))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n(defn butlast\n \"Return a seq of all but the last item in coll, in linear time\"\n [s]\n (loop [ret [] s s]\n (if (next s)\n (recur (conj ret (first s)) (next s))\n (seq ret))))\n\n(defn name\n \"Returns the name String of a string, symbol or keyword.\"\n [x]\n (if (implements? INamed x)\n (-name x)\n (if (string? x)\n x\n (throw (js\/Error. (str \"Doesn't support name: \" x))))))\n\n(defn zipmap\n \"Returns a map with the keys mapped to the corresponding vals.\"\n [keys vals]\n (loop [map (transient {})\n ks (seq keys)\n vs (seq vals)]\n (if (and ks vs)\n (recur (assoc! map (first ks) (first vs))\n (next ks)\n (next vs))\n (persistent! map))))\n\n(defn max-key\n \"Returns the x for which (k x), a number, is greatest.\n\n If there are multiple such xs, the last one is returned.\"\n ([k x] x)\n ([k x y] (if (> (k x) (k y)) x y))\n ([k x y & more]\n (reduce #(max-key k %1 %2) (max-key k x y) more)))\n\n(defn min-key\n \"Returns the x for which (k x), a number, is least.\n\n If there are multiple such xs, the last one is returned.\"\n ([k x] x)\n ([k x y] (if (< (k x) (k y)) x y))\n ([k x y & more]\n (reduce #(min-key k %1 %2) (min-key k x y) more)))\n\n(deftype ArrayList [^:mutable arr]\n Object\n (add [_ x] (.push arr x))\n (size [_] (alength arr))\n (clear [_] (set! arr (array)))\n (isEmpty [_] (zero? (alength arr)))\n (toArray [_] arr))\n\n(defn array-list []\n (ArrayList. (array)))\n\n(defn partition-all\n \"Returns a lazy sequence of lists like partition, but may include\n partitions with fewer than n items at the end. Returns a stateful\n transducer when no collection is provided.\"\n ([n]\n (fn [rf]\n (let [a (array-list)]\n (fn\n ([] (rf))\n ([result]\n (let [result (if (.isEmpty a)\n result\n (let [v (vec (.toArray a))]\n ;;clear first!\n (.clear a)\n (unreduced (rf result v))))]\n (rf result)))\n ([result input]\n (.add a input)\n (if (== n (.size a))\n (let [v (vec (.toArray a))]\n (.clear a)\n (rf result v))\n result))))))\n ([n coll]\n (partition-all n n coll))\n ([n step coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (cons (take n s) (partition-all n step (drop step s)))))))\n\n(defn take-while\n \"Returns a lazy sequence of successive items from coll while\n (pred item) returns logical true. pred must be free of side-effects.\n Returns a transducer when no collection is provided.\"\n ([pred]\n (fn [rf]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (if (pred input)\n (rf result input)\n (reduced result))))))\n ([pred coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (when (pred (first s))\n (cons (first s) (take-while pred (rest s))))))))\n\n(defn mk-bound-fn\n [sc test key]\n (fn [e]\n (let [comp (-comparator sc)]\n (test (comp (-entry-key sc e) key) 0))))\n\n(defn subseq\n \"sc must be a sorted collection, test(s) one of <, <=, > or\n >=. Returns a seq of those entries with keys ek for\n which (test (.. sc comparator (compare ek key)) 0) is true\"\n ([sc test key]\n (let [include (mk-bound-fn sc test key)]\n (if (#{> >=} test)\n (when-let [[e :as s] (-sorted-seq-from sc key true)]\n (if (include e) s (next s)))\n (take-while include (-sorted-seq sc true)))))\n ([sc start-test start-key end-test end-key]\n (when-let [[e :as s] (-sorted-seq-from sc start-key true)]\n (take-while (mk-bound-fn sc end-test end-key)\n (if ((mk-bound-fn sc start-test start-key) e) s (next s))))))\n\n(defn rsubseq\n \"sc must be a sorted collection, test(s) one of <, <=, > or\n >=. Returns a reverse seq of those entries with keys ek for\n which (test (.. sc comparator (compare ek key)) 0) is true\"\n ([sc test key]\n (let [include (mk-bound-fn sc test key)]\n (if (#{< <=} test)\n (when-let [[e :as s] (-sorted-seq-from sc key false)]\n (if (include e) s (next s)))\n (take-while include (-sorted-seq sc false)))))\n ([sc start-test start-key end-test end-key]\n (when-let [[e :as s] (-sorted-seq-from sc end-key false)]\n (take-while (mk-bound-fn sc start-test start-key)\n (if ((mk-bound-fn sc end-test end-key) e) s (next s))))))\n\n(deftype IntegerRangeChunk [start step count]\n ICounted\n (-count [coll] count)\n\n ISeq\n (-first [coll] start)\n\n IIndexed\n (-nth [coll i]\n (+ start (* i step)))\n (-nth [coll i not-found]\n (if (and (>= i 0) (< i count))\n (+ start (* i step))\n not-found))\n\n IChunk\n (-drop-first [coll]\n (if (<= count 1)\n (throw (js\/Error. \"-drop-first of empty chunk\"))\n (IntegerRangeChunk. (+ start step) step (dec count)))))\n\n(deftype RangeIterator [^:mutable i end step]\n Object\n (hasNext [_]\n (if (pos? step)\n (< i end)\n (> i end)))\n (next [_]\n (let [ret i]\n (set! i (+ i step))\n ret)))\n\n(deftype IntegerRange [meta start end step ^:mutable chunk ^:mutable chunk-next ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n (forceChunk [coll]\n (when (nil? chunk)\n (let [count (-count coll)]\n (if (> count 32)\n (do\n (set! chunk-next (IntegerRange. nil (+ start (* step 32)) end step nil nil nil))\n (set! chunk (IntegerRangeChunk. start step 32)))\n (set! chunk (IntegerRangeChunk. start step count))))))\n\n ICloneable\n (-clone [_] (IntegerRange. meta start end step chunk chunk-next __hash))\n\n IWithMeta\n (-with-meta [rng new-meta]\n (if (identical? new-meta meta)\n rng\n (IntegerRange. new-meta start end step chunk chunk-next __hash)))\n\n IMeta\n (-meta [rng] meta)\n\n ISeqable\n (-seq [rng] rng)\n\n ISeq\n (-first [rng] start)\n (-rest [rng]\n (let [s (-next rng)]\n (if (nil? s)\n ()\n s)))\n\n IIterable\n (-iterator [_]\n (RangeIterator. start end step))\n\n INext\n (-next [rng]\n (if (pos? step)\n (when (< (+ start step) end)\n (IntegerRange. nil (+ start step) end step nil nil nil))\n (when (> (+ start step) end)\n (IntegerRange. nil (+ start step) end step nil nil nil))))\n\n IChunkedSeq\n (-chunked-first [rng]\n (.forceChunk rng)\n chunk)\n (-chunked-rest [rng]\n (.forceChunk rng)\n (if (nil? chunk-next)\n ()\n chunk-next))\n\n IChunkedNext\n (-chunked-next [rng]\n (seq (-chunked-rest rng)))\n\n ICollection\n (-conj [rng o] (cons o rng))\n\n IEmptyableCollection\n (-empty [rng] (.-EMPTY List))\n\n ISequential\n IEquiv\n (-equiv [rng other] (equiv-sequential rng other))\n\n IHash\n (-hash [rng] (caching-hash rng hash-ordered-coll __hash))\n\n ICounted\n (-count [rng]\n (Math\/ceil (\/ (- end start) step)))\n\n IIndexed\n (-nth [rng n]\n (if (and (<= 0 n) (< n (-count rng)))\n (+ start (* n step))\n (if (and (<= 0 n) (> start end) (zero? step))\n start\n (throw (js\/Error. \"Index out of bounds\")))))\n (-nth [rng n not-found]\n (if (and (<= 0 n) (< n (-count rng)))\n (+ start (* n step))\n (if (and (<= 0 n) (> start end) (zero? step))\n start\n not-found)))\n\n IReduce\n (-reduce [rng f] (ci-reduce rng f))\n (-reduce [rng f init]\n (loop [i start ret init]\n (if (if (pos? step) (< i end) (> i end))\n (let [ret (f ret i)]\n (if (reduced? ret)\n @ret\n (recur (+ i step) ret)))\n ret))))\n\n(es6-iterable IntegerRange)\n\n(deftype Range [meta start end step ^:mutable chunk ^:mutable chunk-next ^:mutable __hash]\n Object\n (toString [coll]\n (pr-str* coll))\n (equiv [this other]\n (-equiv this other))\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n (forceChunk [coll]\n (when (nil? chunk)\n (let [arr (make-array 32)\n val (loop [n 0 val start]\n (if (< n 32)\n (do\n (aset arr n val)\n (let [n (inc n)\n val (+ val step)]\n (if (if (pos? step) (< val end) (> val end))\n (recur n val)\n (set! chunk (array-chunk arr 0 n)))))\n val))]\n (when (nil? chunk)\n (set! chunk (array-chunk arr 0 32))\n (when (if (pos? step) (< val end) (> val end))\n (set! chunk-next (Range. nil val end step nil nil nil)))))))\n\n ICloneable\n (-clone [_] (Range. meta start end step chunk chunk-next __hash))\n\n IWithMeta\n (-with-meta [rng new-meta]\n (if (identical? new-meta meta)\n rng\n (Range. new-meta start end step chunk chunk-next __hash)))\n\n IMeta\n (-meta [rng] meta)\n\n ISeqable\n (-seq [rng] rng)\n\n ISeq\n (-first [rng] start)\n (-rest [rng]\n (let [s (-next rng)]\n (if (nil? s)\n ()\n s)))\n\n IIterable\n (-iterator [_]\n (RangeIterator. start end step))\n\n INext\n (-next [rng]\n (if (pos? step)\n (when (< (+ start step) end)\n (Range. nil (+ start step) end step nil nil nil))\n (when (> (+ start step) end)\n (Range. nil (+ start step) end step nil nil nil))))\n\n IChunkedSeq\n (-chunked-first [rng]\n (.forceChunk rng)\n chunk)\n (-chunked-rest [rng]\n (.forceChunk rng)\n (if (nil? chunk-next)\n ()\n chunk-next))\n\n IChunkedNext\n (-chunked-next [rng]\n (seq (-chunked-rest rng)))\n\n ICollection\n (-conj [rng o] (cons o rng))\n\n IEmptyableCollection\n (-empty [rng] (.-EMPTY List))\n\n ISequential\n IEquiv\n (-equiv [rng other] (equiv-sequential rng other))\n\n IHash\n (-hash [rng] (caching-hash rng hash-ordered-coll __hash))\n\n IReduce\n (-reduce [rng f] (seq-reduce f rng))\n (-reduce [rng f init]\n (loop [i start ret init]\n (if (if (pos? step) (< i end) (> i end))\n (let [ret (f ret i)]\n (if (reduced? ret)\n @ret\n (recur (+ i step) ret)))\n ret))))\n\n(es6-iterable Range)\n\n(defn range\n \"Returns a lazy seq of nums from start (inclusive) to end\n (exclusive), by step, where start defaults to 0, step to 1,\n and end to infinity.\"\n ([] (range 0 (.-MAX_VALUE js\/Number) 1))\n ([end] (range 0 end 1))\n ([start end] (range start end 1))\n ([start end step]\n (cond\n (pos? step)\n (if (<= end start)\n ()\n (if (and (integer? start) (integer? end) (integer? step))\n (IntegerRange. nil start end step nil nil nil)\n (Range. nil start end step nil nil nil)))\n\n (neg? step)\n (if (>= end start)\n ()\n (if (and (integer? start) (integer? end) (integer? step))\n (IntegerRange. nil start end step nil nil nil)\n (Range. nil start end step nil nil nil)))\n\n :else\n (if (== end start)\n ()\n (repeat start)))))\n\n(defn take-nth\n \"Returns a lazy seq of every nth item in coll. Returns a stateful\n transducer when no collection is provided.\"\n ([n]\n {:pre [(number? n)]}\n (fn [rf]\n (let [ia (volatile! -1)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [i (vswap! ia inc)]\n (if (zero? (rem i n))\n (rf result input)\n result)))))))\n ([n coll]\n {:pre [(number? n)]}\n (lazy-seq\n (when-let [s (seq coll)]\n (cons (first s) (take-nth n (drop n s)))))))\n\n(defn split-with\n \"Returns a vector of [(take-while pred coll) (drop-while pred coll)]\"\n [pred coll]\n [(take-while pred coll) (drop-while pred coll)])\n\n(defn partition-by\n \"Applies f to each value in coll, splitting it each time f returns a\n new value. Returns a lazy seq of partitions. Returns a stateful\n transducer when no collection is provided.\"\n ([f]\n (fn [rf]\n (let [a (array-list)\n pa (volatile! ::none)]\n (fn\n ([] (rf))\n ([result]\n (let [result (if (.isEmpty a)\n result\n (let [v (vec (.toArray a))]\n ;;clear first!\n (.clear a)\n (unreduced (rf result v))))]\n (rf result)))\n ([result input]\n (let [pval @pa\n val (f input)]\n (vreset! pa val)\n (if (or (keyword-identical? pval ::none)\n (= val pval))\n (do\n (.add a input)\n result)\n (let [v (vec (.toArray a))]\n (.clear a)\n (let [ret (rf result v)]\n (when-not (reduced? ret)\n (.add a input))\n ret)))))))))\n ([f coll]\n (lazy-seq\n (when-let [s (seq coll)]\n (let [fst (first s)\n fv (f fst)\n run (cons fst (take-while #(= fv (f %)) (next s)))]\n (cons run (partition-by f (lazy-seq (drop (count run) s)))))))))\n\n(defn frequencies\n \"Returns a map from distinct items in coll to the number of times\n they appear.\"\n [coll]\n (persistent!\n (reduce (fn [counts x]\n (assoc! counts x (inc (get counts x 0))))\n (transient {}) coll)))\n\n(defn reductions\n \"Returns a lazy seq of the intermediate values of the reduction (as\n per reduce) of coll by f, starting with init.\"\n ([f coll]\n (lazy-seq\n (if-let [s (seq coll)]\n (reductions f (first s) (rest s))\n (list (f)))))\n ([f init coll]\n (if (reduced? init)\n (list @init)\n (cons init\n (lazy-seq\n (when-let [s (seq coll)]\n (reductions f (f init (first s)) (rest s))))))))\n\n(defn juxt\n \"Takes a set of functions and returns a fn that is the juxtaposition\n of those fns. The returned fn takes a variable number of args, and\n returns a vector containing the result of applying each fn to the\n args (left-to-right).\n ((juxt a b c) x) => [(a x) (b x) (c x)]\"\n ([f]\n (fn\n ([] (vector (f)))\n ([x] (vector (f x)))\n ([x y] (vector (f x y)))\n ([x y z] (vector (f x y z)))\n ([x y z & args] (vector (apply f x y z args)))))\n ([f g]\n (fn\n ([] (vector (f) (g)))\n ([x] (vector (f x) (g x)))\n ([x y] (vector (f x y) (g x y)))\n ([x y z] (vector (f x y z) (g x y z)))\n ([x y z & args] (vector (apply f x y z args) (apply g x y z args)))))\n ([f g h]\n (fn\n ([] (vector (f) (g) (h)))\n ([x] (vector (f x) (g x) (h x)))\n ([x y] (vector (f x y) (g x y) (h x y)))\n ([x y z] (vector (f x y z) (g x y z) (h x y z)))\n ([x y z & args] (vector (apply f x y z args) (apply g x y z args) (apply h x y z args)))))\n ([f g h & fs]\n (let [fs (list* f g h fs)]\n (fn\n ([] (reduce #(conj %1 (%2)) [] fs))\n ([x] (reduce #(conj %1 (%2 x)) [] fs))\n ([x y] (reduce #(conj %1 (%2 x y)) [] fs))\n ([x y z] (reduce #(conj %1 (%2 x y z)) [] fs))\n ([x y z & args] (reduce #(conj %1 (apply %2 x y z args)) [] fs))))))\n\n(defn dorun\n \"When lazy sequences are produced via functions that have side\n effects, any effects other than those needed to produce the first\n element in the seq do not occur until the seq is consumed. dorun can\n be used to force any effects. Walks through the successive nexts of\n the seq, does not retain the head and returns nil.\"\n ([coll]\n (when-let [s (seq coll)]\n (recur (next s))))\n ([n coll]\n (when (and (seq coll) (pos? n))\n (recur (dec n) (next coll)))))\n\n(defn doall\n \"When lazy sequences are produced via functions that have side\n effects, any effects other than those needed to produce the first\n element in the seq do not occur until the seq is consumed. doall can\n be used to force any effects. Walks through the successive nexts of\n the seq, retains the head and returns it, thus causing the entire\n seq to reside in memory at one time.\"\n ([coll]\n (dorun coll)\n coll)\n ([n coll]\n (dorun n coll)\n coll))\n\n;;;;;;;;;;;;;;;;;;;;;;;;; Regular Expressions ;;;;;;;;;;\n\n(defn regexp?\n \"Returns true if x is a JavaScript RegExp instance.\"\n [x]\n (instance? js\/RegExp x))\n\n(defn re-matches\n \"Returns the result of (re-find re s) if re fully matches s.\"\n [re s]\n (if (string? s)\n (let [matches (.exec re s)]\n (when (and (not (nil? matches))\n (= (aget matches 0) s))\n (if (== (count ^array matches) 1)\n (aget matches 0)\n (vec matches))))\n (throw (js\/TypeError. \"re-matches must match against a string.\"))))\n\n\n(defn re-find\n \"Returns the first regex match, if any, of s to re, using\n re.exec(s). Returns a vector, containing first the matching\n substring, then any capturing groups if the regular expression contains\n capturing groups.\"\n [re s]\n (if (string? s)\n (let [matches (.exec re s)]\n (when-not (nil? matches)\n (if (== (count ^array matches) 1)\n (aget matches 0)\n (vec matches))))\n (throw (js\/TypeError. \"re-find must match against a string.\"))))\n\n(defn- re-seq* [re s]\n (when-some [matches (.exec re s)]\n (let [match-str (aget matches 0)\n match-vals (if (== (.-length matches) 1)\n match-str\n (vec matches))]\n (cons match-vals\n (lazy-seq\n (let [post-idx (+ (.-index matches)\n (max 1 (.-length match-str)))]\n (when (<= post-idx (.-length s))\n (re-seq* re (subs s post-idx)))))))))\n\n(defn re-seq\n \"Returns a lazy sequence of successive matches of re in s.\"\n [re s]\n (if (string? s)\n (re-seq* re s)\n (throw (js\/TypeError. \"re-seq must match against a string.\"))))\n\n(defn re-pattern\n \"Returns an instance of RegExp which has compiled the provided string.\"\n [s]\n (if (instance? js\/RegExp s)\n s\n (let [[prefix flags] (re-find #\"^\\(\\?([idmsux]*)\\)\" s)\n pattern (subs s (if (nil? prefix)\n 0\n (count ^string prefix)))]\n (js\/RegExp. pattern (or flags \"\")))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Printing ;;;;;;;;;;;;;;;;\n\n(defn pr-sequential-writer [writer print-one begin sep end opts coll]\n (binding [*print-level* (when-not (nil? *print-level*) (dec *print-level*))]\n (if (and (not (nil? *print-level*)) (neg? *print-level*))\n (-write writer \"#\")\n (do\n (-write writer begin)\n (if (zero? (:print-length opts))\n (when (seq coll)\n (-write writer (or (:more-marker opts) \"...\")))\n (do\n (when (seq coll)\n (print-one (first coll) writer opts))\n (loop [coll (next coll) n (dec (:print-length opts))]\n (if (and coll (or (nil? n) (not (zero? n))))\n (do\n (-write writer sep)\n (print-one (first coll) writer opts)\n (recur (next coll) (dec n)))\n (when (and (seq coll) (zero? n))\n (-write writer sep)\n (-write writer (or (:more-marker opts) \"...\")))))))\n (-write writer end)))))\n\n(defn write-all [writer & ss]\n (doseq [s ss]\n (-write writer s)))\n\n(defn string-print [x]\n (when (nil? *print-fn*)\n (throw (js\/Error. \"No *print-fn* fn set for evaluation environment\")))\n (*print-fn* x)\n nil)\n\n(defn flush [] ;stub\n nil)\n\n(def ^:private char-escapes\n (js-obj\n \"\\\"\" \"\\\\\\\"\"\n \"\\\\\" \"\\\\\\\\\"\n \"\\b\" \"\\\\b\"\n \"\\f\" \"\\\\f\"\n \"\\n\" \"\\\\n\"\n \"\\r\" \"\\\\r\"\n \"\\t\" \"\\\\t\"))\n\n(defn ^:private quote-string\n [s]\n (str \\\"\n (.replace s (js\/RegExp \"[\\\\\\\\\\\"\\b\\f\\n\\r\\t]\" \"g\")\n (fn [match] (unchecked-get char-escapes match)))\n \\\"))\n\n(declare print-map)\n\n(defn print-meta? [opts obj]\n (and (boolean (get opts :meta))\n (implements? IMeta obj)\n (not (nil? (meta obj)))))\n\n(defn- pr-writer-impl\n [obj writer opts]\n (cond\n (nil? obj) (-write writer \"nil\")\n :else\n (do\n (when (print-meta? opts obj)\n (-write writer \"^\")\n (pr-writer (meta obj) writer opts)\n (-write writer \" \"))\n (cond\n ;; handle CLJS ctors\n ^boolean (.-cljs$lang$type obj)\n (.cljs$lang$ctorPrWriter obj obj writer opts)\n\n ; Use the new, more efficient, IPrintWithWriter interface when possible.\n (satisfies? IPrintWithWriter obj)\n (-pr-writer obj writer opts)\n\n (or (true? obj) (false? obj))\n (-write writer (str obj))\n\n (number? obj)\n (-write writer\n (cond\n ^boolean (js\/isNaN obj) \"##NaN\"\n (identical? obj js\/Number.POSITIVE_INFINITY) \"##Inf\"\n (identical? obj js\/Number.NEGATIVE_INFINITY) \"##-Inf\"\n :else (str obj)))\n\n (object? obj)\n (do\n (-write writer \"#js \")\n (print-map\n (map (fn [k]\n (MapEntry. (cond-> k (some? (re-matches #\"[A-Za-z_\\*\\+\\?!\\-'][\\w\\*\\+\\?!\\-']*\" k)) keyword) (unchecked-get obj k) nil))\n (js-keys obj))\n pr-writer writer opts))\n\n (array? obj)\n (pr-sequential-writer writer pr-writer \"#js [\" \" \" \"]\" opts obj)\n\n (string? obj)\n (if (:readably opts)\n (-write writer (quote-string obj))\n (-write writer obj))\n\n (js-fn? obj)\n (let [name (.-name obj)\n name (if (or (nil? name) (gstring\/isEmpty name))\n \"Function\"\n name)]\n (write-all writer \"#object[\" name\n (if *print-fn-bodies*\n (str \" \\\"\" (str obj) \"\\\"\")\n \"\")\n \"]\"))\n\n (instance? js\/Date obj)\n (let [normalize (fn [n len]\n (loop [ns (str n)]\n (if (< (count ns) len)\n (recur (str \"0\" ns))\n ns)))]\n (write-all writer\n \"#inst \\\"\"\n (normalize (.getUTCFullYear obj) 4) \"-\"\n (normalize (inc (.getUTCMonth obj)) 2) \"-\"\n (normalize (.getUTCDate obj) 2) \"T\"\n (normalize (.getUTCHours obj) 2) \":\"\n (normalize (.getUTCMinutes obj) 2) \":\"\n (normalize (.getUTCSeconds obj) 2) \".\"\n (normalize (.getUTCMilliseconds obj) 3) \"-\"\n \"00:00\\\"\"))\n\n (regexp? obj) (write-all writer \"#\\\"\" (.-source obj) \"\\\"\")\n\n (js-symbol? obj) (write-all writer \"#object[\" (.toString obj) \"]\" )\n\n :else\n (if (some-> obj .-constructor .-cljs$lang$ctorStr)\n (write-all writer\n \"#object[\" (.replace (.. obj -constructor -cljs$lang$ctorStr)\n (js\/RegExp. \"\/\" \"g\") \".\") \"]\")\n (let [name (some-> obj .-constructor .-name)\n name (if (or (nil? name) (gstring\/isEmpty name))\n \"Object\"\n name)]\n (if (nil? (. obj -constructor))\n (write-all writer \"#object[\" name \"]\")\n (write-all writer \"#object[\" name \" \" (str obj) \"]\"))))))))\n\n(defn- pr-writer\n \"Prefer this to pr-seq, because it makes the printing function\n configurable, allowing efficient implementations such as appending\n to a StringBuffer.\"\n [obj writer opts]\n (if-let [alt-impl (:alt-impl opts)]\n (alt-impl obj writer (assoc opts :fallback-impl pr-writer-impl))\n (pr-writer-impl obj writer opts)))\n\n(defn pr-seq-writer [objs writer opts]\n (pr-writer (first objs) writer opts)\n (doseq [obj (next objs)]\n (-write writer \" \")\n (pr-writer obj writer opts)))\n\n(defn- pr-sb-with-opts [objs opts]\n (let [sb (StringBuffer.)\n writer (StringBufferWriter. sb)]\n (pr-seq-writer objs writer opts)\n (-flush writer)\n sb))\n\n(defn pr-str-with-opts\n \"Prints a sequence of objects to a string, observing all the\n options given in opts\"\n [objs opts]\n (if (empty? objs)\n \"\"\n (str (pr-sb-with-opts objs opts))))\n\n(defn prn-str-with-opts\n \"Same as pr-str-with-opts followed by (newline)\"\n [objs opts]\n (if (empty? objs)\n \"\\n\"\n (let [sb (pr-sb-with-opts objs opts)]\n (.append sb \\newline)\n (str sb))))\n\n(defn- pr-with-opts\n \"Prints a sequence of objects using string-print, observing all\n the options given in opts\"\n [objs opts]\n (string-print (pr-str-with-opts objs opts)))\n\n(defn newline\n \"Prints a newline using *print-fn*\"\n ([] (newline nil))\n ([opts]\n (string-print \"\\n\")\n (when (get opts :flush-on-newline)\n (flush))))\n\n(defn pr-str\n \"pr to a string, returning it. Fundamental entrypoint to IPrintWithWriter.\"\n [& objs]\n (pr-str-with-opts objs (pr-opts)))\n\n(defn prn-str\n \"Same as pr-str followed by (newline)\"\n [& objs]\n (prn-str-with-opts objs (pr-opts)))\n\n(defn pr\n \"Prints the object(s) using string-print. Prints the\n object(s), separated by spaces if there is more than one.\n By default, pr and prn print in a way that objects can be\n read by the reader\"\n [& objs]\n (pr-with-opts objs (pr-opts)))\n\n(def ^{:doc\n \"Prints the object(s) using string-print.\n print and println produce output for human consumption.\"}\n print\n (fn cljs-core-print [& objs]\n (pr-with-opts objs (assoc (pr-opts) :readably false))))\n\n(defn print-str\n \"print to a string, returning it\"\n [& objs]\n (pr-str-with-opts objs (assoc (pr-opts) :readably false)))\n\n(defn println\n \"Same as print followed by (newline)\"\n [& objs]\n (pr-with-opts objs (assoc (pr-opts) :readably false))\n (when *print-newline*\n (newline (pr-opts))))\n\n(defn println-str\n \"println to a string, returning it\"\n [& objs]\n (prn-str-with-opts objs (assoc (pr-opts) :readably false)))\n\n(defn prn\n \"Same as pr followed by (newline).\"\n [& objs]\n (pr-with-opts objs (pr-opts))\n (when *print-newline*\n (newline (pr-opts))))\n\n(defn- strip-ns\n [named]\n (if (symbol? named)\n (symbol nil (name named))\n (keyword nil (name named))))\n\n(defn- lift-ns\n \"Returns [lifted-ns lifted-map] or nil if m can't be lifted.\"\n [m]\n (when *print-namespace-maps*\n (loop [ns nil\n [[k v :as entry] & entries] (seq m)\n lm (empty m)]\n (if entry\n (when (or (keyword? k) (symbol? k))\n (if ns\n (when (= ns (namespace k))\n (recur ns entries (assoc lm (strip-ns k) v)))\n (when-let [new-ns (namespace k)]\n (recur new-ns entries (assoc lm (strip-ns k) v)))))\n [ns lm]))))\n\n(defn print-prefix-map [prefix m print-one writer opts]\n (pr-sequential-writer\n writer\n (fn [e w opts]\n (do (print-one (key e) w opts)\n (-write w \\space)\n (print-one (val e) w opts)))\n (str prefix \"{\") \", \" \"}\"\n opts (seq m)))\n\n(defn print-map [m print-one writer opts]\n (let [[ns lift-map] (when (map? m)\n (lift-ns m))]\n (if ns\n (print-prefix-map (str \"#:\" ns) lift-map print-one writer opts)\n (print-prefix-map nil m print-one writer opts))))\n\n(extend-protocol IPrintWithWriter\n LazySeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n TransformerIterator\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n IndexedSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n RSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentQueue\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"#queue [\" \" \" \"]\" opts (seq coll)))\n\n PersistentQueueSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentTreeMapSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n NodeSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ArrayNodeSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n List\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Cons\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n EmptyList\n (-pr-writer [coll writer opts] (-write writer \"()\"))\n\n PersistentVector\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n ChunkedCons\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ChunkedSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Subvec\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n BlackNode\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n RedNode\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n MapEntry\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll))\n\n ObjMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n KeySeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ValSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentArrayMapSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n PersistentArrayMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n PersistentHashMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n PersistentTreeMap\n (-pr-writer [coll writer opts]\n (print-map coll pr-writer writer opts))\n\n PersistentHashSet\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"#{\" \" \" \"}\" opts coll))\n\n PersistentTreeSet\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"#{\" \" \" \"}\" opts coll))\n\n Range\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n IntegerRange\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Cycle\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Repeat\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Iterate\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n ES6IteratorSeq\n (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll))\n\n Atom\n (-pr-writer [a writer opts]\n (-write writer \"#object[cljs.core.Atom \")\n (pr-writer {:val (.-state a)} writer opts)\n (-write writer \"]\"))\n\n Volatile\n (-pr-writer [a writer opts]\n (-write writer \"#object[cljs.core.Volatile \")\n (pr-writer {:val (.-state a)} writer opts)\n (-write writer \"]\"))\n\n Var\n (-pr-writer [a writer opts]\n (-write writer \"#'\")\n (pr-writer (.-sym a) writer opts)))\n\n;; IComparable\n(extend-protocol IComparable\n Symbol\n (-compare [x y]\n (if (symbol? y)\n (compare-symbols x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n Keyword\n (-compare [x y]\n (if (keyword? y)\n (compare-keywords x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n Subvec\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n PersistentVector\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n MapEntry\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n BlackNode\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y)))))\n\n RedNode\n (-compare [x y]\n (if (vector? y)\n (compare-indexed x y)\n (throw (js\/Error. (str \"Cannot compare \" x \" to \" y))))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Reference Types ;;;;;;;;;;;;;;;;\n\n(defn alter-meta!\n \"Atomically sets the metadata for a namespace\/var\/ref\/agent\/atom to be:\n\n (apply f its-current-meta args)\n\n f must be free of side-effects\"\n [iref f & args]\n (set! (.-meta iref) (apply f (.-meta iref) args)))\n\n(defn reset-meta!\n \"Atomically resets the metadata for an atom\"\n [iref m]\n (set! (.-meta iref) m))\n\n(defn add-watch\n \"Adds a watch function to an atom reference. The watch fn must be a\n fn of 4 args: a key, the reference, its old-state, its\n new-state. Whenever the reference's state might have been changed,\n any registered watches will have their functions called. The watch\n fn will be called synchronously. Note that an atom's state\n may have changed again prior to the fn call, so use old\/new-state\n rather than derefing the reference. Keys must be unique per\n reference, and can be used to remove the watch with remove-watch,\n but are otherwise considered opaque by the watch mechanism. Bear in\n mind that regardless of the result or action of the watch fns the\n atom's value will change. Example:\n\n (def a (atom 0))\n (add-watch a :inc (fn [k r o n] (assert (== 0 n))))\n (swap! a inc)\n ;; Assertion Error\n (deref a)\n ;=> 1\"\n [iref key f]\n (-add-watch iref key f)\n iref)\n\n(defn remove-watch\n \"Removes a watch (set by add-watch) from a reference\"\n [iref key]\n (-remove-watch iref key)\n iref)\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; gensym ;;;;;;;;;;;;;;;;\n;; Internal - do not use!\n(def\n ^{:jsdoc [\"@type {*}\"]}\n gensym_counter nil)\n\n(defn gensym\n \"Returns a new symbol with a unique name. If a prefix string is\n supplied, the name is prefix# where # is some unique number. If\n prefix is not supplied, the prefix is 'G__'.\"\n ([] (gensym \"G__\"))\n ([prefix-string]\n (when (nil? gensym_counter)\n (set! gensym_counter (atom 0)))\n (symbol (str prefix-string (swap! gensym_counter inc)))))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Delay ;;;;;;;;;;;;;;;;;;;;\n\n(deftype Delay [^:mutable f ^:mutable value]\n IDeref\n (-deref [_]\n (when f\n (set! value (f))\n (set! f nil))\n value)\n\n IPending\n (-realized? [x]\n (not f))\n\n IPrintWithWriter\n (-pr-writer [x writer opts]\n (-write writer \"#object[cljs.core.Delay \")\n (pr-writer {:status (if (nil? f) :ready :pending), :val value} writer opts)\n (-write writer \"]\")))\n\n(defn delay?\n \"returns true if x is a Delay created with delay\"\n [x] (instance? Delay x))\n\n(defn force\n \"If x is a Delay, returns the (possibly cached) value of its expression, else returns x\"\n [x]\n (if (delay? x)\n (deref x)\n x))\n\n(defn ^boolean realized?\n \"Returns true if a value has been produced for a delay or lazy sequence.\"\n [x]\n (-realized? x))\n\n(defn- preserving-reduced\n [rf]\n #(let [ret (rf %1 %2)]\n (if (reduced? ret)\n (reduced ret)\n ret)))\n\n(defn cat\n \"A transducer which concatenates the contents of each input, which must be a\n collection, into the reduction.\"\n {:added \"1.7\"}\n [rf]\n (let [rf1 (preserving-reduced rf)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (reduce rf1 result input)))))\n\n(defn halt-when\n \"Returns a transducer that ends transduction when pred returns true\n for an input. When retf is supplied it must be a fn of 2 arguments -\n it will be passed the (completed) result so far and the input that\n triggered the predicate, and its return value (if it does not throw\n an exception) will be the return value of the transducer. If retf\n is not supplied, the input that triggered the predicate will be\n returned. If the predicate never returns true the transduction is\n unaffected.\"\n {:added \"1.9\"}\n ([pred] (halt-when pred nil))\n ([pred retf]\n (fn [rf]\n (fn\n ([] (rf))\n ([result]\n (if (and (map? result) (contains? result ::halt))\n (::halt result)\n (rf result)))\n ([result input]\n (if (pred input)\n (reduced {::halt (if retf (retf (rf result) input) input)})\n (rf result input)))))))\n\n(defn dedupe\n \"Returns a lazy sequence removing consecutive duplicates in coll.\n Returns a transducer when no collection is provided.\"\n ([]\n (fn [rf]\n (let [pa (volatile! ::none)]\n (fn\n ([] (rf))\n ([result] (rf result))\n ([result input]\n (let [prior @pa]\n (vreset! pa input)\n (if (= prior input)\n result\n (rf result input))))))))\n ([coll] (sequence (dedupe) coll)))\n\n(declare rand)\n\n(defn random-sample\n \"Returns items from coll with random probability of prob (0.0 -\n 1.0). Returns a transducer when no collection is provided.\"\n ([prob]\n (filter (fn [_] (< (rand) prob))))\n ([prob coll]\n (filter (fn [_] (< (rand) prob)) coll)))\n\n(deftype Eduction [xform coll]\n Object\n (indexOf [coll x]\n (-indexOf coll x 0))\n (indexOf [coll x start]\n (-indexOf coll x start))\n (lastIndexOf [coll x]\n (-lastIndexOf coll x (count coll)))\n (lastIndexOf [coll x start]\n (-lastIndexOf coll x start))\n\n ISequential\n\n IIterable\n (-iterator [_]\n (.create TransformerIterator xform (iter coll)))\n\n ISeqable\n (-seq [_] (seq (sequence xform coll)))\n\n IReduce\n (-reduce [_ f] (transduce xform (completing f) coll))\n (-reduce [_ f init] (transduce xform (completing f) init coll))\n\n IPrintWithWriter\n (-pr-writer [coll writer opts]\n (pr-sequential-writer writer pr-writer \"(\" \" \" \")\" opts coll)))\n\n(es6-iterable Eduction)\n\n(defn eduction\n \"Returns a reducible\/iterable application of the transducers\n to the items in coll. Transducers are applied in order as if\n combined with comp. Note that these applications will be\n performed every time reduce\/iterator is called.\"\n {:arglists '([xform* coll])}\n [& xforms]\n (Eduction. (apply comp (butlast xforms)) (last xforms)))\n\n(defn run!\n \"Runs the supplied procedure (via reduce), for purposes of side\n effects, on successive items in the collection. Returns nil\"\n [proc coll]\n (reduce #(proc %2) nil coll)\n nil)\n\n(defn iteration\n \"Creates a seqable\/reducible via repeated calls to step,\n a function of some (continuation token) 'k'. The first call to step\n will be passed initk, returning 'ret'. Iff (somef ret) is true,\n (vf ret) will be included in the iteration, else iteration will\n terminate and vf\/kf will not be called. If (kf ret) is non-nil it\n will be passed to the next step call, else iteration will terminate.\n This can be used e.g. to consume APIs that return paginated or batched data.\n step - (possibly impure) fn of 'k' -> 'ret'\n :somef - fn of 'ret' -> logical true\/false, default 'some?'\n :vf - fn of 'ret' -> 'v', a value produced by the iteration, default 'identity'\n :kf - fn of 'ret' -> 'next-k' or nil (signaling 'do not continue'), default 'identity'\n :initk - the first value passed to step, default 'nil'\n It is presumed that step with non-initk is unreproducible\/non-idempotent.\n If step with initk is unreproducible it is on the consumer to not consume twice.\"\n {:added \"1.11\"}\n [step & {:keys [somef vf kf initk]\n :or {vf identity\n kf identity\n somef some?\n initk nil}}]\n (reify\n ISeqable\n (-seq [_]\n ((fn next [ret]\n (when (somef ret)\n (cons (vf ret)\n (when-some [k (kf ret)]\n (lazy-seq (next (step k)))))))\n (step initk)))\n IReduce\n (-reduce [_ rf init]\n (loop [acc init\n ret (step initk)]\n (if (somef ret)\n (let [acc (rf acc (vf ret))]\n (if (reduced? acc)\n @acc\n (if-some [k (kf ret)]\n (recur acc (step k))\n acc)))\n acc)))))\n\n(defprotocol IEncodeJS\n (-clj->js [x] \"Recursively transforms clj values to JavaScript\")\n (-key->js [x] \"Transforms map keys to valid JavaScript keys. Arbitrary keys are\n encoded to their string representation via (pr-str x)\"))\n\n(declare clj->js)\n\n(defn key->js\n ([k] (key->js k clj->js))\n ([k primitive-fn]\n (cond\n (satisfies? IEncodeJS k) (-clj->js k)\n (or (string? k)\n (number? k)\n (keyword? k)\n (symbol? k)) (primitive-fn k)\n :default (pr-str k))))\n\n(defn clj->js\n \"Recursively transforms ClojureScript values to JavaScript.\n sets\/vectors\/lists become Arrays, Keywords and Symbol become Strings,\n Maps become Objects. Arbitrary keys are encoded to by `key->js`.\n Options is a key-value pair, where the only valid key is\n :keyword-fn, which should point to a single-argument function to be\n called on keyword keys. Default to `name`.\"\n [x & {:keys [keyword-fn]\n :or {keyword-fn name}\n :as options}]\n (letfn [(keyfn [k] (key->js k thisfn))\n (thisfn [x] (cond\n (nil? x) nil\n (satisfies? IEncodeJS x) (-clj->js x)\n (keyword? x) (keyword-fn x)\n (symbol? x) (str x)\n (map? x) (let [m (js-obj)]\n (doseq [[k v] x]\n (gobject\/set m (keyfn k) (thisfn v)))\n m)\n (coll? x) (let [arr (array)]\n (doseq [x (map thisfn x)]\n (.push arr x))\n arr)\n :else x))]\n (thisfn x)))\n\n\n(defprotocol IEncodeClojure\n (-js->clj [x options] \"Transforms JavaScript values to Clojure\"))\n\n(defn js->clj\n \"Recursively transforms JavaScript arrays into ClojureScript\n vectors, and JavaScript objects into ClojureScript maps. With\n option ':keywordize-keys true' will convert object fields from\n strings to keywords.\"\n ([x] (js->clj x :keywordize-keys false))\n ([x & opts]\n (let [{:keys [keywordize-keys]} opts\n keyfn (if keywordize-keys keyword str)\n f (fn thisfn [x]\n (cond\n (satisfies? IEncodeClojure x)\n (-js->clj x (apply array-map opts))\n\n (seq? x)\n (doall (map thisfn x))\n\n (map-entry? x)\n (MapEntry. (thisfn (key x)) (thisfn (val x)) nil)\n\n (coll? x)\n (into (empty x) (map thisfn) x)\n\n (array? x)\n (persistent!\n (reduce #(conj! %1 (thisfn %2))\n (transient []) x))\n\n (identical? (type x) js\/Object)\n (persistent!\n (reduce (fn [r k] (assoc! r (keyfn k) (thisfn (gobject\/get x k))))\n (transient {}) (js-keys x)))\n :else x))]\n (f x))))\n\n(defn memoize\n \"Returns a memoized version of a referentially transparent function. The\n memoized version of the function keeps a cache of the mapping from arguments\n to results and, when calls with the same arguments are repeated often, has\n higher performance at the expense of higher memory use.\"\n [f]\n (let [mem (atom {})]\n (fn [& args]\n (let [v (get @mem args lookup-sentinel)]\n (if (identical? v lookup-sentinel)\n (let [ret (apply f args)]\n (swap! mem assoc args ret)\n ret)\n v)))))\n\n(defn trampoline\n \"trampoline can be used to convert algorithms requiring mutual\n recursion without stack consumption. Calls f with supplied args, if\n any. If f returns a fn, calls that fn with no arguments, and\n continues to repeat, until the return value is not a fn, then\n returns that non-fn value. Note that if you want to return a fn as a\n final value, you must wrap it in some data structure and unpack it\n after trampoline returns.\"\n ([f]\n (let [ret (f)]\n (if (fn? ret)\n (recur ret)\n ret)))\n ([f & args]\n (trampoline #(apply f args))))\n\n(defn rand\n \"Returns a random floating point number between 0 (inclusive) and\n n (default 1) (exclusive).\"\n ([] (rand 1))\n ([n] (* (Math\/random) n)))\n\n(defn rand-int\n \"Returns a random integer between 0 (inclusive) and n (exclusive).\"\n [n] (Math\/floor (* (Math\/random) n)))\n\n(defn rand-nth\n \"Return a random element of the (sequential) collection. Will have\n the same performance characteristics as nth for the given\n collection.\"\n [coll]\n (nth coll (rand-int (count coll))))\n\n(defn group-by\n \"Returns a map of the elements of coll keyed by the result of\n f on each element. The value at each key will be a vector of the\n corresponding elements, in the order they appeared in coll.\"\n [f coll]\n (persistent!\n (reduce\n (fn [ret x]\n (let [k (f x)]\n (assoc! ret k (conj (get ret k []) x))))\n (transient {}) coll)))\n\n(defn make-hierarchy\n \"Creates a hierarchy object for use with derive, isa? etc.\"\n [] {:parents {} :descendants {} :ancestors {}})\n\n(def\n ^{:private true\n :jsdoc [\"@type {*}\"]}\n -global-hierarchy nil)\n\n(defn- get-global-hierarchy []\n (when (nil? -global-hierarchy)\n (set! -global-hierarchy (atom (make-hierarchy))))\n -global-hierarchy)\n\n(defn- swap-global-hierarchy! [f & args]\n (apply swap! (get-global-hierarchy) f args))\n\n(defn ^boolean isa?\n \"Returns true if (= child parent), or child is directly or indirectly derived from\n parent, either via a JavaScript type inheritance relationship or a\n relationship established via derive. h must be a hierarchy obtained\n from make-hierarchy, if not supplied defaults to the global\n hierarchy\"\n ([child parent] (isa? @(get-global-hierarchy) child parent))\n ([h child parent]\n (or (= child parent)\n ;; (and (class? parent) (class? child)\n ;; (. ^Class parent isAssignableFrom child))\n (contains? ((:ancestors h) child) parent)\n ;;(and (class? child) (some #(contains? ((:ancestors h) %) parent) (supers child)))\n (and (vector? parent) (vector? child)\n (== (count parent) (count child))\n (loop [ret true i 0]\n (if (or (not ret) (== i (count parent)))\n ret\n (recur (isa? h (child i) (parent i)) (inc i))))))))\n\n(defn parents\n \"Returns the immediate parents of tag, either via a JavaScript type\n inheritance relationship or a relationship established via derive. h\n must be a hierarchy obtained from make-hierarchy, if not supplied\n defaults to the global hierarchy\"\n ([tag] (parents @(get-global-hierarchy) tag))\n ([h tag] (not-empty (get (:parents h) tag))))\n\n(defn ancestors\n \"Returns the immediate and indirect parents of tag, either via a JavaScript type\n inheritance relationship or a relationship established via derive. h\n must be a hierarchy obtained from make-hierarchy, if not supplied\n defaults to the global hierarchy\"\n ([tag] (ancestors @(get-global-hierarchy) tag))\n ([h tag] (not-empty (get (:ancestors h) tag))))\n\n(defn descendants\n \"Returns the immediate and indirect children of tag, through a\n relationship established via derive. h must be a hierarchy obtained\n from make-hierarchy, if not supplied defaults to the global\n hierarchy. Note: does not work on JavaScript type inheritance\n relationships.\"\n ([tag] (descendants @(get-global-hierarchy) tag))\n ([h tag] (not-empty (get (:descendants h) tag))))\n\n(defn derive\n \"Establishes a parent\/child relationship between parent and\n tag. Parent must be a namespace-qualified symbol or keyword and\n child can be either a namespace-qualified symbol or keyword or a\n class. h must be a hierarchy obtained from make-hierarchy, if not\n supplied defaults to, and modifies, the global hierarchy.\"\n ([tag parent]\n (assert (namespace parent))\n ;; (assert (or (class? tag) (and (instance? cljs.core.Named tag) (namespace tag))))\n (swap-global-hierarchy! derive tag parent) nil)\n ([h tag parent]\n (assert (not= tag parent))\n ;; (assert (or (class? tag) (instance? clojure.lang.Named tag)))\n ;; (assert (instance? clojure.lang.INamed tag))\n ;; (assert (instance? clojure.lang.INamed parent))\n (let [tp (:parents h)\n td (:descendants h)\n ta (:ancestors h)\n tf (fn [m source sources target targets]\n (reduce (fn [ret k]\n (assoc ret k\n (reduce conj (get targets k #{}) (cons target (targets target)))))\n m (cons source (sources source))))]\n (or\n (when-not (contains? (tp tag) parent)\n (when (contains? (ta tag) parent)\n (throw (js\/Error. (str tag \"already has\" parent \"as ancestor\"))))\n (when (contains? (ta parent) tag)\n (throw (js\/Error. (str \"Cyclic derivation:\" parent \"has\" tag \"as ancestor\"))))\n {:parents (assoc (:parents h) tag (conj (get tp tag #{}) parent))\n :ancestors (tf (:ancestors h) tag td parent ta)\n :descendants (tf (:descendants h) parent ta tag td)})\n h))))\n\n(defn underive\n \"Removes a parent\/child relationship between parent and\n tag. h must be a hierarchy obtained from make-hierarchy, if not\n supplied defaults to, and modifies, the global hierarchy.\"\n ([tag parent]\n (swap-global-hierarchy! underive tag parent)\n nil)\n ([h tag parent]\n (let [parentMap (:parents h)\n childsParents (if (parentMap tag)\n (disj (parentMap tag) parent) #{})\n newParents (if (not-empty childsParents)\n (assoc parentMap tag childsParents)\n (dissoc parentMap tag))\n deriv-seq (flatten (map #(cons (first %) (interpose (first %) (second %)))\n (seq newParents)))]\n (if (contains? (parentMap tag) parent)\n (reduce #(apply derive %1 %2) (make-hierarchy)\n (partition 2 deriv-seq))\n h))))\n\n(defn- reset-cache\n [method-cache method-table cached-hierarchy hierarchy]\n (swap! method-cache (fn [_] (deref method-table)))\n (swap! cached-hierarchy (fn [_] (deref hierarchy))))\n\n(defn- prefers*\n [x y prefer-table]\n (let [xprefs (@prefer-table x)]\n (or\n (when (and xprefs (xprefs y))\n true)\n (loop [ps (parents y)]\n (when (pos? (count ps))\n (when (prefers* x (first ps) prefer-table)\n true)\n (recur (rest ps))))\n (loop [ps (parents x)]\n (when (pos? (count ps))\n (when (prefers* (first ps) y prefer-table)\n true)\n (recur (rest ps))))\n false)))\n\n(defn- dominates\n [x y prefer-table hierarchy]\n (or (prefers* x y prefer-table) (isa? hierarchy x y)))\n\n(defn- find-and-cache-best-method\n [name dispatch-val hierarchy method-table prefer-table method-cache cached-hierarchy default-dispatch-val]\n (let [best-entry (reduce (fn [be [k _ :as e]]\n (if (isa? @hierarchy dispatch-val k)\n (let [be2 (if (or (nil? be) (dominates k (first be) prefer-table @hierarchy))\n e\n be)]\n (when-not (dominates (first be2) k prefer-table @hierarchy)\n (throw (js\/Error.\n (str \"Multiple methods in multimethod '\" name\n \"' match dispatch value: \" dispatch-val \" -> \" k\n \" and \" (first be2) \", and neither is preferred\"))))\n be2)\n be))\n nil @method-table)\n best-entry (if-let [entry (and (nil? best-entry) (@method-table default-dispatch-val))]\n [default-dispatch-val entry]\n best-entry)]\n (when best-entry\n (if (= @cached-hierarchy @hierarchy)\n (do\n (swap! method-cache assoc dispatch-val (second best-entry))\n (second best-entry))\n (do\n (reset-cache method-cache method-table cached-hierarchy hierarchy)\n (find-and-cache-best-method name dispatch-val hierarchy method-table prefer-table\n method-cache cached-hierarchy default-dispatch-val))))))\n\n(defprotocol IMultiFn\n (-reset [mf])\n (-add-method [mf dispatch-val method])\n (-remove-method [mf dispatch-val])\n (-prefer-method [mf dispatch-val dispatch-val-y])\n (-get-method [mf dispatch-val])\n (-methods [mf])\n (-prefers [mf])\n (-default-dispatch-val [mf])\n (-dispatch-fn [mf]))\n\n(defn- throw-no-method-error [name dispatch-val]\n (throw (js\/Error. (str \"No method in multimethod '\" name \"' for dispatch value: \" dispatch-val))))\n\n(deftype MultiFn [name dispatch-fn default-dispatch-val hierarchy\n method-table prefer-table method-cache cached-hierarchy]\n IFn\n (-invoke [mf]\n (let [dispatch-val (dispatch-fn)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn)))\n (-invoke [mf a]\n (let [dispatch-val (dispatch-fn a)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a)))\n (-invoke [mf a b]\n (let [dispatch-val (dispatch-fn a b)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b)))\n (-invoke [mf a b c]\n (let [dispatch-val (dispatch-fn a b c)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c)))\n (-invoke [mf a b c d]\n (let [dispatch-val (dispatch-fn a b c d)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d)))\n (-invoke [mf a b c d e]\n (let [dispatch-val (dispatch-fn a b c d e)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e)))\n (-invoke [mf a b c d e f]\n (let [dispatch-val (dispatch-fn a b c d e f)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f)))\n (-invoke [mf a b c d e f g]\n (let [dispatch-val (dispatch-fn a b c d e f g)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g)))\n (-invoke [mf a b c d e f g h]\n (let [dispatch-val (dispatch-fn a b c d e f g h)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h)))\n (-invoke [mf a b c d e f g h i]\n (let [dispatch-val (dispatch-fn a b c d e f g h i)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i)))\n (-invoke [mf a b c d e f g h i j]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j)))\n (-invoke [mf a b c d e f g h i j k]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k)))\n (-invoke [mf a b c d e f g h i j k l]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l)))\n (-invoke [mf a b c d e f g h i j k l m]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m)))\n (-invoke [mf a b c d e f g h i j k l m n]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n)))\n (-invoke [mf a b c d e f g h i j k l m n o]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o)))\n (-invoke [mf a b c d e f g h i j k l m n o p]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p)))\n (-invoke [mf a b c d e f g h i j k l m n o p q]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q r)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q r)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r s]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q r s)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q r s)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r s t]\n (let [dispatch-val (dispatch-fn a b c d e f g h i j k l m n o p q r s t)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (target-fn a b c d e f g h i j k l m n o p q r s t)))\n (-invoke [mf a b c d e f g h i j k l m n o p q r s t rest]\n (let [dispatch-val (apply dispatch-fn a b c d e f g h i j k l m n o p q r s t rest)\n target-fn (-get-method mf dispatch-val)]\n (when-not target-fn\n (throw-no-method-error name dispatch-val))\n (apply target-fn a b c d e f g h i j k l m n o p q r s t rest)))\n\n IMultiFn\n (-reset [mf]\n (swap! method-table (fn [mf] {}))\n (swap! method-cache (fn [mf] {}))\n (swap! prefer-table (fn [mf] {}))\n (swap! cached-hierarchy (fn [mf] nil))\n mf)\n\n (-add-method [mf dispatch-val method]\n (swap! method-table assoc dispatch-val method)\n (reset-cache method-cache method-table cached-hierarchy hierarchy)\n mf)\n\n (-remove-method [mf dispatch-val]\n (swap! method-table dissoc dispatch-val)\n (reset-cache method-cache method-table cached-hierarchy hierarchy)\n mf)\n\n (-get-method [mf dispatch-val]\n (when-not (= @cached-hierarchy @hierarchy)\n (reset-cache method-cache method-table cached-hierarchy hierarchy))\n (if-let [target-fn (@method-cache dispatch-val)]\n target-fn\n (find-and-cache-best-method name dispatch-val hierarchy method-table\n prefer-table method-cache cached-hierarchy default-dispatch-val)))\n\n (-prefer-method [mf dispatch-val-x dispatch-val-y]\n (when (prefers* dispatch-val-y dispatch-val-x prefer-table)\n (throw (js\/Error. (str \"Preference conflict in multimethod '\" name \"': \" dispatch-val-y\n \" is already preferred to \" dispatch-val-x))))\n (swap! prefer-table\n (fn [old]\n (assoc old dispatch-val-x\n (conj (get old dispatch-val-x #{})\n dispatch-val-y))))\n (reset-cache method-cache method-table cached-hierarchy hierarchy))\n\n (-methods [mf] @method-table)\n (-prefers [mf] @prefer-table)\n (-default-dispatch-val [mf] default-dispatch-val)\n (-dispatch-fn [mf] dispatch-fn)\n\n INamed\n (-name [this] (-name name))\n (-namespace [this] (-namespace name))\n\n IHash\n (-hash [this] (goog\/getUid this)))\n\n(defn remove-all-methods\n \"Removes all of the methods of multimethod.\"\n [multifn]\n (-reset multifn))\n\n(defn remove-method\n \"Removes the method of multimethod associated with dispatch-value.\"\n [multifn dispatch-val]\n (-remove-method multifn dispatch-val))\n\n(defn prefer-method\n \"Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y\n when there is a conflict\"\n [multifn dispatch-val-x dispatch-val-y]\n (-prefer-method multifn dispatch-val-x dispatch-val-y))\n\n(defn methods\n \"Given a multimethod, returns a map of dispatch values -> dispatch fns\"\n [multifn] (-methods multifn))\n\n(defn get-method\n \"Given a multimethod and a dispatch value, returns the dispatch fn\n that would apply to that value, or nil if none apply and no default\"\n [multifn dispatch-val] (-get-method multifn dispatch-val))\n\n(defn prefers\n \"Given a multimethod, returns a map of preferred value -> set of other values\"\n [multifn] (-prefers multifn))\n\n(defn default-dispatch-val\n \"Given a multimethod, return its default-dispatch-val.\"\n [multifn] (-default-dispatch-val multifn))\n\n(defn dispatch-fn\n \"Given a multimethod, return its dispatch-fn.\"\n [multifn] (-dispatch-fn multifn))\n\n;; UUID\n(defprotocol IUUID \"A marker protocol for UUIDs\")\n\n(deftype UUID [uuid ^:mutable __hash]\n IUUID\n\n Object\n (toString [_] uuid)\n (equiv [this other]\n (-equiv this other))\n\n IEquiv\n (-equiv [_ other]\n (and (instance? UUID other) (identical? uuid (.-uuid other))))\n\n IPrintWithWriter\n (-pr-writer [_ writer _]\n (-write writer (str \"#uuid \\\"\" uuid \"\\\"\")))\n\n IHash\n (-hash [this]\n (when (nil? __hash)\n (set! __hash (hash uuid)))\n __hash)\n\n IComparable\n (-compare [this other]\n (if (instance? UUID other)\n (garray\/defaultCompare uuid (.-uuid other))\n (throw (js\/Error. (str \"Cannot compare \" this \" to \" other))))))\n\n(defn uuid\n \"Returns a UUID consistent with the string s.\"\n [s]\n (assert (string? s))\n (UUID. (.toLowerCase s) nil))\n\n(defn random-uuid\n \"Returns a pseudo-randomly generated UUID instance (i.e. type 4).\"\n []\n (letfn [(hex [] (.toString (rand-int 16) 16))]\n (let [rhex (.toString (bit-or 0x8 (bit-and 0x3 (rand-int 16))) 16)]\n (uuid\n (str (hex) (hex) (hex) (hex)\n (hex) (hex) (hex) (hex) \"-\"\n (hex) (hex) (hex) (hex) \"-\"\n \"4\" (hex) (hex) (hex) \"-\"\n rhex (hex) (hex) (hex) \"-\"\n (hex) (hex) (hex) (hex)\n (hex) (hex) (hex) (hex)\n (hex) (hex) (hex) (hex))))))\n\n(defn uuid?\n \"Return true if x is a UUID.\"\n [x] (implements? IUUID x))\n\n;;; ExceptionInfo\n\n(defn- pr-writer-ex-info [obj writer opts]\n (-write writer \"#error {:message \")\n (pr-writer (.-message obj) writer opts)\n (when (.-data obj)\n (-write writer \", :data \")\n (pr-writer (.-data obj) writer opts))\n (when (.-cause obj)\n (-write writer \", :cause \")\n (pr-writer (.-cause obj) writer opts))\n (-write writer \"}\"))\n\n(defn ^{:jsdoc [\"@constructor\"]}\n ExceptionInfo [message data cause]\n (let [e (js\/Error. message)]\n (this-as this\n (set! (.-message this) message)\n (set! (.-data this) data)\n (set! (.-cause this) cause)\n (do\n (set! (.-name this) (.-name e))\n ;; non-standard\n (set! (.-description this) (.-description e))\n (set! (.-number this) (.-number e))\n (set! (.-fileName this) (.-fileName e))\n (set! (.-lineNumber this) (.-lineNumber e))\n (set! (.-columnNumber this) (.-columnNumber e))\n (set! (.-stack this) (.-stack e)))\n this)))\n\n(set! (.. ExceptionInfo -prototype -__proto__) js\/Error.prototype)\n\n(extend-type ExceptionInfo\n IPrintWithWriter\n (-pr-writer [obj writer opts]\n (pr-writer-ex-info obj writer opts)))\n\n(set! (.. ExceptionInfo -prototype -toString)\n (fn []\n (this-as this (pr-str* this))))\n\n(defn ex-info\n \"Create an instance of ExceptionInfo, an Error type that carries a\n map of additional data.\"\n ([msg data] (ex-info msg data nil))\n ([msg data cause]\n (ExceptionInfo. msg data cause)))\n\n(defn ex-data\n \"Returns exception data (a map) if ex is an ExceptionInfo.\n Otherwise returns nil.\"\n [ex]\n (when (instance? ExceptionInfo ex)\n (.-data ex)))\n\n(defn ex-message\n \"Returns the message attached to the given Error \/ ExceptionInfo object.\n For non-Errors returns nil.\"\n [ex]\n (when (instance? js\/Error ex)\n (.-message ex)))\n\n(defn ex-cause\n \"Returns exception cause (an Error \/ ExceptionInfo) if ex is an\n ExceptionInfo.\n Otherwise returns nil.\"\n [ex]\n (when (instance? ExceptionInfo ex)\n (.-cause ex)))\n\n(defn comparator\n \"Returns an JavaScript compatible comparator based upon pred.\"\n [pred]\n (fn [x y]\n (cond (pred x y) -1 (pred y x) 1 :else 0)))\n\n(defn ^boolean special-symbol?\n \"Returns true if x names a special form\"\n [x]\n (contains?\n '#{if def fn* do let* loop* letfn* throw try catch finally\n recur new set! ns deftype* defrecord* . js* & quote case* var ns*}\n x))\n\n(defn test\n \"test [v] finds fn at key :test in var metadata and calls it,\n presuming failure will throw exception\"\n [v]\n (let [f (.-cljs$lang$test v)]\n (if f\n (do (f) :ok)\n :no-test)))\n\n\n(deftype TaggedLiteral [tag form]\n Object\n (toString [coll]\n (pr-str* coll))\n\n IEquiv\n (-equiv [this other]\n (and (instance? TaggedLiteral other)\n (= tag (.-tag other))\n (= form (.-form other))))\n\n IHash\n (-hash [this]\n (+ (* 31 (hash tag))\n (hash form)))\n\n ILookup\n (-lookup [this v]\n (-lookup this v nil))\n (-lookup [this v not-found]\n (case v\n :tag tag\n :form form\n not-found))\n\n IPrintWithWriter\n (-pr-writer [o writer opts]\n (-write writer (str \"#\" tag \" \"))\n (pr-writer form writer opts)))\n\n(defn tagged-literal?\n \"Return true if the value is the data representation of a tagged literal\"\n [value]\n (instance? TaggedLiteral value))\n\n(defn tagged-literal\n \"Construct a data representation of a tagged literal from a\n tag symbol and a form.\"\n [tag form]\n {:pre [(symbol? tag)]}\n (TaggedLiteral. tag form))\n\n(def\n ^{:private true\n :jsdoc [\"@type {*}\"]}\n js-reserved-arr\n #js [\"arguments\" \"abstract\" \"await\" \"boolean\" \"break\" \"byte\" \"case\"\n \"catch\" \"char\" \"class\" \"const\" \"continue\"\n \"debugger\" \"default\" \"delete\" \"do\" \"double\"\n \"else\" \"enum\" \"export\" \"extends\" \"final\"\n \"finally\" \"float\" \"for\" \"function\" \"goto\" \"if\"\n \"implements\" \"import\" \"in\" \"instanceof\" \"int\"\n \"interface\" \"let\" \"long\" \"native\" \"new\"\n \"package\" \"private\" \"protected\" \"public\"\n \"return\" \"short\" \"static\" \"super\" \"switch\"\n \"synchronized\" \"this\" \"throw\" \"throws\"\n \"transient\" \"try\" \"typeof\" \"var\" \"void\"\n \"volatile\" \"while\" \"with\" \"yield\" \"methods\"\n \"null\" \"constructor\"])\n\n(def\n ^{:jsdoc [\"@type {null|Object}\"]}\n js-reserved nil)\n\n(defn- js-reserved? [x]\n (when (nil? js-reserved)\n (set! js-reserved\n (reduce #(do (gobject\/set %1 %2 true) %1)\n #js {} js-reserved-arr)))\n (.hasOwnProperty js-reserved x))\n\n(defn- demunge-pattern []\n (when-not DEMUNGE_PATTERN\n (set! DEMUNGE_PATTERN\n (let [ks (sort (fn [a b] (- (. b -length) (. a -length)))\n (js-keys DEMUNGE_MAP))]\n (loop [ks ks ret \"\"]\n (if (seq ks)\n (recur\n (next ks)\n (str\n (cond-> ret\n (not (identical? ret \"\")) (str \"|\"))\n (first ks)))\n (str ret \"|\\\\$\"))))))\n DEMUNGE_PATTERN)\n\n(defn- ^string munge-str [name]\n (let [sb (StringBuffer.)]\n (loop [i 0]\n (if (< i (. name -length))\n (let [c (.charAt name i)\n sub (gobject\/get CHAR_MAP c)]\n (if-not (nil? sub)\n (.append sb sub)\n (.append sb c))\n (recur (inc i)))))\n (.toString sb)))\n\n(defn munge [name]\n (let [name' (munge-str (str name))\n name' (cond\n (identical? name' \"..\") \"_DOT__DOT_\"\n (js-reserved? name') (str name' \"$\")\n :else name')]\n (if (symbol? name)\n (symbol name')\n name')))\n\n(defn- demunge-str [munged-name]\n (let [r (js\/RegExp. (demunge-pattern) \"g\")\n munged-name (if (gstring\/endsWith munged-name \"$\")\n (.substring munged-name 0 (dec (. munged-name -length)))\n munged-name)]\n (loop [ret \"\" last-match-end 0]\n (if-let [match (.exec r munged-name)]\n (let [[x] match]\n (recur\n (str ret\n (.substring munged-name last-match-end\n (- (. r -lastIndex) (. x -length)))\n (if (identical? x \"$\") \"\/\" (gobject\/get DEMUNGE_MAP x)))\n (. r -lastIndex)))\n (str ret\n (.substring munged-name last-match-end (.-length munged-name)))))))\n\n(defn demunge [name]\n ((if (symbol? name) symbol str)\n (let [name' (str name)]\n (if (identical? name' \"_DOT__DOT_\")\n \"..\"\n (demunge-str name')))))\n\n(defonce ^{:jsdoc [\"@type {*}\"] :private true}\n tapset nil)\n\n(defn- maybe-init-tapset []\n (when (nil? tapset)\n (set! tapset (atom #{}))))\n\n(defn add-tap\n \"Adds f, a fn of one argument, to the tap set. This function will be called with\n anything sent via tap>. Remember f in order to remove-tap\"\n [f]\n (maybe-init-tapset)\n (swap! tapset conj f)\n nil)\n\n(defn remove-tap\n \"Remove f from the tap set.\"\n [f]\n (maybe-init-tapset)\n (swap! tapset disj f)\n nil)\n\n(defn ^boolean tap>\n \"Sends x to any taps. Returns the result of *exec-tap-fn*, a Boolean value.\"\n [x]\n (maybe-init-tapset)\n (*exec-tap-fn*\n (fn []\n (doseq [tap @tapset]\n (try\n (tap x)\n (catch js\/Error ex))))))\n\n(defn update-vals\n \"m f => {k (f v) ...}\n Given a map m and a function f of 1-argument, returns a new map where the keys of m\n are mapped to result of applying f to the corresponding values of m.\"\n {:added \"1.11\"}\n [m f]\n (with-meta\n (persistent!\n (reduce-kv (fn [acc k v] (assoc! acc k (f v)))\n (if (implements? IEditableCollection m)\n (transient m)\n (transient {}))\n m))\n (meta m)))\n\n(defn update-keys\n \"m f => {(f k) v ...}\n Given a map m and a function f of 1-argument, returns a new map whose\n keys are the result of applying f to the keys of m, mapped to the\n corresponding values of m.\n f must return a unique key for each key of m, else the behavior is undefined.\"\n {:added \"1.11\"}\n [m f]\n (let [ret (persistent!\n (reduce-kv (fn [acc k v] (assoc! acc (f k) v))\n (transient {})\n m))]\n (with-meta ret (meta m))))\n\n;; -----------------------------------------------------------------------------\n;; Bootstrap helpers - incompatible with advanced compilation\n\n(defn- ns-lookup\n \"Bootstrap only.\"\n [ns-obj k]\n (fn [] (gobject\/get ns-obj k)))\n\n;; Bootstrap only\n(deftype Namespace [obj name]\n Object\n (findInternedVar [this sym]\n (let [k (munge (str sym))]\n (when ^boolean (gobject\/containsKey obj k)\n (let [var-sym (symbol (str name) (str sym))\n var-meta {:ns this}]\n (Var. (ns-lookup obj k) var-sym var-meta)))))\n (getName [_] name)\n (toString [_]\n (str name))\n IEquiv\n (-equiv [_ other]\n (if (instance? Namespace other)\n (= name (.-name other))\n false))\n IHash\n (-hash [_]\n (hash name)))\n\n(def\n ^{:doc \"Bootstrap only.\" :jsdoc [\"@type {*}\"]}\n NS_CACHE nil)\n\n(defn- find-ns-obj*\n \"Bootstrap only.\"\n [ctxt xs]\n (cond\n (nil? ctxt) nil\n (nil? xs) ctxt\n :else (recur (gobject\/get ctxt (first xs)) (next xs))))\n\n(defn find-ns-obj\n \"Bootstrap only.\"\n [ns]\n (let [munged-ns (munge (str ns))\n segs (.split munged-ns \".\")]\n (case *target*\n \"nodejs\" (if ^boolean js\/COMPILED\n ; Under simple optimizations on nodejs, namespaces will be in module\n ; rather than global scope and must be accessed by a direct call to eval.\n ; The first segment may refer to an undefined variable, so its evaluation\n ; may throw ReferenceError.\n (find-ns-obj*\n (try\n (let [ctxt (js\/eval (first segs))]\n (when (and ctxt (object? ctxt))\n ctxt))\n (catch js\/ReferenceError e\n nil))\n (next segs))\n (find-ns-obj* goog\/global segs))\n (\"default\" \"webworker\") (find-ns-obj* goog\/global segs)\n (throw (js\/Error. (str \"find-ns-obj not supported for target \" *target*))))))\n\n(defn ns-interns*\n \"Returns a map of the intern mappings for the namespace.\n Bootstrap only.\"\n [sym]\n (let [ns-obj (find-ns-obj sym)\n ns (Namespace. ns-obj sym)]\n (letfn [(step [ret k]\n (let [var-sym (symbol (demunge k))]\n (assoc ret\n var-sym (Var. #(gobject\/get ns-obj k)\n (symbol (str sym) (str var-sym)) {:ns ns}))))]\n (reduce step {} (js-keys ns-obj)))))\n\n(defn create-ns\n \"Create a new namespace named by the symbol. Bootstrap only.\"\n ([sym]\n (create-ns sym (find-ns-obj sym)))\n ([sym ns-obj]\n (Namespace. ns-obj sym)))\n\n(defn find-ns\n \"Returns the namespace named by the symbol or nil if it doesn't exist.\n Bootstrap only.\"\n [ns]\n (when (nil? NS_CACHE)\n (set! NS_CACHE (atom {})))\n (let [the-ns (get @NS_CACHE ns)]\n (if-not (nil? the-ns)\n the-ns\n (let [ns-obj (find-ns-obj ns)]\n (when-not (nil? ns-obj)\n (let [new-ns (create-ns ns ns-obj)]\n (swap! NS_CACHE assoc ns new-ns)\n new-ns))))))\n\n(defn find-macros-ns\n \"Returns the macros namespace named by the symbol or nil if it doesn't exist.\n Bootstrap only.\"\n [ns]\n (when (nil? NS_CACHE)\n (set! NS_CACHE (atom {})))\n (let [ns-str (str ns)\n ns (if (not ^boolean (gstring\/contains ns-str \"$macros\"))\n (symbol (str ns-str \"$macros\"))\n ns)\n the-ns (get @NS_CACHE ns)]\n (if-not (nil? the-ns)\n the-ns\n (let [ns-obj (find-ns-obj ns)]\n (when-not (nil? ns-obj)\n (let [new-ns (create-ns ns ns-obj)]\n (swap! NS_CACHE assoc ns new-ns)\n new-ns))))))\n\n(defn ns-name\n \"Returns the name of the namespace, a Namespace object.\n Bootstrap only.\"\n [ns-obj]\n (.-name ns-obj))\n\n(defn uri?\n \"Returns true x is a goog.Uri instance.\"\n {:added \"1.9\"}\n [x]\n (instance? goog.Uri x))\n\n(defn ^boolean NaN?\n \"Returns true if num is NaN, else false\"\n [val]\n (js\/isNaN val))\n\n(defn ^:private parsing-err\n \"Construct message for parsing for non-string parsing error\"\n [val]\n (str \"Expected string, got: \" (if (nil? val) \"nil\" (goog\/typeOf val))))\n\n(defn ^number parse-long\n \"Parse string of decimal digits with optional leading -\/+ and return an\n integer value, or nil if parse fails\"\n [s]\n (if (string? s)\n (and (re-matches #\"[+-]?\\d+\" s)\n (let [i (js\/parseInt s)]\n (when (and (<= i js\/Number.MAX_SAFE_INTEGER)\n (>= i js\/Number.MIN_SAFE_INTEGER))\n i)))\n (throw (js\/Error. (parsing-err s)))))\n\n(defn ^number parse-double\n \"Parse string with floating point components and return a floating point value,\n or nil if parse fails.\n Grammar: https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/Double.html#valueOf-java.lang.String-\"\n [s]\n (if (string? s)\n (cond\n ^boolean (re-matches #\"[\\x00-\\x20]*[+-]?NaN[\\x00-\\x20]*\" s) ##NaN\n ^boolean (re-matches\n #\"[\\x00-\\x20]*[+-]?(Infinity|((\\d+\\.?\\d*|\\.\\d+)([eE][+-]?\\d+)?)[dDfF]?)[\\x00-\\x20]*\"\n s) (js\/parseFloat s)\n :default nil)\n (throw (js\/Error. (parsing-err s)))))\n\n(def ^:private uuid-regex\n #\"^[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]$\")\n\n(defn parse-uuid\n \"Parse a string representing a UUID and return a UUID instance,\n or nil if parse fails.\n Grammar: https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/UUID.html#toString--\"\n [s]\n (if (string? s)\n (when ^boolean (re-matches uuid-regex s)\n (uuid s))\n (throw (js\/Error. (parsing-err s)))))\n\n(defn parse-boolean\n \"Parse strings \\\"true\\\" or \\\"false\\\" and return a boolean, or nil if invalid. Note that this explicitly\n excludes strings with different cases, or space characters.\"\n [s]\n (if (string? s)\n (case s\n \"true\" true\n \"false\" false\n nil)\n (throw (js\/Error. (parsing-err s)))))\n\n(defn- maybe-enable-print! []\n (cond\n (exists? js\/console)\n (enable-console-print!)\n\n (or (identical? *target* \"nashorn\")\n (identical? *target* \"graaljs\"))\n (let [system (.type js\/Java \"java.lang.System\")]\n (set! *print-newline* false)\n (set-print-fn!\n (fn []\n (let [xs (js-arguments)\n s (.join (garray\/clone xs) \"\")]\n (.println (.-out system) s))))\n (set-print-err-fn!\n (fn []\n (let [xs (js-arguments)\n s (.join (garray\/clone xs) \"\")]\n (.println (.-error system) s)))))))\n\n(maybe-enable-print!)\n\n(defonce\n ^{:doc \"Runtime environments may provide a way to evaluate ClojureScript\n forms. Whatever function *eval* is bound to will be passed any forms which\n should be evaluated.\" :dynamic true}\n *eval*\n (fn [_]\n (throw (js\/Error. \"cljs.core\/*eval* not bound\"))))\n\n(defn eval\n \"Evaluates the form data structure (not text!) and returns the result.\n Delegates to cljs.core\/*eval*. Intended for use in self-hosted ClojureScript,\n which sets up an implementation of cljs.core\/*eval* for that environment.\"\n [form]\n (*eval* form))\n\n(when ^boolean js\/COMPILED\n (when (identical? \"nodejs\" *target*)\n (set! goog\/global js\/global))\n (cond\n (identical? \"window\" *global*) (set! goog\/global js\/window)\n (identical? \"self\" *global*) (set! goog\/global js\/self)\n (identical? \"global\" *global*) (set! goog\/global js\/global)))\n","(ns frontend.state\n \"Provides main application state, fns associated to set and state based rum\n cursors\"\n (:require [cljs-bean.core :as bean]\n [cljs.core.async :as async :refer [<! >!]]\n [cljs.spec.alpha :as s]\n [clojure.string :as string]\n [dommy.core :as dom]\n [electron.ipc :as ipc]\n [frontend.mobile.util :as mobile-util]\n [frontend.spec.storage :as storage-spec]\n [frontend.storage :as storage]\n [frontend.util :as util]\n [frontend.util.cursor :as cursor]\n [goog.dom :as gdom]\n [goog.object :as gobj]\n [logseq.graph-parser.config :as gp-config]\n [malli.core :as m]\n [medley.core :as medley]\n [promesa.core :as p]\n [rum.core :as rum]))\n\n;; Stores main application state\n(defonce ^:large-vars\/data-var state\n (let [document-mode? (or (storage\/get :document\/mode?) false)\n current-graph (let [graph (storage\/get :git\/current-repo)]\n (when graph (ipc\/ipc \"setCurrentGraph\" graph))\n graph)]\n (atom\n {:route-match nil\n :today nil\n :system\/events (async\/chan 1000)\n :db\/batch-txs (async\/chan 1000)\n :file\/writes (let [coercer (m\/coercer [:catn\n [:repo :string]\n [:page-id :any]\n [:outliner-op :any]\n [:epoch :int]])]\n (async\/chan 10000 (map coercer)))\n :file\/unlinked-dirs #{}\n :reactive\/custom-queries (async\/chan 1000)\n :notification\/show? false\n :notification\/content nil\n :repo\/loading-files? {}\n :nfs\/user-granted? {}\n :nfs\/refreshing? nil\n :instrument\/disabled? (storage\/get \"instrument-disabled\")\n ;; TODO: how to detect the network reliably?\n :network\/online? true\n :indexeddb\/support? true\n :me nil\n :git\/current-repo current-graph\n :draw? false\n :db\/restoring? nil\n\n :journals-length 3\n\n :search\/q \"\"\n :search\/mode nil ; nil -> global mode, :graph -> add graph filter, etc.\n :search\/result nil\n :search\/graph-filters []\n :search\/engines {}\n\n ;; modals\n :modal\/dropdowns {}\n :modal\/id nil\n :modal\/label \"\"\n :modal\/show? false\n :modal\/panel-content nil\n :modal\/payload nil\n :modal\/fullscreen? false\n :modal\/close-btn? nil\n :modal\/close-backdrop? true\n :modal\/subsets []\n\n ;; ui\n :ui\/viewport {}\n\n ;; left sidebar\n :ui\/navigation-item-collapsed? {}\n\n ;; right sidebar\n :ui\/handbooks-open? false\n :ui\/help-open? false\n :ui\/fullscreen? false\n :ui\/settings-open? false\n :ui\/sidebar-open? false\n :ui\/sidebar-width \"40%\"\n :ui\/left-sidebar-open? (boolean (storage\/get \"ls-left-sidebar-open?\"))\n :ui\/theme (or (storage\/get :ui\/theme) \"light\")\n :ui\/system-theme? ((fnil identity (or util\/mac? util\/win32? false)) (storage\/get :ui\/system-theme?))\n :ui\/custom-theme (or (storage\/get :ui\/custom-theme) {:light {:mode \"light\"} :dark {:mode \"dark\"}})\n :ui\/wide-mode? (storage\/get :ui\/wide-mode)\n :ui\/radix-color (storage\/get :ui\/radix-color)\n\n ;; ui\/collapsed-blocks is to separate the collapse\/expand state from db for:\n ;; 1. right sidebar\n ;; 2. zoom-in view\n ;; 3. queries\n ;; 4. references\n ;; graph => {:block-id bool}\n :ui\/collapsed-blocks {}\n :ui\/sidebar-collapsed-blocks {}\n :ui\/root-component nil\n :ui\/file-component nil\n :ui\/developer-mode? (or (= (storage\/get \"developer-mode\") \"true\")\n false)\n ;; remember scroll positions of visited paths\n :ui\/paths-scroll-positions {}\n :ui\/shortcut-tooltip? (if (false? (storage\/get :ui\/shortcut-tooltip?))\n false\n true)\n :ui\/scrolling? false\n :document\/mode? document-mode?\n\n :config {}\n :block\/component-editing-mode? false\n :editor\/op nil\n :editor\/latest-op nil\n :editor\/hidden-editors #{} ;; page names\n :editor\/draw-mode? false\n :editor\/action nil\n :editor\/action-data nil\n ;; With label or other data\n :editor\/last-saved-cursor nil\n :editor\/editing? nil\n :editor\/in-composition? false\n :editor\/content {}\n :editor\/block nil\n :editor\/block-dom-id nil\n :editor\/set-timestamp-block nil ;; click rendered block timestamp-cp to set timestamp\n :editor\/last-input-time nil\n :editor\/document-mode? document-mode?\n :editor\/args nil\n :editor\/on-paste? false\n :editor\/last-key-code nil\n :editor\/block-op-type nil ;; :cut, :copy\n\n ;; Stores deleted refed blocks, indexed by repo\n :editor\/last-replace-ref-content-tx nil\n\n ;; for audio record\n :editor\/record-status \"NONE\"\n\n ;; Whether to skip saving the current block\n :editor\/skip-saving-current-block? false\n\n :editor\/code-block-context {}\n\n :db\/properties-changed-pages {}\n :db\/last-transact-time {}\n ;; whether database is persisted\n :db\/persisted? {}\n\n :cursor-range nil\n\n :selection\/mode false\n ;; Warning: blocks order is determined when setting this attribute\n :selection\/blocks []\n :selection\/start-block nil\n ;; either :up or :down, defaults to down\n ;; used to determine selection direction when two or more blocks are selected\n :selection\/direction :down\n :selection\/selected-all? false\n :custom-context-menu\/show? false\n :custom-context-menu\/links nil\n :custom-context-menu\/position nil\n\n ;; pages or blocks in the right sidebar\n ;; It is a list of `[repo db-id block-type block-data]` 4-tuple\n :sidebar\/blocks '()\n\n :preferred-language (storage\/get :preferred-language)\n\n ;; electron\n :electron\/auto-updater-downloaded false\n :electron\/updater-pending? false\n :electron\/updater {}\n :electron\/user-cfgs nil\n :electron\/server nil\n :electron\/window-maximized? false\n :electron\/window-fullscreen? false\n\n ;; assets\n :assets\/alias-enabled? (or (storage\/get :assets\/alias-enabled?) false)\n :assets\/alias-dirs (or (storage\/get :assets\/alias-dirs) [])\n\n ;; mobile\n :mobile\/container-urls nil\n :mobile\/show-action-bar? false\n :mobile\/actioned-block nil\n :mobile\/show-toolbar? false\n :mobile\/show-recording-bar? false\n :mobile\/show-tabbar? false\n ;;; Used to monitor mobile app status,\n ;;; value spec:\n ;;; {:is-active? bool, :timestamp int}\n :mobile\/app-state-change (atom nil)\n\n ;; plugin\n :plugin\/enabled (and (util\/electron?)\n ;; true false :theme-only\n ((fnil identity true) (storage\/get ::storage-spec\/lsp-core-enabled)))\n :plugin\/preferences nil\n :plugin\/indicator-text nil\n :plugin\/installed-plugins {}\n :plugin\/installed-themes []\n :plugin\/installed-slash-commands {}\n :plugin\/installed-ui-items {}\n :plugin\/installed-resources {}\n :plugin\/installed-hooks {}\n :plugin\/installed-services {}\n :plugin\/simple-commands {}\n :plugin\/selected-theme nil\n :plugin\/selected-unpacked-pkg nil\n :plugin\/marketplace-pkgs nil\n :plugin\/marketplace-stats nil\n :plugin\/installing nil\n :plugin\/active-readme nil\n :plugin\/updates-auto-checking? false\n :plugin\/updates-pending {}\n :plugin\/updates-coming {}\n :plugin\/updates-downloading? false\n :plugin\/updates-unchecked #{}\n :plugin\/navs-settings? true\n :plugin\/focused-settings nil ;; plugin id\n\n ;; pdf\n :pdf\/system-win? false\n :pdf\/current nil\n :pdf\/ref-highlight nil\n :pdf\/block-highlight-colored? (or (storage\/get \"ls-pdf-hl-block-is-colored\") true)\n :pdf\/auto-open-ctx-menu? (not= false (storage\/get \"ls-pdf-auto-open-ctx-menu\"))\n\n ;; all notification contents as k-v pairs\n :notification\/contents {}\n :graph\/syncing? false\n ;; graph -> state\n :graph\/parsing-state {}\n\n :copy\/export-block-text-indent-style (or (storage\/get :copy\/export-block-text-indent-style)\n \"dashes\")\n :copy\/export-block-text-remove-options (or (storage\/get :copy\/export-block-text-remove-options)\n #{})\n :copy\/export-block-text-other-options (or (storage\/get :copy\/export-block-text-other-options)\n {})\n :date-picker\/date nil\n\n :youtube\/players {}\n\n ;; command palette\n :command-palette\/commands []\n\n :view\/components {}\n\n :favorites\/dragging nil\n\n :srs\/mode? false\n\n :srs\/cards-due-count nil\n\n :reactive\/query-dbs {}\n\n ;; login, userinfo, token, ...\n :auth\/refresh-token (storage\/get \"refresh-token\")\n :auth\/access-token nil\n :auth\/id-token nil\n\n ;; file-sync\n :file-sync\/jstour-inst nil\n :file-sync\/onboarding-state (or (storage\/get :file-sync\/onboarding-state)\n {:welcome false})\n :file-sync\/remote-graphs {:loading false :graphs nil}\n :file-sync\/set-remote-graph-password-result {}\n\n ;; graph-uuid -> {:graphs-txid {}\n ;; :file-sync\/sync-manager {}\n ;; :file-sync\/sync-state {}\n ;; ;; {file-path -> payload}\n ;; :file-sync\/progress {}\n ;; :file-sync\/start-time {}\n ;; :file-sync\/last-synced-at {}}\n :file-sync\/graph-state {:current-graph-uuid nil}\n ;; graph-uuid -> ...\n\n :user\/info {:UserGroups (storage\/get :user-groups)}\n :encryption\/graph-parsing? false\n\n :ui\/loading? {}\n :feature\/enable-sync? (storage\/get :logseq-sync-enabled)\n :feature\/enable-sync-diff-merge? ((fnil identity true) (storage\/get :logseq-sync-diff-merge-enabled))\n\n :file\/rename-event-chan (async\/chan 100)\n :ui\/find-in-page nil\n :graph\/importing nil\n :graph\/importing-state {}\n\n :handbook\/route-chan (async\/chan (async\/sliding-buffer 1))\n\n :whiteboard\/onboarding-whiteboard? (or (storage\/get :ls-onboarding-whiteboard?) false)\n :whiteboard\/onboarding-tour? (or (storage\/get :whiteboard-onboarding-tour?) false)\n :whiteboard\/last-persisted-at {}\n :whiteboard\/pending-tx-data {}\n :history\/page-only-mode? false\n ;; db tx-id -> editor cursor\n :history\/tx->editor-cursor {}})))\n\n;; Block ast state\n;; ===============\n\n;; block uuid -> {content(String) -> ast}\n(def blocks-ast-cache (atom {}))\n(defn add-block-ast-cache!\n [block-uuid content ast]\n (when (and block-uuid content ast)\n (let [new-value (assoc-in @blocks-ast-cache [block-uuid content] ast)\n new-value (if (> (count new-value) 10000)\n (into {} (take 5000 new-value))\n new-value)]\n (reset! blocks-ast-cache new-value))))\n\n(defn get-block-ast\n [block-uuid content]\n (when (and block-uuid content)\n (get-in @blocks-ast-cache [block-uuid content])))\n\n;; User configuration getters under :config (and sometimes :me)\n;; ========================================\n;; TODO: Refactor default config values to be data driven. Currently they are all\n;; buried in getters\n;; TODO: Refactor our access to be more data driven. Currently each getter\n;; (re-)fetches get-current-repo needlessly\n;; TODO: Add consistent validation. Only a few config options validate at get time\n\n(def default-config\n \"Default config for a repo-specific, user config\"\n {:feature\/enable-search-remove-accents? true\n :default-arweave-gateway \"https:\/\/arweave.net\"\n :ui\/auto-expand-block-refs? true\n\n ;; For flushing the settings of old versions. Don't bump this value.\n ;; There are only two kinds of graph, one is not upgraded (:legacy) and one is upgraded (:triple-lowbar)\n ;; For not upgraded graphs, the config will have no key `:file\/name-format`\n ;; Then the default value is applied\n :file\/name-format :legacy})\n\n;; State that most user config is dependent on\n(declare get-current-repo sub set-state!)\n\n(defn merge-configs\n \"Merges user configs in given orders. All values are overridden except for maps\n which are merged.\"\n [& configs]\n (->> configs\n (filter map?)\n (apply merge-with\n (fn merge-config [current new]\n (if (and (map? current) (map? new))\n (merge current new)\n new)))))\n\n(defn get-global-config\n []\n (get-in @state [:config ::global-config]))\n\n(defn get-global-config-str-content\n []\n (get-in @state [:config ::global-config-str-content]))\n\n(defn get-graph-config\n ([] (get-graph-config (get-current-repo)))\n ([repo-url] (get-in @state [:config repo-url])))\n\n(defn get-config\n \"User config for the given repo or current repo if none given. All config fetching\nshould be done through this fn in order to get global config and config defaults\"\n ([]\n (get-config (get-current-repo)))\n ([repo-url]\n (merge-configs\n default-config\n (get-global-config)\n (get-graph-config repo-url))))\n\n(defonce publishing? (atom nil))\n\n(defn publishing-enable-editing?\n []\n (and @publishing? (:publishing\/enable-editing? (get-config))))\n\n(defn enable-editing?\n []\n (or (not @publishing?) (:publishing\/enable-editing? (get-config))))\n\n(defn get-arweave-gateway\n []\n (:arweave\/gateway (get-config)))\n\n(defonce built-in-macros\n {\"img\" \"[:img.$4 {:src \\\"$1\\\" :style {:width $2 :height $3}}]\"})\n\n(defn get-macros\n []\n (merge\n built-in-macros\n (:macros (get-config))))\n\n(defn set-assets-alias-enabled!\n [v]\n (set-state! :assets\/alias-enabled? (boolean v))\n (storage\/set :assets\/alias-enabled? (boolean v)))\n\n(defn set-assets-alias-dirs!\n [dirs]\n (when dirs\n (set-state! :assets\/alias-dirs dirs)\n (storage\/set :assets\/alias-dirs dirs)))\n\n(defn get-custom-css-link\n []\n (:custom-css-url (get-config)))\n\n(defn get-custom-js-link\n []\n (:custom-js-url (get-config)))\n\n(defn get-default-journal-template\n []\n (when-let [template (get-in (get-config) [:default-templates :journals])]\n (when-not (string\/blank? template)\n (string\/trim template))))\n\n(defn all-pages-public?\n []\n (let [value (:publishing\/all-pages-public? (get-config))\n value (if (some? value) value (:all-pages-public? (get-config)))]\n (true? value)))\n\n(defn get-default-home\n []\n (:default-home (get-config)))\n\n(defn custom-home-page?\n []\n (some? (:page (get-default-home))))\n\n(defn get-preferred-format\n ([]\n (get-preferred-format (get-current-repo)))\n ([repo-url]\n (keyword\n (or\n (when-let [fmt (:preferred-format (get-config repo-url))]\n (string\/lower-case (name fmt)))\n\n (get-in @state [:me :preferred_format] \"markdown\")))))\n\n(defn markdown?\n []\n (= (keyword (get-preferred-format))\n :markdown))\n\n(defn get-pages-directory\n []\n (or\n (when-let [repo (get-current-repo)]\n (:pages-directory (get-config repo)))\n \"pages\"))\n\n(defn get-journals-directory\n []\n (or\n (when-let [repo (get-current-repo)]\n (:journals-directory (get-config repo)))\n \"journals\"))\n\n(defn get-whiteboards-directory\n []\n (or\n (when-let [repo (get-current-repo)]\n (:whiteboards-directory (get-config repo)))\n \"whiteboards\"))\n\n(defn org-mode-file-link?\n [repo]\n (:org-mode\/insert-file-link? (get-config repo)))\n\n(defn get-journal-file-name-format\n []\n (when-let [repo (get-current-repo)]\n (:journal\/file-name-format (get-config repo))))\n\n(defn get-preferred-workflow\n []\n (keyword\n (or\n (when-let [workflow (:preferred-workflow (get-config))]\n (let [workflow (name workflow)]\n (if (util\/safe-re-find #\"now|NOW\" workflow)\n :now\n :todo)))\n (get-in @state [:me :preferred_workflow] :now))))\n\n(defn get-preferred-todo\n []\n (if (= (get-preferred-workflow) :now)\n \"LATER\"\n \"TODO\"))\n\n(defn get-filename-format\n ([] (get-filename-format (get-current-repo)))\n ([repo]\n (:file\/name-format (get-config repo))))\n\n(defn get-date-formatter\n []\n (gp-config\/get-date-formatter (get-config)))\n\n(defn shortcuts []\n (:shortcuts (get-config)))\n\n(defn get-commands\n []\n (:commands (get-config)))\n\n(defn get-scheduled-future-days\n []\n (let [days (:scheduled\/future-days (get-config))]\n (or (when (int? days) days) 7)))\n\n(defn get-start-of-week\n []\n (or (:start-of-week (get-config))\n (get-in @state [:me :settings :start-of-week])\n 6))\n\n(defn get-ref-open-blocks-level\n []\n (or\n (when-let [value (:ref\/default-open-blocks-level (get-config))]\n (when (integer? value)\n value))\n 2))\n\n(defn get-linked-references-collapsed-threshold\n []\n (or\n (when-let [value (:ref\/linked-references-collapsed-threshold (get-config))]\n (when (integer? value)\n value))\n 100))\n\n(defn get-export-bullet-indentation\n []\n (case (get (get-config) :export\/bullet-indentation :tab)\n :eight-spaces\n \" \"\n :four-spaces\n \" \"\n :two-spaces\n \" \"\n :tab\n \"\\t\"))\n\n(defn enable-search-remove-accents?\n []\n (:feature\/enable-search-remove-accents? (get-config)))\n\n;; State cursor fns for use with rum components\n;; ============================================\n\n(declare document-mode?)\n\n(defn sub\n \"Creates a rum cursor, https:\/\/github.com\/tonsky\/rum#cursors, for use in rum components.\nSimilar to re-frame subscriptions\"\n [ks]\n (if (coll? ks)\n (util\/react (rum\/cursor-in state ks))\n (util\/react (rum\/cursor state ks))))\n\n(defn sub-config\n \"Sub equivalent to get-config which should handle all sub user-config access\"\n ([] (sub-config (get-current-repo)))\n ([repo]\n (let [config (sub :config)]\n (merge-configs default-config\n (get config ::global-config)\n (get config repo)))))\n\n(defn enable-grammarly?\n []\n (true? (:feature\/enable-grammarly? (sub-config))))\n\n(defn scheduled-deadlines-disabled?\n []\n (true? (:feature\/disable-scheduled-and-deadline-query? (sub-config))))\n\n(defn enable-timetracking?\n []\n (not (false? (:feature\/enable-timetracking? (sub-config)))))\n\n(defn enable-fold-button-right?\n []\n (let [_ (sub :ui\/viewport)]\n (and (util\/mobile?)\n (util\/sm-breakpoint?))))\n\n(defn enable-journals?\n ([]\n (enable-journals? (get-current-repo)))\n ([repo]\n (not (false? (:feature\/enable-journals? (sub-config repo))))))\n\n(defn enable-flashcards?\n ([]\n (enable-flashcards? (get-current-repo)))\n ([repo]\n (not (false? (:feature\/enable-flashcards? (sub-config repo))))))\n\n(defn enable-sync?\n []\n (sub :feature\/enable-sync?))\n\n(defn enable-sync-diff-merge?\n []\n (sub :feature\/enable-sync-diff-merge?))\n\n(defn enable-whiteboards?\n ([]\n (enable-whiteboards? (get-current-repo)))\n ([repo]\n (not (false? (:feature\/enable-whiteboards? (sub-config repo))))))\n\n(defn enable-git-auto-push?\n [repo]\n (not (false? (:git-auto-push (sub-config repo)))))\n\n(defn enable-block-timestamps?\n []\n (true? (:feature\/enable-block-timestamps? (sub-config))))\n\n(defn graph-settings\n []\n (:graph\/settings (sub-config)))\n\n(defn graph-forcesettings\n []\n (:graph\/forcesettings (sub-config)))\n\n;; Enable by default\n(defn show-brackets?\n []\n (not (false? (:ui\/show-brackets? (sub-config)))))\n\n(defn sub-default-home-page\n []\n (get-in (sub-config) [:default-home :page] \"\"))\n\n(defn sub-edit-content\n [id]\n (sub [:editor\/content id]))\n\n(defn- get-selected-block-ids\n [blocks]\n (->> blocks\n (remove nil?)\n (keep #(when-let [id (dom\/attr % \"blockid\")]\n (uuid id)))\n (distinct)))\n\n(defn sub-block-selected?\n [container-id block-uuid]\n (rum\/react\n (rum\/derived-atom [state] [::select-block container-id block-uuid]\n (fn [state]\n (contains? (set (get-selected-block-ids (:selection\/blocks state)))\n block-uuid)))))\n\n(defn block-content-max-length\n [repo]\n (or (:block\/content-max-length (sub-config repo)) 10000))\n\n(defn mobile?\n []\n (or (util\/mobile?) (mobile-util\/native-platform?)))\n\n(defn enable-tooltip?\n []\n (if (mobile?)\n false\n (get (sub-config) :ui\/enable-tooltip? true)))\n\n(defn show-command-doc?\n []\n (get (sub-config) :ui\/show-command-doc? true))\n\n(defn logical-outdenting?\n []\n (:editor\/logical-outdenting? (sub-config)))\n\n(defn show-full-blocks?\n []\n (:ui\/show-full-blocks? (sub-config)))\n\n(defn preferred-pasting-file?\n []\n (:editor\/preferred-pasting-file? (sub-config)))\n\n(defn auto-expand-block-refs?\n []\n (:ui\/auto-expand-block-refs? (sub-config)))\n\n(defn doc-mode-enter-for-new-line?\n []\n (and (document-mode?)\n (not (:shortcut\/doc-mode-enter-for-new-block? (get-config)))))\n\n(defn user-groups\n []\n (set (sub [:user\/info :UserGroups])))\n\n;; State mutation helpers\n;; ======================\n\n(defn set-state!\n [path value]\n (if (vector? path)\n (swap! state assoc-in path value)\n (swap! state assoc path value))\n nil)\n\n(defn update-state!\n [path f]\n (if (vector? path)\n (swap! state update-in path f)\n (swap! state update path f))\n nil)\n\n;; State getters and setters\n;; =========================\n;; These fns handle any key except :config.\n;; Some state is also stored in local storage and\/or sent to electron's main process\n\n(defn get-route-match\n []\n (:route-match @state))\n\n(defn get-current-route\n []\n (get-in (get-route-match) [:data :name]))\n\n(defn home?\n []\n (= :home (get-current-route)))\n\n(defn whiteboard-dashboard?\n []\n (= :whiteboards (get-current-route)))\n\n(defn setups-picker?\n []\n (= :repo-add (get-current-route)))\n\n(defn get-current-page\n []\n (when (= :page (get-current-route))\n (get-in (get-route-match)\n [:path-params :name])))\n\n(defn whiteboard-route?\n []\n (= :whiteboard (get-current-route)))\n\n(defn get-current-whiteboard\n []\n (when (whiteboard-route?)\n (get-in (get-route-match)\n [:path-params :name])))\n\n(defn route-has-p?\n []\n (get-in (get-route-match) [:query-params :p]))\n\n(defn get-current-repo\n \"Returns the current repo URL, or else open demo graph\"\n []\n (or (:git\/current-repo @state)\n \"local\"))\n\n(defn get-remote-graphs\n []\n (get-in @state [:file-sync\/remote-graphs :graphs]))\n\n(defn get-remote-graph-info-by-uuid\n [uuid]\n (when-let [graphs (seq (get-in @state [:file-sync\/remote-graphs :graphs]))]\n (some #(when (= (:GraphUUID %) (str uuid)) %) graphs)))\n\n(defn get-remote-graph-usage\n []\n (when-let [graphs (seq (get-in @state [:file-sync\/remote-graphs :graphs]))]\n (->> graphs\n (map #(hash-map :uuid (:GraphUUID %)\n :name (:GraphName %)\n :used-gbs (\/ (:GraphStorageUsage %) 1024 1024 1024)\n :limit-gbs (\/ (:GraphStorageLimit %) 1024 1024 1024)\n :used-percent (\/ (:GraphStorageUsage %) (:GraphStorageLimit %) 0.01)))\n (map #(assoc % :free-gbs (- (:limit-gbs %) (:used-gbs %))))\n (vec))))\n\n(defn delete-remote-graph!\n [repo]\n (swap! state update-in [:file-sync\/remote-graphs :graphs]\n (fn [repos]\n (remove #(and\n (:GraphUUID repo)\n (:GraphUUID %)\n (= (:GraphUUID repo) (:GraphUUID %))) repos))))\n\n(defn add-remote-graph!\n [repo]\n (swap! state update-in [:file-sync\/remote-graphs :graphs]\n (fn [repos]\n (->> (conj repos repo)\n (distinct)))))\n\n(defn get-repos\n []\n (get-in @state [:me :repos]))\n\n(defn set-repos!\n [repos]\n (set-state! [:me :repos] repos))\n\n(defn add-repo!\n [repo]\n (when (not (string\/blank? repo))\n (update-state! [:me :repos]\n (fn [repos]\n (->> (conj repos repo)\n (distinct))))))\n\n(defn set-current-repo!\n [repo]\n (swap! state assoc :git\/current-repo repo)\n (if repo\n (storage\/set :git\/current-repo repo)\n (storage\/remove :git\/current-repo))\n (ipc\/ipc \"setCurrentGraph\" repo))\n\n(defn set-preferred-format!\n [format]\n (swap! state assoc-in [:me :preferred_format] (name format)))\n\n(defn set-preferred-workflow!\n [workflow]\n (swap! state assoc-in [:me :preferred_workflow] (name workflow)))\n\n(defn set-preferred-language!\n [language]\n (set-state! :preferred-language (name language))\n (storage\/set :preferred-language (name language)))\n\n(defn delete-repo!\n [repo]\n (swap! state update-in [:me :repos]\n (fn [repos]\n (->> (remove #(or (= (:url repo) (:url %))\n (and\n (:GraphUUID repo)\n (:GraphUUID %)\n (= (:GraphUUID repo) (:GraphUUID %)))) repos)\n (util\/distinct-by :url)))))\n\n(defn set-timestamp-block!\n [value]\n (set-state! :editor\/set-timestamp-block value))\n\n(defn get-timestamp-block\n []\n (:editor\/set-timestamp-block @state))\n\n(defn set-edit-content!\n ([input-id value] (set-edit-content! input-id value true))\n ([input-id value set-input-value?]\n (when input-id\n (when set-input-value?\n (when-let [input (gdom\/getElement input-id)]\n (util\/set-change-value input value)))\n (update-state! :editor\/content (fn [m]\n (assoc m input-id value))))))\n\n(defn get-edit-input-id\n []\n (ffirst (:editor\/editing? @state)))\n\n(defn get-input\n []\n (when-let [id (get-edit-input-id)]\n (gdom\/getElement id)))\n\n(defn editing?\n []\n (let [input (get-input)]\n (and input (= input (.-activeElement js\/document)))))\n\n(defn get-edit-content\n []\n (get (:editor\/content @state) (get-edit-input-id)))\n\n(defn get-cursor-range\n []\n (:cursor-range @state))\n\n(defn set-cursor-range!\n [range]\n (set-state! :cursor-range range))\n\n(defn set-search-mode!\n [value]\n (set-state! :search\/mode value))\n\n(defn set-editor-action!\n [value]\n (set-state! :editor\/action value))\n\n(defn set-editor-action-data!\n [value]\n (set-state! :editor\/action-data value))\n\n(defn get-editor-action\n []\n (:editor\/action @state))\n\n(defn get-editor-action-data\n []\n (:editor\/action-data @state))\n\n(defn get-editor-show-page-search?\n []\n (= (get-editor-action) :page-search))\n\n(defn get-editor-show-page-search-hashtag?\n []\n (= (get-editor-action) :page-search-hashtag))\n\n(defn get-editor-show-block-search?\n []\n (= (get-editor-action) :block-search))\n\n(defn set-editor-show-input!\n [value]\n (if value\n (do\n (set-editor-action-data! (assoc (get-editor-action-data) :options value))\n (set-editor-action! :input))\n (do\n (set-editor-action! nil)\n (set-editor-action-data! nil))))\n\n(defn get-editor-show-input\n []\n (when (= (get-editor-action) :input)\n (get @state :editor\/action-data)))\n\n(defn set-editor-show-commands!\n []\n (when-not (get-editor-action) (set-editor-action! :commands)))\n\n(defn set-editor-show-block-commands!\n []\n (when-not (get-editor-action) (set-editor-action! :block-commands)))\n\n(defn clear-editor-action!\n []\n (swap! state (fn [state]\n (assoc state :editor\/action nil))))\n\n(defn set-edit-input-id!\n [input-id]\n (swap! state update :editor\/editing?\n (fn [_m]\n (and input-id {input-id true}))))\n\n(defn get-edit-pos\n []\n (when-let [input (get-input)]\n (util\/get-selection-start input)))\n\n(defn get-selection-start-block\n []\n (get @state :selection\/start-block))\n\n(defn set-selection-start-block!\n [start-block]\n (swap! state assoc :selection\/start-block start-block))\n\n(defn set-selection-blocks!\n ([blocks]\n (set-selection-blocks! blocks :down))\n ([blocks direction]\n (when (seq blocks)\n (let [blocks (vec (util\/sort-by-height (remove nil? blocks)))]\n (swap! state assoc\n :selection\/mode true\n :selection\/blocks blocks\n :selection\/direction direction)))))\n\n(defn into-selection-mode!\n []\n (swap! state assoc :selection\/mode true))\n\n(defn clear-selection!\n []\n (swap! state assoc\n :selection\/mode false\n :selection\/blocks nil\n :selection\/direction :down\n :selection\/start-block nil\n :selection\/selected-all? false))\n\n(defn get-selection-blocks\n []\n (->> (:selection\/blocks @state)\n (remove nil?)))\n\n(defn get-selection-block-ids\n []\n (get-selected-block-ids (get-selection-blocks)))\n\n(defn get-selection-start-block-or-first\n []\n (or (get-selection-start-block)\n (some-> (first (get-selection-blocks))\n (gobj\/get \"id\"))))\n\n(defn in-selection-mode?\n []\n (:selection\/mode @state))\n\n(defn selection?\n \"True sense of selection mode with valid selected block\"\n []\n (and (in-selection-mode?) (seq (get-selection-blocks))))\n\n(defn conj-selection-block!\n [block-or-blocks direction]\n (let [selection-blocks (get-selection-blocks)\n blocks (-> (if (sequential? block-or-blocks)\n (apply conj selection-blocks block-or-blocks)\n (conj selection-blocks block-or-blocks))\n distinct\n util\/sort-by-height\n vec)]\n (swap! state assoc\n :selection\/mode true\n :selection\/blocks blocks\n :selection\/direction direction)))\n\n(defn drop-selection-block!\n [block]\n (swap! state assoc\n :selection\/mode true\n :selection\/blocks (-> (remove #(= block %) (get-selection-blocks))\n util\/sort-by-height\n vec)))\n\n(defn drop-last-selection-block!\n []\n (let [direction (:selection\/direction @state)\n up? (= direction :up)\n blocks (:selection\/blocks @state)\n last-block (if up?\n (first blocks)\n (peek (vec blocks)))\n blocks' (-> (if up?\n (rest blocks)\n (pop (vec blocks)))\n util\/sort-by-height\n vec)]\n (swap! state assoc\n :selection\/mode true\n :selection\/blocks blocks')\n last-block))\n\n(defn get-selection-direction\n []\n (:selection\/direction @state))\n\n(defn show-custom-context-menu!\n [links position]\n (swap! state assoc\n :custom-context-menu\/show? true\n :custom-context-menu\/links links\n :custom-context-menu\/position position))\n\n(defn hide-custom-context-menu!\n []\n (swap! state assoc\n :custom-context-menu\/show? false\n :custom-context-menu\/links nil\n :custom-context-menu\/position nil))\n\n(defn toggle-navigation-item-collapsed!\n [item]\n (update-state! [:ui\/navigation-item-collapsed? item] not))\n\n(defn toggle-sidebar-open?!\n []\n (swap! state update :ui\/sidebar-open? not))\n\n(defn open-right-sidebar!\n []\n (swap! state assoc :ui\/sidebar-open? true))\n\n(defn hide-right-sidebar!\n []\n (swap! state assoc :ui\/sidebar-open? false))\n\n(defn sidebar-add-block!\n [repo db-id block-type]\n (when (not (util\/sm-breakpoint?))\n (when db-id\n (update-state! :sidebar\/blocks (fn [blocks]\n (->> (remove #(= (second %) db-id) blocks)\n (cons [repo db-id block-type])\n (distinct))))\n (set-state! [:ui\/sidebar-collapsed-blocks db-id] false)\n (open-right-sidebar!)\n (when-let [elem (gdom\/getElementByClass \"sidebar-item-list\")]\n (util\/scroll-to elem 0)))))\n\n(defn sidebar-move-block!\n [from to]\n (update-state! :sidebar\/blocks (fn [blocks]\n (let [to (if (> from to) (inc to) to)]\n (if (not= to from)\n (let [item (nth blocks from)\n blocks (keep-indexed #(when (not= %1 from) %2) blocks)\n [l r] (split-at to blocks)]\n (concat l [item] r))\n blocks)))))\n\n(defn sidebar-remove-block!\n [idx]\n (update-state! :sidebar\/blocks (fn [blocks]\n (if (string? idx)\n (remove #(= (second %) idx) blocks)\n (util\/drop-nth idx blocks))))\n (when (empty? (:sidebar\/blocks @state))\n (hide-right-sidebar!)))\n\n(defn sidebar-remove-rest!\n [db-id]\n (update-state! :sidebar\/blocks (fn [blocks]\n (remove #(not= (second %) db-id) blocks)))\n (set-state! [:ui\/sidebar-collapsed-blocks db-id] false))\n\n(defn sidebar-replace-block!\n [old-sidebar-key new-sidebar-key]\n (update-state! :sidebar\/blocks (fn [blocks]\n (map #(if (= % old-sidebar-key)\n new-sidebar-key\n %) blocks))))\n\n(defn sidebar-block-exists?\n [idx]\n (some #(= (second %) idx) (:sidebar\/blocks @state)))\n\n(defn clear-sidebar-blocks!\n []\n (set-state! :sidebar\/blocks '()))\n\n(defn sidebar-block-toggle-collapse!\n [db-id]\n (when db-id\n (update-state! [:ui\/sidebar-collapsed-blocks db-id] not)))\n\n(defn sidebar-block-collapse-rest!\n [db-id]\n (let [items (disj (set (map second (:sidebar\/blocks @state))) db-id)]\n (doseq [item items] (set-state! [:ui\/sidebar-collapsed-blocks item] true))))\n\n(defn sidebar-block-set-collapsed-all!\n [collapsed?]\n (let [items (map second (:sidebar\/blocks @state))]\n (doseq [item items]\n (set-state! [:ui\/sidebar-collapsed-blocks item] collapsed?))))\n\n(defn get-edit-block\n []\n (get @state :editor\/block))\n\n(defn get-current-edit-block-and-position\n []\n (let [edit-input-id (get-edit-input-id)\n edit-block (get-edit-block)\n block-element (when edit-input-id (gdom\/getElement (string\/replace edit-input-id \"edit-block\" \"ls-block\")))\n container (when block-element\n (util\/get-block-container block-element))]\n (when container\n {:last-edit-block edit-block\n :container (gobj\/get container \"id\")\n :pos (or (cursor\/pos (gdom\/getElement edit-input-id))\n (count (:block\/content edit-block)))})))\n\n(defn clear-edit!\n []\n (swap! state merge {:editor\/editing? nil\n :editor\/block nil\n :cursor-range nil\n :editor\/last-saved-cursor nil}))\n\n(defn into-code-editor-mode!\n []\n (swap! state merge {:editor\/editing? nil\n :cursor-range nil\n :editor\/code-mode? true}))\n\n(defn set-editor-last-pos!\n [new-pos]\n (set-state! [:editor\/last-saved-cursor (:block\/uuid (get-edit-block))] new-pos))\n\n(defn clear-editor-last-pos!\n []\n (set-state! :editor\/last-saved-cursor nil))\n\n(defn get-editor-last-pos\n []\n (get-in @state [:editor\/last-saved-cursor (:block\/uuid (get-edit-block))]))\n\n(defn set-block-content-and-last-pos!\n [edit-input-id content new-pos]\n (when edit-input-id\n (set-edit-content! edit-input-id content)\n (set-state! [:editor\/last-saved-cursor (:block\/uuid (get-edit-block))] new-pos)))\n\n(defn set-theme-mode!\n [mode]\n (when (mobile-util\/native-platform?)\n (if (= mode \"light\")\n (util\/set-theme-light)\n (util\/set-theme-dark)))\n (set-state! :ui\/theme mode)\n (storage\/set :ui\/theme mode))\n\n(defn sync-system-theme!\n []\n (let [system-dark? (.-matches (js\/window.matchMedia \"(prefers-color-scheme: dark)\"))]\n (set-theme-mode! (if system-dark? \"dark\" \"light\"))\n (set-state! :ui\/system-theme? true)\n (storage\/set :ui\/system-theme? true)))\n\n(defn use-theme-mode!\n [theme-mode]\n (if (= theme-mode \"system\")\n (sync-system-theme!)\n (do\n (set-theme-mode! theme-mode)\n (set-state! :ui\/system-theme? false)\n (storage\/set :ui\/system-theme? false))))\n\n(defn- toggle-theme\n [theme]\n (if (= theme \"dark\") \"light\" \"dark\"))\n\n(defn toggle-theme!\n []\n (use-theme-mode! (toggle-theme (:ui\/theme @state))))\n\n(defn set-custom-theme!\n ([custom-theme]\n (set-custom-theme! nil custom-theme))\n ([mode theme]\n (set-state! (if mode [:ui\/custom-theme (keyword mode)] :ui\/custom-theme) theme)\n (storage\/set :ui\/custom-theme (:ui\/custom-theme @state))))\n\n(defn restore-mobile-theme!\n \"Restore mobile theme setting from local storage\"\n []\n (let [mode (or (storage\/get :ui\/theme) \"light\")\n system-theme? (storage\/get :ui\/system-theme?)]\n (when (and (not system-theme?)\n (mobile-util\/native-platform?))\n (if (= mode \"light\")\n (util\/set-theme-light)\n (util\/set-theme-dark)))))\n\n(defn set-editing-block-dom-id!\n [block-dom-id]\n (set-state! :editor\/block-dom-id block-dom-id))\n\n(defn get-editing-block-dom-id\n []\n (:editor\/block-dom-id @state))\n\n(defn set-root-component!\n [component]\n (set-state! :ui\/root-component component))\n\n(defn get-root-component\n []\n (get @state :ui\/root-component))\n\n(defn load-app-user-cfgs\n ([] (load-app-user-cfgs false))\n ([refresh?]\n (when (util\/electron?)\n (p\/let [cfgs (if (or refresh? (nil? (:electron\/user-cfgs @state)))\n (ipc\/ipc :userAppCfgs)\n (:electron\/user-cfgs @state))\n cfgs (if (object? cfgs) (bean\/->clj cfgs) cfgs)]\n (set-state! :electron\/user-cfgs cfgs)))))\n\n(defn setup-electron-updater!\n []\n (when (util\/electron?)\n (js\/window.apis.setUpdatesCallback\n (fn [_ args]\n (let [data (bean\/->clj args)\n pending? (not= (:type data) \"completed\")]\n (set-state! :electron\/updater-pending? pending?)\n (when pending? (set-state! :electron\/updater data))\n nil)))))\n\n(defn set-file-component!\n [component]\n (set-state! :ui\/file-component component))\n\n(defn clear-file-component!\n []\n (set-state! :ui\/file-component nil))\n\n(defn set-journals-length!\n [value]\n (when value\n (set-state! :journals-length value)))\n\n(defn save-scroll-position!\n ([value]\n (save-scroll-position! value js\/window.location.hash))\n ([value path]\n (set-state! [:ui\/paths-scroll-positions path] value)))\n\n(defn get-saved-scroll-position\n ([]\n (get-saved-scroll-position js\/window.location.hash))\n ([path]\n (get-in @state [:ui\/paths-scroll-positions path] 0)))\n\n(defn set-today!\n [value]\n (set-state! :today value))\n\n(defn get-me\n []\n (:me @state))\n\n(defn set-db-restoring!\n [value]\n (set-state! :db\/restoring? value))\n\n(defn set-indexedb-support!\n [value]\n (set-state! :indexeddb\/support? value))\n\n(defn modal-opened?\n []\n (:modal\/show? @state))\n\n(declare set-modal!)\n(declare close-modal!)\n\n(defn get-sub-modals\n []\n (:modal\/subsets @state))\n\n(defn set-sub-modal!\n ([panel-content]\n (set-sub-modal! panel-content\n {:close-btn? true}))\n ([panel-content {:keys [id label payload close-btn? close-backdrop? show? center?] :as opts}]\n (if (not (modal-opened?))\n (set-modal! panel-content opts)\n (let [modals (:modal\/subsets @state)\n idx (and id (first (keep-indexed #(when (= (:modal\/id %2) id) %1)\n modals)))\n input (medley\/filter-vals\n #(not (nil? %1))\n {:modal\/id id\n :modal\/label (if label (name label) \"\")\n :modal\/class (if center? \"as-center\" \"\")\n :modal\/payload payload\n :modal\/show? (if (boolean? show?) show? true)\n :modal\/panel-content panel-content\n :modal\/close-btn? close-btn?\n :modal\/close-backdrop? (if (boolean? close-backdrop?) close-backdrop? true)})]\n (swap! state update-in\n [:modal\/subsets (or idx (count modals))]\n merge input)\n (:modal\/subsets @state)))))\n\n(defn close-sub-modal!\n ([] (close-sub-modal! nil))\n ([all?-a-id]\n (if (true? all?-a-id)\n (swap! state assoc :modal\/subsets [])\n (let [id all?-a-id\n mid (:modal\/id @state)\n modals (:modal\/subsets @state)]\n (if (and id (not (string\/blank? mid)) (= id mid))\n (close-modal!)\n (when-let [idx (if id (first (keep-indexed #(when (= (:modal\/id %2) id) %1) modals))\n (dec (count modals)))]\n (swap! state assoc :modal\/subsets (into [] (medley\/remove-nth idx modals)))))))\n (:modal\/subsets @state)))\n\n(defn set-modal!\n ([modal-panel-content]\n (set-modal! modal-panel-content\n {:fullscreen? false\n :close-btn? true}))\n ([modal-panel-content {:keys [id label payload fullscreen? close-btn? close-backdrop? center? panel?]}]\n (let [opened? (modal-opened?)]\n (when opened?\n (close-modal!))\n (when (seq (get-sub-modals))\n (close-sub-modal! true))\n\n (async\/go\n (when opened?\n (<! (async\/timeout 100)))\n (swap! state assoc\n :modal\/id id\n :modal\/label (if label (name label) \"\")\n :modal\/class (if center? \"as-center\" \"\")\n :modal\/show? (boolean modal-panel-content)\n :modal\/panel-content modal-panel-content\n :modal\/payload payload\n :modal\/fullscreen? fullscreen?\n :modal\/panel? (if (boolean? panel?) panel? true)\n :modal\/close-btn? close-btn?\n :modal\/close-backdrop? (if (boolean? close-backdrop?) close-backdrop? true))))\n nil))\n\n(defn close-modal!\n []\n (when-not (editing?)\n (if (seq (get-sub-modals))\n (close-sub-modal!)\n (swap! state assoc\n :modal\/id nil\n :modal\/label \"\"\n :modal\/payload nil\n :modal\/show? false\n :modal\/fullscreen? false\n :modal\/panel-content nil\n :ui\/open-select nil))))\n\n(defn get-db-batch-txs-chan\n []\n (:db\/batch-txs @state))\n\n(defn get-file-write-chan\n []\n (:file\/writes @state))\n\n(defn get-reactive-custom-queries-chan\n []\n (:reactive\/custom-queries @state))\n\n(defn get-left-sidebar-open?\n []\n (get-in @state [:ui\/left-sidebar-open?]))\n\n(defn set-left-sidebar-open!\n [value]\n (storage\/set \"ls-left-sidebar-open?\" (boolean value))\n (set-state! :ui\/left-sidebar-open? value))\n\n(defn toggle-left-sidebar!\n []\n (set-left-sidebar-open!\n (not (get-left-sidebar-open?))))\n\n(defn set-developer-mode!\n [value]\n (set-state! :ui\/developer-mode? value)\n (storage\/set \"developer-mode\" (str value)))\n\n(defn developer-mode?\n []\n (:ui\/developer-mode? @state))\n\n(defn get-notification-contents\n []\n (get @state :notification\/contents))\n\n(defn document-mode?\n []\n (get @state :document\/mode?))\n\n(defn toggle-document-mode!\n []\n (let [mode (document-mode?)]\n (set-state! :document\/mode? (not mode))\n (storage\/set :document\/mode? (not mode))))\n\n(defn shortcut-tooltip-enabled?\n []\n (get @state :ui\/shortcut-tooltip?))\n\n(defn toggle-shortcut-tooltip!\n []\n (let [mode (shortcut-tooltip-enabled?)]\n (set-state! :ui\/shortcut-tooltip? (not mode))\n (storage\/set :ui\/shortcut-tooltip? (not mode))))\n\n(defn set-config!\n [repo-url value]\n (when value (set-state! [:config repo-url] value)))\n\n(defn set-global-config!\n [value str-content]\n ;; Placed under :config so cursors can work seamlessly\n (when value\n (set-config! ::global-config value)\n (set-config! ::global-config-str-content str-content)))\n\n(defn get-wide-mode?\n []\n (:ui\/wide-mode? @state))\n\n(defn toggle-wide-mode!\n []\n (update-state! :ui\/wide-mode? not))\n\n(defn set-online!\n [value]\n (set-state! :network\/online? value))\n\n(defn get-plugins-slash-commands\n []\n (mapcat seq (flatten (vals (:plugin\/installed-slash-commands @state)))))\n\n(defn get-plugins-commands-with-type\n [type]\n (->> (apply concat (vals (:plugin\/simple-commands @state)))\n (filterv #(= (keyword (first %)) (keyword type)))))\n\n(defn get-plugins-ui-items-with-type\n [type]\n (->> (apply concat (vals (:plugin\/installed-ui-items @state)))\n (filterv #(= (keyword (first %)) (keyword type)))))\n\n(defn get-plugin-resources-with-type\n [pid type]\n (when-let [pid (and type (keyword pid))]\n (get-in @state [:plugin\/installed-resources pid (keyword type)])))\n\n(defn get-plugin-resource\n [pid type key]\n (when-let [resources (get-plugin-resources-with-type pid type)]\n (get resources key)))\n\n(defn upt-plugin-resource\n [pid type key attr val]\n (when-let [resource (get-plugin-resource pid type key)]\n (let [resource (assoc resource (keyword attr) val)]\n (set-state!\n [:plugin\/installed-resources (keyword pid) (keyword type) key] resource)\n resource)))\n\n(defn get-plugin-services\n [pid type]\n (when-let [installed (and pid (:plugin\/installed-services @state))]\n (some->> (seq (get installed (keyword pid)))\n (filterv #(= type (:type %))))))\n\n(defn install-plugin-service\n ([pid type name] (install-plugin-service pid type name nil))\n ([pid type name opts]\n (when-let [pid (and pid type name (keyword pid))]\n (let [exists (get-plugin-services pid type)]\n (when-let [service (and (or (not exists) (not (some #(= name (:name %)) exists)))\n {:pid pid :type type :name name :opts opts})]\n (update-state! [:plugin\/installed-services pid] #(conj (vec %) service))\n\n ;; search engines state for results\n (when (= type :search)\n (set-state! [:search\/engines (str pid name)] service)))))))\n\n(defn uninstall-plugin-service\n [pid type-or-all]\n (when-let [pid (keyword pid)]\n (when-let [installed (get (:plugin\/installed-services @state) pid)]\n (let [remove-all? (or (true? type-or-all) (nil? type-or-all))\n remains (if remove-all? nil (filterv #(not= type-or-all (:type %)) installed))\n removed (if remove-all? installed (filterv #(= type-or-all (:type %)) installed))]\n (set-state! [:plugin\/installed-services pid] remains)\n\n ;; search engines state for results\n (when-let [removed' (seq (filter #(= :search (:type %)) removed))]\n (update-state! :search\/engines #(apply dissoc % (mapv (fn [{:keys [pid name]}] (str pid name)) removed'))))))))\n\n(defn get-all-plugin-services-with-type\n [type]\n (when-let [installed (vals (:plugin\/installed-services @state))]\n (mapcat (fn [s] (filter #(= (keyword type) (:type %)) s)) installed)))\n\n(defn get-all-plugin-search-engines\n []\n (:search\/engines @state))\n\n(defn update-plugin-search-engine\n [pid name f]\n (when-let [pid (keyword pid)]\n (set-state! :search\/engines\n (update-vals (get-all-plugin-search-engines)\n #(if (and (= pid (:pid %)) (= name (:name %)))\n (f %) %)))))\n\n(defn reset-plugin-search-engines\n []\n (when-let [engines (get-all-plugin-search-engines)]\n (set-state! :search\/engines\n (update-vals engines #(assoc % :result nil)))))\n\n(defn install-plugin-hook\n ([pid hook] (install-plugin-hook pid hook true))\n ([pid hook opts]\n (when-let [pid (keyword pid)]\n (set-state!\n [:plugin\/installed-hooks hook]\n (assoc\n ((fnil identity {}) (get-in @state [:plugin\/installed-hooks hook]))\n pid opts)) true)))\n\n(defn uninstall-plugin-hook\n [pid hook-or-all]\n (when-let [pid (keyword pid)]\n (if (nil? hook-or-all)\n (swap! state update :plugin\/installed-hooks #(update-vals % (fn [ids] (dissoc ids pid))))\n (when-let [coll (get-in @state [:plugin\/installed-hooks hook-or-all])]\n (set-state! [:plugin\/installed-hooks hook-or-all] (dissoc coll pid))))\n true))\n\n(defn slot-hook-exist?\n [uuid]\n (when-let [type (and uuid (string\/replace (str uuid) \"-\" \"_\"))]\n (when-let [hooks (sub :plugin\/installed-hooks)]\n (contains? hooks (str \"hook:editor:slot_\" type)))))\n\n(defn active-tldraw-app\n []\n (when-let [tldraw-el (.querySelector js\/document.body \".logseq-tldraw[data-tlapp]\")]\n (gobj\/get js\/window.tlapps (.. tldraw-el -dataset -tlapp))))\n\n(defn tldraw-editing-logseq-block?\n []\n (when-let [app (active-tldraw-app)]\n (and (= 1 (.. app -selectedShapesArray -length))\n (= (.. app -editingShape) (.. app -selectedShapesArray (at 0))))))\n\n(defn set-graph-syncing?\n [value]\n (set-state! :graph\/syncing? value))\n\n(defn set-editor-in-composition!\n [value]\n (set-state! :editor\/in-composition? value))\n\n(defn editor-in-composition?\n []\n (:editor\/in-composition? @state))\n\n(defn set-loading-files!\n [repo value]\n (when repo\n (set-state! [:repo\/loading-files? repo] value)))\n\n(defn loading-files?\n [repo]\n (get-in @state [:repo\/loading-files? repo]))\n\n(defn set-editor-last-input-time!\n [repo time]\n (swap! state assoc-in [:editor\/last-input-time repo] time))\n\n(defn set-last-transact-time!\n [repo time]\n (swap! state assoc-in [:db\/last-transact-time repo] time)\n\n ;; THINK: new block, indent\/outdent, drag && drop, etc.\n (set-editor-last-input-time! repo time))\n\n(defn set-db-persisted!\n [repo value]\n (swap! state assoc-in [:db\/persisted? repo] value))\n\n(defn db-idle?\n [repo]\n (when repo\n (when-let [last-time (get-in @state [:db\/last-transact-time repo])]\n (let [now (util\/time-ms)]\n (>= (- now last-time) 3000)))))\n\n(defn input-idle?\n [repo & {:keys [diff]\n :or {diff 1000}}]\n (when repo\n (or\n (when-let [last-time (get-in @state [:editor\/last-input-time repo])]\n (let [now (util\/time-ms)]\n (>= (- now last-time) diff)))\n ;; not in editing mode\n ;; Is this a good idea to put whiteboard check here?\n (not (get-edit-input-id)))))\n\n(defn whiteboard-idle?\n \"Check if whiteboard is idle.\"\n [repo]\n (when repo\n (>= (- (util\/time-ms) (or (get-in @state [:whiteboard\/last-persisted-at repo])\n (- (util\/time-ms) 10000)))\n 3000)))\n\n(defn set-nfs-refreshing!\n [value]\n (set-state! :nfs\/refreshing? value))\n\n(defn nfs-refreshing?\n []\n (:nfs\/refreshing? @state))\n\n(defn set-search-result!\n [value]\n (set-state! :search\/result value))\n\n(defn clear-search-result!\n []\n (set-search-result! nil))\n\n(defn add-graph-search-filter!\n [q]\n (when-not (string\/blank? q)\n (update-state! :search\/graph-filters\n (fn [value]\n (vec (distinct (conj value q)))))))\n\n(defn remove-search-filter!\n [q]\n (when-not (string\/blank? q)\n (update-state! :search\/graph-filters\n (fn [value]\n (remove #{q} value)))))\n\n(defn clear-search-filters!\n []\n (set-state! :search\/graph-filters []))\n\n(defn get-search-mode\n []\n (:search\/mode @state))\n\n(defn toggle!\n [path]\n (update-state! path not))\n\n(defn toggle-settings!\n []\n (toggle! :ui\/settings-open?))\n\n(defn settings-open?\n []\n (:ui\/settings-open? @state))\n\n(defn close-settings!\n []\n (set-state! :ui\/settings-open? false))\n\n(defn open-settings!\n ([] (open-settings! true))\n ([active-tab] (set-state! :ui\/settings-open? active-tab)))\n\n;; TODO: Move those to the uni `state`\n\n(defn set-editor-op!\n [value]\n (set-state! :editor\/op value)\n (when value (set-state! :editor\/latest-op value)))\n\n(defn get-editor-op\n []\n (:editor\/op @state))\n\n(defn get-editor-latest-op\n []\n (:editor\/latest-op @state))\n\n(defn get-events-chan\n []\n (:system\/events @state))\n\n(defn pub-event!\n {:malli\/schema [:=> [:cat vector?] :any]}\n [payload]\n (let [d (p\/deferred)\n chan (get-events-chan)]\n (async\/put! chan [payload d])\n d))\n\n(defn get-export-block-text-indent-style []\n (:copy\/export-block-text-indent-style @state))\n\n(defn set-export-block-text-indent-style!\n [v]\n (set-state! :copy\/export-block-text-indent-style v)\n (storage\/set :copy\/export-block-text-indent-style v))\n\n(defn get-export-block-text-remove-options []\n (:copy\/export-block-text-remove-options @state))\n\n(defn update-export-block-text-remove-options!\n [e k]\n (let [f (if (util\/echecked? e) conj disj)]\n (update-state! :copy\/export-block-text-remove-options\n #(f % k))\n (storage\/set :copy\/export-block-text-remove-options\n (get-export-block-text-remove-options))))\n\n(defn get-export-block-text-other-options []\n (:copy\/export-block-text-other-options @state))\n\n(defn update-export-block-text-other-options!\n [k v]\n (update-state! :copy\/export-block-text-other-options #(assoc % k v)))\n\n(defn set-editor-args!\n [args]\n (set-state! :editor\/args args))\n\n(defn editing-whiteboard-portal?\n []\n (and (active-tldraw-app) (tldraw-editing-logseq-block?)))\n\n(defn block-component-editing?\n []\n (and (:block\/component-editing-mode? @state)\n (not (editing-whiteboard-portal?))))\n\n(defn set-block-component-editing-mode!\n [value]\n (set-state! :block\/component-editing-mode? value))\n\n(defn get-editor-args\n []\n (:editor\/args @state))\n\n(defn set-page-blocks-cp!\n [value]\n (set-state! [:view\/components :page-blocks] value))\n\n(defn get-page-blocks-cp\n []\n (get-in @state [:view\/components :page-blocks]))\n\n;; To avoid circular dependencies\n(defn set-component!\n [k value]\n (set-state! [:view\/components k] value))\n\n(defn get-component\n [k]\n (get-in @state [:view\/components k]))\n\n(defn exit-editing-and-set-selected-blocks!\n ([blocks]\n (exit-editing-and-set-selected-blocks! blocks :down))\n ([blocks direction]\n (clear-edit!)\n (set-selection-blocks! blocks direction)))\n\n(defn set-editing!\n ([edit-input-id content block cursor-range]\n (set-editing! edit-input-id content block cursor-range true))\n ([edit-input-id content block cursor-range move-cursor?]\n (if (> (count content)\n (block-content-max-length (get-current-repo)))\n (let [elements (array-seq (js\/document.getElementsByClassName (:block\/uuid block)))]\n (when (first elements)\n (util\/scroll-to-element (gobj\/get (first elements) \"id\")))\n (exit-editing-and-set-selected-blocks! elements))\n (when (and edit-input-id block\n (or\n (publishing-enable-editing?)\n (not @publishing?)))\n (let [block-element (gdom\/getElement (string\/replace edit-input-id \"edit-block\" \"ls-block\"))\n container (util\/get-block-container block-element)\n block (if container\n (assoc block\n :block.temp\/container (gobj\/get container \"id\"))\n block)\n content (string\/trim (or content \"\"))]\n (swap! state\n (fn [state]\n (-> state\n (assoc-in [:editor\/content edit-input-id] content)\n (assoc\n :editor\/block block\n :editor\/editing? {edit-input-id true}\n :editor\/last-key-code nil\n :editor\/set-timestamp-block nil\n :cursor-range cursor-range))))\n (when-let [input (gdom\/getElement edit-input-id)]\n (let [pos (count cursor-range)]\n (when content\n (util\/set-change-value input content))\n\n (when move-cursor?\n (cursor\/move-cursor-to input pos))\n\n (when (or (util\/mobile?) (mobile-util\/native-platform?))\n (set-state! :mobile\/show-action-bar? false)))))))))\n\n(defn action-bar-open?\n []\n (:mobile\/show-action-bar? @state))\n\n(defn remove-watch-state [key]\n (remove-watch state key))\n\n(defn get-git-auto-commit-enabled?\n []\n (false? (sub [:electron\/user-cfgs :git\/disable-auto-commit?])))\n\n(defn get-git-commit-on-close-enabled?\n []\n (sub [:electron\/user-cfgs :git\/commit-on-close?]))\n\n(defn set-last-key-code!\n [key-code]\n (set-state! :editor\/last-key-code key-code))\n\n(defn get-last-key-code\n []\n (:editor\/last-key-code @state))\n\n(defn set-block-op-type!\n [op-type]\n (set-state! :editor\/block-op-type op-type))\n\n(defn get-block-op-type\n []\n (:editor\/block-op-type @state))\n\n(defn feature-http-server-enabled?\n []\n (boolean (storage\/get ::storage-spec\/http-server-enabled)))\n\n(defn get-plugin-by-id\n [id]\n (when-let [id (and id (keyword id))]\n (get-in @state [:plugin\/installed-plugins id])))\n\n(defn get-enabled?-installed-plugins\n ([theme?] (get-enabled?-installed-plugins theme? true false false))\n ([theme? enabled? include-unpacked? include-all?]\n (filterv\n #(and (if include-unpacked? true (:iir %))\n (if-not (boolean? enabled?) true (= (not enabled?) (boolean (get-in % [:settings :disabled]))))\n (or include-all? (if (boolean? theme?) (= (boolean theme?) (:theme %)) true)))\n (vals (:plugin\/installed-plugins @state)))))\n\n(defn lsp-enabled?-or-theme\n []\n (:plugin\/enabled @state))\n\n(def lsp-enabled?\n (lsp-enabled?-or-theme))\n\n(defn consume-updates-from-coming-plugin!\n [payload updated?]\n (when-let [id (keyword (:id payload))]\n (let [prev-pending? (boolean (seq (:plugin\/updates-pending @state)))]\n (println \"Updates: consumed pending - \" id)\n (swap! state update :plugin\/updates-pending dissoc id)\n (if updated?\n (if-let [error (:error-code payload)]\n (swap! state update-in [:plugin\/updates-coming id] assoc :error-code error)\n (swap! state update :plugin\/updates-coming dissoc id))\n (swap! state update :plugin\/updates-coming assoc id payload))\n (pub-event! [:plugin\/consume-updates id prev-pending? updated?]))))\n\n(defn coming-update-new-version?\n [pkg]\n (and pkg (:latest-version pkg)))\n\n(defn plugin-update-available?\n [id]\n (when-let [pkg (and id (get (:plugin\/updates-coming @state) (keyword id)))]\n (coming-update-new-version? pkg)))\n\n(defn all-available-coming-updates\n ([] (all-available-coming-updates (:plugin\/updates-coming @state)))\n ([updates] (when-let [updates (vals updates)]\n (filterv #(coming-update-new-version? %) updates))))\n\n(defn get-next-selected-coming-update\n []\n (when-let [updates (all-available-coming-updates)]\n (let [unchecked (:plugin\/updates-unchecked @state)]\n (first (filter #(and (not (and (seq unchecked) (contains? unchecked (:id %))))\n (not (:error-code %))) updates)))))\n\n(defn set-unchecked-update\n [id unchecked?]\n (swap! state update :plugin\/updates-unchecked (if unchecked? conj disj) id))\n\n(defn reset-unchecked-update\n []\n (swap! state assoc :plugin\/updates-unchecked #{}))\n\n(defn reset-all-updates-state\n []\n (swap! state assoc\n :plugin\/updates-auto-checking? false\n :plugin\/updates-pending {}\n :plugin\/updates-coming {}\n :plugin\/updates-downloading? false))\n\n(defn sub-right-sidebar-blocks\n []\n (when-let [current-repo (get-current-repo)]\n (->> (sub :sidebar\/blocks)\n (filter #(= (first %) current-repo)))))\n\n\n(defn toggle-collapsed-block!\n [block-id]\n (let [current-repo (get-current-repo)]\n (update-state! [:ui\/collapsed-blocks current-repo block-id] not)))\n\n(defn set-collapsed-block!\n [block-id value]\n (let [current-repo (get-current-repo)]\n (set-state! [:ui\/collapsed-blocks current-repo block-id] value)))\n\n(defn sub-collapsed\n [block-id]\n (sub [:ui\/collapsed-blocks (get-current-repo) block-id]))\n\n(defn get-modal-id\n []\n (:modal\/id @state))\n\n(defn edit-in-query-or-refs-component\n []\n (let [config (last (get-editor-args))]\n {:custom-query? (:custom-query? config)\n :ref? (:ref? config)}))\n\n(defn set-auth-id-token\n [id-token]\n (set-state! :auth\/id-token id-token))\n\n(defn set-auth-refresh-token\n [refresh-token]\n (set-state! :auth\/refresh-token refresh-token))\n\n(defn set-auth-access-token\n [access-token]\n (set-state! :auth\/access-token access-token))\n\n(defn get-auth-id-token []\n (sub :auth\/id-token))\n\n(defn get-auth-refresh-token []\n (:auth\/refresh-token @state))\n\n(defn set-file-sync-manager [graph-uuid v]\n (when (and graph-uuid v)\n (set-state! [:file-sync\/graph-state graph-uuid :file-sync\/sync-manager] v)))\n\n(defn get-file-sync-manager [graph-uuid]\n (get-in @state [:file-sync\/graph-state graph-uuid :file-sync\/sync-manager]))\n\n(defn clear-file-sync-state! [graph-uuid]\n (set-state! [:file-sync\/graph-state graph-uuid] nil))\n\n(defn clear-file-sync-progress! [graph-uuid]\n (set-state! [:file-sync\/graph-state\n graph-uuid\n :file-sync\/progress]\n nil))\n\n(defn set-file-sync-state [graph-uuid v]\n (when v (s\/assert :frontend.fs.sync\/sync-state v))\n (set-state! [:file-sync\/graph-state graph-uuid :file-sync\/sync-state] v))\n\n(defn get-current-file-sync-graph-uuid\n []\n (get-in @state [:file-sync\/graph-state :current-graph-uuid]))\n\n(defn sub-current-file-sync-graph-uuid\n []\n (sub [:file-sync\/graph-state :current-graph-uuid]))\n\n(defn get-file-sync-state\n ([]\n (get-file-sync-state (get-current-file-sync-graph-uuid)))\n ([graph-uuid]\n (get-in @state [:file-sync\/graph-state graph-uuid :file-sync\/sync-state])))\n\n(defn sub-file-sync-state\n [graph-uuid]\n (sub [:file-sync\/graph-state graph-uuid :file-sync\/sync-state]))\n\n(defn reset-parsing-state!\n []\n (set-state! [:graph\/parsing-state (get-current-repo)] {}))\n\n(defn set-parsing-state!\n [m]\n (update-state! [:graph\/parsing-state (get-current-repo)]\n (if (fn? m) m\n (fn [old-value] (merge old-value m)))))\n\n(defn http-proxy-enabled-or-val? []\n (when-let [{:keys [type protocol host port] :as agent-opts} (sub [:electron\/user-cfgs :settings\/agent])]\n (when (and (not (contains? #{\"system\"} type))\n (every? not-empty (vals agent-opts)))\n (str protocol \":\/\/\" host \":\" port))))\n\n(defn set-mobile-app-state-change\n [is-active?]\n (set-state! :mobile\/app-state-change\n {:is-active? is-active?\n :timestamp (inst-ms (js\/Date.))}))\n\n(defn get-sync-graph-by-id\n [graph-uuid]\n (when graph-uuid\n (let [graph (first (filter #(= graph-uuid (:GraphUUID %))\n (get-repos)))]\n (when (:url graph)\n graph))))\n\n(defn unlinked-dir?\n [dir]\n (contains? (:file\/unlinked-dirs @state) dir))\n\n(defn get-file-rename-event-chan\n []\n (:file\/rename-event-chan @state))\n\n(defn offer-file-rename-event-chan!\n [v]\n {:pre [(map? v)\n (= #{:repo :old-path :new-path} (set (keys v)))]}\n (async\/offer! (get-file-rename-event-chan) v))\n\n(defn set-onboarding-whiteboard!\n [v]\n (set-state! :whiteboard\/onboarding-whiteboard? v)\n (storage\/set :ls-onboarding-whiteboard? v))\n\n(defn get-onboarding-whiteboard?\n []\n (get-in @state [:whiteboard\/onboarding-whiteboard?]))\n\n(defn get-local-container-root-url\n []\n (when (mobile-util\/native-ios?)\n (get-in @state [:mobile\/container-urls :localContainerUrl])))\n\n(defn get-icloud-container-root-url\n []\n (when (mobile-util\/native-ios?)\n (get-in @state [:mobile\/container-urls :iCloudContainerUrl])))\n\n(defn get-current-pdf\n []\n (:pdf\/current @state))\n\n(defn nfs-user-granted?\n [repo]\n (get-in @state [:nfs\/user-granted? repo]))\n\n(defn set-current-pdf!\n [inflated-file]\n (let [settle-file! #(set-state! :pdf\/current inflated-file)]\n (if-not (get-current-pdf)\n (settle-file!)\n (when (apply not= (map :identity [inflated-file (get-current-pdf)]))\n (set-state! :pdf\/current nil)\n (js\/setTimeout #(settle-file!) 16)))))\n\n(defn focus-whiteboard-shape\n ([shape-id]\n (focus-whiteboard-shape (active-tldraw-app) shape-id))\n ([tln shape-id]\n (when-let [^js api (gobj\/get tln \"api\")]\n (when (and shape-id (parse-uuid shape-id))\n (. api selectShapes shape-id)\n (. api zoomToSelection)))))\n\n(defn set-user-info!\n [info]\n (when info\n (set-state! :user\/info info)\n (let [groups (:UserGroups info)]\n (when (seq groups)\n (storage\/set :user-groups groups)))))\n\n(defn get-user-info []\n (sub :user\/info))\n\n(defn clear-user-info!\n []\n (storage\/remove :user-groups))\n\n(defn get-color-accent []\n (get @state :ui\/radix-color))\n\n(defn set-color-accent! [color]\n (swap! state assoc :ui\/radix-color color)\n (storage\/set :ui\/radix-color color)\n (util\/set-android-theme))\n\n(defn unset-color-accent! []\n (swap! state assoc :ui\/radix-color :logseq)\n (storage\/remove :ui\/radix-color)\n (util\/set-android-theme))\n\n(defn handbook-open?\n []\n (:ui\/handbooks-open? @state))\n\n(defn get-handbook-route-chan\n []\n (:handbook\/route-chan @state))\n\n(defn open-handbook-pane!\n [k]\n (when-not (handbook-open?)\n (set-state! :ui\/handbooks-open? true))\n (js\/setTimeout #(async\/go\n (>! (get-handbook-route-chan) k))))\n\n(defn set-page-properties-changed!\n [page-name]\n (when-not (string\/blank? page-name)\n (update-state! [:db\/properties-changed-pages page-name] #(inc %))))\n\n(defn sub-page-properties-changed\n [page-name]\n (when-not (string\/blank? page-name)\n (sub [:db\/properties-changed-pages page-name])))\n","(ns frontend.extensions.tldraw\n \"Adapters related to tldraw\"\n (:require [\"\/frontend\/tldraw-logseq\" :as TldrawLogseq]\n [frontend.components.block :as block]\n [frontend.components.export :as export]\n [frontend.components.page :as page]\n [frontend.config :as config]\n [frontend.context.i18n :refer [t]]\n [frontend.db.model :as model]\n [frontend.db :as db]\n [frontend.extensions.pdf.assets :as pdf-assets]\n [frontend.handler.editor :as editor-handler]\n [frontend.handler.route :as route-handler]\n [frontend.handler.whiteboard :as whiteboard-handler]\n [frontend.handler.history :as history]\n [frontend.rum :as r]\n [frontend.search :as search]\n [frontend.state :as state]\n [frontend.util :as util]\n [goog.object :as gobj]\n [promesa.core :as p]\n [rum.core :as rum]\n [frontend.ui :as ui]\n [frontend.components.whiteboard :as whiteboard]\n [cljs-bean.core :as bean]))\n\n(def tldraw (r\/adapt-class (gobj\/get TldrawLogseq \"App\")))\n\n(def generate-preview (gobj\/get TldrawLogseq \"generateJSXFromModel\"))\n\n(rum\/defc page-cp\n [props]\n (page\/page {:page-name (model\/get-redirect-page-name (gobj\/get props \"pageName\")) :whiteboard? true}))\n\n(rum\/defc block-cp\n [props]\n ((state\/get-component :block\/single-block) (uuid (gobj\/get props \"blockId\"))))\n\n(rum\/defc breadcrumb\n [props]\n (block\/breadcrumb {:preview? true}\n (state\/get-current-repo)\n (uuid (gobj\/get props \"blockId\"))\n {:end-separator? (gobj\/get props \"endSeparator\")\n :level-limit (gobj\/get props \"levelLimit\" 3)}))\n\n(rum\/defc tweet\n [props]\n (ui\/tweet-embed (gobj\/get props \"tweetId\")))\n\n(rum\/defc block-reference\n [props]\n (block\/block-reference {} (gobj\/get props \"blockId\") nil))\n\n(rum\/defc page-name-link\n [props]\n (block\/page-cp {:preview? true} {:block\/name (gobj\/get props \"pageName\")}))\n\n(defn search-handler\n [q filters]\n (let [{:keys [pages? blocks? files?]} (js->clj filters {:keywordize-keys true})\n repo (state\/get-current-repo)\n limit 100]\n (p\/let [blocks (when blocks? (search\/block-search repo q {:limit limit}))\n pages (when pages? (search\/page-search q))\n files (when files? (search\/file-search q limit))]\n (clj->js {:pages pages :blocks blocks :files files}))))\n\n(defn save-asset-handler\n [file]\n (-> (editor-handler\/save-assets! (state\/get-current-repo) [(js->clj file)])\n (p\/then\n (fn [res]\n (when-let [[asset-file-name _ full-file-path] (and (seq res) (first res))]\n (editor-handler\/resolve-relative-path (or full-file-path asset-file-name)))))))\n\n(defn references-count\n [props]\n (apply whiteboard\/references-count\n (map (fn [k] (js->clj (gobj\/get props k) {:keywordize-keys true})) [\"id\" \"className\" \"options\"])))\n\n(rum\/defc keyboard-shortcut\n [^js props]\n (when-let [props (bean\/->clj props)]\n (let [{:keys [action shortcut opts]} props\n shortcut (if (string? action) (ui\/keyboard-shortcut-from-config (keyword action)) shortcut)\n opts (merge {:interactive? false} opts)]\n (cond\n (string? shortcut) (ui\/render-keyboard-shortcut shortcut opts)\n :else (interpose \" | \" (map #(ui\/render-keyboard-shortcut % opts) shortcut))))))\n\n(def tldraw-renderers {:Page page-cp\n :Block block-cp\n :Breadcrumb breadcrumb\n :Tweet tweet\n :PageName page-name-link\n :BacklinksCount references-count\n :BlockReference block-reference\n :KeyboardShortcut keyboard-shortcut})\n\n(def undo (fn [] (history\/undo! nil)))\n(def redo (fn [] (history\/redo! nil)))\n(defn get-tldraw-handlers [current-whiteboard-name]\n {:t (fn [key] (t (keyword key)))\n :search search-handler\n :queryBlockByUUID (fn [block-uuid]\n (clj->js\n (model\/query-block-by-uuid (parse-uuid block-uuid))))\n :getBlockPageName #(let [block-id-str %]\n (if (util\/uuid-string? block-id-str)\n (:block\/name (model\/get-block-page (state\/get-current-repo) (parse-uuid block-id-str)))\n (:block\/name (db\/entity [:block\/name (util\/page-name-sanity-lc block-id-str)]))))\n :exportToImage (fn [page-name options] (state\/set-modal! #(export\/export-blocks page-name (merge (js->clj options :keywordize-keys true) {:whiteboard? true}))))\n :isWhiteboardPage model\/whiteboard-page?\n :isMobile util\/mobile?\n :saveAsset save-asset-handler\n :makeAssetUrl editor-handler\/make-asset-url\n :inflateAsset (fn [src] (clj->js (pdf-assets\/inflate-asset src)))\n :setCurrentPdf (fn [src] (state\/set-current-pdf! (if src (pdf-assets\/inflate-asset src) nil)))\n :copyToClipboard (fn [text, html] (util\/copy-to-clipboard! text :html html))\n :getRedirectPageName (fn [page-name-or-uuid] (model\/get-redirect-page-name page-name-or-uuid))\n :insertFirstPageBlock (fn [page-name] (editor-handler\/insert-first-page-block-if-not-exists! page-name {:redirect? false}))\n :addNewWhiteboard (fn [page-name]\n (whiteboard-handler\/create-new-whiteboard-page! page-name))\n :addNewBlock (fn [content]\n (str (whiteboard-handler\/add-new-block! current-whiteboard-name content)))\n :sidebarAddBlock (fn [uuid type]\n (state\/sidebar-add-block! (state\/get-current-repo)\n (:db\/id (model\/get-page uuid))\n (keyword type)))\n :redirectToPage (fn [page-name-or-uuid]\n (let [page-name (or (when (util\/uuid-string? page-name-or-uuid)\n (:block\/name (model\/get-block-page (state\/get-current-repo)\n (parse-uuid page-name-or-uuid))))\n page-name-or-uuid)\n page-exists? (model\/page-exists? page-name)\n whiteboard? (model\/whiteboard-page? page-name)]\n (when page-exists?\n (if whiteboard?\n (route-handler\/redirect-to-whiteboard! page-name {:block-id page-name-or-uuid})\n (route-handler\/redirect-to-page! (model\/get-redirect-page-name page-name-or-uuid))))))})\n\n(rum\/defc tldraw-app\n [page-name block-id]\n (let [populate-onboarding? (whiteboard-handler\/should-populate-onboarding-whiteboard? page-name)\n data (whiteboard-handler\/page-name->tldr! page-name)\n [loaded-app set-loaded-app] (rum\/use-state nil)\n on-mount (fn [^js tln]\n (when tln\n (set! (.-appUndo tln) undo)\n (set! (.-appRedo tln) redo)\n (when-let [^js api (gobj\/get tln \"api\")]\n (p\/then (when populate-onboarding?\n (whiteboard-handler\/populate-onboarding-whiteboard api))\n #(do (whiteboard-handler\/cleanup! (.-currentPage tln))\n (state\/focus-whiteboard-shape tln block-id)\n (set-loaded-app tln))))))]\n (rum\/use-effect! (fn []\n (when (and loaded-app block-id)\n (state\/focus-whiteboard-shape loaded-app block-id))\n #())\n [block-id loaded-app])\n (when data\n [:div.draw.tldraw.whiteboard.relative.w-full.h-full\n {:style {:overscroll-behavior \"none\"}\n :on-blur (fn [e]\n (when (#{\"INPUT\" \"TEXTAREA\"} (.-tagName (gobj\/get e \"target\")))\n (state\/clear-edit!)))\n ;; wheel -> overscroll may cause browser navigation\n :on-wheel util\/stop-propagation}\n\n (when\n (and populate-onboarding? (not loaded-app))\n [:div.absolute.inset-0.flex.items-center.justify-center\n {:style {:z-index 200}}\n (ui\/loading \"Loading onboarding whiteboard ...\")])\n (tldraw {:renderers tldraw-renderers\n :handlers (get-tldraw-handlers page-name)\n :onMount on-mount\n :readOnly config\/publishing?\n :onPersist (fn [app info]\n (state\/set-state! [:whiteboard\/last-persisted-at (state\/get-current-repo)] (util\/time-ms))\n (util\/profile \"tldraw persist\"\n (whiteboard-handler\/transact-tldr-delta! page-name app (.-replace info))))\n :model data})])))\n","(ns frontend.search\n \"Provides search functionality for a number of features including Cmd-K\n search. Most of these fns depend on the search protocol\"\n (:require [cljs-bean.core :as bean]\n [clojure.string :as string]\n [logseq.graph-parser.config :as gp-config]\n [frontend.db :as db]\n [frontend.db.model :as db-model]\n [frontend.regex :as regex]\n [frontend.search.agency :as search-agency]\n [frontend.search.db :as search-db :refer [indices]]\n [frontend.search.protocol :as protocol]\n [frontend.state :as state]\n [frontend.util :as util]\n [frontend.util.property :as property]\n [goog.object :as gobj]\n [promesa.core :as p]\n [clojure.set :as set]\n [frontend.modules.datascript-report.core :as db-report]))\n\n(defn get-engine\n [repo]\n (search-agency\/->Agency repo))\n\n;; Copied from https:\/\/gist.github.com\/vaughnd\/5099299\n(defn str-len-distance\n ;; normalized multiplier 0-1\n ;; measures length distance between strings.\n ;; 1 = same length\n [s1 s2]\n (let [c1 (count s1)\n c2 (count s2)\n maxed (max c1 c2)\n mined (min c1 c2)]\n (double (- 1\n (\/ (- maxed mined)\n maxed)))))\n\n(def MAX-STRING-LENGTH 1000.0)\n\n(defn clean-str\n [s]\n (string\/replace (string\/lower-case s) #\"[\\[ \\\\\/_\\]\\(\\)]+\" \"\"))\n\n(def escape-str regex\/escape)\n\n(defn char-array\n [s]\n (bean\/->js (seq s)))\n\n(defn score\n [oquery ostr]\n (let [query (clean-str oquery)\n str (clean-str ostr)]\n (loop [q (seq (char-array query))\n s (seq (char-array str))\n mult 1\n idx MAX-STRING-LENGTH\n score 0]\n (cond\n ;; add str-len-distance to score, so strings with matches in same position get sorted by length\n ;; boost score if we have an exact match including punctuation\n (empty? q) (+ score\n (str-len-distance query str)\n (if (<= 0 (.indexOf ostr oquery)) MAX-STRING-LENGTH 0))\n (empty? s) 0\n :else (if (= (first q) (first s))\n (recur (rest q)\n (rest s)\n (inc mult) ;; increase the multiplier as more query chars are matched\n (dec idx) ;; decrease idx so score gets lowered the further into the string we match\n (+ mult score)) ;; score for this match is current multiplier * idx\n (recur q\n (rest s)\n 1 ;; when there is no match, reset multiplier to one\n (dec idx)\n score))))))\n\n(defn fuzzy-search\n [data query & {:keys [limit extract-fn]\n :or {limit 20}}]\n (let [query (util\/search-normalize query (state\/enable-search-remove-accents?))]\n (->> (take limit\n (sort-by :score (comp - compare)\n (filter #(< 0 (:score %))\n (for [item data]\n (let [s (str (if extract-fn (extract-fn item) item))]\n {:data item\n :score (score query (util\/search-normalize s (state\/enable-search-remove-accents?)))})))))\n (map :data))))\n\n(defn block-search\n [repo q option]\n (when-let [engine (get-engine repo)]\n (let [q (util\/search-normalize q (state\/enable-search-remove-accents?))\n q (if (util\/electron?) q (escape-str q))]\n (when-not (string\/blank? q)\n (protocol\/query engine q option)))))\n\n(defn page-content-search\n [repo q option]\n (when-let [engine (get-engine repo)]\n (let [q (util\/search-normalize q (state\/enable-search-remove-accents?))\n q (if (util\/electron?) q (escape-str q))]\n (when-not (string\/blank? q)\n (protocol\/query-page engine q option)))))\n\n(defn- transact-blocks!\n [repo data]\n (when-let [engine (get-engine repo)]\n (protocol\/transact-blocks! engine data)))\n\n(defn- transact-pages!\n \"Transact pages to search engine\n :pages-to-remove-set the set of pages to remove (not include those to update)\n :pages-to-add the page entities to add\"\n [repo data]\n (when-let [engine (get-engine repo)]\n (protocol\/transact-pages! engine data)))\n\n(defn exact-matched?\n \"Check if two strings points toward same search result\"\n [q match]\n (when (and (string? q) (string? match))\n (boolean\n (reduce\n (fn [coll char]\n (let [coll' (drop-while #(not= char %) coll)]\n (if (seq coll')\n (rest coll')\n (reduced false))))\n (seq (util\/search-normalize match (state\/enable-search-remove-accents?)))\n (seq (util\/search-normalize q (state\/enable-search-remove-accents?)))))))\n\n(defn page-search\n \"Return a list of page names that match the query\"\n ([q]\n (page-search q 100))\n ([q limit]\n (when-let [repo (state\/get-current-repo)]\n (let [q (util\/search-normalize q (state\/enable-search-remove-accents?))\n q (clean-str q)]\n (when-not (string\/blank? q)\n (let [indice (or (get-in @indices [repo :pages])\n (search-db\/make-pages-title-indice!))\n result (->> (.search indice q (clj->js {:limit limit}))\n (bean\/->clj))]\n (->> result\n (util\/distinct-by (fn [i] (string\/trim (get-in i [:item :name]))))\n (map\n (fn [{:keys [item]}]\n (:original-name item)))\n (remove nil?)\n (map string\/trim)\n (distinct)\n (filter (fn [original-name]\n (exact-matched? q original-name))))))))))\n\n(defn file-search\n ([q]\n (file-search q 3))\n ([q limit]\n (let [q (clean-str q)]\n (when-not (string\/blank? q)\n (let [mldoc-exts (set (map name gp-config\/mldoc-support-formats))\n files (->> (db\/get-files (state\/get-current-repo))\n (map first)\n (remove (fn [file]\n (mldoc-exts (util\/get-file-ext file)))))]\n (when (seq files)\n (fuzzy-search files q :limit limit)))))))\n\n(defn template-search\n ([q]\n (template-search q 100))\n ([q limit]\n (when q\n (let [q (clean-str q)\n templates (db\/get-all-templates)]\n (when (seq templates)\n (let [result (fuzzy-search (keys templates) q :limit limit)]\n (vec (select-keys templates result))))))))\n\n(defn get-all-properties\n []\n (->> (db-model\/get-all-properties)\n (remove (property\/hidden-properties))\n ;; Complete full keyword except the ':'\n (map #(subs (str %) 1))))\n\n(defn property-search\n ([q]\n (property-search q 100))\n ([q limit]\n (when q\n (let [q (clean-str q)\n properties (get-all-properties)]\n (when (seq properties)\n (if (string\/blank? q)\n properties\n (let [result (fuzzy-search properties q :limit limit)]\n (vec result))))))))\n\n(defn property-value-search\n ([property q]\n (property-value-search property q 100))\n ([property q limit]\n (when q\n (let [q (clean-str q)\n result (db-model\/get-property-values (keyword property))]\n (when (seq result)\n (if (string\/blank? q)\n result\n (let [result (fuzzy-search result q :limit limit)]\n (vec result))))))))\n\n(defn- get-pages-from-datoms-impl\n [pages]\n (let [pages-result (db\/pull-many '[:db\/id :block\/name :block\/original-name] (set (map :e pages)))\n pages-to-add-set (->> (filter :added pages)\n (map :e)\n (set))\n pages-to-add (->> (filter (fn [page]\n (contains? pages-to-add-set (:db\/id page))) pages-result)\n (map (fn [p] (or (:block\/original-name p)\n (:block\/name p))))\n (remove string\/blank?)\n (map search-db\/original-page-name->index))\n pages-to-remove-set (->> (remove :added pages)\n (map :v)\n set)\n pages-to-remove-id-set (->> (remove :added pages)\n (map :e)\n set)]\n {:pages-to-add pages-to-add\n :pages-to-remove-set pages-to-remove-set\n :pages-to-add-id-set pages-to-add-set\n :pages-to-remove-id-set pages-to-remove-id-set}))\n\n(defn- get-blocks-from-datoms-impl\n [blocks]\n (when (seq blocks)\n (let [blocks-result (->> (db\/pull-many '[:db\/id :block\/uuid :block\/format :block\/content :block\/page] (set (map :e blocks)))\n (map (fn [b] (assoc b :block\/page (get-in b [:block\/page :db\/id])))))\n blocks-to-add-set (->> (filter :added blocks)\n (map :e)\n (set))\n blocks-to-add (->> (filter (fn [block]\n (contains? blocks-to-add-set (:db\/id block)))\n blocks-result)\n (map search-db\/block->index)\n (remove nil?))\n blocks-to-remove-set (->> (remove :added blocks)\n (map :e)\n (set))]\n {:blocks-to-remove-set blocks-to-remove-set\n :blocks-to-add blocks-to-add})))\n\n(defn- get-direct-blocks-and-pages\n [tx-report]\n (let [data (:tx-data tx-report)\n datoms (filter\n (fn [datom]\n ;; Capture any direct change on page display title, page ref or block content\n (contains? #{:block\/name :block\/original-name :block\/content} (:a datom)))\n data)]\n (when (seq datoms)\n (let [datoms (group-by :a datoms)\n blocks (:block\/content datoms)\n pages (concat ;; Duplicated eids are handled in `get-pages-from-datoms-impl`\n (:block\/name datoms)\n (:block\/original-name datoms))]\n (merge (get-blocks-from-datoms-impl blocks)\n (get-pages-from-datoms-impl pages))))))\n\n(defn- get-indirect-pages\n \"Return the set of pages that will have content updated\"\n [tx-report]\n (let [data (:tx-data tx-report)\n datoms (filter\n (fn [datom]\n (and (:added datom)\n (contains? #{:file\/content} (:a datom))))\n data)]\n (when (seq datoms)\n (->> datoms\n (mapv (fn [datom]\n (let [tar-db (:db-after tx-report)]\n ;; Reverse query the corresponding page id of the modified `:file\/content`)\n (when-let [page-id (->> (:e datom)\n (db-report\/safe-pull tar-db '[:block\/_file])\n (:block\/_file)\n (first)\n (:db\/id))]\n ;; Fetch page entity according to what page->index requested\n (db-report\/safe-pull tar-db '[:db\/id :block\/uuid\n :block\/original-name\n {:block\/file [:file\/content]}]\n page-id)))))\n (remove nil?)))))\n\n;; TODO merge with logic in `invoke-hooks` when feature and test is sufficient\n(defn sync-search-indice!\n [repo tx-report]\n (let [{:keys [pages-to-add pages-to-remove-set pages-to-remove-id-set\n blocks-to-add blocks-to-remove-set]} (get-direct-blocks-and-pages tx-report) ;; directly modified block & pages\n updated-pages (get-indirect-pages tx-report)]\n ;; update page title indice\n (when (or (seq pages-to-add) (seq pages-to-remove-set))\n (swap! search-db\/indices update-in [repo :pages]\n (fn [indice]\n (when indice\n (doseq [page-name pages-to-remove-set]\n (.remove indice\n (fn [page]\n (= (util\/safe-page-name-sanity-lc page-name)\n (util\/safe-page-name-sanity-lc (gobj\/get page \"original-name\"))))))\n (when (seq pages-to-add)\n (doseq [page pages-to-add]\n (.add indice (bean\/->js page)))))\n indice)))\n\n ;; update block indice\n (when (or (seq blocks-to-add) (seq blocks-to-remove-set))\n (transact-blocks! repo\n {:blocks-to-remove-set blocks-to-remove-set\n :blocks-to-add blocks-to-add}))\n\n ;; update page indice\n (when (or (seq pages-to-remove-id-set) (seq updated-pages)) ;; when move op happens, no :block\/content provided\n (let [indice-pages (map search-db\/page->index updated-pages)\n invalid-set (->> (map (fn [updated indiced] ;; get id of pages without valid page index\n (if indiced nil (:db\/id updated)))\n updated-pages indice-pages)\n (remove nil?)\n set)\n pages-to-add (->> indice-pages\n (remove nil?)\n set)\n pages-to-remove-set (set\/union pages-to-remove-id-set invalid-set)]\n (transact-pages! repo {:pages-to-remove-set pages-to-remove-set\n :pages-to-add pages-to-add})))))\n\n(defn rebuild-indices!\n ([]\n (rebuild-indices! (state\/get-current-repo)))\n ([repo]\n (when repo\n (when-let [engine (get-engine repo)]\n (let [page-titles (search-db\/make-pages-title-indice!)]\n (p\/let [blocks (protocol\/rebuild-blocks-indice! engine)]\n (let [result {:pages page-titles ;; TODO: rename key to :page-titles\n :blocks blocks}]\n (swap! indices assoc repo result)\n indices)))))))\n\n(defn reset-indice!\n [repo]\n (when-let [engine (get-engine repo)]\n (protocol\/truncate-blocks! engine))\n (swap! indices assoc-in [repo :pages] nil))\n\n(defn remove-db!\n [repo]\n (when-let [engine (get-engine repo)]\n (protocol\/remove-db! engine)))\n","(ns datascript.core\n (:refer-clojure :exclude [filter])\n (:require\n [#?(:cljs cljs.reader :clj clojure.edn) :as edn]\n [datascript.db :as db #?@(:cljs [:refer [Datom DB FilteredDB]])]\n #?(:clj [datascript.pprint])\n [datascript.pull-api :as dp]\n [datascript.serialize :as ds]\n [datascript.storage :as storage]\n [datascript.query :as dq]\n [datascript.impl.entity :as de]\n [datascript.util :as util]\n [me.tonsky.persistent-sorted-set :as set])\n #?(:clj\n (:import\n [datascript.db Datom DB FilteredDB]\n [datascript.impl.entity Entity]\n [java.util UUID])))\n\n(def ^:const ^:no-doc tx0 db\/tx0)\n\n\n; Entities\n\n(def ^{:tag Entity\n :arglists '([db eid])\n :doc \"Retrieves an entity by its id from database. Entities are lazy map-like structures to navigate DataScript database content.\n\n For `eid` pass entity id or lookup attr:\n \n (entity db 1)\n (entity db [:unique-attr :value])\n \n If entity does not exist, `nil` is returned:\n\n (entity db 100500) ; => nil\n\n Creating an entity by id is very cheap, almost no-op, as attr access is on-demand:\n\n (entity db 1) ; => {:db\/id 1}\n\n Entity attributes can be lazily accessed through key lookups:\n \n (:attr (entity db 1)) ; => :value\n (get (entity db 1) :attr) ; => :value\n\n Cardinality many attributes are returned sequences:\n\n (:attrs (entity db 1)) ; => [:v1 :v2 :v3]\n\n Reference attributes are returned as another entities:\n\n (:ref (entity db 1)) ; => {:db\/id 2}\n (:ns\/ref (entity db 1)) ; => {:db\/id 2}\n\n References can be walked backwards by prepending `_` to name part of an attribute:\n\n (:_ref (entity db 2)) ; => [{:db\/id 1}]\n (:ns\/_ref (entity db 2)) ; => [{:db\/id 1}]\n \n Reverse reference lookup returns sequence of entities unless attribute is marked as `:db\/isComponent`:\n\n (:_component-ref (entity db 2)) ; => {:db\/id 1}\n\n Entity gotchas:\n \n - Entities print as map, but are not exactly maps (they have compatible get interface though).\n - Entities are effectively immutable \u201cviews\u201d into a particular version of a database.\n - Entities retain reference to the whole database.\n - You can\u2019t change database through entities, only read.\n - Creating an entity by id is very cheap, almost no-op (attributes are looked up on demand).\n - Comparing entities just compares their ids. Be careful when comparing entities taken from different dbs or from different versions of the same db.\n - Accessed entity attributes are cached on entity itself (except backward references).\n - When printing, only cached attributes (the ones you have accessed before) are printed. See [[touch]].\"}\n entity de\/entity)\n\n(def ^{:arglists '([db eid])\n :doc \"Given lookup ref `[unique-attr value]`, returns numberic entity id.\n\n If entity does not exist, returns `nil`.\"}\n entid db\/entid)\n\n(defn ^DB entity-db\n \"Returns a db that entity was created from.\"\n [^Entity entity]\n {:pre [(de\/entity? entity)]}\n (.-db entity))\n\n(def ^{:tag Entity\n :arglists '([e])\n :doc \"Forces all entity attributes to be eagerly fetched and cached. Only usable for debug output.\n\n Usage:\n\n ```\n (entity db 1) ; => {:db\/id 1}\n (touch (entity db 1)) ; => {:db\/id 1, :dislikes [:pie], :likes [:pizza]}\n ```\"}\n touch de\/touch)\n\n\n; Pull\n\n(def ^{:arglists '([db selector eid])\n :doc \"Fetches data from database using recursive declarative description. See [docs.datomic.com\/on-prem\/pull.html](https:\/\/docs.datomic.com\/on-prem\/pull.html).\n\n Unlike [[entity]], returns plain Clojure map (not lazy).\n\n Usage:\n\n (pull db [:db\/id, :name, :likes, {:friends [:db\/id :name]}] 1)\n ; => {:db\/id 1,\n ; :name \\\"Ivan\\\"\n ; :likes [:pizza]\n ; :friends [{:db\/id 2, :name \\\"Oleg\\\"}]}\"}\n pull dp\/pull)\n\n(def ^{:arglists '([db selector eids])\n :doc \"Same as [[pull]], but accepts sequence of ids and returns sequence of maps.\n\n Usage:\n\n ```\n (pull-many db [:db\/id :name] [1 2])\n ; => [{:db\/id 1, :name \\\"Ivan\\\"}\n ; {:db\/id 2, :name \\\"Oleg\\\"}]\n ```\"}\n pull-many dp\/pull-many)\n\n; Query\n\n(def\n ^{:arglists '([query & inputs])\n :doc \"Executes a datalog query. See [docs.datomic.com\/on-prem\/query.html](https:\/\/docs.datomic.com\/on-prem\/query.html).\n\n Usage:\n \n ```\n (q '[:find ?value\n :where [_ :likes ?value]]\n db)\n ; => #{[\\\"fries\\\"] [\\\"candy\\\"] [\\\"pie\\\"] [\\\"pizza\\\"]}\n ```\"}\n q dq\/q)\n\n\n; Creating DB\n\n(defn- maybe-adapt-storage [opts]\n #?(:clj\n (if-some [storage (:storage opts)]\n (update opts :storage storage\/make-storage-adapter opts)\n opts)\n :cljs opts))\n\n(defn ^DB empty-db\n \"Creates an empty database with an optional schema.\n\n Usage:\n \n ```\n (empty-db) ; => #datascript\/DB {:schema {}, :datoms []}\n\n (empty-db {:likes {:db\/cardinality :db.cardinality\/many}})\n ; => #datascript\/DB {:schema {:likes {:db\/cardinality :db.cardinality\/many}}\n ; :datoms []}\n ```\n \n Options are:\n \n :branching-factor <int>, default 512. B-tree max node length\n :ref-type :strong | :soft | :weak, default :soft. How will nodes that are already\n stored on disk be referenced. Soft or weak means they might be unloaded\n from memory under memory pressure and later fetched from storage again.\n :storage <IStorage>. Will be used to store this db later with `(d\/store db)`\"\n ([]\n (db\/empty-db nil {}))\n ([schema]\n (db\/empty-db schema {}))\n ([schema opts]\n (db\/empty-db schema (maybe-adapt-storage opts))))\n\n(def ^{:arglists '([x])\n :doc \"Returns `true` if the given value is an immutable database, `false` otherwise.\"}\n db? db\/db?)\n\n(def ^{:tag Datom\n :arglists '([e a v] [e a v tx] [e a v tx added])\n :doc \"Low-level fn to create raw datoms.\n\n Optionally with transaction id (number) and `added` flag (`true` for addition, `false` for retraction).\n\n See also [[init-db]].\"}\n datom db\/datom)\n\n(def ^{:arglists '([x])\n :doc \"Returns `true` if the given value is a datom, `false` otherwise.\"}\n datom? db\/datom?)\n\n(defn ^DB init-db\n \"Low-level fn for creating database quickly from a trusted sequence of datoms.\n Does no validation on inputs, so `datoms` must be well-formed and match schema.\n Used internally in db (de)serialization. See also [[datom]].\n For options, see [[empty-db]]\"\n ([datoms]\n (db\/init-db datoms nil {}))\n ([datoms schema]\n (db\/init-db datoms schema {}))\n ([datoms schema opts]\n (db\/init-db datoms schema (maybe-adapt-storage opts))))\n\n(def ^{:arglists '([db] [db opts])\n :doc \"Converts db into a data structure (not string!) that can be fed to serializer\n of your choice (e.g. `js\/JSON.stringify` in CLJS, `cheshire.core\/generate-string`\n or `jsonista.core\/write-value-as-string` in CLJ).\n\n On JVM, `serializable` holds a global lock that prevents any two serializations\n to run in parallel (an implementation constraint, be aware).\n\n Options:\n\n `:freeze-fn` Non-primitive values will be serialized using this. Optional.\n `pr-str` by default.\"}\n serializable ds\/serializable)\n\n(def ^{:tag DB\n :arglists '([serializable] [serializable opts])\n :doc \"Creates db from a data structure (not string!) produced by serializable.\n\n Opts:\n\n `:thaw-fn` Non-primitive values will be deserialized using this.\n Must match :freeze-fn from serializable. Optional. `clojure.edn\/read-string`\n by default.\"}\n from-serializable ds\/from-serializable)\n\n\n; Schema\n\n(def ^{:arglists '([db])\n :doc \"Returns a schema of a database.\"}\n schema db\/-schema)\n\n\n; Filtered db\n\n(defn is-filtered\n \"Returns `true` if this database was filtered using [[filter]], `false` otherwise.\"\n [x]\n (instance? FilteredDB x))\n\n(defn filter\n \"Returns a view over database that has same interface but only includes datoms for which the `(pred db datom)` is true. Can be applied multiple times.\n \n Filtered DB gotchas:\n\n - All operations on filtered database are proxied to original DB, then filter pred is applied.\n - Not cached. You pay filter penalty every time.\n - Supports entities, pull, queries, index access.\n - Does not support [[with]] and [[db-with]].\"\n [db pred]\n {:pre [(db\/db? db)]}\n (if (is-filtered db)\n (let [^FilteredDB fdb db\n orig-pred (.-pred fdb)\n orig-db (.-unfiltered-db fdb)]\n (FilteredDB. orig-db #(and (orig-pred %) (pred orig-db %)) (atom 0)))\n (FilteredDB. db #(pred db %) (atom 0))))\n\n\n; Changing DB\n\n(defn with\n \"Same as [[transact!]], but applies to an immutable database value. Returns transaction report (see [[transact!]]).\"\n ([db tx-data] (with db tx-data nil))\n ([db tx-data tx-meta]\n {:pre [(db\/db? db)]}\n (if (is-filtered db)\n (throw (ex-info \"Filtered DB cannot be modified\" {:error :transaction\/filtered}))\n (db\/transact-tx-data (db\/->TxReport db db [] {} tx-meta) tx-data))))\n\n(defn ^DB db-with\n \"Applies transaction to an immutable db value, returning new immutable db value. Same as `(:db-after (with db tx-data))`.\"\n [db tx-data]\n {:pre [(db\/db? db)]}\n (:db-after (with db tx-data)))\n\n(defn ^DB with-schema\n \"Warning! No validation or conversion. Only change schema in a compatible way\"\n [db schema]\n (db\/with-schema db schema))\n\n; Index lookups\n\n(defn datoms\n \"Index lookup. Returns a sequence of datoms (lazy iterator over actual DB index) which components (e, a, v) match passed arguments.\n\n Datoms are sorted in index sort order. Possible `index` values are: `:eavt`, `:aevt`, `:avet`.\n\n Usage:\n\n ; find all datoms for entity id == 1 (any attrs and values)\n ; sort by attribute, then value\n (datoms db :eavt 1)\n ; => (#datascript\/Datom [1 :friends 2]\n ; #datascript\/Datom [1 :likes \\\"fries\\\"]\n ; #datascript\/Datom [1 :likes \\\"pizza\\\"]\n ; #datascript\/Datom [1 :name \\\"Ivan\\\"])\n \n ; find all datoms for entity id == 1 and attribute == :likes (any values)\n ; sorted by value\n (datoms db :eavt 1 :likes)\n ; => (#datascript\/Datom [1 :likes \\\"fries\\\"]\n ; #datascript\/Datom [1 :likes \\\"pizza\\\"])\n \n ; find all datoms for entity id == 1, attribute == :likes and value == \\\"pizza\\\"\n (datoms db :eavt 1 :likes \\\"pizza\\\")\n ; => (#datascript\/Datom [1 :likes \\\"pizza\\\"])\n \n ; find all datoms for attribute == :likes (any entity ids and values)\n ; sorted by entity id, then value\n (datoms db :aevt :likes)\n ; => (#datascript\/Datom [1 :likes \\\"fries\\\"]\n ; #datascript\/Datom [1 :likes \\\"pizza\\\"]\n ; #datascript\/Datom [2 :likes \\\"candy\\\"]\n ; #datascript\/Datom [2 :likes \\\"pie\\\"]\n ; #datascript\/Datom [2 :likes \\\"pizza\\\"])\n \n ; find all datoms that have attribute == `:likes` and value == `\\\"pizza\\\"` (any entity id)\n ; `:likes` must be a unique attr, reference or marked as `:db\/index true`\n (datoms db :avet :likes \\\"pizza\\\")\n ; => (#datascript\/Datom [1 :likes \\\"pizza\\\"]\n ; #datascript\/Datom [2 :likes \\\"pizza\\\"])\n \n ; find all datoms sorted by entity id, then attribute, then value\n (datoms db :eavt) ; => (...)\n\n Useful patterns:\n\n ; get all values of :db.cardinality\/many attribute\n (->> (datoms db :eavt eid attr) (map :v))\n \n ; lookup entity ids by attribute value\n (->> (datoms db :avet attr value) (map :e))\n \n ; find all entities with a specific attribute\n (->> (datoms db :aevt attr) (map :e))\n \n ; find \u201csingleton\u201d entity by its attr\n (->> (datoms db :aevt attr) first :e)\n \n ; find N entities with lowest attr value (e.g. 10 earliest posts)\n (->> (datoms db :avet attr) (take N))\n \n ; find N entities with highest attr value (e.g. 10 latest posts)\n (->> (datoms db :avet attr) (reverse) (take N))\n\n Gotchas:\n \n - Index lookup is usually more efficient than doing a query with a single clause.\n - Resulting iterator is calculated in constant time and small constant memory overhead.\n - Iterator supports efficient `first`, `next`, `reverse`, `seq` and is itself a sequence.\n - Will not return datoms that are not part of the index (e.g. attributes with no `:db\/index` in schema when querying `:avet` index).\n - `:eavt` and `:aevt` contain all datoms.\n - `:avet` only contains datoms for references, `:db\/unique` and `:db\/index` attributes.\"\n ([db index] {:pre [(db\/db? db)]} (db\/-datoms db index nil nil nil nil))\n ([db index c0] {:pre [(db\/db? db)]} (db\/-datoms db index c0 nil nil nil))\n ([db index c0 c1] {:pre [(db\/db? db)]} (db\/-datoms db index c0 c1 nil nil))\n ([db index c0 c1 c2] {:pre [(db\/db? db)]} (db\/-datoms db index c0 c1 c2 nil))\n ([db index c0 c1 c2 c3] {:pre [(db\/db? db)]} (db\/-datoms db index c0 c1 c2 c3)))\n\n(defn ^Datom find-datom\n \"Same as [[datoms]], but only returns single datom. Faster than `(first (datoms ...))`\"\n ([db index] {:pre [(db\/db? db)]} (db\/find-datom db index nil nil nil nil))\n ([db index c0] {:pre [(db\/db? db)]} (db\/find-datom db index c0 nil nil nil))\n ([db index c0 c1] {:pre [(db\/db? db)]} (db\/find-datom db index c0 c1 nil nil))\n ([db index c0 c1 c2] {:pre [(db\/db? db)]} (db\/find-datom db index c0 c1 c2 nil))\n ([db index c0 c1 c2 c3] {:pre [(db\/db? db)]} (db\/find-datom db index c0 c1 c2 c3)))\n\n(defn seek-datoms\n \"Similar to [[datoms]], but will return datoms starting from specified components and including rest of the database until the end of the index.\n\n If no datom matches passed arguments exactly, iterator will start from first datom that could be considered \u201cgreater\u201d in index order.\n\n Usage:\n\n (seek-datoms db :eavt 1)\n ; => (#datascript\/Datom [1 :friends 2]\n ; #datascript\/Datom [1 :likes \\\"fries\\\"]\n ; #datascript\/Datom [1 :likes \\\"pizza\\\"]\n ; #datascript\/Datom [1 :name \\\"Ivan\\\"]\n ; #datascript\/Datom [2 :likes \\\"candy\\\"]\n ; #datascript\/Datom [2 :likes \\\"pie\\\"]\n ; #datascript\/Datom [2 :likes \\\"pizza\\\"])\n\n (seek-datoms db :eavt 1 :name)\n ; => (#datascript\/Datom [1 :name \\\"Ivan\\\"]\n ; #datascript\/Datom [2 :likes \\\"candy\\\"]\n ; #datascript\/Datom [2 :likes \\\"pie\\\"]\n ; #datascript\/Datom [2 :likes \\\"pizza\\\"])\n \n (seek-datoms db :eavt 2) \n ; => (#datascript\/Datom [2 :likes \\\"candy\\\"]\n ; #datascript\/Datom [2 :likes \\\"pie\\\"]\n ; #datascript\/Datom [2 :likes \\\"pizza\\\"])\n \n ; no datom [2 :likes \\\"fish\\\"], so starts with one immediately following such in index\n (seek-datoms db :eavt 2 :likes \\\"fish\\\")\n ; => (#datascript\/Datom [2 :likes \\\"pie\\\"]\n ; #datascript\/Datom [2 :likes \\\"pizza\\\"])\"\n ([db index] {:pre [(db\/db? db)]} (db\/-seek-datoms db index nil nil nil nil))\n ([db index c0] {:pre [(db\/db? db)]} (db\/-seek-datoms db index c0 nil nil nil))\n ([db index c0 c1] {:pre [(db\/db? db)]} (db\/-seek-datoms db index c0 c1 nil nil))\n ([db index c0 c1 c2] {:pre [(db\/db? db)]} (db\/-seek-datoms db index c0 c1 c2 nil))\n ([db index c0 c1 c2 c3] {:pre [(db\/db? db)]} (db\/-seek-datoms db index c0 c1 c2 c3)))\n\n(defn rseek-datoms\n \"Same as [[seek-datoms]], but goes backwards until the beginning of the index.\"\n ([db index] {:pre [(db\/db? db)]} (db\/-rseek-datoms db index nil nil nil nil))\n ([db index c0] {:pre [(db\/db? db)]} (db\/-rseek-datoms db index c0 nil nil nil))\n ([db index c0 c1] {:pre [(db\/db? db)]} (db\/-rseek-datoms db index c0 c1 nil nil))\n ([db index c0 c1 c2] {:pre [(db\/db? db)]} (db\/-rseek-datoms db index c0 c1 c2 nil))\n ([db index c0 c1 c2 c3] {:pre [(db\/db? db)]} (db\/-rseek-datoms db index c0 c1 c2 c3)))\n\n(defn index-range\n \"Returns part of `:avet` index between `[_ attr start]` and `[_ attr end]` in AVET sort order.\n \n Same properties as [[datoms]].\n \n `attr` must be a reference, unique attribute or marked as `:db\/index true`.\n \n Usage:\n\n (index-range db :likes \\\"a\\\" \\\"zzzzzzzzz\\\")\n ; => (#datascript\/Datom [2 :likes \\\"candy\\\"]\n ; #datascript\/Datom [1 :likes \\\"fries\\\"]\n ; #datascript\/Datom [2 :likes \\\"pie\\\"]\n ; #datascript\/Datom [1 :likes \\\"pizza\\\"]\n ; #datascript\/Datom [2 :likes \\\"pizza\\\"])\n \n (index-range db :likes \\\"egg\\\" \\\"pineapple\\\")\n ; => (#datascript\/Datom [1 :likes \\\"fries\\\"]\n ; #datascript\/Datom [2 :likes \\\"pie\\\"])\n \n Useful patterns:\n \n ; find all entities with age in a specific range (inclusive)\n (->> (index-range db :age 18 60) (map :e))\"\n [db attr start end]\n {:pre [(db\/db? db)]}\n (db\/-index-range db attr start end))\n\n\n;; Conn\n\n(defn conn?\n \"Returns `true` if this is a connection to a DataScript db, `false` otherwise.\"\n [conn]\n (and #?(:clj (instance? clojure.lang.IDeref conn)\n :cljs (satisfies? cljs.core\/IDeref conn))\n (db\/db? @conn)))\n\n(defn conn-from-db\n \"Creates a mutable reference to a given immutable database. See [[create-conn]].\"\n [db]\n {:pre [(db\/db? db)]}\n (if-some [storage (storage\/storage db)]\n (do\n (storage\/store db)\n (atom db \n :meta {:listeners (atom {})\n :tx-tail (atom [])\n :db-last-stored (atom db)}))\n (atom db\n :meta {:listeners (atom {})})))\n\n(defn conn-from-datoms\n \"Creates an empty DB and a mutable reference to it. See [[create-conn]].\"\n ([datoms]\n (conn-from-db (init-db datoms)))\n ([datoms schema]\n (conn-from-db (init-db datoms schema)))\n ([datoms schema opts]\n (conn-from-db (init-db datoms schema opts))))\n\n(defn create-conn\n \"Creates a mutable reference (a \u201cconnection\u201d) to an empty immutable database.\n\n Connections are lightweight in-memory structures (~atoms) with direct support of transaction listeners ([[listen!]], [[unlisten!]]) and other handy DataScript APIs ([[transact!]], [[reset-conn!]], [[db]]).\n\n To access underlying immutable DB value, deref: `@conn`.\n \n For list of options, see [[empty-db]].\n \n If you specify `:storage` option, conn will be stored automatically after each transaction\"\n ([]\n (conn-from-db (empty-db)))\n ([schema]\n (conn-from-db (empty-db schema)))\n ([schema opts]\n (conn-from-db (empty-db schema opts))))\n\n#?(:clj\n (defn restore-conn\n \"Lazy-load database from storage and make conn out of it.\n Returns nil if there\u2019s no database yet in storage\"\n ([storage]\n (restore-conn storage {}))\n ([storage opts]\n (when-some [[db tail] (storage\/restore-impl storage opts)]\n (atom (storage\/db-with-tail db tail)\n :meta {:listeners (atom {})\n :tx-tail (atom tail)\n :db-last-stored (atom db)})))))\n\n(defn ^:no-doc -transact! [conn tx-data tx-meta]\n {:pre [(conn? conn)]}\n (let [*report (atom nil)]\n (swap! conn\n (fn [db]\n (let [r (with db tx-data tx-meta)]\n (reset! *report r)\n (:db-after r))))\n #?(:clj\n (when-some [storage (storage\/storage @conn)]\n (let [{db :db-after\n datoms :tx-data} @*report\n settings (set\/settings (:eavt db))\n *tx-tail (:tx-tail (meta conn))\n tx-tail' (swap! *tx-tail conj datoms)]\n (if (> (transduce (map count) + 0 tx-tail') (:branching-factor settings))\n ;; overflow tail\n (do\n (storage\/store-impl! db (storage\/storage-adapter db) false)\n (reset! *tx-tail [])\n (reset! (:db-last-stored (meta conn)) db))\n ;; just update tail\n (storage\/store-tail db tx-tail')))))\n @*report))\n\n(defn transact!\n \"Applies transaction the underlying database value and atomically updates connection reference to point to the result of that transaction, new db value.\n \n Returns transaction report, a map:\n\n { :db-before ... ; db value before transaction\n :db-after ... ; db value after transaction\n :tx-data [...] ; plain datoms that were added\/retracted from db-before\n :tempids {...} ; map of tempid from tx-data => assigned entid in db-after\n :tx-meta tx-meta } ; the exact value you passed as `tx-meta`\n\n Note! `conn` will be updated in-place and is not returned from [[transact!]].\n \n Usage:\n\n ; add a single datom to an existing entity (1)\n (transact! conn [[:db\/add 1 :name \\\"Ivan\\\"]])\n \n ; retract a single datom\n (transact! conn [[:db\/retract 1 :name \\\"Ivan\\\"]])\n \n ; retract single entity attribute\n (transact! conn [[:db.fn\/retractAttribute 1 :name]])\n \n ; ... or equivalently (since Datomic changed its API to support this):\n (transact! conn [[:db\/retract 1 :name]])\n \n ; retract all entity attributes (effectively deletes entity)\n (transact! conn [[:db.fn\/retractEntity 1]])\n \n ; create a new entity (`-1`, as any other negative value, is a tempid\n ; that will be replaced with DataScript to a next unused eid)\n (transact! conn [[:db\/add -1 :name \\\"Ivan\\\"]])\n \n ; check assigned id (here `*1` is a result returned from previous `transact!` call)\n (def report *1)\n (:tempids report) ; => {-1 296}\n \n ; check actual datoms inserted\n (:tx-data report) ; => [#datascript\/Datom [296 :name \\\"Ivan\\\"]]\n \n ; tempid can also be a string\n (transact! conn [[:db\/add \\\"ivan\\\" :name \\\"Ivan\\\"]])\n (:tempids *1) ; => {\\\"ivan\\\" 297}\n \n ; reference another entity (must exist)\n (transact! conn [[:db\/add -1 :friend 296]])\n \n ; create an entity and set multiple attributes (in a single transaction\n ; equal tempids will be replaced with the same yet unused entid)\n (transact! conn [[:db\/add -1 :name \\\"Ivan\\\"]\n [:db\/add -1 :likes \\\"fries\\\"]\n [:db\/add -1 :likes \\\"pizza\\\"]\n [:db\/add -1 :friend 296]])\n \n ; create an entity and set multiple attributes (alternative map form)\n (transact! conn [{:db\/id -1\n :name \\\"Ivan\\\"\n :likes [\\\"fries\\\" \\\"pizza\\\"]\n :friend 296}])\n \n ; update an entity (alternative map form). Can\u2019t retract attributes in\n ; map form. For cardinality many attrs, value (fish in this example)\n ; will be added to the list of existing values\n (transact! conn [{:db\/id 296\n :name \\\"Oleg\\\"\n :likes [\\\"fish\\\"]}])\n\n ; ref attributes can be specified as nested map, that will create nested entity as well\n (transact! conn [{:db\/id -1\n :name \\\"Oleg\\\"\n :friend {:db\/id -2\n :name \\\"Sergey\\\"}}])\n \n ; reverse attribute name can be used if you want created entity to become\n ; a value in another entity reference\n (transact! conn [{:db\/id -1\n :name \\\"Oleg\\\"\n :_friend 296}])\n ; equivalent to\n (transact! conn [{:db\/id -1, :name \\\"Oleg\\\"}\n {:db\/id 296, :friend -1}])\n ; equivalent to\n (transact! conn [[:db\/add -1 :name \\\"Oleg\\\"]\n [:db\/add 296 :friend -1]])\"\n ([conn tx-data] (transact! conn tx-data nil))\n ([conn tx-data tx-meta]\n {:pre [(conn? conn)]}\n (let [report (-transact! conn tx-data tx-meta)]\n (doseq [[_ callback] (some-> (:listeners (meta conn)) (deref))]\n (callback report))\n report)))\n\n(defn reset-conn!\n \"Forces underlying `conn` value to become `db`. Will generate a tx-report that will remove everything from old value and insert everything from the new one.\"\n ([conn db]\n (reset-conn! conn db nil))\n ([conn db tx-meta]\n {:pre [(conn? conn)\n (db\/db? db)]}\n (let [db-before @conn\n report (db\/map->TxReport\n {:db-before db-before\n :db-after db\n :tx-data (concat\n (map #(assoc % :added false) (datoms db-before :eavt))\n (datoms db :eavt))\n :tx-meta tx-meta})]\n #?(:clj\n (when-some [storage (storage\/storage db-before)]\n (storage\/store db)\n (reset! (:tx-tail (meta conn)) [])\n (reset! (:db-last-stored (meta conn)) db)))\n (reset! conn db)\n (doseq [[_ callback] (some-> (:listeners (meta conn)) (deref))]\n (callback report))\n db)))\n\n(defn reset-schema! [conn schema]\n \"Warning! Does not perform any validation or data conversion. Only change schema in a compatible way\"\n {:pre [(conn? conn)]}\n (let [db (swap! conn db\/with-schema schema)]\n #?(:clj\n (when-some [storage (storage\/storage @conn)]\n (storage\/store-impl! db (storage\/storage-adapter db) true)\n (reset! (:tx-tail (meta conn)) [])\n (reset! (:db-last-stored (meta conn)) db)))\n db))\n\n(defn- atom? [a]\n #?(:cljs (instance? Atom a)\n :clj (instance? clojure.lang.IAtom a)))\n\n(defn listen!\n \"Listen for changes on the given connection. Whenever a transaction is applied to the database via [[transact!]], the callback is called\n with the transaction report. `key` is any opaque unique value.\n \n Idempotent. Calling [[listen!]] with the same key twice will override old callback with the new value.\n \n Returns the key under which this listener is registered. See also [[unlisten!]].\"\n ([conn callback]\n (listen! conn (rand) callback))\n ([conn key callback]\n {:pre [(conn? conn)\n (atom? (:listeners (meta conn)))]}\n (swap! (:listeners (meta conn)) assoc key callback)\n key))\n\n(defn unlisten!\n \"Removes registered listener from connection. See also [[listen!]].\"\n [conn key]\n {:pre [(conn? conn)\n (atom? (:listeners (meta conn)))]}\n (swap! (:listeners (meta conn)) dissoc key))\n\n\n; Data Readers\n\n(def ^{:doc \"Data readers for EDN readers. In CLJS they\u2019re registered automatically. In CLJ, if `data_readers.clj` do not work, you can always do\n\n ```\n (clojure.edn\/read-string {:readers data-readers} \\\"...\\\")\n ```\"}\n data-readers {'datascript\/Datom db\/datom-from-reader\n 'datascript\/DB db\/db-from-reader})\n\n#?(:cljs\n (doseq [[tag cb] data-readers] (edn\/register-tag-parser! tag cb)))\n\n\n;; Datomic compatibility layer\n\n(def ^:private last-tempid (atom -1000000))\n\n(defn tempid\n \"Allocates and returns an unique temporary id (a negative integer). Ignores `part`. Returns `x` if it is specified.\n \n Exists for Datomic API compatibility. Prefer using negative integers directly if possible.\"\n ([part]\n (if (= part :db.part\/tx)\n :db\/current-tx\n (swap! last-tempid dec)))\n ([part x]\n (if (= part :db.part\/tx)\n :db\/current-tx\n x)))\n\n(defn resolve-tempid\n \"Does a lookup in tempids map, returning an entity id that tempid was resolved to.\n \n Exists for Datomic API compatibility. Prefer using map lookup directly if possible.\"\n [_db tempids tempid]\n (get tempids tempid))\n\n(defn ^DB db\n \"Returns the underlying immutable database value from a connection.\n \n Exists for Datomic API compatibility. Prefer using `@conn` directly if possible.\"\n [conn]\n {:pre [(conn? conn)]}\n @conn)\n\n(defn transact\n \"Same as [[transact!]], but returns an immediately realized future.\n \n Exists for Datomic API compatibility. Prefer using [[transact!]] if possible.\"\n ([conn tx-data] (transact conn tx-data nil))\n ([conn tx-data tx-meta]\n {:pre [(conn? conn)]}\n (let [res (transact! conn tx-data tx-meta)]\n #?(:cljs\n (reify\n IDeref\n (-deref [_] res)\n IDerefWithTimeout\n (-deref-with-timeout [_ _ _] res)\n IPending\n (-realized? [_] true))\n :clj\n (reify\n clojure.lang.IDeref\n (deref [_] res)\n clojure.lang.IBlockingDeref\n (deref [_ _ _] res)\n clojure.lang.IPending\n (isRealized [_] true))))))\n\n\n;; ersatz future without proper blocking\n#?(:cljs\n (defn- future-call [f]\n (let [res (atom nil)\n realized (atom false)]\n (js\/setTimeout #(do (reset! res (f)) (reset! realized true)) 0)\n (reify\n IDeref\n (-deref [_] @res)\n IDerefWithTimeout\n (-deref-with-timeout [_ _ timeout-val] (if @realized @res timeout-val))\n IPending\n (-realized? [_] @realized)))))\n\n(defn transact-async\n \"In CLJ, calls [[transact!]] on a future thread pool, returning immediately.\n \n In CLJS, just calls [[transact!]] and returns a realized future.\"\n ([conn tx-data] (transact-async conn tx-data nil))\n ([conn tx-data tx-meta]\n {:pre [(conn? conn)]}\n (future-call #(transact! conn tx-data tx-meta))))\n\n\n;; squuid\n\n(def ^{:arglists '([] [msec])} squuid\n \"Generates a UUID that grow with time. Such UUIDs will always go to the end of the index and that will minimize insertions in the middle.\n \n Consist of 64 bits of current UNIX timestamp (in seconds) and 64 random bits (2^64 different unique values per second).\"\n util\/squuid)\n\n(def ^{:arglists '([uuid])} squuid-time-millis\n \"Returns time that was used in [[squuid]] call, in milliseconds, rounded to the closest second.\"\n util\/squuid-time-millis)\n\n\n;; Storage\n#?(:clj\n (def ^{:arglists '([db])} storage\n \"Returns IStorage used by DB instance\"\n storage\/storage))\n\n#?(:clj\n (def ^{:arglists '([db] [db storage])} store\n \"Stores databases to provided storage. If database was created\n with :storage option or restored from storage, use single-argument version.\n \n Subsequent stores are incremental, i.e. only newly added nodes will be actually stored.\n \n Storing already stored dbs into another storage is not supported (may change).\"\n storage\/store))\n\n#?(:clj \n (def ^{:arglists '([storage] [storage opts])} restore\n \"Lazy-loads database from storage. Ultra-fast, fetches the rest as it\u2019s needed\"\n storage\/restore))\n\n#?(:clj\n (defn addresses\n \"Returns all addresses in use by current db (as java.util.HashSet).\n Anything that is not in the return set is safe to be deleted\"\n [& dbs]\n (storage\/addresses dbs)))\n\n#?(:clj\n (def ^{:arglists '([storage])} collect-garbage\n \"Deletes all keys from storage that are not referenced by any of the currently alive db refs.\n Has a side-effect of fully loading databases fully into memory, so, can be slow\"\n storage\/collect-garbage))\n\n#?(:clj\n (def ^{:arglists '([dir] [dir opts])} file-storage\n \"Default implementation that stores data in files in a dir.\n \n Options are:\n \n :freeze-fn :: (data) -> String. A serialization function\n :thaw-fn :: (String) -> data. A deserialization function\n :write-fn :: (OutputStream data) -> void. Implement your own writer to FileOutputStream\n :read-fn :: (InputStream) -> Object. Implement your own reader from FileInputStream\n :addr->filename-fn :: (UUID) -> String. Construct file name from address\n :filename->addr-fn :: (String) -> UUID. Reconstruct address from file name\n \n All options are optional.\"\n storage\/file-storage))\n\n(defn settings [db]\n (set\/settings (:eavt db)))\n","goog.module(\"shadow.loader\");\ngoog.module.declareLegacyNamespace();\n\nconst GMM = goog.require(\"goog.module.ModuleManager\");\nconst GML = goog.require(\"goog.module.ModuleLoader\");\n\nconst GO = goog.require(\"goog.object\");\nconst GHUC = goog.require(\"goog.html.uncheckedconversions\");\nconst GSC = goog.require(\"goog.string.Const\");\n\n\/** @define {boolean} *\/\nconst TEST = goog.define(\"shadow.loader.TEST\", false);\n\n\/\/ this is written in JS so it doesn't depend on cljs.core\n\nconst ml = new GML();\nml.setSourceUrlInjection(true);\n\nconst mm = GMM.getInstance();\nmm.setLoader(ml);\n\nlet initCalled = false;\n\nfunction ensureInitWasCalled () {\n if (!initCalled) {\n throw new Error(\n \"shadow.loader API was called before shadow.loader.init!\\n\" +\n \"You are probably calling module loader too early before shadow-cljs got fully initialized.\"\n );\n }\n};\n\nfunction init (uriPrefix) {\n if (TEST) return;\n\n if (initCalled) {\n throw new Error(\n \"shadow.loader.init was already called! If you are calling it manually set :module-loader-init false in your config.\"\n );\n }\n\n if (goog.global.shadow$modules) {\n mm.setAllModuleInfo(goog.global.shadow$modules[\"infos\"]);\n\n var uris = goog.global.shadow$modules[\"uris\"];\n\n \/\/ this is absurd. the uris are generated by the compiler. should be trusted already.\n \/\/ I would really like to know how Google integrates this data into their builds\n var trustReason = GSC.from(\"generated by compiler\");\n\n GO.getKeys(uris).forEach(function (key) {\n var module_uris = uris[key];\n if (module_uris.length == 0) {\n \/\/ default module is added without uris since it will always be loaded\n \/\/ when this is called\n mm.getModuleInfo(key).setLoaded();\n } else {\n var trusted_uris = [];\n module_uris.forEach(function (module_uri) {\n var trusted =\n GHUC.trustedResourceUrlFromStringKnownToSatisfyTypeContract(\n trustReason,\n uriPrefix + module_uri\n );\n trusted_uris.push(trusted);\n });\n mm.getModuleInfo(key).setTrustedUris(trusted_uris);\n }\n });\n\n initCalled = true;\n }\n};\n\nfunction getModuleManager() {\n return mm;\n};\n\nfunction getModuleLoader() {\n return ml;\n};\n\n\/\/ allow calling (shadow.loader\/load :with-a-keyword)\nfunction string_id(id) {\n var result = id.toString();\n if (result.charAt(0) == \":\") {\n result = result.substring(1);\n }\n return result;\n};\n\nfunction set_load_start(id) {\n mm.beforeLoadModuleCode(id);\n};\n\n\/\/ FIXME: id no longer required, just keeping it in case someone ends up using old closure lib\nfunction set_loaded (id) {\n mm.setLoaded(id);\n};\n\n\/\/ ignored. only for cljs.loader compat\nfunction set_loaded_BANG_ () {};\n\nfunction loaded_QMARK_(id) {\n if (TEST) {\n return true;\n }\n\n return mm.getModuleInfo(string_id(id)).isLoaded();\n};\n\nfunction with_module(\n moduleId,\n fn,\n opt_handler,\n opt_noLoad,\n opt_userInitiated,\n opt_preferSynchronous\n) {\n ensureInitWasCalled();\n return mm.execOnLoad(\n string_id(moduleId),\n fn,\n opt_handler,\n opt_noLoad,\n opt_userInitiated,\n opt_preferSynchronous\n );\n};\n\nfunction load (id, cb) {\n if (TEST) {\n var result = goog.async.Deferred.succeed();\n if (cb) {\n result = result.then(cb);\n }\n return result;\n }\n\n ensureInitWasCalled();\n id = string_id(id);\n if (cb) {\n mm.execOnLoad(id, cb);\n }\n return mm.load(id);\n};\n\nfunction load_multiple(ids, opt_userInitiated) {\n if (TEST) {\n var result = {};\n for (const id of ids) {\n result[id] = goog.async.Deferred.succeed();\n }\n return result;\n }\n ensureInitWasCalled();\n return mm.loadMultiple(ids, opt_userInitiated);\n};\n\nfunction prefetch (id) {\n if (TEST) return;\n\n ensureInitWasCalled();\n mm.prefetchModule(string_id(id));\n};\n\nfunction preload (id) {\n if (TEST) return;\n\n ensureInitWasCalled();\n return mm.preloadModule(string_id(id));\n};\n\nexports = {\n preload,\n prefetch,\n load_multiple,\n load,\n with_module,\n loaded_QMARK_,\n set_loaded_BANG_,\n set_loaded,\n set_load_start,\n getModuleLoader,\n getModuleManager,\n init\n};","\nshadow.loader.set_load_start('tldraw');","shadow$provide[593] = function(global,require,module,exports) {\n\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a5, b5) => {\n for (var prop in b5 || (b5 = {}))\n if (__hasOwnProp.call(b5, prop))\n __defNormalProp(a5, prop, b5[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b5)) {\n if (__propIsEnum.call(b5, prop))\n __defNormalProp(a5, prop, b5[prop]);\n }\n return a5;\n};\nvar __spreadProps = (a5, b5) => __defProps(a5, __getOwnPropDescs(b5));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i4 = decorators.length - 1, decorator; i4 >= 0; i4--)\n if (decorator = decorators[i4])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e2) {\n reject(e2);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e2) {\n reject(e2);\n }\n };\n var step = (x4) => x4.done ? resolve(x4.value) : Promise.resolve(x4.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n\/\/ ..\/..\/node_modules\/rbush\/rbush.min.js\nvar require_rbush_min = __commonJS({\n \"..\/..\/node_modules\/rbush\/rbush.min.js\"(exports, module2) {\n !function(t2, i4) {\n \"object\" == typeof exports && \"undefined\" != typeof module2 ? module2.exports = i4() : \"function\" == typeof define && define.amd ? define(i4) : (t2 = t2 || self).RBush = i4();\n }(exports, function() {\n \"use strict\";\n function t2(t3, r5, e3, a6, h5) {\n !function t4(n5, r6, e4, a7, h6) {\n for (; a7 > e4; ) {\n if (a7 - e4 > 600) {\n var o5 = a7 - e4 + 1, s5 = r6 - e4 + 1, l6 = Math.log(o5), f5 = 0.5 * Math.exp(2 * l6 \/ 3), u5 = 0.5 * Math.sqrt(l6 * f5 * (o5 - f5) \/ o5) * (s5 - o5 \/ 2 < 0 ? -1 : 1), m5 = Math.max(e4, Math.floor(r6 - s5 * f5 \/ o5 + u5)), c5 = Math.min(a7, Math.floor(r6 + (o5 - s5) * f5 \/ o5 + u5));\n t4(n5, r6, m5, c5, h6);\n }\n var p5 = n5[r6], d5 = e4, x4 = a7;\n for (i4(n5, e4, r6), h6(n5[a7], p5) > 0 && i4(n5, e4, a7); d5 < x4; ) {\n for (i4(n5, d5, x4), d5++, x4--; h6(n5[d5], p5) < 0; )\n d5++;\n for (; h6(n5[x4], p5) > 0; )\n x4--;\n }\n 0 === h6(n5[e4], p5) ? i4(n5, e4, x4) : i4(n5, ++x4, a7), x4 <= r6 && (e4 = x4 + 1), r6 <= x4 && (a7 = x4 - 1);\n }\n }(t3, r5, e3 || 0, a6 || t3.length - 1, h5 || n4);\n }\n function i4(t3, i5, n5) {\n var r5 = t3[i5];\n t3[i5] = t3[n5], t3[n5] = r5;\n }\n function n4(t3, i5) {\n return t3 < i5 ? -1 : t3 > i5 ? 1 : 0;\n }\n var r4 = function(t3) {\n void 0 === t3 && (t3 = 9), this._maxEntries = Math.max(4, t3), this._minEntries = Math.max(2, Math.ceil(0.4 * this._maxEntries)), this.clear();\n };\n function e2(t3, i5, n5) {\n if (!n5)\n return i5.indexOf(t3);\n for (var r5 = 0; r5 < i5.length; r5++)\n if (n5(t3, i5[r5]))\n return r5;\n return -1;\n }\n function a5(t3, i5) {\n h4(t3, 0, t3.children.length, i5, t3);\n }\n function h4(t3, i5, n5, r5, e3) {\n e3 || (e3 = p4(null)), e3.minX = 1 \/ 0, e3.minY = 1 \/ 0, e3.maxX = -1 \/ 0, e3.maxY = -1 \/ 0;\n for (var a6 = i5; a6 < n5; a6++) {\n var h5 = t3.children[a6];\n o4(e3, t3.leaf ? r5(h5) : h5);\n }\n return e3;\n }\n function o4(t3, i5) {\n return t3.minX = Math.min(t3.minX, i5.minX), t3.minY = Math.min(t3.minY, i5.minY), t3.maxX = Math.max(t3.maxX, i5.maxX), t3.maxY = Math.max(t3.maxY, i5.maxY), t3;\n }\n function s4(t3, i5) {\n return t3.minX - i5.minX;\n }\n function l5(t3, i5) {\n return t3.minY - i5.minY;\n }\n function f4(t3) {\n return (t3.maxX - t3.minX) * (t3.maxY - t3.minY);\n }\n function u4(t3) {\n return t3.maxX - t3.minX + (t3.maxY - t3.minY);\n }\n function m4(t3, i5) {\n return t3.minX <= i5.minX && t3.minY <= i5.minY && i5.maxX <= t3.maxX && i5.maxY <= t3.maxY;\n }\n function c4(t3, i5) {\n return i5.minX <= t3.maxX && i5.minY <= t3.maxY && i5.maxX >= t3.minX && i5.maxY >= t3.minY;\n }\n function p4(t3) {\n return { children: t3, height: 1, leaf: true, minX: 1 \/ 0, minY: 1 \/ 0, maxX: -1 \/ 0, maxY: -1 \/ 0 };\n }\n function d4(i5, n5, r5, e3, a6) {\n for (var h5 = [n5, r5]; h5.length; )\n if (!((r5 = h5.pop()) - (n5 = h5.pop()) <= e3)) {\n var o5 = n5 + Math.ceil((r5 - n5) \/ e3 \/ 2) * e3;\n t2(i5, o5, n5, r5, a6), h5.push(n5, o5, o5, r5);\n }\n }\n return r4.prototype.all = function() {\n return this._all(this.data, []);\n }, r4.prototype.search = function(t3) {\n var i5 = this.data, n5 = [];\n if (!c4(t3, i5))\n return n5;\n for (var r5 = this.toBBox, e3 = []; i5; ) {\n for (var a6 = 0; a6 < i5.children.length; a6++) {\n var h5 = i5.children[a6], o5 = i5.leaf ? r5(h5) : h5;\n c4(t3, o5) && (i5.leaf ? n5.push(h5) : m4(t3, o5) ? this._all(h5, n5) : e3.push(h5));\n }\n i5 = e3.pop();\n }\n return n5;\n }, r4.prototype.collides = function(t3) {\n var i5 = this.data;\n if (!c4(t3, i5))\n return false;\n for (var n5 = []; i5; ) {\n for (var r5 = 0; r5 < i5.children.length; r5++) {\n var e3 = i5.children[r5], a6 = i5.leaf ? this.toBBox(e3) : e3;\n if (c4(t3, a6)) {\n if (i5.leaf || m4(t3, a6))\n return true;\n n5.push(e3);\n }\n }\n i5 = n5.pop();\n }\n return false;\n }, r4.prototype.load = function(t3) {\n if (!t3 || !t3.length)\n return this;\n if (t3.length < this._minEntries) {\n for (var i5 = 0; i5 < t3.length; i5++)\n this.insert(t3[i5]);\n return this;\n }\n var n5 = this._build(t3.slice(), 0, t3.length - 1, 0);\n if (this.data.children.length)\n if (this.data.height === n5.height)\n this._splitRoot(this.data, n5);\n else {\n if (this.data.height < n5.height) {\n var r5 = this.data;\n this.data = n5, n5 = r5;\n }\n this._insert(n5, this.data.height - n5.height - 1, true);\n }\n else\n this.data = n5;\n return this;\n }, r4.prototype.insert = function(t3) {\n return t3 && this._insert(t3, this.data.height - 1), this;\n }, r4.prototype.clear = function() {\n return this.data = p4([]), this;\n }, r4.prototype.remove = function(t3, i5) {\n if (!t3)\n return this;\n for (var n5, r5, a6, h5 = this.data, o5 = this.toBBox(t3), s5 = [], l6 = []; h5 || s5.length; ) {\n if (h5 || (h5 = s5.pop(), r5 = s5[s5.length - 1], n5 = l6.pop(), a6 = true), h5.leaf) {\n var f5 = e2(t3, h5.children, i5);\n if (-1 !== f5)\n return h5.children.splice(f5, 1), s5.push(h5), this._condense(s5), this;\n }\n a6 || h5.leaf || !m4(h5, o5) ? r5 ? (n5++, h5 = r5.children[n5], a6 = false) : h5 = null : (s5.push(h5), l6.push(n5), n5 = 0, r5 = h5, h5 = h5.children[0]);\n }\n return this;\n }, r4.prototype.toBBox = function(t3) {\n return t3;\n }, r4.prototype.compareMinX = function(t3, i5) {\n return t3.minX - i5.minX;\n }, r4.prototype.compareMinY = function(t3, i5) {\n return t3.minY - i5.minY;\n }, r4.prototype.toJSON = function() {\n return this.data;\n }, r4.prototype.fromJSON = function(t3) {\n return this.data = t3, this;\n }, r4.prototype._all = function(t3, i5) {\n for (var n5 = []; t3; )\n t3.leaf ? i5.push.apply(i5, t3.children) : n5.push.apply(n5, t3.children), t3 = n5.pop();\n return i5;\n }, r4.prototype._build = function(t3, i5, n5, r5) {\n var e3, h5 = n5 - i5 + 1, o5 = this._maxEntries;\n if (h5 <= o5)\n return a5(e3 = p4(t3.slice(i5, n5 + 1)), this.toBBox), e3;\n r5 || (r5 = Math.ceil(Math.log(h5) \/ Math.log(o5)), o5 = Math.ceil(h5 \/ Math.pow(o5, r5 - 1))), (e3 = p4([])).leaf = false, e3.height = r5;\n var s5 = Math.ceil(h5 \/ o5), l6 = s5 * Math.ceil(Math.sqrt(o5));\n d4(t3, i5, n5, l6, this.compareMinX);\n for (var f5 = i5; f5 <= n5; f5 += l6) {\n var u5 = Math.min(f5 + l6 - 1, n5);\n d4(t3, f5, u5, s5, this.compareMinY);\n for (var m5 = f5; m5 <= u5; m5 += s5) {\n var c5 = Math.min(m5 + s5 - 1, u5);\n e3.children.push(this._build(t3, m5, c5, r5 - 1));\n }\n }\n return a5(e3, this.toBBox), e3;\n }, r4.prototype._chooseSubtree = function(t3, i5, n5, r5) {\n for (; r5.push(i5), !i5.leaf && r5.length - 1 !== n5; ) {\n for (var e3 = 1 \/ 0, a6 = 1 \/ 0, h5 = void 0, o5 = 0; o5 < i5.children.length; o5++) {\n var s5 = i5.children[o5], l6 = f4(s5), u5 = (m5 = t3, c5 = s5, (Math.max(c5.maxX, m5.maxX) - Math.min(c5.minX, m5.minX)) * (Math.max(c5.maxY, m5.maxY) - Math.min(c5.minY, m5.minY)) - l6);\n u5 < a6 ? (a6 = u5, e3 = l6 < e3 ? l6 : e3, h5 = s5) : u5 === a6 && l6 < e3 && (e3 = l6, h5 = s5);\n }\n i5 = h5 || i5.children[0];\n }\n var m5, c5;\n return i5;\n }, r4.prototype._insert = function(t3, i5, n5) {\n var r5 = n5 ? t3 : this.toBBox(t3), e3 = [], a6 = this._chooseSubtree(r5, this.data, i5, e3);\n for (a6.children.push(t3), o4(a6, r5); i5 >= 0 && e3[i5].children.length > this._maxEntries; )\n this._split(e3, i5), i5--;\n this._adjustParentBBoxes(r5, e3, i5);\n }, r4.prototype._split = function(t3, i5) {\n var n5 = t3[i5], r5 = n5.children.length, e3 = this._minEntries;\n this._chooseSplitAxis(n5, e3, r5);\n var h5 = this._chooseSplitIndex(n5, e3, r5), o5 = p4(n5.children.splice(h5, n5.children.length - h5));\n o5.height = n5.height, o5.leaf = n5.leaf, a5(n5, this.toBBox), a5(o5, this.toBBox), i5 ? t3[i5 - 1].children.push(o5) : this._splitRoot(n5, o5);\n }, r4.prototype._splitRoot = function(t3, i5) {\n this.data = p4([t3, i5]), this.data.height = t3.height + 1, this.data.leaf = false, a5(this.data, this.toBBox);\n }, r4.prototype._chooseSplitIndex = function(t3, i5, n5) {\n for (var r5, e3, a6, o5, s5, l6, u5, m5 = 1 \/ 0, c5 = 1 \/ 0, p5 = i5; p5 <= n5 - i5; p5++) {\n var d5 = h4(t3, 0, p5, this.toBBox), x4 = h4(t3, p5, n5, this.toBBox), v4 = (e3 = d5, a6 = x4, o5 = void 0, s5 = void 0, l6 = void 0, u5 = void 0, o5 = Math.max(e3.minX, a6.minX), s5 = Math.max(e3.minY, a6.minY), l6 = Math.min(e3.maxX, a6.maxX), u5 = Math.min(e3.maxY, a6.maxY), Math.max(0, l6 - o5) * Math.max(0, u5 - s5)), M2 = f4(d5) + f4(x4);\n v4 < m5 ? (m5 = v4, r5 = p5, c5 = M2 < c5 ? M2 : c5) : v4 === m5 && M2 < c5 && (c5 = M2, r5 = p5);\n }\n return r5 || n5 - i5;\n }, r4.prototype._chooseSplitAxis = function(t3, i5, n5) {\n var r5 = t3.leaf ? this.compareMinX : s4, e3 = t3.leaf ? this.compareMinY : l5;\n this._allDistMargin(t3, i5, n5, r5) < this._allDistMargin(t3, i5, n5, e3) && t3.children.sort(r5);\n }, r4.prototype._allDistMargin = function(t3, i5, n5, r5) {\n t3.children.sort(r5);\n for (var e3 = this.toBBox, a6 = h4(t3, 0, i5, e3), s5 = h4(t3, n5 - i5, n5, e3), l6 = u4(a6) + u4(s5), f5 = i5; f5 < n5 - i5; f5++) {\n var m5 = t3.children[f5];\n o4(a6, t3.leaf ? e3(m5) : m5), l6 += u4(a6);\n }\n for (var c5 = n5 - i5 - 1; c5 >= i5; c5--) {\n var p5 = t3.children[c5];\n o4(s5, t3.leaf ? e3(p5) : p5), l6 += u4(s5);\n }\n return l6;\n }, r4.prototype._adjustParentBBoxes = function(t3, i5, n5) {\n for (var r5 = n5; r5 >= 0; r5--)\n o4(i5[r5], t3);\n }, r4.prototype._condense = function(t3) {\n for (var i5 = t3.length - 1, n5 = void 0; i5 >= 0; i5--)\n 0 === t3[i5].children.length ? i5 > 0 ? (n5 = t3[i5 - 1].children).splice(n5.indexOf(t3[i5]), 1) : this.clear() : a5(t3[i5], this.toBBox);\n }, r4;\n });\n }\n});\n\n\/\/ ..\/..\/node_modules\/fast-deep-equal\/index.js\nvar require_fast_deep_equal = __commonJS({\n \"..\/..\/node_modules\/fast-deep-equal\/index.js\"(exports, module2) {\n \"use strict\";\n module2.exports = function equal(a5, b5) {\n if (a5 === b5)\n return true;\n if (a5 && b5 && typeof a5 == \"object\" && typeof b5 == \"object\") {\n if (a5.constructor !== b5.constructor)\n return false;\n var length, i4, keys;\n if (Array.isArray(a5)) {\n length = a5.length;\n if (length != b5.length)\n return false;\n for (i4 = length; i4-- !== 0; )\n if (!equal(a5[i4], b5[i4]))\n return false;\n return true;\n }\n if (a5.constructor === RegExp)\n return a5.source === b5.source && a5.flags === b5.flags;\n if (a5.valueOf !== Object.prototype.valueOf)\n return a5.valueOf() === b5.valueOf();\n if (a5.toString !== Object.prototype.toString)\n return a5.toString() === b5.toString();\n keys = Object.keys(a5);\n length = keys.length;\n if (length !== Object.keys(b5).length)\n return false;\n for (i4 = length; i4-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(b5, keys[i4]))\n return false;\n for (i4 = length; i4-- !== 0; ) {\n var key = keys[i4];\n if (!equal(a5[key], b5[key]))\n return false;\n }\n return true;\n }\n return a5 !== a5 && b5 !== b5;\n };\n }\n});\n\n\/\/ ..\/..\/..\/node_modules\/deepmerge\/dist\/cjs.js\nvar require_cjs = __commonJS({\n \"..\/..\/..\/node_modules\/deepmerge\/dist\/cjs.js\"(exports, module2) {\n \"use strict\";\n var isMergeableObject = function isMergeableObject2(value) {\n return isNonNullObject(value) && !isSpecial(value);\n };\n function isNonNullObject(value) {\n return !!value && typeof value === \"object\";\n }\n function isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === \"[object RegExp]\" || stringValue === \"[object Date]\" || isReactElement(value);\n }\n var canUseSymbol = typeof Symbol === \"function\" && Symbol.for;\n var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for(\"react.element\") : 60103;\n function isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n }\n function emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n }\n function cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge2(emptyTarget(value), value, options) : value;\n }\n function defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function(element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n }\n function getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge2;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === \"function\" ? customMerge : deepmerge2;\n }\n function getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n return Object.propertyIsEnumerable.call(target, symbol);\n }) : [];\n }\n function getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n }\n function propertyIsOnObject(object2, property) {\n try {\n return property in object2;\n } catch (_2) {\n return false;\n }\n }\n function propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key));\n }\n function mergeObject(target, source, options) {\n var destination = {};\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function(key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n getKeys(source).forEach(function(key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n }\n function deepmerge2(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject;\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n }\n deepmerge2.all = function deepmergeAll(array2, options) {\n if (!Array.isArray(array2)) {\n throw new Error(\"first argument should be an array\");\n }\n return array2.reduce(function(prev, next) {\n return deepmerge2(prev, next, options);\n }, {});\n };\n var deepmerge_1 = deepmerge2;\n module2.exports = deepmerge_1;\n }\n});\n\n\/\/ ..\/..\/node_modules\/tslib\/tslib.js\nvar require_tslib = __commonJS({\n \"..\/..\/node_modules\/tslib\/tslib.js\"(exports, module2) {\n var __extends2;\n var __assign2;\n var __rest2;\n var __decorate2;\n var __param2;\n var __metadata2;\n var __awaiter2;\n var __generator2;\n var __exportStar2;\n var __values3;\n var __read3;\n var __spread2;\n var __spreadArrays2;\n var __spreadArray2;\n var __await2;\n var __asyncGenerator2;\n var __asyncDelegator2;\n var __asyncValues2;\n var __makeTemplateObject2;\n var __importStar2;\n var __importDefault2;\n var __classPrivateFieldGet2;\n var __classPrivateFieldSet2;\n var __classPrivateFieldIn2;\n var __createBinding2;\n (function(factory) {\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\n if (typeof define === \"function\" && define.amd) {\n define(\"tslib\", [\"exports\"], function(exports2) {\n factory(createExporter(root, createExporter(exports2)));\n });\n } else if (typeof module2 === \"object\" && typeof module2.exports === \"object\") {\n factory(createExporter(root, createExporter(module2.exports)));\n } else {\n factory(createExporter(root));\n }\n function createExporter(exports2, previous) {\n if (exports2 !== root) {\n if (typeof Object.create === \"function\") {\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n } else {\n exports2.__esModule = true;\n }\n }\n return function(id3, v4) {\n return exports2[id3] = previous ? previous(id3, v4) : v4;\n };\n }\n })(function(exporter) {\n var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b5) {\n d4.__proto__ = b5;\n } || function(d4, b5) {\n for (var p4 in b5)\n if (Object.prototype.hasOwnProperty.call(b5, p4))\n d4[p4] = b5[p4];\n };\n __extends2 = function(d4, b5) {\n if (typeof b5 !== \"function\" && b5 !== null)\n throw new TypeError(\"Class extends value \" + String(b5) + \" is not a constructor or null\");\n extendStatics(d4, b5);\n function __() {\n this.constructor = d4;\n }\n d4.prototype = b5 === null ? Object.create(b5) : (__.prototype = b5.prototype, new __());\n };\n __assign2 = Object.assign || function(t2) {\n for (var s4, i4 = 1, n4 = arguments.length; i4 < n4; i4++) {\n s4 = arguments[i4];\n for (var p4 in s4)\n if (Object.prototype.hasOwnProperty.call(s4, p4))\n t2[p4] = s4[p4];\n }\n return t2;\n };\n __rest2 = function(s4, e2) {\n var t2 = {};\n for (var p4 in s4)\n if (Object.prototype.hasOwnProperty.call(s4, p4) && e2.indexOf(p4) < 0)\n t2[p4] = s4[p4];\n if (s4 != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) {\n if (e2.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4]))\n t2[p4[i4]] = s4[p4[i4]];\n }\n return t2;\n };\n __decorate2 = function(decorators, target, key, desc) {\n var c4 = arguments.length, r4 = c4 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d4;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\")\n r4 = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i4 = decorators.length - 1; i4 >= 0; i4--)\n if (d4 = decorators[i4])\n r4 = (c4 < 3 ? d4(r4) : c4 > 3 ? d4(target, key, r4) : d4(target, key)) || r4;\n return c4 > 3 && r4 && Object.defineProperty(target, key, r4), r4;\n };\n __param2 = function(paramIndex, decorator) {\n return function(target, key) {\n decorator(target, key, paramIndex);\n };\n };\n __metadata2 = function(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\")\n return Reflect.metadata(metadataKey, metadataValue);\n };\n __awaiter2 = function(thisArg, _arguments, P3, generator) {\n function adopt(value) {\n return value instanceof P3 ? value : new P3(function(resolve) {\n resolve(value);\n });\n }\n return new (P3 || (P3 = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e2) {\n reject(e2);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e2) {\n reject(e2);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n __generator2 = function(thisArg, body) {\n var _2 = { label: 0, sent: function() {\n if (t2[0] & 1)\n throw t2[1];\n return t2[1];\n }, trys: [], ops: [] }, f4, y4, t2, g4;\n return g4 = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g4[Symbol.iterator] = function() {\n return this;\n }), g4;\n function verb(n4) {\n return function(v4) {\n return step([n4, v4]);\n };\n }\n function step(op) {\n if (f4)\n throw new TypeError(\"Generator is already executing.\");\n while (_2)\n try {\n if (f4 = 1, y4 && (t2 = op[0] & 2 ? y4[\"return\"] : op[0] ? y4[\"throw\"] || ((t2 = y4[\"return\"]) && t2.call(y4), 0) : y4.next) && !(t2 = t2.call(y4, op[1])).done)\n return t2;\n if (y4 = 0, t2)\n op = [op[0] & 2, t2.value];\n switch (op[0]) {\n case 0:\n case 1:\n t2 = op;\n break;\n case 4:\n _2.label++;\n return { value: op[1], done: false };\n case 5:\n _2.label++;\n y4 = op[1];\n op = [0];\n continue;\n case 7:\n op = _2.ops.pop();\n _2.trys.pop();\n continue;\n default:\n if (!(t2 = _2.trys, t2 = t2.length > 0 && t2[t2.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _2 = 0;\n continue;\n }\n if (op[0] === 3 && (!t2 || op[1] > t2[0] && op[1] < t2[3])) {\n _2.label = op[1];\n break;\n }\n if (op[0] === 6 && _2.label < t2[1]) {\n _2.label = t2[1];\n t2 = op;\n break;\n }\n if (t2 && _2.label < t2[2]) {\n _2.label = t2[2];\n _2.ops.push(op);\n break;\n }\n if (t2[2])\n _2.ops.pop();\n _2.trys.pop();\n continue;\n }\n op = body.call(thisArg, _2);\n } catch (e2) {\n op = [6, e2];\n y4 = 0;\n } finally {\n f4 = t2 = 0;\n }\n if (op[0] & 5)\n throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n };\n __exportStar2 = function(m4, o4) {\n for (var p4 in m4)\n if (p4 !== \"default\" && !Object.prototype.hasOwnProperty.call(o4, p4))\n __createBinding2(o4, m4, p4);\n };\n __createBinding2 = Object.create ? function(o4, m4, k3, k22) {\n if (k22 === void 0)\n k22 = k3;\n var desc = Object.getOwnPropertyDescriptor(m4, k3);\n if (!desc || (\"get\" in desc ? !m4.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() {\n return m4[k3];\n } };\n }\n Object.defineProperty(o4, k22, desc);\n } : function(o4, m4, k3, k22) {\n if (k22 === void 0)\n k22 = k3;\n o4[k22] = m4[k3];\n };\n __values3 = function(o4) {\n var s4 = typeof Symbol === \"function\" && Symbol.iterator, m4 = s4 && o4[s4], i4 = 0;\n if (m4)\n return m4.call(o4);\n if (o4 && typeof o4.length === \"number\")\n return {\n next: function() {\n if (o4 && i4 >= o4.length)\n o4 = void 0;\n return { value: o4 && o4[i4++], done: !o4 };\n }\n };\n throw new TypeError(s4 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n };\n __read3 = function(o4, n4) {\n var m4 = typeof Symbol === \"function\" && o4[Symbol.iterator];\n if (!m4)\n return o4;\n var i4 = m4.call(o4), r4, ar = [], e2;\n try {\n while ((n4 === void 0 || n4-- > 0) && !(r4 = i4.next()).done)\n ar.push(r4.value);\n } catch (error) {\n e2 = { error };\n } finally {\n try {\n if (r4 && !r4.done && (m4 = i4[\"return\"]))\n m4.call(i4);\n } finally {\n if (e2)\n throw e2.error;\n }\n }\n return ar;\n };\n __spread2 = function() {\n for (var ar = [], i4 = 0; i4 < arguments.length; i4++)\n ar = ar.concat(__read3(arguments[i4]));\n return ar;\n };\n __spreadArrays2 = function() {\n for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++)\n s4 += arguments[i4].length;\n for (var r4 = Array(s4), k3 = 0, i4 = 0; i4 < il; i4++)\n for (var a5 = arguments[i4], j2 = 0, jl = a5.length; j2 < jl; j2++, k3++)\n r4[k3] = a5[j2];\n return r4;\n };\n __spreadArray2 = function(to, from, pack) {\n if (pack || arguments.length === 2)\n for (var i4 = 0, l5 = from.length, ar; i4 < l5; i4++) {\n if (ar || !(i4 in from)) {\n if (!ar)\n ar = Array.prototype.slice.call(from, 0, i4);\n ar[i4] = from[i4];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n __await2 = function(v4) {\n return this instanceof __await2 ? (this.v = v4, this) : new __await2(v4);\n };\n __asyncGenerator2 = function(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g4 = generator.apply(thisArg, _arguments || []), i4, q2 = [];\n return i4 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i4[Symbol.asyncIterator] = function() {\n return this;\n }, i4;\n function verb(n4) {\n if (g4[n4])\n i4[n4] = function(v4) {\n return new Promise(function(a5, b5) {\n q2.push([n4, v4, a5, b5]) > 1 || resume(n4, v4);\n });\n };\n }\n function resume(n4, v4) {\n try {\n step(g4[n4](v4));\n } catch (e2) {\n settle(q2[0][3], e2);\n }\n }\n function step(r4) {\n r4.value instanceof __await2 ? Promise.resolve(r4.value.v).then(fulfill, reject) : settle(q2[0][2], r4);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f4, v4) {\n if (f4(v4), q2.shift(), q2.length)\n resume(q2[0][0], q2[0][1]);\n }\n };\n __asyncDelegator2 = function(o4) {\n var i4, p4;\n return i4 = {}, verb(\"next\"), verb(\"throw\", function(e2) {\n throw e2;\n }), verb(\"return\"), i4[Symbol.iterator] = function() {\n return this;\n }, i4;\n function verb(n4, f4) {\n i4[n4] = o4[n4] ? function(v4) {\n return (p4 = !p4) ? { value: __await2(o4[n4](v4)), done: n4 === \"return\" } : f4 ? f4(v4) : v4;\n } : f4;\n }\n };\n __asyncValues2 = function(o4) {\n if (!Symbol.asyncIterator)\n throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m4 = o4[Symbol.asyncIterator], i4;\n return m4 ? m4.call(o4) : (o4 = typeof __values3 === \"function\" ? __values3(o4) : o4[Symbol.iterator](), i4 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i4[Symbol.asyncIterator] = function() {\n return this;\n }, i4);\n function verb(n4) {\n i4[n4] = o4[n4] && function(v4) {\n return new Promise(function(resolve, reject) {\n v4 = o4[n4](v4), settle(resolve, reject, v4.done, v4.value);\n });\n };\n }\n function settle(resolve, reject, d4, v4) {\n Promise.resolve(v4).then(function(v5) {\n resolve({ value: v5, done: d4 });\n }, reject);\n }\n };\n __makeTemplateObject2 = function(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", { value: raw });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n };\n var __setModuleDefault = Object.create ? function(o4, v4) {\n Object.defineProperty(o4, \"default\", { enumerable: true, value: v4 });\n } : function(o4, v4) {\n o4[\"default\"] = v4;\n };\n __importStar2 = function(mod) {\n if (mod && mod.__esModule)\n return mod;\n var result = {};\n if (mod != null) {\n for (var k3 in mod)\n if (k3 !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k3))\n __createBinding2(result, mod, k3);\n }\n __setModuleDefault(result, mod);\n return result;\n };\n __importDefault2 = function(mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n };\n __classPrivateFieldGet2 = function(receiver, state, kind, f4) {\n if (kind === \"a\" && !f4)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f4 : !state.has(receiver))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f4 : kind === \"a\" ? f4.call(receiver) : f4 ? f4.value : state.get(receiver);\n };\n __classPrivateFieldSet2 = function(receiver, state, value, kind, f4) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f4)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f4 : !state.has(receiver))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f4.call(receiver, value) : f4 ? f4.value = value : state.set(receiver, value), value;\n };\n __classPrivateFieldIn2 = function(state, receiver) {\n if (receiver === null || typeof receiver !== \"object\" && typeof receiver !== \"function\")\n throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n };\n exporter(\"__extends\", __extends2);\n exporter(\"__assign\", __assign2);\n exporter(\"__rest\", __rest2);\n exporter(\"__decorate\", __decorate2);\n exporter(\"__param\", __param2);\n exporter(\"__metadata\", __metadata2);\n exporter(\"__awaiter\", __awaiter2);\n exporter(\"__generator\", __generator2);\n exporter(\"__exportStar\", __exportStar2);\n exporter(\"__createBinding\", __createBinding2);\n exporter(\"__values\", __values3);\n exporter(\"__read\", __read3);\n exporter(\"__spread\", __spread2);\n exporter(\"__spreadArrays\", __spreadArrays2);\n exporter(\"__spreadArray\", __spreadArray2);\n exporter(\"__await\", __await2);\n exporter(\"__asyncGenerator\", __asyncGenerator2);\n exporter(\"__asyncDelegator\", __asyncDelegator2);\n exporter(\"__asyncValues\", __asyncValues2);\n exporter(\"__makeTemplateObject\", __makeTemplateObject2);\n exporter(\"__importStar\", __importStar2);\n exporter(\"__importDefault\", __importDefault2);\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet2);\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet2);\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn2);\n });\n }\n});\n\n\/\/ src\/index.ts\nvar src_exports = {};\n__export(src_exports, {\n App: () => App3,\n PreviewManager: () => PreviewManager,\n generateJSXFromModel: () => generateJSXFromModel,\n generateSVGFromModel: () => generateSVGFromModel\n});\nmodule.exports = __toCommonJS(src_exports);\n\n\/\/ ..\/..\/packages\/core\/src\/types\/types.ts\nvar Color = \/* @__PURE__ *\/ ((Color2) => {\n Color2[\"Yellow\"] = \"yellow\";\n Color2[\"Red\"] = \"red\";\n Color2[\"Pink\"] = \"pink\";\n Color2[\"Green\"] = \"green\";\n Color2[\"Blue\"] = \"blue\";\n Color2[\"Purple\"] = \"purple\";\n Color2[\"Gray\"] = \"gray\";\n Color2[\"Default\"] = \"\";\n return Color2;\n})(Color || {});\nvar Geometry = \/* @__PURE__ *\/ ((Geometry2) => {\n Geometry2[\"Box\"] = \"box\";\n Geometry2[\"Ellipse\"] = \"ellipse\";\n Geometry2[\"Polygon\"] = \"polygon\";\n return Geometry2;\n})(Geometry || {});\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/rng.js\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n getRandomValues = typeof crypto !== \"undefined\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error(\"crypto.getRandomValues() not supported. See https:\/\/github.com\/uuidjs\/uuid#getrandomvalues-not-supported\");\n }\n }\n return getRandomValues(rnds8);\n}\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/regex.js\nvar regex_default = \/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$\/i;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/validate.js\nfunction validate(uuid) {\n return typeof uuid === \"string\" && regex_default.test(uuid);\n}\nvar validate_default = validate;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/stringify.js\nvar byteToHex = [];\nfor (let i4 = 0; i4 < 256; ++i4) {\n byteToHex.push((i4 + 256).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + \"-\" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + \"-\" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + \"-\" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + \"-\" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/v1.js\nvar _nodeId;\nvar _clockseq;\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\nfunction v1(options, buf, offset) {\n let i4 = buf && offset || 0;\n const b5 = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq;\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || rng)();\n if (node == null) {\n node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n if (clockseq == null) {\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;\n }\n }\n let msecs = options.msecs !== void 0 ? options.msecs : Date.now();\n let nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1;\n const dt2 = msecs - _lastMSecs + (nsecs - _lastNSecs) \/ 1e4;\n if (dt2 < 0 && options.clockseq === void 0) {\n clockseq = clockseq + 1 & 16383;\n }\n if ((dt2 < 0 || msecs > _lastMSecs) && options.nsecs === void 0) {\n nsecs = 0;\n }\n if (nsecs >= 1e4) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids\/sec\");\n }\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n msecs += 122192928e5;\n const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;\n b5[i4++] = tl >>> 24 & 255;\n b5[i4++] = tl >>> 16 & 255;\n b5[i4++] = tl >>> 8 & 255;\n b5[i4++] = tl & 255;\n const tmh = msecs \/ 4294967296 * 1e4 & 268435455;\n b5[i4++] = tmh >>> 8 & 255;\n b5[i4++] = tmh & 255;\n b5[i4++] = tmh >>> 24 & 15 | 16;\n b5[i4++] = tmh >>> 16 & 255;\n b5[i4++] = clockseq >>> 8 | 128;\n b5[i4++] = clockseq & 255;\n for (let n4 = 0; n4 < 6; ++n4) {\n b5[i4 + n4] = node[n4];\n }\n return buf || unsafeStringify(b5);\n}\nvar v1_default = v1;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/parse.js\nfunction parse(uuid) {\n if (!validate_default(uuid)) {\n throw TypeError(\"Invalid UUID\");\n }\n let v4;\n const arr = new Uint8Array(16);\n arr[0] = (v4 = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v4 >>> 16 & 255;\n arr[2] = v4 >>> 8 & 255;\n arr[3] = v4 & 255;\n arr[4] = (v4 = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v4 & 255;\n arr[6] = (v4 = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v4 & 255;\n arr[8] = (v4 = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v4 & 255;\n arr[10] = (v4 = parseInt(uuid.slice(24, 36), 16)) \/ 1099511627776 & 255;\n arr[11] = v4 \/ 4294967296 & 255;\n arr[12] = v4 >>> 24 & 255;\n arr[13] = v4 >>> 16 & 255;\n arr[14] = v4 >>> 8 & 255;\n arr[15] = v4 & 255;\n return arr;\n}\nvar parse_default = parse;\n\n\/\/ ..\/..\/node_modules\/uuid\/dist\/esm-browser\/nil.js\nvar nil_default = \"00000000-0000-0000-0000-000000000000\";\n\n\/\/ ..\/..\/packages\/utils\/vec\/src\/index.ts\nvar _Vec = class {\n static clamp(n4, min, max) {\n return Math.max(min, typeof max !== \"undefined\" ? Math.min(n4, max) : n4);\n }\n static clampV(A4, min, max) {\n return A4.map((n4) => max ? _Vec.clamp(n4, min, max) : _Vec.clamp(n4, min));\n }\n static cross(x4, y4, z3) {\n return (y4[0] - x4[0]) * (z3[1] - x4[1]) - (z3[0] - x4[0]) * (y4[1] - x4[1]);\n }\n static snap(a5, step = 1) {\n return [Math.round(a5[0] \/ step) * step, Math.round(a5[1] \/ step) * step];\n }\n};\nvar Vec = _Vec;\nVec.neg = (A4) => {\n return [-A4[0], -A4[1]];\n};\nVec.add = (A4, B3) => {\n return [A4[0] + B3[0], A4[1] + B3[1]];\n};\nVec.addScalar = (A4, n4) => {\n return [A4[0] + n4, A4[1] + n4];\n};\nVec.sub = (A4, B3) => {\n return [A4[0] - B3[0], A4[1] - B3[1]];\n};\nVec.subScalar = (A4, n4) => {\n return [A4[0] - n4, A4[1] - n4];\n};\nVec.vec = (A4, B3) => {\n return [B3[0] - A4[0], B3[1] - A4[1]];\n};\nVec.mul = (A4, n4) => {\n return [A4[0] * n4, A4[1] * n4];\n};\nVec.mulV = (A4, B3) => {\n return [A4[0] * B3[0], A4[1] * B3[1]];\n};\nVec.div = (A4, n4) => {\n return [A4[0] \/ n4, A4[1] \/ n4];\n};\nVec.divV = (A4, B3) => {\n return [A4[0] \/ B3[0], A4[1] \/ B3[1]];\n};\nVec.per = (A4) => {\n return [A4[1], -A4[0]];\n};\nVec.dpr = (A4, B3) => {\n return A4[0] * B3[0] + A4[1] * B3[1];\n};\nVec.cpr = (A4, B3) => {\n return A4[0] * B3[1] - B3[0] * A4[1];\n};\nVec.len2 = (A4) => {\n return A4[0] * A4[0] + A4[1] * A4[1];\n};\nVec.len = (A4) => {\n return Math.hypot(A4[0], A4[1]);\n};\nVec.pry = (A4, B3) => {\n return _Vec.dpr(A4, B3) \/ _Vec.len(B3);\n};\nVec.uni = (A4) => {\n return _Vec.div(A4, _Vec.len(A4));\n};\nVec.normalize = (A4) => {\n return _Vec.uni(A4);\n};\nVec.tangent = (A4, B3) => {\n return _Vec.uni(_Vec.sub(A4, B3));\n};\nVec.dist2 = (A4, B3) => {\n return _Vec.len2(_Vec.sub(A4, B3));\n};\nVec.dist = (A4, B3) => {\n return Math.hypot(A4[1] - B3[1], A4[0] - B3[0]);\n};\nVec.fastDist = (A4, B3) => {\n const V4 = [B3[0] - A4[0], B3[1] - A4[1]];\n const aV = [Math.abs(V4[0]), Math.abs(V4[1])];\n let r4 = 1 \/ Math.max(aV[0], aV[1]);\n r4 = r4 * (1.29289 - (aV[0] + aV[1]) * r4 * 0.29289);\n return [V4[0] * r4, V4[1] * r4];\n};\nVec.ang = (A4, B3) => {\n return Math.atan2(_Vec.cpr(A4, B3), _Vec.dpr(A4, B3));\n};\nVec.angle = (A4, B3) => {\n return Math.atan2(B3[1] - A4[1], B3[0] - A4[0]);\n};\nVec.med = (A4, B3) => {\n return _Vec.mul(_Vec.add(A4, B3), 0.5);\n};\nVec.rot = (A4, r4 = 0) => {\n return [A4[0] * Math.cos(r4) - A4[1] * Math.sin(r4), A4[0] * Math.sin(r4) + A4[1] * Math.cos(r4)];\n};\nVec.rotWith = (A4, C4, r4 = 0) => {\n if (r4 === 0)\n return A4;\n const s4 = Math.sin(r4);\n const c4 = Math.cos(r4);\n const px = A4[0] - C4[0];\n const py = A4[1] - C4[1];\n const nx = px * c4 - py * s4;\n const ny = px * s4 + py * c4;\n return [nx + C4[0], ny + C4[1]];\n};\nVec.isEqual = (A4, B3) => {\n return A4[0] === B3[0] && A4[1] === B3[1];\n};\nVec.lrp = (A4, B3, t2) => {\n return _Vec.add(A4, _Vec.mul(_Vec.sub(B3, A4), t2));\n};\nVec.int = (A4, B3, from, to, s4 = 1) => {\n const t2 = (_Vec.clamp(from, to) - from) \/ (to - from);\n return _Vec.add(_Vec.mul(A4, 1 - t2), _Vec.mul(B3, s4));\n};\nVec.ang3 = (p1, pc, p22) => {\n const v12 = _Vec.vec(pc, p1);\n const v22 = _Vec.vec(pc, p22);\n return _Vec.ang(v12, v22);\n};\nVec.abs = (A4) => {\n return [Math.abs(A4[0]), Math.abs(A4[1])];\n};\nVec.rescale = (a5, n4) => {\n const l5 = _Vec.len(a5);\n return [n4 * a5[0] \/ l5, n4 * a5[1] \/ l5];\n};\nVec.isLeft = (p1, pc, p22) => {\n return (pc[0] - p1[0]) * (p22[1] - p1[1]) - (p22[0] - p1[0]) * (pc[1] - p1[1]);\n};\nVec.clockwise = (p1, pc, p22) => {\n return _Vec.isLeft(p1, pc, p22) > 0;\n};\nVec.toFixed = (a5) => {\n return a5.map((v4) => Math.round(v4 * 100) \/ 100);\n};\nVec.nearestPointOnLineThroughPoint = (A4, u4, P3) => {\n return _Vec.add(A4, _Vec.mul(u4, _Vec.pry(_Vec.sub(P3, A4), u4)));\n};\nVec.distanceToLineThroughPoint = (A4, u4, P3) => {\n return _Vec.dist(P3, _Vec.nearestPointOnLineThroughPoint(A4, u4, P3));\n};\nVec.nearestPointOnLineSegment = (A4, B3, P3, clamp3 = true) => {\n const u4 = _Vec.uni(_Vec.sub(B3, A4));\n const C4 = _Vec.add(A4, _Vec.mul(u4, _Vec.pry(_Vec.sub(P3, A4), u4)));\n if (clamp3) {\n if (C4[0] < Math.min(A4[0], B3[0]))\n return A4[0] < B3[0] ? A4 : B3;\n if (C4[0] > Math.max(A4[0], B3[0]))\n return A4[0] > B3[0] ? A4 : B3;\n if (C4[1] < Math.min(A4[1], B3[1]))\n return A4[1] < B3[1] ? A4 : B3;\n if (C4[1] > Math.max(A4[1], B3[1]))\n return A4[1] > B3[1] ? A4 : B3;\n }\n return C4;\n};\nVec.distanceToLineSegment = (A4, B3, P3, clamp3 = true) => {\n return _Vec.dist(P3, _Vec.nearestPointOnLineSegment(A4, B3, P3, clamp3));\n};\nVec.nudge = (A4, B3, d4) => {\n if (_Vec.isEqual(A4, B3))\n return A4;\n return _Vec.add(A4, _Vec.mul(_Vec.uni(_Vec.sub(B3, A4)), d4));\n};\nVec.nudgeAtAngle = (A4, a5, d4) => {\n return [Math.cos(a5) * d4 + A4[0], Math.sin(a5) * d4 + A4[1]];\n};\nVec.toPrecision = (a5, n4 = 4) => {\n return [+a5[0].toPrecision(n4), +a5[1].toPrecision(n4)];\n};\nVec.pointsBetween = (A4, B3, steps = 6) => {\n return Array.from(Array(steps)).map((_2, i4) => {\n const t2 = i4 \/ (steps - 1);\n const k3 = Math.min(1, 0.5 + Math.abs(0.5 - t2));\n return [..._Vec.lrp(A4, B3, t2), k3];\n });\n};\nVec.slope = (A4, B3) => {\n if (A4[0] === B3[0])\n return NaN;\n return (A4[1] - B3[1]) \/ (A4[0] - B3[0]);\n};\nVec.toAngle = (A4) => {\n const angle = Math.atan2(A4[1], A4[0]);\n if (angle < 0)\n return angle + Math.PI * 2;\n return angle;\n};\nVec.max = (...v4) => {\n return [Math.max(...v4.map((a5) => a5[0])), Math.max(...v4.map((a5) => a5[1]))];\n};\nVec.min = (...v4) => {\n return [Math.min(...v4.map((a5) => a5[0])), Math.min(...v4.map((a5) => a5[1]))];\n};\nvar src_default = Vec;\n\n\/\/ ..\/..\/node_modules\/potpack\/index.js\nfunction potpack(boxes) {\n let area = 0;\n let maxWidth = 0;\n for (const box2 of boxes) {\n area += box2.w * box2.h;\n maxWidth = Math.max(maxWidth, box2.w);\n }\n boxes.sort((a5, b5) => b5.h - a5.h);\n const startWidth = Math.max(Math.ceil(Math.sqrt(area \/ 0.95)), maxWidth);\n const spaces = [{ x: 0, y: 0, w: startWidth, h: Infinity }];\n let width = 0;\n let height = 0;\n for (const box2 of boxes) {\n for (let i4 = spaces.length - 1; i4 >= 0; i4--) {\n const space = spaces[i4];\n if (box2.w > space.w || box2.h > space.h)\n continue;\n box2.x = space.x;\n box2.y = space.y;\n height = Math.max(height, box2.y + box2.h);\n width = Math.max(width, box2.x + box2.w);\n if (box2.w === space.w && box2.h === space.h) {\n const last = spaces.pop();\n if (i4 < spaces.length)\n spaces[i4] = last;\n } else if (box2.h === space.h) {\n space.x += box2.w;\n space.w -= box2.w;\n } else if (box2.w === space.w) {\n space.y += box2.h;\n space.h -= box2.h;\n } else {\n spaces.push({\n x: space.x + box2.w,\n y: space.y,\n w: space.w - box2.w,\n h: box2.h\n });\n space.y += box2.h;\n space.h -= box2.h;\n }\n break;\n }\n }\n return {\n w: width,\n h: height,\n fill: area \/ (width * height) || 0\n };\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/BoundsUtils.ts\nvar BoundsUtils = class {\n static getRectangleSides(point, size, rotation = 0) {\n const center = [point[0] + size[0] \/ 2, point[1] + size[1] \/ 2];\n const tl = Vec.rotWith(point, center, rotation);\n const tr = Vec.rotWith(Vec.add(point, [size[0], 0]), center, rotation);\n const br = Vec.rotWith(Vec.add(point, size), center, rotation);\n const bl = Vec.rotWith(Vec.add(point, [0, size[1]]), center, rotation);\n return [\n [\"top\", [tl, tr]],\n [\"right\", [tr, br]],\n [\"bottom\", [br, bl]],\n [\"left\", [bl, tl]]\n ];\n }\n static getBoundsSides(bounds) {\n return BoundsUtils.getRectangleSides([bounds.minX, bounds.minY], [bounds.width, bounds.height]);\n }\n static expandBounds(bounds, delta) {\n return {\n minX: bounds.minX - delta,\n minY: bounds.minY - delta,\n maxX: bounds.maxX + delta,\n maxY: bounds.maxY + delta,\n width: bounds.width + delta * 2,\n height: bounds.height + delta * 2\n };\n }\n static boundsCollide(a5, b5) {\n return !(a5.maxX < b5.minX || a5.minX > b5.maxX || a5.maxY < b5.minY || a5.minY > b5.maxY);\n }\n static boundsContain(a5, b5) {\n if (Array.isArray(b5)) {\n return a5.minX < b5[0] && a5.minY < b5[1] && a5.maxY > b5[1] && a5.maxX > b5[0];\n }\n return a5.minX < b5.minX && a5.minY < b5.minY && a5.maxY > b5.maxY && a5.maxX > b5.maxX;\n }\n static boundsContained(a5, b5) {\n return BoundsUtils.boundsContain(b5, a5);\n }\n static boundsAreEqual(a5, b5) {\n return !(b5.maxX !== a5.maxX || b5.minX !== a5.minX || b5.maxY !== a5.maxY || b5.minY !== a5.minY);\n }\n static getBoundsFromPoints(points, rotation = 0) {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n if (points.length < 2) {\n minX = 0;\n minY = 0;\n maxX = 1;\n maxY = 1;\n } else {\n for (const point of points) {\n minX = Math.min(point[0], minX);\n minY = Math.min(point[1], minY);\n maxX = Math.max(point[0], maxX);\n maxY = Math.max(point[1], maxY);\n }\n }\n if (rotation !== 0) {\n return BoundsUtils.getBoundsFromPoints(\n points.map((pt2) => Vec.rotWith(pt2, [(minX + maxX) \/ 2, (minY + maxY) \/ 2], rotation))\n );\n }\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: Math.max(1, maxX - minX),\n height: Math.max(1, maxY - minY)\n };\n }\n static centerBounds(bounds, point) {\n const boundsCenter = BoundsUtils.getBoundsCenter(bounds);\n const dx = point[0] - boundsCenter[0];\n const dy = point[1] - boundsCenter[1];\n return BoundsUtils.translateBounds(bounds, [dx, dy]);\n }\n static snapBoundsToGrid(bounds, gridSize) {\n const minX = Math.round(bounds.minX \/ gridSize) * gridSize;\n const minY = Math.round(bounds.minY \/ gridSize) * gridSize;\n const maxX = Math.round(bounds.maxX \/ gridSize) * gridSize;\n const maxY = Math.round(bounds.maxY \/ gridSize) * gridSize;\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: Math.max(1, maxX - minX),\n height: Math.max(1, maxY - minY)\n };\n }\n static translateBounds(bounds, delta) {\n return {\n minX: bounds.minX + delta[0],\n minY: bounds.minY + delta[1],\n maxX: bounds.maxX + delta[0],\n maxY: bounds.maxY + delta[1],\n width: bounds.width,\n height: bounds.height\n };\n }\n static multiplyBounds(bounds, n4) {\n const center = BoundsUtils.getBoundsCenter(bounds);\n return BoundsUtils.centerBounds(\n {\n minX: bounds.minX * n4,\n minY: bounds.minY * n4,\n maxX: bounds.maxX * n4,\n maxY: bounds.maxY * n4,\n width: bounds.width * n4,\n height: bounds.height * n4\n },\n [center[0] * n4, center[1] * n4]\n );\n }\n static divideBounds(bounds, n4) {\n const center = BoundsUtils.getBoundsCenter(bounds);\n return BoundsUtils.centerBounds(\n {\n minX: bounds.minX \/ n4,\n minY: bounds.minY \/ n4,\n maxX: bounds.maxX \/ n4,\n maxY: bounds.maxY \/ n4,\n width: bounds.width \/ n4,\n height: bounds.height \/ n4\n },\n [center[0] \/ n4, center[1] \/ n4]\n );\n }\n static getRotatedBounds(bounds, rotation = 0) {\n const corners = BoundsUtils.getRotatedCorners(bounds, rotation);\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const point of corners) {\n minX = Math.min(point[0], minX);\n minY = Math.min(point[1], minY);\n maxX = Math.max(point[0], maxX);\n maxY = Math.max(point[1], maxY);\n }\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: Math.max(1, maxX - minX),\n height: Math.max(1, maxY - minY),\n rotation: 0\n };\n }\n static getRotatedEllipseBounds(x4, y4, rx, ry, rotation = 0) {\n const c4 = Math.cos(rotation);\n const s4 = Math.sin(rotation);\n const w4 = Math.hypot(rx * c4, ry * s4);\n const h4 = Math.hypot(rx * s4, ry * c4);\n return {\n minX: x4 + rx - w4,\n minY: y4 + ry - h4,\n maxX: x4 + rx + w4,\n maxY: y4 + ry + h4,\n width: w4 * 2,\n height: h4 * 2\n };\n }\n static getExpandedBounds(a5, b5) {\n const minX = Math.min(a5.minX, b5.minX);\n const minY = Math.min(a5.minY, b5.minY);\n const maxX = Math.max(a5.maxX, b5.maxX);\n const maxY = Math.max(a5.maxY, b5.maxY);\n const width = Math.abs(maxX - minX);\n const height = Math.abs(maxY - minY);\n return { minX, minY, maxX, maxY, width, height };\n }\n static getCommonBounds(bounds) {\n if (bounds.length < 2)\n return bounds[0];\n let result = bounds[0];\n for (let i4 = 1; i4 < bounds.length; i4++) {\n result = BoundsUtils.getExpandedBounds(result, bounds[i4]);\n }\n return result;\n }\n static getRotatedCorners(b5, rotation = 0) {\n const center = [b5.minX + b5.width \/ 2, b5.minY + b5.height \/ 2];\n const corners = [\n [b5.minX, b5.minY],\n [b5.maxX, b5.minY],\n [b5.maxX, b5.maxY],\n [b5.minX, b5.maxY]\n ];\n if (rotation)\n return corners.map((point) => Vec.rotWith(point, center, rotation));\n return corners;\n }\n static getTransformedBoundingBox(bounds, handle, delta, rotation = 0, isAspectRatioLocked = false) {\n const [ax0, ay0] = [bounds.minX, bounds.minY];\n const [ax1, ay1] = [bounds.maxX, bounds.maxY];\n let [bx0, by0] = [bounds.minX, bounds.minY];\n let [bx1, by1] = [bounds.maxX, bounds.maxY];\n if (handle === \"center\") {\n return {\n minX: bx0 + delta[0],\n minY: by0 + delta[1],\n maxX: bx1 + delta[0],\n maxY: by1 + delta[1],\n width: bx1 - bx0,\n height: by1 - by0,\n scaleX: 1,\n scaleY: 1\n };\n }\n const [dx, dy] = Vec.rot(delta, -rotation);\n switch (handle) {\n case \"top_edge\" \/* Top *\/:\n case \"top_left_corner\" \/* TopLeft *\/:\n case \"top_right_corner\" \/* TopRight *\/: {\n by0 += dy;\n break;\n }\n case \"bottom_edge\" \/* Bottom *\/:\n case \"bottom_left_corner\" \/* BottomLeft *\/:\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n by1 += dy;\n break;\n }\n }\n switch (handle) {\n case \"left_edge\" \/* Left *\/:\n case \"top_left_corner\" \/* TopLeft *\/:\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n bx0 += dx;\n break;\n }\n case \"right_edge\" \/* Right *\/:\n case \"top_right_corner\" \/* TopRight *\/:\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n bx1 += dx;\n break;\n }\n }\n const aw = ax1 - ax0;\n const ah = ay1 - ay0;\n const scaleX = (bx1 - bx0) \/ aw;\n const scaleY = (by1 - by0) \/ ah;\n const flipX = scaleX < 0;\n const flipY = scaleY < 0;\n const bw = Math.abs(bx1 - bx0);\n const bh = Math.abs(by1 - by0);\n if (isAspectRatioLocked) {\n const ar = aw \/ ah;\n const isTall = ar < bw \/ bh;\n const tw = bw * (scaleY < 0 ? 1 : -1) * (1 \/ ar);\n const th = bh * (scaleX < 0 ? 1 : -1) * ar;\n switch (handle) {\n case \"top_left_corner\" \/* TopLeft *\/: {\n if (isTall)\n by0 = by1 + tw;\n else\n bx0 = bx1 + th;\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/: {\n if (isTall)\n by0 = by1 + tw;\n else\n bx1 = bx0 - th;\n break;\n }\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n if (isTall)\n by1 = by0 - tw;\n else\n bx1 = bx0 - th;\n break;\n }\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n if (isTall)\n by1 = by0 - tw;\n else\n bx0 = bx1 + th;\n break;\n }\n case \"bottom_edge\" \/* Bottom *\/:\n case \"top_edge\" \/* Top *\/: {\n const m4 = (bx0 + bx1) \/ 2;\n const w4 = bh * ar;\n bx0 = m4 - w4 \/ 2;\n bx1 = m4 + w4 \/ 2;\n break;\n }\n case \"left_edge\" \/* Left *\/:\n case \"right_edge\" \/* Right *\/: {\n const m4 = (by0 + by1) \/ 2;\n const h4 = bw \/ ar;\n by0 = m4 - h4 \/ 2;\n by1 = m4 + h4 \/ 2;\n break;\n }\n }\n }\n if (rotation % (Math.PI * 2) !== 0) {\n let cv = [0, 0];\n const c0 = Vec.med([ax0, ay0], [ax1, ay1]);\n const c1 = Vec.med([bx0, by0], [bx1, by1]);\n switch (handle) {\n case \"top_left_corner\" \/* TopLeft *\/: {\n cv = Vec.sub(Vec.rotWith([bx1, by1], c1, rotation), Vec.rotWith([ax1, ay1], c0, rotation));\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/: {\n cv = Vec.sub(Vec.rotWith([bx0, by1], c1, rotation), Vec.rotWith([ax0, ay1], c0, rotation));\n break;\n }\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n cv = Vec.sub(Vec.rotWith([bx0, by0], c1, rotation), Vec.rotWith([ax0, ay0], c0, rotation));\n break;\n }\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n cv = Vec.sub(Vec.rotWith([bx1, by0], c1, rotation), Vec.rotWith([ax1, ay0], c0, rotation));\n break;\n }\n case \"top_edge\" \/* Top *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx0, by1], [bx1, by1]), c1, rotation),\n Vec.rotWith(Vec.med([ax0, ay1], [ax1, ay1]), c0, rotation)\n );\n break;\n }\n case \"left_edge\" \/* Left *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx1, by0], [bx1, by1]), c1, rotation),\n Vec.rotWith(Vec.med([ax1, ay0], [ax1, ay1]), c0, rotation)\n );\n break;\n }\n case \"bottom_edge\" \/* Bottom *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx0, by0], [bx1, by0]), c1, rotation),\n Vec.rotWith(Vec.med([ax0, ay0], [ax1, ay0]), c0, rotation)\n );\n break;\n }\n case \"right_edge\" \/* Right *\/: {\n cv = Vec.sub(\n Vec.rotWith(Vec.med([bx0, by0], [bx0, by1]), c1, rotation),\n Vec.rotWith(Vec.med([ax0, ay0], [ax0, ay1]), c0, rotation)\n );\n break;\n }\n }\n ;\n [bx0, by0] = Vec.sub([bx0, by0], cv);\n [bx1, by1] = Vec.sub([bx1, by1], cv);\n }\n if (bx1 < bx0) {\n ;\n [bx1, bx0] = [bx0, bx1];\n }\n if (by1 < by0) {\n ;\n [by1, by0] = [by0, by1];\n }\n return {\n minX: bx0,\n minY: by0,\n maxX: bx1,\n maxY: by1,\n width: bx1 - bx0,\n height: by1 - by0,\n scaleX: (bx1 - bx0) \/ (ax1 - ax0 || 1) * (flipX ? -1 : 1),\n scaleY: (by1 - by0) \/ (ay1 - ay0 || 1) * (flipY ? -1 : 1)\n };\n }\n static getTransformAnchor(type, isFlippedX, isFlippedY) {\n let anchor = type;\n switch (type) {\n case \"top_left_corner\" \/* TopLeft *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n } else if (isFlippedX) {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n } else if (isFlippedY) {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n } else {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n }\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n } else if (isFlippedX) {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n } else if (isFlippedY) {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n } else {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n }\n break;\n }\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n } else if (isFlippedX) {\n anchor = \"bottom_left_corner\" \/* BottomLeft *\/;\n } else if (isFlippedY) {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n } else {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n }\n break;\n }\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n if (isFlippedX && isFlippedY) {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n } else if (isFlippedX) {\n anchor = \"bottom_right_corner\" \/* BottomRight *\/;\n } else if (isFlippedY) {\n anchor = \"top_left_corner\" \/* TopLeft *\/;\n } else {\n anchor = \"top_right_corner\" \/* TopRight *\/;\n }\n break;\n }\n }\n return anchor;\n }\n static getRelativeTransformedBoundingBox(bounds, initialBounds, initialShapeBounds, isFlippedX, isFlippedY) {\n const nx = (isFlippedX ? initialBounds.maxX - initialShapeBounds.maxX : initialShapeBounds.minX - initialBounds.minX) \/ initialBounds.width;\n const ny = (isFlippedY ? initialBounds.maxY - initialShapeBounds.maxY : initialShapeBounds.minY - initialBounds.minY) \/ initialBounds.height;\n const nw = initialShapeBounds.width \/ initialBounds.width;\n const nh = initialShapeBounds.height \/ initialBounds.height;\n const minX = bounds.minX + bounds.width * nx;\n const minY = bounds.minY + bounds.height * ny;\n const width = bounds.width * nw;\n const height = bounds.height * nh;\n return {\n minX,\n minY,\n maxX: minX + width,\n maxY: minY + height,\n width,\n height\n };\n }\n static getRotatedSize(size, rotation) {\n const center = Vec.div(size, 2);\n const points = [[0, 0], [size[0], 0], size, [0, size[1]]].map(\n (point) => Vec.rotWith(point, center, rotation)\n );\n const bounds = BoundsUtils.getBoundsFromPoints(points);\n return [bounds.width, bounds.height];\n }\n static getBoundsCenter(bounds) {\n return [bounds.minX + bounds.width \/ 2, bounds.minY + bounds.height \/ 2];\n }\n static getBoundsWithCenter(bounds) {\n const center = BoundsUtils.getBoundsCenter(bounds);\n return __spreadProps(__spreadValues({}, bounds), {\n midX: center[0],\n midY: center[1]\n });\n }\n static getCommonTopLeft(points) {\n const min = [Infinity, Infinity];\n points.forEach((point) => {\n min[0] = Math.min(min[0], point[0]);\n min[1] = Math.min(min[1], point[1]);\n });\n return min;\n }\n static getTLSnapPoints(bounds, others, snapDistance) {\n const A4 = __spreadValues({}, bounds);\n const offset = [0, 0];\n const snapLines = [];\n const snaps = {\n [\"minX\" \/* minX *\/]: { id: \"minX\" \/* minX *\/, isSnapped: false },\n [\"midX\" \/* midX *\/]: { id: \"midX\" \/* midX *\/, isSnapped: false },\n [\"maxX\" \/* maxX *\/]: { id: \"maxX\" \/* maxX *\/, isSnapped: false },\n [\"minY\" \/* minY *\/]: { id: \"minY\" \/* minY *\/, isSnapped: false },\n [\"midY\" \/* midY *\/]: { id: \"midY\" \/* midY *\/, isSnapped: false },\n [\"maxY\" \/* maxY *\/]: { id: \"maxY\" \/* maxY *\/, isSnapped: false }\n };\n const xs = [\"midX\" \/* midX *\/, \"minX\" \/* minX *\/, \"maxX\" \/* maxX *\/];\n const ys = [\"midY\" \/* midY *\/, \"minY\" \/* minY *\/, \"maxY\" \/* maxY *\/];\n const snapResults = others.map((B3) => {\n const rx = xs.flatMap(\n (f4, i4) => xs.map((t2, k3) => {\n const gap = A4[f4] - B3[t2];\n const distance = Math.abs(gap);\n return {\n f: f4,\n t: t2,\n gap,\n distance,\n isCareful: i4 === 0 || i4 + k3 === 3\n };\n })\n );\n const ry = ys.flatMap(\n (f4, i4) => ys.map((t2, k3) => {\n const gap = A4[f4] - B3[t2];\n const distance = Math.abs(gap);\n return {\n f: f4,\n t: t2,\n gap,\n distance,\n isCareful: i4 === 0 || i4 + k3 === 3\n };\n })\n );\n return [B3, rx, ry];\n });\n let gapX = Infinity;\n let gapY = Infinity;\n let minX = Infinity;\n let minY = Infinity;\n snapResults.forEach(([_2, rx, ry]) => {\n rx.forEach((r4) => {\n if (r4.distance < snapDistance && r4.distance < minX) {\n minX = r4.distance;\n gapX = r4.gap;\n }\n });\n ry.forEach((r4) => {\n if (r4.distance < snapDistance && r4.distance < minY) {\n minY = r4.distance;\n gapY = r4.gap;\n }\n });\n });\n snapResults.forEach(([B3, rx, ry]) => {\n if (gapX !== Infinity) {\n rx.forEach((r4) => {\n if (Math.abs(r4.gap - gapX) < 2) {\n snaps[r4.f] = __spreadProps(__spreadValues({}, snaps[r4.f]), {\n isSnapped: true,\n to: B3[r4.t],\n B: B3,\n distance: r4.distance\n });\n }\n });\n }\n if (gapY !== Infinity) {\n ry.forEach((r4) => {\n if (Math.abs(r4.gap - gapY) < 2) {\n snaps[r4.f] = __spreadProps(__spreadValues({}, snaps[r4.f]), {\n isSnapped: true,\n to: B3[r4.t],\n B: B3,\n distance: r4.distance\n });\n }\n });\n }\n });\n offset[0] = gapX === Infinity ? 0 : gapX;\n offset[1] = gapY === Infinity ? 0 : gapY;\n A4.minX -= offset[0];\n A4.midX -= offset[0];\n A4.maxX -= offset[0];\n A4.minY -= offset[1];\n A4.midY -= offset[1];\n A4.maxY -= offset[1];\n xs.forEach((from) => {\n const snap = snaps[from];\n if (!snap.isSnapped)\n return;\n const { id: id3, B: B3 } = snap;\n const x4 = A4[id3];\n snapLines.push(\n id3 === \"minX\" \/* minX *\/ ? [\n [x4, A4.midY],\n [x4, B3.minY],\n [x4, B3.maxY]\n ] : [\n [x4, A4.minY],\n [x4, A4.maxY],\n [x4, B3.minY],\n [x4, B3.maxY]\n ]\n );\n });\n ys.forEach((from) => {\n const snap = snaps[from];\n if (!snap.isSnapped)\n return;\n const { id: id3, B: B3 } = snap;\n const y4 = A4[id3];\n snapLines.push(\n id3 === \"midY\" \/* midY *\/ ? [\n [A4.midX, y4],\n [B3.minX, y4],\n [B3.maxX, y4]\n ] : [\n [A4.minX, y4],\n [A4.maxX, y4],\n [B3.minX, y4],\n [B3.maxX, y4]\n ]\n );\n });\n return { offset, snapLines };\n }\n static ensureRatio(bounds, ratio) {\n const { width, height } = bounds;\n const newBounds = __spreadValues({}, bounds);\n if (width \/ height < ratio) {\n newBounds.width = height * ratio;\n newBounds.maxX += width - bounds.width;\n } else {\n newBounds.height = width \/ ratio;\n newBounds.maxY += height - bounds.height;\n }\n return newBounds;\n }\n static getDistributions(shapes2, type) {\n const entries = shapes2.map((shape) => {\n const bounds = shape.getBounds();\n return {\n id: shape.id,\n point: [bounds.minX, bounds.minY],\n bounds,\n center: shape.getCenter()\n };\n });\n const len = entries.length;\n const commonBounds = BoundsUtils.getCommonBounds(entries.map(({ bounds }) => bounds));\n const results = [];\n switch (type) {\n case \"horizontal\" \/* Horizontal *\/: {\n const span = entries.reduce((a5, c4) => a5 + c4.bounds.width, 0);\n if (span > commonBounds.width) {\n const left = entries.sort((a5, b5) => a5.bounds.minX - b5.bounds.minX)[0];\n const right = entries.sort((a5, b5) => b5.bounds.maxX - a5.bounds.maxX)[0];\n const entriesToMove = entries.filter((a5) => a5 !== left && a5 !== right).sort((a5, b5) => a5.center[0] - b5.center[0]);\n const step = (right.center[0] - left.center[0]) \/ (len - 1);\n const x4 = left.center[0] + step;\n entriesToMove.forEach(({ id: id3, point, bounds }, i4) => {\n results.push({\n id: id3,\n prev: point,\n next: [x4 + step * i4 - bounds.width \/ 2, bounds.minY]\n });\n });\n } else {\n const entriesToMove = entries.sort((a5, b5) => a5.center[0] - b5.center[0]);\n let x4 = commonBounds.minX;\n const step = (commonBounds.width - span) \/ (len - 1);\n entriesToMove.forEach(({ id: id3, point, bounds }) => {\n results.push({ id: id3, prev: point, next: [x4, bounds.minY] });\n x4 += bounds.width + step;\n });\n }\n break;\n }\n case \"vertical\" \/* Vertical *\/: {\n const span = entries.reduce((a5, c4) => a5 + c4.bounds.height, 0);\n if (span > commonBounds.height) {\n const top = entries.sort((a5, b5) => a5.bounds.minY - b5.bounds.minY)[0];\n const bottom = entries.sort((a5, b5) => b5.bounds.maxY - a5.bounds.maxY)[0];\n const entriesToMove = entries.filter((a5) => a5 !== top && a5 !== bottom).sort((a5, b5) => a5.center[1] - b5.center[1]);\n const step = (bottom.center[1] - top.center[1]) \/ (len - 1);\n const y4 = top.center[1] + step;\n entriesToMove.forEach(({ id: id3, point, bounds }, i4) => {\n results.push({\n id: id3,\n prev: point,\n next: [bounds.minX, y4 + step * i4 - bounds.height \/ 2]\n });\n });\n } else {\n const entriesToMove = entries.sort((a5, b5) => a5.center[1] - b5.center[1]);\n let y4 = commonBounds.minY;\n const step = (commonBounds.height - span) \/ (len - 1);\n entriesToMove.forEach(({ id: id3, point, bounds }) => {\n results.push({ id: id3, prev: point, next: [bounds.minX, y4] });\n y4 += bounds.height + step;\n });\n }\n break;\n }\n }\n return results;\n }\n static getPackedDistributions(shapes2) {\n const commonBounds = BoundsUtils.getCommonBounds(shapes2.map(({ bounds }) => bounds));\n const origin = [commonBounds.minX, commonBounds.minY];\n const shapesPosOriginal = Object.fromEntries(\n shapes2.map((s4) => [s4.id, [s4.bounds.minX, s4.bounds.minY]])\n );\n const entries = shapes2.filter((s4) => {\n var _a3, _b, _c, _d;\n return !(((_b = (_a3 = s4.props.handles) == null ? void 0 : _a3.start) == null ? void 0 : _b.bindingId) || ((_d = (_c = s4.props.handles) == null ? void 0 : _c.end) == null ? void 0 : _d.bindingId));\n }).map((shape) => {\n const bounds = shape.getBounds();\n return {\n id: shape.id,\n w: bounds.width + 16,\n h: bounds.height + 16,\n x: bounds.minX,\n y: bounds.minY\n };\n });\n potpack(entries);\n const entriesToMove = entries.map(({ id: id3, x: x4, y: y4 }) => {\n return {\n id: id3,\n prev: shapesPosOriginal[id3],\n next: [x4 + origin[0], y4 + origin[1]]\n };\n });\n return entriesToMove;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/PointUtils.ts\nvar _PointUtils = class {\n static pointInCircle(A4, C4, r4) {\n return Vec.dist(A4, C4) <= r4;\n }\n static pointInEllipse(A4, C4, rx, ry, rotation = 0) {\n rotation = rotation || 0;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const delta = Vec.sub(A4, C4);\n const tdx = cos * delta[0] + sin * delta[1];\n const tdy = sin * delta[0] - cos * delta[1];\n return tdx * tdx \/ (rx * rx) + tdy * tdy \/ (ry * ry) <= 1;\n }\n static pointInRect(point, size) {\n return !(point[0] < size[0] || point[0] > point[0] + size[0] || point[1] < size[1] || point[1] > point[1] + size[1]);\n }\n static pointInPolygon(p4, points) {\n let wn = 0;\n points.forEach((a5, i4) => {\n const b5 = points[(i4 + 1) % points.length];\n if (a5[1] <= p4[1]) {\n if (b5[1] > p4[1] && Vec.cross(a5, b5, p4) > 0) {\n wn += 1;\n }\n } else if (b5[1] <= p4[1] && Vec.cross(a5, b5, p4) < 0) {\n wn -= 1;\n }\n });\n return wn !== 0;\n }\n static pointInBounds(A4, b5) {\n return !(A4[0] < b5.minX || A4[0] > b5.maxX || A4[1] < b5.minY || A4[1] > b5.maxY);\n }\n static pointInPolyline(A4, points, distance = 3) {\n for (let i4 = 1; i4 < points.length; i4++) {\n if (Vec.distanceToLineSegment(points[i4 - 1], points[i4], A4) < distance) {\n return true;\n }\n }\n return false;\n }\n static _getSqSegDist(p4, p1, p22) {\n let x4 = p1[0];\n let y4 = p1[1];\n let dx = p22[0] - x4;\n let dy = p22[1] - y4;\n if (dx !== 0 || dy !== 0) {\n const t2 = ((p4[0] - x4) * dx + (p4[1] - y4) * dy) \/ (dx * dx + dy * dy);\n if (t2 > 1) {\n x4 = p22[0];\n y4 = p22[1];\n } else if (t2 > 0) {\n x4 += dx * t2;\n y4 += dy * t2;\n }\n }\n dx = p4[0] - x4;\n dy = p4[1] - y4;\n return dx * dx + dy * dy;\n }\n static _simplifyStep(points, first, last, sqTolerance, result) {\n let maxSqDist = sqTolerance;\n let index3 = -1;\n for (let i4 = first + 1; i4 < last; i4++) {\n const sqDist = _PointUtils._getSqSegDist(points[i4], points[first], points[last]);\n if (sqDist > maxSqDist) {\n index3 = i4;\n maxSqDist = sqDist;\n }\n }\n if (index3 > -1 && maxSqDist > sqTolerance) {\n if (index3 - first > 1)\n _PointUtils._simplifyStep(points, first, index3, sqTolerance, result);\n result.push(points[index3]);\n if (last - index3 > 1)\n _PointUtils._simplifyStep(points, index3, last, sqTolerance, result);\n }\n }\n static simplify2(points, tolerance = 1) {\n if (points.length <= 2)\n return points;\n const sqTolerance = tolerance * tolerance;\n let A4 = points[0];\n let B3 = points[1];\n const newPoints = [A4];\n for (let i4 = 1, len = points.length; i4 < len; i4++) {\n B3 = points[i4];\n if ((B3[0] - A4[0]) * (B3[0] - A4[0]) + (B3[1] - A4[1]) * (B3[1] - A4[1]) > sqTolerance) {\n newPoints.push(B3);\n A4 = B3;\n }\n }\n if (A4 !== B3)\n newPoints.push(B3);\n const last = newPoints.length - 1;\n const result = [newPoints[0]];\n _PointUtils._simplifyStep(newPoints, 0, last, sqTolerance, result);\n result.push(newPoints[last], points[points.length - 1]);\n return result;\n }\n static pointNearToPolyline(point, points, distance = 8) {\n const len = points.length;\n for (let i4 = 1; i4 < len; i4++) {\n const p1 = points[i4 - 1];\n const p22 = points[i4];\n const d4 = Vec.distanceToLineSegment(p1, p22, point);\n if (d4 < distance)\n return true;\n }\n return false;\n }\n};\nvar PointUtils = _PointUtils;\n__publicField(PointUtils, \"simplify\", (points, tolerance = 1) => {\n const len = points.length;\n const a5 = points[0];\n const b5 = points[len - 1];\n const [x1, y1] = a5;\n const [x22, y22] = b5;\n if (len > 2) {\n let distance = 0;\n let index3 = 0;\n const max = Vec.len2([y22 - y1, x22 - x1]);\n for (let i4 = 1; i4 < len - 1; i4++) {\n const [x0, y0] = points[i4];\n const d4 = Math.pow(x0 * (y22 - y1) + x1 * (y0 - y22) + x22 * (y1 - y0), 2) \/ max;\n if (distance > d4)\n continue;\n distance = d4;\n index3 = i4;\n }\n if (distance > tolerance) {\n const l0 = _PointUtils.simplify(points.slice(0, index3 + 1), tolerance);\n const l1 = _PointUtils.simplify(points.slice(index3 + 1), tolerance);\n return l0.concat(l1.slice(1));\n }\n }\n return [a5, b5];\n});\n\n\/\/ ..\/..\/packages\/core\/src\/constants.ts\nvar PI = Math.PI;\nvar TAU = PI \/ 2;\nvar PI2 = PI * 2;\nvar EPSILON = Math.PI \/ 180;\nvar FIT_TO_SCREEN_PADDING = 100;\nvar BINDING_DISTANCE = 4;\nvar ZOOM_UPDATE_FACTOR = 0.8;\nvar GRID_SIZE = 8;\nvar EXPORT_PADDING = 8;\nvar EMPTY_OBJECT = {};\nvar GROUP_PADDING = 8;\nvar CURSORS = {\n [\"bottom_edge\" \/* Bottom *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"top_edge\" \/* Top *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"left_edge\" \/* Left *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"right_edge\" \/* Right *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"nesw-resize\" \/* NeswResize *\/,\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_left_corner\" \/* TopLeft *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_right_corner\" \/* TopRight *\/]: \"nesw-resize\" \/* NeswResize *\/,\n [\"bottom_left_resize_corner\" \/* BottomLeft *\/]: \"swne-rotate\" \/* SwneRotate *\/,\n [\"bottom_right_resize_corner\" \/* BottomRight *\/]: \"senw-rotate\" \/* SenwRotate *\/,\n [\"top_left_resize_corner\" \/* TopLeft *\/]: \"nwse-rotate\" \/* NwseRotate *\/,\n [\"top_right_resize_corner\" \/* TopRight *\/]: \"nesw-rotate\" \/* NeswRotate *\/,\n rotate: \"rotate\" \/* Rotate *\/,\n center: \"grab\" \/* Grab *\/,\n background: \"grab\" \/* Grab *\/\n};\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/GeomUtils.ts\nvar GeomUtils = class {\n static circleFromThreePoints(A4, B3, C4) {\n const [x1, y1] = A4;\n const [x22, y22] = B3;\n const [x32, y32] = C4;\n const a5 = x1 * (y22 - y32) - y1 * (x22 - x32) + x22 * y32 - x32 * y22;\n const b5 = (x1 * x1 + y1 * y1) * (y32 - y22) + (x22 * x22 + y22 * y22) * (y1 - y32) + (x32 * x32 + y32 * y32) * (y22 - y1);\n const c4 = (x1 * x1 + y1 * y1) * (x22 - x32) + (x22 * x22 + y22 * y22) * (x32 - x1) + (x32 * x32 + y32 * y32) * (x1 - x22);\n const x4 = -b5 \/ (2 * a5);\n const y4 = -c4 \/ (2 * a5);\n return [x4, y4, Math.hypot(x4 - x1, y4 - y1)];\n }\n static perimeterOfEllipse(rx, ry) {\n const h4 = Math.pow(rx - ry, 2) \/ Math.pow(rx + ry, 2);\n const p4 = PI * (rx + ry) * (1 + 3 * h4 \/ (10 + Math.sqrt(4 - 3 * h4)));\n return p4;\n }\n static shortAngleDist(a0, a1) {\n const da = (a1 - a0) % PI2;\n return 2 * da % PI2 - da;\n }\n static longAngleDist(a0, a1) {\n return PI2 - GeomUtils.shortAngleDist(a0, a1);\n }\n static lerpAngles(a0, a1, t2) {\n return a0 + GeomUtils.shortAngleDist(a0, a1) * t2;\n }\n static angleDelta(a0, a1) {\n return GeomUtils.shortAngleDist(a0, a1);\n }\n static getSweep(C4, A4, B3) {\n return GeomUtils.angleDelta(src_default.angle(C4, A4), src_default.angle(C4, B3));\n }\n static clampRadians(r4) {\n return (PI2 + r4) % PI2;\n }\n static snapAngleToSegments(r4, segments) {\n const seg = PI2 \/ segments;\n let ang = Math.floor((GeomUtils.clampRadians(r4) + seg \/ 2) \/ seg) * seg % PI2;\n if (ang < PI)\n ang += PI2;\n if (ang > PI)\n ang -= PI2;\n return ang;\n }\n static isAngleBetween(a5, b5, c4) {\n if (c4 === a5 || c4 === b5)\n return true;\n const AB = (b5 - a5 + TAU) % TAU;\n const AC = (c4 - a5 + TAU) % TAU;\n return AB <= PI !== AC > AB;\n }\n static degreesToRadians(d4) {\n return d4 * PI \/ 180;\n }\n static radiansToDegrees(r4) {\n return r4 * 180 \/ PI;\n }\n static getArcLength(C4, r4, A4, B3) {\n const sweep = GeomUtils.getSweep(C4, A4, B3);\n return r4 * PI2 * (sweep \/ PI2);\n }\n static getSweepFlag(A4, B3, C4) {\n const angleAC = src_default.angle(A4, C4);\n const angleAB = src_default.angle(A4, B3);\n const angleCAB = (angleAB - angleAC + 3 * PI) % PI2 - PI;\n return angleCAB > 0 ? 0 : 1;\n }\n static getLargeArcFlag(A4, C4, P3) {\n const anglePA = src_default.angle(P3, A4);\n const anglePC = src_default.angle(P3, C4);\n const angleAPC = (anglePC - anglePA + 3 * PI) % PI2 - PI;\n return Math.abs(angleAPC) > TAU ? 0 : 1;\n }\n static getArcDashOffset(C4, r4, A4, B3, step) {\n const del0 = GeomUtils.getSweepFlag(C4, A4, B3);\n const len0 = GeomUtils.getArcLength(C4, r4, A4, B3);\n const off0 = del0 < 0 ? len0 : PI2 * C4[2] - len0;\n return -off0 \/ 2 + step;\n }\n static getEllipseDashOffset(A4, step) {\n const c4 = PI2 * A4[2];\n return -c4 \/ 2 + -step;\n }\n static radiansToCardinalDirection(radians) {\n if (radians < Math.PI * 0.25) {\n return \"north\";\n } else if (radians < Math.PI * 0.75) {\n return \"east\";\n } else if (radians < Math.PI * 1.25) {\n return \"south\";\n } else if (radians < Math.PI * 1.75) {\n return \"west\";\n } else {\n return \"north\";\n }\n }\n};\n\n\/\/ ..\/..\/packages\/utils\/intersect\/src\/index.ts\nfunction createIntersection(message, ...points) {\n const didIntersect = points.length > 0;\n return { didIntersect, message, points };\n}\nfunction getRectangleSides(point, size, rotation = 0) {\n const center = [point[0] + size[0] \/ 2, point[1] + size[1] \/ 2];\n const tl = Vec.rotWith(point, center, rotation);\n const tr = Vec.rotWith(Vec.add(point, [size[0], 0]), center, rotation);\n const br = Vec.rotWith(Vec.add(point, size), center, rotation);\n const bl = Vec.rotWith(Vec.add(point, [0, size[1]]), center, rotation);\n return [\n [\"top\", [tl, tr]],\n [\"right\", [tr, br]],\n [\"bottom\", [br, bl]],\n [\"left\", [bl, tl]]\n ];\n}\nfunction intersectLineLine(AB, PQ) {\n const slopeAB = Vec.slope(AB[0], AB[1]);\n const slopePQ = Vec.slope(PQ[0], PQ[1]);\n if (slopeAB === slopePQ)\n return void 0;\n if (Number.isNaN(slopeAB) && !Number.isNaN(slopePQ)) {\n return [AB[0][0], (AB[0][0] - PQ[0][0]) * slopePQ + PQ[0][1]];\n }\n if (Number.isNaN(slopePQ) && !Number.isNaN(slopeAB)) {\n return [PQ[0][0], (PQ[0][0] - AB[0][0]) * slopeAB + AB[0][1]];\n }\n const x4 = (slopeAB * AB[0][0] - slopePQ * PQ[0][0] + PQ[0][1] - AB[0][1]) \/ (slopeAB - slopePQ);\n const y4 = slopePQ * (x4 - PQ[0][0]) + PQ[0][1];\n return [x4, y4];\n}\nfunction intersectRayLineSegment(origin, direction, a1, a22) {\n const [x4, y4] = origin;\n const [dx, dy] = direction;\n const [x1, y1] = a1;\n const [x22, y22] = a22;\n if (dy \/ dx !== (y22 - y1) \/ (x22 - x1)) {\n const d4 = dx * (y22 - y1) - dy * (x22 - x1);\n if (d4 !== 0) {\n const r4 = ((y4 - y1) * (x22 - x1) - (x4 - x1) * (y22 - y1)) \/ d4;\n const s4 = ((y4 - y1) * dx - (x4 - x1) * dy) \/ d4;\n if (r4 >= 0 && s4 >= 0 && s4 <= 1) {\n return createIntersection(\"intersection\", [x4 + r4 * dx, y4 + r4 * dy]);\n }\n }\n }\n return createIntersection(\"no intersection\");\n}\nfunction intersectRayRectangle(origin, direction, point, size, rotation = 0) {\n return intersectRectangleRay(point, size, rotation, origin, direction);\n}\nfunction intersectRayBounds(origin, direction, bounds, rotation = 0) {\n const { minX, minY, width, height } = bounds;\n return intersectRayRectangle(origin, direction, [minX, minY], [width, height], rotation);\n}\nfunction intersectLineSegmentLineSegment(a1, a22, b1, b22) {\n const AB = Vec.sub(a1, b1);\n const BV = Vec.sub(b22, b1);\n const AV = Vec.sub(a22, a1);\n const ua_t = BV[0] * AB[1] - BV[1] * AB[0];\n const ub_t = AV[0] * AB[1] - AV[1] * AB[0];\n const u_b = BV[1] * AV[0] - BV[0] * AV[1];\n if (ua_t === 0 || ub_t === 0) {\n return createIntersection(\"coincident\");\n }\n if (u_b === 0) {\n return createIntersection(\"parallel\");\n }\n if (u_b !== 0) {\n const ua = ua_t \/ u_b;\n const ub = ub_t \/ u_b;\n if (0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) {\n return createIntersection(\"intersection\", Vec.add(a1, Vec.mul(AV, ua)));\n }\n }\n return createIntersection(\"no intersection\");\n}\nfunction intersectLineSegmentRectangle(a1, a22, point, size) {\n return intersectRectangleLineSegment(point, size, a1, a22);\n}\nfunction intersectLineSegmentCircle(a1, a22, c4, r4) {\n const a5 = (a22[0] - a1[0]) * (a22[0] - a1[0]) + (a22[1] - a1[1]) * (a22[1] - a1[1]);\n const b5 = 2 * ((a22[0] - a1[0]) * (a1[0] - c4[0]) + (a22[1] - a1[1]) * (a1[1] - c4[1]));\n const cc = c4[0] * c4[0] + c4[1] * c4[1] + a1[0] * a1[0] + a1[1] * a1[1] - 2 * (c4[0] * a1[0] + c4[1] * a1[1]) - r4 * r4;\n const deter = b5 * b5 - 4 * a5 * cc;\n if (deter < 0) {\n return createIntersection(\"outside\");\n }\n if (deter === 0) {\n return createIntersection(\"tangent\");\n }\n const e2 = Math.sqrt(deter);\n const u1 = (-b5 + e2) \/ (2 * a5);\n const u22 = (-b5 - e2) \/ (2 * a5);\n if ((u1 < 0 || u1 > 1) && (u22 < 0 || u22 > 1)) {\n if (u1 < 0 && u22 < 0 || u1 > 1 && u22 > 1) {\n return createIntersection(\"outside\");\n } else {\n return createIntersection(\"inside\");\n }\n }\n const results = [];\n if (0 <= u1 && u1 <= 1)\n results.push(Vec.lrp(a1, a22, u1));\n if (0 <= u22 && u22 <= 1)\n results.push(Vec.lrp(a1, a22, u22));\n return createIntersection(\"intersection\", ...results);\n}\nfunction intersectLineSegmentEllipse(a1, a22, center, rx, ry, rotation = 0) {\n if (rx === 0 || ry === 0 || Vec.isEqual(a1, a22)) {\n return createIntersection(\"no intersection\");\n }\n rx = rx < 0 ? rx : -rx;\n ry = ry < 0 ? ry : -ry;\n a1 = Vec.sub(Vec.rotWith(a1, center, -rotation), center);\n a22 = Vec.sub(Vec.rotWith(a22, center, -rotation), center);\n const diff = Vec.sub(a22, a1);\n const A4 = diff[0] * diff[0] \/ rx \/ rx + diff[1] * diff[1] \/ ry \/ ry;\n const B3 = 2 * a1[0] * diff[0] \/ rx \/ rx + 2 * a1[1] * diff[1] \/ ry \/ ry;\n const C4 = a1[0] * a1[0] \/ rx \/ rx + a1[1] * a1[1] \/ ry \/ ry - 1;\n const tValues = [];\n const discriminant = B3 * B3 - 4 * A4 * C4;\n if (discriminant === 0) {\n tValues.push(-B3 \/ 2 \/ A4);\n } else if (discriminant > 0) {\n const root = Math.sqrt(discriminant);\n tValues.push((-B3 + root) \/ 2 \/ A4);\n tValues.push((-B3 - root) \/ 2 \/ A4);\n }\n const points = tValues.filter((t2) => t2 >= 0 && t2 <= 1).map((t2) => Vec.add(center, Vec.add(a1, Vec.mul(Vec.sub(a22, a1), t2)))).map((p4) => Vec.rotWith(p4, center, rotation));\n return createIntersection(\"intersection\", ...points);\n}\nfunction intersectLineSegmentBounds(a1, a22, bounds) {\n return intersectBoundsLineSegment(bounds, a1, a22);\n}\nfunction intersectLineSegmentPolyline(a1, a22, points) {\n const pts = [];\n for (let i4 = 1; i4 < points.length; i4++) {\n const int = intersectLineSegmentLineSegment(a1, a22, points[i4 - 1], points[i4]);\n if (int) {\n pts.push(...int.points);\n }\n }\n if (pts.length === 0) {\n return createIntersection(\"no intersection\");\n }\n return createIntersection(\"intersection\", ...points);\n}\nfunction intersectLineSegmentPolygon(a1, a22, points) {\n const pts = [];\n for (let i4 = 1; i4 < points.length + 1; i4++) {\n const int = intersectLineSegmentLineSegment(a1, a22, points[i4 - 1], points[i4 % points.length]);\n if (int) {\n pts.push(...int.points);\n }\n }\n if (pts.length === 0) {\n return createIntersection(\"no intersection\");\n }\n return createIntersection(\"intersection\", ...points);\n}\nfunction intersectRectangleRay(point, size, rotation, origin, direction) {\n const sideIntersections = getRectangleSides(point, size, rotation).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectRayLineSegment(origin, direction, a1, a22);\n if (intersection) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectangleLineSegment(point, size, a1, a22) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [b1, b22]]) => {\n const intersection = intersectLineSegmentLineSegment(a1, a22, b1, b22);\n if (intersection) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectangleCircle(point, size, c4, r4) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentCircle(a1, a22, c4, r4);\n if (intersection) {\n acc.push(__spreadProps(__spreadValues({}, intersection), { message }));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectangleEllipse(point, size, c4, rx, ry, rotation = 0) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentEllipse(a1, a22, c4, rx, ry, rotation);\n if (intersection) {\n acc.push(__spreadProps(__spreadValues({}, intersection), { message }));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectanglePolyline(point, size, points) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentPolyline(a1, a22, points);\n if (intersection.didIntersect) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectRectanglePolygon(point, size, points) {\n const sideIntersections = getRectangleSides(point, size).reduce(\n (acc, [message, [a1, a22]]) => {\n const intersection = intersectLineSegmentPolygon(a1, a22, points);\n if (intersection.didIntersect) {\n acc.push(createIntersection(message, ...intersection.points));\n }\n return acc;\n },\n []\n );\n return sideIntersections.filter((int) => int.didIntersect);\n}\nfunction intersectCircleLineSegment(c4, r4, a1, a22) {\n return intersectLineSegmentCircle(a1, a22, c4, r4);\n}\nfunction intersectEllipseRectangle(center, rx, ry, rotation = 0, point, size) {\n if (rx === ry) {\n return intersectRectangleCircle(point, size, center, rx);\n }\n return intersectRectangleEllipse(point, size, center, rx, ry, rotation);\n}\nfunction intersectEllipseBounds(c4, rx, ry, rotation, bounds) {\n const { minX, minY, width, height } = bounds;\n return intersectEllipseRectangle(c4, rx, ry, rotation, [minX, minY], [width, height]);\n}\nfunction intersectBoundsLineSegment(bounds, a1, a22) {\n const { minX, minY, width, height } = bounds;\n return intersectLineSegmentRectangle(a1, a22, [minX, minY], [width, height]);\n}\nfunction intersectPolylineBounds(points, bounds) {\n return intersectRectanglePolyline(\n [bounds.minX, bounds.minY],\n [bounds.width, bounds.height],\n points\n );\n}\nfunction intersectPolygonBounds(points, bounds) {\n return intersectRectanglePolygon(\n [bounds.minX, bounds.minY],\n [bounds.width, bounds.height],\n points\n );\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/PolygonUtils.ts\nvar _PolygonUtils = class {\n static getPolygonCentroid(points) {\n const x4 = points.map((point) => point[0]);\n const y4 = points.map((point) => point[1]);\n const cx2 = Math.min(...x4) + Math.max(...x4);\n const cy = Math.min(...y4) + Math.max(...y4);\n return [cx2 ? cx2 \/ 2 : 0, cy ? cy \/ 2 : 0];\n }\n};\nvar PolygonUtils = _PolygonUtils;\n__publicField(PolygonUtils, \"getEdges\", (points) => {\n const len = points.length;\n return points.map((point, i4) => [point, points[(i4 + 1) % len]]);\n});\n__publicField(PolygonUtils, \"getEdgeOutwardNormal\", (A4, B3) => {\n return src_default.per(src_default.uni(src_default.sub(B3, A4)));\n});\n__publicField(PolygonUtils, \"getEdgeInwardNormal\", (A4, B3) => {\n return src_default.neg(_PolygonUtils.getEdgeOutwardNormal(A4, B3));\n});\n__publicField(PolygonUtils, \"getOffsetEdge\", (A4, B3, offset) => {\n const offsetVector = src_default.mul(src_default.per(src_default.uni(src_default.sub(B3, A4))), offset);\n return [src_default.add(A4, offsetVector), src_default.add(B3, offsetVector)];\n});\n__publicField(PolygonUtils, \"getOffsetEdges\", (edges, offset) => {\n return edges.map(([A4, B3]) => _PolygonUtils.getOffsetEdge(A4, B3, offset));\n});\n__publicField(PolygonUtils, \"getOffsetPolygon\", (points, offset) => {\n if (points.length < 1) {\n throw Error(\"Expected at least one point.\");\n } else if (points.length === 1) {\n const A4 = points[0];\n return [\n src_default.add(A4, [-offset, -offset]),\n src_default.add(A4, [offset, -offset]),\n src_default.add(A4, [offset, offset]),\n src_default.add(A4, [-offset, offset])\n ];\n } else if (points.length === 2) {\n const [A4, B3] = points;\n return [\n ..._PolygonUtils.getOffsetEdge(A4, B3, offset),\n ..._PolygonUtils.getOffsetEdge(B3, A4, offset)\n ];\n }\n return _PolygonUtils.getOffsetEdges(_PolygonUtils.getEdges(points), offset).flatMap(\n (edge, i4, edges) => {\n const intersection = intersectLineLine(edge, edges[(i4 + 1) % edges.length]);\n if (intersection === void 0)\n throw Error(\"Expected an intersection\");\n return intersection;\n }\n );\n});\n__publicField(PolygonUtils, \"getPolygonVertices\", (size, sides, padding = 0, ratio = 1) => {\n const center = src_default.div(size, 2);\n const [rx, ry] = [Math.max(1, center[0] - padding), Math.max(1, center[1] - padding)];\n const pointsOnPerimeter = [];\n for (let i4 = 0, step = PI2 \/ sides; i4 < sides; i4++) {\n const t1 = (-TAU + i4 * step) % PI2;\n const t2 = (-TAU + (i4 + 1) * step) % PI2;\n const p1 = src_default.add(center, [rx * Math.cos(t1), ry * Math.sin(t1)]);\n const p32 = src_default.add(center, [rx * Math.cos(t2), ry * Math.sin(t2)]);\n const mid = src_default.med(p1, p32);\n const p22 = src_default.nudge(mid, center, src_default.dist(center, mid) * (1 - ratio));\n pointsOnPerimeter.push(p1, p22, p32);\n }\n return pointsOnPerimeter;\n});\n__publicField(PolygonUtils, \"getTriangleVertices\", (size, padding = 0, ratio = 1) => {\n const [w4, h4] = size;\n const r4 = 1 - ratio;\n const A4 = [w4 \/ 2, padding \/ 2];\n const B3 = [w4 - padding, h4 - padding];\n const C4 = [padding \/ 2, h4 - padding];\n const centroid = _PolygonUtils.getPolygonCentroid([A4, B3, C4]);\n const AB = src_default.med(A4, B3);\n const BC = src_default.med(B3, C4);\n const CA = src_default.med(C4, A4);\n const dAB = src_default.dist(AB, centroid) * r4;\n const dBC = src_default.dist(BC, centroid) * r4;\n const dCA = src_default.dist(CA, centroid) * r4;\n return [\n A4,\n dAB ? src_default.nudge(AB, centroid, dAB) : AB,\n B3,\n dBC ? src_default.nudge(BC, centroid, dBC) : BC,\n C4,\n dCA ? src_default.nudge(CA, centroid, dCA) : CA\n ];\n});\n__publicField(PolygonUtils, \"getStarVertices\", (center, size, sides, ratio = 1) => {\n const outer = src_default.div(size, 2);\n const inner = src_default.mul(outer, ratio \/ 2);\n const step = PI2 \/ sides \/ 2;\n return Array.from(Array(sides * 2)).map((_2, i4) => {\n const theta = -TAU + i4 * step;\n const [rx, ry] = i4 % 2 ? inner : outer;\n return src_default.add(center, [rx * Math.cos(theta), ry * Math.sin(theta)]);\n });\n});\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/SvgPathUtils.ts\nvar SvgPathUtils = class {\n static getCurvedPathForPolygon(points) {\n if (points.length < 3) {\n return `M -4, 0\n a 4,4 0 1,0 8,0\n a 4,4 0 1,0 -8,0`;\n }\n const d4 = [\"M\", ...points[0].slice(0, 2), \"Q\"];\n const len = points.length;\n for (let i4 = 1; i4 < len; i4++) {\n const [x0, y0] = points[i4];\n const [x1, y1] = points[(i4 + 1) % len];\n d4.push(x0, y0, (x0 + x1) \/ 2, (y0 + y1) \/ 2);\n }\n d4.push(\"Z\");\n return d4.join(\" \");\n }\n static getCurvedPathForPoints(points) {\n if (points.length < 3) {\n return `M -4, 0\n a 4,4 0 1,0 8,0\n a 4,4 0 1,0 -8,0`;\n }\n const d4 = [\"M\", ...points[0].slice(0, 2), \"Q\"];\n const len = points.length;\n for (let i4 = 1; i4 < len - 1; i4++) {\n const [x0, y0] = points[i4];\n const [x1, y1] = points[i4 + 1];\n d4.push(x0, y0, (x0 + x1) \/ 2, (y0 + y1) \/ 2);\n }\n return d4.join(\" \");\n }\n static getSvgPathFromStroke(points, closed = true) {\n const len = points.length;\n if (len < 4) {\n return ``;\n }\n let a5 = points[0];\n let b5 = points[1];\n const c4 = points[2];\n let result = `M${a5[0].toFixed(2)},${a5[1].toFixed(2)} Q${b5[0].toFixed(2)},${b5[1].toFixed(\n 2\n )} ${average(b5[0], c4[0]).toFixed(2)},${average(b5[1], c4[1]).toFixed(2)} T`;\n for (let i4 = 2, max = len - 1; i4 < max; i4++) {\n a5 = points[i4];\n b5 = points[i4 + 1];\n result += `${average(a5[0], b5[0]).toFixed(2)},${average(a5[1], b5[1]).toFixed(2)} `;\n }\n if (closed) {\n result += \"Z\";\n }\n return result;\n }\n static getSvgPathFromStrokePoints(points, closed = false) {\n const len = points.length;\n if (len < 4) {\n return ``;\n }\n let a5 = points[0].point;\n let b5 = points[1].point;\n const c4 = points[2].point;\n let result = `M${a5[0].toFixed(2)},${a5[1].toFixed(2)} Q${b5[0].toFixed(2)},${b5[1].toFixed(\n 2\n )} ${average(b5[0], c4[0]).toFixed(2)},${average(b5[1], c4[1]).toFixed(2)} T`;\n for (let i4 = 2, max = len - 1; i4 < max; i4++) {\n a5 = points[i4].point;\n b5 = points[i4 + 1].point;\n result += `${average(a5[0], b5[0]).toFixed(2)},${average(a5[1], b5[1]).toFixed(2)} `;\n }\n if (closed) {\n result += \"Z\";\n }\n return result;\n }\n};\n__publicField(SvgPathUtils, \"TRIM_NUMBERS\", \/(\\s?[A-Z]?,?-?[0-9]*\\.[0-9]{0,2})(([0-9]|e|-)*)\/g);\nfunction average(a5, b5) {\n return (a5 + b5) \/ 2;\n}\n\n\/\/ ..\/..\/node_modules\/mobx\/dist\/mobx.esm.js\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (false) {\n var e2 = typeof error === \"string\" ? error : errors[error];\n if (typeof e2 === \"function\")\n e2 = e2.apply(null, args);\n throw new Error(\"[MobX] \" + e2);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https:\/\/github.com\/mobxjs\/mobx\/blob\/main\/packages\/mobx\/src\/errors.ts\" : \"[MobX] \" + error);\n}\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT2 = {};\nObject.freeze(EMPTY_OBJECT2);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = \/* @__PURE__ *\/ Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die(false ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : \"Proxy not available\");\n }\n}\nfunction once(func) {\n var invoked = false;\n return function() {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop2() {\n};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t2 = typeof value;\n switch (t2) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object2, propName, value) {\n defineProperty(object2, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value\n });\n}\nfunction addHiddenFinalProp(object2, propName, value) {\n defineProperty(object2, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function(x4) {\n return isObject(x4) && x4[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\nfunction getPlainObjectKeys(object2) {\n var keys = Object.keys(object2);\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object2);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function(s4) {\n return objectPrototype.propertyIsEnumerable.call(object2, s4);\n }));\n}\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function(obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : Object.getOwnPropertyNames;\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors2(target) {\n var res = {};\n ownKeys(target).forEach(function(key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\nfunction _defineProperties(target, props) {\n for (var i4 = 0; i4 < props.length; i4++) {\n var descriptor = props[i4];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for (var i4 = 1; i4 < arguments.length; i4++) {\n var source = arguments[i4];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o4, p4) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf3(o5, p5) {\n o5.__proto__ = p5;\n return o5;\n };\n return _setPrototypeOf(o4, p4);\n}\nfunction _assertThisInitialized(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n}\nfunction _unsupportedIterableToArray(o4, minLen) {\n if (!o4)\n return;\n if (typeof o4 === \"string\")\n return _arrayLikeToArray(o4, minLen);\n var n4 = Object.prototype.toString.call(o4).slice(8, -1);\n if (n4 === \"Object\" && o4.constructor)\n n4 = o4.constructor.name;\n if (n4 === \"Map\" || n4 === \"Set\")\n return Array.from(o4);\n if (n4 === \"Arguments\" || \/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$\/.test(n4))\n return _arrayLikeToArray(o4, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i4 = 0, arr2 = new Array(len); i4 < len; i4++)\n arr2[i4] = arr[i4];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o4, allowArrayLike) {\n var it2 = typeof Symbol !== \"undefined\" && o4[Symbol.iterator] || o4[\"@@iterator\"];\n if (it2)\n return (it2 = it2.call(o4)).next.bind(it2);\n if (Array.isArray(o4) || (it2 = _unsupportedIterableToArray(o4)) || allowArrayLike && o4 && typeof o4.length === \"number\") {\n if (it2)\n o4 = it2;\n var i4 = 0;\n return function() {\n if (i4 >= o4.length)\n return {\n done: true\n };\n return {\n done: false,\n value: o4[i4++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar storedAnnotationsSymbol = \/* @__PURE__ *\/ Symbol(\"mobx-stored-annotations\");\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n return Object.assign(decorator, annotation);\n}\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n if (false) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', but no such decorated member was found on prototype.\");\n }\n assertNotDecorated(prototype, annotation, key);\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if (false) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if (false) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n }\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nvar $mobx = \/* @__PURE__ *\/ Symbol(\"mobx administration\");\nvar Atom = \/* @__PURE__ *\/ function() {\n function Atom2(name_) {\n if (name_ === void 0) {\n name_ = false ? \"Atom@\" + getNextId() : \"Atom\";\n }\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = \/* @__PURE__ *\/ new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n var _proto = Atom2.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n };\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString2() {\n return this.name_;\n };\n return Atom2;\n}();\nvar isAtom = \/* @__PURE__ *\/ createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\nfunction identityComparer(a5, b5) {\n return a5 === b5;\n}\nfunction structuralComparer(a5, b5) {\n return deepEqual(a5, b5);\n}\nfunction shallowComparer(a5, b5) {\n return deepEqual(a5, b5, 1);\n}\nfunction defaultComparer(a5, b5) {\n if (Object.is) {\n return Object.is(a5, b5);\n }\n return a5 === b5 ? a5 !== 0 || 1 \/ a5 === 1 \/ b5 : a5 !== a5 && b5 !== b5;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\nfunction deepEnhancer(v4, _2, name) {\n if (isObservable(v4)) {\n return v4;\n }\n if (Array.isArray(v4)) {\n return observable.array(v4, {\n name\n });\n }\n if (isPlainObject(v4)) {\n return observable.object(v4, void 0, {\n name\n });\n }\n if (isES6Map(v4)) {\n return observable.map(v4, {\n name\n });\n }\n if (isES6Set(v4)) {\n return observable.set(v4, {\n name\n });\n }\n if (typeof v4 === \"function\" && !isAction(v4) && !isFlow(v4)) {\n if (isGenerator(v4)) {\n return flow(v4);\n } else {\n return autoAction(name, v4);\n }\n }\n return v4;\n}\nfunction shallowEnhancer(v4, _2, name) {\n if (v4 === void 0 || v4 === null) {\n return v4;\n }\n if (isObservableObject(v4) || isObservableArray(v4) || isObservableMap(v4) || isObservableSet(v4)) {\n return v4;\n }\n if (Array.isArray(v4)) {\n return observable.array(v4, {\n name,\n deep: false\n });\n }\n if (isPlainObject(v4)) {\n return observable.object(v4, void 0, {\n name,\n deep: false\n });\n }\n if (isES6Map(v4)) {\n return observable.map(v4, {\n name,\n deep: false\n });\n }\n if (isES6Set(v4)) {\n return observable.set(v4, {\n name,\n deep: false\n });\n }\n if (false) {\n die(\"The shallow modifier \/ decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n return newValue;\n}\nfunction refStructEnhancer(v4, oldValue) {\n if (false) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v4, oldValue)) {\n return oldValue;\n }\n return v4;\n}\nvar OVERRIDE = \"override\";\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 1;\n }\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 2;\n }\n if (isAction(descriptor.value)) {\n return 1;\n }\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2;\n}\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor, safeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction(\n (_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(),\n value,\n (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : void 0\n ),\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n enumerable: false,\n writable: safeDescriptors ? false : true\n };\n}\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 2;\n }\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0;\n }\n }\n if (isFlow(descriptor.value)) {\n return 1;\n }\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2;\n}\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound, safeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n value.isMobXFlow = true;\n }\n return {\n value,\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n enumerable: false,\n writable: safeDescriptors ? false : true\n };\n}\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 1;\n}\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get3 = _ref2.get;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 : 1;\n}\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if (false) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter\/setter properties\"));\n }\n}\nvar AUTO = \"true\";\nvar autoAnnotation = \/* @__PURE__ *\/ createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n if (descriptor.set) {\n var set4 = createAction(key.toString(), descriptor.set);\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set4\n }) === null ? 0 : 2;\n }\n defineProperty(source, key, {\n configurable: true,\n set: set4\n });\n return 2;\n }\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation2 = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation2.make_(adm, key, descriptor, source);\n }\n var actionAnnotation2 = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation2.make_(adm, key, descriptor, source);\n }\n var observableAnnotation2 = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation2.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n if (descriptor.set) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation2 = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation2.extend_(adm, key, descriptor, proxyTrap);\n}\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\nvar defaultCreateObservableOptions = {\n deep: true,\n name: void 0,\n defaultDecorator: void 0,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = \/* @__PURE__ *\/ createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = \/* @__PURE__ *\/ createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : void 0;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\nfunction createObservable(v4, arg2, arg3) {\n if (isStringish(arg2)) {\n storeAnnotation(v4, arg2, observableAnnotation);\n return;\n }\n if (isObservable(v4)) {\n return v4;\n }\n if (isPlainObject(v4)) {\n return observable.object(v4, arg2, arg3);\n }\n if (Array.isArray(v4)) {\n return observable.array(v4, arg2);\n }\n if (isES6Map(v4)) {\n return observable.map(v4, arg2);\n }\n if (isES6Set(v4)) {\n return observable.set(v4, arg2);\n }\n if (typeof v4 === \"object\" && v4 !== null) {\n return v4;\n }\n return observable.box(v4, arg2);\n}\nObject.assign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o4 = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o4), o4.name, true, o4.equals);\n },\n array: function array(initialValues, options) {\n var o4 = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o4.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o4), o4.name);\n },\n map: function map(initialValues, options) {\n var o4 = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o4), o4.name);\n },\n set: function set(initialValues, options) {\n var o4 = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o4), o4.name);\n },\n object: function object(props, decorators, options) {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n },\n ref: \/* @__PURE__ *\/ createDecoratorAnnotation(observableRefAnnotation),\n shallow: \/* @__PURE__ *\/ createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: \/* @__PURE__ *\/ createDecoratorAnnotation(observableStructAnnotation)\n};\nvar observable = \/* @__PURE__ *\/ assign(createObservable, observableFactories);\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = \/* @__PURE__ *\/ createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = \/* @__PURE__ *\/ createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\nvar computed = function computed2(arg1, arg2) {\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n if (false) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\");\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = \/* @__PURE__ *\/ createDecoratorAnnotation(computedStructAnnotation);\nvar _getDescriptor$config;\nvar _getDescriptor;\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = \/* @__PURE__ *\/ getDescriptor(function() {\n}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction2, ref) {\n if (autoAction2 === void 0) {\n autoAction2 = false;\n }\n if (false) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction2, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n Object.defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation, scope, args) {\n var notifySpy_ = false;\n var startTime_ = 0;\n if (false) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges;\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_,\n prevAllowStateChanges_,\n prevAllowStateReads_,\n notifySpy_,\n startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== void 0) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if (false) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges2, func) {\n var prev = allowStateChangesStart(allowStateChanges2);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges2) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges2;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\nvar _Symbol$toPrimitive;\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = \/* @__PURE__ *\/ function(_Atom) {\n _inheritsLoose(ObservableValue2, _Atom);\n function ObservableValue2(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = false ? \"ObservableValue@\" + getNextId() : \"ObservableValue\";\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, void 0, name_);\n if (false) {\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n var _proto = ObservableValue2.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set4(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if (false) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue,\n oldValue\n });\n }\n this.setNewValue_(newValue);\n if (false) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue,\n oldValue\n });\n }\n };\n _proto.get = function get3() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: void 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n return this.value_;\n };\n _proto.toJSON = function toJSON2() {\n return this.get();\n };\n _proto.toString = function toString2() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive] = function() {\n return this.valueOf();\n };\n return ObservableValue2;\n}(Atom);\nvar isObservableValue = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableValue\", ObservableValue);\nvar _Symbol$toPrimitive$1;\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = \/* @__PURE__ *\/ function() {\n function ComputedValue2(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = \/* @__PURE__ *\/ new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || (false ? \"ComputedValue@\" + getNextId() : \"ComputedValue\");\n if (options.set) {\n this.setter_ = createAction(false ? this.name_ + \"-setter\" : \"ComputedValue-setter\", options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue2.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function(listener) {\n return listener();\n });\n }\n };\n _proto.get = function get3() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 && this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch();\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set4(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n this.isRunningSetter_ = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n var oldValue = this.value_;\n var wasSuspended = this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if (false) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue,\n newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true;\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e2) {\n res = new CaughtException(e2);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = void 0;\n if (false) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = void 0;\n return autorun(function() {\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (true) {\n return;\n }\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString2() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[_Symbol$toPrimitive$1] = function() {\n return this.valueOf();\n };\n return ComputedValue2;\n}();\nvar isComputedValue = \/* @__PURE__ *\/ createInstanceofPredicate(\"ComputedValue\", ComputedValue);\nvar IDerivationState_;\n(function(IDerivationState_2) {\n IDerivationState_2[IDerivationState_2[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n IDerivationState_2[IDerivationState_2[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n IDerivationState_2[IDerivationState_2[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n IDerivationState_2[IDerivationState_2[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function(TraceMode2) {\n TraceMode2[TraceMode2[\"NONE\"] = 0] = \"NONE\";\n TraceMode2[TraceMode2[\"LOG\"] = 1] = \"LOG\";\n TraceMode2[TraceMode2[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException2(cause) {\n this.cause = void 0;\n this.cause = cause;\n};\nfunction isCaughtException(e2) {\n return e2 instanceof CaughtException;\n}\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_: {\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart();\n var obs = derivation.observing_, l5 = obs.length;\n for (var i4 = 0; i4 < l5; i4++) {\n var obj = obs[i4];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e2) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (true) {\n return;\n }\n var hasObservers = atom.observers_.size > 0;\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable2) {\n if (false) {\n console.warn(\"[mobx] Observable '\" + observable2.name_ + \"' being read outside a reactive context.\");\n }\n}\nfunction trackDerivedFunction(derivation, f4, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f4.call(context);\n } else {\n try {\n result = f4.call(context);\n } catch (e2) {\n result = new CaughtException(e2);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (true) {\n return;\n }\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created\/updated without reading any observable value.\");\n }\n}\nfunction bindDependencies(derivation) {\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n var i0 = 0, l5 = derivation.unboundDepsCount_;\n for (var i4 = 0; i4 < l5; i4++) {\n var dep = observing[i4];\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n if (i0 !== i4) {\n observing[i0] = dep;\n }\n i0++;\n }\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null;\n l5 = prevObserving.length;\n while (l5--) {\n var _dep = prevObserving[l5];\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue_ = 0;\n }\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n }\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i4 = obs.length;\n while (i4--) {\n removeObserver(obs[i4], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action2) {\n var prev = untrackedStart();\n try {\n return action2();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i4 = obs.length;\n while (i4--) {\n obs[i4].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\nvar MobXGlobals = function MobXGlobals2() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = \/* @__PURE__ *\/ function() {\n var global2 = \/* @__PURE__ *\/ getGlobal();\n if (global2.__mobxInstanceCount > 0 && !global2.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global2.__mobxGlobals && global2.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n setTimeout(function() {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global2.__mobxGlobals) {\n global2.__mobxInstanceCount += 1;\n if (!global2.__mobxGlobals.UNCHANGED) {\n global2.__mobxGlobals.UNCHANGED = {};\n }\n return global2.__mobxGlobals;\n } else {\n global2.__mobxInstanceCount = 1;\n return global2.__mobxGlobals = \/* @__PURE__ *\/ new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global2 = getGlobal();\n if (--global2.__mobxInstanceCount === 0) {\n global2.__mobxGlobals = void 0;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction addObserver(observable2, node) {\n observable2.observers_.add(node);\n if (observable2.lowestObserverState_ > node.dependenciesState_) {\n observable2.lowestObserverState_ = node.dependenciesState_;\n }\n}\nfunction removeObserver(observable2, node) {\n observable2.observers_[\"delete\"](node);\n if (observable2.observers_.size === 0) {\n queueForUnobservation(observable2);\n }\n}\nfunction queueForUnobservation(observable2) {\n if (observable2.isPendingUnobservation_ === false) {\n observable2.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable2);\n }\n}\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n var list = globalState.pendingUnobservations;\n for (var i4 = 0; i4 < list.length; i4++) {\n var observable2 = list[i4];\n observable2.isPendingUnobservation_ = false;\n if (observable2.observers_.size === 0) {\n if (observable2.isBeingObserved_) {\n observable2.isBeingObserved_ = false;\n observable2.onBUO();\n }\n if (observable2 instanceof ComputedValue) {\n observable2.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable2) {\n checkIfStateReadsAreAllowed(observable2);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n if (derivation.runId_ !== observable2.lastAccessedBy_) {\n observable2.lastAccessedBy_ = derivation.runId_;\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable2;\n if (!observable2.isBeingObserved_ && globalState.trackingContext) {\n observable2.isBeingObserved_ = true;\n observable2.onBO();\n }\n }\n return observable2.isBeingObserved_;\n } else if (observable2.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable2);\n }\n return false;\n}\nfunction propagateChanged(observable2) {\n if (observable2.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable2.lowestObserverState_ = IDerivationState_.STALE_;\n observable2.observers_.forEach(function(d4) {\n if (d4.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (false) {\n logTraceInfo(d4, observable2);\n }\n d4.onBecomeStale_();\n }\n d4.dependenciesState_ = IDerivationState_.STALE_;\n });\n}\nfunction propagateChangeConfirmed(observable2) {\n if (observable2.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable2.lowestObserverState_ = IDerivationState_.STALE_;\n observable2.observers_.forEach(function(d4) {\n if (d4.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d4.dependenciesState_ = IDerivationState_.STALE_;\n if (false) {\n logTraceInfo(d4, observable2);\n }\n } else if (d4.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n observable2.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n}\nfunction propagateMaybeChanged(observable2) {\n if (observable2.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable2.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable2.observers_.forEach(function(d4) {\n if (d4.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d4.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d4.onBecomeStale_();\n }\n });\n}\nvar Reaction = \/* @__PURE__ *\/ function() {\n function Reaction2(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = false ? \"Reaction@\" + getNextId() : \"Reaction\";\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction2.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n };\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n try {\n this.onInvalidate_();\n if (false) {\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e2) {\n this.reportExceptionInDerivation_(e2);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return;\n }\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if (false) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext;\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, void 0);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n if (this.isDisposed_) {\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if (false) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = false ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : \"[mobx] uncaught error in '\" + this + \"'\";\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n } else if (false) {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n }\n if (false) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function(f4) {\n return f4(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n if (!this.isRunning_) {\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_() {\n var r4 = this.dispose.bind(this);\n r4[$mobx] = this;\n return r4;\n };\n _proto.toString = function toString2() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction2;\n}();\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler2(f4) {\n return f4();\n};\nfunction runReactions() {\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(false ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : \"[mobx] cycle in reaction: \" + allReactions[0]);\n allReactions.splice(0);\n }\n var remainingReactions = allReactions.splice(0);\n for (var i4 = 0, l5 = remainingReactions.length; i4 < l5; i4++) {\n remainingReactions[i4].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = \/* @__PURE__ *\/ createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler3(f4) {\n return fn(function() {\n return baseScheduler(f4);\n });\n };\n}\nfunction isSpyEnabled() {\n return false;\n}\nfunction spy(listener) {\n if (true) {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function() {\n };\n } else {\n globalState.spyListeners.push(listener);\n return once(function() {\n globalState.spyListeners = globalState.spyListeners.filter(function(l5) {\n return l5 !== listener;\n });\n });\n }\n}\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"<unnamed action>\";\nvar actionAnnotation = \/* @__PURE__ *\/ createActionAnnotation(ACTION);\nvar actionBoundAnnotation = \/* @__PURE__ *\/ createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = \/* @__PURE__ *\/ createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = \/* @__PURE__ *\/ createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction2) {\n var res = function action2(arg1, arg2) {\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction2);\n }\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction2);\n }\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction2 ? autoActionAnnotation : actionAnnotation);\n }\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction2 ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction2\n }));\n }\n if (false) {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = \/* @__PURE__ *\/ createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = \/* @__PURE__ *\/ createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = \/* @__PURE__ *\/ createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = \/* @__PURE__ *\/ createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\nfunction autorun(view, opts) {\n var _opts$name, _opts;\n if (opts === void 0) {\n opts = EMPTY_OBJECT2;\n }\n if (false) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : false ? view.name || \"Autorun@\" + getNextId() : \"Autorun\";\n var runSync = !opts.scheduler && !opts.delay;\n var reaction2;\n if (runSync) {\n reaction2 = new Reaction(name, function() {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n var isScheduled = false;\n reaction2 = new Reaction(name, function() {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function() {\n isScheduled = false;\n if (!reaction2.isDisposed_) {\n reaction2.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction2);\n }\n reaction2.schedule_();\n return reaction2.getDisposer_();\n}\nvar run = function run2(f4) {\n return f4();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function(f4) {\n return setTimeout(f4, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2;\n if (opts === void 0) {\n opts = EMPTY_OBJECT2;\n }\n if (false) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : false ? \"Reaction@\" + getNextId() : \"Reaction\";\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r4 = new Reaction(name, function() {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r4.isDisposed_) {\n return;\n }\n var changed = false;\n r4.track(function() {\n var nextValue = allowStateChanges(false, function() {\n return expression(r4);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r4);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r4);\n }\n firstTime = false;\n }\n r4.schedule_();\n return r4.getDisposer_();\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function() {\n try {\n return baseFn.apply(this, arguments);\n } catch (e2) {\n errorHandler.call(this, e2);\n }\n };\n}\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = \/* @__PURE__ *\/ new Set([cb]);\n }\n return function() {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies, enforceActions = options.enforceActions;\n if (useProxies !== void 0) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== void 0) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function(key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if (false) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\nfunction extendObservable(target, properties, annotations, options) {\n if (false) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n var descriptors = getOwnPropertyDescriptors(properties);\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n try {\n ownKeys(descriptors).forEach(function(key) {\n adm.extend_(\n key,\n descriptors[key],\n !annotations ? true : key in annotations ? annotations[key] : true\n );\n });\n } finally {\n endBatch();\n }\n return target;\n}\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = \/* @__PURE__ *\/ Object.create(Error.prototype);\nvar flowAnnotation = \/* @__PURE__ *\/ createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = \/* @__PURE__ *\/ createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = \/* @__PURE__ *\/ Object.assign(function flow2(arg1, arg2) {\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n if (false) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"<unnamed flow>\";\n var res = function res2() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = void 0;\n var promise = new Promise(function(resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res3) {\n pendingPromise = void 0;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res3);\n } catch (e2) {\n return reject(e2);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = void 0;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e2) {\n return reject(e2);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(void 0);\n });\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function() {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n var _res = gen[\"return\"](void 0);\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise);\n rejector(new FlowCancellationError());\n } catch (e2) {\n rejector(e2);\n }\n });\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = \/* @__PURE__ *\/ createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== void 0) {\n if (false) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if (false) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\nfunction cache(map3, key, value) {\n map3.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function(value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, \/* @__PURE__ *\/ new Set());\n source.forEach(function(value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, \/* @__PURE__ *\/ new Map());\n source.forEach(function(value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function(key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\nfunction toJS(source, options) {\n if (false) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, \/* @__PURE__ *\/ new Map());\n}\nfunction trace() {\n if (true) {\n die(\"trace() is not available in production builds\");\n }\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\nfunction transaction(action2, thisArg) {\n if (thisArg === void 0) {\n thisArg = void 0;\n }\n startBatch();\n try {\n return action2.apply(thisArg);\n } finally {\n endBatch();\n }\n}\nfunction getAdm(target) {\n return target[$mobx];\n}\nvar objectProxyTraps = {\n has: function has(target, name) {\n if (false) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set2(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if (false) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (false) {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty2(target, name, descriptor) {\n var _getAdm$definePropert;\n if (false) {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys2(target) {\n if (false) {\n warnAboutProxyRequirement(\"iterate keys to detect added \/ removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== void 0 && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function() {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i4 = 0, l5 = interceptors.length; i4 < l5; i4++) {\n change = interceptors[i4](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== void 0 && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function() {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i4 = 0, l5 = listeners.length; i4 < l5; i4++) {\n listeners[i4](change);\n }\n untrackedEnd(prevU);\n}\nfunction makeObservable(target, annotations, options) {\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n try {\n var _annotations;\n if (false) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n ownKeys(annotations).forEach(function(key) {\n return adm.make_(key, annotations[key]);\n });\n } finally {\n endBatch();\n }\n return target;\n}\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 1e4;\nvar arrayTraps = {\n get: function get2(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set3(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions2() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = \/* @__PURE__ *\/ function() {\n function ObservableArrayAdministration2(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = false ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function(newV, oldV) {\n return enhancer(newV, oldV, false ? name + \"[..]\" : \"ObservableArray[..]\");\n };\n }\n var _proto = ObservableArrayAdministration2.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== void 0 && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i4 = 0; i4 < newLength - currentLength; i4++) {\n newItems[i4] = void 0;\n }\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index3, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index3 === void 0) {\n index3 = 0;\n } else if (index3 > length) {\n index3 = length;\n } else if (index3 < 0) {\n index3 = Math.max(0, length + index3);\n }\n if (arguments.length === 1) {\n deleteCount = length - index3;\n } else if (deleteCount === void 0 || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index3));\n }\n if (newItems === void 0) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index3,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function(v4) {\n return _this.enhancer_(v4, void 0);\n });\n if (this.legacyMode_ || false) {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta);\n }\n var res = this.spliceItemsIntoValues_(index3, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index3, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index3, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index3, deleteCount].concat(newItems));\n } else {\n var res = this.values_.slice(index3, index3 + deleteCount);\n var oldItems = this.values_.slice(index3 + deleteCount);\n this.values_.length += newItems.length - deleteCount;\n for (var i4 = 0; i4 < newItems.length; i4++) {\n this.values_[index3 + i4] = newItems[i4];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index3 + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index3, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index3,\n newValue,\n oldValue\n } : null;\n if (false) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index3, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index3,\n removed,\n added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if (false) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index3) {\n if (this.legacyMode_ && index3 >= this.values_.length) {\n console.warn(false ? \"[mobx.array] Attempt to read an array index (\" + index3 + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : \"[mobx] Out of bounds read: \" + index3);\n return void 0;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index3]);\n };\n _proto.set_ = function set_(index3, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index3 > values.length) {\n die(17, index3, values.length);\n }\n if (index3 < values.length) {\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index3];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index3,\n newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index3] = newValue;\n this.notifyArrayChildUpdate_(index3, newValue, oldValue);\n }\n } else {\n var newItems = new Array(index3 + 1 - values.length);\n for (var i4 = 0; i4 < newItems.length - 1; i4++) {\n newItems[i4] = void 0;\n }\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration2;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = false ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true);\n adm.spliceWithArray_(0, 0, initialValues);\n allowStateChangesEnd(prev);\n }\n return proxy;\n}\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n toJSON: function toJSON() {\n return this.slice();\n },\n splice: function splice(index3, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index3);\n case 2:\n return adm.spliceWithArray_(index3, deleteCount);\n }\n return adm.spliceWithArray_(index3, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index3, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index3, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\nfunction simpleFunc(funcName) {\n return function() {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nfunction mapLikeFunc(funcName) {\n return function(callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function(element, index3) {\n return callback.call(thisArg, element, index3, _this2);\n });\n };\n}\nfunction reduceLikeFunc(funcName) {\n return function() {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n var callback = arguments[0];\n arguments[0] = function(accumulator, currentValue, index3) {\n return callback(accumulator, currentValue, index3, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\nvar _Symbol$iterator;\nvar _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = \/* @__PURE__ *\/ function() {\n function ObservableMap2(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = false ? \"ObservableMap@\" + getNextId() : \"ObservableMap\";\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n this.keysAtom_ = createAtom(false ? this.name_ + \".keys()\" : \"ObservableMap.keys()\");\n this.data_ = \/* @__PURE__ *\/ new Map();\n this.hasMap_ = \/* @__PURE__ *\/ new Map();\n allowStateChanges(true, function() {\n _this.merge(initialData);\n });\n }\n var _proto = ObservableMap2.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has2(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, false ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableMap.key?\", false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function() {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set4(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if (false) {\n spyReportStart(_change);\n }\n transaction(function() {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n var observable2 = _this3.data_.get(key);\n observable2.setNewValue_(void 0);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if (false) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable2 = this.data_.get(key);\n newValue = observable2.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable2.value_,\n name: key,\n newValue\n } : null;\n if (false) {\n spyReportStart(change);\n }\n observable2.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function() {\n var _this4$hasMap_$get;\n var observable2 = new ObservableValue(newValue, _this4.enhancer_, false ? _this4.name_ + \".\" + stringifyKey(key) : \"ObservableMap.key\", false);\n _this4.data_.set(key, observable2);\n newValue = observable2.value_;\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue\n } : null;\n if (false) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n };\n _proto.get = function get3(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(void 0);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self2 = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(), done = _keys$next.done, value = _keys$next.value;\n return {\n done,\n value: done ? void 0 : self2.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self2 = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(), done = _keys$next2.done, value = _keys$next2.value;\n return {\n done,\n value: done ? void 0 : [value, self2.get(value)]\n };\n }\n });\n };\n _proto[_Symbol$iterator] = function() {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done; ) {\n var _step$value = _step.value, key = _step$value[0], value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n };\n _proto.merge = function merge2(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function() {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function(key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function(_ref) {\n var key = _ref[0], value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n other.forEach(function(value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== void 0) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear2() {\n var _this6 = this;\n transaction(function() {\n untracked(function() {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done; ) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace2(values) {\n var _this7 = this;\n transaction(function() {\n var replacementMap = convertToMap(values);\n var orderedData = \/* @__PURE__ *\/ new Map();\n var keysReportChangedCalled = false;\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done; ) {\n var key = _step3.value;\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n if (deleted) {\n keysReportChangedCalled = true;\n } else {\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done; ) {\n var _step4$value = _step4.value, _key = _step4$value[0], _value = _step4$value[1];\n var keyExisted = _this7.data_.has(_key);\n _this7.set(_key, _value);\n if (_this7.data_.has(_key)) {\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n if (!keyExisted) {\n keysReportChangedCalled = true;\n }\n }\n }\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString2() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON2() {\n return Array.from(this);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (false) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _createClass(ObservableMap2, [{\n key: \"size\",\n get: function get3() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get3() {\n return \"Map\";\n }\n }]);\n return ObservableMap2;\n}();\nvar isObservableMap = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map3 = \/* @__PURE__ *\/ new Map();\n for (var key in dataStructure) {\n map3.set(key, dataStructure[key]);\n }\n return map3;\n } else {\n return die(21, dataStructure);\n }\n}\nvar _Symbol$iterator$1;\nvar _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = \/* @__PURE__ *\/ function() {\n function ObservableSet2(initialData, enhancer, name_) {\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = false ? \"ObservableSet@\" + getNextId() : \"ObservableSet\";\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = \/* @__PURE__ *\/ new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.atom_ = createAtom(this.name_);\n this.enhancer_ = function(newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n if (initialData) {\n this.replace(initialData);\n }\n }\n var _proto = ObservableSet2.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== void 0) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear2() {\n var _this = this;\n transaction(function() {\n untracked(function() {\n for (var _iterator = _createForOfIteratorHelperLoose(_this.data_.values()), _step; !(_step = _iterator()).done; ) {\n var value = _step.value;\n _this[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done; ) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this2 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n }\n if (!this.has(value)) {\n transaction(function() {\n _this2.data_.add(_this2.enhancer_(value, void 0));\n _this2.atom_.reportChanged();\n });\n var notifySpy = false;\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && false) {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && false) {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this3 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = false;\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && false) {\n spyReportStart(_change2);\n }\n transaction(function() {\n _this3.atom_.reportChanged();\n _this3.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && false) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has2(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index3 = nextIndex;\n nextIndex += 1;\n return index3 < values.length ? {\n value: [keys[index3], values[index3]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self2 = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self2.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n _proto.replace = function replace2(other) {\n var _this4 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function() {\n if (Array.isArray(other)) {\n _this4.clear();\n other.forEach(function(value) {\n return _this4.add(value);\n });\n } else if (isES6Set(other)) {\n _this4.clear();\n other.forEach(function(value) {\n return _this4.add(value);\n });\n } else if (other !== null && other !== void 0) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (false) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON2() {\n return Array.from(this);\n };\n _proto.toString = function toString2() {\n return \"[object ObservableSet]\";\n };\n _proto[_Symbol$iterator$1] = function() {\n return this.values();\n };\n _createClass(ObservableSet2, [{\n key: \"size\",\n get: function get3() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get3() {\n return \"Set\";\n }\n }]);\n return ObservableSet2;\n}();\nvar isObservableSet = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableSet\", ObservableSet);\nvar descriptorCache = \/* @__PURE__ *\/ Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = \/* @__PURE__ *\/ function() {\n function ObservableObjectAdministration2(target_, values_, name_, defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = \/* @__PURE__ *\/ new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom(false ? this.name_ + \".keys\" : \"ObservableObject.keys\");\n this.isPlainObject_ = isPlainObject(this.target_);\n if (false) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (false) {\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration2.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable2 = this.values_.get(key);\n if (observable2 instanceof ComputedValue) {\n observable2.set(newValue);\n return true;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable2.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = false;\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable2.value_,\n name: key,\n newValue\n } : null;\n if (false) {\n spyReportStart(_change);\n }\n observable2.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if (false) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n this.has_(key);\n }\n return this.target_[key];\n };\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (hasProp(this.target_, key)) {\n if (this.values_.has(key)) {\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n return Reflect.set(this.target_, key, value);\n } else {\n this.target_[key] = value;\n return true;\n }\n } else {\n return this.extend_(key, {\n value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n };\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = \/* @__PURE__ *\/ new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, false ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableObject.key?\", false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n };\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return;\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0) {\n return;\n }\n if (outcome === 1) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n };\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n };\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n try {\n startBatch();\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n return deleteOutcome;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n try {\n startBatch();\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n return deleteOutcome;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable2 = new ObservableValue(value, enhancer, false ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\", false);\n this.values_.set(key, observable2);\n this.notifyPropertyAddition_(key, observable2.value_);\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n try {\n startBatch();\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n return deleteOutcome;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: void 0\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = false ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\");\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n this.notifyPropertyAddition_(key, void 0);\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (!hasProp(this.target_, key)) {\n return true;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n if (!change) {\n return null;\n }\n }\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = false;\n var observable2 = this.values_.get(key);\n var value = void 0;\n if (!observable2 && (notify || notifySpy)) {\n var _getDescriptor2;\n value = (_getDescriptor2 = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor2.value;\n }\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n if (false) {\n delete this.appliedAnnotations_[key];\n }\n if (observable2) {\n this.values_[\"delete\"](key);\n if (observable2 instanceof ObservableValue) {\n value = observable2.value_;\n }\n propagateChanged(observable2);\n }\n this.keysAtom_.reportChanged();\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_);\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if (false) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (false) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n };\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if (false) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n var notify = hasListeners(this);\n var notifySpy = false;\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if (false) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if (false) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true);\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration2;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if (false) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if (false) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\\nThe target is already observable of different type.\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if (false) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : false ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : \"ObservableObject\";\n var adm = new ObservableObjectAdministration(target, \/* @__PURE__ *\/ new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = \/* @__PURE__ *\/ createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get3() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set4(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (false) {\n adm.appliedAnnotations_[key] = annotation;\n }\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n if (false) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n if (false) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\nvar ENTRY_0 = \/* @__PURE__ *\/ createArrayEntryDescriptor(0);\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\nvar StubArray = function StubArray2() {\n};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== void 0) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\nvar LegacyObservableArray = \/* @__PURE__ *\/ function(_StubArray, _Symbol$toStringTag2, _Symbol$iterator2) {\n _inheritsLoose(LegacyObservableArray2, _StubArray);\n function LegacyObservableArray2(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = false ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true);\n _this.spliceWithArray(0, 0, initialValues);\n allowStateChangesEnd(prev);\n }\n {\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n return _this;\n }\n var _proto = LegacyObservableArray2.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(\n this.slice(),\n arrays.map(function(a5) {\n return isObservableArray(a5) ? a5.slice() : a5;\n })\n );\n };\n _proto[_Symbol$iterator2] = function() {\n var self2 = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self2.length ? {\n value: self2[nextIndex++],\n done: false\n } : {\n done: true,\n value: void 0\n };\n }\n });\n };\n _createClass(LegacyObservableArray2, [{\n key: \"length\",\n get: function get3() {\n return this[$mobx].getArrayLength_();\n },\n set: function set4(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag2,\n get: function get3() {\n return \"Array\";\n }\n }]);\n return LegacyObservableArray2;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\nObject.entries(arrayExtensions).forEach(function(_ref) {\n var prop = _ref[0], fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index3) {\n return {\n enumerable: false,\n configurable: true,\n get: function get3() {\n return this[$mobx].get_(index3);\n },\n set: function set4(value) {\n this[$mobx].set_(index3, value);\n }\n };\n}\nfunction createArrayBufferItem(index3) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index3, createArrayEntryDescriptor(index3));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index3 = OBSERVABLE_ARRAY_BUFFER_SIZE; index3 < max + 100; index3++) {\n createArrayBufferItem(index3);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1e3);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== void 0) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing[$mobx];\n }\n if (isObservableMap(thing)) {\n if (property === void 0) {\n return thing.keysAtom_;\n }\n var observable2 = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable2) {\n die(25, property, getDebugName(thing));\n }\n return observable2;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== void 0) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== void 0) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n named = getAtom(thing);\n }\n return named.name_;\n}\nvar toString = objectPrototype.toString;\nfunction deepEqual(a5, b5, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a5, b5, depth);\n}\nfunction eq(a5, b5, depth, aStack, bStack) {\n if (a5 === b5) {\n return a5 !== 0 || 1 \/ a5 === 1 \/ b5;\n }\n if (a5 == null || b5 == null) {\n return false;\n }\n if (a5 !== a5) {\n return b5 !== b5;\n }\n var type = typeof a5;\n if (type !== \"function\" && type !== \"object\" && typeof b5 != \"object\") {\n return false;\n }\n var className = toString.call(a5);\n if (className !== toString.call(b5)) {\n return false;\n }\n switch (className) {\n case \"[object RegExp]\":\n case \"[object String]\":\n return \"\" + a5 === \"\" + b5;\n case \"[object Number]\":\n if (+a5 !== +a5) {\n return +b5 !== +b5;\n }\n return +a5 === 0 ? 1 \/ +a5 === 1 \/ b5 : +a5 === +b5;\n case \"[object Date]\":\n case \"[object Boolean]\":\n return +a5 === +b5;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a5) === Symbol.valueOf.call(b5);\n case \"[object Map]\":\n case \"[object Set]\":\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n a5 = unwrap(a5);\n b5 = unwrap(b5);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a5 != \"object\" || typeof b5 != \"object\") {\n return false;\n }\n var aCtor = a5.constructor, bCtor = b5.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a5 && \"constructor\" in b5) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n if (aStack[length] === a5) {\n return bStack[length] === b5;\n }\n }\n aStack.push(a5);\n bStack.push(b5);\n if (areArrays) {\n length = a5.length;\n if (length !== b5.length) {\n return false;\n }\n while (length--) {\n if (!eq(a5[length], b5[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n var keys = Object.keys(a5);\n var key;\n length = keys.length;\n if (Object.keys(b5).length !== length) {\n return false;\n }\n while (length--) {\n key = keys[length];\n if (!(hasProp(b5, key) && eq(a5[key], b5[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a5) {\n if (isObservableArray(a5)) {\n return a5.slice();\n }\n if (isES6Map(a5) || isObservableMap(a5)) {\n return Array.from(a5.entries());\n }\n if (isES6Set(a5) || isObservableSet(a5)) {\n return Array.from(a5.entries());\n }\n return a5;\n}\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n[\"Symbol\", \"Map\", \"Set\"].forEach(function(m4) {\n var g4 = getGlobal();\n if (typeof g4[m4] === \"undefined\") {\n die(\"MobX requires global '\" + m4 + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy,\n extras: {\n getDebugName\n },\n $mobx\n });\n}\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLShape\/TLShape.tsx\nvar import_jsx_runtime = require(\"react\/jsx-runtime\");\nvar TLShape = class {\n constructor(props) {\n __publicField(this, \"props\");\n __publicField(this, \"aspectRatio\");\n __publicField(this, \"type\");\n __publicField(this, \"hideCloneHandles\", false);\n __publicField(this, \"hideResizeHandles\", false);\n __publicField(this, \"hideRotateHandle\", false);\n __publicField(this, \"hideContextBar\", false);\n __publicField(this, \"hideSelectionDetail\", false);\n __publicField(this, \"hideSelection\", false);\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canUnmount\", true);\n __publicField(this, \"canResize\", [true, true]);\n __publicField(this, \"canScale\", true);\n __publicField(this, \"canFlip\", true);\n __publicField(this, \"canEdit\", false);\n __publicField(this, \"canBind\", false);\n __publicField(this, \"nonce\");\n __publicField(this, \"bindingDistance\", BINDING_DISTANCE);\n __publicField(this, \"isDirty\", false);\n __publicField(this, \"lastSerialized\");\n __publicField(this, \"getCenter\", () => {\n return BoundsUtils.getBoundsCenter(this.bounds);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n bounds,\n props: { rotation }\n } = this;\n if (!rotation)\n return bounds;\n return BoundsUtils.getBoundsFromPoints(BoundsUtils.getRotatedCorners(bounds, rotation));\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const ownBounds = this.rotatedBounds;\n if (!this.props.rotation) {\n return PointUtils.pointInBounds(point, ownBounds);\n }\n const corners = BoundsUtils.getRotatedCorners(ownBounds, this.props.rotation);\n return PointUtils.pointInPolygon(point, corners);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const box2 = BoundsUtils.getBoundsFromPoints([A4, B3]);\n const {\n rotatedBounds,\n props: { rotation = 0 }\n } = this;\n return BoundsUtils.boundsContain(rotatedBounds, box2) || rotation ? intersectLineSegmentPolyline(A4, B3, BoundsUtils.getRotatedCorners(this.bounds)).didIntersect : intersectLineSegmentBounds(A4, B3, rotatedBounds).length > 0;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n props: { rotation = 0 }\n } = this;\n const corners = BoundsUtils.getRotatedCorners(this.bounds, rotation);\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || intersectPolygonBounds(corners, bounds).length > 0;\n });\n __publicField(this, \"getExpandedBounds\", () => {\n return BoundsUtils.expandBounds(this.getBounds(), this.bindingDistance);\n });\n __publicField(this, \"getBindingPoint\", (point, origin, direction, bindAnywhere) => {\n const bounds = this.getBounds();\n const expandedBounds = this.getExpandedBounds();\n if (!PointUtils.pointInBounds(point, expandedBounds))\n return;\n const intersections = intersectRayBounds(origin, direction, expandedBounds).filter((int) => int.didIntersect).map((int) => int.points[0]);\n if (!intersections.length)\n return;\n const center = this.getCenter();\n const intersection = intersections.sort((a5, b5) => src_default.dist(b5, origin) - src_default.dist(a5, origin))[0];\n const middlePoint = src_default.med(point, intersection);\n let anchor;\n let distance;\n if (bindAnywhere) {\n anchor = src_default.dist(point, center) < BINDING_DISTANCE \/ 2 ? center : point;\n distance = 0;\n } else {\n if (src_default.distanceToLineSegment(point, middlePoint, center) < BINDING_DISTANCE \/ 2) {\n anchor = center;\n } else {\n anchor = middlePoint;\n }\n if (PointUtils.pointInBounds(point, bounds)) {\n distance = this.bindingDistance;\n } else {\n distance = Math.max(\n this.bindingDistance,\n BoundsUtils.getBoundsSides(bounds).map((side) => src_default.distanceToLineSegment(side[1][0], side[1][1], point)).sort((a5, b5) => a5 - b5)[0]\n );\n }\n }\n const bindingPoint = src_default.divV(src_default.sub(anchor, [expandedBounds.minX, expandedBounds.minY]), [\n expandedBounds.width,\n expandedBounds.height\n ]);\n return {\n point: src_default.clampV(bindingPoint, 0, 1),\n distance\n };\n });\n __publicField(this, \"getSerialized\", () => {\n return toJS(__spreadProps(__spreadValues({}, this.props), { type: this.type, nonce: this.nonce }));\n });\n __publicField(this, \"getCachedSerialized\", () => {\n if (this.isDirty || !this.lastSerialized) {\n transaction(() => {\n this.setIsDirty(false);\n this.setLastSerialized(this.getSerialized());\n });\n }\n if (this.lastSerialized) {\n return this.lastSerialized;\n }\n throw new Error(\"Should not get here for getCachedSerialized\");\n });\n __publicField(this, \"validateProps\", (props) => {\n return props;\n });\n __publicField(this, \"update\", (props, isDeserializing = false, skipNounce = false) => {\n if (!(isDeserializing || this.isDirty))\n this.setIsDirty(true);\n if (!isDeserializing && !skipNounce)\n this.incNonce();\n Object.assign(this.props, this.validateProps(props));\n return this;\n });\n __publicField(this, \"clone\", () => {\n return new this.constructor(this.serialized);\n });\n __publicField(this, \"onResetBounds\", (info) => {\n return this;\n });\n __publicField(this, \"scale\", [1, 1]);\n __publicField(this, \"onResizeStart\", (info) => {\n var _a3;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n this.update({ point: [bounds.minX, bounds.minY], scale: nextScale, rotation });\n return this;\n });\n __publicField(this, \"onHandleChange\", (initialShape, { id: id3, delta }) => {\n if (initialShape.handles === void 0)\n return;\n const nextHandles = deepCopy(initialShape.handles);\n nextHandles[id3] = __spreadProps(__spreadValues({}, nextHandles[id3]), {\n point: src_default.add(delta, initialShape.handles[id3].point)\n });\n const topLeft = BoundsUtils.getCommonTopLeft(Object.values(nextHandles).map((h4) => h4.point));\n Object.values(nextHandles).forEach((h4) => {\n h4.point = src_default.sub(h4.point, topLeft);\n });\n this.update({\n point: src_default.add(initialShape.point, topLeft),\n handles: nextHandles\n });\n });\n var _a3, _b;\n const type = this.constructor[\"id\"];\n const defaultProps = (_a3 = this.constructor[\"defaultProps\"]) != null ? _a3 : {};\n this.type = type;\n this.props = __spreadValues(__spreadValues({ scale: [1, 1] }, defaultProps), props);\n this.nonce = (_b = props.nonce) != null ? _b : Date.now();\n makeObservable(this);\n }\n get id() {\n return this.props.id;\n }\n setNonce(nonce) {\n this.nonce = nonce;\n }\n incNonce() {\n this.nonce++;\n }\n setIsDirty(isDirty) {\n this.isDirty = isDirty;\n }\n setLastSerialized(serialized) {\n this.lastSerialized = serialized;\n }\n get center() {\n return this.getCenter();\n }\n get bounds() {\n return this.getBounds();\n }\n get rotatedBounds() {\n return this.getRotatedBounds();\n }\n get serialized() {\n return this.getCachedSerialized();\n }\n getShapeSVGJsx(_2) {\n const bounds = this.getBounds();\n const { stroke, strokeWidth, strokeType, opacity, fill, noFill, borderRadius } = this.props;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime.jsx)(\"rect\", {\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\"),\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeWidth: strokeWidth != null ? strokeWidth : 2,\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fillOpacity: opacity != null ? opacity : 0.2,\n width: bounds.width,\n height: bounds.height,\n rx: borderRadius,\n ry: borderRadius\n });\n }\n};\n__publicField(TLShape, \"type\");\n__decorateClass([\n observable\n], TLShape.prototype, \"props\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"canResize\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"nonce\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"isDirty\", 2);\n__decorateClass([\n observable\n], TLShape.prototype, \"lastSerialized\", 2);\n__decorateClass([\n computed\n], TLShape.prototype, \"id\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"setNonce\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"incNonce\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"setIsDirty\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"setLastSerialized\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"center\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"bounds\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"rotatedBounds\", 1);\n__decorateClass([\n computed\n], TLShape.prototype, \"serialized\", 1);\n__decorateClass([\n action\n], TLShape.prototype, \"update\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLBoxShape\/TLBoxShape.tsx\nvar TLBoxShape = class extends TLShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"canBind\", true);\n __publicField(this, \"getBounds\", () => {\n const [x4, y4] = this.props.point;\n const [width, height] = this.props.size;\n return {\n minX: x4,\n minY: y4,\n maxX: x4 + width,\n maxY: y4 + height,\n width,\n height\n };\n });\n __publicField(this, \"getRotatedBounds\", () => {\n return BoundsUtils.getBoundsFromPoints(\n BoundsUtils.getRotatedCorners(this.bounds, this.props.rotation)\n );\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n this.update({ point: [bounds.minX, bounds.minY], scale: nextScale, rotation });\n return this.update({\n rotation,\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, bounds.height)],\n scale: nextScale\n });\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return props;\n });\n makeObservable(this);\n }\n};\n__publicField(TLBoxShape, \"id\", \"box\");\n__publicField(TLBoxShape, \"defaultProps\", {\n id: \"box\",\n type: \"box\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100]\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLDrawShape\/TLDrawShape.tsx\nvar TLDrawShape = class extends TLShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getBounds\", () => {\n const {\n pointBounds,\n props: { point }\n } = this;\n return BoundsUtils.translateBounds(pointBounds, point);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n props: { rotation, point },\n bounds,\n rotatedPoints\n } = this;\n if (!rotation)\n return bounds;\n return BoundsUtils.translateBounds(BoundsUtils.getBoundsFromPoints(rotatedPoints), point);\n });\n __publicField(this, \"normalizedPoints\", []);\n __publicField(this, \"isResizeFlippedX\", false);\n __publicField(this, \"isResizeFlippedY\", false);\n __publicField(this, \"onResizeStart\", () => {\n var _a3;\n const {\n bounds,\n props: { points }\n } = this;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n const size = [bounds.width, bounds.height];\n this.normalizedPoints = points.map((point) => Vec.divV(point, size));\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n scale: [scaleX, scaleY]\n } = info;\n const size = [bounds.width, bounds.height];\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n return this.update(\n scaleX || scaleY ? {\n point: [bounds.minX, bounds.minY],\n points: this.normalizedPoints.map((point) => Vec.mulV(point, size).concat(point[2])),\n scale: nextScale\n } : {\n point: [bounds.minX, bounds.minY],\n points: this.normalizedPoints.map((point) => Vec.mulV(point, size).concat(point[2]))\n }\n );\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const {\n props: { points, point: ownPoint }\n } = this;\n return PointUtils.pointNearToPolyline(Vec.sub(point, ownPoint), points);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n bounds,\n props: { points, point }\n } = this;\n if (PointUtils.pointInBounds(A4, bounds) || PointUtils.pointInBounds(B3, bounds) || intersectBoundsLineSegment(bounds, A4, B3).length > 0) {\n const rA = Vec.sub(A4, point);\n const rB = Vec.sub(B3, point);\n return intersectLineSegmentPolyline(rA, rB, points).didIntersect || !!points.find((point2) => Vec.dist(rA, point2) < 5 || Vec.dist(rB, point2) < 5);\n }\n return false;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n props: { points, point }\n } = this;\n const oBounds = BoundsUtils.translateBounds(bounds, Vec.neg(point));\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || points.every((vert) => PointUtils.pointInBounds(vert, oBounds)) || BoundsUtils.boundsCollide(bounds, rotatedBounds) && intersectPolylineBounds(points, oBounds).length > 0;\n });\n makeObservable(this);\n }\n get pointBounds() {\n const {\n props: { points }\n } = this;\n return BoundsUtils.getBoundsFromPoints(points);\n }\n get rotatedPoints() {\n const {\n props: { point, points, rotation },\n center\n } = this;\n if (!rotation)\n return points;\n const relativeCenter = Vec.sub(center, point);\n return points.map((point2) => Vec.rotWith(point2, relativeCenter, rotation));\n }\n};\n__publicField(TLDrawShape, \"id\", \"draw\");\n__publicField(TLDrawShape, \"defaultProps\", {\n id: \"draw\",\n type: \"draw\",\n parentId: \"page\",\n point: [0, 0],\n points: [],\n isComplete: false\n});\n__decorateClass([\n computed\n], TLDrawShape.prototype, \"pointBounds\", 1);\n__decorateClass([\n computed\n], TLDrawShape.prototype, \"rotatedPoints\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLEllipseShape\/TLEllipseShape.ts\nvar TLEllipseShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getBounds\", () => {\n const {\n props: {\n point: [x4, y4],\n size: [w4, h4]\n }\n } = this;\n return BoundsUtils.getRotatedEllipseBounds(x4, y4, w4 \/ 2, h4 \/ 2, 0);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n props: {\n point: [x4, y4],\n size: [w4, h4],\n rotation\n }\n } = this;\n return BoundsUtils.getRotatedEllipseBounds(x4, y4, w4 \/ 2, h4 \/ 2, rotation);\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const {\n props: { size, rotation },\n center\n } = this;\n return PointUtils.pointInEllipse(point, center, size[0], size[1], rotation || 0);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n props: {\n size: [w4, h4],\n rotation = 0\n },\n center\n } = this;\n return intersectLineSegmentEllipse(A4, B3, center, w4, h4, rotation).didIntersect;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n props: {\n size: [w4, h4],\n rotation = 0\n },\n rotatedBounds\n } = this;\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || intersectEllipseBounds(this.center, w4 \/ 2, h4 \/ 2, rotation, bounds).length > 0;\n });\n makeObservable(this);\n }\n};\n__publicField(TLEllipseShape, \"id\", \"ellipse\");\n__publicField(TLEllipseShape, \"defaultProps\", {\n id: \"ellipse\",\n type: \"ellipse\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100]\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLImageShape\/TLImageShape.ts\nvar TLImageShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"onResetBounds\", (info) => {\n const { clipping, size, point } = this.props;\n if (clipping) {\n const [t2, r4, b5, l5] = Array.isArray(clipping) ? clipping : [clipping, clipping, clipping, clipping];\n return this.update({\n clipping: 0,\n point: [point[0] - l5, point[1] - t2],\n size: [size[0] + (l5 - r4), size[1] + (t2 - b5)]\n });\n } else if (info.asset) {\n const {\n size: [w4, h4]\n } = info.asset;\n this.update({\n clipping: 0,\n point: [point[0] + size[0] \/ 2 - w4 \/ 2, point[1] + size[1] \/ 2 - h4 \/ 2],\n size: [w4, h4]\n });\n }\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const { bounds, clip, scale } = info;\n let { clipping } = this.props;\n const { clipping: iClipping } = initialProps;\n if (clip) {\n const {\n point: [x4, y4],\n size: [w4, h4]\n } = initialProps;\n const [t2, r4, b5, l5] = iClipping ? Array.isArray(iClipping) ? iClipping : [iClipping, iClipping, iClipping, iClipping] : [0, 0, 0, 0];\n clipping = [\n t2 + (bounds.minY - y4),\n r4 + (bounds.maxX - (x4 + w4)),\n b5 + (bounds.maxY - (y4 + h4)),\n l5 + (bounds.minX - x4)\n ];\n } else {\n if (iClipping !== void 0) {\n clipping = Array.isArray(iClipping) ? iClipping : [iClipping, iClipping, iClipping, iClipping];\n clipping = [\n clipping[0] * scale[1],\n clipping[1] * scale[0],\n clipping[2] * scale[1],\n clipping[3] * scale[0]\n ];\n }\n }\n if (clipping && Array.isArray(clipping)) {\n const c4 = clipping;\n if (c4.every((v4, i4) => i4 === 0 || v4 === c4[i4 - 1])) {\n clipping = c4[0];\n }\n }\n return this.update({\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, bounds.height)],\n clipping\n });\n });\n makeObservable(this);\n }\n};\n__publicField(TLImageShape, \"id\", \"ellipse\");\n__publicField(TLImageShape, \"defaultProps\", {\n id: \"ellipse\",\n type: \"ellipse\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100],\n clipping: 0,\n objectFit: \"none\",\n assetId: \"\"\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLPolylineShape\/TLPolylineShape.tsx\nvar _TLPolylineShape = class extends TLShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getBounds\", () => {\n const {\n points,\n props: { point }\n } = this;\n return BoundsUtils.translateBounds(BoundsUtils.getBoundsFromPoints(points), point);\n });\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n rotatedPoints,\n props: { point }\n } = this;\n return BoundsUtils.translateBounds(BoundsUtils.getBoundsFromPoints(rotatedPoints), point);\n });\n __publicField(this, \"normalizedHandles\", []);\n __publicField(this, \"onResizeStart\", () => {\n var _a3;\n const {\n props: { handles },\n bounds\n } = this;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n const size = [bounds.width, bounds.height];\n this.normalizedHandles = Object.values(handles).map((h4) => Vec.divV(h4.point, size));\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n const {\n bounds,\n scale: [scaleX, scaleY]\n } = info;\n const {\n props: { handles },\n normalizedHandles\n } = this;\n const size = [bounds.width, bounds.height];\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n return this.update({\n point: [bounds.minX, bounds.minY],\n handles: Object.values(handles).map((handle, i4) => __spreadProps(__spreadValues({}, handle), {\n point: Vec.mulV(normalizedHandles[i4], size)\n })),\n scale: nextScale\n });\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const { points } = this;\n return PointUtils.pointNearToPolyline(Vec.sub(point, this.props.point), points);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n bounds,\n points,\n props: { point }\n } = this;\n if (PointUtils.pointInBounds(A4, bounds) || PointUtils.pointInBounds(B3, bounds) || intersectBoundsLineSegment(bounds, A4, B3).length > 0) {\n const rA = Vec.sub(A4, point);\n const rB = Vec.sub(B3, point);\n return intersectLineSegmentPolyline(rA, rB, points).didIntersect || !!points.find((point2) => Vec.dist(rA, point2) < 5 || Vec.dist(rB, point2) < 5);\n }\n return false;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n points,\n props: { point }\n } = this;\n const oBounds = BoundsUtils.translateBounds(bounds, Vec.neg(point));\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || points.every((vert) => PointUtils.pointInBounds(vert, oBounds)) || BoundsUtils.boundsCollide(bounds, rotatedBounds) && intersectPolylineBounds(points, oBounds).length > 0;\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.point)\n props.point = [0, 0];\n if (props.handles !== void 0 && Object.values(props.handles).length < 1)\n props.handles = _TLPolylineShape.defaultProps[\"handles\"];\n return props;\n });\n makeObservable(this);\n }\n get points() {\n return Object.values(this.props.handles).map((h4) => h4.point);\n }\n get centroid() {\n const { points } = this;\n return PolygonUtils.getPolygonCentroid(points);\n }\n get rotatedPoints() {\n const {\n centroid,\n props: { handles, rotation }\n } = this;\n if (!rotation)\n return this.points;\n return Object.values(handles).map((h4) => Vec.rotWith(h4.point, centroid, rotation));\n }\n};\nvar TLPolylineShape = _TLPolylineShape;\n__publicField(TLPolylineShape, \"id\", \"polyline\");\n__publicField(TLPolylineShape, \"defaultProps\", {\n id: \"polyline\",\n type: \"polyline\",\n parentId: \"page\",\n point: [0, 0],\n handles: {}\n});\n__decorateClass([\n computed\n], TLPolylineShape.prototype, \"points\", 1);\n__decorateClass([\n computed\n], TLPolylineShape.prototype, \"centroid\", 1);\n__decorateClass([\n computed\n], TLPolylineShape.prototype, \"rotatedPoints\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLLineShape\/TLLineShape.tsx\nvar _TLLineShape = class extends TLPolylineShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"hideResizeHandles\", true);\n __publicField(this, \"hideRotateHandle\", true);\n __publicField(this, \"validateProps\", (props) => {\n if (props.point)\n props.point = [0, 0];\n if (props.handles !== void 0 && Object.values(props.handles).length < 1)\n props.handles = _TLLineShape.defaultProps[\"handles\"];\n return props;\n });\n __publicField(this, \"getHandlesChange\", (shape, handles) => {\n let nextHandles = deepMerge(shape.handles, handles);\n nextHandles = deepMerge(nextHandles, {\n start: {\n point: src_default.toFixed(nextHandles.start.point)\n },\n end: {\n point: src_default.toFixed(nextHandles.end.point)\n }\n });\n if (src_default.isEqual(nextHandles.start.point, nextHandles.end.point))\n return;\n const nextShape = {\n point: shape.point,\n handles: deepCopy(nextHandles)\n };\n const topLeft = shape.point;\n const nextBounds = BoundsUtils.translateBounds(\n BoundsUtils.getBoundsFromPoints(Object.values(nextHandles).map((h4) => h4.point)),\n nextShape.point\n );\n const offset = src_default.sub([nextBounds.minX, nextBounds.minY], topLeft);\n if (!src_default.isEqual(offset, [0, 0])) {\n Object.values(nextShape.handles).forEach((handle) => {\n handle.point = src_default.toFixed(src_default.sub(handle.point, offset));\n });\n nextShape.point = src_default.toFixed(src_default.add(nextShape.point, offset));\n }\n return nextShape;\n });\n makeObservable(this);\n }\n};\nvar TLLineShape = _TLLineShape;\n__publicField(TLLineShape, \"id\", \"line\");\n__publicField(TLLineShape, \"defaultProps\", {\n id: \"line\",\n type: \"line\",\n parentId: \"page\",\n point: [0, 0],\n handles: {\n start: { id: \"start\", canBind: true, point: [0, 0] },\n end: { id: \"end\", canBind: true, point: [1, 1] }\n }\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLPolygonShape\/TLPolygonShape.tsx\nvar TLPolygonShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"getRotatedBounds\", () => {\n const {\n rotatedVertices,\n props: { point },\n offset\n } = this;\n return BoundsUtils.translateBounds(\n BoundsUtils.getBoundsFromPoints(rotatedVertices),\n Vec.add(point, offset)\n );\n });\n __publicField(this, \"hitTestPoint\", (point) => {\n const { vertices } = this;\n return PointUtils.pointInPolygon(Vec.add(point, this.props.point), vertices);\n });\n __publicField(this, \"hitTestLineSegment\", (A4, B3) => {\n const {\n vertices,\n props: { point }\n } = this;\n return intersectLineSegmentPolyline(Vec.sub(A4, point), Vec.sub(B3, point), vertices).didIntersect;\n });\n __publicField(this, \"hitTestBounds\", (bounds) => {\n const {\n rotatedBounds,\n offset,\n rotatedVertices,\n props: { point }\n } = this;\n const oBounds = BoundsUtils.translateBounds(bounds, Vec.neg(Vec.add(point, offset)));\n return BoundsUtils.boundsContain(bounds, rotatedBounds) || rotatedVertices.every((vert) => PointUtils.pointInBounds(vert, oBounds)) || intersectPolygonBounds(rotatedVertices, oBounds).length > 0;\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.point)\n props.point = [0, 0];\n if (props.sides !== void 0 && props.sides < 3)\n props.sides = 3;\n return props;\n });\n makeObservable(this);\n }\n get vertices() {\n return this.getVertices();\n }\n get pageVertices() {\n const {\n props: { point },\n vertices\n } = this;\n return vertices.map((vert) => Vec.add(vert, point));\n }\n get centroid() {\n const { vertices } = this;\n return PolygonUtils.getPolygonCentroid(vertices);\n }\n get rotatedVertices() {\n const {\n vertices,\n centroid,\n props: { rotation }\n } = this;\n if (!rotation)\n return vertices;\n return vertices.map((v4) => Vec.rotWith(v4, centroid, rotation));\n }\n get offset() {\n const {\n props: {\n size: [w4, h4]\n }\n } = this;\n const center = BoundsUtils.getBoundsCenter(BoundsUtils.getBoundsFromPoints(this.vertices));\n return Vec.sub(Vec.div([w4, h4], 2), center);\n }\n getVertices(padding = 0) {\n const { ratio, sides, size, scale } = this.props;\n const vertices = sides === 3 ? PolygonUtils.getTriangleVertices(size, padding, ratio) : PolygonUtils.getPolygonVertices(size, sides, padding, ratio);\n return vertices;\n }\n};\n__publicField(TLPolygonShape, \"id\", \"polygon\");\n__publicField(TLPolygonShape, \"defaultProps\", {\n id: \"polygon\",\n type: \"polygon\",\n parentId: \"page\",\n point: [0, 0],\n size: [100, 100],\n sides: 5,\n ratio: 1,\n isFlippedY: false\n});\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"vertices\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"pageVertices\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"centroid\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"rotatedVertices\", 1);\n__decorateClass([\n computed\n], TLPolygonShape.prototype, \"offset\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLTextShape\/TLTextShape.tsx\nvar TLTextShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"canFlip\", false);\n makeObservable(this);\n }\n};\n__publicField(TLTextShape, \"id\", \"text\");\n__publicField(TLTextShape, \"defaultProps\", {\n id: \"text\",\n type: \"text\",\n parentId: \"page\",\n isSizeLocked: true,\n point: [0, 0],\n size: [16, 32],\n text: \"\"\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/shapes\/TLGroupShape\/TLGroupShape.tsx\nvar TLGroupShape = class extends TLBoxShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"canEdit\", false);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"getBounds\", () => {\n if (this.shapes.length === 0) {\n const app = useApp();\n app.deleteShapes([this.id]);\n return {\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0,\n width: 0,\n height: 0\n };\n }\n return BoundsUtils.getCommonBounds(this.shapes.map((s4) => s4.getBounds()));\n });\n makeObservable(this);\n this.canResize = [false, false];\n }\n getShapes() {\n throw new Error(\"will be implemented other places\");\n }\n get shapes() {\n return this.getShapes();\n }\n};\n__publicField(TLGroupShape, \"id\", \"group\");\n__publicField(TLGroupShape, \"defaultProps\", {\n id: \"group\",\n type: \"group\",\n parentId: \"page\",\n point: [0, 0],\n size: [0, 0],\n children: []\n});\n__decorateClass([\n computed\n], TLGroupShape.prototype, \"shapes\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLState.ts\nvar TLRootState = class {\n constructor() {\n __publicField(this, \"_id\");\n __publicField(this, \"_initial\");\n __publicField(this, \"_states\");\n __publicField(this, \"_isActive\", false);\n __publicField(this, \"cursor\");\n __publicField(this, \"_disposables\", []);\n __publicField(this, \"children\", \/* @__PURE__ *\/ new Map([]));\n __publicField(this, \"registerStates\", (stateClasses) => {\n stateClasses.forEach((StateClass) => this.children.set(StateClass.id, new StateClass(this, this)));\n return this;\n });\n __publicField(this, \"deregisterStates\", (states) => {\n states.forEach((StateClass) => {\n var _a3;\n (_a3 = this.children.get(StateClass.id)) == null ? void 0 : _a3.dispose();\n this.children.delete(StateClass.id);\n });\n return this;\n });\n __publicField(this, \"currentState\", {});\n __publicField(this, \"transition\", (id3, data = {}) => {\n if (this.children.size === 0)\n throw Error(`Tool ${this.id} has no states, cannot transition to ${id3}.`);\n const nextState = this.children.get(id3);\n const prevState = this.currentState;\n if (!nextState)\n throw Error(`Could not find a state named ${id3}.`);\n transaction(() => {\n if (this.currentState) {\n prevState._events.onExit(__spreadProps(__spreadValues({}, data), { toId: id3 }));\n prevState.dispose();\n this.setCurrentState(nextState);\n this._events.onTransition(__spreadProps(__spreadValues({}, data), { fromId: prevState.id, toId: id3 }));\n nextState._events.onEnter(__spreadProps(__spreadValues({}, data), { fromId: prevState.id }));\n } else {\n this.currentState = nextState;\n nextState._events.onEnter(__spreadProps(__spreadValues({}, data), { fromId: \"\" }));\n }\n });\n return this;\n });\n __publicField(this, \"isIn\", (path) => {\n const ids = path.split(\".\").reverse();\n let state = this;\n while (ids.length > 0) {\n const id3 = ids.pop();\n if (!id3) {\n return true;\n }\n if (state.currentState.id === id3) {\n if (ids.length === 0) {\n return true;\n }\n state = state.currentState;\n continue;\n } else {\n return false;\n }\n }\n return false;\n });\n __publicField(this, \"isInAny\", (...paths) => {\n return paths.some(this.isIn);\n });\n __publicField(this, \"forwardEvent\", (eventName, ...args) => {\n var _a3, _b;\n if ((_b = (_a3 = this.currentState) == null ? void 0 : _a3._events) == null ? void 0 : _b[eventName]) {\n transaction(() => {\n var _a4;\n return (_a4 = this.currentState._events) == null ? void 0 : _a4[eventName](...args);\n });\n }\n });\n __publicField(this, \"_events\", {\n onTransition: (info) => {\n var _a3;\n (_a3 = this.onTransition) == null ? void 0 : _a3.call(this, info);\n },\n onEnter: (info) => {\n var _a3;\n this._isActive = true;\n if (this.initial)\n this.transition(this.initial, info);\n (_a3 = this.onEnter) == null ? void 0 : _a3.call(this, info);\n },\n onExit: (info) => {\n var _a3, _b, _c;\n this._isActive = false;\n (_b = (_a3 = this.currentState) == null ? void 0 : _a3.onExit) == null ? void 0 : _b.call(_a3, { toId: \"parent\" });\n (_c = this.onExit) == null ? void 0 : _c.call(this, info);\n },\n onPointerDown: (info, event) => {\n var _a3;\n (_a3 = this.onPointerDown) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerDown\", info, event);\n },\n onPointerUp: (info, event) => {\n var _a3;\n (_a3 = this.onPointerUp) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerUp\", info, event);\n },\n onPointerMove: (info, event) => {\n var _a3;\n (_a3 = this.onPointerMove) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerMove\", info, event);\n },\n onPointerEnter: (info, event) => {\n var _a3;\n (_a3 = this.onPointerEnter) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerEnter\", info, event);\n },\n onPointerLeave: (info, event) => {\n var _a3;\n (_a3 = this.onPointerLeave) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPointerLeave\", info, event);\n },\n onDoubleClick: (info, event) => {\n var _a3;\n (_a3 = this.onDoubleClick) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onDoubleClick\", info, event);\n },\n onKeyDown: (info, event) => {\n var _a3;\n this._events.onModifierKey(info, event);\n (_a3 = this.onKeyDown) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onKeyDown\", info, event);\n },\n onKeyUp: (info, event) => {\n var _a3;\n this._events.onModifierKey(info, event);\n (_a3 = this.onKeyUp) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onKeyUp\", info, event);\n },\n onPinchStart: (info, event) => {\n var _a3;\n (_a3 = this.onPinchStart) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPinchStart\", info, event);\n },\n onPinch: (info, event) => {\n var _a3;\n (_a3 = this.onPinch) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPinch\", info, event);\n },\n onPinchEnd: (info, event) => {\n var _a3;\n (_a3 = this.onPinchEnd) == null ? void 0 : _a3.call(this, info, event);\n this.forwardEvent(\"onPinchEnd\", info, event);\n },\n onModifierKey: (info, event) => {\n switch (event.key) {\n case \"Shift\":\n case \"Alt\":\n case \"Ctrl\":\n case \"Meta\": {\n this._events.onPointerMove(info, event);\n break;\n }\n }\n }\n });\n __publicField(this, \"onEnter\");\n __publicField(this, \"onExit\");\n __publicField(this, \"onTransition\");\n __publicField(this, \"onPointerDown\");\n __publicField(this, \"onPointerUp\");\n __publicField(this, \"onPointerMove\");\n __publicField(this, \"onPointerEnter\");\n __publicField(this, \"onPointerLeave\");\n __publicField(this, \"onDoubleClick\");\n __publicField(this, \"onKeyDown\");\n __publicField(this, \"onKeyUp\");\n __publicField(this, \"onPinchStart\");\n __publicField(this, \"onPinch\");\n __publicField(this, \"onPinchEnd\");\n const id3 = this.constructor[\"id\"];\n const initial = this.constructor[\"initial\"];\n const states = this.constructor[\"states\"];\n this._id = id3;\n this._initial = initial;\n this._states = states;\n }\n dispose() {\n this._disposables.forEach((disposable) => disposable());\n this._disposables = [];\n return this;\n }\n get initial() {\n return this._initial;\n }\n get states() {\n return this._states;\n }\n get id() {\n return this._id;\n }\n get isActive() {\n return this._isActive;\n }\n get ascendants() {\n return [this];\n }\n get descendants() {\n return Array.from(this.children.values()).flatMap((state) => [state, ...state.descendants]);\n }\n setCurrentState(state) {\n this.currentState = state;\n }\n};\n__publicField(TLRootState, \"id\");\n__publicField(TLRootState, \"shortcuts\");\n__decorateClass([\n observable\n], TLRootState.prototype, \"currentState\", 2);\n__decorateClass([\n action\n], TLRootState.prototype, \"setCurrentState\", 1);\nvar TLState = class extends TLRootState {\n constructor(parent, root) {\n var _a3, _b;\n super();\n __publicField(this, \"_root\");\n __publicField(this, \"_parent\");\n __publicField(this, \"children\", \/* @__PURE__ *\/ new Map([]));\n __publicField(this, \"registerStates\", (stateClasses) => {\n stateClasses.forEach(\n (StateClass) => this.children.set(StateClass.id, new StateClass(this, this._root))\n );\n return this;\n });\n __publicField(this, \"deregisterStates\", (states) => {\n states.forEach((StateClass) => {\n var _a3;\n (_a3 = this.children.get(StateClass.id)) == null ? void 0 : _a3.dispose();\n this.children.delete(StateClass.id);\n });\n return this;\n });\n this._parent = parent;\n this._root = root;\n if (this.states && this.states.length > 0) {\n this.registerStates(this.states);\n const initialId = (_a3 = this.initial) != null ? _a3 : this.states[0].id;\n const state = this.children.get(initialId);\n if (state) {\n this.setCurrentState(state);\n (_b = this.currentState) == null ? void 0 : _b._events.onEnter({ fromId: \"initial\" });\n }\n }\n makeObservable(this);\n }\n get root() {\n return this._root;\n }\n get parent() {\n return this._parent;\n }\n get ascendants() {\n if (!this.parent)\n return [this];\n if (!(\"ascendants\" in this.parent))\n return [this.parent, this];\n return [...this.parent.ascendants, this];\n }\n};\n__publicField(TLState, \"cursor\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLTool.tsx\nvar TLTool = class extends TLState {\n constructor() {\n super(...arguments);\n __publicField(this, \"isLocked\", false);\n __publicField(this, \"previous\");\n __publicField(this, \"onEnter\", ({ fromId }) => {\n this.previous = fromId;\n if (this.cursor)\n this.app.cursors.setCursor(this.cursor);\n });\n __publicField(this, \"onTransition\", (info) => {\n const { toId } = info;\n const toState = this.children.get(toId);\n this.app.cursors.reset();\n if (toState.cursor) {\n this.app.cursors.setCursor(toState.cursor);\n } else if (this.cursor) {\n this.app.cursors.setCursor(this.cursor);\n }\n });\n }\n get app() {\n return this.root;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLToolState.ts\nvar TLToolState = class extends TLState {\n get app() {\n return this.root;\n }\n get tool() {\n return this.parent;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/states\/CreatingState.tsx\nvar CreatingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"creatingShape\");\n __publicField(this, \"aspectRatio\");\n __publicField(this, \"initialBounds\", {});\n __publicField(this, \"onEnter\", () => {\n const {\n currentPage,\n inputs: { originPoint, currentPoint }\n } = this.app;\n const { Shape: Shape5 } = this.tool;\n const shape = new Shape5({\n id: uniqueId(),\n type: Shape5.id,\n parentId: currentPage.id,\n point: [...originPoint],\n fill: this.app.settings.color,\n stroke: this.app.settings.color,\n size: src_default.abs(src_default.sub(currentPoint, originPoint))\n });\n this.initialBounds = {\n minX: originPoint[0],\n minY: originPoint[1],\n maxX: originPoint[0] + 1,\n maxY: originPoint[1] + 1,\n width: 1,\n height: 1\n };\n if (!shape.canChangeAspectRatio) {\n if (shape.aspectRatio) {\n this.aspectRatio = shape.aspectRatio;\n this.initialBounds.height = this.aspectRatio;\n this.initialBounds.width = 1;\n } else {\n this.aspectRatio = 1;\n this.initialBounds.height = 1;\n this.initialBounds.width = 1;\n }\n this.initialBounds.maxY = this.initialBounds.minY + this.initialBounds.height;\n }\n this.creatingShape = shape;\n this.creatingShape.setScaleLevel(this.app.settings.scaleLevel);\n this.app.currentPage.addShapes(shape);\n this.app.setSelectedShapes([shape]);\n });\n __publicField(this, \"onPointerMove\", (info) => {\n if (info.order)\n return;\n if (!this.creatingShape)\n throw Error(\"Expected a creating shape.\");\n const { initialBounds } = this;\n const { currentPoint, originPoint, shiftKey } = this.app.inputs;\n const isAspectRatioLocked = shiftKey || this.creatingShape.props.isAspectRatioLocked || !this.creatingShape.canChangeAspectRatio;\n let bounds = BoundsUtils.getTransformedBoundingBox(\n initialBounds,\n \"bottom_right_corner\" \/* BottomRight *\/,\n src_default.sub(currentPoint, originPoint),\n 0,\n isAspectRatioLocked\n );\n if (this.app.settings.snapToGrid && !isAspectRatioLocked) {\n bounds = BoundsUtils.snapBoundsToGrid(bounds, GRID_SIZE);\n }\n this.creatingShape.update({\n point: [bounds.minX, bounds.minY],\n size: [bounds.width, bounds.height]\n });\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n if (this.creatingShape) {\n this.app.setSelectedShapes([this.creatingShape]);\n this.app.api.editShape(this.creatingShape);\n } else {\n this.app.transition(\"select\");\n }\n this.app.persist();\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n if (!this.creatingShape)\n throw Error(\"Expected a creating shape.\");\n this.app.deleteShapes([this.creatingShape]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(CreatingState, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/states\/IdleState.tsx\nvar IdleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"pointing\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/states\/PointingState.tsx\nvar PointingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"creating\");\n this.app.setSelectedShapes(this.app.currentPage.shapes);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PointingState, \"id\", \"pointing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLBoxTool\/TLBoxTool.ts\nvar TLBoxTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLBoxTool, \"id\", \"box\");\n__publicField(TLBoxTool, \"states\", [IdleState, PointingState, CreatingState]);\n__publicField(TLBoxTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/states\/CreatingState.tsx\nvar CreatingState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"shape\", {});\n __publicField(this, \"points\", [[0, 0, 0.5]]);\n __publicField(this, \"persistDebounced\", debounce(this.app.persist, 200));\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onEnter\", () => {\n var _a3, _b;\n const { Shape: Shape5, previousShape } = this.tool;\n const { originPoint } = this.app.inputs;\n this.app.history.pause();\n if (this.app.inputs.shiftKey && previousShape) {\n this.shape = previousShape;\n const { shape } = this;\n const prevPoint = shape.props.points[shape.props.points.length - 1];\n const nextPoint = Vec.sub(originPoint, shape.props.point).concat((_a3 = originPoint[2]) != null ? _a3 : 0.5);\n this.points = [...shape.props.points, prevPoint, prevPoint];\n const len = Math.ceil(Vec.dist(prevPoint, originPoint) \/ 16);\n for (let i4 = 0, t2 = i4 \/ (len - 1); i4 < len; i4++) {\n this.points.push(\n Vec.lrp(prevPoint, nextPoint, t2).concat(lerp(prevPoint[2], nextPoint[2], t2))\n );\n }\n this.addNextPoint(nextPoint);\n } else {\n this.tool.previousShape = void 0;\n this.points = [[0, 0, (_b = originPoint[2]) != null ? _b : 0.5]];\n this.shape = new Shape5({\n id: uniqueId(),\n type: Shape5.id,\n parentId: this.app.currentPage.id,\n point: originPoint.slice(0, 2),\n points: this.points,\n isComplete: false,\n fill: this.app.settings.color,\n stroke: this.app.settings.color\n });\n this.shape.setScaleLevel(this.app.settings.scaleLevel);\n this.app.currentPage.addShapes(this.shape);\n }\n });\n __publicField(this, \"onPointerMove\", () => {\n const { shape } = this;\n const { currentPoint, previousPoint } = this.app.inputs;\n if (Vec.isEqual(previousPoint, currentPoint))\n return;\n this.addNextPoint(Vec.sub(currentPoint, shape.props.point).concat(currentPoint[2]));\n });\n __publicField(this, \"onPointerUp\", () => {\n if (!this.shape)\n throw Error(\"Expected a creating shape.\");\n this.app.history.resume();\n this.shape.update({\n isComplete: true,\n points: this.tool.simplify ? PointUtils.simplify2(this.points, this.tool.simplifyTolerance) : this.shape.props.points\n });\n this.tool.previousShape = this.shape;\n this.tool.transition(\"idle\");\n let tool = this.app.selectedTool.id;\n if (tool === \"pencil\" || tool === \"highlighter\") {\n this.persistDebounced();\n } else {\n this.app.persist();\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n if (!this.shape)\n throw Error(\"Expected a creating shape.\");\n this.app.deleteShapes([this.shape]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n addNextPoint(point) {\n const { shape } = this;\n const offset = Vec.min(point, [0, 0]);\n this.points.push(point);\n if (offset[0] < 0 || offset[1] < 0) {\n this.points = this.points.map((pt2) => Vec.sub(pt2, offset).concat(pt2[2]));\n shape.update({\n point: Vec.add(shape.props.point, offset),\n points: this.points\n });\n } else {\n shape.update({\n points: this.points\n });\n }\n }\n};\n__publicField(CreatingState3, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/states\/IdleState.tsx\nvar IdleState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order || this.app.readOnly)\n return;\n this.tool.transition(\"creating\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState3, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/states\/PinchingState.ts\nvar PinchingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"origin\", [0, 0]);\n __publicField(this, \"prevDelta\", [0, 0]);\n __publicField(this, \"onEnter\", (info) => {\n this.prevDelta = info.info.delta;\n this.origin = info.info.point;\n });\n __publicField(this, \"onPinch\", (info) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n __publicField(this, \"onPinchEnd\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PinchingState, \"id\", \"pinching\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLDrawTool\/TLDrawTool.tsx\nvar TLDrawTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"simplify\", true);\n __publicField(this, \"simplifyTolerance\", 1);\n __publicField(this, \"previousShape\");\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(TLDrawTool, \"id\", \"draw\");\n__publicField(TLDrawTool, \"states\", [IdleState3, CreatingState3, PinchingState]);\n__publicField(TLDrawTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/states\/ErasingState.tsx\nvar ErasingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"points\", [[0, 0, 0.5]]);\n __publicField(this, \"hitShapes\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"onEnter\", () => {\n const { originPoint } = this.app.inputs;\n this.points = [originPoint];\n this.hitShapes.clear();\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, previousPoint } = this.app.inputs;\n if (Vec.isEqual(previousPoint, currentPoint))\n return;\n this.points.push(currentPoint);\n this.app.shapesInViewport.filter((shape) => shape.hitTestLineSegment(previousPoint, currentPoint)).forEach((shape) => this.hitShapes.add(shape));\n this.app.setErasingShapes(Array.from(this.hitShapes.values()));\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.deleteShapes(Array.from(this.hitShapes.values()));\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.setErasingShapes([]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(ErasingState, \"id\", \"erasing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/states\/IdleState.tsx\nvar IdleState4 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"pointing\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState4, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/states\/PointingState.tsx\nvar PointingState2 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", () => {\n const { currentPoint } = this.app.inputs;\n this.app.setErasingShapes(\n this.app.shapesInViewport.filter((shape) => shape.hitTestPoint(currentPoint))\n );\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"erasing\");\n this.app.setSelectedShapes([]);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n const shapesToDelete = [...this.app.erasingShapes];\n this.app.setErasingShapes([]);\n this.app.deleteShapes(shapesToDelete);\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PointingState2, \"id\", \"pointing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLEraseTool\/TLEraseTool.tsx\nvar TLEraseTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLEraseTool, \"id\", \"erase\");\n__publicField(TLEraseTool, \"states\", [IdleState4, PointingState2, ErasingState]);\n__publicField(TLEraseTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLBaseLineBindingState.ts\nvar TLBaseLineBindingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"handle\", {});\n __publicField(this, \"handleId\", \"end\");\n __publicField(this, \"currentShape\", {});\n __publicField(this, \"initialShape\", {});\n __publicField(this, \"bindableShapeIds\", []);\n __publicField(this, \"startBindingShapeId\");\n __publicField(this, \"newStartBindingId\", \"\");\n __publicField(this, \"draggedBindingId\", \"\");\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { shiftKey, previousPoint, originPoint, currentPoint, modKey: modKey2, altKey },\n settings: { snapToGrid }\n } = this.app;\n const shape = this.app.getShapeById(this.initialShape.id);\n const { handles } = this.initialShape;\n const handleId = this.handleId;\n const otherHandleId = this.handleId === \"start\" ? \"end\" : \"start\";\n if (src_default.isEqual(previousPoint, currentPoint))\n return;\n let delta = src_default.sub(currentPoint, originPoint);\n if (shiftKey) {\n const A4 = handles[otherHandleId].point;\n const B3 = handles[handleId].point;\n const C4 = src_default.add(B3, delta);\n const angle = src_default.angle(A4, C4);\n const adjusted = src_default.rotWith(C4, A4, GeomUtils.snapAngleToSegments(angle, 24) - angle);\n delta = src_default.add(delta, src_default.sub(adjusted, C4));\n }\n const nextPoint = src_default.add(handles[handleId].point, delta);\n const handleChanges = {\n [handleId]: __spreadProps(__spreadValues({}, handles[handleId]), {\n point: snapToGrid ? src_default.snap(nextPoint, GRID_SIZE) : src_default.toFixed(nextPoint),\n bindingId: void 0\n })\n };\n let updated = this.currentShape.getHandlesChange(this.initialShape, handleChanges);\n if (!updated)\n return;\n const next = {\n shape: deepMerge(shape.props, updated),\n bindings: {}\n };\n let draggedBinding;\n const draggingHandle = next.shape.handles[handleId];\n const oppositeHandle = next.shape.handles[otherHandleId];\n if (this.startBindingShapeId) {\n let nextStartBinding;\n const startTarget = this.app.getShapeById(this.startBindingShapeId);\n if (startTarget) {\n const center = startTarget.getCenter();\n const startHandle = next.shape.handles.start;\n const endHandle = next.shape.handles.end;\n const rayPoint = src_default.add(startHandle.point, next.shape.point);\n if (src_default.isEqual(rayPoint, center))\n rayPoint[1]++;\n const rayOrigin = center;\n const isInsideShape = startTarget.hitTestPoint(currentPoint);\n const rayDirection = src_default.uni(src_default.sub(rayPoint, rayOrigin));\n const hasStartBinding = this.app.currentPage.bindings[this.newStartBindingId] !== void 0;\n if (!modKey2 && !startTarget.hitTestPoint(src_default.add(next.shape.point, endHandle.point))) {\n nextStartBinding = findBindingPoint(\n shape.props,\n startTarget,\n \"start\",\n this.newStartBindingId,\n center,\n rayOrigin,\n rayDirection,\n isInsideShape\n );\n }\n if (nextStartBinding && !hasStartBinding) {\n next.bindings[this.newStartBindingId] = nextStartBinding;\n next.shape.handles.start.bindingId = nextStartBinding.id;\n } else if (!nextStartBinding && hasStartBinding) {\n console.log(\"removing start binding\");\n delete next.bindings[this.newStartBindingId];\n next.shape.handles.start.bindingId = void 0;\n }\n }\n }\n if (!modKey2) {\n const rayOrigin = src_default.add(oppositeHandle.point, next.shape.point);\n const rayPoint = src_default.add(draggingHandle.point, next.shape.point);\n const rayDirection = src_default.uni(src_default.sub(rayPoint, rayOrigin));\n const startPoint = src_default.add(next.shape.point, next.shape.handles.start.point);\n const endPoint = src_default.add(next.shape.point, next.shape.handles.end.point);\n const targets = this.bindableShapeIds.map((id3) => this.app.getShapeById(id3)).sort((a5, b5) => b5.nonce - a5.nonce).filter((shape2) => {\n return ![startPoint, endPoint].every((point) => shape2.hitTestPoint(point));\n });\n for (const target of targets) {\n draggedBinding = findBindingPoint(\n shape.props,\n target,\n this.handleId,\n this.draggedBindingId,\n rayPoint,\n rayOrigin,\n rayDirection,\n altKey\n );\n if (draggedBinding)\n break;\n }\n }\n if (draggedBinding) {\n next.bindings[this.draggedBindingId] = draggedBinding;\n next.shape = deepMerge(next.shape, {\n handles: {\n [this.handleId]: {\n bindingId: this.draggedBindingId\n }\n }\n });\n } else {\n const currentBindingId = shape.props.handles[this.handleId].bindingId;\n if (currentBindingId !== void 0) {\n delete next.bindings[currentBindingId];\n next.shape = deepMerge(next.shape, {\n handles: {\n [this.handleId]: {\n bindingId: void 0\n }\n }\n });\n }\n }\n updated = this.currentShape.getHandlesChange(next.shape, next.shape.handles);\n transaction(() => {\n var _a3;\n if (updated) {\n this.currentShape.update(updated);\n this.app.currentPage.updateBindings(next.bindings);\n const bindingShapes = Object.values((_a3 = updated.handles) != null ? _a3 : {}).map((handle) => handle.bindingId).map((id3) => this.app.currentPage.bindings[id3]).filter(Boolean).flatMap((binding) => [binding.toId, binding.fromId].filter(Boolean));\n this.app.setBindingShapes(bindingShapes);\n }\n });\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n if (this.currentShape) {\n this.app.setSelectedShapes([this.currentShape]);\n }\n this.app.transition(\"select\");\n this.app.persist();\n });\n __publicField(this, \"onExit\", () => {\n this.app.clearBindingShape();\n this.app.history.resume();\n this.app.persist();\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.deleteShapes([this.currentShape]);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(TLBaseLineBindingState, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/states\/CreatingState.tsx\nvar CreatingState4 = class extends TLBaseLineBindingState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", () => {\n var _a3;\n this.app.history.pause();\n this.newStartBindingId = uniqueId();\n this.draggedBindingId = uniqueId();\n const page = this.app.currentPage;\n this.bindableShapeIds = page.getBindableShapes();\n const { Shape: Shape5 } = this.tool;\n const { originPoint } = this.app.inputs;\n const shape = new Shape5(__spreadProps(__spreadValues({}, Shape5.defaultProps), {\n id: uniqueId(),\n type: Shape5.id,\n parentId: this.app.currentPage.id,\n point: this.app.settings.snapToGrid ? src_default.snap(originPoint, GRID_SIZE) : originPoint,\n fill: this.app.settings.color,\n stroke: this.app.settings.color,\n scaleLevel: this.app.settings.scaleLevel\n }));\n this.initialShape = toJS(shape.props);\n this.currentShape = shape;\n this.app.currentPage.addShapes(shape);\n this.app.setSelectedShapes([shape]);\n this.startBindingShapeId = (_a3 = this.bindableShapeIds.map((id3) => this.app.getShapeById(id3)).filter((s4) => PointUtils.pointInBounds(originPoint, s4.bounds))[0]) == null ? void 0 : _a3.id;\n if (this.startBindingShapeId) {\n this.bindableShapeIds.splice(this.bindableShapeIds.indexOf(this.startBindingShapeId), 1);\n this.app.setBindingShapes([this.startBindingShapeId]);\n }\n });\n }\n};\n__publicField(CreatingState4, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/states\/IdleState.tsx\nvar IdleState5 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"pointing\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n __publicField(this, \"onPointerEnter\", (info) => {\n if (info.order)\n return;\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.app.setHoveredShape(info.shape.id);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n if (!(info.handle === \"background\" || info.handle === \"center\")) {\n this.tool.transition(\"hoveringSelectionHandle\", info);\n }\n break;\n }\n }\n });\n __publicField(this, \"onPointerLeave\", (info) => {\n if (info.order)\n return;\n if (info.type === \"shape\" \/* Shape *\/) {\n if (this.app.hoveredId) {\n this.app.setHoveredShape(void 0);\n }\n }\n });\n }\n};\n__publicField(IdleState5, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/states\/PointingState.tsx\nvar PointingState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"creating\");\n this.app.setSelectedShapes(this.app.currentPage.shapes);\n }\n });\n }\n};\n__publicField(PointingState3, \"id\", \"pointing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLLineTool\/TLLineTool.ts\nvar TLLineTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLLineTool, \"id\", \"line\");\n__publicField(TLLineTool, \"states\", [IdleState5, PointingState3, CreatingState4]);\n__publicField(TLLineTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLTextTool\/states\/CreatingState.tsx\nvar CreatingState5 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"creatingShape\");\n __publicField(this, \"aspectRatio\");\n __publicField(this, \"initialBounds\", {});\n __publicField(this, \"onEnter\", () => {\n const {\n currentPage,\n inputs: { originPoint }\n } = this.app;\n const { Shape: Shape5 } = this.tool;\n const shape = new Shape5({\n id: uniqueId(),\n type: Shape5.id,\n parentId: currentPage.id,\n point: [...originPoint],\n text: \"\",\n size: [16, 32],\n isSizeLocked: true,\n fill: this.app.settings.color,\n stroke: this.app.settings.color\n });\n this.creatingShape = shape;\n this.creatingShape.setScaleLevel(this.app.settings.scaleLevel);\n transaction(() => {\n this.app.currentPage.addShapes(shape);\n const point = this.app.settings.snapToGrid ? src_default.snap([...originPoint], GRID_SIZE) : originPoint;\n const { bounds } = shape;\n shape.update({\n point: src_default.sub(point, [bounds.width \/ 2, bounds.height \/ 2])\n });\n this.app.transition(\"select\");\n this.app.setSelectedShapes([shape]);\n this.app.currentState.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n shape: this.creatingShape,\n order: 0\n });\n });\n });\n }\n};\n__publicField(CreatingState5, \"id\", \"creating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLTextTool\/states\/IdleState.tsx\nvar IdleState6 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order || this.app.readOnly)\n return;\n this.tool.transition(\"creating\");\n });\n __publicField(this, \"onPinchStart\", (...args) => {\n var _a3, _b;\n this.app.transition(\"select\", { returnTo: this.app.currentState.id });\n (_b = (_a3 = this.app._events).onPinchStart) == null ? void 0 : _b.call(_a3, ...args);\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState6, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLTextTool\/TLTextTool.ts\nvar TLTextTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n }\n};\n__publicField(TLTextTool, \"id\", \"box\");\n__publicField(TLTextTool, \"states\", [IdleState6, CreatingState5]);\n__publicField(TLTextTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLBush.ts\nvar import_rbush = __toESM(require_rbush_min());\nvar TLBush = class extends import_rbush.default {\n constructor() {\n super(...arguments);\n __publicField(this, \"toBBox\", (shape) => shape.rotatedBounds);\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/BrushingState.ts\nvar BrushingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"initialSelectedIds\", []);\n __publicField(this, \"initialSelectedShapes\", []);\n __publicField(this, \"tree\", new TLBush());\n __publicField(this, \"onEnter\", () => {\n const { selectedShapes, currentPage, selectedIds } = this.app;\n this.initialSelectedIds = Array.from(selectedIds.values());\n this.initialSelectedShapes = Array.from(selectedShapes.values());\n this.tree.load(currentPage.shapes);\n });\n __publicField(this, \"onExit\", () => {\n this.initialSelectedIds = [];\n this.tree.clear();\n this.app.setBrush(void 0);\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { shiftKey, ctrlKey, originPoint, currentPoint }\n } = this.app;\n const brushBounds = BoundsUtils.getBoundsFromPoints([currentPoint, originPoint], 0);\n this.app.setBrush(brushBounds);\n const hits = dedupe(\n this.tree.search(brushBounds).filter(\n (shape) => ctrlKey ? BoundsUtils.boundsContain(brushBounds, shape.rotatedBounds) : shape.hitTestBounds(brushBounds)\n ).filter((shape) => shape.type !== \"group\").map((shape) => {\n var _a3;\n return (_a3 = this.app.getParentGroup(shape)) != null ? _a3 : shape;\n })\n );\n if (shiftKey) {\n if (hits.every((hit) => this.initialSelectedShapes.includes(hit))) {\n this.app.setSelectedShapes(this.initialSelectedShapes.filter((hit) => !hits.includes(hit)));\n } else {\n this.app.setSelectedShapes(dedupe([...this.initialSelectedShapes, ...hits]));\n }\n } else {\n this.app.setSelectedShapes(hits);\n }\n this.app.viewport.panToPointWhenNearBounds(currentPoint);\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.setBrush(void 0);\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"handleModifierKey\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.setBrush(void 0);\n this.app.setSelectedShapes(this.initialSelectedIds);\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n};\n__publicField(BrushingState, \"id\", \"brushing\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/ContextMenuState.ts\nvar ContextMenuState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n var _a3;\n const {\n selectedIds,\n inputs: { shiftKey }\n } = this.app;\n if (info.type === \"shape\" \/* Shape *\/ && !selectedIds.has(info.shape.id)) {\n const shape = (_a3 = this.app.getParentGroup(info.shape)) != null ? _a3 : info.shape;\n if (shiftKey) {\n this.app.setSelectedShapes([...Array.from(selectedIds.values()), shape.id]);\n return;\n }\n this.app.setSelectedShapes([shape]);\n }\n });\n __publicField(this, \"onPointerDown\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(ContextMenuState, \"id\", \"contextMenu\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/IdleState.ts\nvar IdleState7 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n if (info.fromId === \"pinching\" && this.parent.returnTo) {\n this.app.transition(this.parent.returnTo);\n }\n });\n __publicField(this, \"onExit\", () => {\n });\n __publicField(this, \"onPointerEnter\", (info) => {\n if (info.order)\n return;\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.app.setHoveredShape(info.shape.id);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n if (!(info.handle === \"background\" || info.handle === \"center\")) {\n this.tool.transition(\"hoveringSelectionHandle\", info);\n }\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n this.app.setHoveredShape(void 0);\n break;\n }\n }\n });\n __publicField(this, \"onPointerDown\", (info, event) => {\n const {\n selectedShapes,\n inputs: { ctrlKey }\n } = this.app;\n if (event.button === 2) {\n this.tool.transition(\"contextMenu\", info);\n return;\n }\n if (ctrlKey) {\n this.tool.transition(\"pointingCanvas\");\n return;\n }\n switch (info.type) {\n case \"selection\" \/* Selection *\/: {\n switch (info.handle) {\n case \"center\": {\n break;\n }\n case \"background\": {\n this.tool.transition(\"pointingBoundsBackground\");\n break;\n }\n case \"rotate\": {\n this.tool.transition(\"pointingRotateHandle\");\n break;\n }\n default: {\n this.tool.transition(\"pointingResizeHandle\", info);\n }\n }\n break;\n }\n case \"shape\" \/* Shape *\/: {\n if (selectedShapes.has(info.shape)) {\n this.tool.transition(\"pointingSelectedShape\", info);\n } else {\n const { selectionBounds, inputs } = this.app;\n if (selectionBounds && PointUtils.pointInBounds(inputs.currentPoint, selectionBounds)) {\n this.tool.transition(\"pointingShapeBehindBounds\", info);\n } else {\n this.tool.transition(\"pointingShape\", info);\n }\n }\n break;\n }\n case \"handle\" \/* Handle *\/: {\n this.tool.transition(\"pointingHandle\", info);\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n this.tool.transition(\"pointingCanvas\");\n break;\n }\n case \"minimap\" \/* Minimap *\/: {\n this.tool.transition(\"pointingMinimap\", __spreadValues(__spreadValues({}, event), info));\n break;\n }\n }\n });\n __publicField(this, \"onPointerLeave\", (info) => {\n if (info.order)\n return;\n if (info.type === \"shape\" \/* Shape *\/) {\n if (this.app.hoveredId) {\n this.app.setHoveredShape(void 0);\n }\n }\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onDoubleClick\", (info) => {\n if (info.order || this.app.selectedShapesArray.length !== 1 || this.app.readOnly)\n return;\n const selectedShape = this.app.selectedShapesArray[0];\n if (!selectedShape.canEdit || selectedShape.props.isLocked)\n return;\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.tool.transition(\"editingShape\", info);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n if (this.app.selectedShapesArray.length === 1) {\n this.tool.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n target: selectedShape\n });\n }\n break;\n }\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n const { selectedShapesArray } = this.app;\n switch (e2.key) {\n case \"Enter\": {\n if (selectedShapesArray.length === 1 && selectedShapesArray[0].canEdit && !this.app.readOnly) {\n this.tool.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n shape: selectedShapesArray[0],\n order: 0\n });\n }\n break;\n }\n case \"Escape\": {\n if (selectedShapesArray.length) {\n this.app.setSelectedShapes([]);\n }\n break;\n }\n }\n });\n }\n};\n__publicField(IdleState7, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingShapeState.ts\nvar PointingShapeState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n var _a3;\n const {\n selectedIds,\n inputs: { shiftKey }\n } = this.app;\n const shape = (_a3 = this.app.getParentGroup(info.shape)) != null ? _a3 : info.shape;\n if (shiftKey) {\n this.app.setSelectedShapes([...Array.from(selectedIds.values()), shape.id]);\n } else {\n this.app.setSelectedShapes([shape]);\n }\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingShapeState, \"id\", \"pointingShape\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingBoundsBackgroundState.ts\nvar PointingBoundsBackgroundState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"move\" \/* Move *\/);\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.setSelectedShapes([]);\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingBoundsBackgroundState, \"id\", \"pointingBoundsBackground\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingCanvasState.ts\nvar PointingCanvasState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", () => {\n var _a3;\n const { shiftKey } = this.app.inputs;\n if (!shiftKey) {\n this.app.setSelectedShapes([]);\n this.app.setEditingShape();\n (_a3 = window.getSelection()) == null ? void 0 : _a3.removeAllRanges();\n }\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"brushing\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n if (!this.app.inputs.shiftKey) {\n this.app.setSelectedShapes([]);\n }\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onDoubleClick\", () => {\n this.app.notify(\"canvas-dbclick\", { point: this.app.inputs.originPoint });\n });\n }\n};\n__publicField(PointingCanvasState, \"id\", \"pointingCanvas\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/TranslatingState.ts\nvar TranslatingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"move\" \/* Move *\/);\n __publicField(this, \"isCloning\", false);\n __publicField(this, \"didClone\", false);\n __publicField(this, \"initialPoints\", {});\n __publicField(this, \"initialShapePoints\", {});\n __publicField(this, \"initialClonePoints\", {});\n __publicField(this, \"clones\", []);\n __publicField(this, \"onEnter\", () => {\n var _a3;\n this.app.history.pause();\n const { allSelectedShapesArray, inputs } = this.app;\n this.initialShapePoints = Object.fromEntries(\n allSelectedShapesArray.map(({ id: id3, props: { point } }) => [id3, point.slice()])\n );\n this.initialPoints = this.initialShapePoints;\n document.querySelectorAll(\"input,textarea\").forEach((el) => el.blur());\n (_a3 = document.getSelection()) == null ? void 0 : _a3.empty();\n if (inputs.altKey) {\n this.startCloning();\n } else {\n this.moveSelectedShapesToPointer();\n }\n });\n __publicField(this, \"onExit\", () => {\n this.app.history.resume();\n this.didClone = false;\n this.isCloning = false;\n this.clones = [];\n this.initialPoints = {};\n this.initialShapePoints = {};\n this.initialClonePoints = {};\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { currentPoint }\n } = this.app;\n this.moveSelectedShapesToPointer();\n this.app.viewport.panToPointWhenNearBounds(currentPoint);\n });\n __publicField(this, \"onPointerDown\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Alt\": {\n this.startCloning();\n break;\n }\n case \"Escape\": {\n this.app.allSelectedShapes.forEach((shape) => {\n shape.update({ point: this.initialPoints[shape.id] });\n });\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n __publicField(this, \"onKeyUp\", (info, e2) => {\n switch (e2.key) {\n case \"Alt\": {\n if (!this.isCloning)\n throw Error(\"Expected to be cloning.\");\n const { currentPage, allSelectedShapes } = this.app;\n currentPage.removeShapes(...allSelectedShapes);\n this.initialPoints = this.initialShapePoints;\n this.app.setSelectedShapes(Object.keys(this.initialPoints));\n this.moveSelectedShapesToPointer();\n this.isCloning = false;\n break;\n }\n }\n });\n }\n moveSelectedShapesToPointer() {\n const {\n inputs: { shiftKey, originPoint, currentPoint }\n } = this.app;\n const { initialPoints } = this;\n const delta = Vec.sub(currentPoint, originPoint);\n if (shiftKey) {\n if (Math.abs(delta[0]) < Math.abs(delta[1])) {\n delta[0] = 0;\n } else {\n delta[1] = 0;\n }\n }\n transaction(() => {\n this.app.allSelectedShapesArray.filter((s4) => !s4.props.isLocked).forEach((shape) => {\n let position = Vec.add(initialPoints[shape.id], delta);\n if (this.app.settings.snapToGrid) {\n position = Vec.snap(position, GRID_SIZE);\n }\n shape.update({ point: position });\n });\n });\n }\n startCloning() {\n if (!this.didClone) {\n this.clones = this.app.allSelectedShapesArray.map((shape) => {\n const ShapeClass = this.app.getShapeClass(shape.type);\n if (!ShapeClass)\n throw Error(\"Could not find that shape class.\");\n const clone = new ShapeClass(__spreadProps(__spreadValues({}, shape.serialized), {\n id: uniqueId(),\n type: shape.type,\n point: this.initialPoints[shape.id],\n rotation: shape.props.rotation,\n isLocked: false\n }));\n return clone;\n });\n this.initialClonePoints = Object.fromEntries(\n this.clones.map(({ id: id3, props: { point } }) => [id3, point.slice()])\n );\n this.didClone = true;\n }\n this.app.allSelectedShapes.forEach((shape) => {\n shape.update({ point: this.initialPoints[shape.id] });\n });\n this.initialPoints = this.initialClonePoints;\n this.app.currentPage.addShapes(...this.clones);\n this.app.setSelectedShapes(Object.keys(this.initialClonePoints));\n this.moveSelectedShapesToPointer();\n this.isCloning = true;\n }\n};\n__publicField(TranslatingState, \"id\", \"translating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingSelectedShapeState.ts\nvar PointingSelectedShapeState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"pointedSelectedShape\");\n __publicField(this, \"onEnter\", (info) => {\n this.pointedSelectedShape = info.shape;\n });\n __publicField(this, \"onExit\", () => {\n this.pointedSelectedShape = void 0;\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n const { shiftKey, currentPoint } = this.app.inputs;\n const { selectedShapesArray } = this.app;\n if (!this.pointedSelectedShape)\n throw Error(\"Expected a pointed selected shape\");\n if (shiftKey) {\n const { selectedIds } = this.app;\n const next = Array.from(selectedIds.values());\n next.splice(next.indexOf(this.pointedSelectedShape.id), 1);\n this.app.setSelectedShapes(next);\n } else if (selectedShapesArray.length === 1 && this.pointedSelectedShape.canEdit && !this.app.readOnly && !this.pointedSelectedShape.props.isLocked && this.pointedSelectedShape instanceof TLBoxShape && PointUtils.pointInBounds(currentPoint, this.pointedSelectedShape.bounds)) {\n this.tool.transition(\"editingShape\", {\n shape: this.pointedSelectedShape,\n order: 0,\n type: \"shape\" \/* Shape *\/\n });\n return;\n } else {\n this.app.setSelectedShapes([this.pointedSelectedShape.id]);\n }\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingSelectedShapeState, \"id\", \"pointingSelectedShape\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingResizeHandleState.ts\nvar PointingResizeHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"info\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.info = info;\n this.updateCursor();\n });\n __publicField(this, \"onExit\", () => {\n this.app.cursors.reset();\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"resizing\", this.info);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"hoveringSelectionHandle\", this.info);\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n updateCursor() {\n const rotation = this.app.selectionBounds.rotation;\n const cursor = CURSORS[this.info.handle];\n this.app.cursors.setCursor(cursor, rotation);\n }\n};\n__publicField(PointingResizeHandleState, \"id\", \"pointingResizeHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/ResizingState.ts\nvar _ResizingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"isSingle\", false);\n __publicField(this, \"handle\", \"bottom_right_corner\" \/* BottomRight *\/);\n __publicField(this, \"snapshots\", {});\n __publicField(this, \"initialCommonBounds\", {});\n __publicField(this, \"selectionRotation\", 0);\n __publicField(this, \"resizeType\", \"corner\");\n __publicField(this, \"onEnter\", (info) => {\n var _a3, _b;\n const { history, selectedShapesArray, selectionBounds } = this.app;\n if (!selectionBounds)\n throw Error(\"Expected a selected bounds.\");\n this.handle = info.handle;\n this.resizeType = info.handle === \"left_edge\" \/* Left *\/ || info.handle === \"right_edge\" \/* Right *\/ ? \"horizontal-edge\" : info.handle === \"top_edge\" \/* Top *\/ || info.handle === \"bottom_edge\" \/* Bottom *\/ ? \"vertical-edge\" : \"corner\";\n this.app.cursors.setCursor(\n _ResizingState.CURSORS[info.handle],\n (_a3 = this.app.selectionBounds) == null ? void 0 : _a3.rotation\n );\n history.pause();\n const initialInnerBounds = BoundsUtils.getBoundsFromPoints(\n selectedShapesArray.map((shape) => BoundsUtils.getBoundsCenter(shape.bounds))\n );\n this.isSingle = selectedShapesArray.length === 1;\n this.selectionRotation = this.isSingle ? (_b = selectedShapesArray[0].props.rotation) != null ? _b : 0 : 0;\n this.initialCommonBounds = __spreadValues({}, selectionBounds);\n this.snapshots = Object.fromEntries(\n selectedShapesArray.map((shape) => {\n const bounds = __spreadValues({}, shape.bounds);\n const [cx2, cy] = BoundsUtils.getBoundsCenter(bounds);\n return [\n shape.id,\n {\n props: shape.serialized,\n bounds,\n transformOrigin: [\n (cx2 - this.initialCommonBounds.minX) \/ this.initialCommonBounds.width,\n (cy - this.initialCommonBounds.minY) \/ this.initialCommonBounds.height\n ],\n innerTransformOrigin: [\n (cx2 - initialInnerBounds.minX) \/ initialInnerBounds.width,\n (cy - initialInnerBounds.minY) \/ initialInnerBounds.height\n ],\n isAspectRatioLocked: shape.props.isAspectRatioLocked || Boolean(!shape.canChangeAspectRatio || shape.props.rotation)\n }\n ];\n })\n );\n selectedShapesArray.forEach((shape) => {\n var _a4;\n (_a4 = shape.onResizeStart) == null ? void 0 : _a4.call(shape, { isSingle: this.isSingle });\n });\n });\n __publicField(this, \"onExit\", () => {\n this.app.cursors.reset();\n this.snapshots = {};\n this.initialCommonBounds = {};\n this.selectionRotation = 0;\n this.app.history.resume();\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n inputs: { altKey, shiftKey, ctrlKey, originPoint, currentPoint }\n } = this.app;\n const { handle, snapshots, initialCommonBounds } = this;\n let delta = Vec.sub(currentPoint, originPoint);\n if (altKey) {\n delta = Vec.mul(delta, 2);\n }\n const firstShape = getFirstFromSet(this.app.selectedShapes);\n const useAspectRatioLock = shiftKey || this.isSingle && (ctrlKey ? !(\"clipping\" in firstShape.props) : !firstShape.canChangeAspectRatio || firstShape.props.isAspectRatioLocked);\n let nextBounds = BoundsUtils.getTransformedBoundingBox(\n initialCommonBounds,\n handle,\n delta,\n this.selectionRotation,\n useAspectRatioLock\n );\n if (altKey) {\n nextBounds = __spreadValues(__spreadValues({}, nextBounds), BoundsUtils.centerBounds(nextBounds, BoundsUtils.getBoundsCenter(initialCommonBounds)));\n }\n const { scaleX, scaleY } = nextBounds;\n let resizeDimension;\n switch (this.resizeType) {\n case \"horizontal-edge\": {\n resizeDimension = Math.abs(scaleX);\n break;\n }\n case \"vertical-edge\": {\n resizeDimension = Math.abs(scaleY);\n break;\n }\n case \"corner\": {\n resizeDimension = Math.min(Math.abs(scaleX), Math.abs(scaleY));\n }\n }\n this.app.selectedShapes.forEach((shape) => {\n var _a3, _b;\n const {\n isAspectRatioLocked,\n props: initialShapeProps,\n bounds: initialShapeBounds,\n transformOrigin,\n innerTransformOrigin\n } = snapshots[shape.id];\n let relativeBounds = BoundsUtils.getRelativeTransformedBoundingBox(\n nextBounds,\n initialCommonBounds,\n initialShapeBounds,\n scaleX < 0,\n scaleY < 0\n );\n const canResizeAny = shape.canResize.some((r4) => r4);\n if (!(canResizeAny || shape.props.isSizeLocked) && this.isSingle) {\n return;\n }\n let scale = [scaleX, scaleY];\n let rotation = (_a3 = initialShapeProps.rotation) != null ? _a3 : 0;\n let center = BoundsUtils.getBoundsCenter(relativeBounds);\n if (!shape.canFlip) {\n scale = Vec.abs(scale);\n }\n if (!shape.canScale) {\n scale = (_b = initialShapeProps.scale) != null ? _b : [1, 1];\n }\n if (rotation && scaleX < 0 && scaleY >= 0 || scaleY < 0 && scaleX >= 0) {\n rotation *= -1;\n }\n if (this.app.settings.snapToGrid && !isAspectRatioLocked) {\n relativeBounds = BoundsUtils.snapBoundsToGrid(relativeBounds, GRID_SIZE);\n }\n shape.onResize(initialShapeProps, {\n center,\n rotation,\n scale,\n bounds: relativeBounds,\n type: handle,\n clip: ctrlKey,\n transformOrigin\n });\n });\n this.updateCursor(scaleX, scaleY);\n this.app.viewport.panToPointWhenNearBounds(currentPoint);\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.selectedShapes.forEach((shape) => {\n shape.update(__spreadValues({}, this.snapshots[shape.id].props));\n });\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n updateCursor(scaleX, scaleY) {\n var _a3, _b, _c, _d;\n const isFlippedX = scaleX < 0 && scaleY >= 0;\n const isFlippedY = scaleY < 0 && scaleX >= 0;\n switch (this.handle) {\n case \"top_left_corner\" \/* TopLeft *\/:\n case \"bottom_right_corner\" \/* BottomRight *\/: {\n if (isFlippedX || isFlippedY) {\n if (this.app.cursors.cursor === \"nwse-resize\" \/* NwseResize *\/) {\n this.app.cursors.setCursor(\"nesw-resize\" \/* NeswResize *\/, (_a3 = this.app.selectionBounds) == null ? void 0 : _a3.rotation);\n }\n } else {\n if (this.app.cursors.cursor === \"nesw-resize\" \/* NeswResize *\/) {\n this.app.cursors.setCursor(\"nwse-resize\" \/* NwseResize *\/, (_b = this.app.selectionBounds) == null ? void 0 : _b.rotation);\n }\n }\n break;\n }\n case \"top_right_corner\" \/* TopRight *\/:\n case \"bottom_left_corner\" \/* BottomLeft *\/: {\n if (isFlippedX || isFlippedY) {\n if (this.app.cursors.cursor === \"nesw-resize\" \/* NeswResize *\/) {\n this.app.cursors.setCursor(\"nwse-resize\" \/* NwseResize *\/, (_c = this.app.selectionBounds) == null ? void 0 : _c.rotation);\n }\n } else {\n if (this.app.cursors.cursor === \"nwse-resize\" \/* NwseResize *\/) {\n this.app.cursors.setCursor(\"nesw-resize\" \/* NeswResize *\/, (_d = this.app.selectionBounds) == null ? void 0 : _d.rotation);\n }\n }\n break;\n }\n }\n }\n};\nvar ResizingState = _ResizingState;\n__publicField(ResizingState, \"id\", \"resizing\");\n__publicField(ResizingState, \"CURSORS\", {\n [\"bottom_edge\" \/* Bottom *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"top_edge\" \/* Top *\/]: \"ns-resize\" \/* NsResize *\/,\n [\"left_edge\" \/* Left *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"right_edge\" \/* Right *\/]: \"ew-resize\" \/* EwResize *\/,\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"nesw-resize\" \/* NeswResize *\/,\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_left_corner\" \/* TopLeft *\/]: \"nwse-resize\" \/* NwseResize *\/,\n [\"top_right_corner\" \/* TopRight *\/]: \"nesw-resize\" \/* NeswResize *\/\n});\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingRotateHandleState.ts\nvar PointingRotateHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"rotate\" \/* Rotate *\/);\n __publicField(this, \"handle\", \"\");\n __publicField(this, \"onEnter\", (info) => {\n this.app.history.pause();\n this.handle = info.handle;\n this.updateCursor();\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"rotating\", { handle: this.handle });\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n updateCursor() {\n this.app.cursors.setCursor(CURSORS[this.handle], this.app.selectionRotation);\n }\n};\n__publicField(PointingRotateHandleState, \"id\", \"pointingRotateHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingShapeBehindBoundsState.ts\nvar PointingShapeBehindBoundsState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"info\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.info = info;\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5 && !this.app.readOnly) {\n this.tool.transition(\"translating\");\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n const {\n selectedIds,\n inputs: { shiftKey }\n } = this.app;\n if (shiftKey) {\n this.app.setSelectedShapes([...Array.from(selectedIds.values()), this.info.shape.id]);\n } else {\n this.app.setSelectedShapes([this.info.shape.id]);\n }\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingShapeBehindBoundsState, \"id\", \"pointingShapeBehindBounds\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/RotatingState.ts\nvar RotatingState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"rotate\" \/* Rotate *\/);\n __publicField(this, \"snapshot\", {});\n __publicField(this, \"initialCommonCenter\", [0, 0]);\n __publicField(this, \"initialCommonBounds\", {});\n __publicField(this, \"initialAngle\", 0);\n __publicField(this, \"initialSelectionRotation\", 0);\n __publicField(this, \"handle\", \"\");\n __publicField(this, \"onEnter\", (info) => {\n const { history, selectedShapesArray, selectionBounds } = this.app;\n if (!selectionBounds)\n throw Error(\"Expected selected bounds.\");\n history.pause();\n this.handle = info.handle;\n this.initialSelectionRotation = this.app.selectionRotation;\n this.initialCommonBounds = __spreadValues({}, selectionBounds);\n this.initialCommonCenter = BoundsUtils.getBoundsCenter(selectionBounds);\n this.initialAngle = Vec.angle(this.initialCommonCenter, this.app.inputs.currentPoint);\n this.snapshot = Object.fromEntries(\n selectedShapesArray.map((shape) => [\n shape.id,\n {\n point: [...shape.props.point],\n center: [...shape.center],\n rotation: shape.props.rotation,\n handles: \"handles\" in shape ? deepCopy(shape.handles) : void 0\n }\n ])\n );\n this.updateCursor();\n });\n __publicField(this, \"onExit\", () => {\n this.app.history.resume();\n this.snapshot = {};\n });\n __publicField(this, \"onPointerMove\", () => {\n const {\n selectedShapes,\n inputs: { shiftKey, currentPoint }\n } = this.app;\n const { snapshot, initialCommonCenter, initialAngle, initialSelectionRotation } = this;\n const currentAngle = Vec.angle(initialCommonCenter, currentPoint);\n let angleDelta = currentAngle - initialAngle;\n if (shiftKey) {\n angleDelta = GeomUtils.snapAngleToSegments(angleDelta, 24);\n }\n selectedShapes.forEach((shape) => {\n const initialShape = snapshot[shape.id];\n let initialAngle2 = 0;\n if (shiftKey) {\n const { rotation = 0 } = initialShape;\n initialAngle2 = GeomUtils.snapAngleToSegments(rotation, 24) - rotation;\n }\n const relativeCenter = Vec.sub(initialShape.center, initialShape.point);\n const rotatedCenter = Vec.rotWith(initialShape.center, initialCommonCenter, angleDelta);\n if (\"handles\" in shape) {\n const initialHandles = initialShape.handles;\n const handlePoints = initialHandles.map(\n (handle) => Vec.rotWith(handle.point, relativeCenter, angleDelta)\n );\n const topLeft = BoundsUtils.getCommonTopLeft(handlePoints);\n shape.update({\n point: Vec.add(topLeft, Vec.sub(rotatedCenter, relativeCenter)),\n handles: initialHandles.map((h4, i4) => __spreadProps(__spreadValues({}, h4), {\n point: Vec.sub(handlePoints[i4], topLeft)\n }))\n });\n } else {\n shape.update({\n point: Vec.sub(rotatedCenter, relativeCenter),\n rotation: GeomUtils.clampRadians(\n (initialShape.rotation || 0) + angleDelta + initialAngle2\n )\n });\n }\n });\n const selectionRotation = GeomUtils.clampRadians(initialSelectionRotation + angleDelta);\n this.app.setSelectionRotation(\n shiftKey ? GeomUtils.snapAngleToSegments(selectionRotation, 24) : selectionRotation\n );\n this.updateCursor();\n });\n __publicField(this, \"onPointerUp\", () => {\n this.app.history.resume();\n this.app.persist();\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.selectedShapes.forEach((shape) => {\n shape.update(this.snapshot[shape.id]);\n });\n this.tool.transition(\"idle\");\n break;\n }\n }\n });\n }\n updateCursor() {\n this.app.cursors.setCursor(CURSORS[this.handle], this.app.selectionRotation);\n }\n};\n__publicField(RotatingState, \"id\", \"rotating\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PinchingState.ts\nvar PinchingState2 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPinch\", (info, event) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n __publicField(this, \"onPinchEnd\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPointerDown\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PinchingState2, \"id\", \"pinching\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/TranslatingHandleState.ts\nvar TranslatingHandleState = class extends TLBaseLineBindingState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grabbing\" \/* Grabbing *\/);\n __publicField(this, \"onEnter\", (info) => {\n this.app.history.pause();\n this.newStartBindingId = uniqueId();\n this.draggedBindingId = uniqueId();\n const page = this.app.currentPage;\n this.bindableShapeIds = page.getBindableShapes();\n this.handleId = info.id;\n this.currentShape = info.shape;\n this.initialShape = toJS(this.currentShape.props);\n this.app.setSelectedShapes([this.currentShape]);\n });\n }\n};\n__publicField(TranslatingHandleState, \"id\", \"translatingHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingHandleState.ts\nvar PointingHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grabbing\" \/* Grabbing *\/);\n __publicField(this, \"info\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.info = info;\n });\n __publicField(this, \"onPointerMove\", () => {\n const { currentPoint, originPoint } = this.app.inputs;\n if (Vec.dist(currentPoint, originPoint) > 5) {\n this.tool.transition(\"translatingHandle\", this.info);\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(PointingHandleState, \"id\", \"pointingHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/HoveringSelectionHandleState.ts\nvar HoveringSelectionHandleState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"handle\");\n __publicField(this, \"onEnter\", (info) => {\n var _a3;\n this.app.cursors.setCursor(CURSORS[info.handle], (_a3 = this.app.selectionBounds.rotation) != null ? _a3 : 0);\n this.handle = info.handle;\n });\n __publicField(this, \"onExit\", () => {\n this.app.cursors.reset();\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onPointerDown\", (info) => {\n switch (info.type) {\n case \"selection\" \/* Selection *\/: {\n switch (info.handle) {\n case \"center\": {\n break;\n }\n case \"background\": {\n break;\n }\n case \"top_left_resize_corner\" \/* TopLeft *\/:\n case \"top_right_resize_corner\" \/* TopRight *\/:\n case \"bottom_right_resize_corner\" \/* BottomRight *\/:\n case \"bottom_left_resize_corner\" \/* BottomLeft *\/: {\n this.tool.transition(\"pointingRotateHandle\", info);\n break;\n }\n default: {\n this.tool.transition(\"pointingResizeHandle\", info);\n }\n }\n break;\n }\n }\n });\n __publicField(this, \"onPointerLeave\", () => {\n this.tool.transition(\"idle\");\n });\n __publicField(this, \"onDoubleClick\", (info) => {\n var _a3;\n if (info.order)\n return;\n const isSingle = this.app.selectedShapes.size === 1;\n if (!isSingle)\n return;\n const selectedShape = getFirstFromSet(this.app.selectedShapes);\n if (selectedShape.canEdit && !this.app.readOnly && !selectedShape.props.isLocked) {\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n this.tool.transition(\"editingShape\", info);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n (_a3 = selectedShape.onResetBounds) == null ? void 0 : _a3.call(selectedShape, {\n zoom: this.app.viewport.camera.zoom\n });\n if (this.app.selectedShapesArray.length === 1) {\n this.tool.transition(\"editingShape\", {\n type: \"shape\" \/* Shape *\/,\n target: selectedShape\n });\n }\n break;\n }\n }\n } else {\n const asset = selectedShape.props.assetId ? this.app.assets[selectedShape.props.assetId] : void 0;\n selectedShape.onResetBounds({ asset, zoom: this.app.viewport.camera.zoom });\n this.tool.transition(\"idle\");\n }\n });\n }\n};\n__publicField(HoveringSelectionHandleState, \"id\", \"hoveringSelectionHandle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/EditingShapeState.ts\nvar EditingShapeState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"editingShape\", {});\n __publicField(this, \"onEnter\", (info) => {\n this.editingShape = info.shape;\n this.app.setEditingShape(info.shape);\n });\n __publicField(this, \"onExit\", () => {\n var _a3;\n if (this.editingShape && \"text\" in this.editingShape.props) {\n const newText = this.editingShape.props[\"text\"].trim();\n if (newText === \"\" && this.editingShape.props.type === \"text\") {\n this.app.deleteShapes([this.editingShape]);\n } else {\n this.editingShape.onResetBounds();\n this.editingShape.update({\n text: newText\n });\n }\n }\n this.app.persist();\n this.app.setEditingShape();\n (_a3 = document.querySelector(\".tl-canvas\")) == null ? void 0 : _a3.focus();\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n __publicField(this, \"onPointerDown\", (info) => {\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n if (info.shape === this.editingShape)\n return;\n this.tool.transition(\"idle\", info);\n break;\n }\n case \"selection\" \/* Selection *\/: {\n break;\n }\n case \"handle\" \/* Handle *\/: {\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n if (!info.order) {\n this.tool.transition(\"idle\", info);\n }\n break;\n }\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n transaction(() => {\n e2.stopPropagation();\n this.app.setSelectedShapes([this.editingShape]);\n this.tool.transition(\"idle\");\n });\n break;\n }\n }\n });\n }\n};\n__publicField(EditingShapeState, \"id\", \"editingShape\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/states\/PointingMinimapState.ts\nvar PointingMinimapState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"minimapZoom\", 1);\n __publicField(this, \"minimapRect\", {\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0,\n width: 0,\n height: 0\n });\n __publicField(this, \"getCameraPoint\", (clientPoint) => {\n const minimapContainer = document.querySelector(\".tl-preview-minimap svg\");\n const minimapCamera = document.querySelector(\n \".tl-preview-minimap #minimap-camera-rect\"\n );\n if (minimapContainer && minimapCamera) {\n const rect = minimapContainer.getBoundingClientRect();\n this.minimapRect.height = rect.height;\n this.minimapRect.width = rect.width;\n this.minimapRect.minX = rect.left;\n this.minimapRect.minY = rect.top;\n this.minimapRect.maxX = rect.right;\n this.minimapRect.maxY = rect.bottom;\n this.minimapZoom = +minimapContainer.dataset.commonBoundWidth \/ this.minimapRect.width;\n const cursorInSvg = Vec.sub(clientPoint, [this.minimapRect.minX, this.minimapRect.minY]);\n const minimapCameraRect = minimapCamera.getBoundingClientRect();\n const minimapCameraCenter = [\n minimapCameraRect.left + minimapCameraRect.width \/ 2,\n minimapCameraRect.top + minimapCameraRect.height \/ 2\n ];\n const delta = Vec.mul(Vec.sub(cursorInSvg, minimapCameraCenter), this.minimapZoom);\n return Vec.sub(this.app.viewport.camera.point, delta);\n }\n return;\n });\n __publicField(this, \"onEnter\", (info) => {\n const newCameraPoint = this.getCameraPoint([info.clientX, info.clientY]);\n if (newCameraPoint) {\n this.app.viewport.update({\n point: newCameraPoint\n });\n } else {\n this.tool.transition(\"idle\");\n }\n });\n __publicField(this, \"onPointerMove\", (info, e2) => {\n if (\"clientX\" in e2) {\n const newCameraPoint = this.getCameraPoint([e2.clientX, e2.clientY]);\n if (newCameraPoint) {\n this.app.viewport.update({\n point: newCameraPoint\n });\n }\n }\n });\n __publicField(this, \"onPointerUp\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PointingMinimapState, \"id\", \"pointingMinimap\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLSelectTool\/TLSelectTool.tsx\nvar TLSelectTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"returnTo\", \"\");\n __publicField(this, \"onEnter\", (info) => {\n this.returnTo = info == null ? void 0 : info.returnTo;\n });\n }\n};\n__publicField(TLSelectTool, \"id\", \"select\");\n__publicField(TLSelectTool, \"initial\", \"idle\");\n__publicField(TLSelectTool, \"shortcut\", \"whiteboard\/select\");\n__publicField(TLSelectTool, \"states\", [\n IdleState7,\n BrushingState,\n ContextMenuState,\n PointingCanvasState,\n PointingShapeState,\n PointingShapeBehindBoundsState,\n PointingSelectedShapeState,\n PointingBoundsBackgroundState,\n HoveringSelectionHandleState,\n PointingResizeHandleState,\n PointingRotateHandleState,\n PointingMinimapState,\n PointingHandleState,\n TranslatingHandleState,\n TranslatingState,\n ResizingState,\n RotatingState,\n RotatingState,\n PinchingState2,\n EditingShapeState\n]);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/PanningState.tsx\nvar PanningState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grabbing\" \/* Grabbing *\/);\n __publicField(this, \"originalScreenPoint\", []);\n __publicField(this, \"originalCameraPoint\", []);\n __publicField(this, \"prevState\", \"idle\");\n __publicField(this, \"onEnter\", (info) => {\n this.prevState = info == null ? void 0 : info.prevState;\n this.originalScreenPoint = this.app.inputs.currentScreenPoint;\n this.originalCameraPoint = this.app.viewport.camera.point;\n });\n __publicField(this, \"onPointerMove\", (_2, e2) => {\n const delta = src_default.sub(this.originalScreenPoint, this.app.inputs.currentScreenPoint);\n this.app.viewport.update({\n point: src_default.sub(this.originalCameraPoint, src_default.div(delta, this.app.viewport.camera.zoom))\n });\n });\n __publicField(this, \"onPointerUp\", () => {\n var _a3;\n this.tool.transition((_a3 = this.prevState) != null ? _a3 : \"idle\");\n });\n }\n};\n__publicField(PanningState, \"id\", \"panning\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/IdleState.tsx\nvar IdleState8 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onEnter\", (info) => {\n if (this.parent.prevTool && info.exit) {\n this.app.setCurrentState(this.parent.prevTool);\n setTimeout(() => {\n this.app.cursors.reset();\n this.app.cursors.setCursor(this.parent.prevTool.cursor);\n });\n }\n });\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"panning\");\n });\n }\n};\n__publicField(IdleState8, \"id\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/IdleHoldState.tsx\nvar IdleHoldState = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (info.order)\n return;\n this.tool.transition(\"panning\", { prevState: \"idleHold\" });\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.tool.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(IdleHoldState, \"id\", \"idleHold\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/states\/PinchingState.ts\nvar PinchingState3 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"origin\", [0, 0]);\n __publicField(this, \"prevDelta\", [0, 0]);\n __publicField(this, \"onEnter\", (info) => {\n this.prevDelta = info.info.delta;\n this.origin = info.info.point;\n });\n __publicField(this, \"onPinch\", (info) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n __publicField(this, \"onPinchEnd\", () => {\n this.tool.transition(\"idle\");\n });\n }\n};\n__publicField(PinchingState3, \"id\", \"pinching\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/tools\/TLMoveTool\/TLMoveTool.ts\nvar TLMoveTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"grab\" \/* Grab *\/);\n __publicField(this, \"prevTool\", null);\n __publicField(this, \"onEnter\", (info) => {\n this.prevTool = info == null ? void 0 : info.prevTool;\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n switch (e2.key) {\n case \"Escape\": {\n this.app.transition(\"select\");\n break;\n }\n }\n });\n __publicField(this, \"onPinchStart\", (info, event) => {\n this.transition(\"pinching\", { info, event });\n });\n }\n};\n__publicField(TLMoveTool, \"id\", \"move\");\n__publicField(TLMoveTool, \"shortcut\", \"whiteboard\/pan\");\n__publicField(TLMoveTool, \"states\", [IdleState8, IdleHoldState, PanningState, PinchingState3]);\n__publicField(TLMoveTool, \"initial\", \"idle\");\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLPage\/TLPage.ts\nvar TLPage = class {\n constructor(app, props = {}) {\n __publicField(this, \"lastShapesNounces\", null);\n __publicField(this, \"app\");\n __publicField(this, \"id\");\n __publicField(this, \"name\");\n __publicField(this, \"shapes\", []);\n __publicField(this, \"bindings\", {});\n __publicField(this, \"nonce\", 0);\n __publicField(this, \"bringForward\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n shapesToMove.sort((a5, b5) => this.shapes.indexOf(b5) - this.shapes.indexOf(a5)).map((shape) => this.shapes.indexOf(shape)).forEach((index3) => {\n if (index3 === this.shapes.length - 1)\n return;\n const next = this.shapes[index3 + 1];\n if (shapesToMove.includes(next))\n return;\n const t2 = this.shapes[index3];\n this.shapes[index3] = this.shapes[index3 + 1];\n this.shapes[index3 + 1] = t2;\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"sendBackward\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n shapesToMove.sort((a5, b5) => this.shapes.indexOf(a5) - this.shapes.indexOf(b5)).map((shape) => this.shapes.indexOf(shape)).forEach((index3) => {\n if (index3 === 0)\n return;\n const next = this.shapes[index3 - 1];\n if (shapesToMove.includes(next))\n return;\n const t2 = this.shapes[index3];\n this.shapes[index3] = this.shapes[index3 - 1];\n this.shapes[index3 - 1] = t2;\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"bringToFront\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n this.shapes = this.shapes.filter((shape) => !shapesToMove.includes(shape)).concat(shapesToMove);\n this.app.persist();\n return this;\n });\n __publicField(this, \"sendToBack\", (shapes2) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n this.shapes = shapesToMove.concat(this.shapes.filter((shape) => !shapesToMove.includes(shape)));\n this.app.persist();\n return this;\n });\n __publicField(this, \"flip\", (shapes2, direction) => {\n const shapesToMove = this.parseShapesArg(shapes2);\n const commonBounds = BoundsUtils.getCommonBounds(shapesToMove.map((shape) => shape.bounds));\n shapesToMove.forEach((shape) => {\n var _a3;\n const relativeBounds = BoundsUtils.getRelativeTransformedBoundingBox(\n commonBounds,\n commonBounds,\n shape.bounds,\n direction === \"horizontal\",\n direction === \"vertical\"\n );\n if (shape.serialized) {\n shape.onResize(shape.serialized, {\n bounds: relativeBounds,\n center: BoundsUtils.getBoundsCenter(relativeBounds),\n rotation: (_a3 = shape.props.rotation) != null ? _a3 : 0 * -1,\n type: \"top_left_corner\" \/* TopLeft *\/,\n scale: shape.canFlip && shape.props.scale ? direction === \"horizontal\" ? [-shape.props.scale[0], 1] : [1, -shape.props.scale[1]] : [1, 1],\n clip: false,\n transformOrigin: [0.5, 0.5]\n });\n }\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"getShapeById\", (id3) => {\n const shape = this.shapes.find((shape2) => shape2.id === id3);\n return shape;\n });\n __publicField(this, \"cleanup\", (changedShapeIds) => {\n const bindingsToUpdate = getRelatedBindings(this.bindings, changedShapeIds);\n const visitedShapes = \/* @__PURE__ *\/ new Set();\n let shapeChanged = false;\n let bindingChanged = false;\n const newBindings = deepCopy(this.bindings);\n bindingsToUpdate.forEach((binding) => {\n var _a3;\n if (!this.bindings[binding.id]) {\n return;\n }\n const toShape = this.getShapeById(binding.toId);\n const fromShape = this.getShapeById(binding.fromId);\n if (!(toShape && fromShape)) {\n delete newBindings[binding.id];\n bindingChanged = true;\n return;\n }\n if (visitedShapes.has(fromShape.id)) {\n return;\n }\n const fromDelta = this.updateArrowBindings(fromShape);\n visitedShapes.add(fromShape.id);\n if (fromDelta) {\n const nextShape = __spreadValues(__spreadValues({}, fromShape.props), fromDelta);\n shapeChanged = true;\n (_a3 = this.getShapeById(nextShape.id)) == null ? void 0 : _a3.update(nextShape, false, (0, import_fast_deep_equal.default)(fromDelta == null ? void 0 : fromDelta.handles, fromShape == null ? void 0 : fromShape.props.handles));\n }\n });\n Object.keys(newBindings).forEach((id3) => {\n const binding = this.bindings[id3];\n const relatedShapes = this.shapes.filter(\n (shape) => shape.id === binding.fromId || shape.id === binding.toId\n );\n if (relatedShapes.length === 0) {\n delete newBindings[id3];\n bindingChanged = true;\n }\n });\n if (bindingChanged) {\n this.update({\n bindings: newBindings\n });\n }\n if (shapeChanged || bindingChanged) {\n this.app.persist(true);\n }\n });\n __publicField(this, \"updateArrowBindings\", (lineShape) => {\n var _a3, _b, _c;\n const result = {\n start: deepCopy(lineShape.props.handles.start),\n end: deepCopy(lineShape.props.handles.end)\n };\n let start = {\n isBound: false,\n handle: lineShape.props.handles.start,\n point: src_default.add(lineShape.props.handles.start.point, lineShape.props.point)\n };\n let end = {\n isBound: false,\n handle: lineShape.props.handles.end,\n point: src_default.add(lineShape.props.handles.end.point, lineShape.props.point)\n };\n if (lineShape.props.handles.start.bindingId) {\n const hasDecoration = ((_a3 = lineShape.props.decorations) == null ? void 0 : _a3.start) !== void 0;\n const handle = lineShape.props.handles.start;\n const binding = this.bindings[lineShape.props.handles.start.bindingId];\n const target = this.getShapeById(binding == null ? void 0 : binding.toId);\n if (target) {\n const bounds = target.getBounds();\n const expandedBounds = target.getExpandedBounds();\n const intersectBounds = BoundsUtils.expandBounds(\n bounds,\n hasDecoration ? binding.distance : 1\n );\n const { minX, minY, width, height } = expandedBounds;\n const anchorPoint = src_default.add(\n [minX, minY],\n src_default.mulV(\n [width, height],\n src_default.rotWith(binding.point, [0.5, 0.5], target.props.rotation || 0)\n )\n );\n start = {\n isBound: true,\n hasDecoration,\n binding,\n handle,\n point: anchorPoint,\n target,\n bounds,\n expandedBounds,\n intersectBounds,\n center: target.getCenter()\n };\n }\n }\n if (lineShape.props.handles.end.bindingId) {\n const hasDecoration = ((_b = lineShape.props.decorations) == null ? void 0 : _b.end) !== void 0;\n const handle = lineShape.props.handles.end;\n const binding = this.bindings[lineShape.props.handles.end.bindingId];\n const target = this.getShapeById(binding == null ? void 0 : binding.toId);\n if (target) {\n const bounds = target.getBounds();\n const expandedBounds = target.getExpandedBounds();\n const intersectBounds = hasDecoration ? BoundsUtils.expandBounds(bounds, binding.distance) : bounds;\n const { minX, minY, width, height } = expandedBounds;\n const anchorPoint = src_default.add(\n [minX, minY],\n src_default.mulV(\n [width, height],\n src_default.rotWith(binding.point, [0.5, 0.5], target.props.rotation || 0)\n )\n );\n end = {\n isBound: true,\n hasDecoration,\n binding,\n handle,\n point: anchorPoint,\n target,\n bounds,\n expandedBounds,\n intersectBounds,\n center: target.getCenter()\n };\n }\n }\n for (const ID of [\"end\", \"start\"]) {\n const A4 = ID === \"start\" ? start : end;\n const B3 = ID === \"start\" ? end : start;\n if (A4.isBound) {\n if (!A4.binding.distance) {\n result[ID].point = src_default.sub(A4.point, lineShape.props.point);\n } else {\n const direction = src_default.uni(src_default.sub(A4.point, B3.point));\n switch (A4.target.type) {\n default: {\n const hits = intersectRayBounds(\n B3.point,\n direction,\n A4.intersectBounds,\n A4.target.props.rotation\n ).filter((int) => int.didIntersect).map((int) => int.points[0]).sort((a5, b5) => src_default.dist(a5, B3.point) - src_default.dist(b5, B3.point));\n if (!hits[0])\n continue;\n let bHit = void 0;\n if (B3.isBound) {\n const bHits = intersectRayBounds(\n B3.point,\n direction,\n B3.intersectBounds,\n B3.target.props.rotation\n ).filter((int) => int.didIntersect).map((int) => int.points[0]).sort((a5, b5) => src_default.dist(a5, B3.point) - src_default.dist(b5, B3.point));\n bHit = bHits[0];\n }\n if (B3.isBound && (hits.length < 2 || bHit && hits[0] && Math.ceil(src_default.dist(hits[0], bHit)) < BINDING_DISTANCE * 2.5 || BoundsUtils.boundsContain(A4.expandedBounds, B3.expandedBounds) || BoundsUtils.boundsCollide(A4.expandedBounds, B3.expandedBounds))) {\n const shortArrowDirection = src_default.uni(src_default.sub(B3.point, A4.point));\n const shortArrowHits = intersectRayBounds(\n A4.point,\n shortArrowDirection,\n A4.bounds,\n A4.target.props.rotation\n ).filter((int) => int.didIntersect).map((int) => int.points[0]);\n if (!shortArrowHits[0])\n continue;\n result[ID].point = src_default.toFixed(src_default.sub(shortArrowHits[0], lineShape.props.point));\n result[ID === \"start\" ? \"end\" : \"start\"].point = src_default.toFixed(\n src_default.add(\n src_default.sub(shortArrowHits[0], lineShape.props.point),\n src_default.mul(\n shortArrowDirection,\n Math.min(\n src_default.dist(shortArrowHits[0], B3.point),\n BINDING_DISTANCE * 2.5 * (BoundsUtils.boundsContain(B3.bounds, A4.intersectBounds) ? -1 : 1)\n )\n )\n )\n );\n } else if (!B3.isBound && (hits[0] && src_default.dist(hits[0], B3.point) < BINDING_DISTANCE * 2.5 || PointUtils.pointInBounds(B3.point, A4.intersectBounds))) {\n const shortArrowDirection = src_default.uni(src_default.sub(A4.center, B3.point));\n return (_c = lineShape.getHandlesChange) == null ? void 0 : _c.call(lineShape, lineShape.props, {\n [ID]: __spreadProps(__spreadValues({}, lineShape.props.handles[ID]), {\n point: src_default.toFixed(\n src_default.add(\n src_default.sub(B3.point, lineShape.props.point),\n src_default.mul(shortArrowDirection, BINDING_DISTANCE * 2.5)\n )\n )\n })\n });\n } else if (hits[0]) {\n result[ID].point = src_default.toFixed(src_default.sub(hits[0], lineShape.props.point));\n }\n }\n }\n }\n }\n }\n return lineShape.getHandlesChange(lineShape.props, result);\n });\n const { id: id3, name, shapes: shapes2 = [], bindings = {}, nonce } = props;\n this.id = id3;\n this.name = name;\n this.bindings = Object.assign({}, bindings);\n this.app = app;\n this.nonce = nonce || 0;\n this.addShapes(...shapes2);\n makeObservable(this);\n autorun(() => {\n const newShapesNouncesMap = this.shapes.length > 0 ? Object.fromEntries(this.shapes.map((shape) => [shape.id, shape.nonce])) : null;\n if (this.lastShapesNounces && newShapesNouncesMap) {\n const lastShapesNounces = this.lastShapesNounces;\n const allIds = \/* @__PURE__ *\/ new Set([\n ...Object.keys(newShapesNouncesMap),\n ...Object.keys(lastShapesNounces)\n ]);\n const changedShapeIds = [...allIds].filter((s4) => {\n return lastShapesNounces[s4] !== newShapesNouncesMap[s4];\n });\n requestAnimationFrame(() => {\n this.cleanup(changedShapeIds);\n });\n }\n if (newShapesNouncesMap) {\n this.lastShapesNounces = newShapesNouncesMap;\n }\n });\n }\n get serialized() {\n return {\n id: this.id,\n name: this.name,\n shapes: this.shapes.map((shape) => shape.serialized).filter((s4) => !!s4).map((s4) => toJS(s4)),\n bindings: deepCopy(this.bindings),\n nonce: this.nonce\n };\n }\n get shapesById() {\n return Object.fromEntries(this.shapes.map((shape) => [shape.id, shape]));\n }\n update(props) {\n Object.assign(this, props);\n return this;\n }\n updateBindings(bindings) {\n Object.assign(this.bindings, bindings);\n return this;\n }\n updateShapesIndex(shapesIndex) {\n this.shapes.sort((a5, b5) => shapesIndex.indexOf(a5.id) - shapesIndex.indexOf(b5.id));\n return this;\n }\n addShapes(...shapes2) {\n if (shapes2.length === 0)\n return;\n const shapeInstances = \"getBounds\" in shapes2[0] ? shapes2 : shapes2.map((shape) => {\n const ShapeClass = this.app.getShapeClass(shape.type);\n return new ShapeClass(shape);\n });\n this.shapes.push(...shapeInstances);\n return shapeInstances;\n }\n parseShapesArg(shapes2) {\n if (typeof shapes2[0] === \"string\") {\n return this.shapes.filter((shape) => shapes2.includes(shape.id));\n }\n return shapes2;\n }\n removeShapes(...shapes2) {\n const shapeInstances = this.parseShapesArg(shapes2);\n this.shapes = this.shapes.filter((shape) => !shapeInstances.includes(shape));\n return shapeInstances;\n }\n getBindableShapes() {\n return this.shapes.filter((shape) => shape.canBind).sort((a5, b5) => b5.nonce - a5.nonce).map((s4) => s4.id);\n }\n};\n__decorateClass([\n observable\n], TLPage.prototype, \"id\", 2);\n__decorateClass([\n observable\n], TLPage.prototype, \"name\", 2);\n__decorateClass([\n observable\n], TLPage.prototype, \"shapes\", 2);\n__decorateClass([\n observable\n], TLPage.prototype, \"bindings\", 2);\n__decorateClass([\n computed\n], TLPage.prototype, \"serialized\", 1);\n__decorateClass([\n computed\n], TLPage.prototype, \"shapesById\", 1);\n__decorateClass([\n observable\n], TLPage.prototype, \"nonce\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"update\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"updateBindings\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"updateShapesIndex\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"addShapes\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"removeShapes\", 1);\n__decorateClass([\n action\n], TLPage.prototype, \"bringForward\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"sendBackward\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"bringToFront\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"sendToBack\", 2);\n__decorateClass([\n action\n], TLPage.prototype, \"cleanup\", 2);\nfunction getRelatedBindings(bindings, ids) {\n const changedShapeIds = new Set(ids);\n const bindingsArr = Object.values(bindings);\n const bindingsToUpdate = new Set(\n bindingsArr.filter(\n (binding) => changedShapeIds.has(binding.toId) || changedShapeIds.has(binding.fromId)\n )\n );\n let prevSize = bindingsToUpdate.size;\n let delta = -1;\n while (delta !== 0) {\n bindingsToUpdate.forEach((binding) => {\n const fromId = binding.fromId;\n for (const otherBinding of bindingsArr) {\n if (otherBinding.fromId === fromId) {\n bindingsToUpdate.add(otherBinding);\n }\n if (otherBinding.toId === fromId) {\n bindingsToUpdate.add(otherBinding);\n }\n }\n });\n delta = bindingsToUpdate.size - prevSize;\n prevSize = bindingsToUpdate.size;\n }\n return Array.from(bindingsToUpdate.values());\n}\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLInputs.ts\nvar TLInputs = class {\n constructor() {\n __publicField(this, \"shiftKey\", false);\n __publicField(this, \"ctrlKey\", false);\n __publicField(this, \"modKey\", false);\n __publicField(this, \"altKey\", false);\n __publicField(this, \"spaceKey\", false);\n __publicField(this, \"isPinching\", false);\n __publicField(this, \"currentScreenPoint\", [0, 0]);\n __publicField(this, \"currentPoint\", [0, 0]);\n __publicField(this, \"previousScreenPoint\", [0, 0]);\n __publicField(this, \"previousPoint\", [0, 0]);\n __publicField(this, \"originScreenPoint\", [0, 0]);\n __publicField(this, \"originPoint\", [0, 0]);\n __publicField(this, \"pointerIds\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"state\", \"idle\");\n __publicField(this, \"containerOffset\", [0, 0]);\n __publicField(this, \"onPointerDown\", (pagePoint, event) => {\n this.pointerIds.add(event.pointerId);\n this.updateModifiers(event);\n this.originScreenPoint = this.currentScreenPoint;\n this.originPoint = pagePoint;\n this.state = \"pointing\";\n });\n __publicField(this, \"onPointerMove\", (pagePoint, event) => {\n if (this.state === \"pinching\")\n return;\n if (this.state === \"panning\") {\n this.state = \"idle\";\n }\n this.updateModifiers(event);\n this.previousPoint = this.currentPoint;\n this.currentPoint = pagePoint;\n });\n __publicField(this, \"onPointerUp\", (pagePoint, event) => {\n this.pointerIds.clear();\n this.updateModifiers(event);\n this.state = \"idle\";\n });\n __publicField(this, \"onKeyDown\", (event) => {\n this.updateModifiers(event);\n switch (event.key) {\n case \" \": {\n this.spaceKey = true;\n break;\n }\n }\n });\n __publicField(this, \"onKeyUp\", (event) => {\n this.updateModifiers(event);\n switch (event.key) {\n case \" \": {\n this.spaceKey = false;\n break;\n }\n }\n });\n __publicField(this, \"onPinchStart\", (pagePoint, event) => {\n this.updateModifiers(event);\n this.state = \"pinching\";\n });\n __publicField(this, \"onPinch\", (pagePoint, event) => {\n if (this.state !== \"pinching\")\n return;\n this.updateModifiers(event);\n });\n __publicField(this, \"onPinchEnd\", (pagePoint, event) => {\n if (this.state !== \"pinching\")\n return;\n this.updateModifiers(event);\n this.state = \"idle\";\n });\n makeObservable(this);\n }\n updateContainerOffset(containerOffset) {\n Object.assign(this.containerOffset, containerOffset);\n }\n updateModifiers(event) {\n if (!event.isPrimary) {\n return;\n }\n if (\"clientX\" in event) {\n this.previousScreenPoint = this.currentScreenPoint;\n this.currentScreenPoint = src_default.sub([event.clientX, event.clientY], this.containerOffset);\n }\n if (\"shiftKey\" in event) {\n this.shiftKey = event.shiftKey;\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.modKey = modKey(event);\n }\n }\n};\n__decorateClass([\n observable\n], TLInputs.prototype, \"shiftKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"ctrlKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"modKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"altKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"spaceKey\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"isPinching\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"currentScreenPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"currentPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"previousScreenPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"previousPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"originScreenPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"originPoint\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"state\", 2);\n__decorateClass([\n observable\n], TLInputs.prototype, \"containerOffset\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"updateContainerOffset\", 1);\n__decorateClass([\n action\n], TLInputs.prototype, \"updateModifiers\", 1);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPointerDown\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPointerMove\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPointerUp\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onKeyDown\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onKeyUp\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPinchStart\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPinch\", 2);\n__decorateClass([\n action\n], TLInputs.prototype, \"onPinchEnd\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLViewport.ts\nvar ease = (x4) => {\n return -(Math.cos(Math.PI * x4) - 1) \/ 2;\n};\nvar elapsedProgress = (t2, duration = 100) => {\n return ease(Vec.clamp(t2 \/ duration, 0, 1));\n};\nvar _TLViewport = class {\n constructor() {\n __publicField(this, \"bounds\", {\n minX: 0,\n minY: 0,\n maxX: 1080,\n maxY: 720,\n width: 1080,\n height: 720\n });\n __publicField(this, \"camera\", {\n point: [0, 0],\n zoom: 1\n });\n __publicField(this, \"updateBounds\", (bounds) => {\n this.bounds = bounds;\n return this;\n });\n __publicField(this, \"panCamera\", (delta) => {\n return this.update({\n point: Vec.sub(this.camera.point, Vec.div(delta, this.camera.zoom))\n });\n });\n __publicField(this, \"panToPointWhenNearBounds\", (point) => {\n const threshold = Vec.div([_TLViewport.panThreshold, _TLViewport.panThreshold], this.camera.zoom);\n const deltaMax = Vec.sub([this.currentView.maxX, this.currentView.maxY], Vec.add(point, threshold));\n const deltaMin = Vec.sub([this.currentView.minX, this.currentView.minY], Vec.sub(point, threshold));\n const deltaX = deltaMax[0] < 0 ? deltaMax[0] : deltaMin[0] > 0 ? deltaMin[0] : 0;\n const deltaY = deltaMax[1] < 0 ? deltaMax[1] : deltaMin[1] > 0 ? deltaMin[1] : 0;\n this.panCamera(Vec.mul([deltaX, deltaY], -_TLViewport.panMultiplier * this.camera.zoom));\n });\n __publicField(this, \"update\", ({ point, zoom }) => {\n if (point !== void 0 && !isNaN(point[0]) && !isNaN(point[1]))\n this.camera.point = point;\n if (zoom !== void 0 && !isNaN(zoom))\n this.camera.zoom = Math.min(4, Math.max(0.1, zoom));\n return this;\n });\n __publicField(this, \"getPagePoint\", (point) => {\n const { camera, bounds } = this;\n return Vec.sub(Vec.div(Vec.sub(point, [bounds.minX, bounds.minY]), camera.zoom), camera.point);\n });\n __publicField(this, \"getScreenPoint\", (point) => {\n const { camera } = this;\n return Vec.mul(Vec.add(point, camera.point), camera.zoom);\n });\n __publicField(this, \"onZoom\", (point, zoom, animate = false) => {\n return this.pinchZoom(point, [0, 0], zoom, animate);\n });\n __publicField(this, \"pinchZoom\", (point, delta, zoom, animate = false) => {\n const { camera } = this;\n const nextPoint = Vec.sub(camera.point, Vec.div(delta, camera.zoom));\n zoom = Vec.clamp(zoom, _TLViewport.minZoom, _TLViewport.maxZoom);\n const p0 = Vec.div(point, camera.zoom);\n const p1 = Vec.div(point, zoom);\n const newPoint = Vec.toFixed(Vec.add(nextPoint, Vec.sub(p1, p0)));\n if (animate) {\n this.animateCamera({ point: newPoint, zoom });\n } else {\n this.update({ point: newPoint, zoom });\n }\n return this;\n });\n __publicField(this, \"setZoom\", (zoom, animate = false) => {\n const { bounds } = this;\n const center = [bounds.width \/ 2, bounds.height \/ 2];\n this.onZoom(center, zoom, animate);\n });\n __publicField(this, \"zoomIn\", () => {\n const { camera } = this;\n this.setZoom(camera.zoom \/ ZOOM_UPDATE_FACTOR, true);\n });\n __publicField(this, \"zoomOut\", () => {\n const { camera } = this;\n this.setZoom(camera.zoom * ZOOM_UPDATE_FACTOR, true);\n });\n __publicField(this, \"resetZoom\", () => {\n this.setZoom(1, true);\n return this;\n });\n __publicField(this, \"animateCamera\", ({ point, zoom }) => {\n return this.animateToViewport({\n minX: -point[0],\n minY: -point[1],\n maxX: this.bounds.width \/ zoom - point[0],\n maxY: this.bounds.height \/ zoom - point[1],\n width: this.bounds.width \/ zoom,\n height: this.bounds.height \/ zoom\n });\n });\n __publicField(this, \"animateToViewport\", (view) => {\n const startTime = performance.now();\n const oldView = __spreadValues({}, this.currentView);\n const step = () => {\n const elapsed = performance.now() - startTime;\n const progress = elapsedProgress(elapsed);\n const next = {\n minX: oldView.minX + (view.minX - oldView.minX) * progress,\n minY: oldView.minY + (view.minY - oldView.minY) * progress,\n maxX: oldView.maxX + (view.maxX - oldView.maxX) * progress,\n maxY: oldView.maxY + (view.maxY - oldView.maxY) * progress\n };\n const point = [-next.minX, -next.minY];\n const zoom = this.bounds.width \/ (next.maxX - next.minX);\n this.update({ point, zoom });\n if (progress < 1) {\n requestAnimationFrame(step);\n }\n };\n step();\n });\n __publicField(this, \"zoomToBounds\", ({ width, height, minX, minY }) => {\n const { bounds, camera } = this;\n let zoom = Math.min(\n (bounds.width - FIT_TO_SCREEN_PADDING) \/ width,\n (bounds.height - FIT_TO_SCREEN_PADDING) \/ height\n );\n zoom = Math.min(\n 1,\n Math.max(\n _TLViewport.minZoom,\n camera.zoom === zoom || camera.zoom < 1 ? Math.min(1, zoom) : zoom\n )\n );\n const delta = [\n (bounds.width - width * zoom) \/ 2 \/ zoom,\n (bounds.height - height * zoom) \/ 2 \/ zoom\n ];\n const point = Vec.add([-minX, -minY], delta);\n this.animateCamera({ point, zoom });\n });\n makeObservable(this);\n }\n get currentView() {\n const {\n bounds,\n camera: { point, zoom }\n } = this;\n const w4 = bounds.width \/ zoom;\n const h4 = bounds.height \/ zoom;\n return {\n minX: -point[0],\n minY: -point[1],\n maxX: w4 - point[0],\n maxY: h4 - point[1],\n width: w4,\n height: h4\n };\n }\n};\nvar TLViewport = _TLViewport;\n__publicField(TLViewport, \"minZoom\", 0.1);\n__publicField(TLViewport, \"maxZoom\", 4);\n__publicField(TLViewport, \"panMultiplier\", 0.05);\n__publicField(TLViewport, \"panThreshold\", 100);\n__decorateClass([\n observable\n], TLViewport.prototype, \"bounds\", 2);\n__decorateClass([\n observable\n], TLViewport.prototype, \"camera\", 2);\n__decorateClass([\n action\n], TLViewport.prototype, \"updateBounds\", 2);\n__decorateClass([\n action\n], TLViewport.prototype, \"update\", 2);\n__decorateClass([\n computed\n], TLViewport.prototype, \"currentView\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLApi\/TLApi.ts\nvar TLApi = class {\n constructor(app) {\n __publicField(this, \"app\");\n __publicField(this, \"editShape\", (shape) => {\n if (!(shape == null ? void 0 : shape.props.isLocked))\n this.app.transition(\"select\").selectedTool.transition(\"editingShape\", { shape });\n return this;\n });\n __publicField(this, \"hoverShape\", (shape) => {\n this.app.setHoveredShape(shape);\n return this;\n });\n __publicField(this, \"createShapes\", (...shapes2) => {\n this.app.createShapes(shapes2);\n return this;\n });\n __publicField(this, \"updateShapes\", (...shapes2) => {\n this.app.updateShapes(shapes2);\n return this;\n });\n __publicField(this, \"deleteShapes\", (...shapes2) => {\n this.app.deleteShapes(shapes2.length ? shapes2 : this.app.selectedShapesArray);\n return this;\n });\n __publicField(this, \"selectShapes\", (...shapes2) => {\n this.app.setSelectedShapes(shapes2);\n return this;\n });\n __publicField(this, \"deselectShapes\", (...shapes2) => {\n const ids = typeof shapes2[0] === \"string\" ? shapes2 : shapes2.map((shape) => shape.id);\n this.app.setSelectedShapes(\n this.app.selectedShapesArray.filter((shape) => !ids.includes(shape.id))\n );\n return this;\n });\n __publicField(this, \"flipHorizontal\", (...shapes2) => {\n this.app.flipHorizontal(shapes2);\n return this;\n });\n __publicField(this, \"flipVertical\", (...shapes2) => {\n this.app.flipVertical(shapes2);\n return this;\n });\n __publicField(this, \"selectAll\", () => {\n this.app.setSelectedShapes(\n this.app.currentPage.shapes.filter((s4) => !this.app.shapesInGroups().includes(s4))\n );\n return this;\n });\n __publicField(this, \"deselectAll\", () => {\n this.app.setSelectedShapes([]);\n return this;\n });\n __publicField(this, \"zoomIn\", () => {\n this.app.viewport.zoomIn();\n return this;\n });\n __publicField(this, \"zoomOut\", () => {\n this.app.viewport.zoomOut();\n return this;\n });\n __publicField(this, \"resetZoom\", () => {\n this.app.viewport.resetZoom();\n return this;\n });\n __publicField(this, \"zoomToFit\", () => {\n const { shapes: shapes2 } = this.app.currentPage;\n if (shapes2.length === 0)\n return this;\n const commonBounds = BoundsUtils.getCommonBounds(shapes2.map((shape) => shape.bounds));\n this.app.viewport.zoomToBounds(commonBounds);\n return this;\n });\n __publicField(this, \"cameraToCenter\", () => {\n const { shapes: shapes2 } = this.app.currentPage;\n if (shapes2.length === 0)\n return this;\n const commonBounds = BoundsUtils.getCommonBounds(shapes2.map((shape) => shape.bounds));\n this.app.viewport.update({\n point: src_default.add(src_default.neg(BoundsUtils.getBoundsCenter(commonBounds)), [\n this.app.viewport.currentView.width \/ 2,\n this.app.viewport.currentView.height \/ 2\n ])\n });\n return this;\n });\n __publicField(this, \"zoomToSelection\", () => {\n const { selectionBounds } = this.app;\n if (!selectionBounds)\n return this;\n this.app.viewport.zoomToBounds(selectionBounds);\n return this;\n });\n __publicField(this, \"resetZoomToCursor\", () => {\n const viewport = this.app.viewport;\n viewport.animateCamera({\n zoom: 1,\n point: src_default.sub(this.app.inputs.originScreenPoint, this.app.inputs.originPoint)\n });\n return this;\n });\n __publicField(this, \"toggleGrid\", () => {\n const { settings } = this.app;\n settings.update({ showGrid: !settings.showGrid });\n return this;\n });\n __publicField(this, \"toggleSnapToGrid\", () => {\n const { settings } = this.app;\n settings.update({ snapToGrid: !settings.snapToGrid });\n return this;\n });\n __publicField(this, \"togglePenMode\", () => {\n const { settings } = this.app;\n settings.update({ penMode: !settings.penMode });\n return this;\n });\n __publicField(this, \"setColor\", (color) => {\n const { settings } = this.app;\n settings.update({ color });\n this.app.selectedShapesArray.forEach((s4) => {\n if (!s4.props.isLocked)\n s4.update({ fill: color, stroke: color });\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"setScaleLevel\", (scaleLevel) => {\n const { settings } = this.app;\n settings.update({ scaleLevel });\n this.app.selectedShapes.forEach((shape) => {\n if (!shape.props.isLocked)\n shape.setScaleLevel(scaleLevel);\n });\n this.app.persist();\n return this;\n });\n __publicField(this, \"undo\", () => {\n this.app.undo();\n return this;\n });\n __publicField(this, \"redo\", () => {\n this.app.redo();\n return this;\n });\n __publicField(this, \"persist\", () => {\n this.app.persist();\n return this;\n });\n __publicField(this, \"createNewLineBinding\", (source, target) => {\n return this.app.createNewLineBinding(source, target);\n });\n __publicField(this, \"clone\", (direction) => {\n if (this.app.readOnly || this.app.selectedShapesArray.length !== 1 || !Object.values(Geometry).some((geometry) => geometry === this.app.selectedShapesArray[0].type))\n return;\n const shape = this.app.allSelectedShapesArray[0];\n const ShapeClass = this.app.getShapeClass(shape.type);\n const { minX, minY, maxX, maxY, width, height } = shape.bounds;\n const spacing = 100;\n let point = [0, 0];\n switch (direction) {\n case \"down\" \/* Down *\/: {\n point = [minX, maxY + spacing];\n break;\n }\n case \"up\" \/* Up *\/: {\n point = [minX, minY - spacing - height];\n break;\n }\n case \"left\" \/* Left *\/: {\n point = [minX - spacing - width, minY];\n break;\n }\n case \"right\" \/* Right *\/: {\n point = [maxX + spacing, minY];\n break;\n }\n }\n const clone = new ShapeClass(__spreadProps(__spreadValues({}, shape.serialized), {\n id: uniqueId(),\n nonce: Date.now(),\n refs: [],\n label: \"\",\n point\n }));\n this.app.history.pause();\n this.app.currentPage.addShapes(clone);\n this.app.createNewLineBinding(shape, clone);\n this.app.history.resume();\n this.app.persist();\n setTimeout(() => this.editShape(clone));\n });\n __publicField(this, \"cloneShapes\", ({\n shapes: shapes2,\n assets,\n bindings,\n point = [0, 0]\n }) => {\n const commonBounds = BoundsUtils.getCommonBounds(\n shapes2.filter((s4) => s4.type !== \"group\").map((shape) => {\n var _a3, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n return {\n minX: (_b = (_a3 = shape.point) == null ? void 0 : _a3[0]) != null ? _b : point[0],\n minY: (_d = (_c = shape.point) == null ? void 0 : _c[1]) != null ? _d : point[1],\n width: (_f = (_e2 = shape.size) == null ? void 0 : _e2[0]) != null ? _f : 4,\n height: (_h = (_g = shape.size) == null ? void 0 : _g[1]) != null ? _h : 4,\n maxX: ((_j = (_i = shape.point) == null ? void 0 : _i[0]) != null ? _j : point[0]) + ((_l = (_k = shape.size) == null ? void 0 : _k[0]) != null ? _l : 4),\n maxY: ((_n = (_m = shape.point) == null ? void 0 : _m[1]) != null ? _n : point[1]) + ((_p = (_o = shape.size) == null ? void 0 : _o[1]) != null ? _p : 4)\n };\n })\n );\n const clonedShapes = shapes2.map((shape) => {\n return __spreadProps(__spreadValues({}, shape), {\n id: uniqueId(),\n point: [\n point[0] + shape.point[0] - commonBounds.minX,\n point[1] + shape.point[1] - commonBounds.minY\n ]\n });\n });\n clonedShapes.forEach((s4) => {\n var _a3;\n if (s4.children && ((_a3 = s4.children) == null ? void 0 : _a3.length) > 0) {\n s4.children = s4.children.map((oldId) => {\n var _a4;\n return (_a4 = clonedShapes[shapes2.findIndex((s5) => s5.id === oldId)]) == null ? void 0 : _a4.id;\n }).filter(isNonNullable);\n }\n });\n const clonedBindings = [];\n clonedShapes.flatMap((s4) => {\n var _a3;\n return Object.values((_a3 = s4.handles) != null ? _a3 : {});\n }).forEach((handle) => {\n if (!handle.bindingId) {\n return;\n }\n const binding = bindings[handle.bindingId];\n if (binding) {\n const oldFromIdx = shapes2.findIndex((s4) => s4.id === binding.fromId);\n const oldToIdx = shapes2.findIndex((s4) => s4.id === binding.toId);\n if (binding && oldFromIdx !== -1 && oldToIdx !== -1) {\n const newBinding = __spreadProps(__spreadValues({}, binding), {\n id: uniqueId(),\n fromId: clonedShapes[oldFromIdx].id,\n toId: clonedShapes[oldToIdx].id\n });\n clonedBindings.push(newBinding);\n handle.bindingId = newBinding.id;\n } else {\n handle.bindingId = void 0;\n }\n } else {\n console.warn(\"binding not found\", handle.bindingId);\n }\n });\n const clonedAssets = assets.filter((asset) => {\n return clonedShapes.some((shape) => shape.assetId === asset.id);\n });\n return {\n shapes: clonedShapes,\n assets: clonedAssets,\n bindings: clonedBindings\n };\n });\n __publicField(this, \"getClonedShapesFromTldrString\", (text, point) => {\n const safeParseJson = (json) => {\n try {\n return JSON.parse(json);\n } catch (e2) {\n return null;\n }\n };\n const getWhiteboardsTldrFromText = (text2) => {\n var _a3;\n const innerText = (_a3 = text2.match(\/<whiteboard-tldr>(.*)<\\\/whiteboard-tldr>\/)) == null ? void 0 : _a3[1];\n if (innerText) {\n return safeParseJson(innerText);\n }\n };\n try {\n const data = getWhiteboardsTldrFromText(text);\n if (!data)\n return null;\n const { shapes: shapes2, bindings, assets } = data;\n return this.cloneShapes({\n shapes: shapes2,\n bindings,\n assets,\n point\n });\n } catch (err) {\n console.log(err);\n }\n return null;\n });\n __publicField(this, \"cloneShapesIntoCurrentPage\", (opts) => {\n const data = this.cloneShapes(opts);\n if (data) {\n this.addClonedShapes(data);\n }\n return this;\n });\n __publicField(this, \"addClonedShapes\", (opts) => {\n const { shapes: shapes2, assets, bindings } = opts;\n if (assets.length > 0) {\n this.app.createAssets(assets);\n }\n if (shapes2.length > 0) {\n this.app.createShapes(shapes2);\n }\n this.app.currentPage.updateBindings(Object.fromEntries(bindings.map((b5) => [b5.id, b5])));\n this.app.selectedTool.transition(\"idle\");\n return this;\n });\n __publicField(this, \"addClonedShapesFromTldrString\", (text, point) => {\n const data = this.getClonedShapesFromTldrString(text, point);\n if (data) {\n this.addClonedShapes(data);\n }\n return this;\n });\n __publicField(this, \"doGroup\", (shapes2 = this.app.allSelectedShapesArray) => {\n if (this.app.readOnly)\n return;\n const selectedGroups = [\n ...shapes2.filter((s4) => s4.type === \"group\"),\n ...shapes2.map((s4) => this.app.getParentGroup(s4))\n ].filter(isNonNullable);\n this.app.currentPage.removeShapes(...selectedGroups);\n const selectedShapes = shapes2.filter((s4) => s4.type !== \"group\");\n if (selectedShapes.length > 1) {\n const ShapeGroup = this.app.getShapeClass(\"group\");\n const group = new ShapeGroup({\n id: uniqueId(),\n type: ShapeGroup.id,\n parentId: this.app.currentPage.id,\n children: selectedShapes.map((s4) => s4.id)\n });\n this.app.currentPage.addShapes(group);\n this.app.setSelectedShapes([group]);\n this.app.bringForward(selectedShapes);\n }\n this.app.persist();\n });\n __publicField(this, \"unGroup\", (shapes2 = this.app.allSelectedShapesArray) => {\n if (this.app.readOnly)\n return;\n const selectedGroups = [\n ...shapes2.filter((s4) => s4.type === \"group\"),\n ...shapes2.map((s4) => this.app.getParentGroup(s4))\n ].filter(isNonNullable);\n const shapesInGroups = this.app.shapesInGroups(selectedGroups);\n if (selectedGroups.length > 0) {\n this.app.currentPage.removeShapes(...selectedGroups);\n this.app.persist();\n this.app.setSelectedShapes(shapesInGroups);\n }\n });\n __publicField(this, \"convertShapes\", (type, shapes2 = this.app.allSelectedShapesArray) => {\n const ShapeClass = this.app.getShapeClass(type);\n this.app.currentPage.removeShapes(...shapes2);\n const clones = shapes2.map((s4) => {\n return new ShapeClass(__spreadProps(__spreadValues({}, s4.serialized), {\n type,\n nonce: Date.now()\n }));\n });\n this.app.currentPage.addShapes(...clones);\n this.app.persist();\n this.app.setSelectedShapes(clones);\n });\n __publicField(this, \"setCollapsed\", (collapsed, shapes2 = this.app.allSelectedShapesArray) => {\n shapes2.forEach((shape) => {\n if (shape.props.type === \"logseq-portal\")\n shape.setCollapsed(collapsed);\n });\n this.app.persist();\n });\n this.app = app;\n }\n};\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLCursors.ts\nvar TLCursors = class {\n constructor() {\n __publicField(this, \"cursor\", \"default\" \/* Default *\/);\n __publicField(this, \"rotation\", 0);\n __publicField(this, \"reset\", () => {\n this.cursor = \"default\" \/* Default *\/;\n });\n __publicField(this, \"setCursor\", (cursor, rotation = 0) => {\n if (cursor === this.cursor && rotation === this.rotation)\n return;\n this.cursor = cursor;\n this.rotation = rotation;\n });\n __publicField(this, \"setRotation\", (rotation) => {\n if (rotation === this.rotation)\n return;\n this.rotation = rotation;\n });\n makeObservable(this);\n }\n};\n__decorateClass([\n observable\n], TLCursors.prototype, \"cursor\", 2);\n__decorateClass([\n observable\n], TLCursors.prototype, \"rotation\", 2);\n__decorateClass([\n action\n], TLCursors.prototype, \"reset\", 2);\n__decorateClass([\n action\n], TLCursors.prototype, \"setCursor\", 2);\n__decorateClass([\n action\n], TLCursors.prototype, \"setRotation\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLHistory.ts\nvar TLHistory = class {\n constructor(app) {\n __publicField(this, \"app\");\n __publicField(this, \"stack\", []);\n __publicField(this, \"isPaused\", true);\n __publicField(this, \"pause\", () => {\n if (this.isPaused)\n return;\n this.isPaused = true;\n });\n __publicField(this, \"resume\", () => {\n if (!this.isPaused)\n return;\n this.isPaused = false;\n });\n __publicField(this, \"persist\", (replace2 = false) => {\n if (this.isPaused || this.creating)\n return;\n this.app.notify(\"persist\", { replace: replace2 });\n });\n __publicField(this, \"undo\", () => {\n if (this.isPaused)\n return;\n if (this.app.selectedTool.currentState.id !== \"idle\")\n return;\n if (this.app.appUndo) {\n this.app.appUndo();\n }\n });\n __publicField(this, \"redo\", () => {\n if (this.isPaused)\n return;\n if (this.app.selectedTool.currentState.id !== \"idle\")\n return;\n if (this.app.appRedo) {\n this.app.appRedo();\n }\n });\n __publicField(this, \"instantiateShape\", (serializedShape) => {\n const ShapeClass = this.app.getShapeClass(serializedShape.type);\n return new ShapeClass(serializedShape);\n });\n __publicField(this, \"deserialize\", (snapshot) => {\n transaction(() => {\n var _a3;\n const { pages } = snapshot;\n const wasPaused = this.isPaused;\n this.pause();\n const newSelectedIds = [...this.app.selectedIds];\n try {\n const pagesMap = new Map(this.app.pages);\n const pagesToAdd = [];\n for (const serializedPage of pages) {\n const page = pagesMap.get(serializedPage.id);\n if (page !== void 0) {\n const shapesMap = new Map(page.shapes.map((shape) => [shape.props.id, shape]));\n const shapesToAdd = [];\n for (const serializedShape of serializedPage.shapes) {\n const shape = shapesMap.get(serializedShape.id);\n if (shape !== void 0) {\n if (shape.nonce !== serializedShape.nonce) {\n shape.update(serializedShape, true);\n shape.nonce = serializedShape.nonce;\n shape.setLastSerialized(serializedShape);\n }\n shapesMap.delete(serializedShape.id);\n } else {\n shapesToAdd.push(this.instantiateShape(serializedShape));\n }\n }\n if (shapesMap.size > 0 && !this.app.selectedTool.isInAny(\"creating\", \"editingShape\")) {\n page.removeShapes(...shapesMap.values());\n }\n if (shapesToAdd.length > 0)\n page.addShapes(...shapesToAdd);\n pagesMap.delete(serializedPage.id);\n page.updateBindings(serializedPage.bindings);\n page.nonce = (_a3 = serializedPage.nonce) != null ? _a3 : 0;\n } else {\n const { id: id3, name, shapes: shapes2, bindings, nonce } = serializedPage;\n pagesToAdd.push(\n new TLPage(this.app, {\n id: id3,\n name,\n nonce,\n bindings,\n shapes: shapes2.map((serializedShape) => {\n return this.instantiateShape(serializedShape);\n })\n })\n );\n }\n }\n if (pagesToAdd.length > 0)\n this.app.addPages(pagesToAdd);\n if (pagesMap.size > 0)\n this.app.removePages(Array.from(pagesMap.values()));\n this.app.setSelectedShapes(newSelectedIds).setErasingShapes([]);\n } catch (e2) {\n console.warn(e2);\n }\n if (!wasPaused)\n this.resume();\n });\n });\n this.app = app;\n makeObservable(this);\n }\n get creating() {\n return this.app.selectedTool.currentState.id === \"creating\";\n }\n};\n__decorateClass([\n observable\n], TLHistory.prototype, \"stack\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"persist\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"undo\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"redo\", 2);\n__decorateClass([\n action\n], TLHistory.prototype, \"deserialize\", 2);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLSettings.ts\nvar TLSettings = class {\n constructor() {\n __publicField(this, \"mode\", \"light\");\n __publicField(this, \"showGrid\", true);\n __publicField(this, \"snapToGrid\", true);\n __publicField(this, \"penMode\", false);\n __publicField(this, \"scaleLevel\", \"md\");\n __publicField(this, \"color\", \"\");\n makeObservable(this);\n }\n update(props) {\n Object.assign(this, props);\n }\n};\n__decorateClass([\n observable\n], TLSettings.prototype, \"mode\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"showGrid\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"snapToGrid\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"penMode\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"scaleLevel\", 2);\n__decorateClass([\n observable\n], TLSettings.prototype, \"color\", 2);\n__decorateClass([\n action\n], TLSettings.prototype, \"update\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/lib\/TLApp\/TLApp.ts\nvar TLApp = class extends TLRootState {\n constructor(serializedApp, Shapes, Tools, readOnly) {\n var _a3, _b;\n super();\n __publicField(this, \"uuid\", uniqueId());\n __publicField(this, \"readOnly\");\n __publicField(this, \"api\");\n __publicField(this, \"inputs\", new TLInputs());\n __publicField(this, \"cursors\", new TLCursors());\n __publicField(this, \"viewport\", new TLViewport());\n __publicField(this, \"settings\", new TLSettings());\n __publicField(this, \"Tools\", []);\n __publicField(this, \"history\", new TLHistory(this));\n __publicField(this, \"persist\", this.history.persist);\n __publicField(this, \"undo\", this.history.undo);\n __publicField(this, \"redo\", this.history.redo);\n __publicField(this, \"saving\", false);\n __publicField(this, \"saveState\", () => {\n if (this.history.isPaused)\n return;\n this.saving = true;\n requestAnimationFrame(() => {\n if (this.saving) {\n this.persist();\n this.saving = false;\n }\n });\n });\n __publicField(this, \"load\", () => {\n this.notify(\"load\", null);\n return this;\n });\n __publicField(this, \"save\", () => {\n this.notify(\"save\", null);\n return this;\n });\n __publicField(this, \"pages\", \/* @__PURE__ *\/ new Map([\n [\"page\", new TLPage(this, { id: \"page\", name: \"page\", shapes: [], bindings: {} })]\n ]));\n __publicField(this, \"getPageById\", (pageId) => {\n const page = this.pages.get(pageId);\n if (!page)\n throw Error(`Could not find a page named ${pageId}.`);\n return page;\n });\n __publicField(this, \"getShapeById\", (id3, pageId = this.currentPage.id) => {\n var _a3;\n const shape = (_a3 = this.getPageById(pageId)) == null ? void 0 : _a3.shapesById[id3];\n return shape;\n });\n __publicField(this, \"createShapes\", (shapes2) => {\n if (this.readOnly)\n return this;\n const newShapes = this.currentPage.addShapes(...shapes2);\n if (newShapes)\n this.notify(\"create-shapes\", newShapes);\n this.persist();\n return this;\n });\n __publicField(this, \"updateShapes\", (shapes2) => {\n if (this.readOnly)\n return this;\n shapes2.forEach((shape) => {\n const oldShape = this.getShapeById(shape.id);\n oldShape == null ? void 0 : oldShape.update(shape);\n if (shape.type !== (oldShape == null ? void 0 : oldShape.type)) {\n this.api.convertShapes(shape.type, [oldShape]);\n }\n });\n this.persist();\n return this;\n });\n __publicField(this, \"deleteShapes\", (shapes2) => {\n if (shapes2.length === 0 || this.readOnly)\n return this;\n const normalizedShapes = shapes2.map((shape) => typeof shape === \"string\" ? this.getShapeById(shape) : shape).filter(isNonNullable).filter((s4) => !s4.props.isLocked);\n const shapesInGroups = this.shapesInGroups(normalizedShapes);\n normalizedShapes.forEach((shape) => {\n if (this.getParentGroup(shape)) {\n shapesInGroups.push(shape);\n }\n });\n let ids = new Set([...normalizedShapes, ...shapesInGroups].map((s4) => s4.id));\n shapesInGroups.forEach((shape) => {\n var _a3;\n const parentGroup = this.getParentGroup(shape);\n if (parentGroup) {\n const newChildren = (_a3 = parentGroup.props.children) == null ? void 0 : _a3.filter(\n (id3) => id3 !== shape.id\n );\n if (!newChildren || (newChildren == null ? void 0 : newChildren.length) <= 1) {\n ids.add(parentGroup.id);\n } else {\n parentGroup.update({ children: newChildren });\n }\n }\n });\n const deleteBinding = (shapeA, shapeB) => {\n var _a3;\n if ([...ids].includes(shapeA) && ((_a3 = this.getShapeById(shapeB)) == null ? void 0 : _a3.type) === \"line\")\n ids.add(shapeB);\n };\n this.currentPage.shapes.filter((s4) => !s4.props.isLocked).flatMap((s4) => {\n var _a3;\n return Object.values((_a3 = s4.props.handles) != null ? _a3 : {});\n }).flatMap((h4) => h4.bindingId).filter(isNonNullable).map((binding) => {\n var _a3, _b;\n const toId = (_a3 = this.currentPage.bindings[binding]) == null ? void 0 : _a3.toId;\n const fromId = (_b = this.currentPage.bindings[binding]) == null ? void 0 : _b.fromId;\n if (toId && fromId) {\n deleteBinding(toId, fromId);\n deleteBinding(fromId, toId);\n }\n });\n const allShapesToDelete = [...ids].map((id3) => this.getShapeById(id3));\n this.setSelectedShapes(this.selectedShapesArray.filter((shape) => !ids.has(shape.id)));\n const removedShapes = this.currentPage.removeShapes(...allShapesToDelete);\n if (removedShapes)\n this.notify(\"delete-shapes\", removedShapes);\n this.persist();\n return this;\n });\n __publicField(this, \"bringForward\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.bringForward(shapes2);\n return this;\n });\n __publicField(this, \"sendBackward\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.sendBackward(shapes2);\n return this;\n });\n __publicField(this, \"sendToBack\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.sendToBack(shapes2);\n return this;\n });\n __publicField(this, \"bringToFront\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length > 0 && !this.readOnly)\n this.currentPage.bringToFront(shapes2);\n return this;\n });\n __publicField(this, \"flipHorizontal\", (shapes2 = this.selectedShapesArray) => {\n this.currentPage.flip(shapes2, \"horizontal\");\n return this;\n });\n __publicField(this, \"flipVertical\", (shapes2 = this.selectedShapesArray) => {\n this.currentPage.flip(shapes2, \"vertical\");\n return this;\n });\n __publicField(this, \"align\", (type, shapes2 = this.selectedShapesArray) => {\n if (shapes2.length < 2 || this.readOnly)\n return this;\n const boundsForShapes = shapes2.map((shape) => {\n const bounds = shape.getBounds();\n return {\n id: shape.id,\n point: [bounds.minX, bounds.minY],\n bounds\n };\n });\n const commonBounds = BoundsUtils.getCommonBounds(boundsForShapes.map(({ bounds }) => bounds));\n const midX = commonBounds.minX + commonBounds.width \/ 2;\n const midY = commonBounds.minY + commonBounds.height \/ 2;\n const deltaMap = Object.fromEntries(\n boundsForShapes.map(({ id: id3, point, bounds }) => {\n return [\n id3,\n {\n prev: point,\n next: {\n [\"top\" \/* Top *\/]: [point[0], commonBounds.minY],\n [\"centerVertical\" \/* CenterVertical *\/]: [point[0], midY - bounds.height \/ 2],\n [\"bottom\" \/* Bottom *\/]: [point[0], commonBounds.maxY - bounds.height],\n [\"left\" \/* Left *\/]: [commonBounds.minX, point[1]],\n [\"centerHorizontal\" \/* CenterHorizontal *\/]: [midX - bounds.width \/ 2, point[1]],\n [\"right\" \/* Right *\/]: [commonBounds.maxX - bounds.width, point[1]]\n }[type]\n }\n ];\n })\n );\n shapes2.forEach((shape) => {\n if (deltaMap[shape.id])\n shape.update({ point: deltaMap[shape.id].next });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"distribute\", (type, shapes2 = this.selectedShapesArray) => {\n if (shapes2.length < 2 || this.readOnly)\n return this;\n const deltaMap = Object.fromEntries(\n BoundsUtils.getDistributions(shapes2, type).map((d4) => [d4.id, d4])\n );\n shapes2.forEach((shape) => {\n if (deltaMap[shape.id])\n shape.update({ point: deltaMap[shape.id].next });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"packIntoRectangle\", (shapes2 = this.selectedShapesArray) => {\n if (shapes2.length < 2 || this.readOnly)\n return this;\n const deltaMap = Object.fromEntries(\n BoundsUtils.getPackedDistributions(shapes2).map((d4) => [d4.id, d4])\n );\n shapes2.forEach((shape) => {\n if (deltaMap[shape.id])\n shape.update({ point: deltaMap[shape.id].next });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"setLocked\", (locked) => {\n if (this.selectedShapesArray.length === 0 || this.readOnly)\n return this;\n this.selectedShapesArray.forEach((shape) => {\n shape.update({ isLocked: locked });\n });\n this.persist();\n return this;\n });\n __publicField(this, \"assets\", {});\n __publicField(this, \"removeUnusedAssets\", () => {\n const usedAssets = this.getCleanUpAssets();\n Object.keys(this.assets).forEach((assetId) => {\n if (!usedAssets.some((asset) => asset.id === assetId)) {\n delete this.assets[assetId];\n }\n });\n this.persist();\n return this;\n });\n __publicField(this, \"copy\", () => {\n if (this.selectedShapesArray.length > 0 && !this.editingShape) {\n const selectedShapes = this.allSelectedShapesArray;\n const jsonString = JSON.stringify({\n shapes: selectedShapes.map((shape) => shape.serialized),\n assets: this.getCleanUpAssets().filter((asset) => {\n return selectedShapes.some((shape) => shape.props.assetId === asset.id);\n }),\n bindings: toJS(this.currentPage.bindings)\n });\n const tldrawString = encodeURIComponent(`<whiteboard-tldr>${jsonString}<\/whiteboard-tldr>`);\n const shapeBlockRefs = this.selectedShapesArray.map((s4) => `((${s4.props.id}))`).join(\" \");\n this.notify(\"copy\", {\n text: shapeBlockRefs,\n html: tldrawString\n });\n }\n });\n __publicField(this, \"paste\", (e2, shiftKey) => {\n var _a3;\n if (!this.editingShape && !this.readOnly) {\n this.notify(\"paste\", {\n point: this.inputs.currentPoint,\n shiftKey: !!shiftKey,\n dataTransfer: (_a3 = e2 == null ? void 0 : e2.clipboardData) != null ? _a3 : void 0\n });\n }\n });\n __publicField(this, \"cut\", () => {\n this.copy();\n this.api.deleteShapes();\n });\n __publicField(this, \"drop\", (dataTransfer, point) => {\n this.notify(\"drop\", {\n dataTransfer,\n point: point ? this.viewport.getPagePoint(point) : BoundsUtils.getBoundsCenter(this.viewport.currentView)\n });\n return void 0;\n });\n __publicField(this, \"selectTool\", (id3, data = {}) => {\n if (!this.readOnly || [\"select\", \"move\"].includes(id3))\n this.transition(id3, data);\n });\n __publicField(this, \"editingId\");\n __publicField(this, \"setEditingShape\", (shape) => {\n this.editingId = typeof shape === \"string\" ? shape : shape == null ? void 0 : shape.id;\n return this;\n });\n __publicField(this, \"clearEditingState\", () => {\n this.selectedTool.transition(\"idle\");\n return this.setEditingShape();\n });\n __publicField(this, \"hoveredId\");\n __publicField(this, \"setHoveredShape\", (shape) => {\n this.hoveredId = typeof shape === \"string\" ? shape : shape == null ? void 0 : shape.id;\n return this;\n });\n __publicField(this, \"selectedIds\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"selectedShapes\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"selectionRotation\", 0);\n __publicField(this, \"setSelectedShapes\", (shapes2) => {\n var _a3;\n const { selectedIds, selectedShapes } = this;\n selectedIds.clear();\n selectedShapes.clear();\n if (shapes2[0] && typeof shapes2[0] === \"string\") {\n ;\n shapes2.forEach((s4) => selectedIds.add(s4));\n } else {\n ;\n shapes2.forEach((s4) => selectedIds.add(s4.id));\n }\n const newSelectedShapes = this.currentPage.shapes.filter((shape) => selectedIds.has(shape.id));\n newSelectedShapes.forEach((s4) => selectedShapes.add(s4));\n if (newSelectedShapes.length === 1) {\n this.selectionRotation = (_a3 = newSelectedShapes[0].props.rotation) != null ? _a3 : 0;\n } else {\n this.selectionRotation = 0;\n }\n if (shapes2.length === 0) {\n this.setEditingShape();\n }\n return this;\n });\n __publicField(this, \"erasingIds\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"erasingShapes\", \/* @__PURE__ *\/ new Set());\n __publicField(this, \"setErasingShapes\", (shapes2) => {\n const { erasingIds, erasingShapes } = this;\n erasingIds.clear();\n erasingShapes.clear();\n if (shapes2[0] && typeof shapes2[0] === \"string\") {\n ;\n shapes2.forEach((s4) => erasingIds.add(s4));\n } else {\n ;\n shapes2.forEach((s4) => erasingIds.add(s4.id));\n }\n const newErasingShapes = this.currentPage.shapes.filter((shape) => erasingIds.has(shape.id));\n newErasingShapes.forEach((s4) => erasingShapes.add(s4));\n return this;\n });\n __publicField(this, \"bindingIds\");\n __publicField(this, \"setBindingShapes\", (ids) => {\n this.bindingIds = ids;\n return this;\n });\n __publicField(this, \"clearBindingShape\", () => {\n return this.setBindingShapes();\n });\n __publicField(this, \"createNewLineBinding\", (source, target) => {\n const src = typeof source === \"string\" ? this.getShapeById(source) : source;\n const tgt = typeof target === \"string\" ? this.getShapeById(target) : target;\n if ((src == null ? void 0 : src.canBind) && (tgt == null ? void 0 : tgt.canBind)) {\n const result = createNewLineBinding(src, tgt);\n if (result) {\n const [newLine, newBindings] = result;\n this.createShapes([newLine]);\n this.currentPage.updateBindings(Object.fromEntries(newBindings.map((b5) => [b5.id, b5])));\n this.persist();\n return true;\n }\n }\n return false;\n });\n __publicField(this, \"brush\");\n __publicField(this, \"setBrush\", (brush) => {\n this.brush = brush;\n return this;\n });\n __publicField(this, \"setCamera\", (point, zoom) => {\n this.viewport.update({ point, zoom });\n return this;\n });\n __publicField(this, \"getPagePoint\", (point) => {\n const { camera } = this.viewport;\n return Vec.sub(Vec.div(point, camera.zoom), camera.point);\n });\n __publicField(this, \"getScreenPoint\", (point) => {\n const { camera } = this.viewport;\n return Vec.mul(Vec.add(point, camera.point), camera.zoom);\n });\n __publicField(this, \"Shapes\", \/* @__PURE__ *\/ new Map());\n __publicField(this, \"registerShapes\", (Shapes) => {\n Shapes.forEach((Shape5) => {\n if (Shape5.id === \"group\") {\n const app = this;\n Shape5.prototype.getShapes = function() {\n var _a3, _b;\n return (_b = (_a3 = this.props.children) == null ? void 0 : _a3.map((id3) => app.getShapeById(id3)).filter(Boolean)) != null ? _b : [];\n };\n }\n return this.Shapes.set(Shape5.id, Shape5);\n });\n });\n __publicField(this, \"deregisterShapes\", (Shapes) => {\n Shapes.forEach((Shape5) => this.Shapes.delete(Shape5.id));\n });\n __publicField(this, \"getShapeClass\", (type) => {\n if (!type)\n throw Error(\"No shape type provided.\");\n const Shape5 = this.Shapes.get(type);\n if (!Shape5)\n throw Error(`Could not find shape class for ${type}`);\n return Shape5;\n });\n __publicField(this, \"wrapUpdate\", (fn) => {\n transaction(() => {\n const shouldSave = !this.history.isPaused;\n if (shouldSave) {\n this.history.pause();\n }\n fn();\n if (shouldSave) {\n this.history.resume();\n this.persist();\n }\n });\n });\n __publicField(this, \"subscriptions\", \/* @__PURE__ *\/ new Set([]));\n __publicField(this, \"subscribe\", (event, callback) => {\n if (callback === void 0)\n throw Error(\"Callback is required.\");\n const subscription = { event, callback };\n this.subscriptions.add(subscription);\n return () => this.unsubscribe(subscription);\n });\n __publicField(this, \"unsubscribe\", (subscription) => {\n this.subscriptions.delete(subscription);\n return this;\n });\n __publicField(this, \"notify\", (event, info) => {\n this.subscriptions.forEach((subscription) => {\n if (subscription.event === event) {\n subscription.callback(this, info);\n }\n });\n return this;\n });\n __publicField(this, \"onTransition\", () => {\n });\n __publicField(this, \"onPointerDown\", (info, e2) => {\n if (!this.editingShape && e2.button === 1 && !this.isIn(\"move\")) {\n this.temporaryTransitionToMove(e2);\n return;\n }\n if (e2.button === 2 && !this.editingShape) {\n e2.preventDefault();\n this.transition(\"select\");\n return;\n }\n if (\"clientX\" in e2) {\n this.inputs.onPointerDown(\n [...this.viewport.getPagePoint([e2.clientX, e2.clientY]), e2.pressure],\n e2\n );\n }\n });\n __publicField(this, \"onPointerUp\", (info, e2) => {\n if (!this.editingShape && e2.button === 1 && this.isIn(\"move\")) {\n this.selectedTool.transition(\"idle\", { exit: true });\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n if (\"clientX\" in e2) {\n this.inputs.onPointerUp(\n [...this.viewport.getPagePoint([e2.clientX, e2.clientY]), e2.pressure],\n e2\n );\n }\n });\n __publicField(this, \"onPointerMove\", (info, e2) => {\n if (\"clientX\" in e2) {\n this.inputs.onPointerMove([...this.viewport.getPagePoint([e2.clientX, e2.clientY]), e2.pressure], e2);\n }\n });\n __publicField(this, \"onKeyDown\", (info, e2) => {\n if (!this.editingShape && e2[\"key\"] === \" \" && !this.isIn(\"move\")) {\n this.temporaryTransitionToMove(e2);\n return;\n }\n this.inputs.onKeyDown(e2);\n });\n __publicField(this, \"onKeyUp\", (info, e2) => {\n if (!this.editingShape && e2[\"key\"] === \" \" && this.isIn(\"move\")) {\n this.selectedTool.transition(\"idle\", { exit: true });\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n this.inputs.onKeyUp(e2);\n });\n __publicField(this, \"onPinchStart\", (info, e2) => {\n this.inputs.onPinchStart([...this.viewport.getPagePoint(info.point), 0.5], e2);\n });\n __publicField(this, \"onPinch\", (info, e2) => {\n this.inputs.onPinch([...this.viewport.getPagePoint(info.point), 0.5], e2);\n });\n __publicField(this, \"onPinchEnd\", (info, e2) => {\n this.inputs.onPinchEnd([...this.viewport.getPagePoint(info.point), 0.5], e2);\n });\n this._states = [TLSelectTool, TLMoveTool];\n this.readOnly = readOnly;\n this.history.pause();\n if (this.states && this.states.length > 0) {\n this.registerStates(this.states);\n const initialId = (_a3 = this.initial) != null ? _a3 : this.states[0].id;\n const state = this.children.get(initialId);\n if (state) {\n this.currentState = state;\n (_b = this.currentState) == null ? void 0 : _b._events.onEnter({ fromId: \"initial\" });\n }\n }\n if (Shapes)\n this.registerShapes(Shapes);\n if (Tools)\n this.registerTools(Tools);\n this.history.resume();\n if (serializedApp)\n this.history.deserialize(serializedApp);\n this.api = new TLApi(this);\n makeObservable(this);\n this.notify(\"mount\", null);\n }\n loadDocumentModel(model) {\n this.history.deserialize(model);\n if (model.assets && model.assets.length > 0)\n this.addAssets(model.assets);\n return this;\n }\n get serialized() {\n return {};\n }\n get currentPageId() {\n return this.pages.keys().next().value;\n }\n get currentPage() {\n return this.getPageById(this.currentPageId);\n }\n addPages(pages) {\n pages.forEach((page) => this.pages.set(page.id, page));\n this.persist();\n return this;\n }\n removePages(pages) {\n pages.forEach((page) => this.pages.delete(page.id));\n this.persist();\n return this;\n }\n shapesInGroups(groups = this.shapes) {\n return groups.flatMap((shape) => shape.props.children).filter(isNonNullable).map((id3) => this.getShapeById(id3)).filter(isNonNullable);\n }\n getParentGroup(shape) {\n return this.shapes.find((group) => {\n var _a3;\n return (_a3 = group.props.children) == null ? void 0 : _a3.includes(shape.id);\n });\n }\n addAssets(assets) {\n assets.forEach((asset) => this.assets[asset.id] = asset);\n return this;\n }\n removeAssets(assets) {\n if (typeof assets[0] === \"string\")\n assets.forEach((asset) => delete this.assets[asset]);\n else\n assets.forEach((asset) => delete this.assets[asset.id]);\n this.persist();\n return this;\n }\n getCleanUpAssets() {\n const usedAssets = \/* @__PURE__ *\/ new Set();\n this.pages.forEach(\n (p4) => p4.shapes.forEach((s4) => {\n if (s4.props.assetId && this.assets[s4.props.assetId]) {\n usedAssets.add(this.assets[s4.props.assetId]);\n }\n })\n );\n return Array.from(usedAssets);\n }\n createAssets(assets) {\n this.addAssets(assets);\n this.notify(\"create-assets\", { assets });\n this.persist();\n return this;\n }\n get selectedTool() {\n return this.currentState;\n }\n registerTools(tools2) {\n this.Tools = tools2;\n return this.registerStates(tools2);\n }\n get editingShape() {\n const { editingId, currentPage } = this;\n return editingId ? currentPage.shapes.find((shape) => shape.id === editingId) : void 0;\n }\n get hoveredShape() {\n const { hoveredId, currentPage } = this;\n return hoveredId ? currentPage.shapes.find((shape) => shape.id === hoveredId) : void 0;\n }\n get hoveredGroup() {\n const { hoveredShape } = this;\n const hoveredGroup = hoveredShape ? this.shapes.find((s4) => {\n var _a3;\n return s4.type === \"group\" && ((_a3 = s4.props.children) == null ? void 0 : _a3.includes(hoveredShape.id));\n }) : void 0;\n return hoveredGroup;\n }\n get selectedShapesArray() {\n const { selectedShapes, selectedTool } = this;\n const stateId = selectedTool.id;\n if (stateId !== \"select\")\n return [];\n return Array.from(selectedShapes.values());\n }\n get allSelectedShapes() {\n return new Set(this.allSelectedShapesArray);\n }\n get allSelectedShapesArray() {\n const { selectedShapesArray } = this;\n return dedupe([...selectedShapesArray, ...this.shapesInGroups(selectedShapesArray)]);\n }\n setSelectionRotation(radians) {\n this.selectionRotation = radians;\n }\n get erasingShapesArray() {\n return Array.from(this.erasingShapes.values());\n }\n get bindingShapes() {\n var _a3;\n const activeBindings = this.selectedShapesArray.length === 1 ? this.selectedShapesArray.flatMap((s4) => {\n var _a4;\n return Object.values((_a4 = s4.props.handles) != null ? _a4 : {});\n }).flatMap((h4) => h4.bindingId).filter(isNonNullable).flatMap((binding) => {\n var _a4, _b;\n return [\n (_a4 = this.currentPage.bindings[binding]) == null ? void 0 : _a4.fromId,\n (_b = this.currentPage.bindings[binding]) == null ? void 0 : _b.toId\n ];\n }).filter(isNonNullable) : [];\n const bindingIds = [...(_a3 = this.bindingIds) != null ? _a3 : [], ...activeBindings];\n return bindingIds ? this.currentPage.shapes.filter((shape) => bindingIds == null ? void 0 : bindingIds.includes(shape.id)) : void 0;\n }\n get currentGrid() {\n const { zoom } = this.viewport.camera;\n if (zoom < 0.15) {\n return GRID_SIZE * 16;\n } else if (zoom < 1) {\n return GRID_SIZE * 4;\n } else {\n return GRID_SIZE * 1;\n }\n }\n get shapes() {\n const {\n currentPage: { shapes: shapes2 }\n } = this;\n return Array.from(shapes2.values());\n }\n get shapesInViewport() {\n const {\n selectedShapes,\n currentPage,\n viewport: { currentView }\n } = this;\n return currentPage.shapes.filter((shape) => {\n return !shape.canUnmount || selectedShapes.has(shape) || BoundsUtils.boundsContain(currentView, shape.rotatedBounds) || BoundsUtils.boundsCollide(currentView, shape.rotatedBounds);\n });\n }\n get selectionDirectionHint() {\n const {\n selectionBounds,\n viewport: { currentView }\n } = this;\n if (!selectionBounds || BoundsUtils.boundsContain(currentView, selectionBounds) || BoundsUtils.boundsCollide(currentView, selectionBounds)) {\n return;\n }\n const center = BoundsUtils.getBoundsCenter(selectionBounds);\n return Vec.clampV(\n [\n (center[0] - currentView.minX - currentView.width \/ 2) \/ currentView.width,\n (center[1] - currentView.minY - currentView.height \/ 2) \/ currentView.height\n ],\n -1,\n 1\n );\n }\n get selectionBounds() {\n const { selectedShapesArray } = this;\n if (selectedShapesArray.length === 0)\n return void 0;\n if (selectedShapesArray.length === 1) {\n return __spreadProps(__spreadValues({}, selectedShapesArray[0].bounds), { rotation: selectedShapesArray[0].props.rotation });\n }\n return BoundsUtils.getCommonBounds(this.selectedShapesArray.map((shape) => shape.rotatedBounds));\n }\n get showSelection() {\n var _a3;\n const { selectedShapesArray } = this;\n return this.isIn(\"select\") && !this.isInAny(\"select.translating\", \"select.pinching\", \"select.rotating\") && (selectedShapesArray.length === 1 && !((_a3 = selectedShapesArray[0]) == null ? void 0 : _a3.hideSelection) || selectedShapesArray.length > 1);\n }\n get showSelectionDetail() {\n return this.isIn(\"select\") && !this.isInAny(\"select.translating\", \"select.pinching\") && this.selectedShapes.size > 0 && !this.selectedShapesArray.every((shape) => shape.hideSelectionDetail) && false;\n }\n get showSelectionRotation() {\n return this.showSelectionDetail && this.isInAny(\"select.rotating\", \"select.pointingRotateHandle\");\n }\n get showContextBar() {\n const {\n selectedShapesArray,\n inputs: { ctrlKey }\n } = this;\n return this.isInAny(\"select.idle\", \"select.hoveringSelectionHandle\") && !this.isIn(\"select.contextMenu\") && selectedShapesArray.length > 0 && !this.readOnly && !selectedShapesArray.every((shape) => shape.hideContextBar);\n }\n get showRotateHandles() {\n const { selectedShapesArray } = this;\n return this.isInAny(\n \"select.idle\",\n \"select.hoveringSelectionHandle\",\n \"select.pointingRotateHandle\",\n \"select.pointingResizeHandle\"\n ) && selectedShapesArray.length > 0 && !this.readOnly && !selectedShapesArray.some((shape) => shape.hideRotateHandle);\n }\n get showResizeHandles() {\n const { selectedShapesArray } = this;\n return this.isInAny(\n \"select.idle\",\n \"select.hoveringSelectionHandle\",\n \"select.pointingShape\",\n \"select.pointingSelectedShape\",\n \"select.pointingRotateHandle\",\n \"select.pointingResizeHandle\"\n ) && selectedShapesArray.length === 1 && !this.readOnly && !selectedShapesArray.every((shape) => shape.hideResizeHandles);\n }\n get showCloneHandles() {\n const { selectedShapesArray } = this;\n return this.isInAny(\n \"select.idle\",\n \"select.hoveringSelectionHandle\",\n \"select.pointingShape\",\n \"select.pointingSelectedShape\"\n ) && selectedShapesArray.length === 1 && Object.values(Geometry).some((geometry) => geometry === this.selectedShapesArray[0].type) && !this.readOnly;\n }\n temporaryTransitionToMove(event) {\n event.stopPropagation();\n event.preventDefault();\n const prevTool = this.selectedTool;\n this.transition(\"move\", { prevTool });\n this.selectedTool.transition(\"idleHold\");\n }\n};\n__publicField(TLApp, \"id\", \"app\");\n__publicField(TLApp, \"initial\", \"select\");\n__decorateClass([\n computed\n], TLApp.prototype, \"serialized\", 1);\n__decorateClass([\n observable\n], TLApp.prototype, \"pages\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"currentPageId\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"currentPage\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"addPages\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"removePages\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"createShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"updateShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"deleteShapes\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"assets\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"addAssets\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"removeAssets\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"removeUnusedAssets\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectedTool\", 1);\n__decorateClass([\n observable\n], TLApp.prototype, \"editingId\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"editingShape\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setEditingShape\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"hoveredId\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"hoveredShape\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"hoveredGroup\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setHoveredShape\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"selectedIds\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"selectedShapes\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"selectionRotation\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectedShapesArray\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"allSelectedShapes\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"allSelectedShapesArray\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setSelectedShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"setSelectionRotation\", 1);\n__decorateClass([\n observable\n], TLApp.prototype, \"erasingIds\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"erasingShapes\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"erasingShapesArray\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setErasingShapes\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"bindingIds\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"bindingShapes\", 1);\n__decorateClass([\n action\n], TLApp.prototype, \"setBindingShapes\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"createNewLineBinding\", 2);\n__decorateClass([\n observable\n], TLApp.prototype, \"brush\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"setBrush\", 2);\n__decorateClass([\n action\n], TLApp.prototype, \"setCamera\", 2);\n__decorateClass([\n computed\n], TLApp.prototype, \"currentGrid\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"shapes\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"shapesInViewport\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectionDirectionHint\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"selectionBounds\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showSelection\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showSelectionDetail\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showSelectionRotation\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showContextBar\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showRotateHandles\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showResizeHandles\", 1);\n__decorateClass([\n computed\n], TLApp.prototype, \"showCloneHandles\", 1);\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/BindingUtils.ts\nfunction findBindingPoint(shape, target, handleId, bindingId, point, origin, direction, bindAnywhere) {\n const bindingPoint = target.getBindingPoint(\n point,\n origin,\n direction,\n bindAnywhere\n );\n if (!bindingPoint)\n return;\n return {\n id: bindingId,\n type: \"line\",\n fromId: shape.id,\n toId: target.id,\n handleId,\n point: src_default.toFixed(bindingPoint.point),\n distance: bindingPoint.distance\n };\n}\nfunction createNewLineBinding(source, target) {\n const cs = source.getCenter();\n const ct2 = target.getCenter();\n const lineId = uniqueId();\n const lineShape = __spreadProps(__spreadValues({}, TLLineShape.defaultProps), {\n id: lineId,\n type: TLLineShape.id,\n parentId: source.props.parentId,\n point: cs\n });\n const startBinding = findBindingPoint(\n lineShape,\n source,\n \"start\",\n uniqueId(),\n cs,\n cs,\n src_default.uni(src_default.sub(ct2, cs)),\n false\n );\n const endBinding = findBindingPoint(\n lineShape,\n target,\n \"end\",\n uniqueId(),\n ct2,\n ct2,\n src_default.uni(src_default.sub(cs, ct2)),\n false\n );\n if (startBinding && endBinding) {\n lineShape.handles.start.point = [0, 0];\n lineShape.handles.end.point = src_default.sub(ct2, cs);\n lineShape.handles.start.bindingId = startBinding.id;\n lineShape.handles.end.bindingId = endBinding.id;\n return [lineShape, [startBinding, endBinding]];\n }\n return null;\n}\n\n\/\/ ..\/..\/node_modules\/fast-copy\/dist\/esm\/index.mjs\nvar toStringFunction = Function.prototype.toString;\nvar create = Object.create;\nvar toStringObject = Object.prototype.toString;\nvar LegacyCache = function() {\n function LegacyCache2() {\n this._keys = [];\n this._values = [];\n }\n LegacyCache2.prototype.has = function(key) {\n return !!~this._keys.indexOf(key);\n };\n LegacyCache2.prototype.get = function(key) {\n return this._values[this._keys.indexOf(key)];\n };\n LegacyCache2.prototype.set = function(key, value) {\n this._keys.push(key);\n this._values.push(value);\n };\n return LegacyCache2;\n}();\nfunction createCacheLegacy() {\n return new LegacyCache();\n}\nfunction createCacheModern() {\n return \/* @__PURE__ *\/ new WeakMap();\n}\nvar createCache = typeof WeakMap !== \"undefined\" ? createCacheModern : createCacheLegacy;\nfunction getCleanClone(prototype) {\n if (!prototype) {\n return create(null);\n }\n var Constructor = prototype.constructor;\n if (Constructor === Object) {\n return prototype === Object.prototype ? {} : create(prototype);\n }\n if (~toStringFunction.call(Constructor).indexOf(\"[native code]\")) {\n try {\n return new Constructor();\n } catch (_a3) {\n }\n }\n return create(prototype);\n}\nfunction getRegExpFlagsLegacy(regExp) {\n var flags = \"\";\n if (regExp.global) {\n flags += \"g\";\n }\n if (regExp.ignoreCase) {\n flags += \"i\";\n }\n if (regExp.multiline) {\n flags += \"m\";\n }\n if (regExp.unicode) {\n flags += \"u\";\n }\n if (regExp.sticky) {\n flags += \"y\";\n }\n return flags;\n}\nfunction getRegExpFlagsModern(regExp) {\n return regExp.flags;\n}\nvar getRegExpFlags = \/test\/g.flags === \"g\" ? getRegExpFlagsModern : getRegExpFlagsLegacy;\nfunction getTagLegacy(value) {\n var type = toStringObject.call(value);\n return type.substring(8, type.length - 1);\n}\nfunction getTagModern(value) {\n return value[Symbol.toStringTag] || getTagLegacy(value);\n}\nvar getTag = typeof Symbol !== \"undefined\" ? getTagModern : getTagLegacy;\nvar defineProperty3 = Object.defineProperty;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar _a = Object.prototype;\nvar hasOwnProperty = _a.hasOwnProperty;\nvar propertyIsEnumerable = _a.propertyIsEnumerable;\nvar SUPPORTS_SYMBOL = typeof getOwnPropertySymbols === \"function\";\nfunction getStrictPropertiesModern(object2) {\n return getOwnPropertyNames(object2).concat(getOwnPropertySymbols(object2));\n}\nvar getStrictProperties = SUPPORTS_SYMBOL ? getStrictPropertiesModern : getOwnPropertyNames;\nfunction copyOwnPropertiesStrict(value, clone, state) {\n var properties = getStrictProperties(value);\n for (var index3 = 0, length_1 = properties.length, property = void 0, descriptor = void 0; index3 < length_1; ++index3) {\n property = properties[index3];\n if (property === \"callee\" || property === \"caller\") {\n continue;\n }\n descriptor = getOwnPropertyDescriptor(value, property);\n if (!descriptor) {\n clone[property] = state.copier(value[property], state);\n continue;\n }\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = state.copier(descriptor.value, state);\n }\n try {\n defineProperty3(clone, property, descriptor);\n } catch (error) {\n clone[property] = descriptor.value;\n }\n }\n return clone;\n}\nfunction copyArrayLoose(array2, state) {\n var clone = new state.Constructor();\n state.cache.set(array2, clone);\n for (var index3 = 0, length_2 = array2.length; index3 < length_2; ++index3) {\n clone[index3] = state.copier(array2[index3], state);\n }\n return clone;\n}\nfunction copyArrayStrict(array2, state) {\n var clone = new state.Constructor();\n state.cache.set(array2, clone);\n return copyOwnPropertiesStrict(array2, clone, state);\n}\nfunction copyArrayBuffer(arrayBuffer, _state) {\n return arrayBuffer.slice(0);\n}\nfunction copyBlob(blob, _state) {\n return blob.slice(0, blob.size, blob.type);\n}\nfunction copyDataView(dataView, state) {\n return new state.Constructor(copyArrayBuffer(dataView.buffer));\n}\nfunction copyDate(date, state) {\n return new state.Constructor(date.getTime());\n}\nfunction copyMapLoose(map3, state) {\n var clone = new state.Constructor();\n state.cache.set(map3, clone);\n map3.forEach(function(value, key) {\n clone.set(key, state.copier(value, state));\n });\n return clone;\n}\nfunction copyMapStrict(map3, state) {\n return copyOwnPropertiesStrict(map3, copyMapLoose(map3, state), state);\n}\nfunction copyObjectLooseLegacy(object2, state) {\n var clone = getCleanClone(state.prototype);\n state.cache.set(object2, clone);\n for (var key in object2) {\n if (hasOwnProperty.call(object2, key)) {\n clone[key] = state.copier(object2[key], state);\n }\n }\n return clone;\n}\nfunction copyObjectLooseModern(object2, state) {\n var clone = getCleanClone(state.prototype);\n state.cache.set(object2, clone);\n for (var key in object2) {\n if (hasOwnProperty.call(object2, key)) {\n clone[key] = state.copier(object2[key], state);\n }\n }\n var symbols = getOwnPropertySymbols(object2);\n for (var index3 = 0, length_3 = symbols.length, symbol = void 0; index3 < length_3; ++index3) {\n symbol = symbols[index3];\n if (propertyIsEnumerable.call(object2, symbol)) {\n clone[symbol] = state.copier(object2[symbol], state);\n }\n }\n return clone;\n}\nvar copyObjectLoose = SUPPORTS_SYMBOL ? copyObjectLooseModern : copyObjectLooseLegacy;\nfunction copyObjectStrict(object2, state) {\n var clone = getCleanClone(state.prototype);\n state.cache.set(object2, clone);\n return copyOwnPropertiesStrict(object2, clone, state);\n}\nfunction copyPrimitiveWrapper(primitiveObject, state) {\n return new state.Constructor(primitiveObject.valueOf());\n}\nfunction copyRegExp(regExp, state) {\n var clone = new state.Constructor(regExp.source, getRegExpFlags(regExp));\n clone.lastIndex = regExp.lastIndex;\n return clone;\n}\nfunction copySelf(value, _state) {\n return value;\n}\nfunction copySetLoose(set4, state) {\n var clone = new state.Constructor();\n state.cache.set(set4, clone);\n set4.forEach(function(value) {\n clone.add(state.copier(value, state));\n });\n return clone;\n}\nfunction copySetStrict(set4, state) {\n return copyOwnPropertiesStrict(set4, copySetLoose(set4, state), state);\n}\nvar isArray = Array.isArray;\nvar assign2 = Object.assign;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar DEFAULT_LOOSE_OPTIONS = {\n array: copyArrayLoose,\n arrayBuffer: copyArrayBuffer,\n blob: copyBlob,\n dataView: copyDataView,\n date: copyDate,\n error: copySelf,\n map: copyMapLoose,\n object: copyObjectLoose,\n regExp: copyRegExp,\n set: copySetLoose\n};\nvar DEFAULT_STRICT_OPTIONS = assign2({}, DEFAULT_LOOSE_OPTIONS, {\n array: copyArrayStrict,\n map: copyMapStrict,\n object: copyObjectStrict,\n set: copySetStrict\n});\nfunction getTagSpecificCopiers(options) {\n return {\n Arguments: options.object,\n Array: options.array,\n ArrayBuffer: options.arrayBuffer,\n Blob: options.blob,\n Boolean: copyPrimitiveWrapper,\n DataView: options.dataView,\n Date: options.date,\n Error: options.error,\n Float32Array: options.arrayBuffer,\n Float64Array: options.arrayBuffer,\n Int8Array: options.arrayBuffer,\n Int16Array: options.arrayBuffer,\n Int32Array: options.arrayBuffer,\n Map: options.map,\n Number: copyPrimitiveWrapper,\n Object: options.object,\n Promise: copySelf,\n RegExp: options.regExp,\n Set: options.set,\n String: copyPrimitiveWrapper,\n WeakMap: copySelf,\n WeakSet: copySelf,\n Uint8Array: options.arrayBuffer,\n Uint8ClampedArray: options.arrayBuffer,\n Uint16Array: options.arrayBuffer,\n Uint32Array: options.arrayBuffer,\n Uint64Array: options.arrayBuffer\n };\n}\nfunction createCopier(options) {\n var normalizedOptions = assign2({}, DEFAULT_LOOSE_OPTIONS, options);\n var tagSpecificCopiers = getTagSpecificCopiers(normalizedOptions);\n var array2 = tagSpecificCopiers.Array, object2 = tagSpecificCopiers.Object;\n function copier(value, state) {\n state.prototype = state.Constructor = void 0;\n if (!value || typeof value !== \"object\") {\n return value;\n }\n if (state.cache.has(value)) {\n return state.cache.get(value);\n }\n state.prototype = value.__proto__ || getPrototypeOf(value);\n state.Constructor = state.prototype && state.prototype.constructor;\n if (!state.Constructor || state.Constructor === Object) {\n return object2(value, state);\n }\n if (isArray(value)) {\n return array2(value, state);\n }\n var tagSpecificCopier = tagSpecificCopiers[getTag(value)];\n if (tagSpecificCopier) {\n return tagSpecificCopier(value, state);\n }\n return typeof value.then === \"function\" ? value : object2(value, state);\n }\n return function copy(value) {\n return copier(value, {\n Constructor: void 0,\n cache: createCache(),\n copier,\n prototype: void 0\n });\n };\n}\nfunction createStrictCopier(options) {\n return createCopier(assign2({}, DEFAULT_STRICT_OPTIONS, options));\n}\nvar copyStrict = createStrictCopier({});\nvar index = createCopier({});\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/DataUtils.ts\nvar import_fast_deep_equal = __toESM(require_fast_deep_equal());\nvar import_deepmerge = __toESM(require_cjs());\nvar deepCopy = index;\nfunction deepMerge(a5, b5) {\n return (0, import_deepmerge.default)(a5, b5, {\n arrayMerge: (destinationArray, sourceArray, options) => sourceArray\n });\n}\nfunction modulate(value, rangeA, rangeB, clamp3 = false) {\n const [fromLow, fromHigh] = rangeA;\n const [v0, v12] = rangeB;\n const result = v0 + (value - fromLow) \/ (fromHigh - fromLow) * (v12 - v0);\n return clamp3 ? v0 < v12 ? Math.max(Math.min(result, v12), v0) : Math.max(Math.min(result, v0), v12) : result;\n}\nfunction clamp(n4, min, max) {\n return Math.max(min, typeof max !== \"undefined\" ? Math.min(n4, max) : n4);\n}\nfunction getSizeFromSrc(dataURL, type) {\n return new Promise((resolve, reject) => {\n if (type === \"video\") {\n const video = document.createElement(\"video\");\n video.addEventListener(\n \"loadedmetadata\",\n function() {\n const height = this.videoHeight;\n const width = this.videoWidth;\n resolve([width, height]);\n },\n false\n );\n video.src = dataURL;\n } else if (type === \"image\") {\n const img = new Image();\n img.onload = () => resolve([img.width, img.height]);\n img.src = dataURL;\n img.onerror = (err) => reject(err);\n } else if (type === \"pdf\") {\n resolve([595, 842]);\n }\n });\n}\nfunction getFirstFromSet(set4) {\n return set4.values().next().value;\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/TextUtils.ts\nvar _TextUtils = class {\n static insertTextFirefox(field, text) {\n field.setRangeText(\n text,\n field.selectionStart || 0,\n field.selectionEnd || 0,\n \"end\"\n );\n field.dispatchEvent(\n new InputEvent(\"input\", {\n data: text,\n inputType: \"insertText\",\n isComposing: false\n })\n );\n }\n static insert(field, text) {\n const document2 = field.ownerDocument;\n const initialFocus = document2.activeElement;\n if (initialFocus !== field) {\n field.focus();\n }\n if (!document2.execCommand(\"insertText\", false, text)) {\n _TextUtils.insertTextFirefox(field, text);\n }\n if (initialFocus === document2.body) {\n field.blur();\n } else if (initialFocus instanceof HTMLElement && initialFocus !== field) {\n initialFocus.focus();\n }\n }\n static set(field, text) {\n field.select();\n _TextUtils.insert(field, text);\n }\n static getSelection(field) {\n const { selectionStart, selectionEnd } = field;\n return field.value.slice(\n selectionStart ? selectionStart : void 0,\n selectionEnd ? selectionEnd : void 0\n );\n }\n static wrapSelection(field, wrap, wrapEnd) {\n const { selectionStart, selectionEnd } = field;\n const selection = _TextUtils.getSelection(field);\n _TextUtils.insert(field, wrap + selection + (wrapEnd != null ? wrapEnd : wrap));\n field.selectionStart = (selectionStart || 0) + wrap.length;\n field.selectionEnd = (selectionEnd || 0) + wrap.length;\n }\n static replace(field, searchValue, replacer) {\n let drift = 0;\n field.value.replace(searchValue, (...args) => {\n const matchStart = drift + args[args.length - 2];\n const matchLength = args[0].length;\n field.selectionStart = matchStart;\n field.selectionEnd = matchStart + matchLength;\n const replacement = typeof replacer === \"string\" ? replacer : replacer(...args);\n _TextUtils.insert(field, replacement);\n field.selectionStart = matchStart;\n drift += replacement.length - matchLength;\n return replacement;\n });\n }\n static findLineEnd(value, currentEnd) {\n const lastLineStart = value.lastIndexOf(\"\\n\", currentEnd - 1) + 1;\n if (value.charAt(lastLineStart) !== \"\t\") {\n return currentEnd;\n }\n return lastLineStart + 1;\n }\n static indent(element) {\n var _a3;\n const { selectionStart, selectionEnd, value } = element;\n const selectedContrast = value.slice(selectionStart, selectionEnd);\n const lineBreakCount = (_a3 = \/\\n\/g.exec(selectedContrast)) == null ? void 0 : _a3.length;\n if (lineBreakCount && lineBreakCount > 0) {\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const newSelection = element.value.slice(firstLineStart, selectionEnd - 1);\n const indentedText = newSelection.replace(\n \/^|\\n\/g,\n `$&${_TextUtils.INDENT}`\n );\n const replacementsCount = indentedText.length - newSelection.length;\n element.setSelectionRange(firstLineStart, selectionEnd - 1);\n _TextUtils.insert(element, indentedText);\n element.setSelectionRange(selectionStart + 1, selectionEnd + replacementsCount);\n } else {\n _TextUtils.insert(element, _TextUtils.INDENT);\n }\n }\n static unindent(element) {\n const { selectionStart, selectionEnd, value } = element;\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const minimumSelectionEnd = _TextUtils.findLineEnd(value, selectionEnd);\n const newSelection = element.value.slice(firstLineStart, minimumSelectionEnd);\n const indentedText = newSelection.replace(\/(^|\\n)(\\t| {1,2})\/g, \"$1\");\n const replacementsCount = newSelection.length - indentedText.length;\n element.setSelectionRange(firstLineStart, minimumSelectionEnd);\n _TextUtils.insert(element, indentedText);\n const firstLineIndentation = \/\\t| {1,2}\/.exec(value.slice(firstLineStart, selectionStart));\n const difference = firstLineIndentation ? firstLineIndentation[0].length : 0;\n const newSelectionStart = selectionStart - difference;\n element.setSelectionRange(\n selectionStart - difference,\n Math.max(newSelectionStart, selectionEnd - replacementsCount)\n );\n }\n static normalizeText(text) {\n return text.replace(_TextUtils.fixNewLines, \"\\n\");\n }\n};\nvar TextUtils = _TextUtils;\n__publicField(TextUtils, \"fixNewLines\", \/\\r?\\n|\\r\/g);\n__publicField(TextUtils, \"INDENT\", \" \");\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/ColorUtils.ts\nfunction isBuiltInColor(color) {\n return Object.values(Color).includes(color);\n}\nfunction getComputedColor(color, type) {\n if (isBuiltInColor(color) || color == null) {\n return `var(--ls-wb-${type}-color-${color ? color : \"default\"})`;\n }\n return color;\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/getTextSize.ts\nvar melm;\nfunction getMeasurementDiv() {\n var _a3;\n (_a3 = document.getElementById(\"__textLabelMeasure\")) == null ? void 0 : _a3.remove();\n const pre = document.createElement(\"pre\");\n pre.id = \"__textLabelMeasure\";\n Object.assign(pre.style, {\n whiteSpace: \"pre\",\n width: \"auto\",\n borderLeft: \"2px solid transparent\",\n borderRight: \"1px solid transparent\",\n borderBottom: \"2px solid transparent\",\n padding: \"0px\",\n margin: \"0px\",\n opacity: \"0\",\n position: \"absolute\",\n top: \"-500px\",\n left: \"0px\",\n zIndex: \"9999\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n font: \"var(--ls-font-family)\"\n });\n pre.tabIndex = -1;\n document.body.appendChild(pre);\n return pre;\n}\nif (typeof window !== \"undefined\") {\n melm = getMeasurementDiv();\n}\nvar cache2 = \/* @__PURE__ *\/ new Map();\nvar getKey = (text, font5, padding) => {\n return `${text}-${font5}-${padding}`;\n};\nvar hasCached = (text, font5, padding) => {\n const key = getKey(text, font5, padding);\n return cache2.has(key);\n};\nvar getCached = (text, font5, padding) => {\n const key = getKey(text, font5, padding);\n return cache2.get(key);\n};\nvar saveCached = (text, font5, padding, size) => {\n const key = getKey(text, font5, padding);\n cache2.set(key, size);\n};\nfunction getTextLabelSize(text, fontOrStyles, padding = 0) {\n var _a3, _b, _c;\n if (!text) {\n return [16, 32];\n }\n let font5;\n if (typeof fontOrStyles === \"string\") {\n font5 = fontOrStyles;\n } else {\n font5 = `${(_a3 = fontOrStyles.fontStyle) != null ? _a3 : \"normal\"} ${(_b = fontOrStyles.fontVariant) != null ? _b : \"normal\"} ${(_c = fontOrStyles.fontWeight) != null ? _c : \"normal\"} ${fontOrStyles.fontSize}px\/${fontOrStyles.fontSize * fontOrStyles.lineHeight}px ${fontOrStyles.fontFamily}`;\n }\n if (!hasCached(text, font5, padding)) {\n if (!melm) {\n return [10, 10];\n }\n if (!melm.parentNode)\n document.body.appendChild(melm);\n melm.innerHTML = `${text}​`;\n melm.style.font = font5;\n melm.style.padding = padding + \"px\";\n const rect = melm.getBoundingClientRect();\n const width = Math.ceil(rect.width || 1);\n const height = Math.ceil(rect.height || 1);\n saveCached(text, font5, padding, [width, height]);\n }\n return getCached(text, font5, padding);\n}\n\n\/\/ ..\/..\/packages\/core\/src\/utils\/index.ts\nfunction uniqueId() {\n return v1_default();\n}\nfunction validUUID(input) {\n try {\n parse_default(input);\n return true;\n } catch (e2) {\n return false;\n }\n}\nfunction debounce(fn, ms = 0, immediateFn = void 0) {\n let timeoutId;\n return function(...args) {\n immediateFn == null ? void 0 : immediateFn(...args);\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(args), ms);\n };\n}\nfunction dedupe(arr) {\n return [...new Set(arr)];\n}\nfunction lerp(a5, b5, t2) {\n return a5 + (b5 - a5) * t2;\n}\nfunction isDarwin() {\n return \/Mac|iPod|iPhone|iPad\/.test(window.navigator.platform);\n}\nfunction isDev() {\n var _a3, _b, _c;\n return ((_c = (_b = (_a3 = window == null ? void 0 : window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.get_state_from_store) == null ? void 0 : _c.call(_b, \"ui\/developer-mode?\")) || false;\n}\nfunction isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.includes(\"webkit\") && !ua.includes(\"chrome\");\n}\nfunction modKey(e2) {\n return isDarwin() ? e2.metaKey : e2.ctrlKey;\n}\nvar MOD_KEY = isDarwin() ? \"\\u2318\" : \"ctrl\";\nfunction isNonNullable(value) {\n return Boolean(value);\n}\nfunction delay(ms = 0) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n\/\/ ..\/..\/packages\/react\/src\/lib\/TLReactApp.ts\nvar TLReactApp = class extends TLApp {\n};\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useBoundsEvents.ts\nvar React2 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/constants.ts\nvar PI3 = Math.PI;\nvar TAU2 = PI3 \/ 2;\nvar PI22 = PI3 * 2;\nvar EPSILON2 = Math.PI \/ 180;\nvar DOUBLE_CLICK_DURATION = 300;\nvar NOOP = () => void 0;\nvar isSafari2 = \/^((?!chrome|android).)*safari\/i.test(navigator.userAgent);\nvar CURSORS2 = {\n canvas: \"default\",\n grab: \"grab\",\n grabbing: \"grabbing\",\n [\"top_left_corner\" \/* TopLeft *\/]: \"resize-nwse\",\n [\"top_right_corner\" \/* TopRight *\/]: \"resize-nesw\",\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"resize-nwse\",\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"resize-nesw\",\n [\"top_edge\" \/* Top *\/]: \"resize-ns\",\n [\"right_edge\" \/* Right *\/]: \"resize-ew\",\n [\"bottom_edge\" \/* Bottom *\/]: \"resize-ns\",\n [\"left_edge\" \/* Left *\/]: \"resize-ew\"\n};\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useRendererContext.ts\nvar React = __toESM(require(\"react\"));\nvar contextMap = {};\nfunction getRendererContext(id3 = \"noid\") {\n if (!contextMap[id3]) {\n contextMap[id3] = React.createContext({});\n }\n return contextMap[id3];\n}\nfunction useRendererContext(id3 = \"noid\") {\n return React.useContext(getRendererContext(id3));\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useBoundsEvents.ts\nfunction useBoundsEvents(handle) {\n const { callbacks } = useRendererContext();\n const rDoubleClickTimer = React2.useRef(-1);\n const events = React2.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onPointerDown = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n const elm = loopToHtmlElement(e2.currentTarget);\n elm.setPointerCapture(e2.pointerId);\n elm.addEventListener(\"pointerup\", onPointerUp);\n (_a3 = callbacks.onPointerDown) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onPointerUp = (e2) => {\n var _a3, _b;\n const { order = 0 } = e2;\n if (order)\n return;\n const elm = e2.target;\n elm.removeEventListener(\"pointerup\", onPointerUp);\n elm.releasePointerCapture(e2.pointerId);\n (_a3 = callbacks.onPointerUp) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n const now = Date.now();\n const elapsed = now - rDoubleClickTimer.current;\n if (elapsed > DOUBLE_CLICK_DURATION) {\n rDoubleClickTimer.current = now;\n } else {\n if (elapsed <= DOUBLE_CLICK_DURATION) {\n (_b = callbacks.onDoubleClick) == null ? void 0 : _b.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n rDoubleClickTimer.current = -1;\n }\n }\n e2.order = order + 1;\n };\n const onPointerEnter = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onPointerLeave = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n if (order)\n return;\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order }, e2);\n e2.order = order + 1;\n };\n const onKeyDown = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyDown) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order: -1 }, e2);\n };\n const onKeyUp = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyUp) == null ? void 0 : _a3.call(callbacks, { type: \"selection\" \/* Selection *\/, handle, order: -1 }, e2);\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerEnter,\n onPointerLeave,\n onKeyDown,\n onKeyUp\n };\n }, [callbacks]);\n return events;\n}\nfunction loopToHtmlElement(elm) {\n var _a3;\n if ((_a3 = elm.namespaceURI) == null ? void 0 : _a3.endsWith(\"svg\")) {\n if (elm.parentElement)\n return loopToHtmlElement(elm.parentElement);\n else\n throw Error(\"Could not find a parent element of an HTML type!\");\n }\n return elm;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useResizeObserver.ts\nvar React3 = __toESM(require(\"react\"));\nvar getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent && (overflowY === \"auto\" || overflowY === \"scroll\" || overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nfunction useResizeObserver(ref, viewport, onBoundsChange) {\n const rIsMounted = React3.useRef(false);\n const updateBounds = React3.useCallback(() => {\n var _a3;\n if (rIsMounted.current) {\n const rect = (_a3 = ref.current) == null ? void 0 : _a3.getBoundingClientRect();\n if (rect) {\n const bounds = {\n minX: rect.left,\n maxX: rect.left + rect.width,\n minY: rect.top,\n maxY: rect.top + rect.height,\n width: rect.width,\n height: rect.height\n };\n viewport.updateBounds(bounds);\n onBoundsChange == null ? void 0 : onBoundsChange(bounds);\n }\n } else {\n rIsMounted.current = true;\n }\n }, [ref, onBoundsChange]);\n React3.useEffect(() => {\n const scrollingAnchor = ref.current ? getNearestScrollableContainer(ref.current) : document;\n const debouncedupdateBounds = debounce(updateBounds, 100);\n scrollingAnchor.addEventListener(\"scroll\", debouncedupdateBounds);\n window.addEventListener(\"resize\", debouncedupdateBounds);\n return () => {\n scrollingAnchor.removeEventListener(\"scroll\", debouncedupdateBounds);\n window.removeEventListener(\"resize\", debouncedupdateBounds);\n };\n }, []);\n React3.useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries[0].contentRect) {\n updateBounds();\n }\n });\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n return () => {\n resizeObserver.disconnect();\n };\n }, [ref]);\n React3.useEffect(() => {\n updateBounds();\n setTimeout(() => {\n var _a3, _b;\n (_b = (_a3 = ref.current) == null ? void 0 : _a3.querySelector(\".tl-canvas\")) == null ? void 0 : _b.focus();\n });\n }, [ref]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useStylesheet.ts\nvar React4 = __toESM(require(\"react\"));\nvar styles = \/* @__PURE__ *\/ new Map();\nfunction makeCssTheme(prefix, theme) {\n return Object.keys(theme).reduce((acc, key) => {\n const value = theme[key];\n if (value) {\n return acc + `${`--${prefix}-${key}`}: ${value};\n`;\n }\n return acc;\n }, \"\");\n}\nfunction useTheme(prefix, theme, selector = \".logseq-tldraw\") {\n React4.useLayoutEffect(() => {\n const style = document.createElement(\"style\");\n const cssTheme = makeCssTheme(prefix, theme);\n style.setAttribute(\"id\", `${prefix}-theme`);\n style.setAttribute(\"data-selector\", selector);\n style.innerHTML = `\n ${selector} {\n ${cssTheme}\n }\n `;\n document.head.appendChild(style);\n return () => {\n if (style && document.head.contains(style)) {\n document.head.removeChild(style);\n }\n };\n }, [prefix, theme, selector]);\n}\nfunction useStyle(uid, rules) {\n React4.useLayoutEffect(() => {\n if (styles.get(uid)) {\n return () => void 0;\n }\n const style = document.createElement(\"style\");\n style.innerHTML = rules;\n style.setAttribute(\"id\", uid);\n document.head.appendChild(style);\n styles.set(uid, style);\n return () => {\n if (style && document.head.contains(style)) {\n document.head.removeChild(style);\n styles.delete(uid);\n }\n };\n }, [uid, rules]);\n}\nvar css = (strings, ...args) => strings.reduce(\n (acc, string, index3) => acc + string + (index3 < args.length ? args[index3] : \"\"),\n \"\"\n);\nvar defaultTheme = {\n accent: \"var(--lx-accent-09, hsl(var(--primary)))\",\n brushFill: \"var(--ls-scrollbar-background-color, rgba(0, 0, 0, .05))\",\n brushStroke: \"var(--ls-scrollbar-thumb-hover-color, rgba(0, 0, 0, .05))\",\n selectStroke: \"var(--color-selectedStroke)\",\n selectFill: \"var(--color-selectedFill)\",\n binding: \"var(--color-binding, rgba(65, 132, 244, 0.5))\",\n background: \"var(--ls-primary-background-color, hsl(var(--background)))\",\n foreground: \"var(--ls-primary-text-color, hsl(var(--foreground)))\",\n grid: \"var(--ls-quaternary-background-color, hsl(var(--secondary)))\"\n};\nvar tlcss = css`\n .tl-container {\n --tl-zoom: 1;\n --tl-scale: calc(1 \/ var(--tl-zoom));\n --tl-padding: calc(64px \/ var(--tl-zoom));;\n --tl-shadow-color: 0deg 0% 0%;\n --tl-binding-distance: ${BINDING_DISTANCE}px;\n --tl-shadow-elevation-low: 0px 0.4px 0.5px hsl(var(--tl-shadow-color) \/ 0.04),\n 0px 0.6px 0.8px -0.7px hsl(var(--tl-shadow-color) \/ 0.06),\n 0.1px 1.2px 1.5px -1.4px hsl(var(--tl-shadow-color) \/ 0.08);\n --tl-shadow-elevation-medium: 0px 0.4px 0.5px hsl(var(--tl-shadow-color) \/ 0.04),\n 0.1px 1.3px 1.7px -0.5px hsl(var(--tl-shadow-color) \/ 0.06),\n 0.1px 2.8px 3.6px -1px hsl(var(--tl-shadow-color) \/ 0.07),\n 0.3px 6.1px 7.8px -1.4px hsl(var(--tl-shadow-color) \/ 0.09);\n --tl-shadow-elevation-high: 0px 0.4px 0.5px hsl(var(--tl-shadow-color) \/ 0.04),\n 0.1px 2.3px 3px -0.2px hsl(var(--tl-shadow-color) \/ 0.05),\n 0.2px 4.1px 5.3px -0.5px hsl(var(--tl-shadow-color) \/ 0.06),\n 0.4px 6.6px 8.5px -0.7px hsl(var(--tl-shadow-color) \/ 0.07),\n 0.6px 10.3px 13.2px -1px hsl(var(--tl-shadow-color) \/ 0.08),\n 0.9px 16px 20.6px -1.2px hsl(var(--tl-shadow-color) \/ 0.09),\n 1.3px 24.3px 31.2px -1.4px hsl(var(--tl-shadow-color) \/ 0.1);\n box-sizing: border-box;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n box-sizing: border-box;\n padding: 0px;\n margin: 0px;\n outline: none;\n z-index: 100;\n user-select: none;\n touch-action: none;\n overscroll-behavior: none;\n background-color: var(--tl-background);\n cursor: inherit;\n box-sizing: border-box;\n color: var(--tl-foreground);\n -webkit-user-select: none;\n -webkit-user-drag: none;\n }\n\n .tl-overlay {\n background: none;\n fill: transparent;\n position: absolute;\n width: 100%;\n height: 100%;\n touch-action: none;\n pointer-events: none;\n }\n\n .tl-snap-line {\n stroke: var(--tl-accent);\n stroke-width: calc(1px * var(--tl-scale));\n }\n\n .tl-snap-point {\n stroke: var(--tl-accent);\n stroke-width: calc(1px * var(--tl-scale));\n }\n\n .tl-canvas {\n position: absolute;\n width: 100%;\n height: 100%;\n touch-action: none;\n pointer-events: all;\n overflow: clip;\n outline: none;\n }\n\n .tl-layer {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 0px;\n width: 0px;\n contain: layout style size;\n }\n\n .tl-absolute {\n position: absolute;\n top: 0px;\n left: 0px;\n transform-origin: center center;\n contain: layout style size;\n }\n\n .tl-positioned {\n position: absolute;\n transform-origin: center center;\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n contain: layout style size;\n }\n\n .tl-positioned-svg {\n width: 100%;\n height: 100%;\n overflow: hidden;\n contain: layout style size;\n pointer-events: none;\n }\n\n .tl-positioned-div {\n position: relative;\n width: 100%;\n height: 100%;\n padding: var(--tl-padding);\n contain: layout style size;\n }\n\n .tl-positioned-inner {\n position: relative;\n width: 100%;\n height: 100%;\n }\n\n .tl-counter-scaled {\n transform: scale(var(--tl-scale));\n }\n\n .tl-dashed {\n stroke-dasharray: calc(2px * var(--tl-scale)), calc(2px * var(--tl-scale));\n }\n\n .tl-transparent {\n fill: transparent;\n stroke: transparent;\n }\n\n .tl-corner-handle {\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-rotate-handle {\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-clone-handle {\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-clone-handle:hover {\n fill: var(--tl-selectStroke);\n cursor: pointer;\n }\n\n .tl-clone-handle:hover line {\n stroke: var(--tl-background);\n }\n\n .tl-user {\n left: -4px;\n top: -4px;\n height: 8px;\n width: 8px;\n border-radius: 100%;\n pointer-events: none;\n }\n\n .tl-indicator {\n fill: transparent;\n stroke-width: calc(1.5px * var(--tl-scale));\n pointer-events: none;\n }\n\n .tl-indicator-container {\n transform-origin: 0 0;\n fill: transparent;\n stroke-width: calc(1.5px * var(--tl-scale));\n pointer-events: none;\n }\n\n .tl-user-indicator-bounds {\n border-style: solid;\n border-width: calc(1px * var(--tl-scale));\n }\n\n .tl-selected {\n stroke: var(--tl-selectStroke);\n }\n\n .tl-hovered {\n stroke: var(--tl-selectStroke);\n }\n\n .tl-clone-target {\n pointer-events: all;\n }\n\n .tl-clone-target:hover .tl-clone-button {\n opacity: 1;\n }\n\n .tl-clone-button-target {\n cursor: pointer;\n pointer-events: all;\n }\n\n .tl-clone-button-target:hover .tl-clone-button {\n fill: var(--tl-selectStroke);\n }\n\n .tl-clone-button {\n opacity: 0;\n r: calc(8px * var(--tl-scale));\n stroke-width: calc(1.5px * var(--tl-scale));\n stroke: var(--tl-selectStroke);\n fill: var(--tl-background);\n }\n\n .tl-bounds {\n pointer-events: none;\n contain: layout style size;\n }\n\n .tl-bounds-bg {\n stroke: none;\n fill: var(--tl-selectFill);\n pointer-events: all;\n contain: layout style size;\n }\n\n .tl-bounds-fg {\n fill: transparent;\n stroke: var(--tl-selectStroke);\n stroke-width: calc(1.5px * var(--tl-scale));\n }\n\n .tl-brush {\n fill: var(--tl-brushFill);\n stroke: var(--tl-brushStroke);\n stroke-width: calc(1px * var(--tl-scale));\n pointer-events: none;\n }\n\n .tl-dot {\n fill: var(--tl-background);\n stroke: var(--tl-foreground);\n stroke-width: 2px;\n }\n\n .tl-handle {\n fill: var(--tl-background);\n stroke: var(--tl-selectStroke);\n stroke-width: 1.5px;\n pointer-events: none;\n }\n\n .tl-handle-bg {\n fill: transparent;\n stroke: none;\n r: calc(16px \/ max(1, var(--tl-zoom)));\n pointer-events: all;\n cursor: grab;\n }\n\n .tl-handle-bg:active {\n pointer-events: all;\n fill: none;\n }\n\n .tl-handle-bg:hover {\n cursor: grab;\n fill: var(--tl-selectFill);\n }\n\n .tl-binding-indicator {\n fill: transparent;\n stroke: var(--tl-binding);\n }\n\n .tl-centered {\n display: grid;\n place-content: center;\n place-items: center;\n }\n\n .tl-centered > * {\n grid-column: 1;\n grid-row: 1;\n }\n\n .tl-centered-g {\n transform: translate(var(--tl-padding), var(--tl-padding));\n }\n\n .tl-current-parent > *[data-shy='true'] {\n opacity: 1;\n }\n\n .tl-binding {\n fill: none;\n stroke: var(--tl-selectStroke);\n stroke-width: calc(2px * var(--tl-scale));\n }\n\n .tl-counter-scaled-positioned {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n padding: 0;\n contain: layout style size;\n }\n\n .tl-fade-in {\n opacity: 1;\n transition-timing-function: ease-in-out;\n transition-property: opacity;\n transition-duration: 0.12s;\n transition-delay: 0;\n }\n\n .tl-fade-out {\n opacity: 0;\n transition-timing-function: ease-out;\n transition-property: opacity;\n transition-duration: 0.12s;\n transition-delay: 0;\n }\n\n .tl-counter-scaled-positioned > .tl-positioned-div {\n user-select: none;\n padding: 64px;\n }\n\n .tl-context-bar > * {\n grid-column: 1;\n grid-row: 1;\n }\n\n .tl-bounds-detail {\n padding: 2px 3px;\n border-radius: 1px;\n white-space: nowrap;\n width: fit-content;\n text-align: center;\n font-size: 12px;\n font-weight: 500;\n background-color: var(--tl-selectStroke);\n color: var(--tl-background);\n }\n\n .tl-grid-canvas {\n position: absolute;\n touch-action: none;\n pointer-events: none;\n user-select: none;\n }\n\n .tl-grid {\n position: absolute;\n width: 100%;\n height: 100%;\n touch-action: none;\n pointer-events: none;\n user-select: none;\n }\n\n .tl-grid-dot {\n fill: var(--tl-grid);\n }\n\n .tl-html-canvas {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n zindex: 20000;\n pointer-events: none;\n border: 2px solid red;\n }\n\n .tl-direction-indicator {\n z-index: 100000;\n position: absolute;\n top: 0px;\n left: 0px;\n fill: var(--tl-selectStroke);\n }\n`;\nfunction useStylesheet(theme, selector) {\n const tltheme = React4.useMemo(\n () => __spreadValues(__spreadValues({}, defaultTheme), theme),\n [theme]\n );\n useTheme(\"tl\", tltheme, selector);\n useStyle(\"tl-canvas\", tlcss);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCanvasEvents.ts\nvar React6 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useApp.ts\nvar React5 = __toESM(require(\"react\"));\nvar contextMap2 = {};\nfunction getAppContext(id3 = \"noid\") {\n if (!contextMap2[id3]) {\n contextMap2[id3] = React5.createContext({});\n }\n return contextMap2[id3];\n}\nfunction useApp(id3 = \"noid\") {\n return React5.useContext(getAppContext(id3));\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCanvasEvents.ts\nfunction useCanvasEvents() {\n const app = useApp();\n const { callbacks } = useRendererContext();\n const rDoubleClickTimer = React6.useRef(-1);\n const events = React6.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onPointerDown = (e2) => {\n var _a3, _b, _c;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.setPointerCapture(e2.pointerId);\n if (!e2.isPrimary) {\n return;\n }\n (_b = callbacks.onPointerDown) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n const now = Date.now();\n const elapsed = now - rDoubleClickTimer.current;\n if (elapsed > DOUBLE_CLICK_DURATION) {\n rDoubleClickTimer.current = now;\n } else {\n if (elapsed <= DOUBLE_CLICK_DURATION) {\n (_c = callbacks.onDoubleClick) == null ? void 0 : _c.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n rDoubleClickTimer.current = -1;\n }\n }\n };\n const onPointerUp = (e2) => {\n var _a3, _b;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.releasePointerCapture(e2.pointerId);\n (_b = callbacks.onPointerUp) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onPointerEnter = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onPointerLeave = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order }, e2);\n };\n const onDrop = (e2) => __async(this, null, function* () {\n e2.preventDefault();\n if (\"clientX\" in e2) {\n const point = [e2.clientX, e2.clientY];\n app.drop(e2.dataTransfer, point);\n }\n });\n const onDragOver = (e2) => {\n e2.preventDefault();\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerEnter,\n onPointerLeave,\n onDrop,\n onDragOver,\n onTouchEnd: (e2) => {\n let tool = app.selectedTool.id;\n if (tool === \"pencil\" || tool === \"highlighter\") {\n e2.preventDefault();\n }\n }\n };\n }, [callbacks]);\n return events;\n}\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/core\/dist\/maths-b28d9b98.esm.js\nfunction clamp2(v4, min, max) {\n return Math.max(min, Math.min(v4, max));\n}\nvar V = {\n toVector(v4, fallback) {\n if (v4 === void 0)\n v4 = fallback;\n return Array.isArray(v4) ? v4 : [v4, v4];\n },\n add(v12, v22) {\n return [v12[0] + v22[0], v12[1] + v22[1]];\n },\n sub(v12, v22) {\n return [v12[0] - v22[0], v12[1] - v22[1]];\n },\n addTo(v12, v22) {\n v12[0] += v22[0];\n v12[1] += v22[1];\n },\n subTo(v12, v22) {\n v12[0] -= v22[0];\n v12[1] -= v22[1];\n }\n};\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity)\n return Math.pow(distance, constant * 5);\n return distance * dimension * constant \/ (dimension + constant * distance);\n}\nfunction rubberbandIfOutOfBounds(position, min, max, constant = 0.15) {\n if (constant === 0)\n return clamp2(position, min, max);\n if (position < min)\n return -rubberband(min - position, max - min, constant) + min;\n if (position > max)\n return +rubberband(position - max, max - min, constant) + max;\n return position;\n}\nfunction computeRubberband(bounds, [Vx, Vy], [Rx, Ry]) {\n const [[X0, X1], [Y0, Y1]] = bounds;\n return [rubberbandIfOutOfBounds(Vx, X0, X1, Rx), rubberbandIfOutOfBounds(Vy, Y0, Y1, Ry)];\n}\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/core\/dist\/actions-e3d93fde.esm.js\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction ownKeys3(object2, enumerableOnly) {\n var keys = Object.keys(object2);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object2);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object2, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i4 = 1; i4 < arguments.length; i4++) {\n var source = null != arguments[i4] ? arguments[i4] : {};\n i4 % 2 ? ownKeys3(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys3(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar EVENT_TYPE_MAP = {\n pointer: {\n start: \"down\",\n change: \"move\",\n end: \"up\"\n },\n mouse: {\n start: \"down\",\n change: \"move\",\n end: \"up\"\n },\n touch: {\n start: \"start\",\n change: \"move\",\n end: \"end\"\n },\n gesture: {\n start: \"start\",\n change: \"change\",\n end: \"end\"\n }\n};\nfunction capitalize(string) {\n if (!string)\n return \"\";\n return string[0].toUpperCase() + string.slice(1);\n}\nvar actionsWithoutCaptureSupported = [\"enter\", \"leave\"];\nfunction hasCapture(capture = false, actionKey) {\n return capture && !actionsWithoutCaptureSupported.includes(actionKey);\n}\nfunction toHandlerProp(device, action2 = \"\", capture = false) {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action2] || action2 : action2;\n return \"on\" + capitalize(device) + capitalize(actionKey) + (hasCapture(capture, actionKey) ? \"Capture\" : \"\");\n}\nvar pointerCaptureEvents = [\"gotpointercapture\", \"lostpointercapture\"];\nfunction parseProp(prop) {\n let eventKey = prop.substring(2).toLowerCase();\n const passive = !!~eventKey.indexOf(\"passive\");\n if (passive)\n eventKey = eventKey.replace(\"passive\", \"\");\n const captureKey = pointerCaptureEvents.includes(eventKey) ? \"capturecapture\" : \"capture\";\n const capture = !!~eventKey.indexOf(captureKey);\n if (capture)\n eventKey = eventKey.replace(\"capture\", \"\");\n return {\n device: eventKey,\n capture,\n passive\n };\n}\nfunction toDomEventType(device, action2 = \"\") {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action2] || action2 : action2;\n return device + actionKey;\n}\nfunction isTouch(event) {\n return \"touches\" in event;\n}\nfunction getPointerType(event) {\n if (isTouch(event))\n return \"touch\";\n if (\"pointerType\" in event)\n return event.pointerType;\n return \"mouse\";\n}\nfunction getCurrentTargetTouchList(event) {\n return Array.from(event.touches).filter((e2) => {\n var _event$currentTarget, _event$currentTarget$;\n return e2.target === event.currentTarget || ((_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : (_event$currentTarget$ = _event$currentTarget.contains) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.call(_event$currentTarget, e2.target));\n });\n}\nfunction getTouchList(event) {\n return event.type === \"touchend\" || event.type === \"touchcancel\" ? event.changedTouches : event.targetTouches;\n}\nfunction getValueEvent(event) {\n return isTouch(event) ? getTouchList(event)[0] : event;\n}\nfunction distanceAngle(P1, P22) {\n const dx = P22.clientX - P1.clientX;\n const dy = P22.clientY - P1.clientY;\n const cx2 = (P22.clientX + P1.clientX) \/ 2;\n const cy = (P22.clientY + P1.clientY) \/ 2;\n const distance = Math.hypot(dx, dy);\n const angle = -(Math.atan2(dx, dy) * 180) \/ Math.PI;\n const origin = [cx2, cy];\n return {\n angle,\n distance,\n origin\n };\n}\nfunction touchIds(event) {\n return getCurrentTargetTouchList(event).map((touch) => touch.identifier);\n}\nfunction touchDistanceAngle(event, ids) {\n const [P1, P22] = Array.from(event.touches).filter((touch) => ids.includes(touch.identifier));\n return distanceAngle(P1, P22);\n}\nfunction pointerId(event) {\n const valueEvent = getValueEvent(event);\n return isTouch(event) ? valueEvent.identifier : valueEvent.pointerId;\n}\nfunction pointerValues(event) {\n const valueEvent = getValueEvent(event);\n return [valueEvent.clientX, valueEvent.clientY];\n}\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\nfunction wheelValues(event) {\n let {\n deltaX,\n deltaY,\n deltaMode\n } = event;\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n return [deltaX, deltaY];\n}\nfunction scrollValues(event) {\n var _ref, _ref2;\n const {\n scrollX,\n scrollY,\n scrollLeft,\n scrollTop\n } = event.currentTarget;\n return [(_ref = scrollX !== null && scrollX !== void 0 ? scrollX : scrollLeft) !== null && _ref !== void 0 ? _ref : 0, (_ref2 = scrollY !== null && scrollY !== void 0 ? scrollY : scrollTop) !== null && _ref2 !== void 0 ? _ref2 : 0];\n}\nfunction getEventDetails(event) {\n const payload = {};\n if (\"buttons\" in event)\n payload.buttons = event.buttons;\n if (\"shiftKey\" in event) {\n const {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n } = event;\n Object.assign(payload, {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n });\n }\n return payload;\n}\nfunction call(v4, ...args) {\n if (typeof v4 === \"function\") {\n return v4(...args);\n } else {\n return v4;\n }\n}\nfunction noop3() {\n}\nfunction chain(...fns) {\n if (fns.length === 0)\n return noop3;\n if (fns.length === 1)\n return fns[0];\n return function() {\n let result;\n for (const fn of fns) {\n result = fn.apply(this, arguments) || result;\n }\n return result;\n };\n}\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\nvar BEFORE_LAST_KINEMATICS_DELAY = 32;\nvar Engine = class {\n constructor(ctrl, args, key) {\n this.ctrl = ctrl;\n this.args = args;\n this.key = key;\n if (!this.state) {\n this.state = {};\n this.computeValues([0, 0]);\n this.computeInitial();\n if (this.init)\n this.init();\n this.reset();\n }\n }\n get state() {\n return this.ctrl.state[this.key];\n }\n set state(state) {\n this.ctrl.state[this.key] = state;\n }\n get shared() {\n return this.ctrl.state.shared;\n }\n get eventStore() {\n return this.ctrl.gestureEventStores[this.key];\n }\n get timeoutStore() {\n return this.ctrl.gestureTimeoutStores[this.key];\n }\n get config() {\n return this.ctrl.config[this.key];\n }\n get sharedConfig() {\n return this.ctrl.config.shared;\n }\n get handler() {\n return this.ctrl.handlers[this.key];\n }\n reset() {\n const {\n state,\n shared,\n ingKey,\n args\n } = this;\n shared[ingKey] = state._active = state.active = state._blocked = state._force = false;\n state._step = [false, false];\n state.intentional = false;\n state._movement = [0, 0];\n state._distance = [0, 0];\n state._direction = [0, 0];\n state._delta = [0, 0];\n state._bounds = [[-Infinity, Infinity], [-Infinity, Infinity]];\n state.args = args;\n state.axis = void 0;\n state.memo = void 0;\n state.elapsedTime = 0;\n state.direction = [0, 0];\n state.distance = [0, 0];\n state.overflow = [0, 0];\n state._movementBound = [false, false];\n state.velocity = [0, 0];\n state.movement = [0, 0];\n state.delta = [0, 0];\n state.timeStamp = 0;\n }\n start(event) {\n const state = this.state;\n const config = this.config;\n if (!state._active) {\n this.reset();\n this.computeInitial();\n state._active = true;\n state.target = event.target;\n state.currentTarget = event.currentTarget;\n state.lastOffset = config.from ? call(config.from, state) : state.offset;\n state.offset = state.lastOffset;\n }\n state.startTime = state.timeStamp = event.timeStamp;\n }\n computeValues(values) {\n const state = this.state;\n state._values = values;\n state.values = this.config.transform(values);\n }\n computeInitial() {\n const state = this.state;\n state._initial = state._values;\n state.initial = state.values;\n }\n compute(event) {\n const {\n state,\n config,\n shared\n } = this;\n state.args = this.args;\n let dt2 = 0;\n if (event) {\n state.event = event;\n if (config.preventDefault && event.cancelable)\n state.event.preventDefault();\n state.type = event.type;\n shared.touches = this.ctrl.pointerIds.size || this.ctrl.touchIds.size;\n shared.locked = !!document.pointerLockElement;\n Object.assign(shared, getEventDetails(event));\n shared.down = shared.pressed = shared.buttons % 2 === 1 || shared.touches > 0;\n dt2 = event.timeStamp - state.timeStamp;\n state.timeStamp = event.timeStamp;\n state.elapsedTime = state.timeStamp - state.startTime;\n }\n if (state._active) {\n const _absoluteDelta = state._delta.map(Math.abs);\n V.addTo(state._distance, _absoluteDelta);\n }\n if (this.axisIntent)\n this.axisIntent(event);\n const [_m0, _m1] = state._movement;\n const [t0, t1] = config.threshold;\n const {\n _step,\n values\n } = state;\n if (config.hasCustomTransform) {\n if (_step[0] === false)\n _step[0] = Math.abs(_m0) >= t0 && values[0];\n if (_step[1] === false)\n _step[1] = Math.abs(_m1) >= t1 && values[1];\n } else {\n if (_step[0] === false)\n _step[0] = Math.abs(_m0) >= t0 && Math.sign(_m0) * t0;\n if (_step[1] === false)\n _step[1] = Math.abs(_m1) >= t1 && Math.sign(_m1) * t1;\n }\n state.intentional = _step[0] !== false || _step[1] !== false;\n if (!state.intentional)\n return;\n const movement = [0, 0];\n if (config.hasCustomTransform) {\n const [v0, v12] = values;\n movement[0] = _step[0] !== false ? v0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? v12 - _step[1] : 0;\n } else {\n movement[0] = _step[0] !== false ? _m0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? _m1 - _step[1] : 0;\n }\n if (this.restrictToAxis && !state._blocked)\n this.restrictToAxis(movement);\n const previousOffset = state.offset;\n const gestureIsActive = state._active && !state._blocked || state.active;\n if (gestureIsActive) {\n state.first = state._active && !state.active;\n state.last = !state._active && state.active;\n state.active = shared[this.ingKey] = state._active;\n if (event) {\n if (state.first) {\n if (\"bounds\" in config)\n state._bounds = call(config.bounds, state);\n if (this.setup)\n this.setup();\n }\n state.movement = movement;\n this.computeOffset();\n }\n }\n const [ox, oy] = state.offset;\n const [[x0, x1], [y0, y1]] = state._bounds;\n state.overflow = [ox < x0 ? -1 : ox > x1 ? 1 : 0, oy < y0 ? -1 : oy > y1 ? 1 : 0];\n state._movementBound[0] = state.overflow[0] ? state._movementBound[0] === false ? state._movement[0] : state._movementBound[0] : false;\n state._movementBound[1] = state.overflow[1] ? state._movementBound[1] === false ? state._movement[1] : state._movementBound[1] : false;\n const rubberband2 = state._active ? config.rubberband || [0, 0] : [0, 0];\n state.offset = computeRubberband(state._bounds, state.offset, rubberband2);\n state.delta = V.sub(state.offset, previousOffset);\n this.computeMovement();\n if (gestureIsActive && (!state.last || dt2 > BEFORE_LAST_KINEMATICS_DELAY)) {\n state.delta = V.sub(state.offset, previousOffset);\n const absoluteDelta = state.delta.map(Math.abs);\n V.addTo(state.distance, absoluteDelta);\n state.direction = state.delta.map(Math.sign);\n state._direction = state._delta.map(Math.sign);\n if (!state.first && dt2 > 0) {\n state.velocity = [absoluteDelta[0] \/ dt2, absoluteDelta[1] \/ dt2];\n }\n }\n }\n emit() {\n const state = this.state;\n const shared = this.shared;\n const config = this.config;\n if (!state._active)\n this.clean();\n if ((state._blocked || !state.intentional) && !state._force && !config.triggerAllEvents)\n return;\n const memo6 = this.handler(_objectSpread2(_objectSpread2(_objectSpread2({}, shared), state), {}, {\n [this.aliasKey]: state.values\n }));\n if (memo6 !== void 0)\n state.memo = memo6;\n }\n clean() {\n this.eventStore.clean();\n this.timeoutStore.clean();\n }\n};\nfunction selectAxis([dx, dy], threshold) {\n const absDx = Math.abs(dx);\n const absDy = Math.abs(dy);\n if (absDx > absDy && absDx > threshold) {\n return \"x\";\n }\n if (absDy > absDx && absDy > threshold) {\n return \"y\";\n }\n return void 0;\n}\nvar CoordinatesEngine = class extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"aliasKey\", \"xy\");\n }\n reset() {\n super.reset();\n this.state.axis = void 0;\n }\n init() {\n this.state.offset = [0, 0];\n this.state.lastOffset = [0, 0];\n }\n computeOffset() {\n this.state.offset = V.add(this.state.lastOffset, this.state.movement);\n }\n computeMovement() {\n this.state.movement = V.sub(this.state.offset, this.state.lastOffset);\n }\n axisIntent(event) {\n const state = this.state;\n const config = this.config;\n if (!state.axis && event) {\n const threshold = typeof config.axisThreshold === \"object\" ? config.axisThreshold[getPointerType(event)] : config.axisThreshold;\n state.axis = selectAxis(state._movement, threshold);\n }\n state._blocked = (config.lockDirection || !!config.axis) && !state.axis || !!config.axis && config.axis !== state.axis;\n }\n restrictToAxis(v4) {\n if (this.config.axis || this.config.lockDirection) {\n switch (this.state.axis) {\n case \"x\":\n v4[1] = 0;\n break;\n case \"y\":\n v4[0] = 0;\n break;\n }\n }\n }\n};\nvar identity = (v4) => v4;\nvar DEFAULT_RUBBERBAND = 0.15;\nvar commonConfigResolver = {\n enabled(value = true) {\n return value;\n },\n eventOptions(value, _k, config) {\n return _objectSpread2(_objectSpread2({}, config.shared.eventOptions), value);\n },\n preventDefault(value = false) {\n return value;\n },\n triggerAllEvents(value = false) {\n return value;\n },\n rubberband(value = 0) {\n switch (value) {\n case true:\n return [DEFAULT_RUBBERBAND, DEFAULT_RUBBERBAND];\n case false:\n return [0, 0];\n default:\n return V.toVector(value);\n }\n },\n from(value) {\n if (typeof value === \"function\")\n return value;\n if (value != null)\n return V.toVector(value);\n },\n transform(value, _k, config) {\n const transform = value || config.shared.transform;\n this.hasCustomTransform = !!transform;\n if (false) {\n const originalTransform = transform || identity;\n return (v4) => {\n const r4 = originalTransform(v4);\n if (!isFinite(r4[0]) || !isFinite(r4[1])) {\n console.warn(`[@use-gesture]: config.transform() must produce a valid result, but it was: [${r4[0]},${[1]}]`);\n }\n return r4;\n };\n }\n return transform || identity;\n },\n threshold(value) {\n return V.toVector(value, 0);\n }\n};\nif (false) {\n Object.assign(commonConfigResolver, {\n domTarget(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n return NaN;\n },\n lockDirection(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`lockDirection\\` option has been merged with \\`axis\\`. Use it as in \\`{ axis: 'lock' }\\``);\n }\n return NaN;\n },\n initial(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`initial\\` option has been renamed to \\`from\\`.`);\n }\n return NaN;\n }\n });\n}\nvar DEFAULT_AXIS_THRESHOLD = 0;\nvar coordinatesConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n axis(_v, _k, {\n axis\n }) {\n this.lockDirection = axis === \"lock\";\n if (!this.lockDirection)\n return axis;\n },\n axisThreshold(value = DEFAULT_AXIS_THRESHOLD) {\n return value;\n },\n bounds(value = {}) {\n if (typeof value === \"function\") {\n return (state) => coordinatesConfigResolver.bounds(value(state));\n }\n if (\"current\" in value) {\n return () => value.current;\n }\n if (typeof HTMLElement === \"function\" && value instanceof HTMLElement) {\n return value;\n }\n const {\n left = -Infinity,\n right = Infinity,\n top = -Infinity,\n bottom = Infinity\n } = value;\n return [[left, right], [top, bottom]];\n }\n});\nvar DISPLACEMENT = 10;\nvar KEYS_DELTA_MAP = {\n ArrowRight: (factor = 1) => [DISPLACEMENT * factor, 0],\n ArrowLeft: (factor = 1) => [-DISPLACEMENT * factor, 0],\n ArrowUp: (factor = 1) => [0, -DISPLACEMENT * factor],\n ArrowDown: (factor = 1) => [0, DISPLACEMENT * factor]\n};\nvar DragEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"dragging\");\n }\n reset() {\n super.reset();\n const state = this.state;\n state._pointerId = void 0;\n state._pointerActive = false;\n state._keyboardActive = false;\n state._preventScroll = false;\n state._delayed = false;\n state.swipe = [0, 0];\n state.tap = false;\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n }\n setup() {\n const state = this.state;\n if (state._bounds instanceof HTMLElement) {\n const boundRect = state._bounds.getBoundingClientRect();\n const targetRect = state.currentTarget.getBoundingClientRect();\n const _bounds = {\n left: boundRect.left - targetRect.left + state.offset[0],\n right: boundRect.right - targetRect.right + state.offset[0],\n top: boundRect.top - targetRect.top + state.offset[1],\n bottom: boundRect.bottom - targetRect.bottom + state.offset[1]\n };\n state._bounds = coordinatesConfigResolver.bounds(_bounds);\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled)\n return;\n state.canceled = true;\n state._active = false;\n setTimeout(() => {\n this.compute();\n this.emit();\n }, 0);\n }\n setActive() {\n this.state._active = this.state._pointerActive || this.state._keyboardActive;\n }\n clean() {\n this.pointerClean();\n this.state._pointerActive = false;\n this.state._keyboardActive = false;\n super.clean();\n }\n pointerDown(event) {\n const config = this.config;\n const state = this.state;\n if (event.buttons != null && (Array.isArray(config.pointerButtons) ? !config.pointerButtons.includes(event.buttons) : config.pointerButtons !== -1 && config.pointerButtons !== event.buttons))\n return;\n const ctrlIds = this.ctrl.setEventIds(event);\n if (config.pointerCapture) {\n event.target.setPointerCapture(event.pointerId);\n }\n if (ctrlIds && ctrlIds.size > 1 && state._pointerActive)\n return;\n this.start(event);\n this.setupPointer(event);\n state._pointerId = pointerId(event);\n state._pointerActive = true;\n this.computeValues(pointerValues(event));\n this.computeInitial();\n if (config.preventScrollAxis && getPointerType(event) !== \"mouse\") {\n state._active = false;\n this.setupScrollPrevention(event);\n } else if (config.delay > 0) {\n this.setupDelayTrigger(event);\n if (config.triggerAllEvents) {\n this.compute(event);\n this.emit();\n }\n } else {\n this.startPointerDrag(event);\n }\n }\n startPointerDrag(event) {\n const state = this.state;\n state._active = true;\n state._preventScroll = true;\n state._delayed = false;\n this.compute(event);\n this.emit();\n }\n pointerMove(event) {\n const state = this.state;\n const config = this.config;\n if (!state._pointerActive)\n return;\n if (state.type === event.type && event.timeStamp === state.timeStamp)\n return;\n const id3 = pointerId(event);\n if (state._pointerId !== void 0 && id3 !== state._pointerId)\n return;\n const _values = pointerValues(event);\n if (document.pointerLockElement === event.target) {\n state._delta = [event.movementX, event.movementY];\n } else {\n state._delta = V.sub(_values, state._values);\n this.computeValues(_values);\n }\n V.addTo(state._movement, state._delta);\n this.compute(event);\n if (state._delayed && state.intentional) {\n this.timeoutStore.remove(\"dragDelay\");\n state.active = false;\n this.startPointerDrag(event);\n return;\n }\n if (config.preventScrollAxis && !state._preventScroll) {\n if (state.axis) {\n if (state.axis === config.preventScrollAxis || config.preventScrollAxis === \"xy\") {\n state._active = false;\n this.clean();\n return;\n } else {\n this.timeoutStore.remove(\"startPointerDrag\");\n this.startPointerDrag(event);\n return;\n }\n } else {\n return;\n }\n }\n this.emit();\n }\n pointerUp(event) {\n this.ctrl.setEventIds(event);\n try {\n if (this.config.pointerCapture && event.target.hasPointerCapture(event.pointerId)) {\n ;\n event.target.releasePointerCapture(event.pointerId);\n }\n } catch (_unused) {\n if (false) {\n console.warn(`[@use-gesture]: If you see this message, it's likely that you're using an outdated version of \\`@react-three\/fiber\\`. \n\nPlease upgrade to the latest version.`);\n }\n }\n const state = this.state;\n const config = this.config;\n if (!state._active || !state._pointerActive)\n return;\n const id3 = pointerId(event);\n if (state._pointerId !== void 0 && id3 !== state._pointerId)\n return;\n this.state._pointerActive = false;\n this.setActive();\n this.compute(event);\n const [dx, dy] = state._distance;\n state.tap = dx <= config.tapsThreshold && dy <= config.tapsThreshold;\n if (state.tap && config.filterTaps) {\n state._force = true;\n } else {\n const [dirx, diry] = state.direction;\n const [vx, vy] = state.velocity;\n const [mx, my] = state.movement;\n const [svx, svy] = config.swipe.velocity;\n const [sx, sy] = config.swipe.distance;\n const sdt = config.swipe.duration;\n if (state.elapsedTime < sdt) {\n if (Math.abs(vx) > svx && Math.abs(mx) > sx)\n state.swipe[0] = dirx;\n if (Math.abs(vy) > svy && Math.abs(my) > sy)\n state.swipe[1] = diry;\n }\n }\n this.emit();\n }\n pointerClick(event) {\n if (!this.state.tap && event.detail > 0) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n setupPointer(event) {\n const config = this.config;\n const device = config.device;\n if (false) {\n try {\n if (device === \"pointer\" && config.preventScrollDelay === void 0) {\n const currentTarget = \"uv\" in event ? event.sourceEvent.currentTarget : event.currentTarget;\n const style = window.getComputedStyle(currentTarget);\n if (style.touchAction === \"auto\") {\n console.warn(`[@use-gesture]: The drag target has its \\`touch-action\\` style property set to \\`auto\\`. It is recommended to add \\`touch-action: 'none'\\` so that the drag gesture behaves correctly on touch-enabled devices. For more information read this: https:\/\/use-gesture.netlify.app\/docs\/extras\/#touch-action.\n\nThis message will only show in development mode. It won't appear in production. If this is intended, you can ignore it.`, currentTarget);\n }\n }\n } catch (_unused2) {\n }\n }\n if (config.pointerLock) {\n event.currentTarget.requestPointerLock();\n }\n if (!config.pointerCapture) {\n this.eventStore.add(this.sharedConfig.window, device, \"change\", this.pointerMove.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, \"end\", this.pointerUp.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, \"cancel\", this.pointerUp.bind(this));\n }\n }\n pointerClean() {\n if (this.config.pointerLock && document.pointerLockElement === this.state.currentTarget) {\n document.exitPointerLock();\n }\n }\n preventScroll(event) {\n if (this.state._preventScroll && event.cancelable) {\n event.preventDefault();\n }\n }\n setupScrollPrevention(event) {\n this.state._preventScroll = false;\n persistEvent(event);\n const remove2 = this.eventStore.add(this.sharedConfig.window, \"touch\", \"change\", this.preventScroll.bind(this), {\n passive: false\n });\n this.eventStore.add(this.sharedConfig.window, \"touch\", \"end\", remove2);\n this.eventStore.add(this.sharedConfig.window, \"touch\", \"cancel\", remove2);\n this.timeoutStore.add(\"startPointerDrag\", this.startPointerDrag.bind(this), this.config.preventScrollDelay, event);\n }\n setupDelayTrigger(event) {\n this.state._delayed = true;\n this.timeoutStore.add(\"dragDelay\", () => {\n this.state._step = [0, 0];\n this.startPointerDrag(event);\n }, this.config.delay);\n }\n keyDown(event) {\n const deltaFn = KEYS_DELTA_MAP[event.key];\n if (deltaFn) {\n const state = this.state;\n const factor = event.shiftKey ? 10 : event.altKey ? 0.1 : 1;\n this.start(event);\n state._delta = deltaFn(factor);\n state._keyboardActive = true;\n V.addTo(state._movement, state._delta);\n this.compute(event);\n this.emit();\n }\n }\n keyUp(event) {\n if (!(event.key in KEYS_DELTA_MAP))\n return;\n this.state._keyboardActive = false;\n this.setActive();\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n bindFunction(device, \"start\", this.pointerDown.bind(this));\n if (this.config.pointerCapture) {\n bindFunction(device, \"change\", this.pointerMove.bind(this));\n bindFunction(device, \"end\", this.pointerUp.bind(this));\n bindFunction(device, \"cancel\", this.pointerUp.bind(this));\n bindFunction(\"lostPointerCapture\", \"\", this.pointerUp.bind(this));\n }\n if (this.config.keys) {\n bindFunction(\"key\", \"down\", this.keyDown.bind(this));\n bindFunction(\"key\", \"up\", this.keyUp.bind(this));\n }\n if (this.config.filterTaps) {\n bindFunction(\"click\", \"\", this.pointerClick.bind(this), {\n capture: true,\n passive: false\n });\n }\n }\n};\nfunction persistEvent(event) {\n \"persist\" in event && typeof event.persist === \"function\" && event.persist();\n}\nvar isBrowser = typeof window !== \"undefined\" && window.document && window.document.createElement;\nfunction supportsTouchEvents() {\n return isBrowser && \"ontouchstart\" in window;\n}\nfunction isTouchScreen() {\n return supportsTouchEvents() || isBrowser && window.navigator.maxTouchPoints > 1;\n}\nfunction supportsPointerEvents() {\n return isBrowser && \"onpointerdown\" in window;\n}\nfunction supportsPointerLock() {\n return isBrowser && \"exitPointerLock\" in window.document;\n}\nfunction supportsGestureEvents() {\n try {\n return \"constructor\" in GestureEvent;\n } catch (e2) {\n return false;\n }\n}\nvar SUPPORT = {\n isBrowser,\n gesture: supportsGestureEvents(),\n touch: isTouchScreen(),\n touchscreen: isTouchScreen(),\n pointer: supportsPointerEvents(),\n pointerLock: supportsPointerLock()\n};\nvar DEFAULT_PREVENT_SCROLL_DELAY = 250;\nvar DEFAULT_DRAG_DELAY = 180;\nvar DEFAULT_SWIPE_VELOCITY = 0.5;\nvar DEFAULT_SWIPE_DISTANCE = 50;\nvar DEFAULT_SWIPE_DURATION = 250;\nvar DEFAULT_DRAG_AXIS_THRESHOLD = {\n mouse: 0,\n touch: 0,\n pen: 8\n};\nvar dragConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n device(_v, _k, {\n pointer: {\n touch = false,\n lock = false,\n mouse = false\n } = {}\n }) {\n this.pointerLock = lock && SUPPORT.pointerLock;\n if (SUPPORT.touch && touch)\n return \"touch\";\n if (this.pointerLock)\n return \"mouse\";\n if (SUPPORT.pointer && !mouse)\n return \"pointer\";\n if (SUPPORT.touch)\n return \"touch\";\n return \"mouse\";\n },\n preventScrollAxis(value, _k, {\n preventScroll\n }) {\n this.preventScrollDelay = typeof preventScroll === \"number\" ? preventScroll : preventScroll || preventScroll === void 0 && value ? DEFAULT_PREVENT_SCROLL_DELAY : void 0;\n if (!SUPPORT.touchscreen || preventScroll === false)\n return void 0;\n return value ? value : preventScroll !== void 0 ? \"y\" : void 0;\n },\n pointerCapture(_v, _k, {\n pointer: {\n capture = true,\n buttons = 1,\n keys = true\n } = {}\n }) {\n this.pointerButtons = buttons;\n this.keys = keys;\n return !this.pointerLock && this.device === \"pointer\" && capture;\n },\n threshold(value, _k, {\n filterTaps = false,\n tapsThreshold = 3,\n axis = void 0\n }) {\n const threshold = V.toVector(value, filterTaps ? tapsThreshold : axis ? 1 : 0);\n this.filterTaps = filterTaps;\n this.tapsThreshold = tapsThreshold;\n return threshold;\n },\n swipe({\n velocity = DEFAULT_SWIPE_VELOCITY,\n distance = DEFAULT_SWIPE_DISTANCE,\n duration = DEFAULT_SWIPE_DURATION\n } = {}) {\n return {\n velocity: this.transform(V.toVector(velocity)),\n distance: this.transform(V.toVector(distance)),\n duration\n };\n },\n delay(value = 0) {\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n case false:\n return 0;\n default:\n return value;\n }\n },\n axisThreshold(value) {\n if (!value)\n return DEFAULT_DRAG_AXIS_THRESHOLD;\n return _objectSpread2(_objectSpread2({}, DEFAULT_DRAG_AXIS_THRESHOLD), value);\n }\n});\nif (false) {\n Object.assign(dragConfigResolver, {\n useTouch(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`useTouch\\` option has been renamed to \\`pointer.touch\\`. Use it as in \\`{ pointer: { touch: true } }\\`.`);\n }\n return NaN;\n },\n experimental_preventWindowScrollY(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`experimental_preventWindowScrollY\\` option has been renamed to \\`preventScroll\\`.`);\n }\n return NaN;\n },\n swipeVelocity(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`swipeVelocity\\` option has been renamed to \\`swipe.velocity\\`. Use it as in \\`{ swipe: { velocity: 0.5 } }\\`.`);\n }\n return NaN;\n },\n swipeDistance(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`swipeDistance\\` option has been renamed to \\`swipe.distance\\`. Use it as in \\`{ swipe: { distance: 50 } }\\`.`);\n }\n return NaN;\n },\n swipeDuration(value) {\n if (value !== void 0) {\n throw Error(`[@use-gesture]: \\`swipeDuration\\` option has been renamed to \\`swipe.duration\\`. Use it as in \\`{ swipe: { duration: 250 } }\\`.`);\n }\n return NaN;\n }\n });\n}\nfunction clampStateInternalMovementToBounds(state) {\n const [ox, oy] = state.overflow;\n const [dx, dy] = state._delta;\n const [dirx, diry] = state._direction;\n if (ox < 0 && dx > 0 && dirx < 0 || ox > 0 && dx < 0 && dirx > 0) {\n state._movement[0] = state._movementBound[0];\n }\n if (oy < 0 && dy > 0 && diry < 0 || oy > 0 && dy < 0 && diry > 0) {\n state._movement[1] = state._movementBound[1];\n }\n}\nvar SCALE_ANGLE_RATIO_INTENT_DEG = 30;\nvar PINCH_WHEEL_RATIO = 100;\nvar PinchEngine = class extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"pinching\");\n _defineProperty(this, \"aliasKey\", \"da\");\n }\n init() {\n this.state.offset = [1, 0];\n this.state.lastOffset = [1, 0];\n this.state._pointerEvents = \/* @__PURE__ *\/ new Map();\n }\n reset() {\n super.reset();\n const state = this.state;\n state._touchIds = [];\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n state.turns = 0;\n }\n computeOffset() {\n const {\n type,\n movement,\n lastOffset\n } = this.state;\n if (type === \"wheel\") {\n this.state.offset = V.add(movement, lastOffset);\n } else {\n this.state.offset = [(1 + movement[0]) * lastOffset[0], movement[1] + lastOffset[1]];\n }\n }\n computeMovement() {\n const {\n offset,\n lastOffset\n } = this.state;\n this.state.movement = [offset[0] \/ lastOffset[0], offset[1] - lastOffset[1]];\n }\n axisIntent() {\n const state = this.state;\n const [_m0, _m1] = state._movement;\n if (!state.axis) {\n const axisMovementDifference = Math.abs(_m0) * SCALE_ANGLE_RATIO_INTENT_DEG - Math.abs(_m1);\n if (axisMovementDifference < 0)\n state.axis = \"angle\";\n else if (axisMovementDifference > 0)\n state.axis = \"scale\";\n }\n }\n restrictToAxis(v4) {\n if (this.config.lockDirection) {\n if (this.state.axis === \"scale\")\n v4[1] = 0;\n else if (this.state.axis === \"angle\")\n v4[0] = 0;\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled)\n return;\n setTimeout(() => {\n state.canceled = true;\n state._active = false;\n this.compute();\n this.emit();\n }, 0);\n }\n touchStart(event) {\n this.ctrl.setEventIds(event);\n const state = this.state;\n const ctrlTouchIds = this.ctrl.touchIds;\n if (state._active) {\n if (state._touchIds.every((id3) => ctrlTouchIds.has(id3)))\n return;\n }\n if (ctrlTouchIds.size < 2)\n return;\n this.start(event);\n state._touchIds = Array.from(ctrlTouchIds).slice(0, 2);\n const payload = touchDistanceAngle(event, state._touchIds);\n this.pinchStart(event, payload);\n }\n pointerStart(event) {\n if (event.buttons != null && event.buttons % 2 !== 1)\n return;\n this.ctrl.setEventIds(event);\n event.target.setPointerCapture(event.pointerId);\n const state = this.state;\n const _pointerEvents = state._pointerEvents;\n const ctrlPointerIds = this.ctrl.pointerIds;\n if (state._active) {\n if (Array.from(_pointerEvents.keys()).every((id3) => ctrlPointerIds.has(id3)))\n return;\n }\n if (_pointerEvents.size < 2) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (state._pointerEvents.size < 2)\n return;\n this.start(event);\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n this.pinchStart(event, payload);\n }\n pinchStart(event, payload) {\n const state = this.state;\n state.origin = payload.origin;\n this.computeValues([payload.distance, payload.angle]);\n this.computeInitial();\n this.compute(event);\n this.emit();\n }\n touchMove(event) {\n if (!this.state._active)\n return;\n const payload = touchDistanceAngle(event, this.state._touchIds);\n this.pinchMove(event, payload);\n }\n pointerMove(event) {\n const _pointerEvents = this.state._pointerEvents;\n if (_pointerEvents.has(event.pointerId)) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (!this.state._active)\n return;\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n this.pinchMove(event, payload);\n }\n pinchMove(event, payload) {\n const state = this.state;\n const prev_a = state._values[1];\n const delta_a = payload.angle - prev_a;\n let delta_turns = 0;\n if (Math.abs(delta_a) > 270)\n delta_turns += Math.sign(delta_a);\n this.computeValues([payload.distance, payload.angle - 360 * delta_turns]);\n state.origin = payload.origin;\n state.turns = delta_turns;\n state._movement = [state._values[0] \/ state._initial[0] - 1, state._values[1] - state._initial[1]];\n this.compute(event);\n this.emit();\n }\n touchEnd(event) {\n this.ctrl.setEventIds(event);\n if (!this.state._active)\n return;\n if (this.state._touchIds.some((id3) => !this.ctrl.touchIds.has(id3))) {\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n pointerEnd(event) {\n const state = this.state;\n this.ctrl.setEventIds(event);\n try {\n event.target.releasePointerCapture(event.pointerId);\n } catch (_unused) {\n }\n if (state._pointerEvents.has(event.pointerId)) {\n state._pointerEvents.delete(event.pointerId);\n }\n if (!state._active)\n return;\n if (state._pointerEvents.size < 2) {\n state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n gestureStart(event) {\n if (event.cancelable)\n event.preventDefault();\n const state = this.state;\n if (state._active)\n return;\n this.start(event);\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n gestureMove(event) {\n if (event.cancelable)\n event.preventDefault();\n if (!this.state._active)\n return;\n const state = this.state;\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n const _previousMovement = state._movement;\n state._movement = [event.scale - 1, event.rotation];\n state._delta = V.sub(state._movement, _previousMovement);\n this.compute(event);\n this.emit();\n }\n gestureEnd(event) {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n wheel(event) {\n const modifierKey = this.config.modifierKey;\n if (modifierKey && !event[modifierKey])\n return;\n if (!this.state._active)\n this.wheelStart(event);\n else\n this.wheelChange(event);\n this.timeoutStore.add(\"wheelEnd\", this.wheelEnd.bind(this));\n }\n wheelStart(event) {\n this.start(event);\n this.wheelChange(event);\n }\n wheelChange(event) {\n const isR3f = \"uv\" in event;\n if (!isR3f) {\n if (event.cancelable) {\n event.preventDefault();\n }\n if (false) {\n console.warn(`[@use-gesture]: To properly support zoom on trackpads, try using the \\`target\\` option.\n\nThis message will only appear in development mode.`);\n }\n }\n const state = this.state;\n state._delta = [-wheelValues(event)[1] \/ PINCH_WHEEL_RATIO * state.offset[0], 0];\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n if (!!device) {\n bindFunction(device, \"start\", this[device + \"Start\"].bind(this));\n bindFunction(device, \"change\", this[device + \"Move\"].bind(this));\n bindFunction(device, \"end\", this[device + \"End\"].bind(this));\n bindFunction(device, \"cancel\", this[device + \"End\"].bind(this));\n }\n if (this.config.pinchOnWheel) {\n bindFunction(\"wheel\", \"\", this.wheel.bind(this), {\n passive: false\n });\n }\n }\n};\nvar pinchConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n device(_v, _k, {\n shared,\n pointer: {\n touch = false\n } = {}\n }) {\n const sharedConfig = shared;\n if (sharedConfig.target && !SUPPORT.touch && SUPPORT.gesture)\n return \"gesture\";\n if (SUPPORT.touch && touch)\n return \"touch\";\n if (SUPPORT.touchscreen) {\n if (SUPPORT.pointer)\n return \"pointer\";\n if (SUPPORT.touch)\n return \"touch\";\n }\n },\n bounds(_v, _k, {\n scaleBounds = {},\n angleBounds = {}\n }) {\n const _scaleBounds = (state) => {\n const D4 = assignDefault(call(scaleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D4.min, D4.max];\n };\n const _angleBounds = (state) => {\n const A4 = assignDefault(call(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A4.min, A4.max];\n };\n if (typeof scaleBounds !== \"function\" && typeof angleBounds !== \"function\")\n return [_scaleBounds(), _angleBounds()];\n return (state) => [_scaleBounds(state), _angleBounds(state)];\n },\n threshold(value, _k, config) {\n this.lockDirection = config.axis === \"lock\";\n const threshold = V.toVector(value, this.lockDirection ? [0.1, 3] : 0);\n return threshold;\n },\n modifierKey(value) {\n if (value === void 0)\n return \"ctrlKey\";\n return value;\n },\n pinchOnWheel(value = true) {\n return value;\n }\n});\nvar MoveEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"moving\");\n }\n move(event) {\n if (this.config.mouseOnly && event.pointerType !== \"mouse\")\n return;\n if (!this.state._active)\n this.moveStart(event);\n else\n this.moveChange(event);\n this.timeoutStore.add(\"moveEnd\", this.moveEnd.bind(this));\n }\n moveStart(event) {\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.computeInitial();\n this.emit();\n }\n moveChange(event) {\n if (!this.state._active)\n return;\n const values = pointerValues(event);\n const state = this.state;\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n moveEnd(event) {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"pointer\", \"change\", this.move.bind(this));\n bindFunction(\"pointer\", \"leave\", this.moveEnd.bind(this));\n }\n};\nvar moveConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\nvar ScrollEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"scrolling\");\n }\n scroll(event) {\n if (!this.state._active)\n this.start(event);\n this.scrollChange(event);\n this.timeoutStore.add(\"scrollEnd\", this.scrollEnd.bind(this));\n }\n scrollChange(event) {\n if (event.cancelable)\n event.preventDefault();\n const state = this.state;\n const values = scrollValues(event);\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n scrollEnd() {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"scroll\", \"\", this.scroll.bind(this));\n }\n};\nvar scrollConfigResolver = coordinatesConfigResolver;\nvar WheelEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"wheeling\");\n }\n wheel(event) {\n if (!this.state._active)\n this.start(event);\n this.wheelChange(event);\n this.timeoutStore.add(\"wheelEnd\", this.wheelEnd.bind(this));\n }\n wheelChange(event) {\n const state = this.state;\n state._delta = wheelValues(event);\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active)\n return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"wheel\", \"\", this.wheel.bind(this));\n }\n};\nvar wheelConfigResolver = coordinatesConfigResolver;\nvar HoverEngine = class extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", \"hovering\");\n }\n enter(event) {\n if (this.config.mouseOnly && event.pointerType !== \"mouse\")\n return;\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.emit();\n }\n leave(event) {\n if (this.config.mouseOnly && event.pointerType !== \"mouse\")\n return;\n const state = this.state;\n if (!state._active)\n return;\n state._active = false;\n const values = pointerValues(event);\n state._movement = state._delta = V.sub(values, state._values);\n this.computeValues(values);\n this.compute(event);\n state.delta = state.movement;\n this.emit();\n }\n bind(bindFunction) {\n bindFunction(\"pointer\", \"enter\", this.enter.bind(this));\n bindFunction(\"pointer\", \"leave\", this.leave.bind(this));\n }\n};\nvar hoverConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\nvar EngineMap = \/* @__PURE__ *\/ new Map();\nvar ConfigResolverMap = \/* @__PURE__ *\/ new Map();\nfunction registerAction(action2) {\n EngineMap.set(action2.key, action2.engine);\n ConfigResolverMap.set(action2.key, action2.resolver);\n}\nvar dragAction = {\n key: \"drag\",\n engine: DragEngine,\n resolver: dragConfigResolver\n};\nvar hoverAction = {\n key: \"hover\",\n engine: HoverEngine,\n resolver: hoverConfigResolver\n};\nvar moveAction = {\n key: \"move\",\n engine: MoveEngine,\n resolver: moveConfigResolver\n};\nvar pinchAction = {\n key: \"pinch\",\n engine: PinchEngine,\n resolver: pinchConfigResolver\n};\nvar scrollAction = {\n key: \"scroll\",\n engine: ScrollEngine,\n resolver: scrollConfigResolver\n};\nvar wheelAction = {\n key: \"wheel\",\n engine: WheelEngine,\n resolver: wheelConfigResolver\n};\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/react\/dist\/use-gesture-react.esm.js\nvar import_react2 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/core\/dist\/use-gesture-core.esm.js\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null)\n return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i4;\n for (i4 = 0; i4 < sourceKeys.length; i4++) {\n key = sourceKeys[i4];\n if (excluded.indexOf(key) >= 0)\n continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null)\n return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i4;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i4 = 0; i4 < sourceSymbolKeys.length; i4++) {\n key = sourceSymbolKeys[i4];\n if (excluded.indexOf(key) >= 0)\n continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nvar sharedConfigResolver = {\n target(value) {\n if (value) {\n return () => \"current\" in value ? value.current : value;\n }\n return void 0;\n },\n enabled(value = true) {\n return value;\n },\n window(value = SUPPORT.isBrowser ? window : void 0) {\n return value;\n },\n eventOptions({\n passive = true,\n capture = false\n } = {}) {\n return {\n passive,\n capture\n };\n },\n transform(value) {\n return value;\n }\n};\nvar _excluded = [\"target\", \"eventOptions\", \"window\", \"enabled\", \"transform\"];\nfunction resolveWith(config = {}, resolvers) {\n const result = {};\n for (const [key, resolver] of Object.entries(resolvers)) {\n switch (typeof resolver) {\n case \"function\":\n if (false) {\n const r4 = resolver.call(result, config[key], key, config);\n if (!Number.isNaN(r4))\n result[key] = r4;\n } else {\n result[key] = resolver.call(result, config[key], key, config);\n }\n break;\n case \"object\":\n result[key] = resolveWith(config[key], resolver);\n break;\n case \"boolean\":\n if (resolver)\n result[key] = config[key];\n break;\n }\n }\n return result;\n}\nfunction parse2(newConfig, gestureKey, _config = {}) {\n const _ref = newConfig, {\n target,\n eventOptions,\n window: window2,\n enabled,\n transform\n } = _ref, rest = _objectWithoutProperties(_ref, _excluded);\n _config.shared = resolveWith({\n target,\n eventOptions,\n window: window2,\n enabled,\n transform\n }, sharedConfigResolver);\n if (gestureKey) {\n const resolver = ConfigResolverMap.get(gestureKey);\n _config[gestureKey] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest), resolver);\n } else {\n for (const key in rest) {\n const resolver = ConfigResolverMap.get(key);\n if (resolver) {\n _config[key] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest[key]), resolver);\n } else if (false) {\n if (![\"drag\", \"pinch\", \"scroll\", \"wheel\", \"move\", \"hover\"].includes(key)) {\n if (key === \"domTarget\") {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n console.warn(`[@use-gesture]: Unknown config key \\`${key}\\` was used. Please read the documentation for further information.`);\n }\n }\n }\n }\n return _config;\n}\nvar EventStore = class {\n constructor(ctrl, gestureKey) {\n _defineProperty(this, \"_listeners\", \/* @__PURE__ *\/ new Set());\n this._ctrl = ctrl;\n this._gestureKey = gestureKey;\n }\n add(element, device, action2, handler, options) {\n const listeners = this._listeners;\n const type = toDomEventType(device, action2);\n const _options = this._gestureKey ? this._ctrl.config[this._gestureKey].eventOptions : {};\n const eventOptions = _objectSpread2(_objectSpread2({}, _options), options);\n element.addEventListener(type, handler, eventOptions);\n const remove2 = () => {\n element.removeEventListener(type, handler, eventOptions);\n listeners.delete(remove2);\n };\n listeners.add(remove2);\n return remove2;\n }\n clean() {\n this._listeners.forEach((remove2) => remove2());\n this._listeners.clear();\n }\n};\nvar TimeoutStore = class {\n constructor() {\n _defineProperty(this, \"_timeouts\", \/* @__PURE__ *\/ new Map());\n }\n add(key, callback, ms = 140, ...args) {\n this.remove(key);\n this._timeouts.set(key, window.setTimeout(callback, ms, ...args));\n }\n remove(key) {\n const timeout = this._timeouts.get(key);\n if (timeout)\n window.clearTimeout(timeout);\n }\n clean() {\n this._timeouts.forEach((timeout) => void window.clearTimeout(timeout));\n this._timeouts.clear();\n }\n};\nvar Controller = class {\n constructor(handlers) {\n _defineProperty(this, \"gestures\", \/* @__PURE__ *\/ new Set());\n _defineProperty(this, \"_targetEventStore\", new EventStore(this));\n _defineProperty(this, \"gestureEventStores\", {});\n _defineProperty(this, \"gestureTimeoutStores\", {});\n _defineProperty(this, \"handlers\", {});\n _defineProperty(this, \"config\", {});\n _defineProperty(this, \"pointerIds\", \/* @__PURE__ *\/ new Set());\n _defineProperty(this, \"touchIds\", \/* @__PURE__ *\/ new Set());\n _defineProperty(this, \"state\", {\n shared: {\n shiftKey: false,\n metaKey: false,\n ctrlKey: false,\n altKey: false\n }\n });\n resolveGestures(this, handlers);\n }\n setEventIds(event) {\n if (isTouch(event)) {\n this.touchIds = new Set(touchIds(event));\n return this.touchIds;\n } else if (\"pointerId\" in event) {\n if (event.type === \"pointerup\" || event.type === \"pointercancel\")\n this.pointerIds.delete(event.pointerId);\n else if (event.type === \"pointerdown\")\n this.pointerIds.add(event.pointerId);\n return this.pointerIds;\n }\n }\n applyHandlers(handlers, nativeHandlers) {\n this.handlers = handlers;\n this.nativeHandlers = nativeHandlers;\n }\n applyConfig(config, gestureKey) {\n this.config = parse2(config, gestureKey, this.config);\n }\n clean() {\n this._targetEventStore.clean();\n for (const key of this.gestures) {\n this.gestureEventStores[key].clean();\n this.gestureTimeoutStores[key].clean();\n }\n }\n effect() {\n if (this.config.shared.target)\n this.bind();\n return () => this._targetEventStore.clean();\n }\n bind(...args) {\n const sharedConfig = this.config.shared;\n const props = {};\n let target;\n if (sharedConfig.target) {\n target = sharedConfig.target();\n if (!target)\n return;\n }\n if (sharedConfig.enabled) {\n for (const gestureKey of this.gestures) {\n const gestureConfig = this.config[gestureKey];\n const bindFunction = bindToProps(props, gestureConfig.eventOptions, !!target);\n if (gestureConfig.enabled) {\n const Engine2 = EngineMap.get(gestureKey);\n new Engine2(this, args, gestureKey).bind(bindFunction);\n }\n }\n const nativeBindFunction = bindToProps(props, sharedConfig.eventOptions, !!target);\n for (const eventKey in this.nativeHandlers) {\n nativeBindFunction(\n eventKey,\n \"\",\n (event) => this.nativeHandlers[eventKey](_objectSpread2(_objectSpread2({}, this.state.shared), {}, {\n event,\n args\n })),\n void 0,\n true\n );\n }\n }\n for (const handlerProp in props) {\n props[handlerProp] = chain(...props[handlerProp]);\n }\n if (!target)\n return props;\n for (const handlerProp in props) {\n const {\n device,\n capture,\n passive\n } = parseProp(handlerProp);\n this._targetEventStore.add(target, device, \"\", props[handlerProp], {\n capture,\n passive\n });\n }\n }\n};\nfunction setupGesture(ctrl, gestureKey) {\n ctrl.gestures.add(gestureKey);\n ctrl.gestureEventStores[gestureKey] = new EventStore(ctrl, gestureKey);\n ctrl.gestureTimeoutStores[gestureKey] = new TimeoutStore();\n}\nfunction resolveGestures(ctrl, internalHandlers) {\n if (internalHandlers.drag)\n setupGesture(ctrl, \"drag\");\n if (internalHandlers.wheel)\n setupGesture(ctrl, \"wheel\");\n if (internalHandlers.scroll)\n setupGesture(ctrl, \"scroll\");\n if (internalHandlers.move)\n setupGesture(ctrl, \"move\");\n if (internalHandlers.pinch)\n setupGesture(ctrl, \"pinch\");\n if (internalHandlers.hover)\n setupGesture(ctrl, \"hover\");\n}\nvar bindToProps = (props, eventOptions, withPassiveOption) => (device, action2, handler, options = {}, isNative = false) => {\n var _options$capture, _options$passive;\n const capture = (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : eventOptions.capture;\n const passive = (_options$passive = options.passive) !== null && _options$passive !== void 0 ? _options$passive : eventOptions.passive;\n let handlerProp = isNative ? device : toHandlerProp(device, action2, capture);\n if (withPassiveOption && passive)\n handlerProp += \"Passive\";\n props[handlerProp] = props[handlerProp] || [];\n props[handlerProp].push(handler);\n};\nvar RE_NOT_NATIVE = \/^on(Drag|Wheel|Scroll|Move|Pinch|Hover)\/;\nfunction sortHandlers(_handlers) {\n const native = {};\n const handlers = {};\n const actions = \/* @__PURE__ *\/ new Set();\n for (let key in _handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handlers[key] = _handlers[key];\n } else {\n native[key] = _handlers[key];\n }\n }\n return [handlers, native, actions];\n}\nfunction registerGesture(actions, handlers, handlerKey, key, internalHandlers, config) {\n if (!actions.has(handlerKey))\n return;\n if (!EngineMap.has(key)) {\n if (false) {\n console.warn(`[@use-gesture]: You've created a custom handler that that uses the \\`${key}\\` gesture but isn't properly configured.\n\nPlease add \\`${key}Action\\` when creating your handler.`);\n }\n return;\n }\n const startKey = handlerKey + \"Start\";\n const endKey = handlerKey + \"End\";\n const fn = (state) => {\n let memo6 = void 0;\n if (state.first && startKey in handlers)\n handlers[startKey](state);\n if (handlerKey in handlers)\n memo6 = handlers[handlerKey](state);\n if (state.last && endKey in handlers)\n handlers[endKey](state);\n return memo6;\n };\n internalHandlers[key] = fn;\n config[key] = config[key] || {};\n}\nfunction parseMergedHandlers(mergedHandlers, mergedConfig) {\n const [handlers, nativeHandlers, actions] = sortHandlers(mergedHandlers);\n const internalHandlers = {};\n registerGesture(actions, handlers, \"onDrag\", \"drag\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onWheel\", \"wheel\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onScroll\", \"scroll\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onPinch\", \"pinch\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onMove\", \"move\", internalHandlers, mergedConfig);\n registerGesture(actions, handlers, \"onHover\", \"hover\", internalHandlers, mergedConfig);\n return {\n handlers: internalHandlers,\n config: mergedConfig,\n nativeHandlers\n };\n}\n\n\/\/ ..\/..\/node_modules\/@use-gesture\/react\/dist\/use-gesture-react.esm.js\nfunction useRecognizers(handlers, config = {}, gestureKey, nativeHandlers) {\n const ctrl = import_react2.default.useMemo(() => new Controller(handlers), []);\n ctrl.applyHandlers(handlers, nativeHandlers);\n ctrl.applyConfig(config, gestureKey);\n import_react2.default.useEffect(ctrl.effect.bind(ctrl));\n import_react2.default.useEffect(() => {\n return ctrl.clean.bind(ctrl);\n }, []);\n if (config.target === void 0) {\n return ctrl.bind.bind(ctrl);\n }\n return void 0;\n}\nfunction createUseGesture(actions) {\n actions.forEach(registerAction);\n return function useGesture2(_handlers, _config) {\n const {\n handlers,\n nativeHandlers,\n config\n } = parseMergedHandlers(_handlers, _config || {});\n return useRecognizers(handlers, config, void 0, nativeHandlers);\n };\n}\nfunction useGesture(handlers, config) {\n const hook = createUseGesture([dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction]);\n return hook(handlers, config || {});\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useGestureEvents.ts\nvar React8 = __toESM(require(\"react\"));\nfunction useGestureEvents(ref) {\n const { viewport, inputs, callbacks } = useRendererContext();\n const rOriginPoint = React8.useRef(void 0);\n const rDelta = React8.useRef([0, 0]);\n const rWheelTs = React8.useRef(0);\n const events = React8.useMemo(() => {\n const onWheel = (gesture) => {\n var _a3;\n const { event } = gesture;\n event.preventDefault();\n const [x4, y4, z3] = normalizeWheel(event);\n if (inputs.state === \"pinching\" || rWheelTs.current >= event.timeStamp) {\n return;\n }\n rWheelTs.current = event.timeStamp;\n if ((event.altKey || event.ctrlKey || event.metaKey) && event.buttons === 0) {\n const bounds = viewport.bounds;\n const point = (_a3 = inputs.currentScreenPoint) != null ? _a3 : [bounds.width \/ 2, bounds.height \/ 2];\n const delta = z3 \/ 100;\n const zoom = viewport.camera.zoom;\n viewport.onZoom(point, zoom - delta * zoom);\n return;\n } else {\n const delta = src_default.mul(\n event.shiftKey && !isDarwin() ? [y4, 0] : [x4, y4],\n 0.8\n );\n if (src_default.isEqual(delta, [0, 0])) {\n return;\n }\n viewport.panCamera(delta);\n }\n };\n const onPinchStart = ({ event, delta, offset, origin }) => {\n var _a3;\n const elm = ref.current;\n if (event instanceof WheelEvent)\n return;\n if (!(event.target === elm || (elm == null ? void 0 : elm.contains(event.target))))\n return;\n (_a3 = callbacks.onPinchStart) == null ? void 0 : _a3.call(\n callbacks,\n {\n type: \"canvas\" \/* Canvas *\/,\n order: 0,\n delta: [...delta, offset[0]],\n offset,\n point: src_default.sub(origin, inputs.containerOffset)\n },\n event\n );\n rOriginPoint.current = origin;\n rDelta.current = [0, 0];\n };\n const onPinch = ({ event, offset, origin }) => {\n var _a3;\n const elm = ref.current;\n if (event instanceof WheelEvent)\n return;\n if (!(event.target === elm || (elm == null ? void 0 : elm.contains(event.target))))\n return;\n if (!rOriginPoint.current) {\n rOriginPoint.current = origin;\n }\n const delta = src_default.sub(rOriginPoint.current, origin);\n const trueDelta = src_default.sub(delta, rDelta.current);\n (_a3 = callbacks.onPinch) == null ? void 0 : _a3.call(\n callbacks,\n {\n type: \"canvas\" \/* Canvas *\/,\n order: 0,\n delta: [...trueDelta, offset[0]],\n offset,\n point: src_default.sub(origin, inputs.containerOffset)\n },\n event\n );\n rDelta.current = delta;\n };\n const onPinchEnd = ({ event, delta, offset, origin }) => {\n var _a3;\n const elm = ref.current;\n if (event instanceof WheelEvent)\n return;\n if (!(event.target === elm || (elm == null ? void 0 : elm.contains(event.target))))\n return;\n if (inputs.state !== \"pinching\")\n return;\n (_a3 = callbacks.onPinchEnd) == null ? void 0 : _a3.call(\n callbacks,\n {\n type: \"canvas\" \/* Canvas *\/,\n order: 0,\n delta: [0, 0, offset[0]],\n offset,\n point: src_default.sub(origin, inputs.containerOffset)\n },\n event\n );\n rDelta.current = [0, 0];\n };\n return {\n onWheel,\n onPinchStart,\n onPinchEnd,\n onPinch\n };\n }, [callbacks]);\n useGesture(events, {\n target: ref,\n eventOptions: { passive: false },\n pinch: {\n from: [viewport.camera.zoom, viewport.camera.zoom],\n scaleBounds: () => ({\n from: viewport.camera.zoom,\n max: TLViewport.maxZoom,\n min: TLViewport.minZoom\n })\n }\n });\n}\nfunction normalizeWheel(event) {\n const MAX_ZOOM_STEP = 10;\n const { deltaY, deltaX } = event;\n let deltaZ = 0;\n if (event.ctrlKey || event.metaKey) {\n const signY = Math.sign(event.deltaY);\n const absDeltaY = Math.abs(event.deltaY);\n let dy = deltaY;\n if (absDeltaY > MAX_ZOOM_STEP) {\n dy = MAX_ZOOM_STEP * signY;\n }\n deltaZ = dy;\n }\n return [deltaX, deltaY, deltaZ];\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCounterScaledPosition.tsx\nvar React9 = __toESM(require(\"react\"));\nfunction useCounterScaledPosition(ref, bounds, rotation, zIndex) {\n React9.useLayoutEffect(() => {\n const elm = ref.current;\n elm.style.transform = `translate(\n calc(${bounds.minX}px - var(--tl-padding)),\n calc(${bounds.minY}px - var(--tl-padding)))\n scale(var(--tl-scale))`;\n }, [bounds.minX, bounds.minY, rotation, bounds.rotation]);\n React9.useLayoutEffect(() => {\n const elm = ref.current;\n elm.style.width = `calc(${Math.floor(bounds.width)}px + (var(--tl-padding) * 2))`;\n elm.style.height = `calc(${Math.floor(bounds.height)}px + (var(--tl-padding) * 2))`;\n }, [bounds.width, bounds.height]);\n React9.useLayoutEffect(() => {\n const elm = ref.current;\n if (zIndex !== void 0)\n elm.style.zIndex = zIndex.toString();\n }, [zIndex]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useSetup.ts\nvar React10 = __toESM(require(\"react\"));\nfunction useSetup(app, props) {\n const {\n onPersist,\n onError,\n onMount,\n onCreateAssets,\n onCreateShapes,\n onDeleteAssets,\n onDeleteShapes,\n onDrop,\n onPaste,\n onCopy,\n onCanvasDBClick\n } = props;\n React10.useLayoutEffect(() => {\n const unsubs = [];\n if (!app)\n return;\n if (typeof window !== void 0) {\n window[\"tlapps\"] = window[\"tlapps\"] || {};\n window[\"tlapps\"][app.uuid] = app;\n }\n if (onMount)\n onMount(app, null);\n return () => {\n unsubs.forEach((unsub) => unsub());\n if (typeof window !== void 0 && window[\"tlapps\"]) {\n delete window[\"tlapps\"][app.uuid];\n }\n };\n }, [app]);\n React10.useLayoutEffect(() => {\n const unsubs = [];\n if (onPersist)\n unsubs.push(app.subscribe(\"persist\", onPersist));\n if (onError)\n unsubs.push(app.subscribe(\"error\", onError));\n if (onCreateShapes)\n unsubs.push(app.subscribe(\"create-shapes\", onCreateShapes));\n if (onCreateAssets)\n unsubs.push(app.subscribe(\"create-assets\", onCreateAssets));\n if (onDeleteShapes)\n unsubs.push(app.subscribe(\"delete-shapes\", onDeleteShapes));\n if (onDeleteAssets)\n unsubs.push(app.subscribe(\"delete-assets\", onDeleteAssets));\n if (onDrop)\n unsubs.push(app.subscribe(\"drop\", onDrop));\n if (onPaste)\n unsubs.push(app.subscribe(\"paste\", onPaste));\n if (onCopy)\n unsubs.push(app.subscribe(\"copy\", onCopy));\n if (onCanvasDBClick)\n unsubs.push(app.subscribe(\"canvas-dbclick\", onCanvasDBClick));\n return () => unsubs.forEach((unsub) => unsub());\n }, [app, onPersist, onError]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useAppSetup.ts\nvar React11 = __toESM(require(\"react\"));\nfunction useAppSetup(props) {\n if (\"app\" in props)\n return props.app;\n const [app] = React11.useState(\n () => new TLReactApp(props.model, props.Shapes, props.Tools, props.readOnly)\n );\n React11.useLayoutEffect(() => {\n return () => {\n app.dispose();\n };\n }, [app]);\n return app;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/usePropControl.ts\nvar React12 = __toESM(require(\"react\"));\nfunction usePropControl(app, props) {\n React12.useEffect(() => {\n if (!(\"model\" in props))\n return;\n if (props.model)\n app.loadDocumentModel(props.model);\n }, [props.model]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/usePreventNavigation.ts\nvar React13 = __toESM(require(\"react\"));\nfunction usePreventNavigation(rCanvas) {\n const context = useRendererContext();\n const {\n viewport: { bounds }\n } = context;\n React13.useEffect(() => {\n const preventGestureNavigation = (event) => {\n event.preventDefault();\n };\n const preventNavigation = (event) => {\n if (event.touches.length === 0) {\n return;\n }\n const touchXPosition = event.touches[0].pageX;\n const touchXRadius = event.touches[0].radiusX || 0;\n if (touchXPosition - touchXRadius < 10 || touchXPosition + touchXRadius > bounds.width - 10) {\n event.preventDefault();\n }\n };\n const elm = rCanvas.current;\n if (!elm)\n return () => void 0;\n elm.addEventListener(\"touchstart\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"gestureend\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"gesturechange\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"gesturestart\", preventGestureNavigation, {\n passive: true\n });\n elm.addEventListener(\"touchstart\", preventNavigation, {\n passive: true\n });\n return () => {\n if (elm) {\n elm.removeEventListener(\"touchstart\", preventGestureNavigation);\n elm.removeEventListener(\"gestureend\", preventGestureNavigation);\n elm.removeEventListener(\"gesturechange\", preventGestureNavigation);\n elm.removeEventListener(\"gesturestart\", preventGestureNavigation);\n elm.removeEventListener(\"touchstart\", preventNavigation);\n }\n };\n }, [rCanvas, bounds.width]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useHandleEvents.ts\nvar React14 = __toESM(require(\"react\"));\nfunction useHandleEvents(shape, id3) {\n const { inputs, callbacks } = useRendererContext();\n const events = React14.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerDown = (e2) => {\n var _a3, _b;\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.setPointerCapture(e2.pointerId);\n const handle = shape.props.handles[id3];\n (_b = callbacks.onPointerDown) == null ? void 0 : _b.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerUp = (e2) => {\n var _a3, _b;\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.releasePointerCapture(e2.pointerId);\n const handle = shape.props.handles[id3];\n (_b = callbacks.onPointerUp) == null ? void 0 : _b.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerEnter = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onPointerLeave = (e2) => {\n var _a3;\n const { order = 0 } = e2;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order }, e2);\n e2.order = order + 1;\n };\n const onKeyDown = (e2) => {\n var _a3;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onKeyDown) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order: -1 }, e2);\n };\n const onKeyUp = (e2) => {\n var _a3;\n const handle = shape.props.handles[id3];\n (_a3 = callbacks.onKeyUp) == null ? void 0 : _a3.call(callbacks, { type: \"handle\" \/* Handle *\/, shape, handle, id: id3, order: -1 }, e2);\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerEnter,\n onPointerLeave,\n onKeyUp,\n onKeyDown\n };\n }, [shape.id, inputs, callbacks]);\n return events;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useCursor.ts\nvar React15 = __toESM(require(\"react\"));\nfunction getCursorCss(svg, r4, f4 = false) {\n return `url(\"data:image\/svg+xml,<svg height='32' width='32' viewBox='0 0 35 35' xmlns='http:\/\/www.w3.org\/2000\/svg'><g fill='none' style='transform-origin:center center' transform='rotate(${r4})${f4 ? ` scale(-1,-1) translate(0, -32)` : \"\"}'>` + svg.replaceAll(`\"`, `'`) + '<\/g><\/svg>\") 16 16, pointer';\n}\nvar CORNER_SVG = `<path d='m19.7432 17.0869-4.072 4.068 2.829 2.828-8.473-.013-.013-8.47 2.841 2.842 4.075-4.068 1.414-1.415-2.844-2.842h8.486v8.484l-2.83-2.827z' fill='%23fff'\/><path d='m18.6826 16.7334-4.427 4.424 1.828 1.828-5.056-.016-.014-5.054 1.842 1.841 4.428-4.422 2.474-2.475-1.844-1.843h5.073v5.071l-1.83-1.828z' fill='%23000'\/>`;\nvar EDGE_SVG = `<path d='m9 17.9907v.005l5.997 5.996.001-3.999h1.999 2.02v4l5.98-6.001-5.98-5.999.001 4.019-2.021.002h-2l.001-4.022zm1.411.003 3.587-3.588-.001 2.587h3.5 2.521v-2.585l3.565 3.586-3.564 3.585-.001-2.585h-2.521l-3.499-.001-.001 2.586z' fill='%23fff'\/><path d='m17.4971 18.9932h2.521v2.586l3.565-3.586-3.565-3.585v2.605h-2.521-3.5v-2.607l-3.586 3.587 3.586 3.586v-2.587z' fill='%23000'\/>`;\nvar ROTATE_CORNER_SVG = `<g><path d=\"M22.4789 9.45728L25.9935 12.9942L22.4789 16.5283V14.1032C18.126 14.1502 14.6071 17.6737 14.5675 22.0283H17.05L13.513 25.543L9.97889 22.0283H12.5674C12.6071 16.5691 17.0214 12.1503 22.4789 12.1031L22.4789 9.45728Z\" fill=\"black\"\/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.4789 7.03223L27.4035 12.9945L21.4789 18.9521V15.1868C18.4798 15.6549 16.1113 18.0273 15.649 21.0284H19.475L13.5128 26.953L7.55519 21.0284H11.6189C12.1243 15.8155 16.2679 11.6677 21.4789 11.1559L21.4789 7.03223ZM22.4789 12.1031C17.0214 12.1503 12.6071 16.5691 12.5674 22.0284H9.97889L13.513 25.543L17.05 22.0284H14.5675C14.5705 21.6896 14.5947 21.3558 14.6386 21.0284C15.1157 17.4741 17.9266 14.6592 21.4789 14.1761C21.8063 14.1316 22.1401 14.1069 22.4789 14.1032V16.5284L25.9935 12.9942L22.4789 9.45729L22.4789 12.1031Z\" fill=\"white\"\/><\/g>`;\nvar TEXT_SVG = `<path d='m6.94 2v-1c-1.35866267-.08246172-2.66601117.53165299-3.47 1.63-.80398883-1.09834701-2.11133733-1.71246172-3.47-1.63v1c1.30781678-.16635468 2.55544738.59885876 3 1.84v5.1h-1v1h1v4.16c-.4476345 1.2386337-1.69302129 2.002471-3 1.84v1c1.35687108.0731933 2.6600216-.5389494 3.47-1.63.8099784 1.0910506 2.11312892 1.7031933 3.47 1.63v-1c-1.28590589.133063-2.49760499-.6252793-2.94-1.84v-4.18h1v-1h-1v-5.08c.43943906-1.21710975 1.65323743-1.97676587 2.94-1.84z' transform='translate(14 9)'\/>`;\nvar GRABBING_SVG = `<path d='m13.5732 12.0361c.48-.178 1.427-.069 1.677.473.213.462.396 1.241.406 1.075.024-.369-.024-1.167.137-1.584.117-.304.347-.59.686-.691.285-.086.62-.116.916-.055.313.064.642.287.765.499.362.623.368 1.899.385 1.831.064-.272.07-1.229.283-1.584.141-.235.497-.445.687-.479.294-.052.656-.068.964-.008.249.049.586.344.677.487.219.344.342 1.316.379 1.658.016.141.074-.393.293-.736.406-.639 1.844-.763 1.898.639.026.654.02.624.02 1.064 0 .516-.012.828-.04 1.202-.03.399-.116 1.304-.241 1.742-.086.301-.371.978-.653 1.384 0 0-1.074 1.25-1.191 1.812-.117.563-.078.567-.102.965-.023.399.121.923.121.923s-.801.104-1.234.034c-.391-.062-.875-.84-1-1.078-.172-.328-.539-.265-.682-.023-.224.383-.709 1.07-1.05 1.113-.669.084-2.055.03-3.14.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.283-.36-1.002-.929-1.243-1.985-.213-.936-.192-1.395.037-1.77.232-.381.67-.589.854-.625.208-.042.692-.039.875.062.223.123.313.159.488.391.23.307.312.456.213.121-.076-.262-.322-.595-.434-.97-.109-.361-.401-.943-.38-1.526.008-.221.103-.771.832-1.042' fill='%23fff'\/><g stroke='%23000' stroke-width='.75'><path d='m13.5732 12.0361c.48-.178 1.427-.069 1.677.473.213.462.396 1.241.406 1.075.024-.369-.024-1.167.137-1.584.117-.304.347-.59.686-.691.285-.086.62-.116.916-.055.313.064.642.287.765.499.362.623.368 1.899.385 1.831.064-.272.07-1.229.283-1.584.141-.235.497-.445.687-.479.294-.052.656-.068.964-.008.249.049.586.344.677.487.219.344.342 1.316.379 1.658.016.141.074-.393.293-.736.406-.639 1.844-.763 1.898.639.026.654.02.624.02 1.064 0 .516-.012.828-.04 1.202-.03.399-.116 1.304-.241 1.742-.086.301-.371.978-.653 1.384 0 0-1.074 1.25-1.191 1.812-.117.563-.078.567-.102.965-.023.399.121.923.121.923s-.801.104-1.234.034c-.391-.062-.875-.84-1-1.078-.172-.328-.539-.265-.682-.023-.224.383-.709 1.07-1.05 1.113-.669.084-2.055.03-3.14.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.283-.36-1.002-.929-1.243-1.985-.213-.936-.192-1.395.037-1.77.232-.381.67-.589.854-.625.208-.042.692-.039.875.062.223.123.313.159.488.391.23.307.312.456.213.121-.076-.262-.322-.595-.434-.97-.109-.361-.401-.943-.38-1.526.008-.221.103-.771.832-1.042z' stroke-linejoin='round'\/><path d='m20.5664 19.7344v-3.459' stroke-linecap='round'\/><path d='m18.5508 19.7461-.016-3.473' stroke-linecap='round'\/><path d='m16.5547 16.3047.021 3.426' stroke-linecap='round'\/><\/g>`;\nvar GRAB_SVG = `<path d=\"m13.5557 17.5742c-.098-.375-.196-.847-.406-1.552-.167-.557-.342-.859-.47-1.233-.155-.455-.303-.721-.496-1.181-.139-.329-.364-1.048-.457-1.44-.119-.509.033-.924.244-1.206.253-.339.962-.49 1.357-.351.371.13.744.512.916.788.288.46.357.632.717 1.542.393.992.564 1.918.611 2.231l.085.452c-.001-.04-.043-1.122-.044-1.162-.035-1.029-.06-1.823-.038-2.939.002-.126.064-.587.084-.715.078-.5.305-.8.673-.979.412-.201.926-.215 1.401-.017.423.173.626.55.687 1.022.014.109.094.987.093 1.107-.013 1.025.006 1.641.015 2.174.004.231.003 1.625.017 1.469.061-.656.094-3.189.344-3.942.144-.433.405-.746.794-.929.431-.203 1.113-.07 1.404.243.285.305.446.692.482 1.153.032.405-.019.897-.02 1.245 0 .867-.021 1.324-.037 2.121-.001.038-.015.298.023.182.094-.28.188-.542.266-.745.049-.125.241-.614.359-.859.114-.234.211-.369.415-.688.2-.313.415-.448.668-.561.54-.235 1.109.112 1.301.591.086.215.009.713-.028 1.105-.061.647-.254 1.306-.352 1.648-.128.447-.274 1.235-.34 1.601-.072.394-.234 1.382-.359 1.82-.086.301-.371.978-.652 1.384 0 0-1.074 1.25-1.192 1.812-.117.563-.078.567-.101.965-.024.399.121.923.121.923s-.802.104-1.234.034c-.391-.062-.875-.841-1-1.078-.172-.328-.539-.265-.682-.023-.225.383-.709 1.07-1.051 1.113-.668.084-2.054.03-3.139.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.284-.36-.629-1.093-1.243-1.985-.348-.504-1.027-1.085-1.284-1.579-.223-.425-.331-.954-.19-1.325.225-.594.675-.897 1.362-.832.519.05.848.206 1.238.537.225.19.573.534.75.748.163.195.203.276.377.509.23.307.302.459.214.121\" fill=\"%23fff\"\/><g stroke=\"%23000\" stroke-linecap=\"round\" stroke-width=\".75\"><path d=\"m13.5557 17.5742c-.098-.375-.196-.847-.406-1.552-.167-.557-.342-.859-.47-1.233-.155-.455-.303-.721-.496-1.181-.139-.329-.364-1.048-.457-1.44-.119-.509.033-.924.244-1.206.253-.339.962-.49 1.357-.351.371.13.744.512.916.788.288.46.357.632.717 1.542.393.992.564 1.918.611 2.231l.085.452c-.001-.04-.043-1.122-.044-1.162-.035-1.029-.06-1.823-.038-2.939.002-.126.064-.587.084-.715.078-.5.305-.8.673-.979.412-.201.926-.215 1.401-.017.423.173.626.55.687 1.022.014.109.094.987.093 1.107-.013 1.025.006 1.641.015 2.174.004.231.003 1.625.017 1.469.061-.656.094-3.189.344-3.942.144-.433.405-.746.794-.929.431-.203 1.113-.07 1.404.243.285.305.446.692.482 1.153.032.405-.019.897-.02 1.245 0 .867-.021 1.324-.037 2.121-.001.038-.015.298.023.182.094-.28.188-.542.266-.745.049-.125.241-.614.359-.859.114-.234.211-.369.415-.688.2-.313.415-.448.668-.561.54-.235 1.109.112 1.301.591.086.215.009.713-.028 1.105-.061.647-.254 1.306-.352 1.648-.128.447-.274 1.235-.34 1.601-.072.394-.234 1.382-.359 1.82-.086.301-.371.978-.652 1.384 0 0-1.074 1.25-1.192 1.812-.117.563-.078.567-.101.965-.024.399.121.923.121.923s-.802.104-1.234.034c-.391-.062-.875-.841-1-1.078-.172-.328-.539-.265-.682-.023-.225.383-.709 1.07-1.051 1.113-.668.084-2.054.03-3.139.02 0 0 .185-1.011-.227-1.358-.305-.26-.83-.784-1.144-1.06l-.832-.921c-.284-.36-.629-1.093-1.243-1.985-.348-.504-1.027-1.085-1.284-1.579-.223-.425-.331-.954-.19-1.325.225-.594.675-.897 1.362-.832.519.05.848.206 1.238.537.225.19.573.534.75.748.163.195.203.276.377.509.23.307.302.459.214.121\" stroke-linejoin=\"round\"\/><path d=\"m20.5664 21.7344v-3.459\"\/><path d=\"m18.5508 21.7461-.016-3.473\"\/><path d=\"m16.5547 18.3047.021 3.426\"\/><\/g>`;\nvar CURSORS3 = {\n [\"none\" \/* None *\/]: (r4, f4) => \"none\",\n [\"default\" \/* Default *\/]: (r4, f4) => \"default\",\n [\"pointer\" \/* Pointer *\/]: (r4, f4) => \"pointer\",\n [\"crosshair\" \/* Cross *\/]: (r4, f4) => \"crosshair\",\n [\"move\" \/* Move *\/]: (r4, f4) => \"move\",\n [\"wait\" \/* Wait *\/]: (r4, f4) => \"wait\",\n [\"progress\" \/* Progress *\/]: (r4, f4) => \"progress\",\n [\"grab\" \/* Grab *\/]: (r4, f4) => getCursorCss(GRAB_SVG, r4, f4),\n [\"grabbing\" \/* Grabbing *\/]: (r4, f4) => getCursorCss(GRABBING_SVG, r4, f4),\n [\"text\" \/* Text *\/]: (r4, f4) => getCursorCss(TEXT_SVG, r4, f4),\n [\"resize-edge\" \/* ResizeEdge *\/]: (r4, f4) => getCursorCss(EDGE_SVG, r4, f4),\n [\"resize-corner\" \/* ResizeCorner *\/]: (r4, f4) => getCursorCss(CORNER_SVG, r4, f4),\n [\"ew-resize\" \/* EwResize *\/]: (r4, f4) => getCursorCss(EDGE_SVG, r4, f4),\n [\"ns-resize\" \/* NsResize *\/]: (r4, f4) => getCursorCss(EDGE_SVG, r4 + 90, f4),\n [\"nesw-resize\" \/* NeswResize *\/]: (r4, f4) => getCursorCss(CORNER_SVG, r4, f4),\n [\"nwse-resize\" \/* NwseResize *\/]: (r4, f4) => getCursorCss(CORNER_SVG, r4 + 90, f4),\n [\"rotate\" \/* Rotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 45, f4),\n [\"nwse-rotate\" \/* NwseRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4, f4),\n [\"nesw-rotate\" \/* NeswRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 90, f4),\n [\"senw-rotate\" \/* SenwRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 180, f4),\n [\"swne-rotate\" \/* SwneRotate *\/]: (r4, f4) => getCursorCss(ROTATE_CORNER_SVG, r4 + 270, f4)\n};\nfunction useCursor(ref, cursor, rotation = 0) {\n React15.useEffect(() => {\n const elm = ref.current;\n if (!elm)\n return;\n elm.style.cursor = CURSORS3[cursor](GeomUtils.radiansToDegrees(rotation));\n }, [cursor, rotation]);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useZoom.ts\nvar React16 = __toESM(require(\"react\"));\nfunction useZoom(ref) {\n const { viewport } = useRendererContext();\n const app = useApp();\n React16.useLayoutEffect(() => {\n return autorun(() => {\n const debouncedZoom = debounce(() => {\n var _a3;\n (_a3 = ref.current) == null ? void 0 : _a3.style.setProperty(\"--tl-zoom\", viewport.camera.zoom.toString());\n }, 200);\n if (app.inputs.state !== \"pinching\" && viewport.camera.zoom != null) {\n debouncedZoom();\n }\n });\n }, []);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useMinimapEvents.ts\nvar React17 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useDebounced.ts\nvar import_react4 = require(\"react\");\nfunction useDebouncedValue(value, ms = 0) {\n const [debouncedValue, setDebouncedValue] = (0, import_react4.useState)(value);\n (0, import_react4.useEffect)(() => {\n let canceled = false;\n const handler = setTimeout(() => {\n if (!canceled) {\n setDebouncedValue(value);\n }\n }, ms);\n return () => {\n canceled = true;\n clearTimeout(handler);\n };\n }, [value, ms]);\n return debouncedValue;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useRestoreCamera.ts\nvar React18 = __toESM(require(\"react\"));\nvar storingKey = \"logseq.tldraw.camera\";\nvar cacheCamera = (app) => {\n window.sessionStorage.setItem(\n storingKey + \":\" + app.currentPageId,\n JSON.stringify(app.viewport.camera)\n );\n};\nvar loadCamera = (app) => {\n var _a3;\n const camera = JSON.parse(\n (_a3 = window.sessionStorage.getItem(storingKey + \":\" + app.currentPageId)) != null ? _a3 : \"null\"\n );\n if (camera) {\n app.viewport.update(camera);\n } else if (app.selectedIds.size) {\n app.api.zoomToSelection();\n } else {\n app.api.zoomToFit();\n }\n};\nfunction useRestoreCamera() {\n const app = useApp();\n React18.useEffect(() => {\n reaction(\n () => __spreadValues({}, app.viewport.camera),\n () => cacheCamera(app)\n );\n }, [app.viewport.camera]);\n React18.useEffect(() => {\n loadCamera(app);\n }, [app]);\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/assertEnvironment.js\nvar import_react5 = require(\"react\");\nif (!import_react5.useState) {\n throw new Error(\"mobx-react-lite requires React with Hooks support\");\n}\nif (!makeObservable) {\n throw new Error(\"mobx-react-lite@3 requires mobx at least version 6 to be available\");\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/reactBatchedUpdates.js\nvar import_react_dom = require(\"react-dom\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/observerBatching.js\nfunction defaultNoopBatch(callback) {\n callback();\n}\nfunction observerBatching(reactionScheduler3) {\n if (!reactionScheduler3) {\n reactionScheduler3 = defaultNoopBatch;\n if (false) {\n console.warn(\"[MobX] Failed to get unstable_batched updates from react-dom \/ react-native\");\n }\n }\n configure({ reactionScheduler: reactionScheduler3 });\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useObserver.js\nvar import_react6 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/printDebugValue.js\nfunction printDebugValue(v4) {\n return getDependencyTree(v4);\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/FinalizationRegistryWrapper.js\nvar FinalizationRegistryLocal = typeof FinalizationRegistry === \"undefined\" ? void 0 : FinalizationRegistry;\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/reactionCleanupTrackingCommon.js\nfunction createTrackingData(reaction2) {\n var trackingData = {\n reaction: reaction2,\n mounted: false,\n changedBeforeMount: false,\n cleanAt: Date.now() + CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS\n };\n return trackingData;\n}\nvar CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS = 1e4;\nvar CLEANUP_TIMER_LOOP_MILLIS = 1e4;\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/createReactionCleanupTrackingUsingFinalizationRegister.js\nfunction createReactionCleanupTrackingUsingFinalizationRegister(FinalizationRegistry2) {\n var cleanupTokenToReactionTrackingMap = \/* @__PURE__ *\/ new Map();\n var globalCleanupTokensCounter = 1;\n var registry = new FinalizationRegistry2(function cleanupFunction(token) {\n var trackedReaction = cleanupTokenToReactionTrackingMap.get(token);\n if (trackedReaction) {\n trackedReaction.reaction.dispose();\n cleanupTokenToReactionTrackingMap.delete(token);\n }\n });\n return {\n addReactionToTrack: function(reactionTrackingRef, reaction2, objectRetainedByReact) {\n var token = globalCleanupTokensCounter++;\n registry.register(objectRetainedByReact, token, reactionTrackingRef);\n reactionTrackingRef.current = createTrackingData(reaction2);\n reactionTrackingRef.current.finalizationRegistryCleanupToken = token;\n cleanupTokenToReactionTrackingMap.set(token, reactionTrackingRef.current);\n return reactionTrackingRef.current;\n },\n recordReactionAsCommitted: function(reactionRef) {\n registry.unregister(reactionRef);\n if (reactionRef.current && reactionRef.current.finalizationRegistryCleanupToken) {\n cleanupTokenToReactionTrackingMap.delete(reactionRef.current.finalizationRegistryCleanupToken);\n }\n },\n forceCleanupTimerToRunNowForTests: function() {\n },\n resetCleanupScheduleForTests: function() {\n }\n };\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/createTimerBasedReactionCleanupTracking.js\nvar __values = function(o4) {\n var s4 = typeof Symbol === \"function\" && Symbol.iterator, m4 = s4 && o4[s4], i4 = 0;\n if (m4)\n return m4.call(o4);\n if (o4 && typeof o4.length === \"number\")\n return {\n next: function() {\n if (o4 && i4 >= o4.length)\n o4 = void 0;\n return { value: o4 && o4[i4++], done: !o4 };\n }\n };\n throw new TypeError(s4 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction createTimerBasedReactionCleanupTracking() {\n var uncommittedReactionRefs = \/* @__PURE__ *\/ new Set();\n var reactionCleanupHandle;\n function forceCleanupTimerToRunNowForTests2() {\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n cleanUncommittedReactions();\n }\n }\n function resetCleanupScheduleForTests2() {\n var e_1, _a3;\n if (uncommittedReactionRefs.size > 0) {\n try {\n for (var uncommittedReactionRefs_1 = __values(uncommittedReactionRefs), uncommittedReactionRefs_1_1 = uncommittedReactionRefs_1.next(); !uncommittedReactionRefs_1_1.done; uncommittedReactionRefs_1_1 = uncommittedReactionRefs_1.next()) {\n var ref = uncommittedReactionRefs_1_1.value;\n var tracking = ref.current;\n if (tracking) {\n tracking.reaction.dispose();\n ref.current = null;\n }\n }\n } catch (e_1_1) {\n e_1 = { error: e_1_1 };\n } finally {\n try {\n if (uncommittedReactionRefs_1_1 && !uncommittedReactionRefs_1_1.done && (_a3 = uncommittedReactionRefs_1.return))\n _a3.call(uncommittedReactionRefs_1);\n } finally {\n if (e_1)\n throw e_1.error;\n }\n }\n uncommittedReactionRefs.clear();\n }\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n reactionCleanupHandle = void 0;\n }\n }\n function ensureCleanupTimerRunning() {\n if (reactionCleanupHandle === void 0) {\n reactionCleanupHandle = setTimeout(cleanUncommittedReactions, CLEANUP_TIMER_LOOP_MILLIS);\n }\n }\n function scheduleCleanupOfReactionIfLeaked(ref) {\n uncommittedReactionRefs.add(ref);\n ensureCleanupTimerRunning();\n }\n function recordReactionAsCommitted2(reactionRef) {\n uncommittedReactionRefs.delete(reactionRef);\n }\n function cleanUncommittedReactions() {\n reactionCleanupHandle = void 0;\n var now = Date.now();\n uncommittedReactionRefs.forEach(function(ref) {\n var tracking = ref.current;\n if (tracking) {\n if (now >= tracking.cleanAt) {\n tracking.reaction.dispose();\n ref.current = null;\n uncommittedReactionRefs.delete(ref);\n }\n }\n });\n if (uncommittedReactionRefs.size > 0) {\n ensureCleanupTimerRunning();\n }\n }\n return {\n addReactionToTrack: function(reactionTrackingRef, reaction2, objectRetainedByReact) {\n reactionTrackingRef.current = createTrackingData(reaction2);\n scheduleCleanupOfReactionIfLeaked(reactionTrackingRef);\n return reactionTrackingRef.current;\n },\n recordReactionAsCommitted: recordReactionAsCommitted2,\n forceCleanupTimerToRunNowForTests: forceCleanupTimerToRunNowForTests2,\n resetCleanupScheduleForTests: resetCleanupScheduleForTests2\n };\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/utils\/reactionCleanupTracking.js\nvar _a2 = FinalizationRegistryLocal ? createReactionCleanupTrackingUsingFinalizationRegister(FinalizationRegistryLocal) : createTimerBasedReactionCleanupTracking();\nvar addReactionToTrack = _a2.addReactionToTrack;\nvar recordReactionAsCommitted = _a2.recordReactionAsCommitted;\nvar resetCleanupScheduleForTests = _a2.resetCleanupScheduleForTests;\nvar forceCleanupTimerToRunNowForTests = _a2.forceCleanupTimerToRunNowForTests;\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/staticRendering.js\nvar globalIsUsingStaticRendering = false;\nfunction isUsingStaticRendering() {\n return globalIsUsingStaticRendering;\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useObserver.js\nvar __read = function(o4, n4) {\n var m4 = typeof Symbol === \"function\" && o4[Symbol.iterator];\n if (!m4)\n return o4;\n var i4 = m4.call(o4), r4, ar = [], e2;\n try {\n while ((n4 === void 0 || n4-- > 0) && !(r4 = i4.next()).done)\n ar.push(r4.value);\n } catch (error) {\n e2 = { error };\n } finally {\n try {\n if (r4 && !r4.done && (m4 = i4[\"return\"]))\n m4.call(i4);\n } finally {\n if (e2)\n throw e2.error;\n }\n }\n return ar;\n};\nfunction observerComponentNameFor(baseComponentName) {\n return \"observer\".concat(baseComponentName);\n}\nvar ObjectToBeRetainedByReact = function() {\n function ObjectToBeRetainedByReact2() {\n }\n return ObjectToBeRetainedByReact2;\n}();\nfunction objectToBeRetainedByReactFactory() {\n return new ObjectToBeRetainedByReact();\n}\nfunction useObserver(fn, baseComponentName) {\n if (baseComponentName === void 0) {\n baseComponentName = \"observed\";\n }\n if (isUsingStaticRendering()) {\n return fn();\n }\n var _a3 = __read(import_react6.default.useState(objectToBeRetainedByReactFactory), 1), objectRetainedByReact = _a3[0];\n var _b = __read(import_react6.default.useState(), 2), setState = _b[1];\n var forceUpdate = function() {\n return setState([]);\n };\n var reactionTrackingRef = import_react6.default.useRef(null);\n if (!reactionTrackingRef.current) {\n var newReaction = new Reaction(observerComponentNameFor(baseComponentName), function() {\n if (trackingData_1.mounted) {\n forceUpdate();\n } else {\n trackingData_1.changedBeforeMount = true;\n }\n });\n var trackingData_1 = addReactionToTrack(reactionTrackingRef, newReaction, objectRetainedByReact);\n }\n var reaction2 = reactionTrackingRef.current.reaction;\n import_react6.default.useDebugValue(reaction2, printDebugValue);\n import_react6.default.useEffect(function() {\n recordReactionAsCommitted(reactionTrackingRef);\n if (reactionTrackingRef.current) {\n reactionTrackingRef.current.mounted = true;\n if (reactionTrackingRef.current.changedBeforeMount) {\n reactionTrackingRef.current.changedBeforeMount = false;\n forceUpdate();\n }\n } else {\n reactionTrackingRef.current = {\n reaction: new Reaction(observerComponentNameFor(baseComponentName), function() {\n forceUpdate();\n }),\n mounted: true,\n changedBeforeMount: false,\n cleanAt: Infinity\n };\n forceUpdate();\n }\n return function() {\n reactionTrackingRef.current.reaction.dispose();\n reactionTrackingRef.current = null;\n };\n }, []);\n var rendering;\n var exception;\n reaction2.track(function() {\n try {\n rendering = fn();\n } catch (e2) {\n exception = e2;\n }\n });\n if (exception) {\n throw exception;\n }\n return rendering;\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/observer.js\nvar import_react7 = require(\"react\");\nvar hasSymbol = typeof Symbol === \"function\" && Symbol.for;\nvar ReactForwardRefSymbol = hasSymbol ? Symbol.for(\"react.forward_ref\") : typeof import_react7.forwardRef === \"function\" && (0, import_react7.forwardRef)(function(props) {\n return null;\n})[\"$$typeof\"];\nvar ReactMemoSymbol = hasSymbol ? Symbol.for(\"react.memo\") : typeof import_react7.memo === \"function\" && (0, import_react7.memo)(function(props) {\n return null;\n})[\"$$typeof\"];\nfunction observer(baseComponent, options) {\n var _a3;\n if (false) {\n warnObserverOptionsDeprecated = false;\n console.warn(\"[mobx-react-lite] `observer(fn, { forwardRef: true })` is deprecated, use `observer(React.forwardRef(fn))`\");\n }\n if (ReactMemoSymbol && baseComponent[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\"[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.\");\n }\n if (isUsingStaticRendering()) {\n return baseComponent;\n }\n var useForwardRef = (_a3 = options === null || options === void 0 ? void 0 : options.forwardRef) !== null && _a3 !== void 0 ? _a3 : false;\n var render = baseComponent;\n var baseComponentName = baseComponent.displayName || baseComponent.name;\n if (ReactForwardRefSymbol && baseComponent[\"$$typeof\"] === ReactForwardRefSymbol) {\n useForwardRef = true;\n render = baseComponent[\"render\"];\n if (typeof render !== \"function\") {\n throw new Error(\"[mobx-react-lite] `render` property of ForwardRef was not a function\");\n }\n }\n var observerComponent = function(props, ref) {\n return useObserver(function() {\n return render(props, ref);\n }, baseComponentName);\n };\n if (baseComponentName !== \"\") {\n ;\n observerComponent.displayName = baseComponentName;\n }\n if (baseComponent.contextTypes) {\n ;\n observerComponent.contextTypes = baseComponent.contextTypes;\n }\n if (useForwardRef) {\n observerComponent = (0, import_react7.forwardRef)(observerComponent);\n }\n observerComponent = (0, import_react7.memo)(observerComponent);\n copyStaticProperties(baseComponent, observerComponent);\n if (false) {\n Object.defineProperty(observerComponent, \"contextTypes\", {\n set: function() {\n var _a4;\n throw new Error(\"[mobx-react-lite] `\".concat(this.displayName || ((_a4 = this.type) === null || _a4 === void 0 ? void 0 : _a4.displayName) || \"Component\", \".contextTypes` must be set before applying `observer`.\"));\n }\n });\n }\n return observerComponent;\n}\nvar hoistBlackList = {\n $$typeof: true,\n render: true,\n compare: true,\n type: true,\n displayName: true\n};\nfunction copyStaticProperties(base, target) {\n Object.keys(base).forEach(function(key) {\n if (!hoistBlackList[key]) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/ObserverComponent.js\nfunction ObserverComponent(_a3) {\n var children = _a3.children, render = _a3.render;\n var component = children || render;\n if (typeof component !== \"function\") {\n return null;\n }\n return useObserver(component);\n}\nif (false) {\n ObserverComponent.propTypes = {\n children: ObserverPropsCheck,\n render: ObserverPropsCheck\n };\n}\nObserverComponent.displayName = \"Observer\";\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useLocalObservable.js\nvar import_react8 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useLocalStore.js\nvar import_react10 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/useAsObservableSource.js\nvar import_react9 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/mobx-react-lite\/es\/index.js\nobserverBatching(import_react_dom.unstable_batchedUpdates);\n\n\/\/ ..\/..\/packages\/react\/src\/components\/HTMLContainer\/HTMLContainer.tsx\nvar React20 = __toESM(require(\"react\"));\nvar import_jsx_runtime2 = require(\"react\/jsx-runtime\");\nvar HTMLContainer = React20.forwardRef(\n function HTMLContainer2(_a3, ref) {\n var _b = _a3, { children, opacity, centered, className = \"\" } = _b, rest = __objRest(_b, [\"children\", \"opacity\", \"centered\", \"className\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime2.jsx)(ObserverComponent, {\n children: () => \/* @__PURE__ *\/ (0, import_jsx_runtime2.jsx)(\"div\", {\n ref,\n className: `tl-positioned-div ${className}`,\n style: opacity ? { opacity } : void 0,\n draggable: false,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime2.jsx)(\"div\", __spreadProps(__spreadValues({\n className: `tl-positioned-inner ${centered ? \"tl-centered\" : \"\"}`\n }, rest), {\n children\n }))\n })\n });\n }\n);\n\n\/\/ ..\/..\/packages\/react\/src\/components\/SVGContainer\/SVGContainer.tsx\nvar React21 = __toESM(require(\"react\"));\nvar import_jsx_runtime3 = require(\"react\/jsx-runtime\");\nvar SVGContainer = React21.forwardRef(\n function SVGContainer2(_a3, ref) {\n var _b = _a3, { id: id3, className = \"\", style, children } = _b, rest = __objRest(_b, [\"id\", \"className\", \"style\", \"children\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime3.jsx)(ObserverComponent, {\n children: () => \/* @__PURE__ *\/ (0, import_jsx_runtime3.jsx)(\"svg\", {\n ref,\n style,\n className: `tl-positioned-svg ${className}`,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime3.jsx)(\"g\", __spreadProps(__spreadValues({\n id: id3,\n className: \"tl-centered-g\"\n }, rest), {\n children\n }))\n })\n });\n }\n);\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Canvas\/Canvas.tsx\nvar React31 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useKeyboardEvents.ts\nvar React22 = __toESM(require(\"react\"));\nfunction useKeyboardEvents(ref) {\n const app = useApp();\n const { callbacks } = useRendererContext();\n const shiftKeyDownRef = React22.useRef(false);\n React22.useEffect(() => {\n const onKeyDown = (e2) => {\n var _a3, _b;\n if ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) {\n (_b = callbacks.onKeyDown) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order: -1 }, e2);\n shiftKeyDownRef.current = e2.shiftKey;\n }\n };\n const onKeyUp = (e2) => {\n var _a3, _b;\n if ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) {\n (_b = callbacks.onKeyUp) == null ? void 0 : _b.call(callbacks, { type: \"canvas\" \/* Canvas *\/, order: -1 }, e2);\n shiftKeyDownRef.current = e2.shiftKey;\n }\n };\n const onPaste = (e2) => {\n var _a3, _b, _c;\n if (!app.editingShape && ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) && ![\"INPUT\", \"TEXTAREA\"].includes((_c = (_b = document.activeElement) == null ? void 0 : _b.tagName) != null ? _c : \"\")) {\n e2.preventDefault();\n app.paste(e2, shiftKeyDownRef.current);\n }\n };\n const onCopy = (e2) => {\n var _a3, _b, _c;\n if (!app.editingShape && app.selectedShapes.size > 0 && ((_a3 = ref.current) == null ? void 0 : _a3.contains(document.activeElement)) && ![\"INPUT\", \"TEXTAREA\"].includes((_c = (_b = document.activeElement) == null ? void 0 : _b.tagName) != null ? _c : \"\")) {\n e2.preventDefault();\n app.copy();\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"keyup\", onKeyUp);\n document.addEventListener(\"paste\", onPaste);\n document.addEventListener(\"copy\", onCopy);\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n window.removeEventListener(\"keyup\", onKeyUp);\n document.removeEventListener(\"paste\", onPaste);\n document.removeEventListener(\"copy\", onCopy);\n };\n }, []);\n}\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Container\/Container.tsx\nvar React23 = __toESM(require(\"react\"));\nvar import_jsx_runtime4 = require(\"react\/jsx-runtime\");\nvar Container = observer(function Container2(_a3) {\n var _b = _a3, {\n id: id3,\n bounds,\n zIndex,\n rotation = 0,\n className = \"\",\n children\n } = _b, props = __objRest(_b, [\n \"id\",\n \"bounds\",\n \"zIndex\",\n \"rotation\",\n \"className\",\n \"children\"\n ]);\n const rBounds = React23.useRef(null);\n React23.useLayoutEffect(() => {\n const elm = rBounds.current;\n elm.style.transform = `translate(\n calc(${bounds.minX}px - var(--tl-padding)),\n calc(${bounds.minY}px - var(--tl-padding)))\n rotate(${rotation + (bounds.rotation || 0)}rad)`;\n }, [bounds.minX, bounds.minY, rotation, bounds.rotation]);\n React23.useLayoutEffect(() => {\n const elm = rBounds.current;\n elm.style.width = `calc(${Math.floor(bounds.width)}px + (var(--tl-padding) * 2))`;\n elm.style.height = `calc(${Math.floor(bounds.height)}px + (var(--tl-padding) * 2))`;\n }, [bounds.width, bounds.height]);\n React23.useLayoutEffect(() => {\n const elm = rBounds.current;\n if (zIndex !== void 0)\n elm.style.zIndex = zIndex.toString();\n }, [zIndex]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime4.jsx)(\"div\", __spreadProps(__spreadValues({\n id: id3,\n ref: rBounds,\n className: `tl-positioned ${className}`,\n \"aria-label\": \"container\"\n }, props), {\n children\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ContextBarContainer\/ContextBarContainer.tsx\nvar React24 = __toESM(require(\"react\"));\nvar import_jsx_runtime5 = require(\"react\/jsx-runtime\");\nvar ContextBarContainer = observer(function ContextBarContainer2({\n shapes: shapes2,\n hidden,\n bounds,\n rotation = 0\n}) {\n const {\n components: { ContextBar: ContextBar2 },\n viewport: {\n bounds: vpBounds,\n camera: {\n point: [x4, y4],\n zoom\n }\n }\n } = useRendererContext();\n const rBounds = React24.useRef(null);\n const rotatedBounds = BoundsUtils.getRotatedBounds(bounds, rotation);\n const scaledBounds = BoundsUtils.multiplyBounds(rotatedBounds, zoom);\n useCounterScaledPosition(rBounds, bounds, rotation, 10005);\n if (!ContextBar2)\n throw Error(\"Expected a ContextBar component.\");\n const screenBounds = BoundsUtils.translateBounds(scaledBounds, [x4 * zoom, y4 * zoom]);\n const offsets = {\n left: screenBounds.minX,\n right: vpBounds.width - screenBounds.maxX,\n top: screenBounds.minY,\n bottom: vpBounds.height - screenBounds.maxY,\n width: screenBounds.width,\n height: screenBounds.height\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime5.jsx)(\"div\", {\n ref: rBounds,\n className: \"tl-counter-scaled-positioned\",\n \"aria-label\": \"context-bar-container\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime5.jsx)(ContextBar2, {\n hidden,\n shapes: shapes2,\n bounds,\n offsets,\n scaledBounds,\n rotation\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/HTMLLayer\/HTMLLayer.tsx\nvar React25 = __toESM(require(\"react\"));\nvar import_jsx_runtime6 = require(\"react\/jsx-runtime\");\nvar HTMLLayer = observer(function HTMLLayer2({ children }) {\n const rLayer = React25.useRef(null);\n const { viewport } = useRendererContext();\n const layer = rLayer.current;\n const { zoom, point } = viewport.camera;\n React25.useEffect(() => {\n if (!layer)\n return;\n layer.style.transform = `scale(${zoom}) translate3d(${point[0]}px, ${point[1]}px, 0)`;\n }, [zoom, point, layer]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime6.jsx)(\"div\", {\n ref: rLayer,\n className: \"tl-absolute tl-layer\",\n children\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Indicator\/Indicator.tsx\nvar import_jsx_runtime7 = require(\"react\/jsx-runtime\");\nvar Indicator = observer(function Shape({\n shape,\n isHovered = false,\n isSelected = false,\n isBinding = false,\n isEditing = false,\n isLocked = false,\n meta\n}) {\n const {\n bounds,\n props: { scale, rotation = 0 },\n ReactIndicator\n } = shape;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(Container, {\n \"data-type\": \"Indicator\",\n \"data-html2canvas-ignore\": \"true\",\n bounds,\n rotation,\n scale,\n zIndex: isEditing ? 1e3 : 1e4,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(SVGContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(\"g\", {\n className: `tl-indicator-container ${isSelected ? \"tl-selected\" : \"tl-hovered\"} ${isLocked ? \"tl-locked\" : \"\"}`,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime7.jsx)(ReactIndicator, {\n isEditing,\n isBinding,\n isHovered,\n isLocked,\n isSelected,\n isErasing: false,\n meta\n })\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/hooks\/useShapeEvents.ts\nvar React26 = __toESM(require(\"react\"));\nfunction useShapeEvents(shape) {\n const app = useApp();\n const { inputs, callbacks } = useRendererContext();\n const rDoubleClickTimer = React26.useRef(-1);\n const events = React26.useMemo(() => {\n const onPointerMove = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerMove) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onPointerDown = (e2) => {\n var _a3, _b;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.setPointerCapture(e2.pointerId);\n (_b = callbacks.onPointerDown) == null ? void 0 : _b.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onPointerUp = (e2) => {\n var _a3, _b, _c;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n if (!order)\n (_a3 = e2.currentTarget) == null ? void 0 : _a3.releasePointerCapture(e2.pointerId);\n (_b = callbacks.onPointerUp) == null ? void 0 : _b.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n const now = Date.now();\n const elapsed = now - rDoubleClickTimer.current;\n if (elapsed > DOUBLE_CLICK_DURATION) {\n rDoubleClickTimer.current = now;\n } else {\n if (elapsed <= DOUBLE_CLICK_DURATION) {\n (_c = callbacks.onDoubleClick) == null ? void 0 : _c.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n rDoubleClickTimer.current = -1;\n }\n }\n e2.order = order + 1;\n };\n const onPointerEnter = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerEnter) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onPointerLeave = (e2) => {\n var _a3;\n if (app.settings.penMode && (e2.pointerType !== \"pen\" || !e2.isPrimary)) {\n return;\n }\n const { order = 0 } = e2;\n (_a3 = callbacks.onPointerLeave) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order }, e2);\n e2.order = order + 1;\n };\n const onKeyDown = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyDown) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order: -1 }, e2);\n };\n const onKeyUp = (e2) => {\n var _a3;\n (_a3 = callbacks.onKeyUp) == null ? void 0 : _a3.call(callbacks, { type: \"shape\" \/* Shape *\/, shape, order: -1 }, e2);\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerEnter,\n onPointerLeave,\n onKeyUp,\n onKeyDown\n };\n }, [shape.id, inputs, callbacks]);\n return events;\n}\n\n\/\/ ..\/..\/packages\/react\/src\/components\/QuickLinksContainer\/QuickLinksContainer.tsx\nvar import_jsx_runtime8 = require(\"react\/jsx-runtime\");\nvar QuickLinksContainer = observer(function QuickLinksContainer2({\n bounds,\n shape\n}) {\n const {\n viewport: {\n camera: { zoom }\n },\n components: { QuickLinks: QuickLinks2 }\n } = useRendererContext();\n const app = useApp();\n const events = useShapeEvents(shape);\n if (!QuickLinks2)\n throw Error(\"Expected a QuickLinks component.\");\n const stop2 = (e2) => e2.stopPropagation();\n const rounded = bounds.height * zoom < 50 || !app.selectedShapesArray.includes(shape);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(Container, {\n bounds,\n className: \"tl-quick-links-container\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(HTMLContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(\"span\", __spreadProps(__spreadValues({\n style: {\n position: \"absolute\",\n top: \"100%\",\n pointerEvents: \"all\",\n transformOrigin: \"left top\",\n paddingTop: \"8px\",\n transform: \"scale(var(--tl-scale))\",\n minWidth: \"320px\"\n }\n }, events), {\n onPointerDown: stop2,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime8.jsx)(QuickLinks2, {\n className: \"tl-backlinks-count \" + (rounded ? \"tl-backlinks-count-rounded\" : \"\"),\n id: shape.id,\n shape\n })\n }))\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/BacklinksCountContainer\/BacklinksCountContainer.tsx\nvar import_jsx_runtime9 = require(\"react\/jsx-runtime\");\nvar BacklinksCountContainer = observer(function BacklinksCountContainer2({ bounds, shape }) {\n const {\n viewport: {\n camera: { zoom }\n },\n components: { BacklinksCount: BacklinksCount2 }\n } = useRendererContext();\n const app = useApp();\n if (!BacklinksCount2)\n throw Error(\"Expected a BacklinksCount component.\");\n const stop2 = (e2) => e2.stopPropagation();\n const rounded = bounds.height * zoom < 50 || !app.selectedShapesArray.includes(shape) || shape.hideSelection;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(Container, {\n bounds,\n className: \"tl-backlinks-count-container\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(HTMLContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(\"span\", {\n style: {\n position: \"absolute\",\n left: \"100%\",\n pointerEvents: \"all\",\n transformOrigin: \"left top\",\n transform: \"translateY(6px) scale(var(--tl-scale))\"\n },\n onPointerDown: stop2,\n onWheelCapture: stop2,\n onKeyDown: stop2,\n title: \"Shape Backlinks\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime9.jsx)(BacklinksCount2, {\n className: \"tl-backlinks-count \" + (rounded ? \"tl-backlinks-count-rounded\" : \"\"),\n id: shape.id,\n shape\n })\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/SelectionDetailContainer\/SelectionDetailContainer.tsx\nvar React27 = __toESM(require(\"react\"));\nvar import_jsx_runtime10 = require(\"react\/jsx-runtime\");\nvar SelectionDetailContainer = observer(function SelectionDetail({\n bounds,\n hidden,\n shapes: shapes2,\n rotation = 0,\n detail = \"size\"\n}) {\n const {\n components: { SelectionDetail: SelectionDetail4 },\n viewport: {\n camera: { zoom }\n }\n } = useRendererContext();\n const rBounds = React27.useRef(null);\n const scaledBounds = BoundsUtils.multiplyBounds(bounds, zoom);\n useCounterScaledPosition(rBounds, bounds, rotation, 10003);\n if (!SelectionDetail4)\n throw Error(\"Expected a SelectionDetail component.\");\n return \/* @__PURE__ *\/ (0, import_jsx_runtime10.jsx)(\"div\", {\n ref: rBounds,\n className: `tl-counter-scaled-positioned ${hidden ? `tl-fade-out` : \"\"}`,\n \"aria-label\": \"bounds-detail-container\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime10.jsx)(SelectionDetail4, {\n shapes: shapes2,\n bounds,\n scaledBounds,\n zoom,\n rotation,\n detail\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Shape\/Shape.tsx\nvar import_jsx_runtime11 = require(\"react\/jsx-runtime\");\nvar Shape2 = observer(function Shape3({\n shape,\n isHovered = false,\n isSelected = false,\n isBinding = false,\n isErasing = false,\n isEditing = false,\n onEditingEnd,\n asset,\n meta,\n zIndex\n}) {\n const {\n bounds,\n props: { rotation, scale },\n ReactComponent\n } = shape;\n const app = useApp();\n const events = useShapeEvents(shape);\n const parentGroup = app.getParentGroup(shape);\n const isParentGrpupSelected = app.selectedIds.has(parentGroup == null ? void 0 : parentGroup.id);\n const ignoreExport = !isSelected && !isParentGrpupSelected && app.selectedShapes.size !== 0 || null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime11.jsx)(Container, {\n \"data-shape-id\": shape.id,\n \"data-html2canvas-ignore\": ignoreExport,\n zIndex,\n \"data-type\": \"Shape\",\n bounds,\n rotation,\n scale,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime11.jsx)(ReactComponent, {\n meta,\n isEditing,\n isBinding,\n isHovered,\n isSelected,\n isErasing,\n events,\n asset,\n onEditingEnd\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Grid\/Grid.tsx\nvar import_jsx_runtime12 = require(\"react\/jsx-runtime\");\nvar STEPS = [\n [-1, 0.15, 64],\n [0.05, 0.375, 16],\n [0.15, 1, 4],\n [0.7, 2.5, 1]\n];\nvar SVGGrid = observer(function CanvasGrid({ size }) {\n const {\n viewport: {\n camera: { point, zoom }\n }\n } = useRendererContext();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsxs)(\"svg\", {\n className: \"tl-grid\",\n version: \"1.1\",\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n \"data-html2canvas-ignore\": \"true\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"defs\", {\n children: STEPS.map(([min, mid, _size], i4) => {\n const s4 = _size * size * zoom;\n const xo = point[0] * zoom;\n const yo = point[1] * zoom;\n const gxo = xo > 0 ? xo % s4 : s4 + xo % s4;\n const gyo = yo > 0 ? yo % s4 : s4 + yo % s4;\n const opacity = modulate(zoom, [min, mid], [0, 1]);\n const hide = opacity > 2 || opacity < 0.1;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"pattern\", {\n id: `grid-${i4}`,\n width: s4,\n height: s4,\n patternUnits: \"userSpaceOnUse\",\n children: !hide && \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"circle\", {\n className: `tl-grid-dot`,\n cx: gxo,\n cy: gyo,\n r: 1.5,\n opacity: clamp(opacity, 0, 1)\n })\n }, `grid-pattern-${i4}`);\n })\n }),\n STEPS.map((_2, i4) => \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(\"rect\", {\n width: \"100%\",\n height: \"100%\",\n fill: `url(#grid-${i4})`\n }, `grid-rect-${i4}`))\n ]\n });\n});\nvar Grid = observer(function Grid2({ size }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime12.jsx)(SVGGrid, {\n size\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionBackground\/SelectionBackground.tsx\nvar import_jsx_runtime13 = require(\"react\/jsx-runtime\");\nvar SelectionBackground = observer(function SelectionBackground2({\n bounds\n}) {\n const events = useBoundsEvents(\"background\");\n return \/* @__PURE__ *\/ (0, import_jsx_runtime13.jsx)(SVGContainer, __spreadProps(__spreadValues({\n \"data-html2canvas-ignore\": \"true\"\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime13.jsx)(\"rect\", {\n className: \"tl-bounds-bg\",\n width: Math.max(1, bounds.width),\n height: Math.max(1, bounds.height),\n pointerEvents: \"all\",\n rx: 8,\n ry: 8\n })\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionDetail\/SelectionDetail.tsx\nvar React28 = require(\"react\");\nvar import_jsx_runtime14 = require(\"react\/jsx-runtime\");\nvar SelectionDetail2 = observer(function SelectionDetail3({\n scaledBounds,\n shapes: shapes2,\n detail = \"size\",\n rotation = 0\n}) {\n var _a3;\n const selectionRotation = shapes2.length === 1 ? rotation : (_a3 = scaledBounds.rotation) != null ? _a3 : 0;\n const isFlipped = !(selectionRotation < TAU || selectionRotation > TAU * 3);\n const isLine = shapes2.length === 1 && shapes2[0].type === \"line\";\n return \/* @__PURE__ *\/ (0, import_jsx_runtime14.jsx)(HTMLContainer, {\n centered: true,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime14.jsx)(\"div\", {\n className: \"tl-bounds-detail\",\n style: {\n transform: isFlipped ? `rotate(${Math.PI + selectionRotation}rad) translateY(${scaledBounds.height \/ 2 + 32}px)` : `rotate(${selectionRotation}rad) translateY(${scaledBounds.height \/ 2 + 24}px)`,\n padding: \"2px 3px\",\n borderRadius: \"1px\"\n },\n children: isLine ? `${src_default.dist(\n shapes2[0].props.handles.start.point,\n shapes2[0].props.handles.end.point\n ).toFixed()}` : detail === \"size\" ? `${scaledBounds.width.toFixed()} \\xD7 ${scaledBounds.height.toFixed()}` : `\\u2220${GeomUtils.radiansToDegrees(GeomUtils.clampRadians(rotation)).toFixed()}\\xB0`\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/CornerHandle.tsx\nvar import_jsx_runtime15 = require(\"react\/jsx-runtime\");\nvar cornerBgClassnames = {\n [\"top_left_corner\" \/* TopLeft *\/]: \"tl-cursor-nwse\",\n [\"top_right_corner\" \/* TopRight *\/]: \"tl-cursor-nesw\",\n [\"bottom_right_corner\" \/* BottomRight *\/]: \"tl-cursor-nwse\",\n [\"bottom_left_corner\" \/* BottomLeft *\/]: \"tl-cursor-nesw\"\n};\nvar CornerHandle = observer(function CornerHandle2({\n cx: cx2,\n cy,\n size,\n targetSize,\n corner,\n isHidden\n}) {\n const events = useBoundsEvents(corner);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime15.jsxs)(\"g\", __spreadProps(__spreadValues({\n opacity: isHidden ? 0 : 1\n }, events), {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime15.jsx)(\"rect\", {\n className: \"tl-transparent \" + (isHidden ? \"\" : cornerBgClassnames[corner]),\n \"aria-label\": `${corner} target`,\n x: cx2 - targetSize * 1.25,\n y: cy - targetSize * 1.25,\n width: targetSize * 2.5,\n height: targetSize * 2.5,\n pointerEvents: isHidden ? \"none\" : \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime15.jsx)(\"rect\", {\n className: \"tl-corner-handle\",\n \"aria-label\": `${corner} handle`,\n x: cx2 - size \/ 2,\n y: cy - size \/ 2,\n width: size,\n height: size,\n pointerEvents: \"none\"\n })\n ]\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/CloneHandle.tsx\nvar import_jsx_runtime16 = require(\"react\/jsx-runtime\");\nvar CloneHandle = observer(function CloneHandle2({\n cx: cx2,\n cy,\n size,\n direction,\n isHidden\n}) {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsxs)(\"g\", {\n className: \"tl-clone-handle\",\n opacity: isHidden ? 0 : 1,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsx)(\"circle\", {\n \"aria-label\": `${direction} handle`,\n pointerEvents: \"all\",\n onPointerDown: (e2) => app.api.clone(direction),\n cx: cx2,\n cy,\n r: size\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsx)(\"line\", {\n x1: cx2 - size \/ 2,\n y1: cy,\n x2: cx2 + size \/ 2,\n y2: cy\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime16.jsx)(\"line\", {\n x1: cx2,\n y1: cy - size \/ 2,\n x2: cx2,\n y2: cy + size \/ 2\n })\n ]\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/EdgeHandle.tsx\nvar import_jsx_runtime17 = require(\"react\/jsx-runtime\");\nvar edgeClassnames = {\n [\"top_edge\" \/* Top *\/]: \"tl-cursor-ns\",\n [\"right_edge\" \/* Right *\/]: \"tl-cursor-ew\",\n [\"bottom_edge\" \/* Bottom *\/]: \"tl-cursor-ns\",\n [\"left_edge\" \/* Left *\/]: \"tl-cursor-ew\"\n};\nvar EdgeHandle = observer(function EdgeHandle2({\n x: x4,\n y: y4,\n width,\n height,\n targetSize,\n edge,\n disabled,\n isHidden\n}) {\n const events = useBoundsEvents(edge);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime17.jsx)(\"rect\", __spreadValues({\n pointerEvents: isHidden || disabled ? \"none\" : \"all\",\n className: \"tl-transparent tl-edge-handle \" + (isHidden ? \"\" : edgeClassnames[edge]),\n \"aria-label\": `${edge} target`,\n opacity: isHidden ? 0 : 1,\n x: x4 - targetSize,\n y: y4 - targetSize,\n width: Math.max(1, width + targetSize * 2),\n height: Math.max(1, height + targetSize * 2)\n }, events));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/RotateHandle.tsx\nvar import_jsx_runtime18 = require(\"react\/jsx-runtime\");\nvar RotateHandle = observer(function RotateHandle2({\n cx: cx2,\n cy,\n size,\n targetSize,\n isHidden\n}) {\n const events = useBoundsEvents(\"rotate\");\n return \/* @__PURE__ *\/ (0, import_jsx_runtime18.jsxs)(\"g\", __spreadProps(__spreadValues({\n opacity: isHidden ? 0 : 1\n }, events), {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime18.jsx)(\"circle\", {\n className: \"tl-transparent \",\n \"aria-label\": \"rotate target\",\n cx: cx2,\n cy,\n r: targetSize,\n pointerEvents: isHidden ? \"none\" : \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime18.jsx)(\"circle\", {\n className: \"tl-rotate-handle\",\n \"aria-label\": \"rotate handle\",\n cx: cx2,\n cy,\n r: size \/ 2,\n pointerEvents: \"none\"\n })\n ]\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/handles\/RotateCornerHandle.tsx\nvar React29 = require(\"react\");\nvar import_jsx_runtime19 = require(\"react\/jsx-runtime\");\nvar RotateCornerHandle = observer(function RotateCornerHandle2({\n cx: cx2,\n cy,\n targetSize,\n corner,\n isHidden\n}) {\n const events = useBoundsEvents(corner);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime19.jsx)(\"g\", __spreadProps(__spreadValues({\n opacity: isHidden ? 0 : 1\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime19.jsx)(\"rect\", {\n className: \"tl-transparent\",\n \"aria-label\": `${corner} target`,\n x: cx2 - targetSize * 2.5,\n y: cy - targetSize * 2.5,\n width: targetSize * 3,\n height: targetSize * 3,\n pointerEvents: isHidden ? \"none\" : \"all\"\n })\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/SelectionForeground\/SelectionForeground.tsx\nvar import_jsx_runtime20 = require(\"react\/jsx-runtime\");\nvar SelectionForeground = observer(function SelectionForeground2({\n bounds,\n showResizeHandles,\n showRotateHandles,\n showCloneHandles,\n shapes: shapes2\n}) {\n var _a3, _b;\n const app = useApp();\n let { width, height } = bounds;\n const zoom = app.viewport.camera.zoom;\n const size = 8 \/ zoom;\n const targetSize = 6 \/ zoom;\n const clonePadding = 30 \/ zoom;\n const cloneHandleSize = size * 2;\n const canResize = shapes2.length === 1 ? shapes2[0].canResize : [true, true];\n const borderRadius = (_b = (_a3 = app.editingShape) == null ? void 0 : _a3.props[\"borderRadius\"]) != null ? _b : 0;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(import_jsx_runtime20.Fragment, {\n children: shapes2.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsxs)(SVGContainer, {\n children: [\n !app.editingShape && \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(\"rect\", {\n className: \"tl-bounds-fg\",\n width: Math.max(width, 1),\n height: Math.max(height, 1),\n rx: borderRadius,\n ry: borderRadius,\n pointerEvents: \"none\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: targetSize * 2,\n y: 0,\n width: width - targetSize * 4,\n height: 0,\n targetSize,\n edge: \"top_edge\" \/* Top *\/,\n disabled: !canResize[1],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: width,\n y: targetSize * 2,\n width: 0,\n height: height - targetSize * 4,\n targetSize,\n edge: \"right_edge\" \/* Right *\/,\n disabled: !canResize[0],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: targetSize * 2,\n y: height,\n width: width - targetSize * 4,\n height: 0,\n targetSize,\n edge: \"bottom_edge\" \/* Bottom *\/,\n disabled: !canResize[1],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(EdgeHandle, {\n x: 0,\n y: targetSize * 2,\n width: 0,\n height: height - targetSize * 4,\n targetSize,\n edge: \"left_edge\" \/* Left *\/,\n disabled: !canResize[0],\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: 0,\n cy: 0,\n targetSize,\n corner: \"top_left_resize_corner\" \/* TopLeft *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: width + targetSize * 2,\n cy: 0,\n targetSize,\n corner: \"top_right_resize_corner\" \/* TopRight *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: width + targetSize * 2,\n cy: height + targetSize * 2,\n targetSize,\n corner: \"bottom_right_resize_corner\" \/* BottomRight *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(RotateCornerHandle, {\n cx: 0,\n cy: height + targetSize * 2,\n targetSize,\n corner: \"bottom_left_resize_corner\" \/* BottomLeft *\/,\n isHidden: !showRotateHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CloneHandle, {\n cx: -clonePadding,\n cy: height \/ 2,\n size: cloneHandleSize,\n direction: \"left\" \/* Left *\/,\n isHidden: !showCloneHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CloneHandle, {\n cx: width + clonePadding,\n cy: height \/ 2,\n size: cloneHandleSize,\n direction: \"right\" \/* Right *\/,\n isHidden: !showCloneHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CloneHandle, {\n cx: width \/ 2,\n cy: height + clonePadding,\n size: cloneHandleSize,\n direction: \"down\" \/* Down *\/,\n isHidden: !showCloneHandles\n }),\n (canResize == null ? void 0 : canResize.every((r4) => r4)) && \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: 0,\n cy: 0,\n size,\n targetSize,\n corner: \"top_left_corner\" \/* TopLeft *\/,\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: width,\n cy: 0,\n size,\n targetSize,\n corner: \"top_right_corner\" \/* TopRight *\/,\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: width,\n cy: height,\n size,\n targetSize,\n corner: \"bottom_right_corner\" \/* BottomRight *\/,\n isHidden: !showResizeHandles\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime20.jsx)(CornerHandle, {\n cx: 0,\n cy: height,\n size,\n targetSize,\n corner: \"bottom_left_corner\" \/* BottomLeft *\/,\n isHidden: !showResizeHandles\n })\n ]\n })\n ]\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Brush\/Brush.tsx\nvar import_jsx_runtime21 = require(\"react\/jsx-runtime\");\nvar Brush = observer(function Brush2({ bounds }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime21.jsx)(Container, {\n bounds,\n zIndex: 10001,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime21.jsx)(SVGContainer, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime21.jsx)(\"rect\", {\n className: \"tl-brush\",\n x: 0,\n y: 0,\n width: bounds.width,\n height: bounds.height\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Cursor\/Cursor.tsx\nvar import_jsx_runtime22 = require(\"react\/jsx-runtime\");\nvar Cursor = observer(function Cursor2() {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, {});\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/Handle\/Handle.tsx\nvar import_jsx_runtime23 = require(\"react\/jsx-runtime\");\nvar Handle = observer(function Handle2({\n shape,\n handle,\n id: id3\n}) {\n const events = useHandleEvents(shape, id3);\n const [x4, y4] = handle.point;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime23.jsxs)(\"g\", __spreadProps(__spreadValues({\n className: \"tl-handle\",\n \"aria-label\": \"handle\"\n }, events), {\n transform: `translate(${x4}, ${y4})`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime23.jsx)(\"circle\", {\n className: \"tl-handle-bg\",\n pointerEvents: \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime23.jsx)(\"circle\", {\n className: \"tl-counter-scaled tl-handle\",\n pointerEvents: \"none\",\n r: 4\n })\n ]\n }));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/ui\/DirectionIndicator\/DirectionIndicator.tsx\nvar React30 = __toESM(require(\"react\"));\nvar import_jsx_runtime24 = require(\"react\/jsx-runtime\");\nvar DirectionIndicator = observer(function DirectionIndicator2({ direction }) {\n const {\n viewport: { bounds }\n } = useRendererContext();\n const rIndicator = React30.useRef(null);\n React30.useLayoutEffect(() => {\n const elm = rIndicator.current;\n if (!elm)\n return;\n const center = [bounds.width \/ 2, bounds.height \/ 2];\n const insetBoundSides = BoundsUtils.getRectangleSides(\n [12, 12],\n [bounds.width - 24, bounds.height - 24]\n );\n for (const [_2, [A4, B3]] of insetBoundSides) {\n const int = intersectRayLineSegment(center, direction, A4, B3);\n if (!int.didIntersect)\n continue;\n const point = int.points[0];\n elm.style.transform = `translate(${point[0] - 6}px,${point[1] - 6}px) rotate(${src_default.toAngle(\n direction\n )}rad)`;\n }\n }, [direction, bounds]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime24.jsx)(\"div\", {\n ref: rIndicator,\n className: \"tl-direction-indicator\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime24.jsx)(\"svg\", {\n height: 12,\n width: 12,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime24.jsx)(\"polygon\", {\n points: \"0,0 12,6 0,12\"\n })\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Canvas\/Canvas.tsx\nvar import_jsx_runtime25 = require(\"react\/jsx-runtime\");\nvar Canvas = observer(function Renderer({\n id: id3,\n className,\n brush,\n shapes: shapes2,\n assets,\n bindingShapes,\n editingShape,\n hoveredShape,\n hoveredGroup,\n selectionBounds,\n selectedShapes,\n erasingShapes,\n selectionDirectionHint,\n cursor = \"default\" \/* Default *\/,\n cursorRotation = 0,\n selectionRotation = 0,\n showSelection = true,\n showHandles = true,\n showSelectionRotation = false,\n showResizeHandles = true,\n showRotateHandles = true,\n showCloneHandles = true,\n showSelectionDetail = true,\n showContextBar = true,\n showGrid = true,\n gridSize = 8,\n onEditingEnd = NOOP,\n theme = EMPTY_OBJECT,\n children\n}) {\n var _a3;\n const rContainer = React31.useRef(null);\n const { viewport, components, meta } = useRendererContext();\n const app = useApp();\n const onBoundsChange = React31.useCallback((bounds) => {\n app.inputs.updateContainerOffset([bounds.minX, bounds.minY]);\n }, []);\n useStylesheet(theme, id3);\n usePreventNavigation(rContainer);\n useResizeObserver(rContainer, viewport, onBoundsChange);\n useGestureEvents(rContainer);\n useRestoreCamera();\n useCursor(rContainer, cursor, cursorRotation);\n useZoom(rContainer);\n useKeyboardEvents(rContainer);\n const events = useCanvasEvents();\n const onlySelectedShape = (selectedShapes == null ? void 0 : selectedShapes.length) === 1 && selectedShapes[0];\n const onlySelectedShapeWithHandles = onlySelectedShape && \"handles\" in onlySelectedShape.props ? selectedShapes == null ? void 0 : selectedShapes[0] : void 0;\n const selectedShapesSet = React31.useMemo(() => new Set(selectedShapes || []), [selectedShapes]);\n const erasingShapesSet = React31.useMemo(() => new Set(erasingShapes || []), [erasingShapes]);\n const singleSelectedShape = (selectedShapes == null ? void 0 : selectedShapes.length) === 1 ? selectedShapes[0] : void 0;\n const hoveredShapes = [...\/* @__PURE__ *\/ new Set([hoveredGroup, hoveredShape])].filter(isNonNullable);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(\"div\", {\n ref: rContainer,\n className: `tl-container ${className != null ? className : \"\"}`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(\"div\", __spreadProps(__spreadValues({\n tabIndex: -1,\n className: \"tl-absolute tl-canvas\"\n }, events), {\n children: [\n showGrid && components.Grid && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.Grid, {\n size: gridSize\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(HTMLLayer, {\n children: [\n components.SelectionBackground && selectedShapes && selectionBounds && showSelection && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Container, {\n \"data-type\": \"SelectionBackground\",\n bounds: selectionBounds,\n zIndex: 2,\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.SelectionBackground, {\n shapes: selectedShapes,\n bounds: selectionBounds,\n showResizeHandles,\n showRotateHandles\n })\n }),\n shapes2 && shapes2.map((shape, i4) => \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Shape2, {\n shape,\n asset: assets && shape.props.assetId ? assets[shape.props.assetId] : void 0,\n isEditing: shape === editingShape,\n isHovered: shape === hoveredShape,\n isBinding: bindingShapes == null ? void 0 : bindingShapes.includes(shape),\n isSelected: selectedShapesSet.has(shape),\n isErasing: erasingShapesSet.has(shape),\n meta,\n zIndex: 1e3 + i4,\n onEditingEnd\n }, \"shape_\" + shape.id)),\n !app.isIn(\"select.pinching\") && (selectedShapes == null ? void 0 : selectedShapes.map((shape) => \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Indicator, {\n shape,\n isEditing: shape === editingShape,\n isHovered: false,\n isBinding: false,\n isSelected: true,\n isLocked: shape.props.isLocked\n }, \"selected_indicator_\" + shape.id))),\n hoveredShapes.map(\n (s4) => s4 !== editingShape && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Indicator, {\n shape: s4\n }, \"hovered_indicator_\" + s4.id)\n ),\n singleSelectedShape && components.BacklinksCount && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(BacklinksCountContainer, {\n hidden: false,\n bounds: singleSelectedShape.bounds,\n shape: singleSelectedShape\n }),\n hoveredShape && hoveredShape !== singleSelectedShape && components.QuickLinks && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(QuickLinksContainer, {\n hidden: false,\n bounds: hoveredShape.bounds,\n shape: hoveredShape\n }),\n brush && components.Brush && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.Brush, {\n bounds: brush\n }),\n selectedShapes && selectionBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, {\n children: [\n showSelection && components.SelectionForeground && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Container, {\n \"data-type\": \"SelectionForeground\",\n \"data-html2canvas-ignore\": \"true\",\n bounds: selectionBounds,\n zIndex: editingShape && selectedShapes.includes(editingShape) ? 1002 : 10002,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(components.SelectionForeground, {\n shapes: selectedShapes.filter((shape) => !shape.props.isLocked),\n bounds: selectionBounds,\n showResizeHandles,\n showRotateHandles,\n showCloneHandles\n })\n }),\n showHandles && onlySelectedShapeWithHandles && components.Handle && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(Container, {\n \"data-type\": \"onlySelectedShapeWithHandles\",\n \"data-html2canvas-ignore\": \"true\",\n bounds: selectionBounds,\n zIndex: 10003,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(SVGContainer, {\n children: Object.entries((_a3 = onlySelectedShapeWithHandles.props.handles) != null ? _a3 : {}).map(\n ([id4, handle]) => React31.createElement(components.Handle, {\n key: `${handle.id}_handle_${handle.id}`,\n shape: onlySelectedShapeWithHandles,\n handle,\n id: id4\n })\n )\n })\n }),\n selectedShapes && components.SelectionDetail && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(SelectionDetailContainer, {\n \"data-html2canvas-ignore\": \"true\",\n shapes: selectedShapes,\n bounds: selectionBounds,\n detail: showSelectionRotation ? \"rotation\" : \"size\",\n hidden: !showSelectionDetail,\n rotation: selectionRotation\n }, \"detail\" + selectedShapes.map((shape) => shape.id).join(\"\"))\n ]\n })\n ]\n }),\n selectionDirectionHint && selectionBounds && selectedShapes && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(DirectionIndicator, {\n direction: selectionDirectionHint,\n bounds: selectionBounds,\n shapes: selectedShapes\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(\"div\", {\n id: \"tl-dev-tools-canvas-anchor\",\n \"data-html2canvas-ignore\": \"true\"\n })\n ]\n })),\n \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(HTMLLayer, {\n children: selectedShapes && selectionBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, {\n children: selectedShapes && components.ContextBar && \/* @__PURE__ *\/ (0, import_jsx_runtime25.jsx)(ContextBarContainer, {\n shapes: selectedShapes.filter((s4) => !s4.props.isLocked),\n hidden: !showContextBar,\n bounds: singleSelectedShape ? singleSelectedShape.bounds : selectionBounds,\n rotation: singleSelectedShape ? singleSelectedShape.props.rotation : 0\n }, \"context\" + selectedShapes.map((shape) => shape.id).join(\"\"))\n })\n }),\n children\n ]\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Renderer\/RendererContext.tsx\nvar React33 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/packages\/react\/src\/components\/SVGLayer\/SVGLayer.tsx\nvar React32 = __toESM(require(\"react\"));\nvar import_jsx_runtime26 = require(\"react\/jsx-runtime\");\nvar SVGLayer = observer(function SVGLayer2({ children }) {\n const rGroup = React32.useRef(null);\n const { viewport } = useRendererContext();\n React32.useEffect(\n () => autorun(() => {\n const group = rGroup.current;\n if (!group)\n return;\n const { zoom, point } = viewport.camera;\n group.style.transform = `scale(${zoom}) translateX(${point[0]}px) translateY(${point[1]}px)`;\n }),\n []\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime26.jsx)(\"svg\", {\n className: \"tl-absolute tl-overlay\",\n pointerEvents: \"none\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime26.jsx)(\"g\", {\n ref: rGroup,\n pointerEvents: \"none\",\n children\n })\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/AppProvider.tsx\nvar import_jsx_runtime27 = require(\"react\/jsx-runtime\");\nvar AppProvider = observer(function App(props) {\n const app = useAppSetup(props);\n const context = getAppContext(props.id);\n usePropControl(app, props);\n useSetup(app, props);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime27.jsx)(context.Provider, {\n value: app,\n children: props.children\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Renderer\/RendererContext.tsx\nvar import_jsx_runtime28 = require(\"react\/jsx-runtime\");\nvar RendererContext = observer(function App2({\n id: id3 = \"noid\",\n viewport,\n inputs,\n callbacks = EMPTY_OBJECT,\n meta = EMPTY_OBJECT,\n components = EMPTY_OBJECT,\n children\n}) {\n const [currentContext, setCurrentContext] = React33.useState(() => {\n const _a3 = components, {\n Brush: Brush3,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3,\n Grid: Grid3,\n Handle: Handle3,\n SelectionBackground: SelectionBackground3,\n SelectionDetail: SelectionDetail4,\n SelectionForeground: SelectionForeground3\n } = _a3, rest = __objRest(_a3, [\n \"Brush\",\n \"ContextBar\",\n \"DirectionIndicator\",\n \"Grid\",\n \"Handle\",\n \"SelectionBackground\",\n \"SelectionDetail\",\n \"SelectionForeground\"\n ]);\n return {\n id: id3,\n viewport,\n inputs,\n callbacks,\n meta,\n components: __spreadProps(__spreadValues({}, rest), {\n Brush: Brush3 === null ? void 0 : Brush,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3 === null ? void 0 : DirectionIndicator,\n Grid: Grid3 === null ? void 0 : Grid,\n Handle: Handle3 === null ? void 0 : Handle,\n SelectionBackground: SelectionBackground3 === null ? void 0 : SelectionBackground,\n SelectionDetail: SelectionDetail4 === null ? void 0 : SelectionDetail2,\n SelectionForeground: SelectionForeground3 === null ? void 0 : SelectionForeground\n })\n };\n });\n React33.useLayoutEffect(() => {\n const _a3 = components, {\n Brush: Brush3,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3,\n Grid: Grid3,\n Handle: Handle3,\n SelectionBackground: SelectionBackground3,\n SelectionDetail: SelectionDetail4,\n SelectionForeground: SelectionForeground3\n } = _a3, rest = __objRest(_a3, [\n \"Brush\",\n \"ContextBar\",\n \"DirectionIndicator\",\n \"Grid\",\n \"Handle\",\n \"SelectionBackground\",\n \"SelectionDetail\",\n \"SelectionForeground\"\n ]);\n return autorun(() => {\n setCurrentContext({\n id: id3,\n viewport,\n inputs,\n callbacks,\n meta,\n components: __spreadProps(__spreadValues({}, rest), {\n Brush: Brush3 === null ? void 0 : Brush,\n ContextBar: ContextBar2,\n DirectionIndicator: DirectionIndicator3 === null ? void 0 : DirectionIndicator,\n Grid: Grid3 === null ? void 0 : Grid,\n Handle: Handle3 === null ? void 0 : Handle,\n SelectionBackground: SelectionBackground3 === null ? void 0 : SelectionBackground,\n SelectionDetail: SelectionDetail4 === null ? void 0 : SelectionDetail2,\n SelectionForeground: SelectionForeground3 === null ? void 0 : SelectionForeground\n })\n });\n });\n }, []);\n const context = getRendererContext(id3);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime28.jsx)(context.Provider, {\n value: currentContext,\n children\n });\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/Renderer\/Renderer.tsx\nvar import_jsx_runtime29 = require(\"react\/jsx-runtime\");\nfunction Renderer2(_a3) {\n var _b = _a3, {\n viewport,\n inputs,\n callbacks,\n components\n } = _b, rest = __objRest(_b, [\n \"viewport\",\n \"inputs\",\n \"callbacks\",\n \"components\"\n ]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime29.jsx)(RendererContext, {\n id: rest.id,\n viewport,\n inputs,\n callbacks,\n components,\n meta: rest.meta,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime29.jsx)(Canvas, __spreadValues({}, rest))\n });\n}\n\n\/\/ ..\/..\/packages\/react\/src\/components\/AppCanvas.tsx\nvar import_jsx_runtime30 = require(\"react\/jsx-runtime\");\nvar AppCanvas = observer(function InnerApp(props) {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime30.jsx)(Renderer2, __spreadValues({\n viewport: app.viewport,\n inputs: app.inputs,\n callbacks: app._events,\n brush: app.brush,\n editingShape: app.editingShape,\n hoveredShape: app.hoveredShape,\n hoveredGroup: app.hoveredGroup,\n bindingShapes: app.bindingShapes,\n selectionDirectionHint: app.selectionDirectionHint,\n selectionBounds: app.selectionBounds,\n selectedShapes: app.selectedShapesArray,\n erasingShapes: app.erasingShapesArray,\n shapes: app.shapes,\n assets: app.assets,\n showGrid: app.settings.showGrid,\n penMode: app.settings.penMode,\n showSelection: app.showSelection,\n showSelectionRotation: app.showSelectionRotation,\n showResizeHandles: app.showResizeHandles,\n showRotateHandles: app.showRotateHandles,\n showCloneHandles: app.showCloneHandles,\n showSelectionDetail: app.showSelectionDetail,\n showContextBar: app.showContextBar,\n cursor: app.cursors.cursor,\n cursorRotation: app.cursors.rotation,\n selectionRotation: app.selectionRotation,\n onEditingEnd: app.clearEditingState\n }, props));\n});\n\n\/\/ ..\/..\/packages\/react\/src\/components\/App.tsx\nvar import_jsx_runtime31 = require(\"react\/jsx-runtime\");\n\n\/\/ ..\/..\/packages\/react\/src\/index.ts\nfunction getContextBarTranslation(barSize, offset) {\n let x4 = 0;\n let y4 = 0;\n if (offset.top < 116) {\n y4 = offset.height \/ 2 + 40;\n if (offset.bottom < 140) {\n y4 += offset.bottom - 140;\n }\n } else {\n y4 = -(offset.height \/ 2 + 40);\n }\n if (offset.left + offset.width \/ 2 - barSize[0] \/ 2 < 16) {\n x4 += -(offset.left + offset.width \/ 2 - barSize[0] \/ 2 - 16);\n } else if (offset.right + offset.width \/ 2 - barSize[0] \/ 2 < 16) {\n x4 += offset.right + offset.width \/ 2 - barSize[0] \/ 2 - 16;\n }\n return [x4, y4];\n}\n\n\/\/ src\/app.tsx\nvar React78 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/ActionBar\/ActionBar.tsx\nvar React44 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/icons\/TablerIcon.tsx\nvar import_jsx_runtime32 = require(\"react\/jsx-runtime\");\nvar extendedIcons = [\n \"add-link\",\n \"block-search\",\n \"block\",\n \"connector\",\n \"group\",\n \"internal-link\",\n \"link-to-block\",\n \"link-to-page\",\n \"link-to-whiteboard\",\n \"move-to-sidebar-right\",\n \"object-compact\",\n \"object-expanded\",\n \"open-as-page\",\n \"page-search\",\n \"page\",\n \"references-hide\",\n \"references-show\",\n \"select-cursor\",\n \"text\",\n \"ungroup\",\n \"whiteboard-element\",\n \"whiteboard\"\n];\nvar cx = (...args) => args.join(\" \");\nvar TablerIcon = (_a3) => {\n var _b = _a3, {\n name,\n className\n } = _b, props = __objRest(_b, [\n \"name\",\n \"className\"\n ]);\n const classNamePrefix = extendedIcons.includes(name) ? `tie tie-` : `ti ti-`;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime32.jsx)(\"i\", __spreadValues({\n className: cx(classNamePrefix + name, className)\n }, props));\n};\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/extends.js\nfunction _extends2() {\n _extends2 = Object.assign ? Object.assign.bind() : function(target) {\n for (var i4 = 1; i4 < arguments.length; i4++) {\n var source = arguments[i4];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends2.apply(this, arguments);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-tooltip\/dist\/index.module.js\nvar import_react28 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/primitive\/dist\/index.module.js\nfunction $e42e1063c40fb3ef$export$b9ecd428b558ff10(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler === null || originalEventHandler === void 0 || originalEventHandler(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented)\n return ourEventHandler === null || ourEventHandler === void 0 ? void 0 : ourEventHandler(event);\n };\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-compose-refs\/dist\/index.module.js\nvar import_react12 = require(\"react\");\nfunction $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === \"function\")\n ref(value);\n else if (ref !== null && ref !== void 0)\n ref.current = value;\n}\nfunction $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node) => refs.forEach(\n (ref) => $6ed0406888f73fc4$var$setRef(ref, node)\n );\n}\nfunction $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n return (0, import_react12.useCallback)($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-context\/dist\/index.module.js\nvar import_react13 = require(\"react\");\nfunction $c512c27ab02ef895$export$50c7b4e9d9f19c1(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const BaseContext = \/* @__PURE__ *\/ (0, import_react13.createContext)(defaultContext);\n const index3 = defaultContexts.length;\n defaultContexts = [\n ...defaultContexts,\n defaultContext\n ];\n function Provider(props) {\n const _a3 = props, { scope, children } = _a3, context = __objRest(_a3, [\"scope\", \"children\"]);\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index3]) || BaseContext;\n const value = (0, import_react13.useMemo)(\n () => context,\n Object.values(context)\n );\n return \/* @__PURE__ *\/ (0, import_react13.createElement)(Context.Provider, {\n value\n }, children);\n }\n function useContext16(consumerName, scope) {\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index3]) || BaseContext;\n const context = (0, import_react13.useContext)(Context);\n if (context)\n return context;\n if (defaultContext !== void 0)\n return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + \"Provider\";\n return [\n Provider,\n useContext16\n ];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return \/* @__PURE__ *\/ (0, import_react13.createContext)(defaultContext);\n });\n return function useScope(scope) {\n const contexts = (scope === null || scope === void 0 ? void 0 : scope[scopeName]) || scopeContexts;\n return (0, import_react13.useMemo)(\n () => ({\n [`__scope${scopeName}`]: __spreadProps(__spreadValues({}, scope), {\n [scopeName]: contexts\n })\n }),\n [\n scope,\n contexts\n ]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [\n $c512c27ab02ef895$export$fd42f52fd3ae1109,\n $c512c27ab02ef895$var$composeContextScopes(createScope, ...createContextScopeDeps)\n ];\n}\nfunction $c512c27ab02ef895$var$composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1)\n return baseScope;\n const createScope1 = () => {\n const scopeHooks = scopes.map(\n (createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName\n })\n );\n return function useComposedScopes(overrideScopes) {\n const nextScopes1 = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return __spreadValues(__spreadValues({}, nextScopes), currentScope);\n }, {});\n return (0, import_react13.useMemo)(\n () => ({\n [`__scope${baseScope.scopeName}`]: nextScopes1\n }),\n [\n nextScopes1\n ]\n );\n };\n };\n createScope1.scopeName = baseScope.scopeName;\n return createScope1;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar import_react18 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-primitive\/dist\/index.module.js\nvar import_react15 = require(\"react\");\nvar import_react_dom2 = require(\"react-dom\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-slot\/dist\/index.module.js\nvar import_react14 = require(\"react\");\nvar $5e63c961fc1ce211$export$8c6ed5c666ac1360 = \/* @__PURE__ *\/ (0, import_react14.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { children } = _a3, slotProps = __objRest(_a3, [\"children\"]);\n const childrenArray = import_react14.Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (import_react14.Children.count(newElement) > 1)\n return import_react14.Children.only(null);\n return \/* @__PURE__ *\/ (0, import_react14.isValidElement)(newElement) ? newElement.props.children : null;\n } else\n return child;\n });\n return \/* @__PURE__ *\/ (0, import_react14.createElement)($5e63c961fc1ce211$var$SlotClone, _extends2({}, slotProps, {\n ref: forwardedRef\n }), \/* @__PURE__ *\/ (0, import_react14.isValidElement)(newElement) ? \/* @__PURE__ *\/ (0, import_react14.cloneElement)(newElement, void 0, newChildren) : null);\n }\n return \/* @__PURE__ *\/ (0, import_react14.createElement)($5e63c961fc1ce211$var$SlotClone, _extends2({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = \"Slot\";\nvar $5e63c961fc1ce211$var$SlotClone = \/* @__PURE__ *\/ (0, import_react14.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { children } = _a3, slotProps = __objRest(_a3, [\"children\"]);\n if (\/* @__PURE__ *\/ (0, import_react14.isValidElement)(children))\n return \/* @__PURE__ *\/ (0, import_react14.cloneElement)(children, __spreadProps(__spreadValues({}, $5e63c961fc1ce211$var$mergeProps(slotProps, children.props)), {\n ref: $6ed0406888f73fc4$export$43e446d32b3d21af(forwardedRef, children.ref)\n }));\n return import_react14.Children.count(children) > 1 ? import_react14.Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = \"SlotClone\";\nvar $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children }) => {\n return \/* @__PURE__ *\/ (0, import_react14.createElement)(import_react14.Fragment, null, children);\n};\nfunction $5e63c961fc1ce211$var$isSlottable(child) {\n return \/* @__PURE__ *\/ (0, import_react14.isValidElement)(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n const overrideProps = __spreadValues({}, childProps);\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = \/^on[A-Z]\/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue)\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n else if (slotPropValue)\n overrideProps[propName] = slotPropValue;\n } else if (propName === \"style\")\n overrideProps[propName] = __spreadValues(__spreadValues({}, slotPropValue), childPropValue);\n else if (propName === \"className\")\n overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(\" \");\n }\n return __spreadValues(__spreadValues({}, slotProps), overrideProps);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-primitive\/dist\/index.module.js\nvar $8927f6f2acc4f386$var$NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"h2\",\n \"h3\",\n \"img\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node) => {\n const Node = \/* @__PURE__ *\/ (0, import_react15.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { asChild } = _a3, primitiveProps = __objRest(_a3, [\"asChild\"]);\n const Comp = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : node;\n (0, import_react15.useEffect)(() => {\n window[Symbol.for(\"radix-ui\")] = true;\n }, []);\n return \/* @__PURE__ *\/ (0, import_react15.createElement)(Comp, _extends2({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return __spreadProps(__spreadValues({}, primitive), {\n [node]: Node\n });\n}, {});\nfunction $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target)\n (0, import_react_dom2.flushSync)(\n () => target.dispatchEvent(event)\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-callback-ref\/dist\/index.module.js\nvar import_react16 = require(\"react\");\nfunction $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = (0, import_react16.useRef)(callback);\n (0, import_react16.useEffect)(() => {\n callbackRef.current = callback;\n });\n return (0, import_react16.useMemo)(\n () => (...args) => {\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n },\n []\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-escape-keydown\/dist\/index.module.js\nvar import_react17 = require(\"react\");\nfunction $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const onEscapeKeyDown = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onEscapeKeyDownProp);\n (0, import_react17.useEffect)(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\")\n onEscapeKeyDown(event);\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown);\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown);\n }, [\n onEscapeKeyDown,\n ownerDocument\n ]);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar $5cb92bef7577960e$var$CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar $5cb92bef7577960e$var$FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar $5cb92bef7577960e$var$originalBodyPointerEvents;\nvar $5cb92bef7577960e$var$DismissableLayerContext = \/* @__PURE__ *\/ (0, import_react18.createContext)({\n layers: \/* @__PURE__ *\/ new Set(),\n layersWithOutsidePointerEventsDisabled: \/* @__PURE__ *\/ new Set(),\n branches: \/* @__PURE__ *\/ new Set()\n});\nvar $5cb92bef7577960e$export$177fb62ff3ec1f22 = \/* @__PURE__ *\/ (0, import_react18.forwardRef)((props, forwardedRef) => {\n var _node$ownerDocument;\n const _a3 = props, { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss } = _a3, layerProps = __objRest(_a3, [\"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\"]);\n const context = (0, import_react18.useContext)($5cb92bef7577960e$var$DismissableLayerContext);\n const [node1, setNode] = (0, import_react18.useState)(null);\n const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;\n const [, force] = (0, import_react18.useState)({});\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index3 = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index3 >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch)\n return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (isFocusInBranch)\n return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n $addc16e1bbe58fd0$export$3a72a57244d6e765((event) => {\n const isHighestLayer = index3 === context.layers.size - 1;\n if (!isHighestLayer)\n return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n (0, import_react18.useEffect)(() => {\n if (!node1)\n return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1)\n ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;\n };\n }, [\n node1,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n (0, import_react18.useEffect)(() => {\n return () => {\n if (!node1)\n return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n };\n }, [\n node1,\n context\n ]);\n (0, import_react18.useEffect)(() => {\n const handleUpdate = () => force({});\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react18.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, layerProps, {\n ref: composedRefs,\n style: __spreadValues({\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0\n }, props.style),\n onFocusCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\nfunction $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handlePointerDownOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPointerDownOutside);\n const isPointerInsideReactTreeRef = (0, import_react18.useRef)(false);\n const handleClickRef = (0, import_react18.useRef)(() => {\n });\n (0, import_react18.useEffect)(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent = function() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n };\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else\n handleAndDispatchPointerDownOutsideEvent();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction $5cb92bef7577960e$var$useFocusOutside(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handleFocusOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onFocusOutside);\n const isFocusInsideReactTreeRef = (0, import_react18.useRef)(false);\n (0, import_react18.useEffect)(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler)\n target.addEventListener(name, handler, {\n once: true\n });\n if (discrete)\n $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event);\n else\n target.dispatchEvent(event);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-id\/dist\/index.module.js\nvar $2AODx$react = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-layout-effect\/dist\/index.module.js\nvar import_react19 = require(\"react\");\nvar $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? import_react19.useLayoutEffect : () => {\n};\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-id\/dist\/index.module.js\nvar $1746a345f3d73bb7$var$useReactId = $2AODx$react[\"useId\".toString()] || (() => void 0);\nvar $1746a345f3d73bb7$var$count = 0;\nfunction $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {\n const [id3, setId] = $2AODx$react.useState($1746a345f3d73bb7$var$useReactId());\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (!deterministicId)\n setId(\n (reactId) => reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)\n );\n }, [\n deterministicId\n ]);\n return deterministicId || (id3 ? `radix-${id3}` : \"\");\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-popper\/dist\/index.module.js\nvar import_react23 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@floating-ui\/core\/dist\/floating-ui.core.browser.min.mjs\nfunction t(t2) {\n return t2.split(\"-\")[0];\n}\nfunction e(t2) {\n return t2.split(\"-\")[1];\n}\nfunction n(e2) {\n return [\"top\", \"bottom\"].includes(t(e2)) ? \"x\" : \"y\";\n}\nfunction r(t2) {\n return \"y\" === t2 ? \"height\" : \"width\";\n}\nfunction i(i4, o4, a5) {\n let { reference: l5, floating: s4 } = i4;\n const c4 = l5.x + l5.width \/ 2 - s4.width \/ 2, f4 = l5.y + l5.height \/ 2 - s4.height \/ 2, u4 = n(o4), m4 = r(u4), g4 = l5[m4] \/ 2 - s4[m4] \/ 2, d4 = \"x\" === u4;\n let p4;\n switch (t(o4)) {\n case \"top\":\n p4 = { x: c4, y: l5.y - s4.height };\n break;\n case \"bottom\":\n p4 = { x: c4, y: l5.y + l5.height };\n break;\n case \"right\":\n p4 = { x: l5.x + l5.width, y: f4 };\n break;\n case \"left\":\n p4 = { x: l5.x - s4.width, y: f4 };\n break;\n default:\n p4 = { x: l5.x, y: l5.y };\n }\n switch (e(o4)) {\n case \"start\":\n p4[u4] -= g4 * (a5 && d4 ? -1 : 1);\n break;\n case \"end\":\n p4[u4] += g4 * (a5 && d4 ? -1 : 1);\n }\n return p4;\n}\nvar o = (t2, e2, n4) => __async(void 0, null, function* () {\n const { placement: r4 = \"bottom\", strategy: o4 = \"absolute\", middleware: a5 = [], platform: l5 } = n4, s4 = yield null == l5.isRTL ? void 0 : l5.isRTL(e2);\n let c4 = yield l5.getElementRects({ reference: t2, floating: e2, strategy: o4 }), { x: f4, y: u4 } = i(c4, r4, s4), m4 = r4, g4 = {}, d4 = 0;\n for (let n5 = 0; n5 < a5.length; n5++) {\n const { name: p4, fn: h4 } = a5[n5], { x: y4, y: x4, data: w4, reset: v4 } = yield h4({ x: f4, y: u4, initialPlacement: r4, placement: m4, strategy: o4, middlewareData: g4, rects: c4, platform: l5, elements: { reference: t2, floating: e2 } });\n f4 = null != y4 ? y4 : f4, u4 = null != x4 ? x4 : u4, g4 = __spreadProps(__spreadValues({}, g4), { [p4]: __spreadValues(__spreadValues({}, g4[p4]), w4) }), v4 && d4 <= 50 && (d4++, \"object\" == typeof v4 && (v4.placement && (m4 = v4.placement), v4.rects && (c4 = true === v4.rects ? yield l5.getElementRects({ reference: t2, floating: e2, strategy: o4 }) : v4.rects), { x: f4, y: u4 } = i(c4, m4, s4)), n5 = -1);\n }\n return { x: f4, y: u4, placement: m4, strategy: o4, middlewareData: g4 };\n});\nfunction a(t2) {\n return \"number\" != typeof t2 ? function(t3) {\n return __spreadValues({ top: 0, right: 0, bottom: 0, left: 0 }, t3);\n }(t2) : { top: t2, right: t2, bottom: t2, left: t2 };\n}\nfunction l(t2) {\n return __spreadProps(__spreadValues({}, t2), { top: t2.y, left: t2.x, right: t2.x + t2.width, bottom: t2.y + t2.height });\n}\nfunction s(t2, e2) {\n return __async(this, null, function* () {\n var n4;\n void 0 === e2 && (e2 = {});\n const { x: r4, y: i4, platform: o4, rects: s4, elements: c4, strategy: f4 } = t2, { boundary: u4 = \"clippingAncestors\", rootBoundary: m4 = \"viewport\", elementContext: g4 = \"floating\", altBoundary: d4 = false, padding: p4 = 0 } = e2, h4 = a(p4), y4 = c4[d4 ? \"floating\" === g4 ? \"reference\" : \"floating\" : g4], x4 = l(yield o4.getClippingRect({ element: null == (n4 = yield null == o4.isElement ? void 0 : o4.isElement(y4)) || n4 ? y4 : y4.contextElement || (yield null == o4.getDocumentElement ? void 0 : o4.getDocumentElement(c4.floating)), boundary: u4, rootBoundary: m4, strategy: f4 })), w4 = l(o4.convertOffsetParentRelativeRectToViewportRelativeRect ? yield o4.convertOffsetParentRelativeRectToViewportRelativeRect({ rect: \"floating\" === g4 ? __spreadProps(__spreadValues({}, s4.floating), { x: r4, y: i4 }) : s4.reference, offsetParent: yield null == o4.getOffsetParent ? void 0 : o4.getOffsetParent(c4.floating), strategy: f4 }) : s4[g4]);\n return { top: x4.top - w4.top + h4.top, bottom: w4.bottom - x4.bottom + h4.bottom, left: x4.left - w4.left + h4.left, right: w4.right - x4.right + h4.right };\n });\n}\nvar c = Math.min;\nvar f = Math.max;\nfunction u(t2, e2, n4) {\n return f(t2, c(e2, n4));\n}\nvar m = (t2) => ({ name: \"arrow\", options: t2, fn(i4) {\n return __async(this, null, function* () {\n const { element: o4, padding: l5 = 0 } = null != t2 ? t2 : {}, { x: s4, y: c4, placement: f4, rects: m4, platform: g4 } = i4;\n if (null == o4)\n return {};\n const d4 = a(l5), p4 = { x: s4, y: c4 }, h4 = n(f4), y4 = e(f4), x4 = r(h4), w4 = yield g4.getDimensions(o4), v4 = \"y\" === h4 ? \"top\" : \"left\", b5 = \"y\" === h4 ? \"bottom\" : \"right\", R5 = m4.reference[x4] + m4.reference[h4] - p4[h4] - m4.floating[x4], A4 = p4[h4] - m4.reference[h4], P3 = yield null == g4.getOffsetParent ? void 0 : g4.getOffsetParent(o4);\n let T4 = P3 ? \"y\" === h4 ? P3.clientHeight || 0 : P3.clientWidth || 0 : 0;\n 0 === T4 && (T4 = m4.floating[x4]);\n const O3 = R5 \/ 2 - A4 \/ 2, D4 = d4[v4], L5 = T4 - w4[x4] - d4[b5], k3 = T4 \/ 2 - w4[x4] \/ 2 + O3, E4 = u(D4, k3, L5), C4 = (\"start\" === y4 ? d4[v4] : d4[b5]) > 0 && k3 !== E4 && m4.reference[x4] <= m4.floating[x4];\n return { [h4]: p4[h4] - (C4 ? k3 < D4 ? D4 - k3 : L5 - k3 : 0), data: { [h4]: E4, centerOffset: k3 - E4 } };\n });\n} });\nvar g = { left: \"right\", right: \"left\", bottom: \"top\", top: \"bottom\" };\nfunction d(t2) {\n return t2.replace(\/left|right|bottom|top\/g, (t3) => g[t3]);\n}\nfunction p(t2, i4, o4) {\n void 0 === o4 && (o4 = false);\n const a5 = e(t2), l5 = n(t2), s4 = r(l5);\n let c4 = \"x\" === l5 ? a5 === (o4 ? \"end\" : \"start\") ? \"right\" : \"left\" : \"start\" === a5 ? \"bottom\" : \"top\";\n return i4.reference[s4] > i4.floating[s4] && (c4 = d(c4)), { main: c4, cross: d(c4) };\n}\nvar h = { start: \"end\", end: \"start\" };\nfunction y(t2) {\n return t2.replace(\/start|end\/g, (t3) => h[t3]);\n}\nvar x = [\"top\", \"right\", \"bottom\", \"left\"];\nvar w = x.reduce((t2, e2) => t2.concat(e2, e2 + \"-start\", e2 + \"-end\"), []);\nvar b = function(e2) {\n return void 0 === e2 && (e2 = {}), { name: \"flip\", options: e2, fn(n4) {\n return __async(this, null, function* () {\n var r4;\n const { placement: i4, middlewareData: o4, rects: a5, initialPlacement: l5, platform: c4, elements: f4 } = n4, _a4 = e2, { mainAxis: u4 = true, crossAxis: m4 = true, fallbackPlacements: g4, fallbackStrategy: h4 = \"bestFit\", flipAlignment: x4 = true } = _a4, w4 = __objRest(_a4, [\"mainAxis\", \"crossAxis\", \"fallbackPlacements\", \"fallbackStrategy\", \"flipAlignment\"]), v4 = t(i4), b5 = g4 || (v4 === l5 || !x4 ? [d(l5)] : function(t2) {\n const e3 = d(t2);\n return [y(t2), e3, y(e3)];\n }(l5)), R5 = [l5, ...b5], A4 = yield s(n4, w4), P3 = [];\n let T4 = (null == (r4 = o4.flip) ? void 0 : r4.overflows) || [];\n if (u4 && P3.push(A4[v4]), m4) {\n const { main: t2, cross: e3 } = p(i4, a5, yield null == c4.isRTL ? void 0 : c4.isRTL(f4.floating));\n P3.push(A4[t2], A4[e3]);\n }\n if (T4 = [...T4, { placement: i4, overflows: P3 }], !P3.every((t2) => t2 <= 0)) {\n var O3, D4;\n const t2 = (null != (O3 = null == (D4 = o4.flip) ? void 0 : D4.index) ? O3 : 0) + 1, e3 = R5[t2];\n if (e3)\n return { data: { index: t2, overflows: T4 }, reset: { placement: e3 } };\n let n5 = \"bottom\";\n switch (h4) {\n case \"bestFit\": {\n var L5;\n const t3 = null == (L5 = T4.map((t4) => [t4, t4.overflows.filter((t5) => t5 > 0).reduce((t5, e4) => t5 + e4, 0)]).sort((t4, e4) => t4[1] - e4[1])[0]) ? void 0 : L5[0].placement;\n t3 && (n5 = t3);\n break;\n }\n case \"initialPlacement\":\n n5 = l5;\n }\n if (i4 !== n5)\n return { reset: { placement: n5 } };\n }\n return {};\n });\n } };\n};\nfunction R(t2, e2) {\n return { top: t2.top - e2.height, right: t2.right - e2.width, bottom: t2.bottom - e2.height, left: t2.left - e2.width };\n}\nfunction A(t2) {\n return x.some((e2) => t2[e2] >= 0);\n}\nvar P = function(t2) {\n let _a3 = void 0 === t2 ? {} : t2, { strategy: e2 = \"referenceHidden\" } = _a3, n4 = __objRest(_a3, [\"strategy\"]);\n return { name: \"hide\", fn(t3) {\n return __async(this, null, function* () {\n const { rects: r4 } = t3;\n switch (e2) {\n case \"referenceHidden\": {\n const e3 = R(yield s(t3, __spreadProps(__spreadValues({}, n4), { elementContext: \"reference\" })), r4.reference);\n return { data: { referenceHiddenOffsets: e3, referenceHidden: A(e3) } };\n }\n case \"escaped\": {\n const e3 = R(yield s(t3, __spreadProps(__spreadValues({}, n4), { altBoundary: true })), r4.floating);\n return { data: { escapedOffsets: e3, escaped: A(e3) } };\n }\n default:\n return {};\n }\n });\n } };\n};\nvar T = function(r4) {\n return void 0 === r4 && (r4 = 0), { name: \"offset\", options: r4, fn(i4) {\n return __async(this, null, function* () {\n const { x: o4, y: a5 } = i4, l5 = yield function(r5, i5) {\n return __async(this, null, function* () {\n const { placement: o5, platform: a6, elements: l6 } = r5, s4 = yield null == a6.isRTL ? void 0 : a6.isRTL(l6.floating), c4 = t(o5), f4 = e(o5), u4 = \"x\" === n(o5), m4 = [\"left\", \"top\"].includes(c4) ? -1 : 1, g4 = s4 && u4 ? -1 : 1, d4 = \"function\" == typeof i5 ? i5(r5) : i5;\n let { mainAxis: p4, crossAxis: h4, alignmentAxis: y4 } = \"number\" == typeof d4 ? { mainAxis: d4, crossAxis: 0, alignmentAxis: null } : __spreadValues({ mainAxis: 0, crossAxis: 0, alignmentAxis: null }, d4);\n return f4 && \"number\" == typeof y4 && (h4 = \"end\" === f4 ? -1 * y4 : y4), u4 ? { x: h4 * g4, y: p4 * m4 } : { x: p4 * m4, y: h4 * g4 };\n });\n }(i4, r4);\n return { x: o4 + l5.x, y: a5 + l5.y, data: l5 };\n });\n } };\n};\nfunction O(t2) {\n return \"x\" === t2 ? \"y\" : \"x\";\n}\nvar D = function(e2) {\n return void 0 === e2 && (e2 = {}), { name: \"shift\", options: e2, fn(r4) {\n return __async(this, null, function* () {\n const { x: i4, y: o4, placement: a5 } = r4, _a4 = e2, { mainAxis: l5 = true, crossAxis: c4 = false, limiter: f4 = { fn: (t2) => {\n let { x: e3, y: n4 } = t2;\n return { x: e3, y: n4 };\n } } } = _a4, m4 = __objRest(_a4, [\"mainAxis\", \"crossAxis\", \"limiter\"]), g4 = { x: i4, y: o4 }, d4 = yield s(r4, m4), p4 = n(t(a5)), h4 = O(p4);\n let y4 = g4[p4], x4 = g4[h4];\n if (l5) {\n const t2 = \"y\" === p4 ? \"bottom\" : \"right\";\n y4 = u(y4 + d4[\"y\" === p4 ? \"top\" : \"left\"], y4, y4 - d4[t2]);\n }\n if (c4) {\n const t2 = \"y\" === h4 ? \"bottom\" : \"right\";\n x4 = u(x4 + d4[\"y\" === h4 ? \"top\" : \"left\"], x4, x4 - d4[t2]);\n }\n const w4 = f4.fn(__spreadProps(__spreadValues({}, r4), { [p4]: y4, [h4]: x4 }));\n return __spreadProps(__spreadValues({}, w4), { data: { x: w4.x - i4, y: w4.y - o4 } });\n });\n } };\n};\nvar L = function(e2) {\n return void 0 === e2 && (e2 = {}), { options: e2, fn(r4) {\n const { x: i4, y: o4, placement: a5, rects: l5, middlewareData: s4 } = r4, { offset: c4 = 0, mainAxis: f4 = true, crossAxis: u4 = true } = e2, m4 = { x: i4, y: o4 }, g4 = n(a5), d4 = O(g4);\n let p4 = m4[g4], h4 = m4[d4];\n const y4 = \"function\" == typeof c4 ? c4(__spreadProps(__spreadValues({}, l5), { placement: a5 })) : c4, x4 = \"number\" == typeof y4 ? { mainAxis: y4, crossAxis: 0 } : __spreadValues({ mainAxis: 0, crossAxis: 0 }, y4);\n if (f4) {\n const t2 = \"y\" === g4 ? \"height\" : \"width\", e3 = l5.reference[g4] - l5.floating[t2] + x4.mainAxis, n4 = l5.reference[g4] + l5.reference[t2] - x4.mainAxis;\n p4 < e3 ? p4 = e3 : p4 > n4 && (p4 = n4);\n }\n if (u4) {\n var w4, v4, b5, R5;\n const e3 = \"y\" === g4 ? \"width\" : \"height\", n4 = [\"top\", \"left\"].includes(t(a5)), r5 = l5.reference[d4] - l5.floating[e3] + (n4 && null != (w4 = null == (v4 = s4.offset) ? void 0 : v4[d4]) ? w4 : 0) + (n4 ? 0 : x4.crossAxis), i5 = l5.reference[d4] + l5.reference[e3] + (n4 ? 0 : null != (b5 = null == (R5 = s4.offset) ? void 0 : R5[d4]) ? b5 : 0) - (n4 ? x4.crossAxis : 0);\n h4 < r5 ? h4 = r5 : h4 > i5 && (h4 = i5);\n }\n return { [g4]: p4, [d4]: h4 };\n } };\n};\nvar k = function(n4) {\n return void 0 === n4 && (n4 = {}), { name: \"size\", options: n4, fn(r4) {\n return __async(this, null, function* () {\n const { placement: i4, rects: o4, platform: a5, elements: l5 } = r4, _a4 = n4, { apply: c4 } = _a4, u4 = __objRest(_a4, [\"apply\"]), m4 = yield s(r4, u4), g4 = t(i4), d4 = e(i4);\n let p4, h4;\n \"top\" === g4 || \"bottom\" === g4 ? (p4 = g4, h4 = d4 === ((yield null == a5.isRTL ? void 0 : a5.isRTL(l5.floating)) ? \"start\" : \"end\") ? \"left\" : \"right\") : (h4 = g4, p4 = \"end\" === d4 ? \"top\" : \"bottom\");\n const y4 = f(m4.left, 0), x4 = f(m4.right, 0), w4 = f(m4.top, 0), v4 = f(m4.bottom, 0), b5 = { availableHeight: o4.floating.height - ([\"left\", \"right\"].includes(i4) ? 2 * (0 !== w4 || 0 !== v4 ? w4 + v4 : f(m4.top, m4.bottom)) : m4[p4]), availableWidth: o4.floating.width - ([\"top\", \"bottom\"].includes(i4) ? 2 * (0 !== y4 || 0 !== x4 ? y4 + x4 : f(m4.left, m4.right)) : m4[h4]) }, R5 = yield a5.getDimensions(l5.floating);\n null == c4 || c4(__spreadValues(__spreadValues({}, r4), b5));\n const A4 = yield a5.getDimensions(l5.floating);\n return R5.width !== A4.width || R5.height !== A4.height ? { reset: { rects: true } } : {};\n });\n } };\n};\n\n\/\/ ..\/..\/node_modules\/@floating-ui\/dom\/dist\/floating-ui.dom.browser.min.mjs\nfunction n2(t2) {\n return t2 && t2.document && t2.location && t2.alert && t2.setInterval;\n}\nfunction o2(t2) {\n if (null == t2)\n return window;\n if (!n2(t2)) {\n const e2 = t2.ownerDocument;\n return e2 && e2.defaultView || window;\n }\n return t2;\n}\nfunction i2(t2) {\n return o2(t2).getComputedStyle(t2);\n}\nfunction r2(t2) {\n return n2(t2) ? \"\" : t2 ? (t2.nodeName || \"\").toLowerCase() : \"\";\n}\nfunction l2() {\n const t2 = navigator.userAgentData;\n return null != t2 && t2.brands ? t2.brands.map((t3) => t3.brand + \"\/\" + t3.version).join(\" \") : navigator.userAgent;\n}\nfunction c2(t2) {\n return t2 instanceof o2(t2).HTMLElement;\n}\nfunction f2(t2) {\n return t2 instanceof o2(t2).Element;\n}\nfunction s2(t2) {\n if (\"undefined\" == typeof ShadowRoot)\n return false;\n return t2 instanceof o2(t2).ShadowRoot || t2 instanceof ShadowRoot;\n}\nfunction u2(t2) {\n const { overflow: e2, overflowX: n4, overflowY: o4 } = i2(t2);\n return \/auto|scroll|overlay|hidden\/.test(e2 + o4 + n4);\n}\nfunction d2(t2) {\n return [\"table\", \"td\", \"th\"].includes(r2(t2));\n}\nfunction h2(t2) {\n const e2 = \/firefox\/i.test(l2()), n4 = i2(t2);\n return \"none\" !== n4.transform || \"none\" !== n4.perspective || \"paint\" === n4.contain || [\"transform\", \"perspective\"].includes(n4.willChange) || e2 && \"filter\" === n4.willChange || e2 && !!n4.filter && \"none\" !== n4.filter;\n}\nfunction a2() {\n return !\/^((?!chrome|android).)*safari\/i.test(l2());\n}\nvar g2 = Math.min;\nvar p2 = Math.max;\nvar m2 = Math.round;\nfunction w2(t2, e2, n4) {\n var i4, r4, l5, s4;\n void 0 === e2 && (e2 = false), void 0 === n4 && (n4 = false);\n const u4 = t2.getBoundingClientRect();\n let d4 = 1, h4 = 1;\n e2 && c2(t2) && (d4 = t2.offsetWidth > 0 && m2(u4.width) \/ t2.offsetWidth || 1, h4 = t2.offsetHeight > 0 && m2(u4.height) \/ t2.offsetHeight || 1);\n const g4 = f2(t2) ? o2(t2) : window, p4 = !a2() && n4, w4 = (u4.left + (p4 && null != (i4 = null == (r4 = g4.visualViewport) ? void 0 : r4.offsetLeft) ? i4 : 0)) \/ d4, v4 = (u4.top + (p4 && null != (l5 = null == (s4 = g4.visualViewport) ? void 0 : s4.offsetTop) ? l5 : 0)) \/ h4, y4 = u4.width \/ d4, x4 = u4.height \/ h4;\n return { width: y4, height: x4, top: v4, right: w4 + y4, bottom: v4 + x4, left: w4, x: w4, y: v4 };\n}\nfunction v2(t2) {\n return (e2 = t2, (e2 instanceof o2(e2).Node ? t2.ownerDocument : t2.document) || window.document).documentElement;\n var e2;\n}\nfunction y2(t2) {\n return f2(t2) ? { scrollLeft: t2.scrollLeft, scrollTop: t2.scrollTop } : { scrollLeft: t2.pageXOffset, scrollTop: t2.pageYOffset };\n}\nfunction x2(t2) {\n return w2(v2(t2)).left + y2(t2).scrollLeft;\n}\nfunction b2(t2, e2, n4) {\n const o4 = c2(e2), i4 = v2(e2), l5 = w2(t2, o4 && function(t3) {\n const e3 = w2(t3);\n return m2(e3.width) !== t3.offsetWidth || m2(e3.height) !== t3.offsetHeight;\n }(e2), \"fixed\" === n4);\n let f4 = { scrollLeft: 0, scrollTop: 0 };\n const s4 = { x: 0, y: 0 };\n if (o4 || !o4 && \"fixed\" !== n4)\n if ((\"body\" !== r2(e2) || u2(i4)) && (f4 = y2(e2)), c2(e2)) {\n const t3 = w2(e2, true);\n s4.x = t3.x + e2.clientLeft, s4.y = t3.y + e2.clientTop;\n } else\n i4 && (s4.x = x2(i4));\n return { x: l5.left + f4.scrollLeft - s4.x, y: l5.top + f4.scrollTop - s4.y, width: l5.width, height: l5.height };\n}\nfunction L2(t2) {\n return \"html\" === r2(t2) ? t2 : t2.assignedSlot || t2.parentNode || (s2(t2) ? t2.host : null) || v2(t2);\n}\nfunction R2(t2) {\n return c2(t2) && \"fixed\" !== getComputedStyle(t2).position ? t2.offsetParent : null;\n}\nfunction T2(t2) {\n const e2 = o2(t2);\n let n4 = R2(t2);\n for (; n4 && d2(n4) && \"static\" === getComputedStyle(n4).position; )\n n4 = R2(n4);\n return n4 && (\"html\" === r2(n4) || \"body\" === r2(n4) && \"static\" === getComputedStyle(n4).position && !h2(n4)) ? e2 : n4 || function(t3) {\n let e3 = L2(t3);\n for (s2(e3) && (e3 = e3.host); c2(e3) && ![\"html\", \"body\"].includes(r2(e3)); ) {\n if (h2(e3))\n return e3;\n e3 = e3.parentNode;\n }\n return null;\n }(t2) || e2;\n}\nfunction W(t2) {\n if (c2(t2))\n return { width: t2.offsetWidth, height: t2.offsetHeight };\n const e2 = w2(t2);\n return { width: e2.width, height: e2.height };\n}\nfunction E2(t2) {\n const e2 = L2(t2);\n return [\"html\", \"body\", \"#document\"].includes(r2(e2)) ? t2.ownerDocument.body : c2(e2) && u2(e2) ? e2 : E2(e2);\n}\nfunction H(t2, e2) {\n var n4;\n void 0 === e2 && (e2 = []);\n const i4 = E2(t2), r4 = i4 === (null == (n4 = t2.ownerDocument) ? void 0 : n4.body), l5 = o2(i4), c4 = r4 ? [l5].concat(l5.visualViewport || [], u2(i4) ? i4 : []) : i4, f4 = e2.concat(c4);\n return r4 ? f4 : f4.concat(H(c4));\n}\nfunction C(e2, n4, r4) {\n return \"viewport\" === n4 ? l(function(t2, e3) {\n const n5 = o2(t2), i4 = v2(t2), r5 = n5.visualViewport;\n let l5 = i4.clientWidth, c4 = i4.clientHeight, f4 = 0, s4 = 0;\n if (r5) {\n l5 = r5.width, c4 = r5.height;\n const t3 = a2();\n (t3 || !t3 && \"fixed\" === e3) && (f4 = r5.offsetLeft, s4 = r5.offsetTop);\n }\n return { width: l5, height: c4, x: f4, y: s4 };\n }(e2, r4)) : f2(n4) ? function(t2, e3) {\n const n5 = w2(t2, false, \"fixed\" === e3), o4 = n5.top + t2.clientTop, i4 = n5.left + t2.clientLeft;\n return { top: o4, left: i4, x: i4, y: o4, right: i4 + t2.clientWidth, bottom: o4 + t2.clientHeight, width: t2.clientWidth, height: t2.clientHeight };\n }(n4, r4) : l(function(t2) {\n var e3;\n const n5 = v2(t2), o4 = y2(t2), r5 = null == (e3 = t2.ownerDocument) ? void 0 : e3.body, l5 = p2(n5.scrollWidth, n5.clientWidth, r5 ? r5.scrollWidth : 0, r5 ? r5.clientWidth : 0), c4 = p2(n5.scrollHeight, n5.clientHeight, r5 ? r5.scrollHeight : 0, r5 ? r5.clientHeight : 0);\n let f4 = -o4.scrollLeft + x2(t2);\n const s4 = -o4.scrollTop;\n return \"rtl\" === i2(r5 || n5).direction && (f4 += p2(n5.clientWidth, r5 ? r5.clientWidth : 0) - l5), { width: l5, height: c4, x: f4, y: s4 };\n }(v2(e2)));\n}\nfunction S(t2) {\n const e2 = H(t2), n4 = [\"absolute\", \"fixed\"].includes(i2(t2).position) && c2(t2) ? T2(t2) : t2;\n return f2(n4) ? e2.filter((t3) => f2(t3) && function(t4, e3) {\n const n5 = null == e3.getRootNode ? void 0 : e3.getRootNode();\n if (t4.contains(e3))\n return true;\n if (n5 && s2(n5)) {\n let n6 = e3;\n do {\n if (n6 && t4 === n6)\n return true;\n n6 = n6.parentNode || n6.host;\n } while (n6);\n }\n return false;\n }(t3, n4) && \"body\" !== r2(t3)) : [];\n}\nvar D2 = { getClippingRect: function(t2) {\n let { element: e2, boundary: n4, rootBoundary: o4, strategy: i4 } = t2;\n const r4 = [...\"clippingAncestors\" === n4 ? S(e2) : [].concat(n4), o4], l5 = r4[0], c4 = r4.reduce((t3, n5) => {\n const o5 = C(e2, n5, i4);\n return t3.top = p2(o5.top, t3.top), t3.right = g2(o5.right, t3.right), t3.bottom = g2(o5.bottom, t3.bottom), t3.left = p2(o5.left, t3.left), t3;\n }, C(e2, l5, i4));\n return { width: c4.right - c4.left, height: c4.bottom - c4.top, x: c4.left, y: c4.top };\n}, convertOffsetParentRelativeRectToViewportRelativeRect: function(t2) {\n let { rect: e2, offsetParent: n4, strategy: o4 } = t2;\n const i4 = c2(n4), l5 = v2(n4);\n if (n4 === l5)\n return e2;\n let f4 = { scrollLeft: 0, scrollTop: 0 };\n const s4 = { x: 0, y: 0 };\n if ((i4 || !i4 && \"fixed\" !== o4) && ((\"body\" !== r2(n4) || u2(l5)) && (f4 = y2(n4)), c2(n4))) {\n const t3 = w2(n4, true);\n s4.x = t3.x + n4.clientLeft, s4.y = t3.y + n4.clientTop;\n }\n return __spreadProps(__spreadValues({}, e2), { x: e2.x - f4.scrollLeft + s4.x, y: e2.y - f4.scrollTop + s4.y });\n}, isElement: f2, getDimensions: W, getOffsetParent: T2, getDocumentElement: v2, getElementRects: (t2) => {\n let { reference: e2, floating: n4, strategy: o4 } = t2;\n return { reference: b2(e2, T2(n4), o4), floating: __spreadProps(__spreadValues({}, W(n4)), { x: 0, y: 0 }) };\n}, getClientRects: (t2) => Array.from(t2.getClientRects()), isRTL: (t2) => \"rtl\" === i2(t2).direction };\nfunction N(t2, e2, n4, o4) {\n void 0 === o4 && (o4 = {});\n const { ancestorScroll: i4 = true, ancestorResize: r4 = true, elementResize: l5 = true, animationFrame: c4 = false } = o4, s4 = i4 && !c4, u4 = r4 && !c4, d4 = s4 || u4 ? [...f2(t2) ? H(t2) : [], ...H(e2)] : [];\n d4.forEach((t3) => {\n s4 && t3.addEventListener(\"scroll\", n4, { passive: true }), u4 && t3.addEventListener(\"resize\", n4);\n });\n let h4, a5 = null;\n if (l5) {\n let o5 = true;\n a5 = new ResizeObserver(() => {\n o5 || n4(), o5 = false;\n }), f2(t2) && !c4 && a5.observe(t2), a5.observe(e2);\n }\n let g4 = c4 ? w2(t2) : null;\n return c4 && function e3() {\n const o5 = w2(t2);\n !g4 || o5.x === g4.x && o5.y === g4.y && o5.width === g4.width && o5.height === g4.height || n4();\n g4 = o5, h4 = requestAnimationFrame(e3);\n }(), n4(), () => {\n var t3;\n d4.forEach((t4) => {\n s4 && t4.removeEventListener(\"scroll\", n4), u4 && t4.removeEventListener(\"resize\", n4);\n }), null == (t3 = a5) || t3.disconnect(), a5 = null, c4 && cancelAnimationFrame(h4);\n };\n}\nvar z = (t2, n4, o4) => o(t2, n4, __spreadValues({ platform: D2 }, o4));\n\n\/\/ ..\/..\/node_modules\/@floating-ui\/react-dom\/dist\/floating-ui.react-dom.mjs\nvar React34 = __toESM(require(\"react\"), 1);\nvar import_react20 = require(\"react\");\nvar ReactDOM = __toESM(require(\"react-dom\"), 1);\nvar index2 = typeof document !== \"undefined\" ? import_react20.useLayoutEffect : import_react20.useEffect;\nfunction deepEqual2(a5, b5) {\n if (a5 === b5) {\n return true;\n }\n if (typeof a5 !== typeof b5) {\n return false;\n }\n if (typeof a5 === \"function\" && a5.toString() === b5.toString()) {\n return true;\n }\n let length, i4, keys;\n if (a5 && b5 && typeof a5 == \"object\") {\n if (Array.isArray(a5)) {\n length = a5.length;\n if (length != b5.length)\n return false;\n for (i4 = length; i4-- !== 0; ) {\n if (!deepEqual2(a5[i4], b5[i4])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a5);\n length = keys.length;\n if (length !== Object.keys(b5).length) {\n return false;\n }\n for (i4 = length; i4-- !== 0; ) {\n if (!Object.prototype.hasOwnProperty.call(b5, keys[i4])) {\n return false;\n }\n }\n for (i4 = length; i4-- !== 0; ) {\n const key = keys[i4];\n if (key === \"_owner\" && a5.$$typeof) {\n continue;\n }\n if (!deepEqual2(a5[key], b5[key])) {\n return false;\n }\n }\n return true;\n }\n return a5 !== a5 && b5 !== b5;\n}\nfunction useLatestRef(value) {\n const ref = React34.useRef(value);\n index2(() => {\n ref.current = value;\n });\n return ref;\n}\nfunction useFloating(_temp) {\n let {\n middleware,\n placement = \"bottom\",\n strategy = \"absolute\",\n whileElementsMounted\n } = _temp === void 0 ? {} : _temp;\n const reference = React34.useRef(null);\n const floating = React34.useRef(null);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const cleanupRef = React34.useRef(null);\n const [data, setData] = React34.useState({\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {}\n });\n const [latestMiddleware, setLatestMiddleware] = React34.useState(middleware);\n if (!deepEqual2(latestMiddleware == null ? void 0 : latestMiddleware.map((_ref) => {\n let {\n options\n } = _ref;\n return options;\n }), middleware == null ? void 0 : middleware.map((_ref2) => {\n let {\n options\n } = _ref2;\n return options;\n }))) {\n setLatestMiddleware(middleware);\n }\n const update = React34.useCallback(() => {\n if (!reference.current || !floating.current) {\n return;\n }\n z(reference.current, floating.current, {\n middleware: latestMiddleware,\n placement,\n strategy\n }).then((data2) => {\n if (isMountedRef.current) {\n ReactDOM.flushSync(() => {\n setData(data2);\n });\n }\n });\n }, [latestMiddleware, placement, strategy]);\n index2(() => {\n if (isMountedRef.current) {\n update();\n }\n }, [update]);\n const isMountedRef = React34.useRef(false);\n index2(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n const runElementMountCallback = React34.useCallback(() => {\n if (typeof cleanupRef.current === \"function\") {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n if (reference.current && floating.current) {\n if (whileElementsMountedRef.current) {\n const cleanupFn = whileElementsMountedRef.current(reference.current, floating.current, update);\n cleanupRef.current = cleanupFn;\n } else {\n update();\n }\n }\n }, [update, whileElementsMountedRef]);\n const setReference = React34.useCallback((node) => {\n reference.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const setFloating = React34.useCallback((node) => {\n floating.current = node;\n runElementMountCallback();\n }, [runElementMountCallback]);\n const refs = React34.useMemo(() => ({\n reference,\n floating\n }), []);\n return React34.useMemo(() => __spreadProps(__spreadValues({}, data), {\n update,\n refs,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, setReference, setFloating]);\n}\nvar arrow = (options) => {\n const {\n element,\n padding\n } = options;\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, \"current\");\n }\n return {\n name: \"arrow\",\n options,\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return m({\n element: element.current,\n padding\n }).fn(args);\n }\n return {};\n } else if (element) {\n return m({\n element,\n padding\n }).fn(args);\n }\n return {};\n }\n };\n};\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-arrow\/dist\/index.module.js\nvar import_react21 = require(\"react\");\nvar $7e8f5cd07187803e$export$21b07c8f274aebd5 = \/* @__PURE__ *\/ (0, import_react21.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { children, width = 10, height = 5 } = _a3, arrowProps = __objRest(_a3, [\"children\", \"width\", \"height\"]);\n return \/* @__PURE__ *\/ (0, import_react21.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.svg, _extends2({}, arrowProps, {\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\"\n }), props.asChild ? children : \/* @__PURE__ *\/ (0, import_react21.createElement)(\"polygon\", {\n points: \"0,0 30,0 15,10\"\n }));\n});\nvar $7e8f5cd07187803e$export$be92b6f5f03c0fe9 = $7e8f5cd07187803e$export$21b07c8f274aebd5;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-size\/dist\/index.module.js\nvar import_react22 = require(\"react\");\nfunction $db6c3485150b8e66$export$1ab7ae714698c4b8(element) {\n const [size, setSize] = (0, import_react22.useState)(void 0);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (element) {\n setSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries))\n return;\n if (!entries.length)\n return;\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({\n width,\n height\n });\n });\n resizeObserver.observe(element, {\n box: \"border-box\"\n });\n return () => resizeObserver.unobserve(element);\n } else\n setSize(void 0);\n }, [\n element\n ]);\n return size;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-popper\/dist\/index.module.js\nvar $cf1ac5d9fe0e8206$var$POPPER_NAME = \"Popper\";\nvar [$cf1ac5d9fe0e8206$var$createPopperContext, $cf1ac5d9fe0e8206$export$722aac194ae923] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cf1ac5d9fe0e8206$var$POPPER_NAME);\nvar [$cf1ac5d9fe0e8206$var$PopperProvider, $cf1ac5d9fe0e8206$var$usePopperContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$POPPER_NAME);\nvar $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9 = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = (0, import_react23.useState)(null);\n return \/* @__PURE__ *\/ (0, import_react23.createElement)($cf1ac5d9fe0e8206$var$PopperProvider, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor\n }, children);\n};\nvar $cf1ac5d9fe0e8206$var$ANCHOR_NAME = \"PopperAnchor\";\nvar $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d = \/* @__PURE__ *\/ (0, import_react23.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopper, virtualRef } = _a3, anchorProps = __objRest(_a3, [\"__scopePopper\", \"virtualRef\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$ANCHOR_NAME, __scopePopper);\n const ref = (0, import_react23.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n (0, import_react23.useEffect)(() => {\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n });\n return virtualRef ? null : \/* @__PURE__ *\/ (0, import_react23.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, anchorProps, {\n ref: composedRefs\n }));\n});\nvar $cf1ac5d9fe0e8206$var$CONTENT_NAME = \"PopperContent\";\nvar [$cf1ac5d9fe0e8206$var$PopperContentProvider, $cf1ac5d9fe0e8206$var$useContentContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME);\nvar [$cf1ac5d9fe0e8206$var$PositionContextProvider, $cf1ac5d9fe0e8206$var$usePositionContext] = $cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, {\n hasParent: false,\n positionUpdateFns: \/* @__PURE__ *\/ new Set()\n});\nvar $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc = \/* @__PURE__ *\/ (0, import_react23.forwardRef)((props, forwardedRef) => {\n var _arrowSize$width, _arrowSize$height, _middlewareData$arrow, _middlewareData$arrow2, _middlewareData$arrow3, _middlewareData$hide, _middlewareData$trans, _middlewareData$trans2;\n const _a3 = props, { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, avoidCollisions = true } = _a3, contentProps = __objRest(_a3, [\"__scopePopper\", \"side\", \"sideOffset\", \"align\", \"alignOffset\", \"arrowPadding\", \"collisionBoundary\", \"collisionPadding\", \"sticky\", \"hideWhenDetached\", \"avoidCollisions\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, __scopePopper);\n const [content, setContent] = (0, import_react23.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const [arrow2, setArrow] = (0, import_react23.useState)(null);\n const arrowSize = $db6c3485150b8e66$export$1ab7ae714698c4b8(arrow2);\n const arrowWidth = (_arrowSize$width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize$width !== void 0 ? _arrowSize$width : 0;\n const arrowHeight = (_arrowSize$height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize$height !== void 0 ? _arrowSize$height : 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : __spreadValues({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }, collisionPaddingProp);\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter($cf1ac5d9fe0e8206$var$isNotNull),\n altBoundary: hasExplicitBoundaries\n };\n const { reference, floating, strategy, x: x4, y: y4, placement, middlewareData, update } = useFloating({\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: N,\n middleware: [\n T({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions ? D(__spreadValues({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? L() : void 0\n }, detectOverflowOptions)) : void 0,\n arrow2 ? arrow({\n element: arrow2,\n padding: arrowPadding\n }) : void 0,\n avoidCollisions ? b(__spreadValues({}, detectOverflowOptions)) : void 0,\n $cf1ac5d9fe0e8206$var$transformOrigin({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached ? P({\n strategy: \"referenceHidden\"\n }) : void 0\n ].filter($cf1ac5d9fe0e8206$var$isDefined)\n });\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n reference(context.anchor);\n }, [\n reference,\n context.anchor\n ]);\n const isPlaced = x4 !== null && y4 !== null;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement);\n const arrowX = (_middlewareData$arrow = middlewareData.arrow) === null || _middlewareData$arrow === void 0 ? void 0 : _middlewareData$arrow.x;\n const arrowY = (_middlewareData$arrow2 = middlewareData.arrow) === null || _middlewareData$arrow2 === void 0 ? void 0 : _middlewareData$arrow2.y;\n const cannotCenterArrow = ((_middlewareData$arrow3 = middlewareData.arrow) === null || _middlewareData$arrow3 === void 0 ? void 0 : _middlewareData$arrow3.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = (0, import_react23.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (content)\n setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const { hasParent, positionUpdateFns } = $cf1ac5d9fe0e8206$var$usePositionContext($cf1ac5d9fe0e8206$var$CONTENT_NAME, __scopePopper);\n const isRoot = !hasParent;\n (0, import_react23.useLayoutEffect)(() => {\n if (!isRoot) {\n positionUpdateFns.add(update);\n return () => {\n positionUpdateFns.delete(update);\n };\n }\n }, [\n isRoot,\n positionUpdateFns,\n update\n ]);\n (0, import_react23.useLayoutEffect)(() => {\n if (isRoot && isPlaced)\n Array.from(positionUpdateFns).reverse().forEach(\n (fn) => requestAnimationFrame(fn)\n );\n }, [\n isRoot,\n isPlaced,\n positionUpdateFns\n ]);\n const commonProps = __spreadProps(__spreadValues({\n \"data-side\": placedSide,\n \"data-align\": placedAlign\n }, contentProps), {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n animation: !isPlaced ? \"none\" : void 0,\n opacity: (_middlewareData$hide = middlewareData.hide) !== null && _middlewareData$hide !== void 0 && _middlewareData$hide.referenceHidden ? 0 : void 0\n })\n });\n return \/* @__PURE__ *\/ (0, import_react23.createElement)(\"div\", {\n ref: floating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n position: strategy,\n left: 0,\n top: 0,\n transform: isPlaced ? `translate3d(${Math.round(x4)}px, ${Math.round(y4)}px, 0)` : \"translate3d(0, -200%, 0)\",\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n (_middlewareData$trans = middlewareData.transformOrigin) === null || _middlewareData$trans === void 0 ? void 0 : _middlewareData$trans.x,\n (_middlewareData$trans2 = middlewareData.transformOrigin) === null || _middlewareData$trans2 === void 0 ? void 0 : _middlewareData$trans2.y\n ].join(\" \")\n }\n }, \/* @__PURE__ *\/ (0, import_react23.createElement)($cf1ac5d9fe0e8206$var$PopperContentProvider, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow\n }, isRoot ? \/* @__PURE__ *\/ (0, import_react23.createElement)($cf1ac5d9fe0e8206$var$PositionContextProvider, {\n scope: __scopePopper,\n hasParent: true,\n positionUpdateFns\n }, \/* @__PURE__ *\/ (0, import_react23.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, commonProps)) : \/* @__PURE__ *\/ (0, import_react23.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, commonProps)));\n});\nvar $cf1ac5d9fe0e8206$var$ARROW_NAME = \"PopperArrow\";\nvar $cf1ac5d9fe0e8206$var$OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0 = \/* @__PURE__ *\/ (0, import_react23.forwardRef)(function $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd02(props, forwardedRef) {\n const _a3 = props, { __scopePopper } = _a3, arrowProps = __objRest(_a3, [\"__scopePopper\"]);\n const contentContext = $cf1ac5d9fe0e8206$var$useContentContext($cf1ac5d9fe0e8206$var$ARROW_NAME, __scopePopper);\n const baseSide = $cf1ac5d9fe0e8206$var$OPPOSITE_SIDE[contentContext.placedSide];\n return \/* @__PURE__ *\/ (0, import_react23.createElement)(\"span\", {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n }\n }, \/* @__PURE__ *\/ (0, import_react23.createElement)($7e8f5cd07187803e$export$be92b6f5f03c0fe9, _extends2({}, arrowProps, {\n ref: forwardedRef,\n style: __spreadProps(__spreadValues({}, arrowProps.style), {\n display: \"block\"\n })\n })));\n});\nfunction $cf1ac5d9fe0e8206$var$isDefined(value) {\n return value !== void 0;\n}\nfunction $cf1ac5d9fe0e8206$var$isNotNull(value) {\n return value !== null;\n}\nvar $cf1ac5d9fe0e8206$var$transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n var _middlewareData$arrow4, _middlewareData$arrow5, _middlewareData$arrow6, _middlewareData$arrow7, _middlewareData$arrow8;\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData$arrow4 = middlewareData.arrow) === null || _middlewareData$arrow4 === void 0 ? void 0 : _middlewareData$arrow4.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n const arrowXCenter = ((_middlewareData$arrow5 = (_middlewareData$arrow6 = middlewareData.arrow) === null || _middlewareData$arrow6 === void 0 ? void 0 : _middlewareData$arrow6.x) !== null && _middlewareData$arrow5 !== void 0 ? _middlewareData$arrow5 : 0) + arrowWidth \/ 2;\n const arrowYCenter = ((_middlewareData$arrow7 = (_middlewareData$arrow8 = middlewareData.arrow) === null || _middlewareData$arrow8 === void 0 ? void 0 : _middlewareData$arrow8.y) !== null && _middlewareData$arrow7 !== void 0 ? _middlewareData$arrow7 : 0) + arrowHeight \/ 2;\n let x4 = \"\";\n let y4 = \"\";\n if (placedSide === \"bottom\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x4 = `${-arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x4 = `${rects.floating.width + arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return {\n data: {\n x: x4,\n y: y4\n }\n };\n }\n});\nfunction $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9 = $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9;\nvar $cf1ac5d9fe0e8206$export$b688253958b8dfe7 = $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d;\nvar $cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2 = $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc;\nvar $cf1ac5d9fe0e8206$export$21b07c8f274aebd5 = $cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-portal\/dist\/index.module.js\nvar import_react24 = require(\"react\");\nvar import_react_dom4 = __toESM(require(\"react-dom\"));\nvar $f1701beae083dbae$export$602eac185826482c = \/* @__PURE__ *\/ (0, import_react24.forwardRef)((props, forwardedRef) => {\n var _globalThis$document;\n const _a3 = props, { container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body } = _a3, portalProps = __objRest(_a3, [\"container\"]);\n return container ? \/* @__PURE__ *\/ import_react_dom4.default.createPortal(\/* @__PURE__ *\/ (0, import_react24.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-presence\/dist\/index.module.js\nvar import_react25 = require(\"react\");\nvar import_react_dom5 = require(\"react-dom\");\nfunction $fe963b355347cc68$export$3e6543de14f8614f(initialState, machine) {\n return (0, import_react25.useReducer)((state, event) => {\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\nvar $921a889cee6df7e8$export$99c2b779aa4e8b8b = (props) => {\n const { present, children } = props;\n const presence = $921a889cee6df7e8$var$usePresence(present);\n const child = typeof children === \"function\" ? children({\n present: presence.isPresent\n }) : import_react25.Children.only(children);\n const ref = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(presence.ref, child.ref);\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? \/* @__PURE__ *\/ (0, import_react25.cloneElement)(child, {\n ref\n }) : null;\n};\n$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName = \"Presence\";\nfunction $921a889cee6df7e8$var$usePresence(present) {\n const [node1, setNode] = (0, import_react25.useState)();\n const stylesRef = (0, import_react25.useRef)({});\n const prevPresentRef = (0, import_react25.useRef)(present);\n const prevAnimationNameRef = (0, import_react25.useRef)(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = $fe963b355347cc68$export$3e6543de14f8614f(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n (0, import_react25.useEffect)(() => {\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [\n state\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n const styles2 = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(styles2);\n if (present)\n send(\"MOUNT\");\n else if (currentAnimationName === \"none\" || (styles2 === null || styles2 === void 0 ? void 0 : styles2.display) === \"none\")\n send(\"UNMOUNT\");\n else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating)\n send(\"ANIMATION_OUT\");\n else\n send(\"UNMOUNT\");\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (node1) {\n const handleAnimationEnd = (event) => {\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node1 && isCurrentAnimation)\n (0, import_react_dom5.flushSync)(\n () => send(\"ANIMATION_END\")\n );\n };\n const handleAnimationStart = (event) => {\n if (event.target === node1)\n prevAnimationNameRef.current = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n };\n node1.addEventListener(\"animationstart\", handleAnimationStart);\n node1.addEventListener(\"animationcancel\", handleAnimationEnd);\n node1.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n node1.removeEventListener(\"animationstart\", handleAnimationStart);\n node1.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node1.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else\n send(\"ANIMATION_END\");\n }, [\n node1,\n send\n ]);\n return {\n isPresent: [\n \"mounted\",\n \"unmountSuspended\"\n ].includes(state),\n ref: (0, import_react25.useCallback)((node) => {\n if (node)\n stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, [])\n };\n}\nfunction $921a889cee6df7e8$var$getAnimationName(styles2) {\n return (styles2 === null || styles2 === void 0 ? void 0 : styles2.animationName) || \"none\";\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-controllable-state\/dist\/index.module.js\nvar import_react26 = require(\"react\");\nfunction $71cd76cc60e0454e$export$6f32135080cb4c3({ prop, defaultProp, onChange = () => {\n} }) {\n const [uncontrolledProp, setUncontrolledProp] = $71cd76cc60e0454e$var$useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value1 = isControlled ? prop : uncontrolledProp;\n const handleChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onChange);\n const setValue = (0, import_react26.useCallback)((nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value !== prop)\n handleChange(value);\n } else\n setUncontrolledProp(nextValue);\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value1,\n setValue\n ];\n}\nfunction $71cd76cc60e0454e$var$useUncontrolledState({ defaultProp, onChange }) {\n const uncontrolledState = (0, import_react26.useState)(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = (0, import_react26.useRef)(value);\n const handleChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onChange);\n (0, import_react26.useEffect)(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-visually-hidden\/dist\/index.module.js\nvar import_react27 = require(\"react\");\nvar $ea1ef594cf570d83$export$439d29a4e110a164 = \/* @__PURE__ *\/ (0, import_react27.forwardRef)((props, forwardedRef) => {\n return \/* @__PURE__ *\/ (0, import_react27.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({}, props, {\n ref: forwardedRef,\n style: __spreadValues({\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n }, props.style)\n }));\n});\nvar $ea1ef594cf570d83$export$be92b6f5f03c0fe9 = $ea1ef594cf570d83$export$439d29a4e110a164;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-tooltip\/dist\/index.module.js\nvar [$a093c7e1ec25a057$var$createTooltipContext, $a093c7e1ec25a057$export$1c540a2224f0d865] = $c512c27ab02ef895$export$50c7b4e9d9f19c1(\"Tooltip\", [\n $cf1ac5d9fe0e8206$export$722aac194ae923\n]);\nvar $a093c7e1ec25a057$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();\nvar $a093c7e1ec25a057$var$PROVIDER_NAME = \"TooltipProvider\";\nvar $a093c7e1ec25a057$var$DEFAULT_DELAY_DURATION = 700;\nvar $a093c7e1ec25a057$var$TOOLTIP_OPEN = \"tooltip.open\";\nvar [$a093c7e1ec25a057$var$TooltipProviderContextProvider, $a093c7e1ec25a057$var$useTooltipProviderContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PROVIDER_NAME);\nvar $a093c7e1ec25a057$export$f78649fb9ca566b8 = (props) => {\n const { __scopeTooltip, delayDuration = $a093c7e1ec25a057$var$DEFAULT_DELAY_DURATION, skipDelayDuration = 300, disableHoverableContent = false, children } = props;\n const [isOpenDelayed, setIsOpenDelayed] = (0, import_react28.useState)(true);\n const isPointerInTransitRef = (0, import_react28.useRef)(false);\n const skipDelayTimerRef = (0, import_react28.useRef)(0);\n (0, import_react28.useEffect)(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipProviderContextProvider, {\n scope: __scopeTooltip,\n isOpenDelayed,\n delayDuration,\n onOpen: (0, import_react28.useCallback)(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n setIsOpenDelayed(false);\n }, []),\n onClose: (0, import_react28.useCallback)(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }, [\n skipDelayDuration\n ]),\n isPointerInTransitRef,\n onPointerInTransitChange: (0, import_react28.useCallback)((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent\n }, children);\n};\nvar $a093c7e1ec25a057$var$TOOLTIP_NAME = \"Tooltip\";\nvar [$a093c7e1ec25a057$var$TooltipContextProvider, $a093c7e1ec25a057$var$useTooltipContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME);\nvar $a093c7e1ec25a057$export$28c660c63b792dea = (props) => {\n const { __scopeTooltip, children, open: openProp, defaultOpen = false, onOpenChange, disableHoverableContent: disableHoverableContentProp, delayDuration: delayDurationProp } = props;\n const providerContext = $a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = (0, import_react28.useState)(null);\n const contentId = $1746a345f3d73bb7$export$f680877a34711e37();\n const openTimerRef = (0, import_react28.useRef)(0);\n const disableHoverableContent = disableHoverableContentProp !== null && disableHoverableContentProp !== void 0 ? disableHoverableContentProp : providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp !== null && delayDurationProp !== void 0 ? delayDurationProp : providerContext.delayDuration;\n const wasOpenDelayedRef = (0, import_react28.useRef)(false);\n const [open1 = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: (open) => {\n if (open) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent($a093c7e1ec25a057$var$TOOLTIP_OPEN));\n } else\n providerContext.onClose();\n onOpenChange === null || onOpenChange === void 0 || onOpenChange(open);\n }\n });\n const stateAttribute = (0, import_react28.useMemo)(() => {\n return open1 ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [\n open1\n ]);\n const handleOpen = (0, import_react28.useCallback)(() => {\n window.clearTimeout(openTimerRef.current);\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [\n setOpen\n ]);\n const handleClose = (0, import_react28.useCallback)(() => {\n window.clearTimeout(openTimerRef.current);\n setOpen(false);\n }, [\n setOpen\n ]);\n const handleDelayedOpen = (0, import_react28.useCallback)(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n }, delayDuration);\n }, [\n delayDuration,\n setOpen\n ]);\n (0, import_react28.useEffect)(() => {\n return () => window.clearTimeout(openTimerRef.current);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContextProvider, {\n scope: __scopeTooltip,\n contentId,\n open: open1,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: (0, import_react28.useCallback)(() => {\n if (providerContext.isOpenDelayed)\n handleDelayedOpen();\n else\n handleOpen();\n }, [\n providerContext.isOpenDelayed,\n handleDelayedOpen,\n handleOpen\n ]),\n onTriggerLeave: (0, import_react28.useCallback)(() => {\n if (disableHoverableContent)\n handleClose();\n else\n window.clearTimeout(openTimerRef.current);\n }, [\n handleClose,\n disableHoverableContent\n ]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent\n }, children));\n};\nvar $a093c7e1ec25a057$var$TRIGGER_NAME = \"TooltipTrigger\";\nvar $a093c7e1ec25a057$export$8c610744efcf8a1d = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeTooltip } = _a3, triggerProps = __objRest(_a3, [\"__scopeTooltip\"]);\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$TRIGGER_NAME, __scopeTooltip);\n const providerContext = $a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TRIGGER_NAME, __scopeTooltip);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const ref = (0, import_react28.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = (0, import_react28.useRef)(false);\n const hasPointerMoveOpenedRef = (0, import_react28.useRef)(false);\n const handlePointerUp = (0, import_react28.useCallback)(\n () => isPointerDownRef.current = false,\n []\n );\n (0, import_react28.useEffect)(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [\n handlePointerUp\n ]);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe7, _extends2({\n asChild: true\n }, popperScope), \/* @__PURE__ *\/ (0, import_react28.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute\n }, triggerProps, {\n ref: composedRefs,\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\")\n return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDown, () => {\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, {\n once: true\n });\n }),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocus, () => {\n if (!isPointerDownRef.current)\n context.onOpen();\n }),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlur, context.onClose),\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, context.onClose)\n })));\n});\nvar $a093c7e1ec25a057$var$PORTAL_NAME = \"TooltipPortal\";\nvar [$a093c7e1ec25a057$var$PortalProvider, $a093c7e1ec25a057$var$usePortalContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PORTAL_NAME, {\n forceMount: void 0\n});\nvar $a093c7e1ec25a057$export$7b36b8f925ab7497 = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$PORTAL_NAME, __scopeTooltip);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$PortalProvider, {\n scope: __scopeTooltip,\n forceMount\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($f1701beae083dbae$export$602eac185826482c, {\n asChild: true,\n container\n }, children)));\n};\nvar $a093c7e1ec25a057$var$CONTENT_NAME = \"TooltipContent\";\nvar $a093c7e1ec25a057$export$e9003e2be37ec060 = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const portalContext = $a093c7e1ec25a057$var$usePortalContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n const _a3 = props, { forceMount = portalContext.forceMount, side = \"top\" } = _a3, contentProps = __objRest(_a3, [\"forceMount\", \"side\"]);\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, context.disableHoverableContent ? \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContentImpl, _extends2({\n side\n }, contentProps, {\n ref: forwardedRef\n })) : \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContentHoverable, _extends2({\n side\n }, contentProps, {\n ref: forwardedRef\n })));\n});\nvar $a093c7e1ec25a057$var$TooltipContentHoverable = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n const providerContext = $a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$CONTENT_NAME, props.__scopeTooltip);\n const ref = (0, import_react28.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = (0, import_react28.useState)(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = (0, import_react28.useCallback)(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [\n onPointerInTransitChange\n ]);\n const handleCreateGraceArea = (0, import_react28.useCallback)((event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = {\n x: event.clientX,\n y: event.clientY\n };\n const exitSide = $a093c7e1ec25a057$var$getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const bleed = exitSide === \"right\" || exitSide === \"bottom\" ? -5 : 5;\n const isXAxis = exitSide === \"right\" || exitSide === \"left\";\n const startPoint = isXAxis ? {\n x: event.clientX + bleed,\n y: event.clientY\n } : {\n x: event.clientX,\n y: event.clientY + bleed\n };\n const hoverTargetPoints = $a093c7e1ec25a057$var$getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = $a093c7e1ec25a057$var$getHull([\n startPoint,\n ...hoverTargetPoints\n ]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n }, [\n onPointerInTransitChange\n ]);\n (0, import_react28.useEffect)(() => {\n return () => handleRemoveGraceArea();\n }, [\n handleRemoveGraceArea\n ]);\n (0, import_react28.useEffect)(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [\n trigger,\n content,\n handleCreateGraceArea,\n handleRemoveGraceArea\n ]);\n (0, import_react28.useEffect)(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = {\n x: event.clientX,\n y: event.clientY\n };\n const hasEnteredTarget = (trigger === null || trigger === void 0 ? void 0 : trigger.contains(target)) || (content === null || content === void 0 ? void 0 : content.contains(target));\n const isPointerOutsideGraceArea = !$a093c7e1ec25a057$var$isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget)\n handleRemoveGraceArea();\n else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [\n trigger,\n content,\n pointerGraceArea,\n onClose,\n handleRemoveGraceArea\n ]);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$TooltipContentImpl, _extends2({}, props, {\n ref: composedRefs\n }));\n});\nvar [$a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider, $a093c7e1ec25a057$var$useVisuallyHiddenContentContext] = $a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME, {\n isInside: false\n});\nvar $a093c7e1ec25a057$var$TooltipContentImpl = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeTooltip, children, \"aria-label\": ariaLabel, onEscapeKeyDown, onPointerDownOutside } = _a3, contentProps = __objRest(_a3, [\"__scopeTooltip\", \"children\", \"aria-label\", \"onEscapeKeyDown\", \"onPointerDownOutside\"]);\n const context = $a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME, __scopeTooltip);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const { onClose } = context;\n (0, import_react28.useEffect)(() => {\n document.addEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN, onClose);\n }, [\n onClose\n ]);\n (0, import_react28.useEffect)(() => {\n if (context.trigger) {\n const handleScroll2 = (event) => {\n const target = event.target;\n if (target !== null && target !== void 0 && target.contains(context.trigger))\n onClose();\n };\n window.addEventListener(\"scroll\", handleScroll2, {\n capture: true\n });\n return () => window.removeEventListener(\"scroll\", handleScroll2, {\n capture: true\n });\n }\n }, [\n context.trigger,\n onClose\n ]);\n return \/* @__PURE__ *\/ (0, import_react28.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2, _extends2({\n \"data-state\": context.stateAttribute\n }, popperScope, contentProps, {\n ref: forwardedRef,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n [\"--radix-tooltip-content-transform-origin\"]: \"var(--radix-popper-transform-origin)\"\n })\n }), \/* @__PURE__ *\/ (0, import_react28.createElement)($5e63c961fc1ce211$export$d9f1ccf0bdb05d45, null, children), \/* @__PURE__ *\/ (0, import_react28.createElement)($a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider, {\n scope: __scopeTooltip,\n isInside: true\n }, \/* @__PURE__ *\/ (0, import_react28.createElement)($ea1ef594cf570d83$export$be92b6f5f03c0fe9, {\n id: context.contentId,\n role: \"tooltip\"\n }, ariaLabel || children))));\n});\nvar $a093c7e1ec25a057$var$ARROW_NAME = \"TooltipArrow\";\nvar $a093c7e1ec25a057$export$c27ee0ad710f7559 = \/* @__PURE__ *\/ (0, import_react28.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeTooltip } = _a3, arrowProps = __objRest(_a3, [\"__scopeTooltip\"]);\n const popperScope = $a093c7e1ec25a057$var$usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = $a093c7e1ec25a057$var$useVisuallyHiddenContentContext($a093c7e1ec25a057$var$ARROW_NAME, __scopeTooltip);\n return visuallyHiddenContentContext.isInside ? null : \/* @__PURE__ *\/ (0, import_react28.createElement)($cf1ac5d9fe0e8206$export$21b07c8f274aebd5, _extends2({}, popperScope, arrowProps, {\n ref: forwardedRef\n }));\n});\nfunction $a093c7e1ec25a057$var$getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n return null;\n }\n}\nfunction $a093c7e1ec25a057$var$getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n {\n x: left,\n y: top\n },\n {\n x: right,\n y: top\n },\n {\n x: right,\n y: bottom\n },\n {\n x: left,\n y: bottom\n }\n ];\n}\nfunction $a093c7e1ec25a057$var$isPointInPolygon(point, polygon) {\n const { x: x4, y: y4 } = point;\n let inside = false;\n for (let i4 = 0, j2 = polygon.length - 1; i4 < polygon.length; j2 = i4++) {\n const xi = polygon[i4].x;\n const yi = polygon[i4].y;\n const xj = polygon[j2].x;\n const yj = polygon[j2].y;\n const intersect = yi > y4 !== yj > y4 && x4 < (xj - xi) * (y4 - yi) \/ (yj - yi) + xi;\n if (intersect)\n inside = !inside;\n }\n return inside;\n}\nfunction $a093c7e1ec25a057$var$getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a5, b5) => {\n if (a5.x < b5.x)\n return -1;\n else if (a5.x > b5.x)\n return 1;\n else if (a5.y < b5.y)\n return -1;\n else if (a5.y > b5.y)\n return 1;\n else\n return 0;\n });\n return $a093c7e1ec25a057$var$getHullPresorted(newPoints);\n}\nfunction $a093c7e1ec25a057$var$getHullPresorted(points) {\n if (points.length <= 1)\n return points.slice();\n const upperHull = [];\n for (let i4 = 0; i4 < points.length; i4++) {\n const p4 = points[i4];\n while (upperHull.length >= 2) {\n const q2 = upperHull[upperHull.length - 1];\n const r4 = upperHull[upperHull.length - 2];\n if ((q2.x - r4.x) * (p4.y - r4.y) >= (q2.y - r4.y) * (p4.x - r4.x))\n upperHull.pop();\n else\n break;\n }\n upperHull.push(p4);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i1 = points.length - 1; i1 >= 0; i1--) {\n const p4 = points[i1];\n while (lowerHull.length >= 2) {\n const q2 = lowerHull[lowerHull.length - 1];\n const r4 = lowerHull[lowerHull.length - 2];\n if ((q2.x - r4.x) * (p4.y - r4.y) >= (q2.y - r4.y) * (p4.x - r4.x))\n lowerHull.pop();\n else\n break;\n }\n lowerHull.push(p4);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y)\n return upperHull;\n else\n return upperHull.concat(lowerHull);\n}\nvar $a093c7e1ec25a057$export$2881499e37b75b9a = $a093c7e1ec25a057$export$f78649fb9ca566b8;\nvar $a093c7e1ec25a057$export$be92b6f5f03c0fe9 = $a093c7e1ec25a057$export$28c660c63b792dea;\nvar $a093c7e1ec25a057$export$41fb9f06171c75f4 = $a093c7e1ec25a057$export$8c610744efcf8a1d;\nvar $a093c7e1ec25a057$export$602eac185826482c = $a093c7e1ec25a057$export$7b36b8f925ab7497;\nvar $a093c7e1ec25a057$export$7c6e2c02157bb7d2 = $a093c7e1ec25a057$export$e9003e2be37ec060;\nvar $a093c7e1ec25a057$export$21b07c8f274aebd5 = $a093c7e1ec25a057$export$c27ee0ad710f7559;\n\n\/\/ src\/components\/Tooltip\/Tooltip.tsx\nvar import_jsx_runtime33 = require(\"react\/jsx-runtime\");\nfunction Tooltip(_a3) {\n var _b = _a3, { side, content, sideOffset = 10 } = _b, rest = __objRest(_b, [\"side\", \"content\", \"sideOffset\"]);\n return content ? \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$2881499e37b75b9a, {\n delayDuration: 300,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsxs)($a093c7e1ec25a057$export$be92b6f5f03c0fe9, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$41fb9f06171c75f4, {\n asChild: true,\n children: rest.children\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$602eac185826482c, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsxs)($a093c7e1ec25a057$export$7c6e2c02157bb7d2, __spreadProps(__spreadValues({\n className: \"tl-tooltip-content\",\n sideOffset,\n side\n }, rest), {\n children: [\n content,\n \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)($a093c7e1ec25a057$export$21b07c8f274aebd5, {\n className: \"tl-tooltip-arrow\"\n })\n ]\n }))\n })\n ]\n })\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, {\n children: rest.children\n });\n}\n\n\/\/ src\/components\/Button\/Button.tsx\nvar import_jsx_runtime34 = require(\"react\/jsx-runtime\");\nfunction Button(_a3) {\n var _b = _a3, { className, tooltip, tooltipSide } = _b, rest = __objRest(_b, [\"className\", \"tooltip\", \"tooltipSide\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime34.jsx)(Tooltip, {\n content: tooltip,\n side: tooltipSide,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime34.jsx)(\"button\", __spreadValues({\n className: \"tl-button \" + (className != null ? className : \"\")\n }, rest))\n });\n}\n\n\/\/ src\/components\/Button\/CircleButton.tsx\nvar import_jsx_runtime35 = require(\"react\/jsx-runtime\");\nvar CircleButton = ({\n style,\n icon,\n onClick\n}) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime35.jsx)(\"button\", {\n \"data-html2canvas-ignore\": \"true\",\n style,\n className: \"tl-circle-button\",\n onPointerDown: onClick,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime35.jsx)(\"div\", {\n className: \"tl-circle-button-icons-wrapper\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime35.jsx)(TablerIcon, {\n name: icon\n })\n })\n });\n};\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-toggle\/dist\/index.module.js\nvar import_react29 = require(\"react\");\nvar $b3bbe2732c13b576$export$bea8ebba691c5813 = \/* @__PURE__ *\/ (0, import_react29.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { pressed: pressedProp, defaultPressed = false, onPressedChange } = _a3, buttonProps = __objRest(_a3, [\"pressed\", \"defaultPressed\", \"onPressedChange\"]);\n const [pressed = false, setPressed] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed\n });\n return \/* @__PURE__ *\/ (0, import_react29.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0\n }, buttonProps, {\n ref: forwardedRef,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, () => {\n if (!props.disabled)\n setPressed(!pressed);\n })\n }));\n});\nvar $b3bbe2732c13b576$export$be92b6f5f03c0fe9 = $b3bbe2732c13b576$export$bea8ebba691c5813;\n\n\/\/ src\/components\/inputs\/ToggleInput.tsx\nvar import_jsx_runtime36 = require(\"react\/jsx-runtime\");\nfunction ToggleInput(_a3) {\n var _b = _a3, {\n toggle = true,\n pressed,\n onPressedChange,\n className,\n tooltip\n } = _b, rest = __objRest(_b, [\n \"toggle\",\n \"pressed\",\n \"onPressedChange\",\n \"className\",\n \"tooltip\"\n ]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime36.jsx)(Tooltip, {\n content: tooltip,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime36.jsx)(\"div\", {\n className: \"inline-block\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime36.jsx)($b3bbe2732c13b576$export$be92b6f5f03c0fe9, __spreadProps(__spreadValues({}, rest), {\n \"data-toggle\": toggle,\n className: \"tl-toggle-input\" + (className ? \" \" + className : \"\"),\n pressed,\n onPressedChange\n }))\n })\n });\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dropdown-menu\/dist\/index.module.js\nvar import_react37 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-menu\/dist\/index.module.js\nvar import_react36 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-collection\/dist\/index.module.js\nvar import_react30 = __toESM(require(\"react\"));\nfunction $e02a7d9cb1dc128c$export$c74125a8e3af6bb2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = $c512c27ab02ef895$export$50c7b4e9d9f19c1(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: \/* @__PURE__ *\/ new Map()\n });\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = import_react30.default.useRef(null);\n const itemMap = import_react30.default.useRef(\/* @__PURE__ *\/ new Map()).current;\n return \/* @__PURE__ *\/ import_react30.default.createElement(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref\n }, children);\n };\n \/* @__PURE__ *\/ Object.assign(CollectionProvider, {\n displayName: PROVIDER_NAME\n });\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = \/* @__PURE__ *\/ import_react30.default.forwardRef((props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.collectionRef);\n return \/* @__PURE__ *\/ import_react30.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionSlot, {\n displayName: COLLECTION_SLOT_NAME\n });\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = \/* @__PURE__ *\/ import_react30.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { scope, children } = _a3, itemData = __objRest(_a3, [\"scope\", \"children\"]);\n const ref = import_react30.default.useRef(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n import_react30.default.useEffect(() => {\n context.itemMap.set(ref, __spreadValues({\n ref\n }, itemData));\n return () => void context.itemMap.delete(ref);\n });\n return \/* @__PURE__ *\/ import_react30.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n [ITEM_DATA_ATTR]: \"\",\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionItemSlot, {\n displayName: ITEM_SLOT_NAME\n });\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = import_react30.default.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode)\n return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a5, b5) => orderedNodes.indexOf(a5.ref.current) - orderedNodes.indexOf(b5.ref.current)\n );\n return orderedItems;\n }, [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-direction\/dist\/index.module.js\nvar import_react31 = require(\"react\");\nvar $f631663db3294ace$var$DirectionContext = \/* @__PURE__ *\/ (0, import_react31.createContext)(void 0);\nfunction $f631663db3294ace$export$b39126d51d94e6f3(localDir) {\n const globalDir = (0, import_react31.useContext)($f631663db3294ace$var$DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-focus-guards\/dist\/index.module.js\nvar import_react32 = require(\"react\");\nvar $3db38b7d1fb3fe6a$var$count = 0;\nfunction $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {\n (0, import_react32.useEffect)(() => {\n var _edgeGuards$, _edgeGuards$2;\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());\n $3db38b7d1fb3fe6a$var$count++;\n return () => {\n if ($3db38b7d1fb3fe6a$var$count === 1)\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach(\n (node) => node.remove()\n );\n $3db38b7d1fb3fe6a$var$count--;\n };\n }, []);\n}\nfunction $3db38b7d1fb3fe6a$var$createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.cssText = \"outline: none; opacity: 0; position: fixed; pointer-events: none\";\n return element;\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-focus-scope\/dist\/index.module.js\nvar import_react33 = require(\"react\");\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar $d3863c46a17e8a28$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar $d3863c46a17e8a28$export$20e40289641fbbb6 = \/* @__PURE__ *\/ (0, import_react33.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp } = _a3, scopeProps = __objRest(_a3, [\"loop\", \"trapped\", \"onMountAutoFocus\", \"onUnmountAutoFocus\"]);\n const [container1, setContainer] = (0, import_react33.useState)(null);\n const onMountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onMountAutoFocusProp);\n const onUnmountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onUnmountAutoFocusProp);\n const lastFocusedElementRef = (0, import_react33.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContainer(node)\n );\n const focusScope = (0, import_react33.useRef)({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n (0, import_react33.useEffect)(() => {\n if (trapped) {\n let handleFocusIn = function(event) {\n if (focusScope.paused || !container1)\n return;\n const target = event.target;\n if (container1.contains(target))\n lastFocusedElementRef.current = target;\n else\n $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }, handleFocusOut = function(event) {\n if (focusScope.paused || !container1)\n return;\n if (!container1.contains(event.relatedTarget))\n $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n };\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n (0, import_react33.useEffect)(() => {\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement)\n $d3863c46a17e8a28$var$focus(container1);\n }\n }\n return () => {\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented)\n $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = (0, import_react33.useCallback)((event) => {\n if (!loop && !trapped)\n return;\n if (focusScope.paused)\n return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container)\n event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return \/* @__PURE__ *\/ (0, import_react33.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\nfunction $d3863c46a17e8a28$var$focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n $d3863c46a17e8a28$var$focus(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement)\n return;\n }\n}\nfunction $d3863c46a17e8a28$var$getTabbableEdges(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);\n const first = $d3863c46a17e8a28$var$findVisible(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction $d3863c46a17e8a28$var$getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode())\n nodes.push(walker.currentNode);\n return nodes;\n}\nfunction $d3863c46a17e8a28$var$findVisible(elements, container) {\n for (const element of elements) {\n if (!$d3863c46a17e8a28$var$isHidden(element, {\n upTo: container\n }))\n return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\")\n return true;\n while (node) {\n if (upTo !== void 0 && node === upTo)\n return false;\n if (getComputedStyle(node).display === \"none\")\n return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction $d3863c46a17e8a28$var$focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select)\n element.select();\n }\n}\nvar $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope)\n activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove(array2, item) {\n const updatedArray = [\n ...array2\n ];\n const index3 = updatedArray.indexOf(item);\n if (index3 !== -1)\n updatedArray.splice(index3, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks(items) {\n return items.filter(\n (item) => item.tagName !== \"A\"\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-roving-focus\/dist\/index.module.js\nvar import_react34 = require(\"react\");\nvar $d7bdfb9eb0fdf311$var$ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar $d7bdfb9eb0fdf311$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar $d7bdfb9eb0fdf311$var$GROUP_NAME = \"RovingFocusGroup\";\nvar [$d7bdfb9eb0fdf311$var$Collection, $d7bdfb9eb0fdf311$var$useCollection, $d7bdfb9eb0fdf311$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($d7bdfb9eb0fdf311$var$GROUP_NAME);\nvar [$d7bdfb9eb0fdf311$var$createRovingFocusGroupContext, $d7bdfb9eb0fdf311$export$c7109489551a4f4] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($d7bdfb9eb0fdf311$var$GROUP_NAME, [\n $d7bdfb9eb0fdf311$var$createCollectionScope\n]);\nvar [$d7bdfb9eb0fdf311$var$RovingFocusProvider, $d7bdfb9eb0fdf311$var$useRovingFocusContext] = $d7bdfb9eb0fdf311$var$createRovingFocusGroupContext($d7bdfb9eb0fdf311$var$GROUP_NAME);\nvar $d7bdfb9eb0fdf311$export$8699f7c8af148338 = \/* @__PURE__ *\/ (0, import_react34.forwardRef)((props, forwardedRef) => {\n return \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$Collection.Provider, {\n scope: props.__scopeRovingFocusGroup\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$Collection.Slot, {\n scope: props.__scopeRovingFocusGroup\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$RovingFocusGroupImpl, _extends2({}, props, {\n ref: forwardedRef\n }))));\n});\nvar $d7bdfb9eb0fdf311$var$RovingFocusGroupImpl = \/* @__PURE__ *\/ (0, import_react34.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeRovingFocusGroup, orientation, loop = false, dir, currentTabStopId: currentTabStopIdProp, defaultCurrentTabStopId, onCurrentTabStopIdChange, onEntryFocus } = _a3, groupProps = __objRest(_a3, [\"__scopeRovingFocusGroup\", \"orientation\", \"loop\", \"dir\", \"currentTabStopId\", \"defaultCurrentTabStopId\", \"onCurrentTabStopIdChange\", \"onEntryFocus\"]);\n const ref = (0, import_react34.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = (0, import_react34.useState)(false);\n const handleEntryFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onEntryFocus);\n const getItems = $d7bdfb9eb0fdf311$var$useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = (0, import_react34.useRef)(false);\n const [focusableItemsCount, setFocusableItemsCount] = (0, import_react34.useState)(0);\n (0, import_react34.useEffect)(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, handleEntryFocus);\n }\n }, [\n handleEntryFocus\n ]);\n return \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$RovingFocusProvider, {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: (0, import_react34.useCallback)(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [\n setCurrentTabStopId\n ]\n ),\n onItemShiftTab: (0, import_react34.useCallback)(\n () => setIsTabbingBackOut(true),\n []\n ),\n onFocusableItemAdd: (0, import_react34.useCallback)(\n () => setFocusableItemsCount(\n (prevCount) => prevCount + 1\n ),\n []\n ),\n onFocusableItemRemove: (0, import_react34.useCallback)(\n () => setFocusableItemsCount(\n (prevCount) => prevCount - 1\n ),\n []\n )\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation\n }, groupProps, {\n ref: composedRefs,\n style: __spreadValues({\n outline: \"none\"\n }, props.style),\n onMouseDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent($d7bdfb9eb0fdf311$var$ENTRY_FOCUS, $d7bdfb9eb0fdf311$var$EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter(\n (item) => item.focusable\n );\n const activeItem = items.find(\n (item) => item.active\n );\n const currentItem = items.find(\n (item) => item.id === currentTabStopId\n );\n const candidateItems = [\n activeItem,\n currentItem,\n ...items\n ].filter(Boolean);\n const candidateNodes = candidateItems.map(\n (item) => item.ref.current\n );\n $d7bdfb9eb0fdf311$var$focusFirst(candidateNodes);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onBlur,\n () => setIsTabbingBackOut(false)\n )\n })));\n});\nvar $d7bdfb9eb0fdf311$var$ITEM_NAME = \"RovingFocusGroupItem\";\nvar $d7bdfb9eb0fdf311$export$ab9df7c53fe8454 = \/* @__PURE__ *\/ (0, import_react34.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeRovingFocusGroup, focusable = true, active = false } = _a3, itemProps = __objRest(_a3, [\"__scopeRovingFocusGroup\", \"focusable\", \"active\"]);\n const id3 = $1746a345f3d73bb7$export$f680877a34711e37();\n const context = $d7bdfb9eb0fdf311$var$useRovingFocusContext($d7bdfb9eb0fdf311$var$ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id3;\n const getItems = $d7bdfb9eb0fdf311$var$useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n (0, import_react34.useEffect)(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [\n focusable,\n onFocusableItemAdd,\n onFocusableItemRemove\n ]);\n return \/* @__PURE__ *\/ (0, import_react34.createElement)($d7bdfb9eb0fdf311$var$Collection.ItemSlot, {\n scope: __scopeRovingFocusGroup,\n id: id3,\n focusable,\n active\n }, \/* @__PURE__ *\/ (0, import_react34.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation\n }, itemProps, {\n ref: forwardedRef,\n onMouseDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onMouseDown, (event) => {\n if (!focusable)\n event.preventDefault();\n else\n context.onItemFocus(id3);\n }),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocus,\n () => context.onItemFocus(id3)\n ),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget)\n return;\n const focusIntent = $d7bdfb9eb0fdf311$var$getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n event.preventDefault();\n const items = getItems().filter(\n (item) => item.focusable\n );\n let candidateNodes = items.map(\n (item) => item.ref.current\n );\n if (focusIntent === \"last\")\n candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\")\n candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? $d7bdfb9eb0fdf311$var$wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(\n () => $d7bdfb9eb0fdf311$var$focusFirst(candidateNodes)\n );\n }\n })\n })));\n});\nvar $d7bdfb9eb0fdf311$var$MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction $d7bdfb9eb0fdf311$var$getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\")\n return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction $d7bdfb9eb0fdf311$var$getFocusIntent(event, orientation, dir) {\n const key = $d7bdfb9eb0fdf311$var$getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(key))\n return void 0;\n if (orientation === \"horizontal\" && [\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(key))\n return void 0;\n return $d7bdfb9eb0fdf311$var$MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction $d7bdfb9eb0fdf311$var$focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n }\n}\nfunction $d7bdfb9eb0fdf311$var$wrapArray(array2, startIndex) {\n return array2.map(\n (_2, index3) => array2[(startIndex + index3) % array2.length]\n );\n}\nvar $d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9 = $d7bdfb9eb0fdf311$export$8699f7c8af148338;\nvar $d7bdfb9eb0fdf311$export$6d08773d2e66f8f2 = $d7bdfb9eb0fdf311$export$ab9df7c53fe8454;\n\n\/\/ ..\/..\/node_modules\/aria-hidden\/dist\/es2015\/index.js\nvar getDefaultParent = function(originalTarget) {\n if (typeof document === \"undefined\") {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = \/* @__PURE__ *\/ new WeakMap();\nvar uncontrolledNodes = \/* @__PURE__ *\/ new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar hideOthers = function(originalTarget, parentNode, markerName) {\n if (parentNode === void 0) {\n parentNode = getDefaultParent(originalTarget);\n }\n if (markerName === void 0) {\n markerName = \"data-aria-hidden\";\n }\n var targets = Array.isArray(originalTarget) ? originalTarget : [originalTarget];\n if (!markerMap[markerName]) {\n markerMap[markerName] = \/* @__PURE__ *\/ new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = \/* @__PURE__ *\/ new Set();\n var keep = function(el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function(parent) {\n if (!parent || targets.indexOf(parent) >= 0) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function(node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n var attr = node.getAttribute(\"aria-hidden\");\n var alreadyHidden = attr !== null && attr !== \"false\";\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, \"true\");\n }\n if (!alreadyHidden) {\n node.setAttribute(\"aria-hidden\", \"true\");\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function() {\n hiddenNodes.forEach(function(node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(\"aria-hidden\");\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n counterMap = \/* @__PURE__ *\/ new WeakMap();\n counterMap = \/* @__PURE__ *\/ new WeakMap();\n uncontrolledNodes = \/* @__PURE__ *\/ new WeakMap();\n markerMap = {};\n }\n };\n};\n\n\/\/ ..\/..\/node_modules\/tslib\/modules\/index.js\nvar import_tslib = __toESM(require_tslib(), 1);\nvar {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __exportStar,\n __createBinding,\n __values: __values2,\n __read: __read2,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn\n} = import_tslib.default;\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/Combination.js\nvar React40 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/UI.js\nvar React36 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/constants.js\nvar zeroRightClassName = \"right-scroll-bar-position\";\nvar fullWidthClassName = \"width-before-scroll-bar\";\nvar noScrollbarsClassName = \"with-scroll-bars-hidden\";\nvar removedBarSizeVariable = \"--removed-body-scroll-bar-size\";\n\n\/\/ ..\/..\/node_modules\/use-callback-ref\/dist\/es2015\/assignRef.js\nfunction assignRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n\n\/\/ ..\/..\/node_modules\/use-callback-ref\/dist\/es2015\/useRef.js\nvar import_react35 = require(\"react\");\nfunction useCallbackRef(initialValue, callback) {\n var ref = (0, import_react35.useState)(function() {\n return {\n value: initialValue,\n callback,\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n }\n }\n };\n })[0];\n ref.callback = callback;\n return ref.facade;\n}\n\n\/\/ ..\/..\/node_modules\/use-callback-ref\/dist\/es2015\/useMergeRef.js\nfunction useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function(newValue) {\n return refs.forEach(function(ref) {\n return assignRef(ref, newValue);\n });\n });\n}\n\n\/\/ ..\/..\/node_modules\/use-sidecar\/dist\/es2015\/medium.js\nfunction ItoI(a5) {\n return a5;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function() {\n if (assigned) {\n throw new Error(\"Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.\");\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function(data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function() {\n buffer = buffer.filter(function(x4) {\n return x4 !== item;\n });\n };\n },\n assignSyncMedium: function(cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function(x4) {\n return cb(x4);\n },\n filter: function() {\n return buffer;\n }\n };\n },\n assignMedium: function(cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function() {\n var cbs2 = pendingQueue;\n pendingQueue = [];\n cbs2.forEach(cb);\n };\n var cycle = function() {\n return Promise.resolve().then(executeQueue);\n };\n cycle();\n buffer = {\n push: function(x4) {\n pendingQueue.push(x4);\n cycle();\n },\n filter: function(filter2) {\n pendingQueue = pendingQueue.filter(filter2);\n return buffer;\n }\n };\n }\n };\n return medium;\n}\nfunction createSidecarMedium(options) {\n if (options === void 0) {\n options = {};\n }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n\n\/\/ ..\/..\/node_modules\/use-sidecar\/dist\/es2015\/exports.js\nvar React35 = __toESM(require(\"react\"));\nvar SideCar = function(_a3) {\n var sideCar = _a3.sideCar, rest = __rest(_a3, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error(\"Sidecar: please provide `sideCar` property to import the right car\");\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error(\"Sidecar medium not found\");\n }\n return React35.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nfunction exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/medium.js\nvar effectCar = createSidecarMedium();\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/UI.js\nvar nothing = function() {\n return;\n};\nvar RemoveScroll = React36.forwardRef(function(props, parentRef) {\n var ref = React36.useRef(null);\n var _a3 = React36.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing\n }), callbacks = _a3[0], setCallbacks = _a3[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container3 = _b === void 0 ? \"div\" : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar2 = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return React36.createElement(\n React36.Fragment,\n null,\n enabled && React36.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref }),\n forwardProps ? React36.cloneElement(React36.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React36.createElement(Container3, __assign({}, containerProps, { className, ref: containerRef }), children)\n );\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/SideEffect.js\nvar React39 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/component.js\nvar React38 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/hook.js\nvar React37 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/get-nonce\/dist\/es2015\/index.js\nvar currentNonce;\nvar getNonce = function() {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== \"undefined\") {\n return __webpack_nonce__;\n }\n return void 0;\n};\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/singleton.js\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement(\"style\");\n tag.type = \"text\/css\";\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute(\"nonce\", nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css2) {\n if (tag.styleSheet) {\n tag.styleSheet.cssText = css2;\n } else {\n tag.appendChild(document.createTextNode(css2));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n head.appendChild(tag);\n}\nvar stylesheetSingleton = function() {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function(style) {\n if (counter == 0) {\n if (stylesheet = makeStyleTag()) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function() {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n }\n };\n};\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/hook.js\nvar styleHookSingleton = function() {\n var sheet = stylesheetSingleton();\n return function(styles2, isDynamic) {\n React37.useEffect(function() {\n sheet.add(styles2);\n return function() {\n sheet.remove();\n };\n }, [styles2 && isDynamic]);\n };\n};\n\n\/\/ ..\/..\/node_modules\/react-style-singleton\/dist\/es2015\/component.js\nvar styleSingleton = function() {\n var useStyle2 = styleHookSingleton();\n var Sheet = function(_a3) {\n var styles2 = _a3.styles, dynamic = _a3.dynamic;\n useStyle2(styles2, dynamic);\n return null;\n };\n return Sheet;\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/utils.js\nvar zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0\n};\nvar parse3 = function(x4) {\n return parseInt(x4 || \"\", 10) || 0;\n};\nvar getOffset = function(gapMode) {\n var cs = window.getComputedStyle(document.body);\n if (false) {\n if (cs.overflowY === \"hidden\") {\n console.error(\"react-remove-scroll-bar: cannot calculate scrollbar size because it is removed (overflow:hidden on body\");\n }\n }\n var left = cs[gapMode === \"padding\" ? \"paddingLeft\" : \"marginLeft\"];\n var top = cs[gapMode === \"padding\" ? \"paddingTop\" : \"marginTop\"];\n var right = cs[gapMode === \"padding\" ? \"paddingRight\" : \"marginRight\"];\n return [parse3(left), parse3(top), parse3(right)];\n};\nvar getGapWidth = function(gapMode) {\n if (gapMode === void 0) {\n gapMode = \"margin\";\n }\n if (typeof window === \"undefined\") {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])\n };\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll-bar\/dist\/es2015\/component.js\nvar Style = styleSingleton();\nvar getStyles = function(_a3, allowRelative, gapMode, important) {\n var left = _a3.left, top = _a3.top, right = _a3.right, gap = _a3.gap;\n if (gapMode === void 0) {\n gapMode = \"margin\";\n }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === \"margin\" && \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === \"padding\" && \"padding-right: \".concat(gap, \"px \").concat(important, \";\")\n ].filter(Boolean).join(\"\"), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar RemoveScrollBar = function(props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a3 = props.gapMode, gapMode = _a3 === void 0 ? \"margin\" : _a3;\n var gap = React38.useMemo(function() {\n return getGapWidth(gapMode);\n }, [gapMode]);\n return React38.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? \"!important\" : \"\") });\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/aggresiveCapture.js\nvar passiveSupported = false;\nif (typeof window !== \"undefined\") {\n try {\n options = Object.defineProperty({}, \"passive\", {\n get: function() {\n passiveSupported = true;\n return true;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n passiveSupported = false;\n }\n}\nvar options;\nvar nonPassive = passiveSupported ? { passive: false } : false;\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/handleScroll.js\nvar alwaysContainsScroll = function(node) {\n return node.tagName === \"TEXTAREA\";\n};\nvar elementCanBeScrolled = function(node, overflow) {\n var styles2 = window.getComputedStyle(node);\n return styles2[overflow] !== \"hidden\" && !(styles2.overflowY === styles2.overflowX && !alwaysContainsScroll(node) && styles2[overflow] === \"visible\");\n};\nvar elementCouldBeVScrolled = function(node) {\n return elementCanBeScrolled(node, \"overflowY\");\n};\nvar elementCouldBeHScrolled = function(node) {\n return elementCanBeScrolled(node, \"overflowX\");\n};\nvar locationCouldBeScrolled = function(axis, node) {\n var current = node;\n do {\n if (typeof ShadowRoot !== \"undefined\" && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a3 = getScrollVariables(axis, current), s4 = _a3[1], d4 = _a3[2];\n if (s4 > d4) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function(_a3) {\n var scrollTop = _a3.scrollTop, scrollHeight = _a3.scrollHeight, clientHeight = _a3.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight\n ];\n};\nvar getHScrollVariables = function(_a3) {\n var scrollLeft = _a3.scrollLeft, scrollWidth = _a3.scrollWidth, clientWidth = _a3.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth\n ];\n};\nvar elementCouldBeScrolled = function(axis, node) {\n return axis === \"v\" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function(axis, node) {\n return axis === \"v\" ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function(axis, direction) {\n return axis === \"h\" && direction === \"rtl\" ? -1 : 1;\n};\nvar handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a3 = getScrollVariables(axis, target), position = _a3[0], scroll_1 = _a3[1], capacity = _a3[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (!targetInLock && target !== document.body || targetInLock && (endTarget.contains(target) || endTarget === target));\n if (isDeltaPositive && (noOverscroll && availableScroll === 0 || !noOverscroll && delta > availableScroll)) {\n shouldCancelScroll = true;\n } else if (!isDeltaPositive && (noOverscroll && availableScrollTop === 0 || !noOverscroll && -delta > availableScrollTop)) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/SideEffect.js\nvar getTouchXY = function(event) {\n return \"changedTouches\" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nvar getDeltaXY = function(event) {\n return [event.deltaX, event.deltaY];\n};\nvar extractRef = function(ref) {\n return ref && \"current\" in ref ? ref.current : ref;\n};\nvar deltaCompare = function(x4, y4) {\n return x4[0] === y4[0] && x4[1] === y4[1];\n};\nvar generateStyle = function(id3) {\n return \"\\n .block-interactivity-\".concat(id3, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id3, \" {pointer-events: all;}\\n\");\n};\nvar idCounter = 0;\nvar lockStack = [];\nfunction RemoveScrollSideCar(props) {\n var shouldPreventQueue = React39.useRef([]);\n var touchStartRef = React39.useRef([0, 0]);\n var activeAxis = React39.useRef();\n var id3 = React39.useState(idCounter++)[0];\n var Style2 = React39.useState(function() {\n return styleSingleton();\n })[0];\n var lastProps = React39.useRef(props);\n React39.useEffect(function() {\n lastProps.current = props;\n }, [props]);\n React39.useEffect(function() {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id3));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function(el) {\n return el.classList.add(\"allow-interactivity-\".concat(id3));\n });\n return function() {\n document.body.classList.remove(\"block-interactivity-\".concat(id3));\n allow_1.forEach(function(el) {\n return el.classList.remove(\"allow-interactivity-\".concat(id3));\n });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React39.useCallback(function(event, parent) {\n if (\"touches\" in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = \"deltaX\" in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = \"deltaY\" in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? \"h\" : \"v\";\n if (\"touches\" in event && moveDirection === \"h\" && target.type === \"range\") {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n } else {\n currentAxis = moveDirection === \"v\" ? \"h\" : \"v\";\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && \"changedTouches\" in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === \"h\" ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React39.useCallback(function(_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) {\n return;\n }\n var delta = \"deltaY\" in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function(e2) {\n return e2.name === event.type && e2.target === event.target && deltaCompare(e2.delta, delta);\n })[0];\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) {\n return node.contains(event.target);\n });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React39.useCallback(function(name, delta, target, should) {\n var event = { name, delta, target, should };\n shouldPreventQueue.current.push(event);\n setTimeout(function() {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e2) {\n return e2 !== event;\n });\n }, 1);\n }, []);\n var scrollTouchStart = React39.useCallback(function(event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = void 0;\n }, []);\n var scrollWheel = React39.useCallback(function(event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React39.useCallback(function(event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React39.useEffect(function() {\n lockStack.push(Style2);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove\n });\n document.addEventListener(\"wheel\", shouldPrevent, nonPassive);\n document.addEventListener(\"touchmove\", shouldPrevent, nonPassive);\n document.addEventListener(\"touchstart\", scrollTouchStart, nonPassive);\n return function() {\n lockStack = lockStack.filter(function(inst) {\n return inst !== Style2;\n });\n document.removeEventListener(\"wheel\", shouldPrevent, nonPassive);\n document.removeEventListener(\"touchmove\", shouldPrevent, nonPassive);\n document.removeEventListener(\"touchstart\", scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return React39.createElement(\n React39.Fragment,\n null,\n inert ? React39.createElement(Style2, { styles: generateStyle(id3) }) : null,\n removeScrollBar ? React39.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null\n );\n}\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/sidecar.js\nvar sidecar_default = exportSidecar(effectCar, RemoveScrollSideCar);\n\n\/\/ ..\/..\/node_modules\/react-remove-scroll\/dist\/es2015\/Combination.js\nvar ReactRemoveScroll = React40.forwardRef(function(props, ref) {\n return React40.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: sidecar_default }));\n});\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nvar Combination_default = ReactRemoveScroll;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-menu\/dist\/index.module.js\nvar $6cc32821e9371a1c$var$SELECTION_KEYS = [\n \"Enter\",\n \" \"\n];\nvar $6cc32821e9371a1c$var$FIRST_KEYS = [\n \"ArrowDown\",\n \"PageUp\",\n \"Home\"\n];\nvar $6cc32821e9371a1c$var$LAST_KEYS = [\n \"ArrowUp\",\n \"PageDown\",\n \"End\"\n];\nvar $6cc32821e9371a1c$var$FIRST_LAST_KEYS = [\n ...$6cc32821e9371a1c$var$FIRST_KEYS,\n ...$6cc32821e9371a1c$var$LAST_KEYS\n];\nvar $6cc32821e9371a1c$var$SUB_OPEN_KEYS = {\n ltr: [\n ...$6cc32821e9371a1c$var$SELECTION_KEYS,\n \"ArrowRight\"\n ],\n rtl: [\n ...$6cc32821e9371a1c$var$SELECTION_KEYS,\n \"ArrowLeft\"\n ]\n};\nvar $6cc32821e9371a1c$var$MENU_NAME = \"Menu\";\nvar [$6cc32821e9371a1c$var$Collection, $6cc32821e9371a1c$var$useCollection, $6cc32821e9371a1c$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($6cc32821e9371a1c$var$MENU_NAME);\nvar [$6cc32821e9371a1c$var$createMenuContext, $6cc32821e9371a1c$export$4027731b685e72eb] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($6cc32821e9371a1c$var$MENU_NAME, [\n $6cc32821e9371a1c$var$createCollectionScope,\n $cf1ac5d9fe0e8206$export$722aac194ae923,\n $d7bdfb9eb0fdf311$export$c7109489551a4f4\n]);\nvar $6cc32821e9371a1c$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();\nvar $6cc32821e9371a1c$var$useRovingFocusGroupScope = $d7bdfb9eb0fdf311$export$c7109489551a4f4();\nvar [$6cc32821e9371a1c$var$MenuProvider, $6cc32821e9371a1c$var$useMenuContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$MENU_NAME);\nvar [$6cc32821e9371a1c$var$MenuRootProvider, $6cc32821e9371a1c$var$useMenuRootContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$MENU_NAME);\nvar $6cc32821e9371a1c$export$d9b273488cd8ce6f = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);\n const [content, setContent] = (0, import_react36.useState)(null);\n const isUsingKeyboardRef = (0, import_react36.useRef)(false);\n const handleOpenChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onOpenChange);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n (0, import_react36.useEffect)(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, {\n capture: true,\n once: true\n });\n document.addEventListener(\"pointermove\", handlePointer, {\n capture: true,\n once: true\n });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n document.removeEventListener(\"pointerdown\", handlePointer, {\n capture: true\n });\n document.removeEventListener(\"pointermove\", handlePointer, {\n capture: true\n });\n };\n }, []);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuProvider, {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuRootProvider, {\n scope: __scopeMenu,\n onClose: (0, import_react36.useCallback)(\n () => handleOpenChange(false),\n [\n handleOpenChange\n ]\n ),\n isUsingKeyboardRef,\n dir: direction,\n modal\n }, children)));\n};\nvar $6cc32821e9371a1c$export$9fa5ebd18bee4d43 = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeMenu } = _a3, anchorProps = __objRest(_a3, [\"__scopeMenu\"]);\n const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe7, _extends2({}, popperScope, anchorProps, {\n ref: forwardedRef\n }));\n});\nvar $6cc32821e9371a1c$var$PORTAL_NAME = \"MenuPortal\";\nvar [$6cc32821e9371a1c$var$PortalProvider, $6cc32821e9371a1c$var$usePortalContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$PORTAL_NAME, {\n forceMount: void 0\n});\nvar $6cc32821e9371a1c$var$CONTENT_NAME = \"MenuContent\";\nvar [$6cc32821e9371a1c$var$MenuContentProvider, $6cc32821e9371a1c$var$useMenuContentContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$CONTENT_NAME);\nvar $6cc32821e9371a1c$export$479f0f2f71193efe = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const portalContext = $6cc32821e9371a1c$var$usePortalContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n const _a3 = props, { forceMount = portalContext.forceMount } = _a3, contentProps = __objRest(_a3, [\"forceMount\"]);\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$Collection.Provider, {\n scope: props.__scopeMenu\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$Collection.Slot, {\n scope: props.__scopeMenu\n }, rootContext.modal ? \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuRootContentModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })) : \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuRootContentNonModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })))));\n});\nvar $6cc32821e9371a1c$var$MenuRootContentModal = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n const ref = (0, import_react36.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n (0, import_react36.useEffect)(() => {\n const content = ref.current;\n if (content)\n return hideOthers(content);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuContentImpl, _extends2({}, props, {\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n {\n checkForDefaultPrevented: false\n }\n ),\n onDismiss: () => context.onOpenChange(false)\n }));\n});\nvar $6cc32821e9371a1c$var$MenuRootContentNonModal = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuContentImpl, _extends2({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }));\n});\nvar $6cc32821e9371a1c$var$MenuContentImpl = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeMenu, loop = false, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, disableOutsideScroll } = _a3, contentProps = __objRest(_a3, [\"__scopeMenu\", \"loop\", \"trapFocus\", \"onOpenAutoFocus\", \"onCloseAutoFocus\", \"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\", \"disableOutsideScroll\"]);\n const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, __scopeMenu);\n const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, __scopeMenu);\n const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = $6cc32821e9371a1c$var$useRovingFocusGroupScope(__scopeMenu);\n const getItems = $6cc32821e9371a1c$var$useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = (0, import_react36.useState)(null);\n const contentRef = (0, import_react36.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentRef, context.onContentChange);\n const timerRef = (0, import_react36.useRef)(0);\n const searchRef = (0, import_react36.useRef)(\"\");\n const pointerGraceTimerRef = (0, import_react36.useRef)(0);\n const pointerGraceIntentRef = (0, import_react36.useRef)(null);\n const pointerDirRef = (0, import_react36.useRef)(\"right\");\n const lastPointerXRef = (0, import_react36.useRef)(0);\n const ScrollLockWrapper = disableOutsideScroll ? Combination_default : import_react36.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? {\n as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,\n allowPinchZoom: true\n } : void 0;\n const handleTypeaheadSearch = (key) => {\n var _items$find, _items$find2;\n const search = searchRef.current + key;\n const items = getItems().filter(\n (item) => !item.disabled\n );\n const currentItem = document.activeElement;\n const currentMatch = (_items$find = items.find(\n (item) => item.ref.current === currentItem\n )) === null || _items$find === void 0 ? void 0 : _items$find.textValue;\n const values = items.map(\n (item) => item.textValue\n );\n const nextMatch = $6cc32821e9371a1c$var$getNextMatch(values, search, currentMatch);\n const newItem = (_items$find2 = items.find(\n (item) => item.textValue === nextMatch\n )) === null || _items$find2 === void 0 ? void 0 : _items$find2.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\")\n timerRef.current = window.setTimeout(\n () => updateSearch(\"\"),\n 1e3\n );\n })(search);\n if (newItem)\n setTimeout(\n () => newItem.focus()\n );\n };\n (0, import_react36.useEffect)(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n const isPointerMovingToSubmenu = (0, import_react36.useCallback)((event) => {\n var _pointerGraceIntentRe, _pointerGraceIntentRe2;\n const isMovingTowards = pointerDirRef.current === ((_pointerGraceIntentRe = pointerGraceIntentRef.current) === null || _pointerGraceIntentRe === void 0 ? void 0 : _pointerGraceIntentRe.side);\n return isMovingTowards && $6cc32821e9371a1c$var$isPointerInGraceArea(event, (_pointerGraceIntentRe2 = pointerGraceIntentRef.current) === null || _pointerGraceIntentRe2 === void 0 ? void 0 : _pointerGraceIntentRe2.area);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuContentProvider, {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: (0, import_react36.useCallback)((event) => {\n if (isPointerMovingToSubmenu(event))\n event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n onItemLeave: (0, import_react36.useCallback)((event) => {\n var _contentRef$current;\n if (isPointerMovingToSubmenu(event))\n return;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 || _contentRef$current.focus();\n setCurrentItemId(null);\n }, [\n isPointerMovingToSubmenu\n ]),\n onTriggerLeave: (0, import_react36.useCallback)((event) => {\n if (isPointerMovingToSubmenu(event))\n event.preventDefault();\n }, [\n isPointerMovingToSubmenu\n ]),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: (0, import_react36.useCallback)((intent) => {\n pointerGraceIntentRef.current = intent;\n }, [])\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)(ScrollLockWrapper, scrollLockWrapperProps, \/* @__PURE__ *\/ (0, import_react36.createElement)($d3863c46a17e8a28$export$20e40289641fbbb6, {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(onOpenAutoFocus, (event) => {\n var _contentRef$current2;\n event.preventDefault();\n (_contentRef$current2 = contentRef.current) === null || _contentRef$current2 === void 0 || _contentRef$current2.focus();\n }),\n onUnmountAutoFocus: onCloseAutoFocus\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: (event) => {\n if (!rootContext.isUsingKeyboardRef.current)\n event.preventDefault();\n }\n }), \/* @__PURE__ *\/ (0, import_react36.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2, _extends2({\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": $6cc32821e9371a1c$var$getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir\n }, popperScope, contentProps, {\n ref: composedRefs,\n style: __spreadValues({\n outline: \"none\"\n }, contentProps.style),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\")\n event.preventDefault();\n if (!isModifierKey && isCharacterKey)\n handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content)\n return;\n if (!$6cc32821e9371a1c$var$FIRST_LAST_KEYS.includes(event.key))\n return;\n event.preventDefault();\n const items = getItems().filter(\n (item) => !item.disabled\n );\n const candidateNodes = items.map(\n (item) => item.ref.current\n );\n if ($6cc32821e9371a1c$var$LAST_KEYS.includes(event.key))\n candidateNodes.reverse();\n $6cc32821e9371a1c$var$focusFirst(candidateNodes);\n }),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, $6cc32821e9371a1c$var$whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n }))\n })))))));\n});\nvar $6cc32821e9371a1c$var$ITEM_NAME = \"MenuItem\";\nvar $6cc32821e9371a1c$var$ITEM_SELECT = \"menu.itemSelect\";\nvar $6cc32821e9371a1c$export$2ce376c2cc3355c8 = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { disabled = false, onSelect } = _a3, itemProps = __objRest(_a3, [\"disabled\", \"onSelect\"]);\n const ref = (0, import_react36.useRef)(null);\n const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$ITEM_NAME, props.__scopeMenu);\n const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$ITEM_NAME, props.__scopeMenu);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const isPointerDownRef = (0, import_react36.useRef)(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent($6cc32821e9371a1c$var$ITEM_SELECT, {\n bubbles: true,\n cancelable: true\n });\n menuItem.addEventListener(\n $6cc32821e9371a1c$var$ITEM_SELECT,\n (event) => onSelect === null || onSelect === void 0 ? void 0 : onSelect(event),\n {\n once: true\n }\n );\n $8927f6f2acc4f386$export$6d1a0317bde7de7f(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented)\n isPointerDownRef.current = false;\n else\n rootContext.onClose();\n }\n };\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$MenuItemImpl, _extends2({}, itemProps, {\n ref: composedRefs,\n disabled,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, handleSelect),\n onPointerDown: (event) => {\n var _props$onPointerDown;\n (_props$onPointerDown = props.onPointerDown) === null || _props$onPointerDown === void 0 || _props$onPointerDown.call(props, event);\n isPointerDownRef.current = true;\n },\n onPointerUp: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerUp, (event) => {\n var _event$currentTarget;\n if (!isPointerDownRef.current)\n (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 || _event$currentTarget.click();\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \")\n return;\n if ($6cc32821e9371a1c$var$SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }));\n});\nvar $6cc32821e9371a1c$var$MenuItemImpl = \/* @__PURE__ *\/ (0, import_react36.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeMenu, disabled = false, textValue } = _a3, itemProps = __objRest(_a3, [\"__scopeMenu\", \"disabled\", \"textValue\"]);\n const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = $6cc32821e9371a1c$var$useRovingFocusGroupScope(__scopeMenu);\n const ref = (0, import_react36.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const [isFocused, setIsFocused] = (0, import_react36.useState)(false);\n const [textContent, setTextContent] = (0, import_react36.useState)(\"\");\n (0, import_react36.useEffect)(() => {\n const menuItem = ref.current;\n if (menuItem) {\n var _menuItem$textContent;\n setTextContent(((_menuItem$textContent = menuItem.textContent) !== null && _menuItem$textContent !== void 0 ? _menuItem$textContent : \"\").trim());\n }\n }, [\n itemProps.children\n ]);\n return \/* @__PURE__ *\/ (0, import_react36.createElement)($6cc32821e9371a1c$var$Collection.ItemSlot, {\n scope: __scopeMenu,\n disabled,\n textValue: textValue !== null && textValue !== void 0 ? textValue : textContent\n }, \/* @__PURE__ *\/ (0, import_react36.createElement)($d7bdfb9eb0fdf311$export$6d08773d2e66f8f2, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n focusable: !disabled\n }), \/* @__PURE__ *\/ (0, import_react36.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0\n }, itemProps, {\n ref: composedRefs,\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, $6cc32821e9371a1c$var$whenMouse((event) => {\n if (disabled)\n contentContext.onItemLeave(event);\n else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus();\n }\n }\n })),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerLeave, $6cc32821e9371a1c$var$whenMouse(\n (event) => contentContext.onItemLeave(event)\n )),\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocus,\n () => setIsFocused(true)\n ),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onBlur,\n () => setIsFocused(false)\n )\n }))));\n});\nvar $6cc32821e9371a1c$var$RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [$6cc32821e9371a1c$var$RadioGroupProvider, $6cc32821e9371a1c$var$useRadioGroupContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$RADIO_GROUP_NAME, {\n value: void 0,\n onValueChange: () => {\n }\n});\nvar $6cc32821e9371a1c$var$ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [$6cc32821e9371a1c$var$ItemIndicatorProvider, $6cc32821e9371a1c$var$useItemIndicatorContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$ITEM_INDICATOR_NAME, {\n checked: false\n});\nvar $6cc32821e9371a1c$var$SUB_NAME = \"MenuSub\";\nvar [$6cc32821e9371a1c$var$MenuSubProvider, $6cc32821e9371a1c$var$useMenuSubContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$SUB_NAME);\nfunction $6cc32821e9371a1c$var$getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction $6cc32821e9371a1c$var$focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n }\n}\nfunction $6cc32821e9371a1c$var$wrapArray(array2, startIndex) {\n return array2.map(\n (_2, index3) => array2[(startIndex + index3) % array2.length]\n );\n}\nfunction $6cc32821e9371a1c$var$getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every(\n (char) => char === search[0]\n );\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = $6cc32821e9371a1c$var$wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch)\n wrappedValues = wrappedValues.filter(\n (v4) => v4 !== currentMatch\n );\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction $6cc32821e9371a1c$var$isPointInPolygon(point, polygon) {\n const { x: x4, y: y4 } = point;\n let inside = false;\n for (let i4 = 0, j2 = polygon.length - 1; i4 < polygon.length; j2 = i4++) {\n const xi = polygon[i4].x;\n const yi = polygon[i4].y;\n const xj = polygon[j2].x;\n const yj = polygon[j2].y;\n const intersect = yi > y4 !== yj > y4 && x4 < (xj - xi) * (y4 - yi) \/ (yj - yi) + xi;\n if (intersect)\n inside = !inside;\n }\n return inside;\n}\nfunction $6cc32821e9371a1c$var$isPointerInGraceArea(event, area) {\n if (!area)\n return false;\n const cursorPos = {\n x: event.clientX,\n y: event.clientY\n };\n return $6cc32821e9371a1c$var$isPointInPolygon(cursorPos, area);\n}\nfunction $6cc32821e9371a1c$var$whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar $6cc32821e9371a1c$export$be92b6f5f03c0fe9 = $6cc32821e9371a1c$export$d9b273488cd8ce6f;\nvar $6cc32821e9371a1c$export$b688253958b8dfe7 = $6cc32821e9371a1c$export$9fa5ebd18bee4d43;\nvar $6cc32821e9371a1c$export$7c6e2c02157bb7d2 = $6cc32821e9371a1c$export$479f0f2f71193efe;\nvar $6cc32821e9371a1c$export$6d08773d2e66f8f2 = $6cc32821e9371a1c$export$2ce376c2cc3355c8;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-dropdown-menu\/dist\/index.module.js\nvar $d08ef79370b62062$var$DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [$d08ef79370b62062$var$createDropdownMenuContext, $d08ef79370b62062$export$c0623cd925aeb687] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($d08ef79370b62062$var$DROPDOWN_MENU_NAME, [\n $6cc32821e9371a1c$export$4027731b685e72eb\n]);\nvar $d08ef79370b62062$var$useMenuScope = $6cc32821e9371a1c$export$4027731b685e72eb();\nvar [$d08ef79370b62062$var$DropdownMenuProvider, $d08ef79370b62062$var$useDropdownMenuContext] = $d08ef79370b62062$var$createDropdownMenuContext($d08ef79370b62062$var$DROPDOWN_MENU_NAME);\nvar $d08ef79370b62062$export$e44a253a59704894 = (props) => {\n const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n const triggerRef = (0, import_react37.useRef)(null);\n const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($d08ef79370b62062$var$DropdownMenuProvider, {\n scope: __scopeDropdownMenu,\n triggerId: $1746a345f3d73bb7$export$f680877a34711e37(),\n triggerRef,\n contentId: $1746a345f3d73bb7$export$f680877a34711e37(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: (0, import_react37.useCallback)(\n () => setOpen(\n (prevOpen) => !prevOpen\n ),\n [\n setOpen\n ]\n ),\n modal\n }, \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$be92b6f5f03c0fe9, _extends2({}, menuScope, {\n open,\n onOpenChange: setOpen,\n dir,\n modal\n }), children));\n};\nvar $d08ef79370b62062$var$TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar $d08ef79370b62062$export$d2469213b3befba9 = \/* @__PURE__ *\/ (0, import_react37.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeDropdownMenu, disabled = false } = _a3, triggerProps = __objRest(_a3, [\"__scopeDropdownMenu\", \"disabled\"]);\n const context = $d08ef79370b62062$var$useDropdownMenuContext($d08ef79370b62062$var$TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$b688253958b8dfe7, _extends2({\n asChild: true\n }, menuScope), \/* @__PURE__ *\/ (0, import_react37.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled\n }, triggerProps, {\n ref: $6ed0406888f73fc4$export$43e446d32b3d21af(forwardedRef, context.triggerRef),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open)\n event.preventDefault();\n }\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n if (disabled)\n return;\n if ([\n \"Enter\",\n \" \"\n ].includes(event.key))\n context.onOpenToggle();\n if (event.key === \"ArrowDown\")\n context.onOpenChange(true);\n if ([\n \"Enter\",\n \" \",\n \"ArrowDown\"\n ].includes(event.key))\n event.preventDefault();\n })\n })));\n});\nvar $d08ef79370b62062$var$CONTENT_NAME = \"DropdownMenuContent\";\nvar $d08ef79370b62062$export$6e76d93a37c01248 = \/* @__PURE__ *\/ (0, import_react37.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeDropdownMenu } = _a3, contentProps = __objRest(_a3, [\"__scopeDropdownMenu\"]);\n const context = $d08ef79370b62062$var$useDropdownMenuContext($d08ef79370b62062$var$CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = (0, import_react37.useRef)(false);\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$7c6e2c02157bb7d2, _extends2({\n id: context.contentId,\n \"aria-labelledby\": context.triggerId\n }, menuScope, contentProps, {\n ref: forwardedRef,\n onCloseAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onCloseAutoFocus, (event) => {\n var _context$triggerRef$c;\n if (!hasInteractedOutsideRef.current)\n (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick)\n hasInteractedOutsideRef.current = true;\n }),\n style: __spreadProps(__spreadValues({}, props.style), {\n [\"--radix-dropdown-menu-content-transform-origin\"]: \"var(--radix-popper-transform-origin)\"\n })\n }));\n});\nvar $d08ef79370b62062$export$ed97964d1871885d = \/* @__PURE__ *\/ (0, import_react37.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeDropdownMenu } = _a3, itemProps = __objRest(_a3, [\"__scopeDropdownMenu\"]);\n const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);\n return \/* @__PURE__ *\/ (0, import_react37.createElement)($6cc32821e9371a1c$export$6d08773d2e66f8f2, _extends2({}, menuScope, itemProps, {\n ref: forwardedRef\n }));\n});\nvar $d08ef79370b62062$export$be92b6f5f03c0fe9 = $d08ef79370b62062$export$e44a253a59704894;\nvar $d08ef79370b62062$export$41fb9f06171c75f4 = $d08ef79370b62062$export$d2469213b3befba9;\nvar $d08ef79370b62062$export$7c6e2c02157bb7d2 = $d08ef79370b62062$export$6e76d93a37c01248;\nvar $d08ef79370b62062$export$6d08773d2e66f8f2 = $d08ef79370b62062$export$ed97964d1871885d;\n\n\/\/ src\/lib\/logseq-context.ts\nvar import_react38 = __toESM(require(\"react\"));\nvar LogseqContext = import_react38.default.createContext({});\n\n\/\/ src\/components\/KeyboardShortcut\/KeyboardShortcut.tsx\nvar React42 = __toESM(require(\"react\"));\nvar import_jsx_runtime37 = require(\"react\/jsx-runtime\");\nvar KeyboardShortcut = (_a3) => {\n var _b = _a3, {\n action: action2,\n shortcut,\n opts\n } = _b, props = __objRest(_b, [\n \"action\",\n \"shortcut\",\n \"opts\"\n ]);\n const { renderers } = React42.useContext(LogseqContext);\n const Shortcut = renderers == null ? void 0 : renderers.KeyboardShortcut;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime37.jsx)(\"div\", __spreadProps(__spreadValues({\n className: \"tl-menu-right-slot\"\n }, props), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime37.jsx)(Shortcut, {\n action: action2,\n shortcut,\n opts\n })\n }));\n};\n\n\/\/ src\/components\/ZoomMenu\/ZoomMenu.tsx\nvar React43 = require(\"react\");\nvar import_jsx_runtime38 = require(\"react\/jsx-runtime\");\nvar ZoomMenu = observer(function ZoomMenu2() {\n const app = useApp();\n const preventEvent = (e2) => {\n e2.preventDefault();\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$be92b6f5f03c0fe9, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)($d08ef79370b62062$export$41fb9f06171c75f4, {\n className: \"tl-button text-sm px-2 important\",\n id: \"tl-zoom\",\n children: (app.viewport.camera.zoom * 100).toFixed(0) + \"%\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$7c6e2c02157bb7d2, {\n onCloseAutoFocus: (e2) => e2.preventDefault(),\n className: \"tl-menu\",\n id: \"zoomPopup\",\n sideOffset: 12,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomToFit,\n children: [\n \"Zoom to drawing\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-to-fit\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomToSelection,\n disabled: app.selectedShapesArray.length === 0,\n children: [\n \"Zoom to fit selection\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-to-selection\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomIn,\n children: [\n \"Zoom in\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-in\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.zoomOut,\n children: [\n \"Zoom out\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-out\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsxs)($d08ef79370b62062$export$6d08773d2e66f8f2, {\n className: \"tl-menu-item\",\n onSelect: preventEvent,\n onClick: app.api.resetZoom,\n children: [\n \"Reset zoom\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime38.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/reset-zoom\"\n })\n ]\n })\n ]\n })\n ]\n });\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-separator\/dist\/index.module.js\nvar import_react40 = require(\"react\");\nvar $89eedd556c436f6a$var$DEFAULT_ORIENTATION = \"horizontal\";\nvar $89eedd556c436f6a$var$ORIENTATIONS = [\n \"horizontal\",\n \"vertical\"\n];\nvar $89eedd556c436f6a$export$1ff3c3f08ae963c0 = \/* @__PURE__ *\/ (0, import_react40.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { decorative, orientation: orientationProp = $89eedd556c436f6a$var$DEFAULT_ORIENTATION } = _a3, domProps = __objRest(_a3, [\"decorative\", \"orientation\"]);\n const orientation = $89eedd556c436f6a$var$isValidOrientation(orientationProp) ? orientationProp : $89eedd556c436f6a$var$DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? {\n role: \"none\"\n } : {\n \"aria-orientation\": ariaOrientation,\n role: \"separator\"\n };\n return \/* @__PURE__ *\/ (0, import_react40.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({\n \"data-orientation\": orientation\n }, semanticProps, domProps, {\n ref: forwardedRef\n }));\n});\n$89eedd556c436f6a$export$1ff3c3f08ae963c0.propTypes = {\n orientation(props, propName, componentName) {\n const propValue = props[propName];\n const strVal = String(propValue);\n if (propValue && !$89eedd556c436f6a$var$isValidOrientation(propValue))\n return new Error($89eedd556c436f6a$var$getInvalidOrientationError(strVal, componentName));\n return null;\n }\n};\nfunction $89eedd556c436f6a$var$getInvalidOrientationError(value, componentName) {\n return `Invalid prop \\`orientation\\` of value \\`${value}\\` supplied to \\`${componentName}\\`, expected one of:\n - horizontal\n - vertical\n\nDefaulting to \\`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\\`.`;\n}\nfunction $89eedd556c436f6a$var$isValidOrientation(orientation) {\n return $89eedd556c436f6a$var$ORIENTATIONS.includes(orientation);\n}\nvar $89eedd556c436f6a$export$be92b6f5f03c0fe9 = $89eedd556c436f6a$export$1ff3c3f08ae963c0;\n\n\/\/ src\/components\/ActionBar\/ActionBar.tsx\nvar import_jsx_runtime39 = require(\"react\/jsx-runtime\");\nvar ActionBar = observer(function ActionBar2() {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = React44.useContext(LogseqContext);\n const undo = React44.useCallback(() => {\n app.api.undo();\n }, [app]);\n const redo = React44.useCallback(() => {\n app.api.redo();\n }, [app]);\n const zoomIn = React44.useCallback(() => {\n app.api.zoomIn();\n }, [app]);\n const zoomOut = React44.useCallback(() => {\n app.api.zoomOut();\n }, [app]);\n const toggleGrid = React44.useCallback(() => {\n app.api.toggleGrid();\n }, [app]);\n const toggleSnapToGrid = React44.useCallback(() => {\n app.api.toggleSnapToGrid();\n }, [app]);\n const togglePenMode = React44.useCallback(() => {\n app.api.togglePenMode();\n }, [app]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-action-bar\",\n \"data-html2canvas-ignore\": \"true\",\n children: [\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-toolbar tl-history-bar mr-2 mb-2\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/undo\"),\n onClick: undo,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"arrow-back-up\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/redo\"),\n onClick: redo,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"arrow-forward-up\"\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-toolbar tl-zoom-bar mr-2 mb-2\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/zoom-in\"),\n onClick: zoomIn,\n id: \"tl-zoom-in\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"plus\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(Button, {\n tooltip: t2(\"whiteboard\/zoom-out\"),\n onClick: zoomOut,\n id: \"tl-zoom-out\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"minus\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ZoomMenu, {})\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsxs)(\"div\", {\n className: \"tl-toolbar tl-grid-bar mr-2 mb-2\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/toggle-grid\"),\n className: \"tl-button\",\n pressed: app.settings.showGrid,\n id: \"tl-show-grid\",\n onPressedChange: toggleGrid,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: \"grid-dots\"\n })\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/snap-to-grid\"),\n className: \"tl-button\",\n pressed: app.settings.snapToGrid,\n id: \"tl-snap-to-grid\",\n onPressedChange: toggleSnapToGrid,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: app.settings.snapToGrid ? \"magnet\" : \"magnet-off\"\n })\n })\n ]\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(\"div\", {\n className: \"tl-toolbar tl-pen-mode-bar mb-2\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/toggle-pen-mode\"),\n className: \"tl-button\",\n pressed: app.settings.penMode,\n id: \"tl-toggle-pen-mode\",\n onPressedChange: togglePenMode,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime39.jsx)(TablerIcon, {\n name: app.settings.penMode ? \"pencil\" : \"pencil-off\"\n })\n })\n })\n ]\n });\n});\n\n\/\/ src\/components\/Devtools\/Devtools.tsx\nvar import_react43 = __toESM(require(\"react\"));\nvar import_react_dom6 = __toESM(require(\"react-dom\"));\nvar import_jsx_runtime40 = require(\"react\/jsx-runtime\");\nvar printPoint = (point) => {\n return `[${point.map((d4) => {\n var _a3;\n return (_a3 = d4 == null ? void 0 : d4.toFixed(2)) != null ? _a3 : \"-\";\n }).join(\", \")}]`;\n};\nvar DevTools = observer(() => {\n var _a3;\n const {\n viewport: {\n bounds,\n camera: { point, zoom }\n },\n inputs\n } = useRendererContext();\n const statusbarAnchorRef = import_react43.default.useRef();\n import_react43.default.useEffect(() => {\n const statusbarAnchor = document.getElementById(\"tl-statusbar-anchor\");\n statusbarAnchorRef.current = statusbarAnchor;\n }, []);\n const rendererStatusText = [\n [\"Z\", (_a3 = zoom == null ? void 0 : zoom.toFixed(2)) != null ? _a3 : \"null\"],\n [\"MP\", printPoint(inputs.currentPoint)],\n [\"MS\", printPoint(inputs.currentScreenPoint)],\n [\"VP\", printPoint(point)],\n [\"VBR\", printPoint([bounds.maxX, bounds.maxY])]\n ].map((p4) => p4.join(\"\")).join(\"|\");\n const rendererStatus = statusbarAnchorRef.current ? import_react_dom6.default.createPortal(\n \/* @__PURE__ *\/ (0, import_jsx_runtime40.jsx)(\"div\", {\n style: {\n flex: 1,\n display: \"flex\",\n alignItems: \"center\"\n },\n children: rendererStatusText\n }),\n statusbarAnchorRef.current\n ) : null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, {\n children: rendererStatus\n });\n});\n\n\/\/ src\/components\/PrimaryTools\/PrimaryTools.tsx\nvar React51 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/ToolButton\/ToolButton.tsx\nvar import_jsx_runtime41 = require(\"react\/jsx-runtime\");\nvar ToolButton = observer(\n (_a3) => {\n var _b = _a3, { id: id3, icon, tooltip, tooltipSide = \"left\", handleClick } = _b, props = __objRest(_b, [\"id\", \"icon\", \"tooltip\", \"tooltipSide\", \"handleClick\"]);\n var _a4;\n const app = useApp();\n const Tool = (_a4 = [...app.Tools, TLSelectTool, TLMoveTool]) == null ? void 0 : _a4.find((T4) => T4.id === id3);\n const shortcut = Tool == null ? void 0 : Tool[\"shortcut\"];\n const tooltipContent = shortcut && tooltip ? \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsxs)(\"div\", {\n className: \"flex\",\n children: [\n tooltip,\n \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsx)(KeyboardShortcut, {\n action: shortcut\n })\n ]\n }) : tooltip;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsx)(Button, __spreadProps(__spreadValues({}, props), {\n tooltipSide,\n tooltip: tooltipContent,\n \"data-tool\": id3,\n \"data-selected\": id3 === app.selectedTool.id,\n onClick: handleClick,\n children: typeof icon === \"string\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime41.jsx)(TablerIcon, {\n name: icon\n }) : icon\n }));\n }\n);\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-popover\/dist\/index.module.js\nvar import_react45 = require(\"react\");\nvar $cb5cc270b50c6fcd$var$POPOVER_NAME = \"Popover\";\nvar [$cb5cc270b50c6fcd$var$createPopoverContext, $cb5cc270b50c6fcd$export$c8393c9e73286932] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cb5cc270b50c6fcd$var$POPOVER_NAME, [\n $cf1ac5d9fe0e8206$export$722aac194ae923\n]);\nvar $cb5cc270b50c6fcd$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();\nvar [$cb5cc270b50c6fcd$var$PopoverProvider, $cb5cc270b50c6fcd$var$usePopoverContext] = $cb5cc270b50c6fcd$var$createPopoverContext($cb5cc270b50c6fcd$var$POPOVER_NAME);\nvar $cb5cc270b50c6fcd$export$5b6b19405a83ff9d = (props) => {\n const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n const triggerRef = (0, import_react45.useRef)(null);\n const [hasCustomAnchor, setHasCustomAnchor] = (0, import_react45.useState)(false);\n const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverProvider, {\n scope: __scopePopover,\n contentId: $1746a345f3d73bb7$export$f680877a34711e37(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: (0, import_react45.useCallback)(\n () => setOpen(\n (prevOpen) => !prevOpen\n ),\n [\n setOpen\n ]\n ),\n hasCustomAnchor,\n onCustomAnchorAdd: (0, import_react45.useCallback)(\n () => setHasCustomAnchor(true),\n []\n ),\n onCustomAnchorRemove: (0, import_react45.useCallback)(\n () => setHasCustomAnchor(false),\n []\n ),\n modal\n }, children));\n};\nvar $cb5cc270b50c6fcd$var$TRIGGER_NAME = \"PopoverTrigger\";\nvar $cb5cc270b50c6fcd$export$7dacb05d26466c3 = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopover } = _a3, triggerProps = __objRest(_a3, [\"__scopePopover\"]);\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$TRIGGER_NAME, __scopePopover);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n const composedTriggerRef = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.triggerRef);\n const trigger = \/* @__PURE__ *\/ (0, import_react45.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends2({\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": $cb5cc270b50c6fcd$var$getState(context.open)\n }, triggerProps, {\n ref: composedTriggerRef,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onClick, context.onOpenToggle)\n }));\n return context.hasCustomAnchor ? trigger : \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe7, _extends2({\n asChild: true\n }, popperScope), trigger);\n});\nvar $cb5cc270b50c6fcd$var$PORTAL_NAME = \"PopoverPortal\";\nvar [$cb5cc270b50c6fcd$var$PortalProvider, $cb5cc270b50c6fcd$var$usePortalContext] = $cb5cc270b50c6fcd$var$createPopoverContext($cb5cc270b50c6fcd$var$PORTAL_NAME, {\n forceMount: void 0\n});\nvar $cb5cc270b50c6fcd$var$CONTENT_NAME = \"PopoverContent\";\nvar $cb5cc270b50c6fcd$export$d7e1f420b25549ff = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const portalContext = $cb5cc270b50c6fcd$var$usePortalContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const _a3 = props, { forceMount = portalContext.forceMount } = _a3, contentProps = __objRest(_a3, [\"forceMount\"]);\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($921a889cee6df7e8$export$99c2b779aa4e8b8b, {\n present: forceMount || context.open\n }, context.modal ? \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })) : \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentNonModal, _extends2({}, contentProps, {\n ref: forwardedRef\n })));\n});\nvar $cb5cc270b50c6fcd$var$PopoverContentModal = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const contentRef = (0, import_react45.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentRef);\n const isRightClickOutsideRef = (0, import_react45.useRef)(false);\n (0, import_react45.useEffect)(() => {\n const content = contentRef.current;\n if (content)\n return hideOthers(content);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)(Combination_default, {\n as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,\n allowPinchZoom: true\n }, \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentImpl, _extends2({}, props, {\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onCloseAutoFocus, (event) => {\n var _context$triggerRef$c;\n event.preventDefault();\n if (!isRightClickOutsideRef.current)\n (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n }),\n onPointerDownOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n }, {\n checkForDefaultPrevented: false\n }),\n onFocusOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n {\n checkForDefaultPrevented: false\n }\n )\n })));\n});\nvar $cb5cc270b50c6fcd$var$PopoverContentNonModal = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = (0, import_react45.useRef)(false);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($cb5cc270b50c6fcd$var$PopoverContentImpl, _extends2({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n var _props$onCloseAutoFoc;\n (_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);\n if (!event.defaultPrevented) {\n var _context$triggerRef$c2;\n if (!hasInteractedOutsideRef.current)\n (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n var _props$onInteractOuts, _context$triggerRef$c3;\n (_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);\n if (!event.defaultPrevented)\n hasInteractedOutsideRef.current = true;\n const target = event.target;\n const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);\n if (targetIsTrigger)\n event.preventDefault();\n }\n }));\n});\nvar $cb5cc270b50c6fcd$var$PopoverContentImpl = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside } = _a3, contentProps = __objRest(_a3, [\"__scopePopover\", \"trapFocus\", \"onOpenAutoFocus\", \"onCloseAutoFocus\", \"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\"]);\n const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, __scopePopover);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($d3863c46a17e8a28$export$20e40289641fbbb6, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus\n }, \/* @__PURE__ *\/ (0, import_react45.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false)\n }, \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2, _extends2({\n \"data-state\": $cb5cc270b50c6fcd$var$getState(context.open),\n role: \"dialog\",\n id: context.contentId\n }, popperScope, contentProps, {\n ref: forwardedRef,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n [\"--radix-popover-content-transform-origin\"]: \"var(--radix-popper-transform-origin)\"\n })\n }))));\n});\nvar $cb5cc270b50c6fcd$export$3152841115e061b2 = \/* @__PURE__ *\/ (0, import_react45.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopover } = _a3, arrowProps = __objRest(_a3, [\"__scopePopover\"]);\n const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);\n return \/* @__PURE__ *\/ (0, import_react45.createElement)($cf1ac5d9fe0e8206$export$21b07c8f274aebd5, _extends2({}, popperScope, arrowProps, {\n ref: forwardedRef\n }));\n});\nfunction $cb5cc270b50c6fcd$var$getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9 = $cb5cc270b50c6fcd$export$5b6b19405a83ff9d;\nvar $cb5cc270b50c6fcd$export$41fb9f06171c75f4 = $cb5cc270b50c6fcd$export$7dacb05d26466c3;\nvar $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2 = $cb5cc270b50c6fcd$export$d7e1f420b25549ff;\nvar $cb5cc270b50c6fcd$export$21b07c8f274aebd5 = $cb5cc270b50c6fcd$export$3152841115e061b2;\n\n\/\/ src\/components\/GeometryTools\/GeometryTools.tsx\nvar import_react46 = __toESM(require(\"react\"));\nvar import_jsx_runtime42 = require(\"react\/jsx-runtime\");\nvar GeometryTools = observer(function GeometryTools2(_a3) {\n var _b = _a3, {\n popoverSide = \"left\",\n setGeometry,\n activeGeometry,\n chevron = true\n } = _b, rest = __objRest(_b, [\n \"popoverSide\",\n \"setGeometry\",\n \"activeGeometry\",\n \"chevron\"\n ]);\n const {\n handlers: { t: t2 }\n } = import_react46.default.useContext(LogseqContext);\n const geometries = [\n {\n id: \"box\",\n icon: \"square\",\n tooltip: t2(\"whiteboard\/rectangle\")\n },\n {\n id: \"ellipse\",\n icon: \"circle\",\n tooltip: t2(\"whiteboard\/circle\")\n },\n {\n id: \"polygon\",\n icon: \"triangle\",\n tooltip: t2(\"whiteboard\/triangle\")\n }\n ];\n const shapes2 = {\n id: \"shapes\",\n icon: \"triangle-square-circle\",\n tooltip: t2(\"whiteboard\/shape\")\n };\n const activeTool = activeGeometry ? geometries.find((geo) => geo.id === activeGeometry) : shapes2;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsxs)($cb5cc270b50c6fcd$export$be92b6f5f03c0fe9, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)($cb5cc270b50c6fcd$export$41fb9f06171c75f4, {\n asChild: true,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsxs)(\"div\", __spreadProps(__spreadValues({}, rest), {\n className: \"tl-geometry-tools-pane-anchor\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(ToolButton, __spreadProps(__spreadValues({}, activeTool), {\n tooltipSide: popoverSide\n })),\n chevron && \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(TablerIcon, {\n \"data-selected\": activeGeometry,\n className: \"tl-popover-indicator\",\n name: \"chevron-down-left\"\n })\n ]\n }))\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsxs)($cb5cc270b50c6fcd$export$7c6e2c02157bb7d2, {\n className: \"tl-popover-content\",\n side: popoverSide,\n sideOffset: 15,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(\"div\", {\n className: `tl-toolbar tl-geometry-toolbar ${[\"left\", \"right\"].includes(popoverSide) ? \"flex-col\" : \"flex-row\"}`,\n children: geometries.map((props) => \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)(ToolButton, {\n id: props.id,\n icon: props.icon,\n tooltip: activeGeometry ? props.tooltip : \"\",\n handleClick: setGeometry,\n tooltipSide: popoverSide\n }, props.id))\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime42.jsx)($cb5cc270b50c6fcd$export$21b07c8f274aebd5, {\n className: \"tl-popover-arrow\"\n })\n ]\n })\n ]\n });\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-slider\/dist\/index.module.js\nvar import_react48 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/number\/dist\/index.module.js\nfunction $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-use-previous\/dist\/index.module.js\nvar import_react47 = require(\"react\");\nfunction $010c2913dbd2fe3d$export$5cae361ad82dce8b(value) {\n const ref = (0, import_react47.useRef)({\n value,\n previous: value\n });\n return (0, import_react47.useMemo)(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [\n value\n ]);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-slider\/dist\/index.module.js\nvar $faa2e61a3361514f$var$PAGE_KEYS = [\n \"PageUp\",\n \"PageDown\"\n];\nvar $faa2e61a3361514f$var$ARROW_KEYS = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\"\n];\nvar $faa2e61a3361514f$var$BACK_KEYS = {\n \"from-left\": [\n \"Home\",\n \"PageDown\",\n \"ArrowDown\",\n \"ArrowLeft\"\n ],\n \"from-right\": [\n \"Home\",\n \"PageDown\",\n \"ArrowDown\",\n \"ArrowRight\"\n ],\n \"from-bottom\": [\n \"Home\",\n \"PageDown\",\n \"ArrowDown\",\n \"ArrowLeft\"\n ],\n \"from-top\": [\n \"Home\",\n \"PageDown\",\n \"ArrowUp\",\n \"ArrowLeft\"\n ]\n};\nvar $faa2e61a3361514f$var$SLIDER_NAME = \"Slider\";\nvar [$faa2e61a3361514f$var$Collection, $faa2e61a3361514f$var$useCollection, $faa2e61a3361514f$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($faa2e61a3361514f$var$SLIDER_NAME);\nvar [$faa2e61a3361514f$var$createSliderContext, $faa2e61a3361514f$export$ef72632d7b901f97] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($faa2e61a3361514f$var$SLIDER_NAME, [\n $faa2e61a3361514f$var$createCollectionScope\n]);\nvar [$faa2e61a3361514f$var$SliderProvider, $faa2e61a3361514f$var$useSliderContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME);\nvar $faa2e61a3361514f$export$472062a354075cee = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { name, min = 0, max = 100, step = 1, orientation = \"horizontal\", disabled = false, minStepsBetweenThumbs = 0, defaultValue = [\n min\n ], value: value1, onValueChange = () => {\n }, onValueCommit = () => {\n }, inverted = false } = _a3, sliderProps = __objRest(_a3, [\"name\", \"min\", \"max\", \"step\", \"orientation\", \"disabled\", \"minStepsBetweenThumbs\", \"defaultValue\", \"value\", \"onValueChange\", \"onValueCommit\", \"inverted\"]);\n const [slider, setSlider] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setSlider(node)\n );\n const thumbRefs = (0, import_react48.useRef)(\/* @__PURE__ *\/ new Set());\n const valueIndexToChangeRef = (0, import_react48.useRef)(0);\n const isHorizontal = orientation === \"horizontal\";\n const isFormControl = slider ? Boolean(slider.closest(\"form\")) : true;\n const SliderOrientation = isHorizontal ? $faa2e61a3361514f$var$SliderHorizontal : $faa2e61a3361514f$var$SliderVertical;\n const [values = [], setValues] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: value1,\n defaultProp: defaultValue,\n onChange: (value) => {\n var _thumbs$valueIndexToC;\n const thumbs = [\n ...thumbRefs.current\n ];\n (_thumbs$valueIndexToC = thumbs[valueIndexToChangeRef.current]) === null || _thumbs$valueIndexToC === void 0 || _thumbs$valueIndexToC.focus();\n onValueChange(value);\n }\n });\n const valuesBeforeSlideStartRef = (0, import_react48.useRef)(values);\n function handleSlideStart(value) {\n const closestIndex = $faa2e61a3361514f$var$getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n function handleSlideMove(value) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged)\n onValueCommit(values);\n }\n function updateValues(value, atIndex, { commit } = {\n commit: false\n }) {\n const decimalCount = $faa2e61a3361514f$var$getDecimalCount(step);\n const snapToStep = $faa2e61a3361514f$var$roundValue(Math.round((value - min) \/ step) * step + min, decimalCount);\n const nextValue = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(snapToStep, [\n min,\n max\n ]);\n setValues((prevValues = []) => {\n const nextValues = $faa2e61a3361514f$var$getNextSortedValues(prevValues, nextValue, atIndex);\n if ($faa2e61a3361514f$var$hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit)\n onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else\n return prevValues;\n });\n }\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderProvider, {\n scope: props.__scopeSlider,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$Collection.Provider, {\n scope: props.__scopeSlider\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$Collection.Slot, {\n scope: props.__scopeSlider\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)(SliderOrientation, _extends2({\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0\n }, sliderProps, {\n ref: composedRefs,\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(sliderProps.onPointerDown, () => {\n if (!disabled)\n valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, {\n commit: true\n }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, {\n commit: true\n }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = $faa2e61a3361514f$var$PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && $faa2e61a3361514f$var$ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, {\n commit: true\n });\n }\n }\n })))), isFormControl && values.map(\n (value, index3) => \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$BubbleInput, {\n key: index3,\n name: name ? name + (values.length > 1 ? \"[]\" : \"\") : void 0,\n value\n })\n ));\n});\nvar [$faa2e61a3361514f$var$SliderOrientationProvider, $faa2e61a3361514f$var$useSliderOrientationContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar $faa2e61a3361514f$var$SliderHorizontal = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { min, max, dir, inverted, onSlideStart, onSlideMove, onSlideEnd, onStepKeyDown } = _a3, sliderProps = __objRest(_a3, [\"min\", \"max\", \"dir\", \"inverted\", \"onSlideStart\", \"onSlideMove\", \"onSlideEnd\", \"onStepKeyDown\"]);\n const [slider, setSlider] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setSlider(node)\n );\n const rectRef = (0, import_react48.useRef)();\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [\n 0,\n rect.width\n ];\n const output = isSlidingFromLeft ? [\n min,\n max\n ] : [\n max,\n min\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\"\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderImpl, _extends2({\n dir: direction,\n \"data-orientation\": \"horizontal\"\n }, sliderProps, {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, sliderProps.style), {\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n }),\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\nvar $faa2e61a3361514f$var$SliderVertical = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { min, max, inverted, onSlideStart, onSlideMove, onSlideEnd, onStepKeyDown } = _a3, sliderProps = __objRest(_a3, [\"min\", \"max\", \"inverted\", \"onSlideStart\", \"onSlideMove\", \"onSlideEnd\", \"onStepKeyDown\"]);\n const sliderRef = (0, import_react48.useRef)(null);\n const ref = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, sliderRef);\n const rectRef = (0, import_react48.useRef)();\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [\n 0,\n rect.height\n ];\n const output = isSlidingFromBottom ? [\n max,\n min\n ] : [\n min,\n max\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderImpl, _extends2({\n \"data-orientation\": \"vertical\"\n }, sliderProps, {\n ref,\n style: __spreadProps(__spreadValues({}, sliderProps.style), {\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n }),\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\nvar $faa2e61a3361514f$var$SliderImpl = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider, onSlideStart, onSlideMove, onSlideEnd, onHomeKeyDown, onEndKeyDown, onStepKeyDown } = _a3, sliderProps = __objRest(_a3, [\"__scopeSlider\", \"onSlideStart\", \"onSlideMove\", \"onSlideEnd\", \"onHomeKeyDown\", \"onEndKeyDown\", \"onStepKeyDown\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$SLIDER_NAME, __scopeSlider);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({}, sliderProps, {\n ref: forwardedRef,\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if ($faa2e61a3361514f$var$PAGE_KEYS.concat($faa2e61a3361514f$var$ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target))\n target.focus();\n else\n onSlideStart(event);\n }),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId))\n onSlideMove(event);\n }),\n onPointerUp: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }));\n});\nvar $faa2e61a3361514f$var$TRACK_NAME = \"SliderTrack\";\nvar $faa2e61a3361514f$export$105594979f116971 = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider } = _a3, trackProps = __objRest(_a3, [\"__scopeSlider\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$TRACK_NAME, __scopeSlider);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation\n }, trackProps, {\n ref: forwardedRef\n }));\n});\nvar $faa2e61a3361514f$var$RANGE_NAME = \"SliderRange\";\nvar $faa2e61a3361514f$export$a5cf38a7a000fe77 = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider } = _a3, rangeProps = __objRest(_a3, [\"__scopeSlider\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const ref = (0, import_react48.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => $faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0\n }, rangeProps, {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, props.style), {\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n })\n }));\n});\nvar $faa2e61a3361514f$var$THUMB_NAME = \"SliderThumb\";\nvar $faa2e61a3361514f$export$2c1b491743890dec = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const getItems = $faa2e61a3361514f$var$useCollection(props.__scopeSlider);\n const [thumb, setThumb] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setThumb(node)\n );\n const index3 = (0, import_react48.useMemo)(\n () => thumb ? getItems().findIndex(\n (item) => item.ref.current === thumb\n ) : -1,\n [\n getItems,\n thumb\n ]\n );\n return \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$SliderThumbImpl, _extends2({}, props, {\n ref: composedRefs,\n index: index3\n }));\n});\nvar $faa2e61a3361514f$var$SliderThumbImpl = \/* @__PURE__ *\/ (0, import_react48.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSlider, index: index3 } = _a3, thumbProps = __objRest(_a3, [\"__scopeSlider\", \"index\"]);\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = (0, import_react48.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setThumb(node)\n );\n const size = $db6c3485150b8e66$export$1ab7ae714698c4b8(thumb);\n const value = context.values[index3];\n const percent = value === void 0 ? 0 : $faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max);\n const label = $faa2e61a3361514f$var$getLabel(index3, context.values.length);\n const orientationSize = size === null || size === void 0 ? void 0 : size[orientation.size];\n const thumbInBoundsOffset = orientationSize ? $faa2e61a3361514f$var$getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n (0, import_react48.useEffect)(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [\n thumb,\n context.thumbs\n ]);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)(\"span\", {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n }\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($faa2e61a3361514f$var$Collection.ItemSlot, {\n scope: props.__scopeSlider\n }, \/* @__PURE__ *\/ (0, import_react48.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends2({\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0\n }, thumbProps, {\n ref: composedRefs,\n style: value === void 0 ? {\n display: \"none\"\n } : props.style,\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index3;\n })\n }))));\n});\nvar $faa2e61a3361514f$var$BubbleInput = (props) => {\n const _a3 = props, { value } = _a3, inputProps = __objRest(_a3, [\"value\"]);\n const ref = (0, import_react48.useRef)(null);\n const prevValue = $010c2913dbd2fe3d$export$5cae361ad82dce8b(value);\n (0, import_react48.useEffect)(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", {\n bubbles: true\n });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n return \/* @__PURE__ *\/ (0, import_react48.createElement)(\"input\", _extends2({\n style: {\n display: \"none\"\n }\n }, inputProps, {\n ref,\n defaultValue: value\n }));\n};\nfunction $faa2e61a3361514f$var$getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [\n ...prevValues\n ];\n nextValues[atIndex] = nextValue;\n return nextValues.sort(\n (a5, b5) => a5 - b5\n );\n}\nfunction $faa2e61a3361514f$var$convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 \/ maxSteps;\n return percentPerStep * (value - min);\n}\nfunction $faa2e61a3361514f$var$getLabel(index3, totalValues) {\n if (totalValues > 2)\n return `Value ${index3 + 1} of ${totalValues}`;\n else if (totalValues === 2)\n return [\n \"Minimum\",\n \"Maximum\"\n ][index3];\n else\n return void 0;\n}\nfunction $faa2e61a3361514f$var$getClosestValueIndex(values, nextValue) {\n if (values.length === 1)\n return 0;\n const distances = values.map(\n (value) => Math.abs(value - nextValue)\n );\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction $faa2e61a3361514f$var$getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width \/ 2;\n const halfPercent = 50;\n const offset = $faa2e61a3361514f$var$linearScale([\n 0,\n halfPercent\n ], [\n 0,\n halfWidth\n ]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction $faa2e61a3361514f$var$getStepsBetweenValues(values) {\n return values.slice(0, -1).map(\n (value, index3) => values[index3 + 1] - value\n );\n}\nfunction $faa2e61a3361514f$var$hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = $faa2e61a3361514f$var$getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction $faa2e61a3361514f$var$linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1])\n return output[0];\n const ratio = (output[1] - output[0]) \/ (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction $faa2e61a3361514f$var$getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction $faa2e61a3361514f$var$roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) \/ rounder;\n}\nvar $faa2e61a3361514f$export$be92b6f5f03c0fe9 = $faa2e61a3361514f$export$472062a354075cee;\nvar $faa2e61a3361514f$export$13921ac0cc260818 = $faa2e61a3361514f$export$105594979f116971;\nvar $faa2e61a3361514f$export$9a58ef0d7ad3278c = $faa2e61a3361514f$export$a5cf38a7a000fe77;\nvar $faa2e61a3361514f$export$6521433ed15a34db = $faa2e61a3361514f$export$2c1b491743890dec;\n\n\/\/ src\/components\/PopoverButton\/PopoverButton.tsx\nvar React47 = __toESM(require(\"react\"));\nvar import_jsx_runtime43 = require(\"react\/jsx-runtime\");\nvar PopoverButton = observer(\n (_a3) => {\n var _b = _a3, { side, align, alignOffset, label, arrow: arrow2, children, border } = _b, rest = __objRest(_b, [\"side\", \"align\", \"alignOffset\", \"label\", \"arrow\", \"children\", \"border\"]);\n const contentRef = React47.useRef(null);\n const [isOpen, setIsOpen] = React47.useState(false);\n const {\n viewport: {\n bounds,\n camera: { point, zoom }\n }\n } = useApp();\n const [tick, setTick] = React47.useState(0);\n React47.useEffect(() => {\n if (!contentRef.current || !isOpen)\n return;\n const boundingRect = contentRef.current.getBoundingClientRect();\n const outOfView = !BoundsUtils.boundsContain(bounds, {\n minX: boundingRect.x,\n minY: boundingRect.y,\n maxX: boundingRect.right,\n maxY: boundingRect.bottom,\n width: boundingRect.width,\n height: boundingRect.height\n });\n if (outOfView) {\n setTick((tick2) => tick2 + 1);\n }\n }, [point[0], point[1], zoom, isOpen]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsxs)($cb5cc270b50c6fcd$export$be92b6f5f03c0fe9, {\n onOpenChange: (o4) => setIsOpen(o4),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsx)($cb5cc270b50c6fcd$export$41fb9f06171c75f4, __spreadProps(__spreadValues({}, rest), {\n \"data-border\": border,\n className: \"tl-button tl-popover-trigger-button\",\n children: label\n })),\n \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsxs)($cb5cc270b50c6fcd$export$7c6e2c02157bb7d2, {\n ref: contentRef,\n className: \"tl-popover-content\",\n align,\n alignOffset,\n side,\n sideOffset: 15,\n collisionBoundary: document.querySelector(\".logseq-tldraw\"),\n children: [\n children,\n arrow2 && \/* @__PURE__ *\/ (0, import_jsx_runtime43.jsx)($cb5cc270b50c6fcd$export$21b07c8f274aebd5, {\n className: \"tl-popover-arrow\"\n })\n ]\n }, \"popover-content-\" + tick)\n ]\n });\n }\n);\n\n\/\/ src\/components\/inputs\/ColorInput.tsx\nvar import_react50 = __toESM(require(\"react\"));\nvar import_jsx_runtime44 = require(\"react\/jsx-runtime\");\nfunction ColorInput(_a3) {\n var _b = _a3, {\n color,\n opacity,\n popoverSide,\n setColor,\n setOpacity\n } = _b, rest = __objRest(_b, [\n \"color\",\n \"opacity\",\n \"popoverSide\",\n \"setColor\",\n \"setOpacity\"\n ]);\n const {\n handlers: { t: t2 }\n } = import_react50.default.useContext(LogseqContext);\n function renderColor(color2) {\n return color2 ? \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"tl-color-bg\",\n style: { backgroundColor: color2 },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: `w-full h-full bg-${color2}-500`\n })\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"tl-color-bg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(TablerIcon, {\n name: \"color-swatch\"\n })\n });\n }\n function isHexColor(color2) {\n return \/^#(?:[0-9a-f]{3}){1,2}$\/i.test(color2);\n }\n const handleChangeDebounced = import_react50.default.useMemo(() => {\n let latestValue = \"\";\n const handler = (e2) => {\n setColor(latestValue);\n };\n return debounce(handler, 100, (e2) => {\n latestValue = e2.target.value;\n });\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(PopoverButton, __spreadProps(__spreadValues({}, rest), {\n border: true,\n arrow: true,\n side: popoverSide,\n label: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(Tooltip, {\n content: t2(\"whiteboard\/color\"),\n side: popoverSide,\n sideOffset: 14,\n children: renderColor(color)\n }),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsxs)(\"div\", {\n className: \"p-1\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"tl-color-palette\",\n children: Object.values(Color).map((value) => \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"button\", {\n className: `tl-color-drip m-1${value === color ? \" active\" : \"\"}`,\n onClick: () => setColor(value),\n children: renderColor(value)\n }, value))\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsxs)(\"div\", {\n className: \"flex items-center tl-custom-color\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: `tl-color-drip m-1 mr-3 ${!isBuiltInColor(color) ? \"active\" : \"\"}`,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"color-input-wrapper tl-color-bg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"input\", __spreadValues({\n className: \"color-input cursor-pointer\",\n id: \"tl-custom-color-input\",\n type: \"color\",\n value: isHexColor(color) ? color : \"#000000\",\n onChange: handleChangeDebounced,\n style: { opacity: isBuiltInColor(color) ? 0 : 1 }\n }, rest))\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"label\", {\n htmlFor: \"tl-custom-color-input\",\n className: \"cursor-pointer\",\n children: t2(\"whiteboard\/select-custom-color\")\n })\n ]\n }),\n setOpacity && \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)(\"div\", {\n className: \"mx-1 my-2\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsxs)($faa2e61a3361514f$export$be92b6f5f03c0fe9, {\n defaultValue: [opacity != null ? opacity : 0],\n onValueCommit: (value) => setOpacity(value[0]),\n max: 1,\n step: 0.1,\n \"aria-label\": t2(\"whiteboard\/opacity\"),\n className: \"tl-slider-root\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)($faa2e61a3361514f$export$13921ac0cc260818, {\n className: \"tl-slider-track\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)($faa2e61a3361514f$export$9a58ef0d7ad3278c, {\n className: \"tl-slider-range\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime44.jsx)($faa2e61a3361514f$export$6521433ed15a34db, {\n className: \"tl-slider-thumb\"\n })\n ]\n })\n })\n ]\n })\n }));\n}\n\n\/\/ src\/components\/inputs\/SelectInput.tsx\nvar React49 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/dist\/index.module.js\nvar import_react58 = require(\"react\");\nvar import_react_dom10 = require(\"react-dom\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-collection\/dist\/index.module.js\nvar import_react51 = __toESM(require(\"react\"));\nfunction $e02a7d9cb1dc128c$export$c74125a8e3af6bb22(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = $c512c27ab02ef895$export$50c7b4e9d9f19c1(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: \/* @__PURE__ *\/ new Map()\n });\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = import_react51.default.useRef(null);\n const itemMap = import_react51.default.useRef(\/* @__PURE__ *\/ new Map()).current;\n return \/* @__PURE__ *\/ import_react51.default.createElement(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref\n }, children);\n };\n \/* @__PURE__ *\/ Object.assign(CollectionProvider, {\n displayName: PROVIDER_NAME\n });\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = \/* @__PURE__ *\/ import_react51.default.forwardRef((props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.collectionRef);\n return \/* @__PURE__ *\/ import_react51.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionSlot, {\n displayName: COLLECTION_SLOT_NAME\n });\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = \/* @__PURE__ *\/ import_react51.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { scope, children } = _a3, itemData = __objRest(_a3, [\"scope\", \"children\"]);\n const ref = import_react51.default.useRef(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n import_react51.default.useEffect(() => {\n context.itemMap.set(ref, __spreadValues({\n ref\n }, itemData));\n return () => void context.itemMap.delete(ref);\n });\n return \/* @__PURE__ *\/ import_react51.default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {\n [ITEM_DATA_ATTR]: \"\",\n ref: composedRefs\n }, children);\n });\n \/* @__PURE__ *\/ Object.assign(CollectionItemSlot, {\n displayName: ITEM_SLOT_NAME\n });\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = import_react51.default.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode)\n return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a5, b5) => orderedNodes.indexOf(a5.ref.current) - orderedNodes.indexOf(b5.ref.current)\n );\n return orderedItems;\n }, [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar import_react53 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-primitive\/dist\/index.module.js\nvar import_react52 = require(\"react\");\nvar import_react_dom7 = require(\"react-dom\");\nvar $8927f6f2acc4f386$var$NODES2 = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar $8927f6f2acc4f386$export$250ffa63cdc0d0342 = $8927f6f2acc4f386$var$NODES2.reduce((primitive, node) => {\n const Node = \/* @__PURE__ *\/ (0, import_react52.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { asChild } = _a3, primitiveProps = __objRest(_a3, [\"asChild\"]);\n const Comp = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : node;\n (0, import_react52.useEffect)(() => {\n window[Symbol.for(\"radix-ui\")] = true;\n }, []);\n return \/* @__PURE__ *\/ (0, import_react52.createElement)(Comp, _extends2({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return __spreadProps(__spreadValues({}, primitive), {\n [node]: Node\n });\n}, {});\nfunction $8927f6f2acc4f386$export$6d1a0317bde7de7f2(target, event) {\n if (target)\n (0, import_react_dom7.flushSync)(\n () => target.dispatchEvent(event)\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-dismissable-layer\/dist\/index.module.js\nvar $5cb92bef7577960e$var$CONTEXT_UPDATE2 = \"dismissableLayer.update\";\nvar $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE2 = \"dismissableLayer.pointerDownOutside\";\nvar $5cb92bef7577960e$var$FOCUS_OUTSIDE2 = \"dismissableLayer.focusOutside\";\nvar $5cb92bef7577960e$var$originalBodyPointerEvents2;\nvar $5cb92bef7577960e$var$DismissableLayerContext2 = \/* @__PURE__ *\/ (0, import_react53.createContext)({\n layers: \/* @__PURE__ *\/ new Set(),\n layersWithOutsidePointerEventsDisabled: \/* @__PURE__ *\/ new Set(),\n branches: \/* @__PURE__ *\/ new Set()\n});\nvar $5cb92bef7577960e$export$177fb62ff3ec1f222 = \/* @__PURE__ *\/ (0, import_react53.forwardRef)((props, forwardedRef) => {\n var _node$ownerDocument;\n const _a3 = props, { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss } = _a3, layerProps = __objRest(_a3, [\"disableOutsidePointerEvents\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\"]);\n const context = (0, import_react53.useContext)($5cb92bef7577960e$var$DismissableLayerContext2);\n const [node1, setNode] = (0, import_react53.useState)(null);\n const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;\n const [, force] = (0, import_react53.useState)({});\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index3 = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index3 >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside2((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch)\n return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside2((event) => {\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some(\n (branch) => branch.contains(target)\n );\n if (isFocusInBranch)\n return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented)\n onDismiss === null || onDismiss === void 0 || onDismiss();\n }, ownerDocument);\n $addc16e1bbe58fd0$export$3a72a57244d6e765((event) => {\n const isHighestLayer = index3 === context.layers.size - 1;\n if (!isHighestLayer)\n return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n (0, import_react53.useEffect)(() => {\n if (!node1)\n return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents2 = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate2();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1)\n ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents2;\n };\n }, [\n node1,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n (0, import_react53.useEffect)(() => {\n return () => {\n if (!node1)\n return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate2();\n };\n }, [\n node1,\n context\n ]);\n (0, import_react53.useEffect)(() => {\n const handleUpdate = () => force({});\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE2, handleUpdate);\n return () => document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE2, handleUpdate);\n }, []);\n return \/* @__PURE__ *\/ (0, import_react53.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, layerProps, {\n ref: composedRefs,\n style: __spreadValues({\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0\n }, props.style),\n onFocusCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\nfunction $5cb92bef7577960e$var$usePointerDownOutside2(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handlePointerDownOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPointerDownOutside);\n const isPointerInsideReactTreeRef = (0, import_react53.useRef)(false);\n const handleClickRef = (0, import_react53.useRef)(() => {\n });\n (0, import_react53.useEffect)(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent = function() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent2($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE2, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n };\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else\n handleAndDispatchPointerDownOutsideEvent();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction $5cb92bef7577960e$var$useFocusOutside2(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {\n const handleFocusOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onFocusOutside);\n const isFocusInsideReactTreeRef = (0, import_react53.useRef)(false);\n (0, import_react53.useEffect)(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent2($5cb92bef7577960e$var$FOCUS_OUTSIDE2, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate2() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE2);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent2(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler)\n target.addEventListener(name, handler, {\n once: true\n });\n if (discrete)\n $8927f6f2acc4f386$export$6d1a0317bde7de7f2(target, event);\n else\n target.dispatchEvent(event);\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-focus-scope\/dist\/index.module.js\nvar import_react54 = require(\"react\");\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2 = \"focusScope.autoFocusOnMount\";\nvar $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2 = \"focusScope.autoFocusOnUnmount\";\nvar $d3863c46a17e8a28$var$EVENT_OPTIONS2 = {\n bubbles: false,\n cancelable: true\n};\nvar $d3863c46a17e8a28$export$20e40289641fbbb62 = \/* @__PURE__ *\/ (0, import_react54.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp } = _a3, scopeProps = __objRest(_a3, [\"loop\", \"trapped\", \"onMountAutoFocus\", \"onUnmountAutoFocus\"]);\n const [container1, setContainer] = (0, import_react54.useState)(null);\n const onMountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onMountAutoFocusProp);\n const onUnmountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onUnmountAutoFocusProp);\n const lastFocusedElementRef = (0, import_react54.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContainer(node)\n );\n const focusScope = (0, import_react54.useRef)({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n (0, import_react54.useEffect)(() => {\n if (trapped) {\n let handleFocusIn = function(event) {\n if (focusScope.paused || !container1)\n return;\n const target = event.target;\n if (container1.contains(target))\n lastFocusedElementRef.current = target;\n else\n $d3863c46a17e8a28$var$focus2(lastFocusedElementRef.current, {\n select: true\n });\n }, handleFocusOut = function(event) {\n if (focusScope.paused || !container1)\n return;\n if (!container1.contains(event.relatedTarget))\n $d3863c46a17e8a28$var$focus2(lastFocusedElementRef.current, {\n select: true\n });\n };\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n (0, import_react54.useEffect)(() => {\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack2.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2, $d3863c46a17e8a28$var$EVENT_OPTIONS2);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst2($d3863c46a17e8a28$var$removeLinks2($d3863c46a17e8a28$var$getTabbableCandidates2(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement)\n $d3863c46a17e8a28$var$focus2(container1);\n }\n }\n return () => {\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT2, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2, $d3863c46a17e8a28$var$EVENT_OPTIONS2);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented)\n $d3863c46a17e8a28$var$focus2(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT2, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack2.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = (0, import_react54.useCallback)((event) => {\n if (!loop && !trapped)\n return;\n if (focusScope.paused)\n return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges2(container);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container)\n event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus2(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop)\n $d3863c46a17e8a28$var$focus2(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return \/* @__PURE__ *\/ (0, import_react54.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\nfunction $d3863c46a17e8a28$var$focusFirst2(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n $d3863c46a17e8a28$var$focus2(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement)\n return;\n }\n}\nfunction $d3863c46a17e8a28$var$getTabbableEdges2(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates2(container);\n const first = $d3863c46a17e8a28$var$findVisible2(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible2(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction $d3863c46a17e8a28$var$getTabbableCandidates2(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode())\n nodes.push(walker.currentNode);\n return nodes;\n}\nfunction $d3863c46a17e8a28$var$findVisible2(elements, container) {\n for (const element of elements) {\n if (!$d3863c46a17e8a28$var$isHidden2(element, {\n upTo: container\n }))\n return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden2(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\")\n return true;\n while (node) {\n if (upTo !== void 0 && node === upTo)\n return false;\n if (getComputedStyle(node).display === \"none\")\n return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput2(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction $d3863c46a17e8a28$var$focus2(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput2(element) && select)\n element.select();\n }\n}\nvar $d3863c46a17e8a28$var$focusScopesStack2 = $d3863c46a17e8a28$var$createFocusScopesStack2();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack2() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope)\n activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n stack = $d3863c46a17e8a28$var$arrayRemove2(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove2(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove2(array2, item) {\n const updatedArray = [\n ...array2\n ];\n const index3 = updatedArray.indexOf(item);\n if (index3 !== -1)\n updatedArray.splice(index3, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks2(items) {\n return items.filter(\n (item) => item.tagName !== \"A\"\n );\n}\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-popper\/dist\/index.module.js\nvar import_react55 = require(\"react\");\nvar $cf1ac5d9fe0e8206$var$POPPER_NAME2 = \"Popper\";\nvar [$cf1ac5d9fe0e8206$var$createPopperContext2, $cf1ac5d9fe0e8206$export$722aac194ae9232] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cf1ac5d9fe0e8206$var$POPPER_NAME2);\nvar [$cf1ac5d9fe0e8206$var$PopperProvider2, $cf1ac5d9fe0e8206$var$usePopperContext2] = $cf1ac5d9fe0e8206$var$createPopperContext2($cf1ac5d9fe0e8206$var$POPPER_NAME2);\nvar $cf1ac5d9fe0e8206$export$badac9ada3a0bdf92 = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = (0, import_react55.useState)(null);\n return \/* @__PURE__ *\/ (0, import_react55.createElement)($cf1ac5d9fe0e8206$var$PopperProvider2, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor\n }, children);\n};\nvar $cf1ac5d9fe0e8206$var$ANCHOR_NAME2 = \"PopperAnchor\";\nvar $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d2 = \/* @__PURE__ *\/ (0, import_react55.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopePopper, virtualRef } = _a3, anchorProps = __objRest(_a3, [\"__scopePopper\", \"virtualRef\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext2($cf1ac5d9fe0e8206$var$ANCHOR_NAME2, __scopePopper);\n const ref = (0, import_react55.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n (0, import_react55.useEffect)(() => {\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n });\n return virtualRef ? null : \/* @__PURE__ *\/ (0, import_react55.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, anchorProps, {\n ref: composedRefs\n }));\n});\nvar $cf1ac5d9fe0e8206$var$CONTENT_NAME2 = \"PopperContent\";\nvar [$cf1ac5d9fe0e8206$var$PopperContentProvider2, $cf1ac5d9fe0e8206$var$useContentContext2] = $cf1ac5d9fe0e8206$var$createPopperContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2);\nvar [$cf1ac5d9fe0e8206$var$PositionContextProvider2, $cf1ac5d9fe0e8206$var$usePositionContext2] = $cf1ac5d9fe0e8206$var$createPopperContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2, {\n hasParent: false,\n positionUpdateFns: \/* @__PURE__ *\/ new Set()\n});\nvar $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc2 = \/* @__PURE__ *\/ (0, import_react55.forwardRef)((props, forwardedRef) => {\n var _arrowSize$width, _arrowSize$height, _middlewareData$arrow, _middlewareData$arrow2, _middlewareData$arrow3, _middlewareData$hide, _middlewareData$trans, _middlewareData$trans2;\n const _a3 = props, { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, avoidCollisions = true, onPlaced } = _a3, contentProps = __objRest(_a3, [\"__scopePopper\", \"side\", \"sideOffset\", \"align\", \"alignOffset\", \"arrowPadding\", \"collisionBoundary\", \"collisionPadding\", \"sticky\", \"hideWhenDetached\", \"avoidCollisions\", \"onPlaced\"]);\n const context = $cf1ac5d9fe0e8206$var$usePopperContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2, __scopePopper);\n const [content, setContent] = (0, import_react55.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const [arrow2, setArrow] = (0, import_react55.useState)(null);\n const arrowSize = $db6c3485150b8e66$export$1ab7ae714698c4b8(arrow2);\n const arrowWidth = (_arrowSize$width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize$width !== void 0 ? _arrowSize$width : 0;\n const arrowHeight = (_arrowSize$height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize$height !== void 0 ? _arrowSize$height : 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : __spreadValues({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }, collisionPaddingProp);\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter($cf1ac5d9fe0e8206$var$isNotNull2),\n altBoundary: hasExplicitBoundaries\n };\n const { reference, floating, strategy, x: x4, y: y4, placement, middlewareData, update } = useFloating({\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: N,\n middleware: [\n $cf1ac5d9fe0e8206$var$anchorCssProperties(),\n T({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions ? D(__spreadValues({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? L() : void 0\n }, detectOverflowOptions)) : void 0,\n arrow2 ? arrow({\n element: arrow2,\n padding: arrowPadding\n }) : void 0,\n avoidCollisions ? b(__spreadValues({}, detectOverflowOptions)) : void 0,\n k(__spreadProps(__spreadValues({}, detectOverflowOptions), {\n apply: ({ elements, availableWidth: width, availableHeight: height }) => {\n elements.floating.style.setProperty(\"--radix-popper-available-width\", `${width}px`);\n elements.floating.style.setProperty(\"--radix-popper-available-height\", `${height}px`);\n }\n })),\n $cf1ac5d9fe0e8206$var$transformOrigin2({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached ? P({\n strategy: \"referenceHidden\"\n }) : void 0\n ].filter($cf1ac5d9fe0e8206$var$isDefined2)\n });\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n reference(context.anchor);\n }, [\n reference,\n context.anchor\n ]);\n const isPlaced = x4 !== null && y4 !== null;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement2(placement);\n const handlePlaced = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPlaced);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (isPlaced)\n handlePlaced === null || handlePlaced === void 0 || handlePlaced();\n }, [\n isPlaced,\n handlePlaced\n ]);\n const arrowX = (_middlewareData$arrow = middlewareData.arrow) === null || _middlewareData$arrow === void 0 ? void 0 : _middlewareData$arrow.x;\n const arrowY = (_middlewareData$arrow2 = middlewareData.arrow) === null || _middlewareData$arrow2 === void 0 ? void 0 : _middlewareData$arrow2.y;\n const cannotCenterArrow = ((_middlewareData$arrow3 = middlewareData.arrow) === null || _middlewareData$arrow3 === void 0 ? void 0 : _middlewareData$arrow3.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = (0, import_react55.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (content)\n setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const { hasParent, positionUpdateFns } = $cf1ac5d9fe0e8206$var$usePositionContext2($cf1ac5d9fe0e8206$var$CONTENT_NAME2, __scopePopper);\n const isRoot = !hasParent;\n (0, import_react55.useLayoutEffect)(() => {\n if (!isRoot) {\n positionUpdateFns.add(update);\n return () => {\n positionUpdateFns.delete(update);\n };\n }\n }, [\n isRoot,\n positionUpdateFns,\n update\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (isRoot && isPlaced)\n Array.from(positionUpdateFns).reverse().forEach(\n (fn) => requestAnimationFrame(fn)\n );\n }, [\n isRoot,\n isPlaced,\n positionUpdateFns\n ]);\n const commonProps = __spreadProps(__spreadValues({\n \"data-side\": placedSide,\n \"data-align\": placedAlign\n }, contentProps), {\n ref: composedRefs,\n style: __spreadProps(__spreadValues({}, contentProps.style), {\n animation: !isPlaced ? \"none\" : void 0,\n opacity: (_middlewareData$hide = middlewareData.hide) !== null && _middlewareData$hide !== void 0 && _middlewareData$hide.referenceHidden ? 0 : void 0\n })\n });\n return \/* @__PURE__ *\/ (0, import_react55.createElement)(\"div\", {\n ref: floating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n position: strategy,\n left: 0,\n top: 0,\n transform: isPlaced ? `translate3d(${Math.round(x4)}px, ${Math.round(y4)}px, 0)` : \"translate3d(0, -200%, 0)\",\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n (_middlewareData$trans = middlewareData.transformOrigin) === null || _middlewareData$trans === void 0 ? void 0 : _middlewareData$trans.x,\n (_middlewareData$trans2 = middlewareData.transformOrigin) === null || _middlewareData$trans2 === void 0 ? void 0 : _middlewareData$trans2.y\n ].join(\" \")\n },\n dir: props.dir\n }, \/* @__PURE__ *\/ (0, import_react55.createElement)($cf1ac5d9fe0e8206$var$PopperContentProvider2, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow\n }, isRoot ? \/* @__PURE__ *\/ (0, import_react55.createElement)($cf1ac5d9fe0e8206$var$PositionContextProvider2, {\n scope: __scopePopper,\n hasParent: true,\n positionUpdateFns\n }, \/* @__PURE__ *\/ (0, import_react55.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, commonProps)) : \/* @__PURE__ *\/ (0, import_react55.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, commonProps)));\n});\nfunction $cf1ac5d9fe0e8206$var$isDefined2(value) {\n return value !== void 0;\n}\nfunction $cf1ac5d9fe0e8206$var$isNotNull2(value) {\n return value !== null;\n}\nvar $cf1ac5d9fe0e8206$var$anchorCssProperties = () => ({\n name: \"anchorCssProperties\",\n fn(data) {\n const { rects, elements } = data;\n const { width, height } = rects.reference;\n elements.floating.style.setProperty(\"--radix-popper-anchor-width\", `${width}px`);\n elements.floating.style.setProperty(\"--radix-popper-anchor-height\", `${height}px`);\n return {};\n }\n});\nvar $cf1ac5d9fe0e8206$var$transformOrigin2 = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n var _middlewareData$arrow4, _middlewareData$arrow5, _middlewareData$arrow6, _middlewareData$arrow7, _middlewareData$arrow8;\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData$arrow4 = middlewareData.arrow) === null || _middlewareData$arrow4 === void 0 ? void 0 : _middlewareData$arrow4.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement2(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n const arrowXCenter = ((_middlewareData$arrow5 = (_middlewareData$arrow6 = middlewareData.arrow) === null || _middlewareData$arrow6 === void 0 ? void 0 : _middlewareData$arrow6.x) !== null && _middlewareData$arrow5 !== void 0 ? _middlewareData$arrow5 : 0) + arrowWidth \/ 2;\n const arrowYCenter = ((_middlewareData$arrow7 = (_middlewareData$arrow8 = middlewareData.arrow) === null || _middlewareData$arrow8 === void 0 ? void 0 : _middlewareData$arrow8.y) !== null && _middlewareData$arrow7 !== void 0 ? _middlewareData$arrow7 : 0) + arrowHeight \/ 2;\n let x4 = \"\";\n let y4 = \"\";\n if (placedSide === \"bottom\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x4 = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y4 = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x4 = `${-arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x4 = `${rects.floating.width + arrowHeight}px`;\n y4 = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return {\n data: {\n x: x4,\n y: y4\n }\n };\n }\n});\nfunction $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement2(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe92 = $cf1ac5d9fe0e8206$export$badac9ada3a0bdf92;\nvar $cf1ac5d9fe0e8206$export$b688253958b8dfe72 = $cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d2;\nvar $cf1ac5d9fe0e8206$export$7c6e2c02157bb7d22 = $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc2;\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-portal\/dist\/index.module.js\nvar import_react56 = require(\"react\");\nvar import_react_dom9 = __toESM(require(\"react-dom\"));\nvar $f1701beae083dbae$export$602eac185826482c2 = \/* @__PURE__ *\/ (0, import_react56.forwardRef)((props, forwardedRef) => {\n var _globalThis$document;\n const _a3 = props, { container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body } = _a3, portalProps = __objRest(_a3, [\"container\"]);\n return container ? \/* @__PURE__ *\/ import_react_dom9.default.createPortal(\/* @__PURE__ *\/ (0, import_react56.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/node_modules\/@radix-ui\/react-visually-hidden\/dist\/index.module.js\nvar import_react57 = require(\"react\");\nvar $ea1ef594cf570d83$export$439d29a4e110a1642 = \/* @__PURE__ *\/ (0, import_react57.forwardRef)((props, forwardedRef) => {\n return \/* @__PURE__ *\/ (0, import_react57.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({}, props, {\n ref: forwardedRef,\n style: __spreadValues({\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n }, props.style)\n }));\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-select\/dist\/index.module.js\nvar $cc7e05a45900e73f$var$OPEN_KEYS = [\n \" \",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\"\n];\nvar $cc7e05a45900e73f$var$SELECTION_KEYS = [\n \" \",\n \"Enter\"\n];\nvar $cc7e05a45900e73f$var$SELECT_NAME = \"Select\";\nvar [$cc7e05a45900e73f$var$Collection, $cc7e05a45900e73f$var$useCollection, $cc7e05a45900e73f$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb22($cc7e05a45900e73f$var$SELECT_NAME);\nvar [$cc7e05a45900e73f$var$createSelectContext, $cc7e05a45900e73f$export$286727a75dc039bd] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cc7e05a45900e73f$var$SELECT_NAME, [\n $cc7e05a45900e73f$var$createCollectionScope,\n $cf1ac5d9fe0e8206$export$722aac194ae9232\n]);\nvar $cc7e05a45900e73f$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae9232();\nvar [$cc7e05a45900e73f$var$SelectProvider, $cc7e05a45900e73f$var$useSelectContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);\nvar [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);\nvar $cc7e05a45900e73f$export$ef9b1a59e592288f = (props) => {\n const { __scopeSelect, children, open: openProp, defaultOpen, onOpenChange, value: valueProp, defaultValue, onValueChange, dir, name, autoComplete, disabled, required } = props;\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = (0, import_react58.useState)(null);\n const [valueNode, setValueNode] = (0, import_react58.useState)(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = (0, import_react58.useState)(false);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = (0, import_react58.useRef)(null);\n const isFormControl = trigger ? Boolean(trigger.closest(\"form\")) : true;\n const [nativeOptionsSet, setNativeOptionsSet] = (0, import_react58.useState)(\/* @__PURE__ *\/ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map(\n (option) => option.props.value\n ).join(\";\");\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe92, popperScope, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectProvider, {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: $1746a345f3d73bb7$export$f680877a34711e37(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.Provider, {\n scope: __scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectNativeOptionsProvider, {\n scope: props.__scopeSelect,\n onNativeOptionAdd: (0, import_react58.useCallback)((option) => {\n setNativeOptionsSet(\n (prev) => new Set(prev).add(option)\n );\n }, []),\n onNativeOptionRemove: (0, import_react58.useCallback)((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, [])\n }, children)), isFormControl ? \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$BubbleSelect, {\n key: nativeSelectKey,\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled\n }, value === void 0 ? \/* @__PURE__ *\/ (0, import_react58.createElement)(\"option\", {\n value: \"\"\n }) : null, Array.from(nativeOptionsSet)) : null));\n};\nvar $cc7e05a45900e73f$var$TRIGGER_NAME = \"SelectTrigger\";\nvar $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, disabled = false } = _a3, triggerProps = __objRest(_a3, [\"__scopeSelect\", \"disabled\"]);\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.onTriggerChange);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = $cc7e05a45900e73f$var$useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter(\n (item) => !item.disabled\n );\n const currentItem = enabledItems.find(\n (item) => item.value === context.value\n );\n const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0)\n context.onValueChange(nextItem.value);\n });\n const handleOpen = () => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n };\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cf1ac5d9fe0e8206$export$b688253958b8dfe72, _extends2({\n asChild: true\n }, popperScope), \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.button, _extends2({\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": context.value === void 0 ? \"\" : void 0\n }, triggerProps, {\n ref: composedRefs,\n onClick: $e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n }),\n onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onPointerDown, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId))\n target.releasePointerCapture(event.pointerId);\n if (event.button === 0 && event.ctrlKey === false) {\n handleOpen();\n context.triggerPointerDownPosRef.current = {\n x: Math.round(event.pageX),\n y: Math.round(event.pageY)\n };\n event.preventDefault();\n }\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \")\n return;\n if ($cc7e05a45900e73f$var$OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n })));\n});\nvar $cc7e05a45900e73f$var$VALUE_NAME = \"SelectValue\";\nvar $cc7e05a45900e73f$export$e288731fd71264f0 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, className, style, children, placeholder: placeholder2 } = _a3, valueProps = __objRest(_a3, [\"__scopeSelect\", \"className\", \"style\", \"children\", \"placeholder\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.onValueNodeChange);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [\n onValueNodeHasChildrenChange,\n hasChildren\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({}, valueProps, {\n ref: composedRefs,\n style: {\n pointerEvents: \"none\"\n }\n }), context.value === void 0 && placeholder2 !== void 0 ? placeholder2 : children);\n});\nvar $cc7e05a45900e73f$export$99b400cabb58c515 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, children } = _a3, iconProps = __objRest(_a3, [\"__scopeSelect\", \"children\"]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({\n \"aria-hidden\": true\n }, iconProps, {\n ref: forwardedRef\n }), children || \"\\u25BC\");\n});\nvar $cc7e05a45900e73f$export$b2af6c9944296213 = (props) => {\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($f1701beae083dbae$export$602eac185826482c2, _extends2({\n asChild: true\n }, props));\n};\nvar $cc7e05a45900e73f$var$CONTENT_NAME = \"SelectContent\";\nvar $cc7e05a45900e73f$export$c973a4b3cb86a03d = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = (0, import_react58.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? \/* @__PURE__ *\/ (0, import_react_dom10.createPortal)(\/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectContentProvider, {\n scope: props.__scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.Slot, {\n scope: props.__scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"div\", null, props.children))), frag) : null;\n }\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectContentImpl, _extends2({}, props, {\n ref: forwardedRef\n }));\n});\nvar $cc7e05a45900e73f$var$CONTENT_MARGIN = 10;\nvar [$cc7e05a45900e73f$var$SelectContentProvider, $cc7e05a45900e73f$var$useSelectContentContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME);\nvar $cc7e05a45900e73f$var$SelectContentImpl = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } = _a3, contentProps = __objRest(_a3, [\n \"__scopeSelect\",\n \"position\",\n \"onCloseAutoFocus\",\n \"onEscapeKeyDown\",\n \"onPointerDownOutside\",\n \"side\",\n \"sideOffset\",\n \"align\",\n \"alignOffset\",\n \"arrowPadding\",\n \"collisionBoundary\",\n \"collisionPadding\",\n \"sticky\",\n \"hideWhenDetached\",\n \"avoidCollisions\"\n ]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const [content, setContent] = (0, import_react58.useState)(null);\n const [viewport, setViewport] = (0, import_react58.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const [selectedItem, setSelectedItem] = (0, import_react58.useState)(null);\n const [selectedItemText, setSelectedItemText] = (0, import_react58.useState)(null);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = (0, import_react58.useState)(false);\n const firstValidItemFoundRef = (0, import_react58.useRef)(false);\n (0, import_react58.useEffect)(() => {\n if (content)\n return hideOthers(content);\n }, [\n content\n ]);\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n const focusFirst = (0, import_react58.useCallback)((candidates) => {\n const [firstItem, ...restItems] = getItems().map(\n (item) => item.ref.current\n );\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n candidate === null || candidate === void 0 || candidate.scrollIntoView({\n block: \"nearest\"\n });\n if (candidate === firstItem && viewport)\n viewport.scrollTop = 0;\n if (candidate === lastItem && viewport)\n viewport.scrollTop = viewport.scrollHeight;\n candidate === null || candidate === void 0 || candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)\n return;\n }\n }, [\n getItems,\n viewport\n ]);\n const focusSelectedItem = (0, import_react58.useCallback)(\n () => focusFirst([\n selectedItem,\n content\n ]),\n [\n focusFirst,\n selectedItem,\n content\n ]\n );\n (0, import_react58.useEffect)(() => {\n if (isPositioned)\n focusSelectedItem();\n }, [\n isPositioned,\n focusSelectedItem\n ]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n (0, import_react58.useEffect)(() => {\n if (content) {\n let pointerMoveDelta = {\n x: 0,\n y: 0\n };\n const handlePointerMove = (event) => {\n var _triggerPointerDownPo, _triggerPointerDownPo2, _triggerPointerDownPo3, _triggerPointerDownPo4;\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - ((_triggerPointerDownPo = (_triggerPointerDownPo2 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo2 === void 0 ? void 0 : _triggerPointerDownPo2.x) !== null && _triggerPointerDownPo !== void 0 ? _triggerPointerDownPo : 0)),\n y: Math.abs(Math.round(event.pageY) - ((_triggerPointerDownPo3 = (_triggerPointerDownPo4 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo4 === void 0 ? void 0 : _triggerPointerDownPo4.y) !== null && _triggerPointerDownPo3 !== void 0 ? _triggerPointerDownPo3 : 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10)\n event.preventDefault();\n else if (!content.contains(event.target))\n onOpenChange(false);\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, {\n capture: true,\n once: true\n });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, {\n capture: true\n });\n };\n }\n }, [\n content,\n onOpenChange,\n triggerPointerDownPosRef\n ]);\n (0, import_react58.useEffect)(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [\n onOpenChange\n ]);\n const [searchRef, handleTypeaheadSearch] = $cc7e05a45900e73f$var$useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter(\n (item) => !item.disabled\n );\n const currentItem = enabledItems.find(\n (item) => item.ref.current === document.activeElement\n );\n const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);\n if (nextItem)\n setTimeout(\n () => nextItem.ref.current.focus()\n );\n });\n const itemRefCallback = (0, import_react58.useCallback)((node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem)\n firstValidItemFoundRef.current = true;\n }\n }, [\n context.value\n ]);\n const handleItemLeave = (0, import_react58.useCallback)(\n () => content === null || content === void 0 ? void 0 : content.focus(),\n [\n content\n ]\n );\n const itemTextRefCallback = (0, import_react58.useCallback)((node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem)\n setSelectedItemText(node);\n }, [\n context.value\n ]);\n const SelectPosition = position === \"popper\" ? $cc7e05a45900e73f$var$SelectPopperPosition : $cc7e05a45900e73f$var$SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === $cc7e05a45900e73f$var$SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectContentProvider, {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(Combination_default, {\n as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,\n allowPinchZoom: true\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($d3863c46a17e8a28$export$20e40289641fbbb62, {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(onCloseAutoFocus, (event) => {\n var _context$trigger;\n (_context$trigger = context.trigger) === null || _context$trigger === void 0 || _context$trigger.focus({\n preventScroll: true\n });\n event.preventDefault();\n })\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($5cb92bef7577960e$export$177fb62ff3ec1f222, {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false)\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(SelectPosition, _extends2({\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault()\n }, contentProps, popperContentProps, {\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: __spreadValues({\n display: \"flex\",\n flexDirection: \"column\",\n outline: \"none\"\n }, contentProps.style),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\")\n event.preventDefault();\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key);\n if ([\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\"\n ].includes(event.key)) {\n const items = getItems().filter(\n (item) => !item.disabled\n );\n let candidateNodes = items.map(\n (item) => item.ref.current\n );\n if ([\n \"ArrowUp\",\n \"End\"\n ].includes(event.key))\n candidateNodes = candidateNodes.slice().reverse();\n if ([\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(\n () => focusFirst(candidateNodes)\n );\n event.preventDefault();\n }\n })\n }))))));\n});\nvar $cc7e05a45900e73f$var$SelectItemAlignedPosition = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, onPlaced } = _a3, popperProps = __objRest(_a3, [\"__scopeSelect\", \"onPlaced\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = (0, import_react58.useState)(null);\n const [content, setContent] = (0, import_react58.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setContent(node)\n );\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = (0, import_react58.useRef)(false);\n const shouldRepositionRef = (0, import_react58.useRef)(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = (0, import_react58.useCallback)(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const clampedLeft = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(left, [\n $cc7e05a45900e73f$var$CONTENT_MARGIN,\n rightEdge - contentWidth\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const clampedRight = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(right, [\n $cc7e05a45900e73f$var$CONTENT_MARGIN,\n leftEdge - contentWidth\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height \/ 2 - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight \/ 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${$cc7e05a45900e73f$var$CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced === null || onPlaced === void 0 || onPlaced();\n requestAnimationFrame(\n () => shouldExpandOnScrollRef.current = true\n );\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(\n () => position(),\n [\n position\n ]\n );\n const [contentZIndex, setContentZIndex] = (0, import_react58.useState)();\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (content)\n setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const handleScrollButtonChange = (0, import_react58.useCallback)((node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem === null || focusSelectedItem === void 0 || focusSelectedItem();\n shouldRepositionRef.current = false;\n }\n }, [\n position,\n focusSelectedItem\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectViewportProvider, {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"div\", {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n }\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({}, popperProps, {\n ref: composedRefs,\n style: __spreadValues({\n boxSizing: \"border-box\",\n maxHeight: \"100%\"\n }, popperProps.style)\n }))));\n});\nvar $cc7e05a45900e73f$var$SelectPopperPosition = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, align = \"start\", collisionPadding = $cc7e05a45900e73f$var$CONTENT_MARGIN } = _a3, popperProps = __objRest(_a3, [\"__scopeSelect\", \"align\", \"collisionPadding\"]);\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d22, _extends2({}, popperScope, popperProps, {\n ref: forwardedRef,\n align,\n collisionPadding,\n style: __spreadProps(__spreadValues({\n boxSizing: \"border-box\"\n }, popperProps.style), {\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n })\n }));\n});\nvar [$cc7e05a45900e73f$var$SelectViewportProvider, $cc7e05a45900e73f$var$useSelectViewportContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, {});\nvar $cc7e05a45900e73f$var$VIEWPORT_NAME = \"SelectViewport\";\nvar $cc7e05a45900e73f$export$9ed6e7b40248d36d = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect } = _a3, viewportProps = __objRest(_a3, [\"__scopeSelect\"]);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = (0, import_react58.useRef)(0);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)(import_react58.Fragment, null, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n }\n }), \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.Slot, {\n scope: __scopeSelect\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\"\n }, viewportProps, {\n ref: composedRefs,\n style: __spreadValues({\n position: \"relative\",\n flex: 1,\n overflow: \"auto\"\n }, viewportProps.style),\n onScroll: $e42e1063c40fb3ef$export$b9ecd428b558ff10(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef !== null && shouldExpandOnScrollRef !== void 0 && shouldExpandOnScrollRef.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }))));\n});\nvar $cc7e05a45900e73f$var$GROUP_NAME = \"SelectGroup\";\nvar [$cc7e05a45900e73f$var$SelectGroupContextProvider, $cc7e05a45900e73f$var$useSelectGroupContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$GROUP_NAME);\nvar $cc7e05a45900e73f$var$ITEM_NAME = \"SelectItem\";\nvar [$cc7e05a45900e73f$var$SelectItemContextProvider, $cc7e05a45900e73f$var$useSelectItemContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$ITEM_NAME);\nvar $cc7e05a45900e73f$export$13ef48a934230896 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, value, disabled = false, textValue: textValueProp } = _a3, itemProps = __objRest(_a3, [\"__scopeSelect\", \"value\", \"disabled\", \"textValue\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = (0, import_react58.useState)(textValueProp !== null && textValueProp !== void 0 ? textValueProp : \"\");\n const [isFocused, setIsFocused] = (0, import_react58.useState)(false);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node) => {\n var _contentContext$itemR;\n return (_contentContext$itemR = contentContext.itemRefCallback) === null || _contentContext$itemR === void 0 ? void 0 : _contentContext$itemR.call(contentContext, node, value, disabled);\n });\n const textId = $1746a345f3d73bb7$export$f680877a34711e37();\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectItemContextProvider, {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: (0, import_react58.useCallback)((node) => {\n setTextValue((prevTextValue) => {\n var _node$textContent;\n return prevTextValue || ((_node$textContent = node === null || node === void 0 ? void 0 : node.textContent) !== null && _node$textContent !== void 0 ? _node$textContent : \"\").trim();\n });\n }, [])\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$Collection.ItemSlot, {\n scope: __scopeSelect,\n value,\n disabled,\n textValue\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1\n }, itemProps, {\n ref: composedRefs,\n onFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n itemProps.onFocus,\n () => setIsFocused(true)\n ),\n onBlur: $e42e1063c40fb3ef$export$b9ecd428b558ff10(\n itemProps.onBlur,\n () => setIsFocused(false)\n ),\n onPointerUp: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerUp, handleSelect),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerMove, (event) => {\n if (disabled) {\n var _contentContext$onIte;\n (_contentContext$onIte = contentContext.onItemLeave) === null || _contentContext$onIte === void 0 || _contentContext$onIte.call(contentContext);\n } else\n event.currentTarget.focus({\n preventScroll: true\n });\n }),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n var _contentContext$onIte2;\n (_contentContext$onIte2 = contentContext.onItemLeave) === null || _contentContext$onIte2 === void 0 || _contentContext$onIte2.call(contentContext);\n }\n }),\n onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(itemProps.onKeyDown, (event) => {\n var _contentContext$searc;\n const isTypingAhead = ((_contentContext$searc = contentContext.searchRef) === null || _contentContext$searc === void 0 ? void 0 : _contentContext$searc.current) !== \"\";\n if (isTypingAhead && event.key === \" \")\n return;\n if ($cc7e05a45900e73f$var$SELECTION_KEYS.includes(event.key))\n handleSelect();\n if (event.key === \" \")\n event.preventDefault();\n })\n }))));\n});\nvar $cc7e05a45900e73f$var$ITEM_TEXT_NAME = \"SelectItemText\";\nvar $cc7e05a45900e73f$export$3572fb0fb821ff49 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, className, style } = _a3, itemTextProps = __objRest(_a3, [\"__scopeSelect\", \"className\", \"style\"]);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = $cc7e05a45900e73f$var$useSelectItemContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = $cc7e05a45900e73f$var$useSelectNativeOptionsContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = (0, import_react58.useState)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => {\n var _contentContext$itemT;\n return (_contentContext$itemT = contentContext.itemTextRefCallback) === null || _contentContext$itemT === void 0 ? void 0 : _contentContext$itemT.call(contentContext, node, itemContext.value, itemContext.disabled);\n }\n );\n const textContent = itemTextNode === null || itemTextNode === void 0 ? void 0 : itemTextNode.textContent;\n const nativeOption = (0, import_react58.useMemo)(\n () => \/* @__PURE__ *\/ (0, import_react58.createElement)(\"option\", {\n key: itemContext.value,\n value: itemContext.value,\n disabled: itemContext.disabled\n }, textContent),\n [\n itemContext.disabled,\n itemContext.value,\n textContent\n ]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [\n onNativeOptionAdd,\n onNativeOptionRemove,\n nativeOption\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)(import_react58.Fragment, null, \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.span, _extends2({\n id: itemContext.textId\n }, itemTextProps, {\n ref: composedRefs\n })), itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? \/* @__PURE__ *\/ (0, import_react_dom10.createPortal)(itemTextProps.children, context.valueNode) : null);\n});\nvar $cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar $cc7e05a45900e73f$export$d8117927658af6d7 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp1, setCanScrollUp] = (0, import_react58.useState)(false);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, viewportContext.onScrollButtonChange);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp);\n };\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollUp1 ? \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectScrollButtonImpl, _extends2({}, props, {\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem)\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n })) : null;\n});\nvar $cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar $cc7e05a45900e73f$export$ff951e476c12189 = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown1, setCanScrollDown] = (0, import_react58.useState)(false);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, viewportContext.onScrollButtonChange);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown);\n };\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollDown1 ? \/* @__PURE__ *\/ (0, import_react58.createElement)($cc7e05a45900e73f$var$SelectScrollButtonImpl, _extends2({}, props, {\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem)\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n })) : null;\n});\nvar $cc7e05a45900e73f$var$SelectScrollButtonImpl = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { __scopeSelect, onAutoScroll } = _a3, scrollIndicatorProps = __objRest(_a3, [\"__scopeSelect\", \"onAutoScroll\"]);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = (0, import_react58.useRef)(null);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const clearAutoScrollTimer = (0, import_react58.useCallback)(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n (0, import_react58.useEffect)(() => {\n return () => clearAutoScrollTimer();\n }, [\n clearAutoScrollTimer\n ]);\n $9f79659886946c16$export$e5c5a5f917a5871c(() => {\n var _activeItem$ref$curre;\n const activeItem = getItems().find(\n (item) => item.ref.current === document.activeElement\n );\n activeItem === null || activeItem === void 0 || (_activeItem$ref$curre = activeItem.ref.current) === null || _activeItem$ref$curre === void 0 || _activeItem$ref$curre.scrollIntoView({\n block: \"nearest\"\n });\n }, [\n getItems\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($8927f6f2acc4f386$export$250ffa63cdc0d0342.div, _extends2({\n \"aria-hidden\": true\n }, scrollIndicatorProps, {\n ref: forwardedRef,\n style: __spreadValues({\n flexShrink: 0\n }, scrollIndicatorProps.style),\n onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerMove, () => {\n var _contentContext$onIte3;\n (_contentContext$onIte3 = contentContext.onItemLeave) === null || _contentContext$onIte3 === void 0 || _contentContext$onIte3.call(contentContext);\n if (autoScrollTimerRef.current === null)\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }),\n onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }));\n});\nvar $cc7e05a45900e73f$var$BubbleSelect = \/* @__PURE__ *\/ (0, import_react58.forwardRef)((props, forwardedRef) => {\n const _a3 = props, { value } = _a3, selectProps = __objRest(_a3, [\"value\"]);\n const ref = (0, import_react58.useRef)(null);\n const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);\n const prevValue = $010c2913dbd2fe3d$export$5cae361ad82dce8b(value);\n (0, import_react58.useEffect)(() => {\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(selectProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", {\n bubbles: true\n });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n return \/* @__PURE__ *\/ (0, import_react58.createElement)($ea1ef594cf570d83$export$439d29a4e110a1642, {\n asChild: true\n }, \/* @__PURE__ *\/ (0, import_react58.createElement)(\"select\", _extends2({}, selectProps, {\n ref: composedRefs,\n defaultValue: value\n })));\n});\n$cc7e05a45900e73f$var$BubbleSelect.displayName = \"BubbleSelect\";\nfunction $cc7e05a45900e73f$var$useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onSearchChange);\n const searchRef = (0, import_react58.useRef)(\"\");\n const timerRef = (0, import_react58.useRef)(0);\n const handleTypeaheadSearch = (0, import_react58.useCallback)((key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\")\n timerRef.current = window.setTimeout(\n () => updateSearch(\"\"),\n 1e3\n );\n })(search);\n }, [\n handleSearchChange\n ]);\n const resetTypeahead = (0, import_react58.useCallback)(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n (0, import_react58.useEffect)(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [\n searchRef,\n handleTypeaheadSearch,\n resetTypeahead\n ];\n}\nfunction $cc7e05a45900e73f$var$findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every(\n (char) => char === search[0]\n );\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = $cc7e05a45900e73f$var$wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem)\n wrappedItems = wrappedItems.filter(\n (v4) => v4 !== currentItem\n );\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction $cc7e05a45900e73f$var$wrapArray(array2, startIndex) {\n return array2.map(\n (_2, index3) => array2[(startIndex + index3) % array2.length]\n );\n}\nvar $cc7e05a45900e73f$export$be92b6f5f03c0fe9 = $cc7e05a45900e73f$export$ef9b1a59e592288f;\nvar $cc7e05a45900e73f$export$41fb9f06171c75f4 = $cc7e05a45900e73f$export$3ac1e88a1c0b9f1;\nvar $cc7e05a45900e73f$export$4c8d1a57a761ef94 = $cc7e05a45900e73f$export$e288731fd71264f0;\nvar $cc7e05a45900e73f$export$f04a61298a47a40f = $cc7e05a45900e73f$export$99b400cabb58c515;\nvar $cc7e05a45900e73f$export$602eac185826482c = $cc7e05a45900e73f$export$b2af6c9944296213;\nvar $cc7e05a45900e73f$export$7c6e2c02157bb7d2 = $cc7e05a45900e73f$export$c973a4b3cb86a03d;\nvar $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 = $cc7e05a45900e73f$export$9ed6e7b40248d36d;\nvar $cc7e05a45900e73f$export$6d08773d2e66f8f2 = $cc7e05a45900e73f$export$13ef48a934230896;\nvar $cc7e05a45900e73f$export$d6e5bf9c43ea9319 = $cc7e05a45900e73f$export$3572fb0fb821ff49;\nvar $cc7e05a45900e73f$export$2f60d3ec9ad468f2 = $cc7e05a45900e73f$export$d8117927658af6d7;\nvar $cc7e05a45900e73f$export$bf1aedc3039c8d63 = $cc7e05a45900e73f$export$ff951e476c12189;\n\n\/\/ src\/components\/inputs\/SelectInput.tsx\nvar import_jsx_runtime45 = require(\"react\/jsx-runtime\");\nfunction SelectInput(_a3) {\n var _b = _a3, {\n options,\n tooltip,\n popoverSide,\n chevron = true,\n value,\n onValueChange\n } = _b, rest = __objRest(_b, [\n \"options\",\n \"tooltip\",\n \"popoverSide\",\n \"chevron\",\n \"value\",\n \"onValueChange\"\n ]);\n const [isOpen, setIsOpen] = React49.useState(false);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(\"div\", __spreadProps(__spreadValues({}, rest), {\n className: \"tl-select-input\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsxs)($cc7e05a45900e73f$export$be92b6f5f03c0fe9, {\n open: isOpen,\n onOpenChange: setIsOpen,\n value,\n onValueChange,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(Tooltip, {\n content: tooltip,\n side: popoverSide,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsxs)($cc7e05a45900e73f$export$41fb9f06171c75f4, {\n className: \"tl-select-input-trigger\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(\"div\", {\n className: \"tl-select-input-trigger-value\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$4c8d1a57a761ef94, {})\n }),\n chevron && \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$f04a61298a47a40f, {\n style: { lineHeight: 1 },\n className: \"ml-1 md:ml-3\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)(TablerIcon, {\n name: isOpen ? \"chevron-up\" : \"chevron-down\"\n })\n })\n ]\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$602eac185826482c, {\n className: \"tl-select-input-portal\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsxs)($cc7e05a45900e73f$export$7c6e2c02157bb7d2, {\n className: \"tl-select-input-content\",\n side: popoverSide,\n position: \"popper\",\n sideOffset: 14,\n align: \"center\",\n onKeyDown: (e2) => e2.stopPropagation(),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$2f60d3ec9ad468f2, {}),\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$d5c6c08dc2d3ca7, {\n className: \"tl-select-input-viewport\",\n children: options.map((option) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$6d08773d2e66f8f2, {\n className: \"tl-select-input-select-item\",\n value: option.value,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$d6e5bf9c43ea9319, {\n children: option.label\n })\n }, option.value);\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime45.jsx)($cc7e05a45900e73f$export$bf1aedc3039c8d63, {})\n ]\n })\n })\n ]\n })\n }));\n}\n\n\/\/ src\/components\/inputs\/ScaleInput.tsx\nvar import_react60 = __toESM(require(\"react\"));\nvar import_jsx_runtime46 = require(\"react\/jsx-runtime\");\nfunction ScaleInput(_a3) {\n var _b = _a3, { scaleLevel, compact, popoverSide } = _b, rest = __objRest(_b, [\"scaleLevel\", \"compact\", \"popoverSide\"]);\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react60.default.useContext(LogseqContext);\n const sizeOptions = [\n {\n label: compact ? \"XS\" : t2(\"whiteboard\/extra-small\"),\n value: \"xs\"\n },\n {\n label: compact ? \"SM\" : t2(\"whiteboard\/small\"),\n value: \"sm\"\n },\n {\n label: compact ? \"MD\" : t2(\"whiteboard\/medium\"),\n value: \"md\"\n },\n {\n label: compact ? \"LG\" : t2(\"whiteboard\/large\"),\n value: \"lg\"\n },\n {\n label: compact ? \"XL\" : t2(\"whiteboard\/extra-large\"),\n value: \"xl\"\n },\n {\n label: compact ? \"XXL\" : t2(\"whiteboard\/huge\"),\n value: \"xxl\"\n }\n ];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime46.jsx)(SelectInput, {\n tooltip: t2(\"whiteboard\/scale-level\"),\n options: sizeOptions,\n value: scaleLevel,\n popoverSide,\n chevron: !compact,\n onValueChange: (v4) => {\n app.api.setScaleLevel(v4);\n }\n });\n}\n\n\/\/ src\/components\/PrimaryTools\/PrimaryTools.tsx\nvar import_jsx_runtime47 = require(\"react\/jsx-runtime\");\nvar PrimaryTools = observer(function PrimaryTools2() {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = React51.useContext(LogseqContext);\n const handleSetColor = React51.useCallback((color) => {\n app.api.setColor(color);\n }, []);\n const handleToolClick = React51.useCallback((e2) => {\n const tool = e2.currentTarget.dataset.tool;\n if (tool)\n app.selectTool(tool);\n }, []);\n const [activeGeomId, setActiveGeomId] = React51.useState(\n () => {\n var _a3;\n return (_a3 = Object.values(Geometry).find((geo) => geo === app.selectedTool.id)) != null ? _a3 : Object.values(Geometry)[0];\n }\n );\n React51.useEffect(() => {\n setActiveGeomId((prevId) => {\n var _a3;\n return (_a3 = Object.values(Geometry).find((geo) => geo === app.selectedTool.id)) != null ? _a3 : prevId;\n });\n }, [app.selectedTool.id]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(\"div\", {\n className: \"tl-primary-tools\",\n \"data-html2canvas-ignore\": \"true\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsxs)(\"div\", {\n className: \"tl-toolbar tl-tools-floating-panel\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"select\"),\n tooltip: t2(\"whiteboard\/select\"),\n id: \"select\",\n icon: \"select-cursor\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"move\"),\n tooltip: t2(\"whiteboard\/pan\"),\n id: \"move\",\n icon: app.isIn(\"move.panning\") ? \"hand-grab\" : \"hand-stop\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"horizontal\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"logseq-portal\"),\n tooltip: t2(\"whiteboard\/add-block-or-page\"),\n id: \"logseq-portal\",\n icon: \"circle-plus\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"pencil\"),\n tooltip: t2(\"whiteboard\/draw\"),\n id: \"pencil\",\n icon: \"ballpen\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"highlighter\"),\n tooltip: t2(\"whiteboard\/highlight\"),\n id: \"highlighter\",\n icon: \"highlight\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"erase\"),\n tooltip: t2(\"whiteboard\/eraser\"),\n id: \"erase\",\n icon: \"eraser\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"line\"),\n tooltip: t2(\"whiteboard\/connector\"),\n id: \"line\",\n icon: \"connector\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ToolButton, {\n handleClick: () => app.selectTool(\"text\"),\n tooltip: t2(\"whiteboard\/text\"),\n id: \"text\",\n icon: \"text\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(GeometryTools, {\n activeGeometry: activeGeomId,\n setGeometry: handleToolClick\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"horizontal\",\n style: { margin: \"0 -4px\" }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ColorInput, {\n popoverSide: \"left\",\n color: app.settings.color,\n setColor: handleSetColor\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime47.jsx)(ScaleInput, {\n scaleLevel: app.settings.scaleLevel,\n popoverSide: \"left\",\n compact: true\n })\n ]\n })\n });\n});\n\n\/\/ src\/components\/StatusBar\/StatusBar.tsx\nvar import_jsx_runtime48 = require(\"react\/jsx-runtime\");\nvar StatusBar = observer(function StatusBar2() {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime48.jsxs)(\"div\", {\n className: \"tl-statusbar\",\n \"data-html2canvas-ignore\": \"true\",\n children: [\n app.selectedTool.id,\n \" | \",\n app.selectedTool.currentState.id,\n \/* @__PURE__ *\/ (0, import_jsx_runtime48.jsx)(\"div\", {\n style: { flex: 1 }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime48.jsx)(\"div\", {\n id: \"tl-statusbar-anchor\",\n className: \"flex gap-1\"\n })\n ]\n });\n});\n\n\/\/ src\/components\/AppUI.tsx\nvar import_jsx_runtime49 = require(\"react\/jsx-runtime\");\nvar AppUI = observer(function AppUI2() {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, {\n children: [\n isDev() && \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(StatusBar, {}),\n isDev() && \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(DevTools, {}),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(PrimaryTools, {}),\n \/* @__PURE__ *\/ (0, import_jsx_runtime49.jsx)(ActionBar, {})\n ]\n });\n});\n\n\/\/ src\/components\/ContextBar\/ContextBar.tsx\nvar React71 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/ContextBar\/contextBarActionFactory.tsx\nvar import_react91 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/inputs\/ShapeLinksInput.tsx\nvar import_react88 = __toESM(require(\"react\"));\n\n\/\/ src\/components\/BlockLink\/BlockLink.tsx\nvar import_react64 = __toESM(require(\"react\"));\nvar import_jsx_runtime50 = require(\"react\/jsx-runtime\");\nvar BlockLink = ({\n id: id3,\n showReferenceContent = false\n}) => {\n var _a3;\n const {\n handlers: { isWhiteboardPage, redirectToPage, sidebarAddBlock, queryBlockByUUID },\n renderers: { Breadcrumb, PageName }\n } = import_react64.default.useContext(LogseqContext);\n let iconName = \"\";\n let linkType = validUUID(id3) ? \"B\" : \"P\";\n let blockContent = \"\";\n if (validUUID(id3)) {\n const block = queryBlockByUUID(id3);\n if (!block) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(\"span\", {\n className: \"p-2\",\n children: \"Invalid reference. Did you remove it?\"\n });\n }\n blockContent = block.content;\n if (((_a3 = block.properties) == null ? void 0 : _a3[\"ls-type\"]) === \"whiteboard-shape\") {\n iconName = \"link-to-whiteboard\";\n } else {\n iconName = \"link-to-block\";\n }\n } else {\n if (isWhiteboardPage(id3)) {\n iconName = \"link-to-whiteboard\";\n } else {\n iconName = \"link-to-page\";\n }\n }\n const slicedContent = blockContent && blockContent.length > 23 ? blockContent.slice(0, 20) + \"...\" : blockContent;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsxs)(\"button\", {\n className: \"inline-flex gap-1 items-center w-full\",\n onPointerDown: (e2) => {\n e2.stopPropagation();\n if (e2.shiftKey) {\n sidebarAddBlock(id3, linkType === \"B\" ? \"block\" : \"page\");\n } else {\n redirectToPage(id3);\n }\n },\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(TablerIcon, {\n name: iconName\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(\"span\", {\n className: \"pointer-events-none block-link-reference-row\",\n children: linkType === \"P\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(PageName, {\n pageName: id3\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime50.jsx)(Breadcrumb, {\n levelLimit: 1,\n blockId: id3,\n endSeparator: showReferenceContent\n }),\n showReferenceContent && slicedContent\n ]\n })\n })\n ]\n });\n};\n\n\/\/ src\/components\/QuickSearch\/QuickSearch.tsx\nvar import_react86 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@virtuoso.dev\/react-urx\/dist\/react-urx.esm.js\nvar import_react65 = require(\"react\");\n\n\/\/ ..\/..\/node_modules\/@virtuoso.dev\/urx\/dist\/urx.esm.js\nvar PUBLISH = 0;\nvar SUBSCRIBE = 1;\nvar RESET = 2;\nvar VALUE = 4;\nfunction compose(a5, b5) {\n return function(arg) {\n return a5(b5(arg));\n };\n}\nfunction thrush(arg, proc) {\n return proc(arg);\n}\nfunction curry2to1(proc, arg1) {\n return function(arg2) {\n return proc(arg1, arg2);\n };\n}\nfunction curry1to0(proc, arg) {\n return function() {\n return proc(arg);\n };\n}\nfunction tap(arg, proc) {\n proc(arg);\n return arg;\n}\nfunction tup() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n}\nfunction call2(proc) {\n proc();\n}\nfunction always(value) {\n return function() {\n return value;\n };\n}\nfunction joinProc() {\n for (var _len2 = arguments.length, procs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n procs[_key2] = arguments[_key2];\n }\n return function() {\n procs.map(call2);\n };\n}\nfunction noop4() {\n}\nfunction subscribe(emitter, subscription) {\n return emitter(SUBSCRIBE, subscription);\n}\nfunction publish(publisher, value) {\n publisher(PUBLISH, value);\n}\nfunction reset(emitter) {\n emitter(RESET);\n}\nfunction getValue(depot) {\n return depot(VALUE);\n}\nfunction connect(emitter, publisher) {\n return subscribe(emitter, curry2to1(publisher, PUBLISH));\n}\nfunction handleNext(emitter, subscription) {\n var unsub = emitter(SUBSCRIBE, function(value) {\n unsub();\n subscription(value);\n });\n return unsub;\n}\nfunction stream() {\n var subscriptions = [];\n return function(action2, arg) {\n switch (action2) {\n case RESET:\n subscriptions.splice(0, subscriptions.length);\n return;\n case SUBSCRIBE:\n subscriptions.push(arg);\n return function() {\n var indexOf = subscriptions.indexOf(arg);\n if (indexOf > -1) {\n subscriptions.splice(indexOf, 1);\n }\n };\n case PUBLISH:\n subscriptions.slice().forEach(function(subscription) {\n subscription(arg);\n });\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction statefulStream(initial) {\n var value = initial;\n var innerSubject = stream();\n return function(action2, arg) {\n switch (action2) {\n case SUBSCRIBE:\n var subscription = arg;\n subscription(value);\n break;\n case PUBLISH:\n value = arg;\n break;\n case VALUE:\n return value;\n }\n return innerSubject(action2, arg);\n };\n}\nfunction eventHandler(emitter) {\n var unsub;\n var currentSubscription;\n var cleanup = function cleanup2() {\n return unsub && unsub();\n };\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n if (subscription) {\n if (currentSubscription === subscription) {\n return;\n }\n cleanup();\n currentSubscription = subscription;\n unsub = subscribe(emitter, subscription);\n return unsub;\n } else {\n cleanup();\n return noop4;\n }\n case RESET:\n cleanup();\n currentSubscription = null;\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction streamFromEmitter(emitter) {\n return tap(stream(), function(stream2) {\n return connect(emitter, stream2);\n });\n}\nfunction statefulStreamFromEmitter(emitter, initial) {\n return tap(statefulStream(initial), function(stream2) {\n return connect(emitter, stream2);\n });\n}\nfunction combineOperators() {\n for (var _len = arguments.length, operators = new Array(_len), _key = 0; _key < _len; _key++) {\n operators[_key] = arguments[_key];\n }\n return function(subscriber) {\n return operators.reduceRight(thrush, subscriber);\n };\n}\nfunction pipe(source) {\n for (var _len2 = arguments.length, operators = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n operators[_key2 - 1] = arguments[_key2];\n }\n var project = combineOperators.apply(void 0, operators);\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n return subscribe(source, project(subscription));\n case RESET:\n reset(source);\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction defaultComparator(previous, next) {\n return previous === next;\n}\nfunction distinctUntilChanged(comparator) {\n if (comparator === void 0) {\n comparator = defaultComparator;\n }\n var current;\n return function(done) {\n return function(next) {\n if (!comparator(current, next)) {\n current = next;\n done(next);\n }\n };\n };\n}\nfunction filter(predicate) {\n return function(done) {\n return function(value) {\n predicate(value) && done(value);\n };\n };\n}\nfunction map2(project) {\n return function(done) {\n return compose(done, project);\n };\n}\nfunction mapTo(value) {\n return function(done) {\n return function() {\n return done(value);\n };\n };\n}\nfunction scan(scanner, initial) {\n return function(done) {\n return function(value) {\n return done(initial = scanner(initial, value));\n };\n };\n}\nfunction skip(times) {\n return function(done) {\n return function(value) {\n times > 0 ? times-- : done(value);\n };\n };\n}\nfunction throttleTime(interval) {\n var currentValue;\n var timeout;\n return function(done) {\n return function(value) {\n currentValue = value;\n if (timeout) {\n return;\n }\n timeout = setTimeout(function() {\n timeout = void 0;\n done(currentValue);\n }, interval);\n };\n };\n}\nfunction debounceTime(interval) {\n var currentValue;\n var timeout;\n return function(done) {\n return function(value) {\n currentValue = value;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(function() {\n done(currentValue);\n }, interval);\n };\n };\n}\nfunction withLatestFrom() {\n for (var _len3 = arguments.length, sources = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n sources[_key3] = arguments[_key3];\n }\n var values = new Array(sources.length);\n var called = 0;\n var pendingCall = null;\n var allCalled = Math.pow(2, sources.length) - 1;\n sources.forEach(function(source, index3) {\n var bit = Math.pow(2, index3);\n subscribe(source, function(value) {\n var prevCalled = called;\n called = called | bit;\n values[index3] = value;\n if (prevCalled !== allCalled && called === allCalled && pendingCall) {\n pendingCall();\n pendingCall = null;\n }\n });\n });\n return function(done) {\n return function(value) {\n var call3 = function call4() {\n return done([value].concat(values));\n };\n if (called === allCalled) {\n call3();\n } else {\n pendingCall = call3;\n }\n };\n };\n}\nfunction merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n return joinProc.apply(void 0, sources.map(function(source) {\n return subscribe(source, subscription);\n }));\n case RESET:\n return;\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction duc(source, comparator) {\n if (comparator === void 0) {\n comparator = defaultComparator;\n }\n return pipe(source, distinctUntilChanged(comparator));\n}\nfunction combineLatest() {\n var innerSubject = stream();\n for (var _len2 = arguments.length, emitters = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n emitters[_key2] = arguments[_key2];\n }\n var values = new Array(emitters.length);\n var called = 0;\n var allCalled = Math.pow(2, emitters.length) - 1;\n emitters.forEach(function(source, index3) {\n var bit = Math.pow(2, index3);\n subscribe(source, function(value) {\n values[index3] = value;\n called = called | bit;\n if (called === allCalled) {\n publish(innerSubject, values);\n }\n });\n });\n return function(action2, subscription) {\n switch (action2) {\n case SUBSCRIBE:\n if (called === allCalled) {\n subscription(values);\n }\n return subscribe(innerSubject, subscription);\n case RESET:\n return reset(innerSubject);\n default:\n throw new Error(\"unrecognized action \" + action2);\n }\n };\n}\nfunction system(constructor, dependencies, _temp) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n var _ref = _temp === void 0 ? {\n singleton: true\n } : _temp, singleton = _ref.singleton;\n return {\n id: id(),\n constructor,\n dependencies,\n singleton\n };\n}\nvar id = function id2() {\n return Symbol();\n};\nfunction init(systemSpec) {\n var singletons = \/* @__PURE__ *\/ new Map();\n var _init = function _init2(_ref2) {\n var id3 = _ref2.id, constructor = _ref2.constructor, dependencies = _ref2.dependencies, singleton = _ref2.singleton;\n if (singleton && singletons.has(id3)) {\n return singletons.get(id3);\n }\n var system2 = constructor(dependencies.map(function(e2) {\n return _init2(e2);\n }));\n if (singleton) {\n singletons.set(id3, system2);\n }\n return system2;\n };\n return _init(systemSpec);\n}\n\n\/\/ ..\/..\/node_modules\/@virtuoso.dev\/react-urx\/dist\/react-urx.esm.js\nfunction _objectWithoutPropertiesLoose2(source, excluded) {\n if (source == null)\n return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i4;\n for (i4 = 0; i4 < sourceKeys.length; i4++) {\n key = sourceKeys[i4];\n if (excluded.indexOf(key) >= 0)\n continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _unsupportedIterableToArray2(o4, minLen) {\n if (!o4)\n return;\n if (typeof o4 === \"string\")\n return _arrayLikeToArray2(o4, minLen);\n var n4 = Object.prototype.toString.call(o4).slice(8, -1);\n if (n4 === \"Object\" && o4.constructor)\n n4 = o4.constructor.name;\n if (n4 === \"Map\" || n4 === \"Set\")\n return Array.from(o4);\n if (n4 === \"Arguments\" || \/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$\/.test(n4))\n return _arrayLikeToArray2(o4, minLen);\n}\nfunction _arrayLikeToArray2(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i4 = 0, arr2 = new Array(len); i4 < len; i4++)\n arr2[i4] = arr[i4];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose2(o4, allowArrayLike) {\n var it2 = typeof Symbol !== \"undefined\" && o4[Symbol.iterator] || o4[\"@@iterator\"];\n if (it2)\n return (it2 = it2.call(o4)).next.bind(it2);\n if (Array.isArray(o4) || (it2 = _unsupportedIterableToArray2(o4)) || allowArrayLike && o4 && typeof o4.length === \"number\") {\n if (it2)\n o4 = it2;\n var i4 = 0;\n return function() {\n if (i4 >= o4.length)\n return {\n done: true\n };\n return {\n done: false,\n value: o4[i4++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar _excluded2 = [\"children\"];\nfunction omit(keys, obj) {\n var result = {};\n var index3 = {};\n var idx = 0;\n var len = keys.length;\n while (idx < len) {\n index3[keys[idx]] = 1;\n idx += 1;\n }\n for (var prop in obj) {\n if (!index3.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n}\nvar useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? import_react65.useLayoutEffect : import_react65.useEffect;\nfunction systemToComponent(systemSpec, map3, Root) {\n var requiredPropNames = Object.keys(map3.required || {});\n var optionalPropNames = Object.keys(map3.optional || {});\n var methodNames = Object.keys(map3.methods || {});\n var eventNames = Object.keys(map3.events || {});\n var Context = (0, import_react65.createContext)({});\n function applyPropsToSystem(system2, props) {\n if (system2[\"propsReady\"]) {\n publish(system2[\"propsReady\"], false);\n }\n for (var _iterator = _createForOfIteratorHelperLoose2(requiredPropNames), _step; !(_step = _iterator()).done; ) {\n var requiredPropName = _step.value;\n var stream2 = system2[map3.required[requiredPropName]];\n publish(stream2, props[requiredPropName]);\n }\n for (var _iterator2 = _createForOfIteratorHelperLoose2(optionalPropNames), _step2; !(_step2 = _iterator2()).done; ) {\n var optionalPropName = _step2.value;\n if (optionalPropName in props) {\n var _stream = system2[map3.optional[optionalPropName]];\n publish(_stream, props[optionalPropName]);\n }\n }\n if (system2[\"propsReady\"]) {\n publish(system2[\"propsReady\"], true);\n }\n }\n function buildMethods(system2) {\n return methodNames.reduce(function(acc, methodName) {\n acc[methodName] = function(value) {\n var stream2 = system2[map3.methods[methodName]];\n publish(stream2, value);\n };\n return acc;\n }, {});\n }\n function buildEventHandlers(system2) {\n return eventNames.reduce(function(handlers, eventName) {\n handlers[eventName] = eventHandler(system2[map3.events[eventName]]);\n return handlers;\n }, {});\n }\n var Component = (0, import_react65.forwardRef)(function(propsWithChildren, ref) {\n var children = propsWithChildren.children, props = _objectWithoutPropertiesLoose2(propsWithChildren, _excluded2);\n var _useState = (0, import_react65.useState)(function() {\n return tap(init(systemSpec), function(system3) {\n return applyPropsToSystem(system3, props);\n });\n }), system2 = _useState[0];\n var _useState2 = (0, import_react65.useState)(curry1to0(buildEventHandlers, system2)), handlers = _useState2[0];\n useIsomorphicLayoutEffect(function() {\n for (var _iterator3 = _createForOfIteratorHelperLoose2(eventNames), _step3; !(_step3 = _iterator3()).done; ) {\n var eventName = _step3.value;\n if (eventName in props) {\n subscribe(handlers[eventName], props[eventName]);\n }\n }\n return function() {\n Object.values(handlers).map(reset);\n };\n }, [props, handlers, system2]);\n useIsomorphicLayoutEffect(function() {\n applyPropsToSystem(system2, props);\n });\n (0, import_react65.useImperativeHandle)(ref, always(buildMethods(system2)));\n return (0, import_react65.createElement)(Context.Provider, {\n value: system2\n }, Root ? (0, import_react65.createElement)(Root, omit([].concat(requiredPropNames, optionalPropNames, eventNames), props), children) : children);\n });\n var usePublisher = function usePublisher2(key) {\n return (0, import_react65.useCallback)(curry2to1(publish, (0, import_react65.useContext)(Context)[key]), [key]);\n };\n var useEmitterValue = function useEmitterValue2(key) {\n var context = (0, import_react65.useContext)(Context);\n var source = context[key];\n var _useState3 = (0, import_react65.useState)(curry1to0(getValue, source)), value = _useState3[0], setValue = _useState3[1];\n useIsomorphicLayoutEffect(function() {\n return subscribe(source, function(next) {\n if (next !== value) {\n setValue(always(next));\n }\n });\n }, [source, value]);\n return value;\n };\n var useEmitter = function useEmitter2(key, callback) {\n var context = (0, import_react65.useContext)(Context);\n var source = context[key];\n useIsomorphicLayoutEffect(function() {\n return subscribe(source, callback);\n }, [callback, source]);\n };\n return {\n Component,\n usePublisher,\n useEmitterValue,\n useEmitter\n };\n}\n\n\/\/ ..\/..\/node_modules\/react-virtuoso\/dist\/index.m.js\nvar n3 = __toESM(require(\"react\"));\nvar import_react66 = require(\"react\");\nvar import_react_dom11 = require(\"react-dom\");\nfunction c3() {\n return c3 = Object.assign || function(e2) {\n for (var t2 = 1; t2 < arguments.length; t2++) {\n var n4 = arguments[t2];\n for (var o4 in n4)\n Object.prototype.hasOwnProperty.call(n4, o4) && (e2[o4] = n4[o4]);\n }\n return e2;\n }, c3.apply(this, arguments);\n}\nfunction m3(e2, t2) {\n if (null == e2)\n return {};\n var n4, o4, r4 = {}, i4 = Object.keys(e2);\n for (o4 = 0; o4 < i4.length; o4++)\n t2.indexOf(n4 = i4[o4]) >= 0 || (r4[n4] = e2[n4]);\n return r4;\n}\nfunction d3(e2, t2) {\n (null == t2 || t2 > e2.length) && (t2 = e2.length);\n for (var n4 = 0, o4 = new Array(t2); n4 < t2; n4++)\n o4[n4] = e2[n4];\n return o4;\n}\nfunction f3(e2, t2) {\n var n4 = \"undefined\" != typeof Symbol && e2[Symbol.iterator] || e2[\"@@iterator\"];\n if (n4)\n return (n4 = n4.call(e2)).next.bind(n4);\n if (Array.isArray(e2) || (n4 = function(e3, t3) {\n if (e3) {\n if (\"string\" == typeof e3)\n return d3(e3, t3);\n var n5 = Object.prototype.toString.call(e3).slice(8, -1);\n return \"Object\" === n5 && e3.constructor && (n5 = e3.constructor.name), \"Map\" === n5 || \"Set\" === n5 ? Array.from(e3) : \"Arguments\" === n5 || \/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$\/.test(n5) ? d3(e3, t3) : void 0;\n }\n }(e2)) || t2 && e2 && \"number\" == typeof e2.length) {\n n4 && (e2 = n4);\n var o4 = 0;\n return function() {\n return o4 >= e2.length ? { done: true } : { done: false, value: e2[o4++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar p3;\nvar h3;\nvar g3 = \"undefined\" != typeof document ? import_react66.useLayoutEffect : import_react66.useEffect;\n!function(e2) {\n e2[e2.DEBUG = 0] = \"DEBUG\", e2[e2.INFO = 1] = \"INFO\", e2[e2.WARN = 2] = \"WARN\", e2[e2.ERROR = 3] = \"ERROR\";\n}(h3 || (h3 = {}));\nvar v3 = ((p3 = {})[h3.DEBUG] = \"debug\", p3[h3.INFO] = \"log\", p3[h3.WARN] = \"warn\", p3[h3.ERROR] = \"error\", p3);\nvar S2 = system(function() {\n var e2 = statefulStream(h3.ERROR);\n return { log: statefulStream(function(n4, o4, r4) {\n var i4;\n void 0 === r4 && (r4 = h3.INFO), r4 >= (null != (i4 = (\"undefined\" == typeof globalThis ? window : globalThis).VIRTUOSO_LOG_LEVEL) ? i4 : getValue(e2)) && console[v3[r4]](\"%creact-virtuoso: %c%s %o\", \"color: #0253b3; font-weight: bold\", \"color: initial\", n4, o4);\n }), logLevel: e2 };\n}, [], { singleton: true });\nfunction C2(e2, t2) {\n void 0 === t2 && (t2 = true);\n var n4 = (0, import_react66.useRef)(null), o4 = function(e3) {\n };\n if (\"undefined\" != typeof ResizeObserver) {\n var r4 = new ResizeObserver(function(t3) {\n var n5 = t3[0].target;\n null !== n5.offsetParent && e2(n5);\n });\n o4 = function(e3) {\n e3 && t2 ? (r4.observe(e3), n4.current = e3) : (n4.current && r4.unobserve(n4.current), n4.current = null);\n };\n }\n return { ref: n4, callbackRef: o4 };\n}\nfunction I(e2, t2) {\n return void 0 === t2 && (t2 = true), C2(e2, t2).callbackRef;\n}\nfunction T3(e2, t2, n4, o4, r4, i4, a5) {\n return C2(function(n5) {\n for (var l5 = function(e3, t3, n6, o5) {\n var r5 = e3.length;\n if (0 === r5)\n return null;\n for (var i5 = [], a6 = 0; a6 < r5; a6++) {\n var l6 = e3.item(a6);\n if (l6 && void 0 !== l6.dataset.index) {\n var s5 = parseInt(l6.dataset.index), u5 = parseFloat(l6.dataset.knownSize), c5 = t3(l6, \"offsetHeight\");\n if (0 === c5 && o5(\"Zero-sized element, this should not happen\", { child: l6 }, h3.ERROR), c5 !== u5) {\n var m5 = i5[i5.length - 1];\n 0 === i5.length || m5.size !== c5 || m5.endIndex !== s5 - 1 ? i5.push({ startIndex: s5, endIndex: s5, size: c5 }) : i5[i5.length - 1].endIndex++;\n }\n }\n }\n return i5;\n }(n5.children, t2, 0, r4), s4 = n5.parentElement; !s4.dataset.virtuosoScroller; )\n s4 = s4.parentElement;\n var u4 = \"window\" === s4.firstElementChild.dataset.viewportType, c4 = a5 ? a5.scrollTop : u4 ? window.pageYOffset || document.documentElement.scrollTop : s4.scrollTop, m4 = a5 ? a5.scrollHeight : u4 ? document.documentElement.scrollHeight : s4.scrollHeight, d4 = a5 ? a5.offsetHeight : u4 ? window.innerHeight : s4.offsetHeight;\n o4({ scrollTop: Math.max(c4, 0), scrollHeight: m4, viewportHeight: d4 }), null == i4 || i4(function(e3, t3, n6) {\n return \"normal\" === t3 || null != t3 && t3.endsWith(\"px\") || n6(\"row-gap was not resolved to pixel value correctly\", t3, h3.WARN), \"normal\" === t3 ? 0 : parseInt(null != t3 ? t3 : \"0\", 10);\n }(0, getComputedStyle(n5).rowGap, r4)), null !== l5 && e2(l5);\n }, n4);\n}\nfunction w3(e2, t2) {\n return Math.round(e2.getBoundingClientRect()[t2]);\n}\nfunction x3(e2, t2) {\n return Math.abs(e2 - t2) < 1.01;\n}\nfunction b3(e2, n4, o4, l5, s4) {\n void 0 === l5 && (l5 = noop4);\n var c4 = (0, import_react66.useRef)(null), m4 = (0, import_react66.useRef)(null), d4 = (0, import_react66.useRef)(null), f4 = (0, import_react66.useRef)(false), p4 = (0, import_react66.useCallback)(function(t2) {\n var o5 = t2.target, r4 = o5 === window || o5 === document, i4 = r4 ? window.pageYOffset || document.documentElement.scrollTop : o5.scrollTop, a5 = r4 ? document.documentElement.scrollHeight : o5.scrollHeight, l6 = r4 ? window.innerHeight : o5.offsetHeight, s5 = function() {\n e2({ scrollTop: Math.max(i4, 0), scrollHeight: a5, viewportHeight: l6 });\n };\n f4.current ? (0, import_react_dom11.flushSync)(s5) : s5(), f4.current = false, null !== m4.current && (i4 === m4.current || i4 <= 0 || i4 === a5 - l6) && (m4.current = null, n4(true), d4.current && (clearTimeout(d4.current), d4.current = null));\n }, [e2, n4]);\n return (0, import_react66.useEffect)(function() {\n var e3 = s4 || c4.current;\n return l5(s4 || c4.current), p4({ target: e3 }), e3.addEventListener(\"scroll\", p4, { passive: true }), function() {\n l5(null), e3.removeEventListener(\"scroll\", p4);\n };\n }, [c4, p4, o4, l5, s4]), { scrollerRef: c4, scrollByCallback: function(e3) {\n f4.current = true, c4.current.scrollBy(e3);\n }, scrollToCallback: function(t2) {\n var o5 = c4.current;\n if (o5 && (!(\"offsetHeight\" in o5) || 0 !== o5.offsetHeight)) {\n var r4, i4, a5, l6 = \"smooth\" === t2.behavior;\n if (o5 === window ? (i4 = Math.max(w3(document.documentElement, \"height\"), document.documentElement.scrollHeight), r4 = window.innerHeight, a5 = document.documentElement.scrollTop) : (i4 = o5.scrollHeight, r4 = w3(o5, \"height\"), a5 = o5.scrollTop), t2.top = Math.ceil(Math.max(Math.min(i4 - r4, t2.top), 0)), x3(r4, i4) || t2.top === a5)\n return e2({ scrollTop: a5, scrollHeight: i4, viewportHeight: r4 }), void (l6 && n4(true));\n l6 ? (m4.current = t2.top, d4.current && clearTimeout(d4.current), d4.current = setTimeout(function() {\n d4.current = null, m4.current = null, n4(true);\n }, 1e3)) : m4.current = null, o5.scrollTo(t2);\n }\n } };\n}\nvar y3 = system(function() {\n var e2 = stream(), n4 = stream(), o4 = statefulStream(0), r4 = stream(), i4 = statefulStream(0), a5 = stream(), l5 = stream(), s4 = statefulStream(0), u4 = statefulStream(0), c4 = statefulStream(0), m4 = statefulStream(0), d4 = stream(), f4 = stream(), p4 = statefulStream(false), h4 = statefulStream(false);\n return connect(pipe(e2, map2(function(e3) {\n return e3.scrollTop;\n })), n4), connect(pipe(e2, map2(function(e3) {\n return e3.scrollHeight;\n })), l5), connect(n4, i4), { scrollContainerState: e2, scrollTop: n4, viewportHeight: a5, headerHeight: s4, fixedHeaderHeight: u4, fixedFooterHeight: c4, footerHeight: m4, scrollHeight: l5, smoothScrollTargetReached: r4, react18ConcurrentRendering: h4, scrollTo: d4, scrollBy: f4, statefulScrollTop: i4, deviation: o4, scrollingInProgress: p4 };\n}, [], { singleton: true });\nvar H2 = { lvl: 0 };\nfunction E3(e2, t2, n4, o4, r4) {\n return void 0 === o4 && (o4 = H2), void 0 === r4 && (r4 = H2), { k: e2, v: t2, lvl: n4, l: o4, r: r4 };\n}\nfunction R3(e2) {\n return e2 === H2;\n}\nfunction L3() {\n return H2;\n}\nfunction F(e2, t2) {\n if (R3(e2))\n return H2;\n var n4 = e2.k, o4 = e2.l, r4 = e2.r;\n if (t2 === n4) {\n if (R3(o4))\n return r4;\n if (R3(r4))\n return o4;\n var i4 = O2(o4);\n return U(W2(e2, { k: i4[0], v: i4[1], l: M(o4) }));\n }\n return U(W2(e2, t2 < n4 ? { l: F(o4, t2) } : { r: F(r4, t2) }));\n}\nfunction k2(e2, t2, n4) {\n if (void 0 === n4 && (n4 = \"k\"), R3(e2))\n return [-Infinity, void 0];\n if (e2[n4] === t2)\n return [e2.k, e2.v];\n if (e2[n4] < t2) {\n var o4 = k2(e2.r, t2, n4);\n return -Infinity === o4[0] ? [e2.k, e2.v] : o4;\n }\n return k2(e2.l, t2, n4);\n}\nfunction z2(e2, t2, n4) {\n return R3(e2) ? E3(t2, n4, 1) : t2 === e2.k ? W2(e2, { k: t2, v: n4 }) : function(e3) {\n return D3(G(e3));\n }(W2(e2, t2 < e2.k ? { l: z2(e2.l, t2, n4) } : { r: z2(e2.r, t2, n4) }));\n}\nfunction B(e2, t2, n4) {\n if (R3(e2))\n return [];\n var o4 = e2.k, r4 = e2.v, i4 = e2.r, a5 = [];\n return o4 > t2 && (a5 = a5.concat(B(e2.l, t2, n4))), o4 >= t2 && o4 <= n4 && a5.push({ k: o4, v: r4 }), o4 <= n4 && (a5 = a5.concat(B(i4, t2, n4))), a5;\n}\nfunction P2(e2) {\n return R3(e2) ? [] : [].concat(P2(e2.l), [{ k: e2.k, v: e2.v }], P2(e2.r));\n}\nfunction O2(e2) {\n return R3(e2.r) ? [e2.k, e2.v] : O2(e2.r);\n}\nfunction M(e2) {\n return R3(e2.r) ? e2.l : U(W2(e2, { r: M(e2.r) }));\n}\nfunction W2(e2, t2) {\n return E3(void 0 !== t2.k ? t2.k : e2.k, void 0 !== t2.v ? t2.v : e2.v, void 0 !== t2.lvl ? t2.lvl : e2.lvl, void 0 !== t2.l ? t2.l : e2.l, void 0 !== t2.r ? t2.r : e2.r);\n}\nfunction V2(e2) {\n return R3(e2) || e2.lvl > e2.r.lvl;\n}\nfunction U(e2) {\n var t2 = e2.l, n4 = e2.r, o4 = e2.lvl;\n if (n4.lvl >= o4 - 1 && t2.lvl >= o4 - 1)\n return e2;\n if (o4 > n4.lvl + 1) {\n if (V2(t2))\n return G(W2(e2, { lvl: o4 - 1 }));\n if (R3(t2) || R3(t2.r))\n throw new Error(\"Unexpected empty nodes\");\n return W2(t2.r, { l: W2(t2, { r: t2.r.l }), r: W2(e2, { l: t2.r.r, lvl: o4 - 1 }), lvl: o4 });\n }\n if (V2(e2))\n return D3(W2(e2, { lvl: o4 - 1 }));\n if (R3(n4) || R3(n4.l))\n throw new Error(\"Unexpected empty nodes\");\n var r4 = n4.l, i4 = V2(r4) ? n4.lvl - 1 : n4.lvl;\n return W2(r4, { l: W2(e2, { r: r4.l, lvl: o4 - 1 }), r: D3(W2(n4, { l: r4.r, lvl: i4 })), lvl: r4.lvl + 1 });\n}\nfunction A2(e2, t2, n4) {\n return R3(e2) ? [] : N2(B(e2, k2(e2, t2)[0], n4), function(e3) {\n return { index: e3.k, value: e3.v };\n });\n}\nfunction N2(e2, t2) {\n var n4 = e2.length;\n if (0 === n4)\n return [];\n for (var o4 = t2(e2[0]), r4 = o4.index, i4 = o4.value, a5 = [], l5 = 1; l5 < n4; l5++) {\n var s4 = t2(e2[l5]), u4 = s4.index, c4 = s4.value;\n a5.push({ start: r4, end: u4 - 1, value: i4 }), r4 = u4, i4 = c4;\n }\n return a5.push({ start: r4, end: Infinity, value: i4 }), a5;\n}\nfunction D3(e2) {\n var t2 = e2.r, n4 = e2.lvl;\n return R3(t2) || R3(t2.r) || t2.lvl !== n4 || t2.r.lvl !== n4 ? e2 : W2(t2, { l: W2(e2, { r: t2.l }), lvl: n4 + 1 });\n}\nfunction G(e2) {\n var t2 = e2.l;\n return R3(t2) || t2.lvl !== e2.lvl ? e2 : W2(t2, { r: W2(e2, { l: t2.r }) });\n}\nfunction _(e2, t2, n4, o4) {\n void 0 === o4 && (o4 = 0);\n for (var r4 = e2.length - 1; o4 <= r4; ) {\n var i4 = Math.floor((o4 + r4) \/ 2), a5 = n4(e2[i4], t2);\n if (0 === a5)\n return i4;\n if (-1 === a5) {\n if (r4 - o4 < 2)\n return i4 - 1;\n r4 = i4 - 1;\n } else {\n if (r4 === o4)\n return i4;\n o4 = i4 + 1;\n }\n }\n throw new Error(\"Failed binary finding record in array - \" + e2.join(\",\") + \", searched for \" + t2);\n}\nfunction j(e2, t2, n4) {\n return e2[_(e2, t2, n4)];\n}\nvar K = system(function() {\n return { recalcInProgress: statefulStream(false) };\n}, [], { singleton: true });\nfunction Y(e2) {\n var t2 = e2.size, n4 = e2.startIndex, o4 = e2.endIndex;\n return function(e3) {\n return e3.start === n4 && (e3.end === o4 || Infinity === e3.end) && e3.value === t2;\n };\n}\nfunction q(e2, t2) {\n var n4 = e2.index;\n return t2 === n4 ? 0 : t2 < n4 ? -1 : 1;\n}\nfunction Z(e2, t2) {\n var n4 = e2.offset;\n return t2 === n4 ? 0 : t2 < n4 ? -1 : 1;\n}\nfunction J(e2) {\n return { index: e2.index, value: e2 };\n}\nfunction $(e2, t2, n4, o4) {\n var r4 = e2, i4 = 0, a5 = 0, l5 = 0, s4 = 0;\n if (0 !== t2) {\n l5 = r4[s4 = _(r4, t2 - 1, q)].offset;\n var u4 = k2(n4, t2 - 1);\n i4 = u4[0], a5 = u4[1], r4.length && r4[s4].size === k2(n4, t2)[1] && (s4 -= 1), r4 = r4.slice(0, s4 + 1);\n } else\n r4 = [];\n for (var c4, m4 = f3(A2(n4, t2, Infinity)); !(c4 = m4()).done; ) {\n var d4 = c4.value, p4 = d4.start, h4 = d4.value, g4 = p4 - i4, v4 = g4 * a5 + l5 + g4 * o4;\n r4.push({ offset: v4, size: h4, index: p4 }), i4 = p4, l5 = v4, a5 = h4;\n }\n return { offsetTree: r4, lastIndex: i4, lastOffset: l5, lastSize: a5 };\n}\nfunction Q(e2, t2) {\n var n4 = t2[0], o4 = t2[1], r4 = t2[3];\n n4.length > 0 && (0, t2[2])(\"received item sizes\", n4, h3.DEBUG);\n var i4 = e2.sizeTree, a5 = i4, l5 = 0;\n if (o4.length > 0 && R3(i4) && 2 === n4.length) {\n var s4 = n4[0].size, u4 = n4[1].size;\n a5 = o4.reduce(function(e3, t3) {\n return z2(z2(e3, t3, s4), t3 + 1, u4);\n }, a5);\n } else {\n var c4 = function(e3, t3) {\n for (var n5, o5 = R3(e3) ? 0 : Infinity, r5 = f3(t3); !(n5 = r5()).done; ) {\n var i5 = n5.value, a6 = i5.size, l6 = i5.startIndex, s5 = i5.endIndex;\n if (o5 = Math.min(o5, l6), R3(e3))\n e3 = z2(e3, 0, a6);\n else {\n var u5 = A2(e3, l6 - 1, s5 + 1);\n if (!u5.some(Y(i5))) {\n for (var c5, m5 = false, d5 = false, p4 = f3(u5); !(c5 = p4()).done; ) {\n var h4 = c5.value, g4 = h4.start, v4 = h4.end, S3 = h4.value;\n m5 ? (s5 >= g4 || a6 === S3) && (e3 = F(e3, g4)) : (d5 = S3 !== a6, m5 = true), v4 > s5 && s5 >= g4 && S3 !== a6 && (e3 = z2(e3, s5 + 1, S3));\n }\n d5 && (e3 = z2(e3, l6, a6));\n }\n }\n }\n return [e3, o5];\n }(a5, n4);\n a5 = c4[0], l5 = c4[1];\n }\n if (a5 === i4)\n return e2;\n var m4 = $(e2.offsetTree, l5, a5, r4), d4 = m4.offsetTree;\n return { sizeTree: a5, offsetTree: d4, lastIndex: m4.lastIndex, lastOffset: m4.lastOffset, lastSize: m4.lastSize, groupOffsetTree: o4.reduce(function(e3, t3) {\n return z2(e3, t3, X(t3, d4, r4));\n }, L3()), groupIndices: o4 };\n}\nfunction X(e2, t2, n4) {\n if (0 === t2.length)\n return 0;\n var o4 = j(t2, e2, q), r4 = e2 - o4.index, i4 = o4.size * r4 + (r4 - 1) * n4 + o4.offset;\n return i4 > 0 ? i4 + n4 : i4;\n}\nfunction ee(e2, t2, n4) {\n if (function(e3) {\n return void 0 !== e3.groupIndex;\n }(e2))\n return t2.groupIndices[e2.groupIndex] + 1;\n var o4 = te(\"LAST\" === e2.index ? n4 : e2.index, t2);\n return Math.max(0, o4, Math.min(n4, o4));\n}\nfunction te(e2, t2) {\n if (!ne(t2))\n return e2;\n for (var n4 = 0; t2.groupIndices[n4] <= e2 + n4; )\n n4++;\n return e2 + n4;\n}\nfunction ne(e2) {\n return !R3(e2.groupOffsetTree);\n}\nvar oe = { offsetHeight: \"height\", offsetWidth: \"width\" };\nvar re = system(function(e2) {\n var n4 = e2[0].log, o4 = e2[1].recalcInProgress, r4 = stream(), i4 = stream(), a5 = statefulStreamFromEmitter(i4, 0), l5 = stream(), s4 = stream(), u4 = statefulStream(0), m4 = statefulStream([]), d4 = statefulStream(void 0), f4 = statefulStream(void 0), p4 = statefulStream(function(e3, t2) {\n return w3(e3, oe[t2]);\n }), g4 = statefulStream(void 0), v4 = statefulStream(0), S3 = { offsetTree: [], sizeTree: L3(), groupOffsetTree: L3(), lastIndex: 0, lastOffset: 0, lastSize: 0, groupIndices: [] }, C4 = statefulStreamFromEmitter(pipe(r4, withLatestFrom(m4, n4, v4), scan(Q, S3), distinctUntilChanged()), S3);\n connect(pipe(m4, filter(function(e3) {\n return e3.length > 0;\n }), withLatestFrom(C4, v4), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2], r5 = t2.reduce(function(e4, t3, r6) {\n return z2(e4, t3, X(t3, n5.offsetTree, o5) || r6);\n }, L3());\n return c3({}, n5, { groupIndices: t2, groupOffsetTree: r5 });\n })), C4), connect(pipe(i4, withLatestFrom(C4), filter(function(e3) {\n return e3[0] < e3[1].lastIndex;\n }), map2(function(e3) {\n var t2 = e3[1];\n return [{ startIndex: e3[0], endIndex: t2.lastIndex, size: t2.lastSize }];\n })), r4), connect(d4, f4);\n var I2 = statefulStreamFromEmitter(pipe(d4, map2(function(e3) {\n return void 0 === e3;\n })), true);\n connect(pipe(f4, filter(function(e3) {\n return void 0 !== e3 && R3(getValue(C4).sizeTree);\n }), map2(function(e3) {\n return [{ startIndex: 0, endIndex: 0, size: e3 }];\n })), r4);\n var T4 = streamFromEmitter(pipe(r4, withLatestFrom(C4), scan(function(e3, t2) {\n var n5 = t2[1];\n return { changed: n5 !== e3.sizes, sizes: n5 };\n }, { changed: false, sizes: S3 }), map2(function(e3) {\n return e3.changed;\n })));\n subscribe(pipe(u4, scan(function(e3, t2) {\n return { diff: e3.prev - t2, prev: t2 };\n }, { diff: 0, prev: 0 }), map2(function(e3) {\n return e3.diff;\n })), function(e3) {\n e3 > 0 ? (publish(o4, true), publish(l5, e3)) : e3 < 0 && publish(s4, e3);\n }), subscribe(pipe(u4, withLatestFrom(n4)), function(e3) {\n e3[0] < 0 && (0, e3[1])(\"`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value\", { firstItemIndex: u4 }, h3.ERROR);\n });\n var x4 = streamFromEmitter(l5);\n connect(pipe(l5, withLatestFrom(C4), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1];\n if (n5.groupIndices.length > 0)\n throw new Error(\"Virtuoso: prepending items does not work with groups\");\n return P2(n5.sizeTree).reduce(function(e4, n6) {\n var o5 = n6.k, r5 = n6.v;\n return { ranges: [].concat(e4.ranges, [{ startIndex: e4.prevIndex, endIndex: o5 + t2 - 1, size: e4.prevSize }]), prevIndex: o5 + t2, prevSize: r5 };\n }, { ranges: [], prevIndex: 0, prevSize: n5.lastSize }).ranges;\n })), r4);\n var b5 = streamFromEmitter(pipe(s4, withLatestFrom(C4, v4), map2(function(e3) {\n return X(-e3[0], e3[1].offsetTree, e3[2]);\n })));\n return connect(pipe(s4, withLatestFrom(C4, v4), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2];\n if (n5.groupIndices.length > 0)\n throw new Error(\"Virtuoso: shifting items does not work with groups\");\n var r5 = P2(n5.sizeTree).reduce(function(e4, n6) {\n var o6 = n6.v;\n return z2(e4, Math.max(0, n6.k + t2), o6);\n }, L3());\n return c3({}, n5, { sizeTree: r5 }, $(n5.offsetTree, 0, r5, o5));\n })), C4), { data: g4, totalCount: i4, sizeRanges: r4, groupIndices: m4, defaultItemSize: f4, fixedItemSize: d4, unshiftWith: l5, shiftWith: s4, shiftWithOffset: b5, beforeUnshiftWith: x4, firstItemIndex: u4, gap: v4, sizes: C4, listRefresh: T4, statefulTotalCount: a5, trackItemSizes: I2, itemSize: p4 };\n}, tup(S2, K), { singleton: true });\nvar ie = \"undefined\" != typeof document && \"scrollBehavior\" in document.documentElement.style;\nfunction ae(e2) {\n var t2 = \"number\" == typeof e2 ? { index: e2 } : e2;\n return t2.align || (t2.align = \"start\"), t2.behavior && ie || (t2.behavior = \"auto\"), t2.offset || (t2.offset = 0), t2;\n}\nvar le = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.totalCount, i4 = n4.listRefresh, a5 = n4.gap, l5 = e2[1], s4 = l5.scrollingInProgress, u4 = l5.viewportHeight, c4 = l5.scrollTo, m4 = l5.smoothScrollTargetReached, d4 = l5.headerHeight, f4 = l5.footerHeight, p4 = l5.fixedHeaderHeight, g4 = l5.fixedFooterHeight, v4 = e2[2].log, S3 = stream(), C4 = statefulStream(0), I2 = null, T4 = null, w4 = null;\n function x4() {\n I2 && (I2(), I2 = null), w4 && (w4(), w4 = null), T4 && (clearTimeout(T4), T4 = null), publish(s4, false);\n }\n return connect(pipe(S3, withLatestFrom(o4, u4, r4, C4, d4, f4, v4), withLatestFrom(a5, p4, g4), map2(function(e3) {\n var n5 = e3[0], o5 = n5[0], r5 = n5[1], a6 = n5[2], l6 = n5[3], u5 = n5[4], c5 = n5[5], d5 = n5[6], f5 = n5[7], p5 = e3[1], g5 = e3[2], v5 = e3[3], C5 = ae(o5), b5 = C5.align, y4 = C5.behavior, H3 = C5.offset, E4 = l6 - 1, R5 = ee(C5, r5, E4), L5 = X(R5, r5.offsetTree, p5) + c5;\n \"end\" === b5 ? (L5 += g5 + k2(r5.sizeTree, R5)[1] - a6 + v5, R5 === E4 && (L5 += d5)) : \"center\" === b5 ? L5 += (g5 + k2(r5.sizeTree, R5)[1] - a6 + v5) \/ 2 : L5 -= u5, H3 && (L5 += H3);\n var F2 = function(e4) {\n x4(), e4 ? (f5(\"retrying to scroll to\", { location: o5 }, h3.DEBUG), publish(S3, o5)) : f5(\"list did not change, scroll successful\", {}, h3.DEBUG);\n };\n if (x4(), \"smooth\" === y4) {\n var z3 = false;\n w4 = subscribe(i4, function(e4) {\n z3 = z3 || e4;\n }), I2 = handleNext(m4, function() {\n F2(z3);\n });\n } else\n I2 = handleNext(pipe(i4, function(e4) {\n var t2 = setTimeout(function() {\n e4(false);\n }, 150);\n return function(n6) {\n n6 && (e4(true), clearTimeout(t2));\n };\n }), F2);\n return T4 = setTimeout(function() {\n x4();\n }, 1200), publish(s4, true), f5(\"scrolling from index to\", { index: R5, top: L5, behavior: y4 }, h3.DEBUG), { top: L5, behavior: y4 };\n })), c4), { scrollToIndex: S3, topListHeight: C4 };\n}, tup(re, y3, S2), { singleton: true });\nvar se = \"up\";\nvar ue = { atBottom: false, notAtBottomBecause: \"NOT_SHOWING_LAST_ITEM\", state: { offsetBottom: 0, scrollTop: 0, viewportHeight: 0, scrollHeight: 0 } };\nvar ce = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollContainerState, r4 = n4.scrollTop, i4 = n4.viewportHeight, a5 = n4.headerHeight, l5 = n4.footerHeight, s4 = n4.scrollBy, u4 = statefulStream(false), c4 = statefulStream(true), m4 = stream(), d4 = stream(), f4 = statefulStream(4), p4 = statefulStream(0), h4 = statefulStreamFromEmitter(pipe(merge(pipe(duc(r4), skip(1), mapTo(true)), pipe(duc(r4), skip(1), mapTo(false), debounceTime(100))), distinctUntilChanged()), false), g4 = statefulStreamFromEmitter(pipe(merge(pipe(s4, mapTo(true)), pipe(s4, mapTo(false), debounceTime(200))), distinctUntilChanged()), false);\n connect(pipe(combineLatest(duc(r4), duc(p4)), map2(function(e3) {\n return e3[0] <= e3[1];\n }), distinctUntilChanged()), c4), connect(pipe(c4, throttleTime(50)), d4);\n var v4 = streamFromEmitter(pipe(combineLatest(o4, duc(i4), duc(a5), duc(l5), duc(f4)), scan(function(e3, t2) {\n var n5, o5, r5 = t2[0], i5 = r5.scrollTop, a6 = r5.scrollHeight, l6 = t2[1], s5 = { viewportHeight: l6, scrollTop: i5, scrollHeight: a6 };\n return i5 + l6 - a6 > -t2[4] ? (i5 > e3.state.scrollTop ? (n5 = \"SCROLLED_DOWN\", o5 = e3.state.scrollTop - i5) : (n5 = \"SIZE_DECREASED\", o5 = e3.state.scrollTop - i5 || e3.scrollTopDelta), { atBottom: true, state: s5, atBottomBecause: n5, scrollTopDelta: o5 }) : { atBottom: false, notAtBottomBecause: s5.scrollHeight > e3.state.scrollHeight ? \"SIZE_INCREASED\" : l6 < e3.state.viewportHeight ? \"VIEWPORT_HEIGHT_DECREASING\" : i5 < e3.state.scrollTop ? \"SCROLLING_UPWARDS\" : \"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM\", state: s5 };\n }, ue), distinctUntilChanged(function(e3, t2) {\n return e3 && e3.atBottom === t2.atBottom;\n }))), S3 = statefulStreamFromEmitter(pipe(o4, scan(function(e3, t2) {\n var n5 = t2.scrollTop, o5 = t2.scrollHeight, r5 = t2.viewportHeight;\n return x3(e3.scrollHeight, o5) ? { scrollTop: n5, scrollHeight: o5, jump: 0, changed: false } : e3.scrollTop !== n5 && o5 - (n5 + r5) < 1 ? { scrollHeight: o5, scrollTop: n5, jump: e3.scrollTop - n5, changed: true } : { scrollHeight: o5, scrollTop: n5, jump: 0, changed: true };\n }, { scrollHeight: 0, jump: 0, scrollTop: 0, changed: false }), filter(function(e3) {\n return e3.changed;\n }), map2(function(e3) {\n return e3.jump;\n })), 0);\n connect(pipe(v4, map2(function(e3) {\n return e3.atBottom;\n })), u4), connect(pipe(u4, throttleTime(50)), m4);\n var C4 = statefulStream(\"down\");\n connect(pipe(o4, map2(function(e3) {\n return e3.scrollTop;\n }), distinctUntilChanged(), scan(function(e3, n5) {\n return getValue(g4) ? { direction: e3.direction, prevScrollTop: n5 } : { direction: n5 < e3.prevScrollTop ? se : \"down\", prevScrollTop: n5 };\n }, { direction: \"down\", prevScrollTop: 0 }), map2(function(e3) {\n return e3.direction;\n })), C4), connect(pipe(o4, throttleTime(50), mapTo(\"none\")), C4);\n var I2 = statefulStream(0);\n return connect(pipe(h4, filter(function(e3) {\n return !e3;\n }), mapTo(0)), I2), connect(pipe(r4, throttleTime(100), withLatestFrom(h4), filter(function(e3) {\n return !!e3[1];\n }), scan(function(e3, t2) {\n return [e3[1], t2[0]];\n }, [0, 0]), map2(function(e3) {\n return e3[1] - e3[0];\n })), I2), { isScrolling: h4, isAtTop: c4, isAtBottom: u4, atBottomState: v4, atTopStateChange: d4, atBottomStateChange: m4, scrollDirection: C4, atBottomThreshold: f4, atTopThreshold: p4, scrollVelocity: I2, lastJumpDueToItemResize: S3 };\n}, tup(y3));\nvar me = system(function(e2) {\n var n4 = e2[0].log, o4 = statefulStream(false), r4 = streamFromEmitter(pipe(o4, filter(function(e3) {\n return e3;\n }), distinctUntilChanged()));\n return subscribe(o4, function(e3) {\n e3 && getValue(n4)(\"props updated\", {}, h3.DEBUG);\n }), { propsReady: o4, didMount: r4 };\n}, tup(S2), { singleton: true });\nvar de = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.listRefresh, i4 = n4.defaultItemSize, a5 = e2[1].scrollTop, l5 = e2[2].scrollToIndex, s4 = e2[3].didMount, u4 = statefulStream(true), c4 = statefulStream(0);\n return connect(pipe(s4, withLatestFrom(c4), filter(function(e3) {\n return !!e3[1];\n }), mapTo(false)), u4), subscribe(pipe(combineLatest(r4, s4), withLatestFrom(u4, o4, i4), filter(function(e3) {\n var t2 = e3[1], n5 = e3[3];\n return e3[0][1] && (!R3(e3[2].sizeTree) || void 0 !== n5) && !t2;\n }), withLatestFrom(c4)), function(e3) {\n var n5 = e3[1];\n setTimeout(function() {\n handleNext(a5, function() {\n publish(u4, true);\n }), publish(l5, n5);\n });\n }), { scrolledToInitialItem: u4, initialTopMostItemIndex: c4 };\n}, tup(re, y3, le, me), { singleton: true });\nfunction fe(e2) {\n return !!e2 && (\"smooth\" === e2 ? \"smooth\" : \"auto\");\n}\nvar pe = system(function(e2) {\n var n4 = e2[0], o4 = n4.totalCount, r4 = n4.listRefresh, i4 = e2[1], a5 = i4.isAtBottom, l5 = i4.atBottomState, s4 = e2[2].scrollToIndex, u4 = e2[3].scrolledToInitialItem, c4 = e2[4], m4 = c4.propsReady, d4 = c4.didMount, f4 = e2[5].log, p4 = e2[6].scrollingInProgress, g4 = statefulStream(false), v4 = stream(), S3 = null;\n function C4(e3) {\n publish(s4, { index: \"LAST\", align: \"end\", behavior: e3 });\n }\n function I2(e3) {\n var n5 = handleNext(l5, function(n6) {\n !e3 || n6.atBottom || \"SIZE_INCREASED\" !== n6.notAtBottomBecause || S3 || (getValue(f4)(\"scrolling to bottom due to increased size\", {}, h3.DEBUG), C4(\"auto\"));\n });\n setTimeout(n5, 100);\n }\n return subscribe(pipe(combineLatest(pipe(duc(o4), skip(1)), d4), withLatestFrom(duc(g4), a5, u4, p4), map2(function(e3) {\n var t2 = e3[0], n5 = t2[0], o5 = t2[1] && e3[3], r5 = \"auto\";\n return o5 && (r5 = function(e4, t3) {\n return \"function\" == typeof e4 ? fe(e4(t3)) : t3 && fe(e4);\n }(e3[1], e3[2] || e3[4]), o5 = o5 && !!r5), { totalCount: n5, shouldFollow: o5, followOutputBehavior: r5 };\n }), filter(function(e3) {\n return e3.shouldFollow;\n })), function(e3) {\n var n5 = e3.totalCount, o5 = e3.followOutputBehavior;\n S3 && (S3(), S3 = null), S3 = handleNext(r4, function() {\n getValue(f4)(\"following output to \", { totalCount: n5 }, h3.DEBUG), C4(o5), S3 = null;\n });\n }), subscribe(pipe(combineLatest(duc(g4), o4, m4), filter(function(e3) {\n return e3[0] && e3[2];\n }), scan(function(e3, t2) {\n var n5 = t2[1];\n return { refreshed: e3.value === n5, value: n5 };\n }, { refreshed: false, value: 0 }), filter(function(e3) {\n return e3.refreshed;\n }), withLatestFrom(g4, o4)), function(e3) {\n I2(false !== e3[1]);\n }), subscribe(v4, function() {\n I2(false !== getValue(g4));\n }), subscribe(combineLatest(duc(g4), l5), function(e3) {\n var t2 = e3[1];\n e3[0] && !t2.atBottom && \"VIEWPORT_HEIGHT_DECREASING\" === t2.notAtBottomBecause && C4(\"auto\");\n }), { followOutput: g4, autoscrollToBottom: v4 };\n}, tup(re, ce, le, de, me, S2, y3));\nfunction he(e2) {\n return e2.reduce(function(e3, t2) {\n return e3.groupIndices.push(e3.totalCount), e3.totalCount += t2 + 1, e3;\n }, { totalCount: 0, groupIndices: [] });\n}\nvar ge = system(function(e2) {\n var n4 = e2[0], o4 = n4.totalCount, r4 = n4.groupIndices, i4 = n4.sizes, a5 = e2[1], l5 = a5.scrollTop, s4 = a5.headerHeight, u4 = stream(), c4 = stream(), m4 = streamFromEmitter(pipe(u4, map2(he)));\n return connect(pipe(m4, map2(function(e3) {\n return e3.totalCount;\n })), o4), connect(pipe(m4, map2(function(e3) {\n return e3.groupIndices;\n })), r4), connect(pipe(combineLatest(l5, i4, s4), filter(function(e3) {\n return ne(e3[1]);\n }), map2(function(e3) {\n return k2(e3[1].groupOffsetTree, Math.max(e3[0] - e3[2], 0), \"v\")[0];\n }), distinctUntilChanged(), map2(function(e3) {\n return [e3];\n })), c4), { groupCounts: u4, topItemsIndexes: c4 };\n}, tup(re, y3));\nfunction ve(e2, t2) {\n return !(!e2 || e2[0] !== t2[0] || e2[1] !== t2[1]);\n}\nfunction Se(e2, t2) {\n return !(!e2 || e2.startIndex !== t2.startIndex || e2.endIndex !== t2.endIndex);\n}\nfunction Ce(e2, t2, n4) {\n return \"number\" == typeof e2 ? n4 === se && \"top\" === t2 || \"down\" === n4 && \"bottom\" === t2 ? e2 : 0 : n4 === se ? \"top\" === t2 ? e2.main : e2.reverse : \"bottom\" === t2 ? e2.main : e2.reverse;\n}\nfunction Ie(e2, t2) {\n return \"number\" == typeof e2 ? e2 : e2[t2] || 0;\n}\nvar Te = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollTop, r4 = n4.viewportHeight, i4 = n4.deviation, a5 = n4.headerHeight, l5 = n4.fixedHeaderHeight, s4 = stream(), u4 = statefulStream(0), c4 = statefulStream(0), m4 = statefulStream(0), d4 = statefulStreamFromEmitter(pipe(combineLatest(duc(o4), duc(r4), duc(a5), duc(s4, ve), duc(m4), duc(u4), duc(l5), duc(i4), duc(c4)), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2], r5 = e3[3], i5 = r5[0], a6 = r5[1], l6 = e3[4], s5 = e3[6], u5 = e3[7], c5 = e3[8], m5 = t2 - u5, d5 = e3[5] + s5, f4 = Math.max(o5 - m5, 0), p4 = \"none\", h4 = Ie(c5, \"top\"), g4 = Ie(c5, \"bottom\");\n return i5 -= u5, a6 += o5 + s5, (i5 += o5 + s5) > t2 + d5 - h4 && (p4 = se), (a6 -= u5) < t2 - f4 + n5 + g4 && (p4 = \"down\"), \"none\" !== p4 ? [Math.max(m5 - o5 - Ce(l6, \"top\", p4) - h4, 0), m5 - f4 - s5 + n5 + Ce(l6, \"bottom\", p4) + g4] : null;\n }), filter(function(e3) {\n return null != e3;\n }), distinctUntilChanged(ve)), [0, 0]);\n return { listBoundary: s4, overscan: m4, topListHeight: u4, increaseViewportBy: c4, visibleRange: d4 };\n}, tup(y3), { singleton: true });\nvar we = { items: [], topItems: [], offsetTop: 0, offsetBottom: 0, top: 0, bottom: 0, topListHeight: 0, totalCount: 0, firstItemIndex: 0 };\nfunction xe(e2, t2, n4) {\n if (0 === e2.length)\n return [];\n if (!ne(t2))\n return e2.map(function(e3) {\n return c3({}, e3, { index: e3.index + n4, originalIndex: e3.index });\n });\n for (var o4, r4 = [], i4 = A2(t2.groupOffsetTree, e2[0].index, e2[e2.length - 1].index), a5 = void 0, l5 = 0, s4 = f3(e2); !(o4 = s4()).done; ) {\n var u4 = o4.value;\n (!a5 || a5.end < u4.index) && (a5 = i4.shift(), l5 = t2.groupIndices.indexOf(a5.start)), r4.push(c3({}, u4.index === a5.start ? { type: \"group\", index: l5 } : { index: u4.index - (l5 + 1) + n4, groupIndex: l5 }, { size: u4.size, offset: u4.offset, originalIndex: u4.index, data: u4.data }));\n }\n return r4;\n}\nfunction be(e2, t2, n4, o4, r4, i4) {\n var a5 = 0, l5 = 0;\n if (e2.length > 0) {\n a5 = e2[0].offset;\n var s4 = e2[e2.length - 1];\n l5 = s4.offset + s4.size;\n }\n var u4 = n4 - r4.lastIndex, c4 = a5, m4 = r4.lastOffset + u4 * r4.lastSize + (u4 - 1) * o4 - l5;\n return { items: xe(e2, r4, i4), topItems: xe(t2, r4, i4), topListHeight: t2.reduce(function(e3, t3) {\n return t3.size + e3;\n }, 0), offsetTop: a5, offsetBottom: m4, top: c4, bottom: l5, totalCount: n4, firstItemIndex: i4 };\n}\nvar ye = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.totalCount, i4 = n4.data, a5 = n4.firstItemIndex, l5 = n4.gap, s4 = e2[1], u4 = e2[2], m4 = u4.visibleRange, d4 = u4.listBoundary, p4 = u4.topListHeight, h4 = e2[3], g4 = h4.scrolledToInitialItem, v4 = h4.initialTopMostItemIndex, S3 = e2[4].topListHeight, C4 = e2[5], I2 = e2[6].didMount, T4 = e2[7].recalcInProgress, w4 = statefulStream([]), x4 = stream();\n connect(s4.topItemsIndexes, w4);\n var b5 = statefulStreamFromEmitter(pipe(combineLatest(I2, T4, duc(m4, ve), duc(r4), duc(o4), duc(v4), g4, duc(w4), duc(a5), duc(l5), i4), filter(function(e3) {\n return e3[0] && !e3[1];\n }), map2(function(e3) {\n var n5 = e3[2], o5 = n5[0], r5 = n5[1], i5 = e3[3], a6 = e3[5], l6 = e3[6], s5 = e3[7], u5 = e3[8], m5 = e3[9], d5 = e3[10], p5 = e3[4], h5 = p5.sizeTree, g5 = p5.offsetTree;\n if (0 === i5 || 0 === o5 && 0 === r5)\n return c3({}, we, { totalCount: i5 });\n if (R3(h5))\n return be(function(e4, t2, n6) {\n if (ne(t2)) {\n var o6 = te(e4, t2);\n return [{ index: k2(t2.groupOffsetTree, o6)[0], size: 0, offset: 0 }, { index: o6, size: 0, offset: 0, data: n6 && n6[0] }];\n }\n return [{ index: e4, size: 0, offset: 0, data: n6 && n6[0] }];\n }(function(e4, t2) {\n return \"number\" == typeof e4 ? e4 : \"LAST\" === e4.index ? t2 - 1 : e4.index;\n }(a6, i5), p5, d5), [], i5, m5, p5, u5);\n var v5 = [];\n if (s5.length > 0)\n for (var S4, C5 = s5[0], I3 = s5[s5.length - 1], T5 = 0, w5 = f3(A2(h5, C5, I3)); !(S4 = w5()).done; )\n for (var x5 = S4.value, b6 = x5.value, y4 = Math.max(x5.start, C5), H3 = Math.min(x5.end, I3), E4 = y4; E4 <= H3; E4++)\n v5.push({ index: E4, size: b6, offset: T5, data: d5 && d5[E4] }), T5 += b6;\n if (!l6)\n return be([], v5, i5, m5, p5, u5);\n var L5 = s5.length > 0 ? s5[s5.length - 1] + 1 : 0, F2 = function(e4, t2, n6, o6) {\n return void 0 === o6 && (o6 = 0), o6 > 0 && (t2 = Math.max(t2, j(e4, o6, q).offset)), N2((i6 = n6, l7 = _(r6 = e4, t2, a7 = Z), s6 = _(r6, i6, a7, l7), r6.slice(l7, s6 + 1)), J);\n var r6, i6, a7, l7, s6;\n }(g5, o5, r5, L5);\n if (0 === F2.length)\n return null;\n var z3 = i5 - 1;\n return be(tap([], function(e4) {\n for (var t2, n6 = f3(F2); !(t2 = n6()).done; ) {\n var i6 = t2.value, a7 = i6.value, l7 = a7.offset, s6 = i6.start, u6 = a7.size;\n if (a7.offset < o5) {\n var c4 = (s6 += Math.floor((o5 - a7.offset + m5) \/ (u6 + m5))) - i6.start;\n l7 += c4 * u6 + c4 * m5;\n }\n s6 < L5 && (l7 += (L5 - s6) * u6, s6 = L5);\n for (var p6 = Math.min(i6.end, z3), h6 = s6; h6 <= p6 && !(l7 >= r5); h6++)\n e4.push({ index: h6, size: u6, offset: l7, data: d5 && d5[h6] }), l7 += u6 + m5;\n }\n }), v5, i5, m5, p5, u5);\n }), filter(function(e3) {\n return null !== e3;\n }), distinctUntilChanged()), we);\n return connect(pipe(i4, filter(function(e3) {\n return void 0 !== e3;\n }), map2(function(e3) {\n return e3.length;\n })), r4), connect(pipe(b5, map2(function(e3) {\n return e3.topListHeight;\n })), S3), connect(S3, p4), connect(pipe(b5, map2(function(e3) {\n return [e3.top, e3.bottom];\n })), d4), connect(pipe(b5, map2(function(e3) {\n return e3.items;\n })), x4), c3({ listState: b5, topItemsIndexes: w4, endReached: streamFromEmitter(pipe(b5, filter(function(e3) {\n return e3.items.length > 0;\n }), withLatestFrom(r4, i4), filter(function(e3) {\n var t2 = e3[0].items;\n return t2[t2.length - 1].originalIndex === e3[1] - 1;\n }), map2(function(e3) {\n return [e3[1] - 1, e3[2]];\n }), distinctUntilChanged(ve), map2(function(e3) {\n return e3[0];\n }))), startReached: streamFromEmitter(pipe(b5, throttleTime(200), filter(function(e3) {\n var t2 = e3.items;\n return t2.length > 0 && t2[0].originalIndex === e3.topItems.length;\n }), map2(function(e3) {\n return e3.items[0].index;\n }), distinctUntilChanged())), rangeChanged: streamFromEmitter(pipe(b5, filter(function(e3) {\n return e3.items.length > 0;\n }), map2(function(e3) {\n for (var t2 = e3.items, n5 = 0, o5 = t2.length - 1; \"group\" === t2[n5].type && n5 < o5; )\n n5++;\n for (; \"group\" === t2[o5].type && o5 > n5; )\n o5--;\n return { startIndex: t2[n5].index, endIndex: t2[o5].index };\n }), distinctUntilChanged(Se))), itemsRendered: x4 }, C4);\n}, tup(re, ge, Te, de, le, ce, me, K), { singleton: true });\nvar He = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.firstItemIndex, i4 = n4.data, a5 = n4.gap, l5 = e2[1].listState, s4 = e2[2].didMount, u4 = statefulStream(0);\n return connect(pipe(s4, withLatestFrom(u4), filter(function(e3) {\n return 0 !== e3[1];\n }), withLatestFrom(o4, r4, a5, i4), map2(function(e3) {\n var t2 = e3[0][1], n5 = e3[1], o5 = e3[2], r5 = e3[3], i5 = e3[4], a6 = void 0 === i5 ? [] : i5, l6 = 0;\n if (n5.groupIndices.length > 0)\n for (var s5, u5 = f3(n5.groupIndices); !((s5 = u5()).done || s5.value - l6 >= t2); )\n l6++;\n var c4 = t2 + l6;\n return be(Array.from({ length: c4 }).map(function(e4, t3) {\n return { index: t3, size: 0, offset: 0, data: a6[t3] };\n }), [], c4, r5, n5, o5);\n })), l5), { initialItemCount: u4 };\n}, tup(re, ye, me), { singleton: true });\nvar Ee = system(function(e2) {\n var n4 = e2[0].scrollVelocity, o4 = statefulStream(false), r4 = stream(), i4 = statefulStream(false);\n return connect(pipe(n4, withLatestFrom(i4, o4, r4), filter(function(e3) {\n return !!e3[1];\n }), map2(function(e3) {\n var t2 = e3[0], n5 = e3[1], o5 = e3[2], r5 = e3[3], i5 = n5.enter;\n if (o5) {\n if ((0, n5.exit)(t2, r5))\n return false;\n } else if (i5(t2, r5))\n return true;\n return o5;\n }), distinctUntilChanged()), o4), subscribe(pipe(combineLatest(o4, n4, r4), withLatestFrom(i4)), function(e3) {\n var t2 = e3[0], n5 = e3[1];\n return t2[0] && n5 && n5.change && n5.change(t2[1], t2[2]);\n }), { isSeeking: o4, scrollSeekConfiguration: i4, scrollVelocity: n4, scrollSeekRangeChanged: r4 };\n}, tup(ce), { singleton: true });\nvar Re = system(function(e2) {\n var n4 = e2[0].topItemsIndexes, o4 = statefulStream(0);\n return connect(pipe(o4, filter(function(e3) {\n return e3 > 0;\n }), map2(function(e3) {\n return Array.from({ length: e3 }).map(function(e4, t2) {\n return t2;\n });\n })), n4), { topItemCount: o4 };\n}, tup(ye));\nvar Le = system(function(e2) {\n var n4 = e2[0], o4 = n4.footerHeight, r4 = n4.headerHeight, i4 = n4.fixedHeaderHeight, a5 = n4.fixedFooterHeight, l5 = e2[1].listState, s4 = stream(), u4 = statefulStreamFromEmitter(pipe(combineLatest(o4, a5, r4, i4, l5), map2(function(e3) {\n var t2 = e3[4];\n return e3[0] + e3[1] + e3[2] + e3[3] + t2.offsetBottom + t2.bottom;\n })), 0);\n return connect(duc(u4), s4), { totalListHeight: u4, totalListHeightChanged: s4 };\n}, tup(y3, ye), { singleton: true });\nfunction Fe(e2) {\n var t2, n4 = false;\n return function() {\n return n4 || (n4 = true, t2 = e2()), t2;\n };\n}\nvar ke = Fe(function() {\n return \/iP(ad|hone|od).+Version\\\/[\\d.]+.*Safari\/i.test(navigator.userAgent);\n});\nvar ze = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollBy, r4 = n4.scrollTop, i4 = n4.deviation, a5 = n4.scrollingInProgress, l5 = e2[1], s4 = l5.isScrolling, u4 = l5.isAtBottom, c4 = l5.scrollDirection, m4 = e2[3], d4 = m4.beforeUnshiftWith, f4 = m4.shiftWithOffset, p4 = m4.sizes, g4 = m4.gap, v4 = e2[4].log, S3 = e2[5].recalcInProgress, C4 = streamFromEmitter(pipe(e2[2].listState, withLatestFrom(l5.lastJumpDueToItemResize), scan(function(e3, t2) {\n var n5 = e3[1], o5 = t2[0], r5 = o5.items, i5 = o5.totalCount, a6 = o5.bottom + o5.offsetBottom, l6 = 0;\n return e3[2] === i5 && n5.length > 0 && r5.length > 0 && (0 === r5[0].originalIndex && 0 === n5[0].originalIndex || 0 != (l6 = a6 - e3[3]) && (l6 += t2[1])), [l6, r5, i5, a6];\n }, [0, [], 0, 0]), filter(function(e3) {\n return 0 !== e3[0];\n }), withLatestFrom(r4, c4, a5, u4, v4), filter(function(e3) {\n return !e3[3] && 0 !== e3[1] && e3[2] === se;\n }), map2(function(e3) {\n var t2 = e3[0][0];\n return (0, e3[5])(\"Upward scrolling compensation\", { amount: t2 }, h3.DEBUG), t2;\n })));\n function I2(e3) {\n e3 > 0 ? (publish(o4, { top: -e3, behavior: \"auto\" }), publish(i4, 0)) : (publish(i4, 0), publish(o4, { top: -e3, behavior: \"auto\" }));\n }\n return subscribe(pipe(C4, withLatestFrom(i4, s4)), function(e3) {\n var n5 = e3[0], o5 = e3[1];\n e3[2] && ke() ? publish(i4, o5 - n5) : I2(-n5);\n }), subscribe(pipe(combineLatest(statefulStreamFromEmitter(s4, false), i4, S3), filter(function(e3) {\n return !e3[0] && !e3[2] && 0 !== e3[1];\n }), map2(function(e3) {\n return e3[1];\n }), throttleTime(1)), I2), connect(pipe(f4, map2(function(e3) {\n return { top: -e3 };\n })), o4), subscribe(pipe(d4, withLatestFrom(p4, g4), map2(function(e3) {\n var t2 = e3[0];\n return t2 * e3[1].lastSize + t2 * e3[2];\n })), function(e3) {\n publish(i4, e3), requestAnimationFrame(function() {\n publish(o4, { top: e3 }), requestAnimationFrame(function() {\n publish(i4, 0), publish(S3, false);\n });\n });\n }), { deviation: i4 };\n}, tup(y3, ce, ye, re, S2, K));\nvar Be = system(function(e2) {\n var n4 = e2[0].totalListHeight, o4 = e2[1].didMount, r4 = e2[2].scrollTo, i4 = statefulStream(0);\n return subscribe(pipe(o4, withLatestFrom(i4), filter(function(e3) {\n return 0 !== e3[1];\n }), map2(function(e3) {\n return { top: e3[1] };\n })), function(e3) {\n handleNext(pipe(n4, filter(function(e4) {\n return 0 !== e4;\n })), function() {\n setTimeout(function() {\n publish(r4, e3);\n });\n });\n }), { initialScrollTop: i4 };\n}, tup(Le, me, y3), { singleton: true });\nvar Pe = system(function(e2) {\n var n4 = e2[0].viewportHeight, o4 = e2[1].totalListHeight, r4 = statefulStream(false);\n return { alignToBottom: r4, paddingTopAddition: statefulStreamFromEmitter(pipe(combineLatest(r4, n4, o4), filter(function(e3) {\n return e3[0];\n }), map2(function(e3) {\n return Math.max(0, e3[1] - e3[2]);\n }), distinctUntilChanged()), 0) };\n}, tup(y3, Le), { singleton: true });\nvar Oe = system(function(e2) {\n var n4 = e2[0], o4 = n4.scrollTo, r4 = n4.scrollContainerState, i4 = stream(), a5 = stream(), l5 = stream(), s4 = statefulStream(false), u4 = statefulStream(void 0);\n return connect(pipe(combineLatest(i4, a5), map2(function(e3) {\n var t2 = e3[0], n5 = t2.viewportHeight, o5 = t2.scrollHeight;\n return { scrollTop: Math.max(0, t2.scrollTop - e3[1].offsetTop), scrollHeight: o5, viewportHeight: n5 };\n })), r4), connect(pipe(o4, withLatestFrom(a5), map2(function(e3) {\n var t2 = e3[0];\n return c3({}, t2, { top: t2.top + e3[1].offsetTop });\n })), l5), { useWindowScroll: s4, customScrollParent: u4, windowScrollContainerState: i4, windowViewportRect: a5, windowScrollTo: l5 };\n}, tup(y3));\nvar Me = [\"done\", \"behavior\", \"align\"];\nvar We = system(function(e2) {\n var n4 = e2[0], o4 = n4.sizes, r4 = n4.totalCount, i4 = n4.gap, a5 = e2[1], l5 = a5.scrollTop, s4 = a5.viewportHeight, u4 = a5.headerHeight, d4 = a5.fixedHeaderHeight, f4 = a5.fixedFooterHeight, p4 = a5.scrollingInProgress, h4 = e2[2].scrollToIndex, g4 = stream();\n return connect(pipe(g4, withLatestFrom(o4, s4, r4, u4, d4, f4, l5), withLatestFrom(i4), map2(function(e3) {\n var n5 = e3[0], o5 = n5[0], r5 = n5[1], i5 = n5[2], a6 = n5[3], l6 = n5[4], s5 = n5[5], u5 = n5[6], d5 = n5[7], f5 = e3[1], h5 = o5.done, g5 = o5.behavior, v4 = o5.align, S3 = m3(o5, Me), C4 = null, I2 = ee(o5, r5, a6 - 1), T4 = X(I2, r5.offsetTree, f5) + l6 + s5;\n return T4 < d5 + s5 ? C4 = c3({}, S3, { behavior: g5, align: null != v4 ? v4 : \"start\" }) : T4 + k2(r5.sizeTree, I2)[1] > d5 + i5 - u5 && (C4 = c3({}, S3, { behavior: g5, align: null != v4 ? v4 : \"end\" })), C4 ? h5 && handleNext(pipe(p4, skip(1), filter(function(e4) {\n return false === e4;\n })), h5) : h5 && h5(), C4;\n }), filter(function(e3) {\n return null !== e3;\n })), h4), { scrollIntoView: g4 };\n}, tup(re, y3, le, ye, S2), { singleton: true });\nvar Ve = [\"listState\", \"topItemsIndexes\"];\nvar Ue = system(function(e2) {\n return c3({}, e2[0], e2[1], e2[2], e2[3], e2[4], e2[5], e2[6], e2[7], e2[8]);\n}, tup(Te, He, me, Ee, Le, Be, Pe, Oe, We));\nvar Ae = system(function(e2) {\n var n4 = e2[0], o4 = n4.totalCount, r4 = n4.sizeRanges, i4 = n4.fixedItemSize, a5 = n4.defaultItemSize, l5 = n4.trackItemSizes, s4 = n4.itemSize, u4 = n4.data, d4 = n4.firstItemIndex, f4 = n4.groupIndices, p4 = n4.statefulTotalCount, h4 = n4.gap, g4 = e2[1], v4 = g4.initialTopMostItemIndex, S3 = g4.scrolledToInitialItem, C4 = e2[2], I2 = e2[3], T4 = e2[4], w4 = T4.listState, x4 = T4.topItemsIndexes, b5 = m3(T4, Ve), y4 = e2[5].scrollToIndex, H3 = e2[7].topItemCount, E4 = e2[8].groupCounts, R5 = e2[9], L5 = e2[10];\n return connect(b5.rangeChanged, R5.scrollSeekRangeChanged), connect(pipe(R5.windowViewportRect, map2(function(e3) {\n return e3.visibleHeight;\n })), C4.viewportHeight), c3({ totalCount: o4, data: u4, firstItemIndex: d4, sizeRanges: r4, initialTopMostItemIndex: v4, scrolledToInitialItem: S3, topItemsIndexes: x4, topItemCount: H3, groupCounts: E4, fixedItemHeight: i4, defaultItemHeight: a5, gap: h4 }, I2, { statefulTotalCount: p4, listState: w4, scrollToIndex: y4, trackItemSizes: l5, itemSize: s4, groupIndices: f4 }, b5, R5, C4, L5);\n}, tup(re, de, y3, pe, ye, le, ze, Re, ge, Ue, S2));\nvar Ne = Fe(function() {\n if (\"undefined\" == typeof document)\n return \"sticky\";\n var e2 = document.createElement(\"div\");\n return e2.style.position = \"-webkit-sticky\", \"-webkit-sticky\" === e2.style.position ? \"-webkit-sticky\" : \"sticky\";\n});\nfunction De(e2, t2) {\n var n4 = (0, import_react66.useRef)(null), o4 = (0, import_react66.useCallback)(function(o5) {\n if (null !== o5 && o5.offsetParent) {\n var r4, i4, a5 = o5.getBoundingClientRect(), l6 = a5.width;\n if (t2) {\n var s5 = t2.getBoundingClientRect(), u5 = a5.top - s5.top;\n r4 = s5.height - Math.max(0, u5), i4 = u5 + t2.scrollTop;\n } else\n r4 = window.innerHeight - Math.max(0, a5.top), i4 = a5.top + window.pageYOffset;\n n4.current = { offsetTop: i4, visibleHeight: r4, visibleWidth: l6 }, e2(n4.current);\n }\n }, [e2, t2]), l5 = C2(o4), s4 = l5.callbackRef, u4 = l5.ref, c4 = (0, import_react66.useCallback)(function() {\n o4(u4.current);\n }, [o4, u4]);\n return (0, import_react66.useEffect)(function() {\n if (t2) {\n t2.addEventListener(\"scroll\", c4);\n var e3 = new ResizeObserver(c4);\n return e3.observe(t2), function() {\n t2.removeEventListener(\"scroll\", c4), e3.unobserve(t2);\n };\n }\n return window.addEventListener(\"scroll\", c4), window.addEventListener(\"resize\", c4), function() {\n window.removeEventListener(\"scroll\", c4), window.removeEventListener(\"resize\", c4);\n };\n }, [c4, t2]), s4;\n}\nvar Ge = n3.createContext(void 0);\nvar _e = n3.createContext(void 0);\nvar je = [\"placeholder\"];\nvar Ke = [\"style\", \"children\"];\nvar Ye = [\"style\", \"children\"];\nfunction qe(e2) {\n return e2;\n}\nvar Ze = system(function() {\n var e2 = statefulStream(function(e3) {\n return \"Item \" + e3;\n }), n4 = statefulStream(null), o4 = statefulStream(function(e3) {\n return \"Group \" + e3;\n }), r4 = statefulStream({}), i4 = statefulStream(qe), a5 = statefulStream(\"div\"), l5 = statefulStream(noop4), s4 = function(e3, n5) {\n return void 0 === n5 && (n5 = null), statefulStreamFromEmitter(pipe(r4, map2(function(t2) {\n return t2[e3];\n }), distinctUntilChanged()), n5);\n };\n return { context: n4, itemContent: e2, groupContent: o4, components: r4, computeItemKey: i4, headerFooterTag: a5, scrollerRef: l5, FooterComponent: s4(\"Footer\"), HeaderComponent: s4(\"Header\"), TopItemListComponent: s4(\"TopItemList\"), ListComponent: s4(\"List\", \"div\"), ItemComponent: s4(\"Item\", \"div\"), GroupComponent: s4(\"Group\", \"div\"), ScrollerComponent: s4(\"Scroller\", \"div\"), EmptyPlaceholder: s4(\"EmptyPlaceholder\"), ScrollSeekPlaceholder: s4(\"ScrollSeekPlaceholder\") };\n});\nfunction Je(e2, n4) {\n var o4 = stream();\n return subscribe(o4, function() {\n return console.warn(\"react-virtuoso: You are using a deprecated property. \" + n4, \"color: red;\", \"color: inherit;\", \"color: blue;\");\n }), connect(o4, e2), o4;\n}\nvar $e = system(function(e2) {\n var n4 = e2[0], o4 = e2[1], r4 = { item: Je(o4.itemContent, \"Rename the %citem%c prop to %citemContent.\"), group: Je(o4.groupContent, \"Rename the %cgroup%c prop to %cgroupContent.\"), topItems: Je(n4.topItemCount, \"Rename the %ctopItems%c prop to %ctopItemCount.\"), itemHeight: Je(n4.fixedItemHeight, \"Rename the %citemHeight%c prop to %cfixedItemHeight.\"), scrollingStateChange: Je(n4.isScrolling, \"Rename the %cscrollingStateChange%c prop to %cisScrolling.\"), adjustForPrependedItems: stream(), maxHeightCacheSize: stream(), footer: stream(), header: stream(), HeaderContainer: stream(), FooterContainer: stream(), ItemContainer: stream(), ScrollContainer: stream(), GroupContainer: stream(), ListContainer: stream(), emptyComponent: stream(), scrollSeek: stream() };\n function i4(e3, n5, r5) {\n connect(pipe(e3, withLatestFrom(o4.components), map2(function(e4) {\n var t2, o5 = e4[0], i5 = e4[1];\n return console.warn(\"react-virtuoso: \" + r5 + \" property is deprecated. Pass components.\" + n5 + \" instead.\"), c3({}, i5, ((t2 = {})[n5] = o5, t2));\n })), o4.components);\n }\n return subscribe(r4.adjustForPrependedItems, function() {\n console.warn(\"react-virtuoso: adjustForPrependedItems is no longer supported. Use the firstItemIndex property instead - https:\/\/virtuoso.dev\/prepend-items.\", \"color: red;\", \"color: inherit;\", \"color: blue;\");\n }), subscribe(r4.maxHeightCacheSize, function() {\n console.warn(\"react-virtuoso: maxHeightCacheSize is no longer necessary. Setting it has no effect - remove it from your code.\");\n }), subscribe(r4.HeaderContainer, function() {\n console.warn(\"react-virtuoso: HeaderContainer is deprecated. Use headerFooterTag if you want to change the wrapper of the header component and pass components.Header to change its contents.\");\n }), subscribe(r4.FooterContainer, function() {\n console.warn(\"react-virtuoso: FooterContainer is deprecated. Use headerFooterTag if you want to change the wrapper of the footer component and pass components.Footer to change its contents.\");\n }), subscribe(r4.scrollSeek, function(e3) {\n var r5 = e3.placeholder, i5 = m3(e3, je);\n console.warn(\"react-virtuoso: scrollSeek property is deprecated. Pass scrollSeekConfiguration and specify the placeholder in components.ScrollSeekPlaceholder instead.\"), publish(o4.components, c3({}, getValue(o4.components), { ScrollSeekPlaceholder: r5 })), publish(n4.scrollSeekConfiguration, i5);\n }), i4(r4.footer, \"Footer\", \"footer\"), i4(r4.header, \"Header\", \"header\"), i4(r4.ItemContainer, \"Item\", \"ItemContainer\"), i4(r4.ListContainer, \"List\", \"ListContainer\"), i4(r4.ScrollContainer, \"Scroller\", \"ScrollContainer\"), i4(r4.emptyComponent, \"EmptyPlaceholder\", \"emptyComponent\"), i4(r4.GroupContainer, \"Group\", \"GroupContainer\"), c3({}, n4, o4, r4);\n}, tup(Ae, Ze));\nvar Qe = function(e2) {\n return n3.createElement(\"div\", { style: { height: e2.height } });\n};\nvar Xe = { position: Ne(), zIndex: 1, overflowAnchor: \"none\" };\nvar et = { overflowAnchor: \"none\" };\nvar tt = n3.memo(function(e2) {\n var o4 = e2.showTopList, r4 = void 0 !== o4 && o4, i4 = gt(\"listState\"), a5 = ht(\"sizeRanges\"), s4 = gt(\"useWindowScroll\"), u4 = gt(\"customScrollParent\"), m4 = ht(\"windowScrollContainerState\"), d4 = ht(\"scrollContainerState\"), f4 = u4 || s4 ? m4 : d4, p4 = gt(\"itemContent\"), h4 = gt(\"context\"), g4 = gt(\"groupContent\"), v4 = gt(\"trackItemSizes\"), S3 = gt(\"itemSize\"), C4 = gt(\"log\"), I2 = ht(\"gap\"), w4 = T3(a5, S3, v4, r4 ? noop4 : f4, C4, I2, u4).callbackRef, x4 = n3.useState(0), b5 = x4[0], y4 = x4[1];\n vt(\"deviation\", function(e3) {\n b5 !== e3 && y4(e3);\n });\n var H3 = gt(\"EmptyPlaceholder\"), E4 = gt(\"ScrollSeekPlaceholder\") || Qe, R5 = gt(\"ListComponent\"), L5 = gt(\"ItemComponent\"), F2 = gt(\"GroupComponent\"), k3 = gt(\"computeItemKey\"), z3 = gt(\"isSeeking\"), B3 = gt(\"groupIndices\").length > 0, P3 = gt(\"paddingTopAddition\"), O3 = r4 ? {} : { boxSizing: \"border-box\", paddingTop: i4.offsetTop + P3, paddingBottom: i4.offsetBottom, marginTop: b5 };\n return !r4 && 0 === i4.totalCount && H3 ? (0, import_react66.createElement)(H3, it(H3, h4)) : (0, import_react66.createElement)(R5, c3({}, it(R5, h4), { ref: w4, style: O3, \"data-test-id\": r4 ? \"virtuoso-top-item-list\" : \"virtuoso-item-list\" }), (r4 ? i4.topItems : i4.items).map(function(e3) {\n var t2 = e3.originalIndex, n4 = k3(t2 + i4.firstItemIndex, e3.data, h4);\n return z3 ? (0, import_react66.createElement)(E4, c3({}, it(E4, h4), { key: n4, index: e3.index, height: e3.size, type: e3.type || \"item\" }, \"group\" === e3.type ? {} : { groupIndex: e3.groupIndex })) : \"group\" === e3.type ? (0, import_react66.createElement)(F2, c3({}, it(F2, h4), { key: n4, \"data-index\": t2, \"data-known-size\": e3.size, \"data-item-index\": e3.index, style: Xe }), g4(e3.index)) : (0, import_react66.createElement)(L5, c3({}, it(L5, h4), { key: n4, \"data-index\": t2, \"data-known-size\": e3.size, \"data-item-index\": e3.index, \"data-item-group-index\": e3.groupIndex, style: et }), B3 ? p4(e3.index, e3.groupIndex, e3.data, h4) : p4(e3.index, e3.data, h4));\n }));\n});\nvar nt = { height: \"100%\", outline: \"none\", overflowY: \"auto\", position: \"relative\", WebkitOverflowScrolling: \"touch\" };\nvar ot = { width: \"100%\", height: \"100%\", position: \"absolute\", top: 0 };\nvar rt = { width: \"100%\", position: Ne(), top: 0 };\nfunction it(e2, t2) {\n if (\"string\" != typeof e2)\n return { context: t2 };\n}\nvar at = n3.memo(function() {\n var e2 = gt(\"HeaderComponent\"), t2 = ht(\"headerHeight\"), n4 = gt(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = gt(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nvar lt = n3.memo(function() {\n var e2 = gt(\"FooterComponent\"), t2 = ht(\"footerHeight\"), n4 = gt(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = gt(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nfunction st(e2) {\n var t2 = e2.usePublisher, o4 = e2.useEmitter, r4 = e2.useEmitterValue;\n return n3.memo(function(e3) {\n var n4 = e3.style, i4 = e3.children, a5 = m3(e3, Ke), s4 = t2(\"scrollContainerState\"), u4 = r4(\"ScrollerComponent\"), d4 = t2(\"smoothScrollTargetReached\"), f4 = r4(\"scrollerRef\"), p4 = r4(\"context\"), h4 = b3(s4, d4, u4, f4), g4 = h4.scrollerRef, v4 = h4.scrollByCallback;\n return o4(\"scrollTo\", h4.scrollToCallback), o4(\"scrollBy\", v4), (0, import_react66.createElement)(u4, c3({ ref: g4, style: c3({}, nt, n4), \"data-test-id\": \"virtuoso-scroller\", \"data-virtuoso-scroller\": true, tabIndex: 0 }, a5, it(u4, p4)), i4);\n });\n}\nfunction ut(e2) {\n var o4 = e2.usePublisher, r4 = e2.useEmitter, i4 = e2.useEmitterValue;\n return n3.memo(function(e3) {\n var n4 = e3.style, a5 = e3.children, s4 = m3(e3, Ye), u4 = o4(\"windowScrollContainerState\"), d4 = i4(\"ScrollerComponent\"), f4 = o4(\"smoothScrollTargetReached\"), p4 = i4(\"totalListHeight\"), h4 = i4(\"deviation\"), v4 = i4(\"customScrollParent\"), S3 = i4(\"context\"), C4 = b3(u4, f4, d4, noop4, v4), I2 = C4.scrollerRef, T4 = C4.scrollByCallback, w4 = C4.scrollToCallback;\n return g3(function() {\n return I2.current = v4 || window, function() {\n I2.current = null;\n };\n }, [I2, v4]), r4(\"windowScrollTo\", w4), r4(\"scrollBy\", T4), (0, import_react66.createElement)(d4, c3({ style: c3({ position: \"relative\" }, n4, 0 !== p4 ? { height: p4 + h4 } : {}), \"data-virtuoso-scroller\": true }, s4, it(d4, S3)), a5);\n });\n}\nvar ct = function(e2) {\n var o4 = e2.children, r4 = (0, import_react66.useContext)(Ge), i4 = ht(\"viewportHeight\"), a5 = ht(\"fixedItemHeight\"), l5 = I(compose(i4, function(e3) {\n return w3(e3, \"height\");\n }));\n return n3.useEffect(function() {\n r4 && (i4(r4.viewportHeight), a5(r4.itemHeight));\n }, [r4, i4, a5]), n3.createElement(\"div\", { style: ot, ref: l5, \"data-viewport-type\": \"element\" }, o4);\n};\nvar mt = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(Ge), r4 = ht(\"windowViewportRect\"), i4 = ht(\"fixedItemHeight\"), a5 = gt(\"customScrollParent\"), l5 = De(r4, a5);\n return n3.useEffect(function() {\n o4 && (i4(o4.itemHeight), r4({ offsetTop: 0, visibleHeight: o4.viewportHeight, visibleWidth: 100 }));\n }, [o4, r4, i4]), n3.createElement(\"div\", { ref: l5, style: ot, \"data-viewport-type\": \"window\" }, t2);\n};\nvar dt = function(e2) {\n var t2 = e2.children, n4 = gt(\"TopItemListComponent\"), o4 = gt(\"headerHeight\"), r4 = c3({}, rt, { marginTop: o4 + \"px\" }), i4 = gt(\"context\");\n return (0, import_react66.createElement)(n4 || \"div\", { style: r4, context: i4 }, t2);\n};\nvar ft = systemToComponent($e, { required: {}, optional: { context: \"context\", followOutput: \"followOutput\", firstItemIndex: \"firstItemIndex\", itemContent: \"itemContent\", groupContent: \"groupContent\", overscan: \"overscan\", increaseViewportBy: \"increaseViewportBy\", totalCount: \"totalCount\", topItemCount: \"topItemCount\", initialTopMostItemIndex: \"initialTopMostItemIndex\", components: \"components\", groupCounts: \"groupCounts\", atBottomThreshold: \"atBottomThreshold\", atTopThreshold: \"atTopThreshold\", computeItemKey: \"computeItemKey\", defaultItemHeight: \"defaultItemHeight\", fixedItemHeight: \"fixedItemHeight\", itemSize: \"itemSize\", scrollSeekConfiguration: \"scrollSeekConfiguration\", headerFooterTag: \"headerFooterTag\", data: \"data\", initialItemCount: \"initialItemCount\", initialScrollTop: \"initialScrollTop\", alignToBottom: \"alignToBottom\", useWindowScroll: \"useWindowScroll\", customScrollParent: \"customScrollParent\", scrollerRef: \"scrollerRef\", logLevel: \"logLevel\", react18ConcurrentRendering: \"react18ConcurrentRendering\", item: \"item\", group: \"group\", topItems: \"topItems\", itemHeight: \"itemHeight\", scrollingStateChange: \"scrollingStateChange\", maxHeightCacheSize: \"maxHeightCacheSize\", footer: \"footer\", header: \"header\", ItemContainer: \"ItemContainer\", ScrollContainer: \"ScrollContainer\", ListContainer: \"ListContainer\", GroupContainer: \"GroupContainer\", emptyComponent: \"emptyComponent\", HeaderContainer: \"HeaderContainer\", FooterContainer: \"FooterContainer\", scrollSeek: \"scrollSeek\" }, methods: { scrollToIndex: \"scrollToIndex\", scrollIntoView: \"scrollIntoView\", scrollTo: \"scrollTo\", scrollBy: \"scrollBy\", adjustForPrependedItems: \"adjustForPrependedItems\", autoscrollToBottom: \"autoscrollToBottom\" }, events: { isScrolling: \"isScrolling\", endReached: \"endReached\", startReached: \"startReached\", rangeChanged: \"rangeChanged\", atBottomStateChange: \"atBottomStateChange\", atTopStateChange: \"atTopStateChange\", totalListHeightChanged: \"totalListHeightChanged\", itemsRendered: \"itemsRendered\", groupIndices: \"groupIndices\" } }, n3.memo(function(e2) {\n var t2 = gt(\"useWindowScroll\"), o4 = gt(\"topItemsIndexes\").length > 0, r4 = gt(\"customScrollParent\"), i4 = r4 || t2 ? mt : ct;\n return n3.createElement(r4 || t2 ? Ct : St, c3({}, e2), n3.createElement(i4, null, n3.createElement(at, null), n3.createElement(tt, null), n3.createElement(lt, null)), o4 && n3.createElement(dt, null, n3.createElement(tt, { showTopList: true })));\n}));\nvar pt = ft.Component;\nvar ht = ft.usePublisher;\nvar gt = ft.useEmitterValue;\nvar vt = ft.useEmitter;\nvar St = st({ usePublisher: ht, useEmitterValue: gt, useEmitter: vt });\nvar Ct = ut({ usePublisher: ht, useEmitterValue: gt, useEmitter: vt });\nvar It = { items: [], offsetBottom: 0, offsetTop: 0, top: 0, bottom: 0, itemHeight: 0, itemWidth: 0 };\nvar Tt = { items: [{ index: 0 }], offsetBottom: 0, offsetTop: 0, top: 0, bottom: 0, itemHeight: 0, itemWidth: 0 };\nvar wt = Math.round;\nvar xt = Math.ceil;\nvar bt = Math.floor;\nvar yt = Math.min;\nvar Ht = Math.max;\nfunction Et(e2, t2, n4) {\n return Array.from({ length: t2 - e2 + 1 }).map(function(t3, o4) {\n return { index: o4 + e2, data: null == n4 ? void 0 : n4[o4 + e2] };\n });\n}\nfunction Rt(e2, t2) {\n return e2 && e2.column === t2.column && e2.row === t2.row;\n}\nvar Lt = system(function(e2) {\n var n4 = e2[0], o4 = n4.overscan, r4 = n4.visibleRange, i4 = n4.listBoundary, a5 = e2[1], l5 = a5.scrollTop, s4 = a5.viewportHeight, u4 = a5.scrollBy, m4 = a5.scrollTo, d4 = a5.smoothScrollTargetReached, f4 = a5.scrollContainerState, p4 = a5.footerHeight, h4 = a5.headerHeight, g4 = e2[2], v4 = e2[3], S3 = e2[4], C4 = S3.propsReady, I2 = S3.didMount, T4 = e2[5], w4 = T4.windowViewportRect, x4 = T4.windowScrollTo, b5 = T4.useWindowScroll, y4 = T4.customScrollParent, H3 = T4.windowScrollContainerState, E4 = e2[6], R5 = statefulStream(0), L5 = statefulStream(0), F2 = statefulStream(It), k3 = statefulStream({ height: 0, width: 0 }), z3 = statefulStream({ height: 0, width: 0 }), B3 = stream(), P3 = stream(), O3 = statefulStream(0), M2 = statefulStream(void 0), W3 = statefulStream({ row: 0, column: 0 });\n connect(pipe(combineLatest(I2, L5, M2), filter(function(e3) {\n return 0 !== e3[1];\n }), map2(function(e3) {\n return { items: Et(0, e3[1] - 1, e3[2]), top: 0, bottom: 0, offsetBottom: 0, offsetTop: 0, itemHeight: 0, itemWidth: 0 };\n })), F2), connect(pipe(combineLatest(duc(R5), r4, duc(W3, Rt), duc(z3, function(e3, t2) {\n return e3 && e3.width === t2.width && e3.height === t2.height;\n }), M2), withLatestFrom(k3), map2(function(e3) {\n var t2 = e3[0], n5 = t2[0], o5 = t2[1], r5 = o5[0], i5 = o5[1], a6 = t2[2], l6 = t2[3], s5 = t2[4], u5 = e3[1], m5 = a6.row, d5 = a6.column, f5 = l6.height, p5 = l6.width, h5 = u5.width;\n if (0 === n5 || 0 === h5)\n return It;\n if (0 === p5)\n return function(e4) {\n return c3({}, Tt, { items: e4 });\n }(Et(0, 0, s5));\n var g5 = zt(h5, p5, d5), v5 = g5 * bt((r5 + m5) \/ (f5 + m5)), S4 = g5 * xt((i5 + m5) \/ (f5 + m5)) - 1;\n S4 = yt(n5 - 1, Ht(S4, g5 - 1));\n var C5 = Et(v5 = yt(S4, Ht(0, v5)), S4, s5), I3 = Ft(u5, a6, l6, C5), T5 = I3.top, w5 = I3.bottom, x5 = xt(n5 \/ g5);\n return { items: C5, offsetTop: T5, offsetBottom: x5 * f5 + (x5 - 1) * m5 - w5, top: T5, bottom: w5, itemHeight: f5, itemWidth: p5 };\n })), F2), connect(pipe(M2, filter(function(e3) {\n return void 0 !== e3;\n }), map2(function(e3) {\n return e3.length;\n })), R5), connect(pipe(k3, map2(function(e3) {\n return e3.height;\n })), s4), connect(pipe(combineLatest(k3, z3, F2, W3), map2(function(e3) {\n var t2 = Ft(e3[0], e3[3], e3[1], e3[2].items);\n return [t2.top, t2.bottom];\n }), distinctUntilChanged(ve)), i4);\n var V4 = streamFromEmitter(pipe(duc(F2), filter(function(e3) {\n return e3.items.length > 0;\n }), withLatestFrom(R5), filter(function(e3) {\n var t2 = e3[0].items;\n return t2[t2.length - 1].index === e3[1] - 1;\n }), map2(function(e3) {\n return e3[1] - 1;\n }), distinctUntilChanged())), U2 = streamFromEmitter(pipe(duc(F2), filter(function(e3) {\n var t2 = e3.items;\n return t2.length > 0 && 0 === t2[0].index;\n }), mapTo(0), distinctUntilChanged())), A4 = streamFromEmitter(pipe(duc(F2), filter(function(e3) {\n return e3.items.length > 0;\n }), map2(function(e3) {\n var t2 = e3.items;\n return { startIndex: t2[0].index, endIndex: t2[t2.length - 1].index };\n }), distinctUntilChanged(Se)));\n connect(A4, v4.scrollSeekRangeChanged), connect(pipe(B3, withLatestFrom(k3, z3, R5, W3), map2(function(e3) {\n var t2 = e3[1], n5 = e3[2], o5 = e3[3], r5 = e3[4], i5 = ae(e3[0]), a6 = i5.align, l6 = i5.behavior, s5 = i5.offset, u5 = i5.index;\n \"LAST\" === u5 && (u5 = o5 - 1);\n var c4 = kt(t2, r5, n5, u5 = Ht(0, u5, yt(o5 - 1, u5)));\n return \"end\" === a6 ? c4 = wt(c4 - t2.height + n5.height) : \"center\" === a6 && (c4 = wt(c4 - t2.height \/ 2 + n5.height \/ 2)), s5 && (c4 += s5), { top: c4, behavior: l6 };\n })), m4);\n var N3 = statefulStreamFromEmitter(pipe(F2, map2(function(e3) {\n return e3.offsetBottom + e3.bottom;\n })), 0);\n return connect(pipe(w4, map2(function(e3) {\n return { width: e3.visibleWidth, height: e3.visibleHeight };\n })), k3), c3({ data: M2, totalCount: R5, viewportDimensions: k3, itemDimensions: z3, scrollTop: l5, scrollHeight: P3, overscan: o4, scrollBy: u4, scrollTo: m4, scrollToIndex: B3, smoothScrollTargetReached: d4, windowViewportRect: w4, windowScrollTo: x4, useWindowScroll: b5, customScrollParent: y4, windowScrollContainerState: H3, deviation: O3, scrollContainerState: f4, footerHeight: p4, headerHeight: h4, initialItemCount: L5, gap: W3 }, v4, { gridState: F2, totalListHeight: N3 }, g4, { startReached: U2, endReached: V4, rangeChanged: A4, propsReady: C4 }, E4);\n}, tup(Te, y3, ce, Ee, me, Oe, S2));\nfunction Ft(e2, t2, n4, o4) {\n var r4 = n4.height;\n return void 0 === r4 || 0 === o4.length ? { top: 0, bottom: 0 } : { top: kt(e2, t2, n4, o4[0].index), bottom: kt(e2, t2, n4, o4[o4.length - 1].index) + r4 };\n}\nfunction kt(e2, t2, n4, o4) {\n var r4 = zt(e2.width, n4.width, t2.column), i4 = bt(o4 \/ r4), a5 = i4 * n4.height + Ht(0, i4 - 1) * t2.row;\n return a5 > 0 ? a5 + t2.row : a5;\n}\nfunction zt(e2, t2, n4) {\n return Ht(1, bt((e2 + n4) \/ (t2 + n4)));\n}\nvar Bt = [\"placeholder\"];\nvar Pt = system(function() {\n var e2 = statefulStream(function(e3) {\n return \"Item \" + e3;\n }), n4 = statefulStream({}), o4 = statefulStream(null), r4 = statefulStream(\"virtuoso-grid-item\"), i4 = statefulStream(\"virtuoso-grid-list\"), a5 = statefulStream(qe), l5 = statefulStream(\"div\"), s4 = statefulStream(noop4), u4 = function(e3, o5) {\n return void 0 === o5 && (o5 = null), statefulStreamFromEmitter(pipe(n4, map2(function(t2) {\n return t2[e3];\n }), distinctUntilChanged()), o5);\n };\n return { context: o4, itemContent: e2, components: n4, computeItemKey: a5, itemClassName: r4, listClassName: i4, headerFooterTag: l5, scrollerRef: s4, FooterComponent: u4(\"Footer\"), HeaderComponent: u4(\"Header\"), ListComponent: u4(\"List\", \"div\"), ItemComponent: u4(\"Item\", \"div\"), ScrollerComponent: u4(\"Scroller\", \"div\"), ScrollSeekPlaceholder: u4(\"ScrollSeekPlaceholder\", \"div\") };\n});\nvar Ot = system(function(e2) {\n var n4 = e2[0], o4 = e2[1], r4 = { item: Je(o4.itemContent, \"Rename the %citem%c prop to %citemContent.\"), ItemContainer: stream(), ScrollContainer: stream(), ListContainer: stream(), emptyComponent: stream(), scrollSeek: stream() };\n function i4(e3, n5, r5) {\n connect(pipe(e3, withLatestFrom(o4.components), map2(function(e4) {\n var t2, o5 = e4[0], i5 = e4[1];\n return console.warn(\"react-virtuoso: \" + r5 + \" property is deprecated. Pass components.\" + n5 + \" instead.\"), c3({}, i5, ((t2 = {})[n5] = o5, t2));\n })), o4.components);\n }\n return subscribe(r4.scrollSeek, function(e3) {\n var r5 = e3.placeholder, i5 = m3(e3, Bt);\n console.warn(\"react-virtuoso: scrollSeek property is deprecated. Pass scrollSeekConfiguration and specify the placeholder in components.ScrollSeekPlaceholder instead.\"), publish(o4.components, c3({}, getValue(o4.components), { ScrollSeekPlaceholder: r5 })), publish(n4.scrollSeekConfiguration, i5);\n }), i4(r4.ItemContainer, \"Item\", \"ItemContainer\"), i4(r4.ListContainer, \"List\", \"ListContainer\"), i4(r4.ScrollContainer, \"Scroller\", \"ScrollContainer\"), c3({}, n4, o4, r4);\n}, tup(Lt, Pt));\nvar Mt = n3.memo(function() {\n var e2 = _t(\"gridState\"), t2 = _t(\"listClassName\"), n4 = _t(\"itemClassName\"), o4 = _t(\"itemContent\"), r4 = _t(\"computeItemKey\"), i4 = _t(\"isSeeking\"), a5 = Gt(\"scrollHeight\"), s4 = _t(\"ItemComponent\"), u4 = _t(\"ListComponent\"), m4 = _t(\"ScrollSeekPlaceholder\"), d4 = _t(\"context\"), f4 = Gt(\"itemDimensions\"), p4 = Gt(\"gap\"), h4 = _t(\"log\"), g4 = I(function(e3) {\n a5(e3.parentElement.parentElement.scrollHeight);\n var t3 = e3.firstChild;\n t3 && f4(t3.getBoundingClientRect()), p4({ row: qt(\"row-gap\", getComputedStyle(e3).rowGap, h4), column: qt(\"column-gap\", getComputedStyle(e3).columnGap, h4) });\n });\n return (0, import_react66.createElement)(u4, c3({ ref: g4, className: t2 }, it(u4, d4), { style: { paddingTop: e2.offsetTop, paddingBottom: e2.offsetBottom } }), e2.items.map(function(t3) {\n var a6 = r4(t3.index, t3.data, d4);\n return i4 ? (0, import_react66.createElement)(m4, c3({ key: a6 }, it(m4, d4), { index: t3.index, height: e2.itemHeight, width: e2.itemWidth })) : (0, import_react66.createElement)(s4, c3({}, it(s4, d4), { className: n4, \"data-index\": t3.index, key: a6 }), o4(t3.index, t3.data, d4));\n }));\n});\nvar Wt = n3.memo(function() {\n var e2 = _t(\"HeaderComponent\"), t2 = Gt(\"headerHeight\"), n4 = _t(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = _t(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nvar Vt = n3.memo(function() {\n var e2 = _t(\"FooterComponent\"), t2 = Gt(\"footerHeight\"), n4 = _t(\"headerFooterTag\"), o4 = I(function(e3) {\n return t2(w3(e3, \"height\"));\n }), r4 = _t(\"context\");\n return e2 ? (0, import_react66.createElement)(n4, { ref: o4 }, (0, import_react66.createElement)(e2, it(e2, r4))) : null;\n});\nvar Ut = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(_e), r4 = Gt(\"itemDimensions\"), i4 = Gt(\"viewportDimensions\"), a5 = I(function(e3) {\n i4(e3.getBoundingClientRect());\n });\n return n3.useEffect(function() {\n o4 && (i4({ height: o4.viewportHeight, width: o4.viewportWidth }), r4({ height: o4.itemHeight, width: o4.itemWidth }));\n }, [o4, i4, r4]), n3.createElement(\"div\", { style: ot, ref: a5 }, t2);\n};\nvar At = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(_e), r4 = Gt(\"windowViewportRect\"), i4 = Gt(\"itemDimensions\"), a5 = _t(\"customScrollParent\"), l5 = De(r4, a5);\n return n3.useEffect(function() {\n o4 && (i4({ height: o4.itemHeight, width: o4.itemWidth }), r4({ offsetTop: 0, visibleHeight: o4.viewportHeight, visibleWidth: o4.viewportWidth }));\n }, [o4, r4, i4]), n3.createElement(\"div\", { ref: l5, style: ot }, t2);\n};\nvar Nt = systemToComponent(Ot, { optional: { context: \"context\", totalCount: \"totalCount\", overscan: \"overscan\", itemContent: \"itemContent\", components: \"components\", computeItemKey: \"computeItemKey\", data: \"data\", initialItemCount: \"initialItemCount\", scrollSeekConfiguration: \"scrollSeekConfiguration\", headerFooterTag: \"headerFooterTag\", listClassName: \"listClassName\", itemClassName: \"itemClassName\", useWindowScroll: \"useWindowScroll\", customScrollParent: \"customScrollParent\", scrollerRef: \"scrollerRef\", item: \"item\", ItemContainer: \"ItemContainer\", ScrollContainer: \"ScrollContainer\", ListContainer: \"ListContainer\", scrollSeek: \"scrollSeek\" }, methods: { scrollTo: \"scrollTo\", scrollBy: \"scrollBy\", scrollToIndex: \"scrollToIndex\" }, events: { isScrolling: \"isScrolling\", endReached: \"endReached\", startReached: \"startReached\", rangeChanged: \"rangeChanged\", atBottomStateChange: \"atBottomStateChange\", atTopStateChange: \"atTopStateChange\" } }, n3.memo(function(e2) {\n var t2 = c3({}, e2), o4 = _t(\"useWindowScroll\"), r4 = _t(\"customScrollParent\"), i4 = r4 || o4 ? At : Ut;\n return n3.createElement(r4 || o4 ? Yt : Kt, c3({}, t2), n3.createElement(i4, null, n3.createElement(Wt, null), n3.createElement(Mt, null), n3.createElement(Vt, null)));\n}));\nvar Dt = Nt.Component;\nvar Gt = Nt.usePublisher;\nvar _t = Nt.useEmitterValue;\nvar jt = Nt.useEmitter;\nvar Kt = st({ usePublisher: Gt, useEmitterValue: _t, useEmitter: jt });\nvar Yt = ut({ usePublisher: Gt, useEmitterValue: _t, useEmitter: jt });\nfunction qt(e2, t2, n4) {\n return \"normal\" === t2 || null != t2 && t2.endsWith(\"px\") || n4(e2 + \" was not resolved to pixel value correctly\", t2, h3.WARN), \"normal\" === t2 ? 0 : parseInt(null != t2 ? t2 : \"0\", 10);\n}\nvar Zt = system(function() {\n var e2 = statefulStream(function(e3) {\n return n3.createElement(\"td\", null, \"Item $\", e3);\n }), o4 = statefulStream(null), r4 = statefulStream(null), i4 = statefulStream(null), a5 = statefulStream({}), l5 = statefulStream(qe), s4 = statefulStream(noop4), u4 = function(e3, n4) {\n return void 0 === n4 && (n4 = null), statefulStreamFromEmitter(pipe(a5, map2(function(t2) {\n return t2[e3];\n }), distinctUntilChanged()), n4);\n };\n return { context: o4, itemContent: e2, fixedHeaderContent: r4, fixedFooterContent: i4, components: a5, computeItemKey: l5, scrollerRef: s4, TableComponent: u4(\"Table\", \"table\"), TableHeadComponent: u4(\"TableHead\", \"thead\"), TableFooterComponent: u4(\"TableFoot\", \"tfoot\"), TableBodyComponent: u4(\"TableBody\", \"tbody\"), TableRowComponent: u4(\"TableRow\", \"tr\"), ScrollerComponent: u4(\"Scroller\", \"div\"), EmptyPlaceholder: u4(\"EmptyPlaceholder\"), ScrollSeekPlaceholder: u4(\"ScrollSeekPlaceholder\"), FillerRow: u4(\"FillerRow\") };\n});\nvar Jt = system(function(e2) {\n return c3({}, e2[0], e2[1]);\n}, tup(Ae, Zt));\nvar $t = function(e2) {\n return n3.createElement(\"tr\", null, n3.createElement(\"td\", { style: { height: e2.height } }));\n};\nvar Qt = function(e2) {\n return n3.createElement(\"tr\", null, n3.createElement(\"td\", { style: { height: e2.height, padding: 0, border: 0 } }));\n};\nvar Xt = n3.memo(function() {\n var e2 = an(\"listState\"), t2 = rn(\"sizeRanges\"), o4 = an(\"useWindowScroll\"), r4 = an(\"customScrollParent\"), i4 = rn(\"windowScrollContainerState\"), a5 = rn(\"scrollContainerState\"), s4 = r4 || o4 ? i4 : a5, u4 = an(\"itemContent\"), m4 = an(\"trackItemSizes\"), d4 = T3(t2, an(\"itemSize\"), m4, s4, an(\"log\"), void 0, r4), f4 = d4.callbackRef, p4 = d4.ref, h4 = n3.useState(0), g4 = h4[0], v4 = h4[1];\n ln(\"deviation\", function(e3) {\n g4 !== e3 && (p4.current.style.marginTop = e3 + \"px\", v4(e3));\n });\n var S3 = an(\"EmptyPlaceholder\"), C4 = an(\"ScrollSeekPlaceholder\") || $t, I2 = an(\"FillerRow\") || Qt, w4 = an(\"TableBodyComponent\"), x4 = an(\"TableRowComponent\"), b5 = an(\"computeItemKey\"), y4 = an(\"isSeeking\"), H3 = an(\"paddingTopAddition\"), E4 = an(\"firstItemIndex\"), R5 = an(\"statefulTotalCount\"), L5 = an(\"context\");\n if (0 === R5 && S3)\n return (0, import_react66.createElement)(S3, it(S3, L5));\n var F2 = e2.offsetTop + H3 + g4, k3 = e2.offsetBottom, z3 = F2 > 0 ? n3.createElement(I2, { height: F2, key: \"padding-top\" }) : null, B3 = k3 > 0 ? n3.createElement(I2, { height: k3, key: \"padding-bottom\" }) : null, P3 = e2.items.map(function(e3) {\n var t3 = e3.originalIndex, n4 = b5(t3 + E4, e3.data, L5);\n return y4 ? (0, import_react66.createElement)(C4, c3({}, it(C4, L5), { key: n4, index: e3.index, height: e3.size, type: e3.type || \"item\" })) : (0, import_react66.createElement)(x4, c3({}, it(x4, L5), { key: n4, \"data-index\": t3, \"data-known-size\": e3.size, \"data-item-index\": e3.index, style: { overflowAnchor: \"none\" } }), u4(e3.index, e3.data, L5));\n });\n return (0, import_react66.createElement)(w4, c3({ ref: f4, \"data-test-id\": \"virtuoso-item-list\" }, it(w4, L5)), [z3].concat(P3, [B3]));\n});\nvar en = function(e2) {\n var o4 = e2.children, r4 = (0, import_react66.useContext)(Ge), i4 = rn(\"viewportHeight\"), a5 = rn(\"fixedItemHeight\"), l5 = I(compose(i4, function(e3) {\n return w3(e3, \"height\");\n }));\n return n3.useEffect(function() {\n r4 && (i4(r4.viewportHeight), a5(r4.itemHeight));\n }, [r4, i4, a5]), n3.createElement(\"div\", { style: ot, ref: l5, \"data-viewport-type\": \"element\" }, o4);\n};\nvar tn = function(e2) {\n var t2 = e2.children, o4 = (0, import_react66.useContext)(Ge), r4 = rn(\"windowViewportRect\"), i4 = rn(\"fixedItemHeight\"), a5 = an(\"customScrollParent\"), l5 = De(r4, a5);\n return n3.useEffect(function() {\n o4 && (i4(o4.itemHeight), r4({ offsetTop: 0, visibleHeight: o4.viewportHeight, visibleWidth: 100 }));\n }, [o4, r4, i4]), n3.createElement(\"div\", { ref: l5, style: ot, \"data-viewport-type\": \"window\" }, t2);\n};\nvar nn = systemToComponent(Jt, { required: {}, optional: { context: \"context\", followOutput: \"followOutput\", firstItemIndex: \"firstItemIndex\", itemContent: \"itemContent\", fixedHeaderContent: \"fixedHeaderContent\", fixedFooterContent: \"fixedFooterContent\", overscan: \"overscan\", increaseViewportBy: \"increaseViewportBy\", totalCount: \"totalCount\", topItemCount: \"topItemCount\", initialTopMostItemIndex: \"initialTopMostItemIndex\", components: \"components\", groupCounts: \"groupCounts\", atBottomThreshold: \"atBottomThreshold\", atTopThreshold: \"atTopThreshold\", computeItemKey: \"computeItemKey\", defaultItemHeight: \"defaultItemHeight\", fixedItemHeight: \"fixedItemHeight\", itemSize: \"itemSize\", scrollSeekConfiguration: \"scrollSeekConfiguration\", data: \"data\", initialItemCount: \"initialItemCount\", initialScrollTop: \"initialScrollTop\", alignToBottom: \"alignToBottom\", useWindowScroll: \"useWindowScroll\", customScrollParent: \"customScrollParent\", scrollerRef: \"scrollerRef\", logLevel: \"logLevel\", react18ConcurrentRendering: \"react18ConcurrentRendering\" }, methods: { scrollToIndex: \"scrollToIndex\", scrollIntoView: \"scrollIntoView\", scrollTo: \"scrollTo\", scrollBy: \"scrollBy\" }, events: { isScrolling: \"isScrolling\", endReached: \"endReached\", startReached: \"startReached\", rangeChanged: \"rangeChanged\", atBottomStateChange: \"atBottomStateChange\", atTopStateChange: \"atTopStateChange\", totalListHeightChanged: \"totalListHeightChanged\", itemsRendered: \"itemsRendered\", groupIndices: \"groupIndices\" } }, n3.memo(function(e2) {\n var o4 = an(\"useWindowScroll\"), r4 = an(\"customScrollParent\"), i4 = rn(\"fixedHeaderHeight\"), a5 = rn(\"fixedFooterHeight\"), l5 = an(\"fixedHeaderContent\"), s4 = an(\"fixedFooterContent\"), u4 = an(\"context\"), m4 = I(compose(i4, function(e3) {\n return w3(e3, \"height\");\n })), d4 = I(compose(a5, function(e3) {\n return w3(e3, \"height\");\n })), f4 = r4 || o4 ? un : sn, p4 = r4 || o4 ? tn : en, h4 = an(\"TableComponent\"), g4 = an(\"TableHeadComponent\"), v4 = an(\"TableFooterComponent\"), S3 = l5 ? n3.createElement(g4, c3({ key: \"TableHead\", style: { zIndex: 1, position: \"sticky\", top: 0 }, ref: m4 }, it(g4, u4)), l5()) : null, C4 = s4 ? n3.createElement(v4, c3({ key: \"TableFoot\", style: { zIndex: 1, position: \"sticky\", bottom: 0 }, ref: d4 }, it(v4, u4)), s4()) : null;\n return n3.createElement(f4, c3({}, e2), n3.createElement(p4, null, n3.createElement(h4, c3({ style: { borderSpacing: 0 } }, it(h4, u4)), [S3, n3.createElement(Xt, { key: \"TableBody\" }), C4])));\n}));\nvar on = nn.Component;\nvar rn = nn.usePublisher;\nvar an = nn.useEmitterValue;\nvar ln = nn.useEmitter;\nvar sn = st({ usePublisher: rn, useEmitterValue: an, useEmitter: ln });\nvar un = ut({ usePublisher: rn, useEmitterValue: an, useEmitter: ln });\nvar cn = pt;\n\n\/\/ src\/lib\/shapes\/BoxShape.tsx\nvar React54 = __toESM(require(\"react\"));\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/assertThisInitialized.js\nfunction _assertThisInitialized2(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/setPrototypeOf.js\nfunction _setPrototypeOf2(o4, p4) {\n _setPrototypeOf2 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf3(o5, p5) {\n o5.__proto__ = p5;\n return o5;\n };\n return _setPrototypeOf2(o4, p4);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/inheritsLoose.js\nfunction _inheritsLoose2(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf2(subClass, superClass);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/getPrototypeOf.js\nfunction _getPrototypeOf(o4) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o5) {\n return o5.__proto__ || Object.getPrototypeOf(o5);\n };\n return _getPrototypeOf(o4);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/isNativeFunction.js\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/isNativeReflectConstruct.js\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === \"function\")\n return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e2) {\n return false;\n }\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/construct.js\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct2(Parent2, args2, Class2) {\n var a5 = [null];\n a5.push.apply(a5, args2);\n var Constructor = Function.bind.apply(Parent2, a5);\n var instance = new Constructor();\n if (Class2)\n _setPrototypeOf2(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\n\n\/\/ ..\/..\/node_modules\/@babel\/runtime\/helpers\/esm\/wrapNativeSuper.js\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? \/* @__PURE__ *\/ new Map() : void 0;\n _wrapNativeSuper = function _wrapNativeSuper2(Class2) {\n if (Class2 === null || !_isNativeFunction(Class2))\n return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2))\n return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf2(Wrapper, Class2);\n };\n return _wrapNativeSuper(Class);\n}\n\n\/\/ ..\/..\/node_modules\/polished\/dist\/polished.esm.js\nvar PolishedError = \/* @__PURE__ *\/ function(_Error) {\n _inheritsLoose2(PolishedError2, _Error);\n function PolishedError2(code) {\n var _this;\n if (true) {\n _this = _Error.call(this, \"An error occurred. See https:\/\/github.com\/styled-components\/polished\/blob\/main\/src\/internalHelpers\/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n return _assertThisInitialized2(_this);\n }\n return PolishedError2;\n}(\/* @__PURE__ *\/ _wrapNativeSuper(Error));\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n if (saturation === 0) {\n return convert(lightness, lightness, lightness);\n }\n var huePrime = (hue % 360 + 360) % 360 \/ 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n var lightnessModification = lightness - chroma \/ 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\nvar namedColorMap = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"00ffff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"0000ff\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"00ffff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"ff00ff\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"639\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\nfunction nameToHex(color) {\n if (typeof color !== \"string\")\n return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\nvar hexRegex = \/^#[a-fA-F0-9]{6}$\/;\nvar hexRgbaRegex = \/^#[a-fA-F0-9]{8}$\/;\nvar reducedHexRegex = \/^#[a-fA-F0-9]{3}$\/;\nvar reducedRgbaHexRegex = \/^#[a-fA-F0-9]{4}$\/;\nvar rgbRegex = \/^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$\/i;\nvar rgbaRegex = \/^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$\/i;\nvar hslRegex = \/^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$\/i;\nvar hslaRegex = \/^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$\/i;\nfunction parseToRgb(color) {\n if (typeof color !== \"string\") {\n throw new PolishedError(3);\n }\n var normalizedColor = nameToHex(color);\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) \/ 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha\n };\n }\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) \/ 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n var rgbMatched = rgbRegex.exec(normalizedColor);\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) \/ 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n var hslMatched = hslRegex.exec(normalizedColor);\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) \/ 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) \/ 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) \/ 100;\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) \/ 100;\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) \/ 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n throw new PolishedError(5);\n}\nfunction rgbToHsl(color) {\n var red = color.red \/ 255;\n var green = color.green \/ 255;\n var blue = color.blue \/ 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) \/ 2;\n if (max === min) {\n if (color.alpha !== void 0) {\n return {\n hue: 0,\n saturation: 0,\n lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness\n };\n }\n }\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta \/ (2 - max - min) : delta \/ (max + min);\n switch (max) {\n case red:\n hue = (green - blue) \/ delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = (blue - red) \/ delta + 2;\n break;\n default:\n hue = (red - green) \/ delta + 4;\n break;\n }\n hue *= 60;\n if (color.alpha !== void 0) {\n return {\n hue,\n saturation,\n lightness,\n alpha: color.alpha\n };\n }\n return {\n hue,\n saturation,\n lightness\n };\n}\nfunction parseToHsl(color) {\n return rgbToHsl(parseToRgb(color));\n}\nvar reduceHexValue = function reduceHexValue2(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n return value;\n};\nvar reduceHexValue$1 = reduceHexValue;\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\nfunction hsl(value, saturation, lightness) {\n if (typeof value === \"number\" && typeof saturation === \"number\" && typeof lightness === \"number\") {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === \"object\" && saturation === void 0 && lightness === void 0) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n throw new PolishedError(1);\n}\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === \"number\" && typeof saturation === \"number\" && typeof lightness === \"number\" && typeof alpha === \"number\") {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === \"object\" && saturation === void 0 && lightness === void 0 && alpha === void 0) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n throw new PolishedError(2);\n}\nfunction rgb(value, green, blue) {\n if (typeof value === \"number\" && typeof green === \"number\" && typeof blue === \"number\") {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === \"object\" && green === void 0 && blue === void 0) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n throw new PolishedError(6);\n}\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === \"string\" && typeof secondValue === \"number\") {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === \"number\" && typeof secondValue === \"number\" && typeof thirdValue === \"number\" && typeof fourthValue === \"number\") {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === \"object\" && secondValue === void 0 && thirdValue === void 0 && fourthValue === void 0) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n throw new PolishedError(7);\n}\nvar isRgb = function isRgb2(color) {\n return typeof color.red === \"number\" && typeof color.green === \"number\" && typeof color.blue === \"number\" && (typeof color.alpha !== \"number\" || typeof color.alpha === \"undefined\");\n};\nvar isRgba = function isRgba2(color) {\n return typeof color.red === \"number\" && typeof color.green === \"number\" && typeof color.blue === \"number\" && typeof color.alpha === \"number\";\n};\nvar isHsl = function isHsl2(color) {\n return typeof color.hue === \"number\" && typeof color.saturation === \"number\" && typeof color.lightness === \"number\" && (typeof color.alpha !== \"number\" || typeof color.alpha === \"undefined\");\n};\nvar isHsla = function isHsla2(color) {\n return typeof color.hue === \"number\" && typeof color.saturation === \"number\" && typeof color.lightness === \"number\" && typeof color.alpha === \"number\";\n};\nfunction toColorString(color) {\n if (typeof color !== \"object\")\n throw new PolishedError(8);\n if (isRgba(color))\n return rgba(color);\n if (isRgb(color))\n return rgb(color);\n if (isHsla(color))\n return hsla(color);\n if (isHsl(color))\n return hsl(color);\n throw new PolishedError(8);\n}\nfunction curried(f4, length, acc) {\n return function fn() {\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f4.apply(this, combined) : curried(f4, length, combined);\n };\n}\nfunction curry(f4) {\n return curried(f4, f4.length, []);\n}\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\nfunction darken(amount, color) {\n if (color === \"transparent\")\n return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends2({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n}\nvar curriedDarken = \/* @__PURE__ *\/ curry(darken);\nvar curriedDarken$1 = curriedDarken;\n\n\/\/ src\/lib\/shapes\/style-props.tsx\nfunction withClampedStyles(self2, props) {\n var _a3;\n if (props.strokeWidth !== void 0)\n props.strokeWidth = Math.max(props.strokeWidth, 1);\n if (props.opacity !== void 0)\n props.opacity = Math.min(1, Math.max(props.opacity, 0));\n let fill = (_a3 = props.fill) != null ? _a3 : self2.props.fill;\n if (fill !== void 0 && !isBuiltInColor(fill) && fill !== \"var(--ls-secondary-background-color)\" && !props.noFill && withFillShapes.includes(self2.props.type)) {\n const strokeColor = curriedDarken$1(0.3, fill);\n props.stroke = strokeColor;\n }\n return props;\n}\n\n\/\/ src\/lib\/shapes\/BindingIndicator.tsx\nvar import_jsx_runtime51 = require(\"react\/jsx-runtime\");\nfunction BindingIndicator({ strokeWidth, size, mode }) {\n return mode === \"svg\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime51.jsx)(\"rect\", {\n className: \"tl-binding-indicator\",\n x: strokeWidth,\n y: strokeWidth,\n rx: 2,\n ry: 2,\n width: Math.max(0, size[0] - strokeWidth * 2),\n height: Math.max(0, size[1] - strokeWidth * 2),\n strokeWidth: strokeWidth * 4\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime51.jsx)(\"div\", {\n className: \"tl-binding-indicator\",\n style: {\n position: \"absolute\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n boxShadow: \"0 0 0 4px var(--tl-binding)\",\n borderRadius: 4\n }\n });\n}\n\n\/\/ src\/lib\/shapes\/text\/TextLabel.tsx\nvar React53 = __toESM(require(\"react\"));\n\n\/\/ src\/lib\/shapes\/text\/TextAreaUtils.ts\nvar INDENT = \" \";\nvar TextAreaUtils = class {\n static insertTextFirefox(field, text) {\n field.setRangeText(\n text,\n field.selectionStart || 0,\n field.selectionEnd || 0,\n \"end\"\n );\n field.dispatchEvent(\n new InputEvent(\"input\", {\n data: text,\n inputType: \"insertText\",\n isComposing: false\n })\n );\n }\n static insert(field, text) {\n const document2 = field.ownerDocument;\n const initialFocus = document2.activeElement;\n if (initialFocus !== field) {\n field.focus();\n }\n if (!document2.execCommand(\"insertText\", false, text)) {\n TextAreaUtils.insertTextFirefox(field, text);\n }\n if (initialFocus === document2.body) {\n field.blur();\n } else if (initialFocus instanceof HTMLElement && initialFocus !== field) {\n initialFocus.focus();\n }\n }\n static set(field, text) {\n field.select();\n TextAreaUtils.insert(field, text);\n }\n static getSelection(field) {\n const { selectionStart, selectionEnd } = field;\n return field.value.slice(\n selectionStart ? selectionStart : void 0,\n selectionEnd ? selectionEnd : void 0\n );\n }\n static wrapSelection(field, wrap, wrapEnd) {\n const { selectionStart, selectionEnd } = field;\n const selection = TextAreaUtils.getSelection(field);\n TextAreaUtils.insert(field, wrap + selection + (wrapEnd != null ? wrapEnd : wrap));\n field.selectionStart = (selectionStart || 0) + wrap.length;\n field.selectionEnd = (selectionEnd || 0) + wrap.length;\n }\n static replace(field, searchValue, replacer) {\n let drift = 0;\n field.value.replace(searchValue, (...args) => {\n const matchStart = drift + args[args.length - 2];\n const matchLength = args[0].length;\n field.selectionStart = matchStart;\n field.selectionEnd = matchStart + matchLength;\n const replacement = typeof replacer === \"string\" ? replacer : replacer(...args);\n TextAreaUtils.insert(field, replacement);\n field.selectionStart = matchStart;\n drift += replacement.length - matchLength;\n return replacement;\n });\n }\n static findLineEnd(value, currentEnd) {\n const lastLineStart = value.lastIndexOf(\"\\n\", currentEnd - 1) + 1;\n if (value.charAt(lastLineStart) !== \"\t\") {\n return currentEnd;\n }\n return lastLineStart + 1;\n }\n static indent(element) {\n var _a3;\n const { selectionStart, selectionEnd, value } = element;\n const selectedContrast = value.slice(selectionStart, selectionEnd);\n const lineBreakCount = (_a3 = \/\\n\/g.exec(selectedContrast)) == null ? void 0 : _a3.length;\n if (lineBreakCount && lineBreakCount > 0) {\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const newSelection = element.value.slice(firstLineStart, selectionEnd - 1);\n const indentedText = newSelection.replace(\n \/^|\\n\/g,\n `$&${INDENT}`\n );\n const replacementsCount = indentedText.length - newSelection.length;\n element.setSelectionRange(firstLineStart, selectionEnd - 1);\n TextAreaUtils.insert(element, indentedText);\n element.setSelectionRange(selectionStart + 1, selectionEnd + replacementsCount);\n } else {\n TextAreaUtils.insert(element, INDENT);\n }\n }\n static unindent(element) {\n const { selectionStart, selectionEnd, value } = element;\n const firstLineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const minimumSelectionEnd = TextAreaUtils.findLineEnd(value, selectionEnd);\n const newSelection = element.value.slice(firstLineStart, minimumSelectionEnd);\n const indentedText = newSelection.replace(\/(^|\\n)(\\t| {1,2})\/g, \"$1\");\n const replacementsCount = newSelection.length - indentedText.length;\n element.setSelectionRange(firstLineStart, minimumSelectionEnd);\n TextAreaUtils.insert(element, indentedText);\n const firstLineIndentation = \/\\t| {1,2}\/.exec(value.slice(firstLineStart, selectionStart));\n const difference = firstLineIndentation ? firstLineIndentation[0].length : 0;\n const newSelectionStart = selectionStart - difference;\n element.setSelectionRange(\n selectionStart - difference,\n Math.max(newSelectionStart, selectionEnd - replacementsCount)\n );\n }\n};\n\n\/\/ src\/lib\/shapes\/text\/TextLabel.tsx\nvar import_jsx_runtime52 = require(\"react\/jsx-runtime\");\nvar stopPropagation = (e2) => e2.stopPropagation();\nvar placeholder = \"Enter text\";\nvar TextLabel = React53.memo(function TextLabel2({\n font: font5,\n text,\n color,\n fontStyle,\n fontSize,\n fontWeight,\n offsetX = 0,\n offsetY = 0,\n scale = 1,\n isEditing = false,\n pointerEvents = false,\n onBlur,\n onChange\n}) {\n const rInput = React53.useRef(null);\n const rIsMounted = React53.useRef(false);\n const handleChange = React53.useCallback(\n (e2) => {\n onChange(TextUtils.normalizeText(e2.currentTarget.value));\n },\n [onChange]\n );\n const handleKeyDown = React53.useCallback(\n (e2) => {\n if (e2.key === \"Escape\")\n return;\n if (e2.key === \"Tab\" && text.length === 0) {\n e2.preventDefault();\n return;\n }\n if (!(e2.key === \"Meta\" || e2.metaKey)) {\n e2.stopPropagation();\n } else if (e2.key === \"z\" && e2.metaKey) {\n document.execCommand(e2.shiftKey ? \"redo\" : \"undo\", false);\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n if (e2.key === \"Tab\") {\n e2.preventDefault();\n if (e2.shiftKey) {\n TextAreaUtils.unindent(e2.currentTarget);\n } else {\n TextAreaUtils.indent(e2.currentTarget);\n }\n onChange == null ? void 0 : onChange(TextUtils.normalizeText(e2.currentTarget.value));\n }\n },\n [onChange]\n );\n const handleBlur = React53.useCallback(\n (e2) => {\n if (!isEditing)\n return;\n e2.currentTarget.setSelectionRange(0, 0);\n onBlur == null ? void 0 : onBlur();\n },\n [onBlur]\n );\n const handleFocus = React53.useCallback(\n (e2) => {\n if (!isEditing || !rIsMounted.current)\n return;\n if (document.activeElement === e2.currentTarget) {\n e2.currentTarget.select();\n }\n },\n [isEditing]\n );\n const handlePointerDown = React53.useCallback(\n (e2) => {\n if (isEditing) {\n e2.stopPropagation();\n }\n },\n [isEditing]\n );\n React53.useEffect(() => {\n if (isEditing) {\n requestAnimationFrame(() => {\n rIsMounted.current = true;\n const elm = rInput.current;\n if (elm) {\n elm.focus();\n elm.select();\n }\n });\n }\n }, [isEditing, onBlur]);\n const rInnerWrapper = React53.useRef(null);\n React53.useLayoutEffect(() => {\n const elm = rInnerWrapper.current;\n if (!elm)\n return;\n const size = getTextLabelSize(\n text || placeholder,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n );\n elm.style.transform = `scale(${scale}, ${scale}) translate(${offsetX}px, ${offsetY}px)`;\n elm.style.width = size[0] + 1 + \"px\";\n elm.style.height = size[1] + 1 + \"px\";\n }, [text, fontWeight, fontSize, offsetY, offsetX, scale]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime52.jsx)(\"div\", {\n className: \"tl-text-label-wrapper\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime52.jsxs)(\"div\", {\n className: \"tl-text-label-inner-wrapper\",\n ref: rInnerWrapper,\n style: {\n font: font5,\n fontStyle,\n fontSize,\n fontWeight,\n color,\n pointerEvents: pointerEvents ? \"all\" : \"none\",\n userSelect: isEditing ? \"text\" : \"none\"\n },\n children: [\n isEditing ? \/* @__PURE__ *\/ (0, import_jsx_runtime52.jsx)(\"textarea\", {\n ref: rInput,\n style: {\n font: font5,\n color,\n fontStyle,\n fontSize,\n fontWeight\n },\n className: \"tl-text-label-textarea\",\n name: \"text\",\n tabIndex: -1,\n autoComplete: \"false\",\n autoCapitalize: \"false\",\n autoCorrect: \"false\",\n autoSave: \"false\",\n autoFocus: true,\n placeholder,\n spellCheck: \"true\",\n wrap: \"off\",\n dir: \"auto\",\n datatype: \"wysiwyg\",\n defaultValue: text,\n color,\n onFocus: handleFocus,\n onChange: handleChange,\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n onPointerDown: handlePointerDown,\n onContextMenu: stopPropagation,\n onCopy: stopPropagation,\n onPaste: stopPropagation,\n onCut: stopPropagation\n }) : text,\n \"\\u200B\"\n ]\n })\n });\n});\n\n\/\/ src\/lib\/shapes\/BoxShape.tsx\nvar import_jsx_runtime53 = require(\"react\/jsx-runtime\");\nvar font = \"20px \/ 1 var(--ls-font-family)\";\nvar levelToScale = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar BoxShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(\n ({ events, isErasing, isBinding, isSelected, isEditing, onEditingEnd }) => {\n const {\n props: {\n size: [w4, h4],\n stroke,\n fill,\n noFill,\n strokeWidth,\n strokeType,\n borderRadius,\n opacity,\n label,\n italic,\n fontWeight,\n fontSize\n }\n } = this;\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n ) : [0, 0];\n const midPoint = src_default.mul(this.props.size, 0.5);\n const scale = Math.max(0.5, Math.min(1, w4 \/ labelSize[0], h4 \/ labelSize[1]));\n const bounds = this.getBounds();\n const offset = React54.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React54.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n className: \"tl-box-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(TextLabel, {\n font,\n text: label,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1],\n fontSize,\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsxs)(SVGContainer, {\n opacity: isErasing ? 0.2 : opacity,\n children: [\n isBinding && \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(BindingIndicator, {\n mode: \"svg\",\n strokeWidth,\n size: [w4, h4]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"rect\", {\n className: isSelected || !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n x: strokeWidth \/ 2,\n y: strokeWidth \/ 2,\n rx: borderRadius,\n ry: borderRadius,\n width: Math.max(0.01, w4 - strokeWidth),\n height: Math.max(0.01, h4 - strokeWidth),\n pointerEvents: \"all\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"rect\", {\n x: strokeWidth \/ 2,\n y: strokeWidth \/ 2,\n rx: borderRadius,\n ry: borderRadius,\n width: Math.max(0.01, w4 - strokeWidth),\n height: Math.max(0.01, h4 - strokeWidth),\n strokeWidth,\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\")\n })\n ]\n })\n ]\n }));\n }\n ));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale[v4 != null ? v4 : \"md\"],\n strokeWidth: levelToScale[v4 != null ? v4 : \"md\"] \/ 10\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n borderRadius,\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime53.jsx)(\"rect\", {\n width: w4,\n height: h4,\n rx: borderRadius,\n ry: borderRadius,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : void 0\n })\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n if (props.borderRadius !== void 0)\n props.borderRadius = Math.max(0, props.borderRadius);\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n};\n__publicField(BoxShape, \"id\", \"box\");\n__publicField(BoxShape, \"defaultProps\", {\n id: \"box\",\n parentId: \"page\",\n type: \"box\",\n point: [0, 0],\n size: [100, 100],\n borderRadius: 2,\n stroke: \"\",\n fill: \"\",\n noFill: false,\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1,\n label: \"\"\n});\n__decorateClass([\n computed\n], BoxShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], BoxShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/EllipseShape.tsx\nvar React55 = __toESM(require(\"react\"));\nvar import_jsx_runtime54 = require(\"react\/jsx-runtime\");\nvar font2 = \"18px \/ 1 var(--ls-font-family)\";\nvar levelToScale2 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar EllipseShape = class extends TLEllipseShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(\n ({ isSelected, isErasing, events, isEditing, onEditingEnd }) => {\n const {\n size: [w4, h4],\n stroke,\n fill,\n noFill,\n strokeWidth,\n strokeType,\n opacity,\n label,\n italic,\n fontWeight,\n fontSize\n } = this.props;\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n ) : [0, 0];\n const midPoint = src_default.mul(this.props.size, 0.5);\n const scale = Math.max(0.5, Math.min(1, w4 \/ labelSize[0], h4 \/ labelSize[1]));\n const bounds = this.getBounds();\n const offset = React55.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React55.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n className: \"tl-ellipse-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(TextLabel, {\n font: font2,\n text: label,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1],\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontSize,\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsxs)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n className: isSelected || !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2)\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2),\n strokeWidth,\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\")\n })\n ]\n }))\n ]\n }));\n }\n ));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale2[v4 != null ? v4 : \"md\"],\n strokeWidth: levelToScale2[v4 != null ? v4 : \"md\"] \/ 10\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n size: [w4, h4],\n isLocked\n } = this.props;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: w4 \/ 2,\n ry: h4 \/ 2,\n strokeWidth: 2,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n })\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx(opts) {\n const {\n size: [w4, h4],\n stroke,\n fill,\n noFill,\n strokeWidth,\n strokeType,\n opacity\n } = this.props;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsxs)(\"g\", {\n opacity,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n className: !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2)\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime54.jsx)(\"ellipse\", {\n cx: w4 \/ 2,\n cy: h4 \/ 2,\n rx: Math.max(0.01, (w4 - strokeWidth) \/ 2),\n ry: Math.max(0.01, (h4 - strokeWidth) \/ 2),\n strokeWidth,\n stroke: getComputedColor(stroke, \"stroke\"),\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0,\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\")\n })\n ]\n });\n }\n};\n__publicField(EllipseShape, \"id\", \"ellipse\");\n__publicField(EllipseShape, \"defaultProps\", {\n id: \"ellipse\",\n parentId: \"page\",\n type: \"ellipse\",\n point: [0, 0],\n size: [100, 100],\n stroke: \"\",\n fill: \"\",\n noFill: false,\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1,\n label: \"\"\n});\n__decorateClass([\n computed\n], EllipseShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], EllipseShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/GroupShape.tsx\nvar import_jsx_runtime55 = require(\"react\/jsx-runtime\");\nvar GroupShape = class extends TLGroupShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"ReactComponent\", observer(({ events }) => {\n const strokeWidth = 2;\n const bounds = this.getBounds();\n const app = useApp();\n const childSelected = app.selectedShapesArray.some((s4) => {\n return app.shapesInGroups([this]).includes(s4);\n });\n const Indicator2 = this.ReactIndicator;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsxs)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n className: \"tl-group-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(\"rect\", {\n className: \"tl-hitarea-fill\",\n x: strokeWidth \/ 2,\n y: strokeWidth \/ 2,\n width: Math.max(0.01, bounds.width - strokeWidth),\n height: Math.max(0.01, bounds.height - strokeWidth),\n pointerEvents: \"all\"\n }),\n childSelected && \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(\"g\", {\n stroke: \"var(--color-selectedFill)\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(Indicator2, {})\n })\n ]\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime55.jsx)(\"rect\", {\n strokeDasharray: \"8 2\",\n x: -GROUP_PADDING,\n y: -GROUP_PADDING,\n rx: GROUP_PADDING \/ 2,\n ry: GROUP_PADDING \/ 2,\n width: bounds.width + GROUP_PADDING * 2,\n height: bounds.height + GROUP_PADDING * 2,\n fill: \"transparent\"\n });\n }));\n }\n};\n__publicField(GroupShape, \"id\", \"group\");\n__publicField(GroupShape, \"defaultProps\", {\n id: \"group\",\n type: \"group\",\n parentId: \"page\",\n point: [0, 0],\n size: [0, 0],\n children: []\n});\n\n\/\/ src\/lib\/shapes\/HighlighterShape.tsx\nvar import_jsx_runtime56 = require(\"react\/jsx-runtime\");\nvar levelToScale3 = {\n xs: 1,\n sm: 1.6,\n md: 2,\n lg: 3.2,\n xl: 4.8,\n xxl: 6\n};\nvar HighlighterShape = class extends TLDrawShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing }) => {\n const {\n pointsPath,\n props: { stroke, strokeWidth, opacity }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : 1,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(\"path\", {\n d: pointsPath,\n strokeWidth: strokeWidth * 16,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: \"none\",\n pointerEvents: \"all\",\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n opacity\n })\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n strokeWidth: levelToScale3[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const { pointsPath, props } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(\"path\", {\n d: pointsPath,\n fill: \"none\",\n strokeDasharray: props.isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n props = withClampedStyles(this, props);\n if (props.strokeWidth !== void 0)\n props.strokeWidth = Math.max(props.strokeWidth, 1);\n return props;\n });\n makeObservable(this);\n }\n get pointsPath() {\n const { points } = this.props;\n return SvgPathUtils.getCurvedPathForPoints(points);\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx() {\n const {\n pointsPath,\n props: { stroke, strokeWidth, opacity }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime56.jsx)(\"path\", {\n d: pointsPath,\n strokeWidth: strokeWidth * 16,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: \"none\",\n pointerEvents: \"all\",\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n opacity\n });\n }\n};\n__publicField(HighlighterShape, \"id\", \"highlighter\");\n__publicField(HighlighterShape, \"defaultProps\", {\n id: \"highlighter\",\n parentId: \"page\",\n type: \"highlighter\",\n point: [0, 0],\n points: [],\n isComplete: false,\n stroke: \"\",\n fill: \"\",\n noFill: true,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 0.5\n});\n__decorateClass([\n computed\n], HighlighterShape.prototype, \"pointsPath\", 1);\n__decorateClass([\n computed\n], HighlighterShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], HighlighterShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/HTMLShape.tsx\nvar React56 = __toESM(require(\"react\"));\n\n\/\/ src\/hooks\/useCameraMoving.ts\nfunction useCameraMovingRef() {\n const app = useApp();\n return app.inputs.state === \"panning\" || app.inputs.state === \"pinching\";\n}\n\n\/\/ src\/lib\/shapes\/HTMLShape.tsx\nvar import_jsx_runtime57 = require(\"react\/jsx-runtime\");\nvar levelToScale4 = {\n xs: 0.5,\n sm: 0.8,\n md: 1,\n lg: 1.5,\n xl: 2,\n xxl: 3\n};\nvar HTMLShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"htmlAnchorRef\", React56.createRef());\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n var _a3;\n const newSize = src_default.mul(\n this.props.size,\n levelToScale4[v4 != null ? v4 : \"md\"] \/ levelToScale4[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"]\n );\n this.update({\n scaleLevel: v4\n });\n yield delay();\n this.update({\n size: newSize\n });\n }));\n __publicField(this, \"onResetBounds\", (info) => {\n var _a3;\n if (this.htmlAnchorRef.current) {\n const rect = this.htmlAnchorRef.current.getBoundingClientRect();\n const [w4, h4] = src_default.div([rect.width, rect.height], (_a3 = info == null ? void 0 : info.zoom) != null ? _a3 : 1);\n const clamp3 = (v4) => Math.max(Math.min(v4 || 400, 1400), 10);\n this.update({\n size: [clamp3(w4), clamp3(h4)]\n });\n }\n return this;\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing }) => {\n const {\n props: { html, scaleLevel }\n } = this;\n const isMoving = useCameraMovingRef();\n const app = useApp();\n const isSelected = app.selectedIds.has(this.id);\n const tlEventsEnabled = isMoving || isSelected && !isEditing || app.selectedTool.id !== \"select\";\n const stop2 = React56.useCallback(\n (e2) => {\n if (!tlEventsEnabled) {\n e2.stopPropagation();\n }\n },\n [tlEventsEnabled]\n );\n const scaleRatio = levelToScale4[scaleLevel != null ? scaleLevel : \"md\"];\n React56.useEffect(() => {\n if (this.props.size[1] === 0) {\n this.onResetBounds({ zoom: app.viewport.camera.zoom });\n app.persist(true);\n }\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(\"div\", {\n onWheelCapture: stop2,\n onPointerDown: stop2,\n onPointerUp: stop2,\n className: \"tl-html-container\",\n style: {\n pointerEvents: !isMoving && (isEditing || isSelected) ? \"all\" : \"none\",\n overflow: isEditing ? \"auto\" : \"hidden\",\n width: `calc(100% \/ ${scaleRatio})`,\n height: `calc(100% \/ ${scaleRatio})`,\n transform: `scale(${scaleRatio})`\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(\"div\", {\n ref: this.htmlAnchorRef,\n className: \"tl-html-anchor\",\n dangerouslySetInnerHTML: { __html: html.trim() }\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime57.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n};\n__publicField(HTMLShape, \"id\", \"html\");\n__publicField(HTMLShape, \"defaultProps\", {\n id: \"html\",\n type: \"html\",\n parentId: \"page\",\n point: [0, 0],\n size: [600, 0],\n html: \"\"\n});\n__decorateClass([\n computed\n], HTMLShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], HTMLShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/IFrameShape.tsx\nvar React57 = __toESM(require(\"react\"));\nvar import_jsx_runtime58 = require(\"react\/jsx-runtime\");\nvar IFrameShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"frameRef\", React57.createRef());\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"onIFrameSourceChange\", (url) => {\n this.update({ url });\n });\n __publicField(this, \"reload\", () => {\n var _a3, _b;\n if (this.frameRef.current) {\n this.frameRef.current.src = (_b = (_a3 = this.frameRef) == null ? void 0 : _a3.current) == null ? void 0 : _b.src;\n }\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing }) => {\n const ref = React57.useRef(null);\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"div\", {\n className: \"tl-iframe-container\",\n style: {\n pointerEvents: isEditing || app.readOnly ? \"all\" : \"none\",\n userSelect: \"none\"\n },\n children: this.props.url && \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"div\", {\n style: {\n overflow: \"hidden\",\n position: \"relative\",\n height: \"100%\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"iframe\", {\n ref: this.frameRef,\n className: \"absolute inset-0 w-full h-full m-0\",\n width: \"100%\",\n height: \"100%\",\n src: `${this.props.url}`,\n frameBorder: \"0\",\n sandbox: \"allow-scripts allow-same-origin allow-presentation\"\n })\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime58.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n};\n__publicField(IFrameShape, \"id\", \"iframe\");\n__publicField(IFrameShape, \"defaultProps\", {\n id: \"iframe\",\n type: \"iframe\",\n parentId: \"page\",\n point: [0, 0],\n size: [853, 480],\n url: \"\"\n});\n__decorateClass([\n action\n], IFrameShape.prototype, \"onIFrameSourceChange\", 2);\n__decorateClass([\n action\n], IFrameShape.prototype, \"reload\", 2);\n\n\/\/ src\/lib\/shapes\/ImageShape.tsx\nvar React58 = __toESM(require(\"react\"));\nvar import_jsx_runtime59 = require(\"react\/jsx-runtime\");\nvar ImageShape = class extends TLImageShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isBinding, asset }) => {\n const {\n props: {\n opacity,\n objectFit,\n clipping,\n size: [w4, h4]\n }\n } = this;\n const [t2, r4, b5, l5] = Array.isArray(clipping) ? clipping : [clipping, clipping, clipping, clipping];\n const { handlers } = React58.useContext(LogseqContext);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsxs)(HTMLContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: [\n isBinding && \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(BindingIndicator, {\n mode: \"html\",\n strokeWidth: 4,\n size: [w4, h4]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"div\", {\n \"data-asset-loaded\": !!asset,\n className: \"tl-image-shape-container\",\n children: asset ? \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"img\", {\n src: handlers ? handlers.makeAssetUrl(asset.src) : asset.src,\n draggable: false,\n style: {\n position: \"relative\",\n top: -t2,\n left: -l5,\n width: w4 + (l5 - r4),\n height: h4 + (t2 - b5),\n objectFit\n }\n }) : \"Asset is missing\"\n })\n ]\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n getShapeSVGJsx({ assets }) {\n var _a3, _b;\n const bounds = this.getBounds();\n const {\n assetId,\n clipping,\n size: [w4, h4]\n } = this.props;\n const asset = assets.find((ass) => ass.id === assetId);\n if (asset) {\n const [t2, r4, b5, l5] = Array.isArray(clipping) ? clipping : [clipping, clipping, clipping, clipping];\n const make_asset_url = (_b = (_a3 = window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.make_asset_url;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime59.jsx)(\"image\", {\n width: bounds.width,\n height: bounds.height,\n href: make_asset_url ? make_asset_url(asset.src) : asset.src\n });\n } else {\n return super.getShapeSVGJsx({});\n }\n }\n};\n__publicField(ImageShape, \"id\", \"image\");\n__publicField(ImageShape, \"defaultProps\", {\n id: \"image1\",\n parentId: \"page\",\n type: \"image\",\n point: [0, 0],\n size: [100, 100],\n opacity: 1,\n assetId: \"\",\n clipping: 0,\n objectFit: \"fill\",\n isAspectRatioLocked: true\n});\n\n\/\/ src\/lib\/shapes\/LineShape.tsx\nvar React60 = __toESM(require(\"react\"));\n\n\/\/ src\/lib\/shapes\/arrow\/Arrow.tsx\nvar React59 = __toESM(require(\"react\"));\n\n\/\/ src\/lib\/shapes\/arrow\/ArrowHead.tsx\nvar import_jsx_runtime60 = require(\"react\/jsx-runtime\");\nfunction Arrowhead({ left, middle, right, stroke, strokeWidth }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime60.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime60.jsx)(\"path\", {\n className: \"tl-stroke-hitarea\",\n d: `M ${left} L ${middle} ${right}`\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime60.jsx)(\"path\", {\n d: `M ${left} L ${middle} ${right}`,\n fill: \"none\",\n stroke,\n strokeWidth,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n pointerEvents: \"none\"\n })\n ]\n });\n}\n\n\/\/ src\/lib\/shapes\/arrow\/arrowHelpers.ts\nfunction getStraightArrowHeadPoints(A4, B3, r4) {\n const ints = intersectCircleLineSegment(A4, r4, A4, B3).points;\n if (!ints) {\n console.warn(\"Could not find an intersection for the arrow head.\");\n return { left: A4, right: A4 };\n }\n const int = ints[0];\n const left = int ? src_default.rotWith(int, A4, Math.PI \/ 6) : A4;\n const right = int ? src_default.rotWith(int, A4, -Math.PI \/ 6) : A4;\n return { left, right };\n}\nfunction getStraightArrowHeadPath(A4, B3, r4) {\n const { left, right } = getStraightArrowHeadPoints(A4, B3, r4);\n return `M ${left} L ${A4} ${right}`;\n}\nfunction getArrowPath(style, start, end, decorationStart, decorationEnd) {\n const strokeWidth = style.strokeWidth;\n const arrowDist = src_default.dist(start, end);\n const arrowHeadLength = Math.min(arrowDist \/ 3, strokeWidth * 16);\n const path = [];\n path.push(`M ${start} L ${end}`);\n if (decorationStart) {\n path.push(getStraightArrowHeadPath(start, end, arrowHeadLength));\n }\n if (decorationEnd) {\n path.push(getStraightArrowHeadPath(end, start, arrowHeadLength));\n }\n return path.join(\" \");\n}\n\n\/\/ src\/lib\/shapes\/arrow\/Arrow.tsx\nvar import_jsx_runtime61 = require(\"react\/jsx-runtime\");\nvar levelToScale5 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar Arrow = React59.memo(function StraightArrow({\n style,\n start,\n end,\n decorationStart,\n decorationEnd,\n scaleLevel\n}) {\n const arrowDist = src_default.dist(start, end);\n if (arrowDist < 2)\n return null;\n const { strokeWidth } = style;\n const sw = 1 + strokeWidth * levelToScale5[scaleLevel != null ? scaleLevel : \"md\"] \/ 10;\n const path = \"M\" + src_default.toFixed(start) + \"L\" + src_default.toFixed(end);\n const arrowHeadLength = Math.min(arrowDist \/ 3, strokeWidth * levelToScale5[scaleLevel != null ? scaleLevel : \"md\"]);\n const startArrowHead = decorationStart ? getStraightArrowHeadPoints(start, end, arrowHeadLength) : null;\n const endArrowHead = decorationEnd ? getStraightArrowHeadPoints(end, start, arrowHeadLength) : null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(\"path\", {\n className: \"tl-stroke-hitarea\",\n d: path\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(\"path\", {\n d: path,\n strokeWidth: sw,\n stroke: style.stroke,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeDasharray: style.strokeType === \"dashed\" ? \"8 4\" : void 0,\n pointerEvents: \"stroke\"\n }),\n startArrowHead && \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(Arrowhead, {\n left: startArrowHead.left,\n middle: start,\n right: startArrowHead.right,\n stroke: style.stroke,\n strokeWidth: sw\n }),\n endArrowHead && \/* @__PURE__ *\/ (0, import_jsx_runtime61.jsx)(Arrowhead, {\n left: endArrowHead.left,\n middle: end,\n right: endArrowHead.right,\n stroke: style.stroke,\n strokeWidth: sw\n })\n ]\n });\n});\n\n\/\/ src\/lib\/shapes\/text\/LabelMask.tsx\nvar import_jsx_runtime62 = require(\"react\/jsx-runtime\");\nfunction LabelMask({ id: id3, bounds, labelSize, offset, scale = 1 }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsx)(\"defs\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsxs)(\"mask\", {\n id: id3 + \"_clip\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsx)(\"rect\", {\n x: -100,\n y: -100,\n width: bounds.width + 200,\n height: bounds.height + 200,\n fill: \"white\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime62.jsx)(\"rect\", {\n x: bounds.width \/ 2 - labelSize[0] \/ 2 * scale + ((offset == null ? void 0 : offset[0]) || 0),\n y: bounds.height \/ 2 - labelSize[1] \/ 2 * scale + ((offset == null ? void 0 : offset[1]) || 0),\n width: labelSize[0] * scale,\n height: labelSize[1] * scale,\n rx: 4 * scale,\n ry: 4 * scale,\n fill: \"black\"\n })\n ]\n })\n });\n}\n\n\/\/ src\/lib\/shapes\/LineShape.tsx\nvar import_jsx_runtime63 = require(\"react\/jsx-runtime\");\nvar font3 = \"20px \/ 1 var(--ls-font-family)\";\nvar levelToScale6 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar LineShape = class extends TLLineShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"hideSelection\", true);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, onEditingEnd }) => {\n const {\n stroke,\n handles: { start, end },\n opacity,\n label,\n italic,\n fontWeight,\n fontSize,\n id: id3\n } = this.props;\n const labelSize = label || isEditing ? getTextLabelSize(\n label || \"Enter text\",\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 6\n ) : [0, 0];\n const midPoint = src_default.med(start.point, end.point);\n const dist = src_default.dist(start.point, end.point);\n const scale = Math.max(\n 0.5,\n Math.min(1, Math.max(dist \/ (labelSize[1] + 128), dist \/ (labelSize[0] + 128)))\n );\n const bounds = this.getBounds();\n const offset = React60.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React60.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n className: \"tl-line-container\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(TextLabel, {\n font: font3,\n text: label,\n fontSize,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1],\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(SVGContainer, {\n opacity: isErasing ? 0.2 : opacity,\n id: id3 + \"_svg\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(LabelMask, {\n id: id3,\n bounds,\n labelSize,\n offset,\n scale\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"g\", {\n pointerEvents: \"none\",\n mask: label || isEditing ? `url(#${id3}_clip)` : ``,\n children: this.getShapeSVGJsx({ preview: false })\n })\n ]\n })\n ]\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale6[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(({ isEditing }) => {\n const {\n id: id3,\n decorations,\n label,\n strokeWidth,\n fontSize,\n fontWeight,\n handles: { start, end },\n isLocked\n } = this.props;\n const bounds = this.getBounds();\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 6\n ) : [0, 0];\n const midPoint = src_default.med(start.point, end.point);\n const dist = src_default.dist(start.point, end.point);\n const scale = Math.max(\n 0.5,\n Math.min(1, Math.max(dist \/ (labelSize[1] + 128), dist \/ (labelSize[0] + 128)))\n );\n const offset = React60.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"path\", {\n mask: label ? `url(#${id3}_clip)` : ``,\n d: getArrowPath(\n { strokeWidth },\n start.point,\n end.point,\n decorations == null ? void 0 : decorations.start,\n decorations == null ? void 0 : decorations.end\n ),\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n }),\n label && !isEditing && \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"rect\", {\n x: bounds.width \/ 2 - labelSize[0] \/ 2 * scale + offset[0],\n y: bounds.height \/ 2 - labelSize[1] \/ 2 * scale + offset[1],\n width: labelSize[0] * scale,\n height: labelSize[1] * scale,\n rx: 4 * scale,\n ry: 4 * scale,\n fill: \"transparent\"\n })\n ]\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx({ preview }) {\n const {\n stroke,\n fill,\n strokeWidth,\n strokeType,\n decorations,\n label,\n scaleLevel,\n handles: { start, end }\n } = this.props;\n const midPoint = src_default.med(start.point, end.point);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(Arrow, {\n style: {\n stroke: getComputedColor(stroke, \"text\"),\n fill,\n strokeWidth,\n strokeType\n },\n scaleLevel,\n start: start.point,\n end: end.point,\n decorationStart: decorations == null ? void 0 : decorations.start,\n decorationEnd: decorations == null ? void 0 : decorations.end\n }),\n preview && \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(import_jsx_runtime63.Fragment, {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime63.jsx)(\"text\", {\n style: {\n transformOrigin: \"top left\"\n },\n fontFamily: \"Inter\",\n fontSize: 20,\n transform: `translate(${midPoint[0]}, ${midPoint[1]})`,\n textAnchor: \"middle\",\n fill: getComputedColor(stroke, \"text\"),\n stroke: getComputedColor(stroke, \"text\"),\n children: label\n })\n })\n ]\n });\n }\n};\n__publicField(LineShape, \"id\", \"line\");\n__publicField(LineShape, \"defaultProps\", {\n id: \"line\",\n parentId: \"page\",\n type: \"line\",\n point: [0, 0],\n handles: {\n start: { id: \"start\", canBind: true, point: [0, 0] },\n end: { id: \"end\", canBind: true, point: [1, 1] }\n },\n stroke: \"\",\n fill: \"\",\n noFill: true,\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n strokeType: \"line\",\n strokeWidth: 1,\n opacity: 1,\n decorations: {\n end: \"arrow\" \/* Arrow *\/\n },\n label: \"\"\n});\n__decorateClass([\n computed\n], LineShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], LineShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/LogseqPortalShape.tsx\nvar React61 = __toESM(require(\"react\"));\nvar import_jsx_runtime64 = require(\"react\/jsx-runtime\");\nvar HEADER_HEIGHT = 40;\nvar AUTO_RESIZE_THRESHOLD = 1;\nvar levelToScale7 = {\n xs: 0.5,\n sm: 0.8,\n md: 1,\n lg: 1.5,\n xl: 2,\n xxl: 3\n};\nvar LogseqPortalShapeHeader = observer(\n ({\n type,\n fill,\n opacity,\n children\n }) => {\n const bgColor = fill !== \"var(--ls-secondary-background-color)\" ? getComputedColor(fill, \"background\") : \"var(--ls-tertiary-background-color)\";\n const fillGradient = fill && fill !== \"var(--ls-secondary-background-color)\" ? isBuiltInColor(fill) ? `var(--ls-highlight-color-${fill})` : fill : \"var(--ls-secondary-background-color)\";\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(\"div\", {\n className: `tl-logseq-portal-header tl-logseq-portal-header-${type === \"P\" ? \"page\" : \"block\"}`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"absolute inset-0 tl-logseq-portal-header-bg\",\n style: {\n opacity,\n background: type === \"P\" ? bgColor : `linear-gradient(0deg, ${fillGradient}, ${bgColor})`\n }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"relative\",\n children\n })\n ]\n });\n }\n);\nvar LogseqPortalShape = class extends TLBoxShape {\n constructor(props = {}) {\n var _a3;\n super(props);\n __publicField(this, \"hideRotateHandle\", true);\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canFlip\", true);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"persist\", null);\n __publicField(this, \"initialHeightCalculated\", true);\n __publicField(this, \"getInnerHeight\", null);\n __publicField(this, \"setCollapsed\", (collapsed) => __async(this, null, function* () {\n var _a3;\n if (this.props.blockType === \"B\") {\n this.update({ compact: collapsed });\n this.canResize[1] = !collapsed;\n if (!collapsed) {\n this.onResetBounds();\n }\n } else {\n const originalHeight = this.props.size[1];\n this.canResize[1] = !collapsed;\n this.update({\n isAutoResizing: !collapsed,\n collapsed,\n size: [this.props.size[0], collapsed ? this.getHeaderHeight() : this.props.collapsedHeight],\n collapsedHeight: collapsed ? originalHeight : this.props.collapsedHeight\n });\n }\n (_a3 = this.persist) == null ? void 0 : _a3.call(this);\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n var _a3;\n const newSize = src_default.mul(\n this.props.size,\n levelToScale7[v4 != null ? v4 : \"md\"] \/ levelToScale7[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"]\n );\n this.update({\n scaleLevel: v4\n });\n yield delay();\n this.update({\n size: newSize\n });\n }));\n __publicField(this, \"onResetBounds\", (info) => {\n const height = this.getAutoResizeHeight();\n if (height !== null && Math.abs(height - this.props.size[1]) > AUTO_RESIZE_THRESHOLD) {\n this.update({\n size: [this.props.size[0], height]\n });\n this.initialHeightCalculated = true;\n }\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n var _a3;\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n let height = bounds.height;\n if (this.props.isAutoResizing) {\n height = (_a3 = this.getAutoResizeHeight()) != null ? _a3 : height;\n }\n return this.update({\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, height)],\n scale: nextScale,\n rotation\n });\n });\n __publicField(this, \"PortalComponent\", observer(({}) => {\n const {\n props: { pageId, fill, opacity }\n } = this;\n const { renderers } = React61.useContext(LogseqContext);\n const app = useApp();\n const cpRefContainer = React61.useRef(null);\n const [, innerHeight] = this.useComponentSize(\n cpRefContainer,\n this.props.compact ? \".tl-logseq-cp-container > .single-block\" : \".tl-logseq-cp-container > .page\"\n );\n if (!(renderers == null ? void 0 : renderers.Page)) {\n return null;\n }\n const { Page, Block } = renderers;\n const [loaded, setLoaded] = React61.useState(false);\n React61.useEffect(() => {\n var _a3, _b;\n if (this.props.isAutoResizing) {\n const latestInnerHeight = (_b = (_a3 = this.getInnerHeight) == null ? void 0 : _a3.call(this)) != null ? _b : innerHeight;\n const newHeight = latestInnerHeight + this.getHeaderHeight();\n if (innerHeight && Math.abs(newHeight - this.props.size[1]) > AUTO_RESIZE_THRESHOLD) {\n this.update({\n size: [this.props.size[0], newHeight]\n });\n if (loaded)\n app.persist(true);\n }\n }\n }, [innerHeight, this.props.isAutoResizing]);\n React61.useEffect(() => {\n if (!this.initialHeightCalculated) {\n setTimeout(() => {\n this.onResetBounds();\n app.persist(true);\n });\n }\n }, [this.initialHeightCalculated]);\n React61.useEffect(() => {\n setTimeout(function() {\n setLoaded(true);\n });\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"absolute inset-0 tl-logseq-cp-container-bg\",\n style: {\n textRendering: app.viewport.camera.zoom < 0.5 ? \"optimizeSpeed\" : \"auto\",\n background: fill && fill !== \"var(--ls-secondary-background-color)\" ? isBuiltInColor(fill) ? `var(--ls-highlight-color-${fill})` : fill : \"var(--ls-secondary-background-color)\",\n opacity\n }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n ref: cpRefContainer,\n className: \"relative tl-logseq-cp-container\",\n style: { overflow: this.props.isAutoResizing ? \"visible\" : \"auto\" },\n children: (loaded || !this.initialHeightCalculated) && (this.props.blockType === \"B\" && this.props.compact ? \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(Block, {\n blockId: pageId\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(Page, {\n pageName: pageId\n }))\n })\n ]\n });\n }));\n __publicField(this, \"ReactComponent\", observer((componentProps) => {\n var _a3;\n const { events, isErasing, isEditing, isBinding } = componentProps;\n const {\n props: { opacity, pageId, fill, scaleLevel, strokeWidth, size, isLocked }\n } = this;\n const app = useApp();\n const { renderers, handlers } = React61.useContext(LogseqContext);\n this.persist = () => app.persist();\n const isMoving = useCameraMovingRef();\n const isSelected = app.selectedIds.has(this.id) && app.selectedIds.size === 1;\n const isCreating = app.isIn(\"logseq-portal.creating\") && !pageId;\n const tlEventsEnabled = (isMoving || isSelected && !isEditing || app.selectedTool.id !== \"select\") && !isCreating;\n const stop2 = React61.useCallback(\n (e2) => {\n if (!tlEventsEnabled) {\n e2.stopPropagation();\n }\n },\n [tlEventsEnabled]\n );\n const portalSelected = app.selectedShapesArray.length === 1 && app.selectedShapesArray.some(\n (shape) => shape.type === \"logseq-portal\" && shape.props.id !== this.props.id && pageId && shape.props[\"pageId\"] === pageId\n );\n const scaleRatio = levelToScale7[scaleLevel != null ? scaleLevel : \"md\"];\n React61.useEffect(() => {\n if (this.props.collapsed && isEditing) {\n this.update({\n size: [this.props.size[0], this.props.collapsedHeight]\n });\n return () => {\n this.update({\n size: [this.props.size[0], this.getHeaderHeight()]\n });\n };\n }\n return () => {\n };\n }, [isEditing, this.props.collapsed]);\n React61.useEffect(() => {\n if (isCreating) {\n const screenSize = [app.viewport.bounds.width, app.viewport.bounds.height];\n const boundScreenCenter = app.viewport.getScreenPoint([this.bounds.minX, this.bounds.minY]);\n if (boundScreenCenter[0] > screenSize[0] - 400 || boundScreenCenter[1] > screenSize[1] - 240 || app.viewport.camera.zoom > 1.5 || app.viewport.camera.zoom < 0.5) {\n app.viewport.zoomToBounds(__spreadProps(__spreadValues({}, this.bounds), { minY: this.bounds.maxY + 25 }));\n }\n }\n }, [app.viewport.bounds.height.toFixed(2)]);\n const onPageNameChanged = React61.useCallback((id3) => {\n this.initialHeightCalculated = false;\n const blockType = validUUID(id3) ? \"B\" : \"P\";\n this.update({\n pageId: id3,\n size: [400, 320],\n blockType,\n compact: blockType === \"B\"\n });\n app.selectTool(\"select\");\n app.history.resume();\n app.history.persist();\n }, []);\n const PortalComponent = this.PortalComponent;\n const blockContent = React61.useMemo(() => {\n var _a4;\n if (pageId && this.props.blockType === \"B\") {\n return (_a4 = handlers == null ? void 0 : handlers.queryBlockByUUID(pageId)) == null ? void 0 : _a4.content;\n }\n }, [handlers == null ? void 0 : handlers.queryBlockByUUID, pageId]);\n const targetNotFound = this.props.blockType === \"B\" && typeof blockContent !== \"string\";\n const showingPortal = (!this.props.collapsed || isEditing) && !targetNotFound;\n if (!(renderers == null ? void 0 : renderers.Page)) {\n return null;\n }\n const { Breadcrumb, PageName } = renderers;\n const portalStyle = {\n width: `calc(100% \/ ${scaleRatio})`,\n height: `calc(100% \/ ${scaleRatio})`,\n opacity: isErasing ? 0.2 : 1\n };\n if (scaleRatio !== 1) {\n portalStyle.transform = `scale(${scaleRatio})`;\n }\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n pointerEvents: \"all\"\n }\n }, events), {\n children: [\n isBinding && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(BindingIndicator, {\n mode: \"html\",\n strokeWidth,\n size\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n \"data-inner-events\": !tlEventsEnabled,\n onWheelCapture: stop2,\n onPointerDown: stop2,\n onPointerUp: stop2,\n style: {\n width: \"100%\",\n height: \"100%\",\n pointerEvents: !isMoving && (isEditing || isSelected) ? \"all\" : \"none\"\n },\n children: isCreating ? \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(LogseqQuickSearch, {\n onChange: onPageNameChanged,\n onAddBlock: (uuid) => {\n setTimeout(() => {\n var _a4, _b, _c;\n app.api.editShape(this);\n (_c = (_b = (_a4 = window.logseq) == null ? void 0 : _a4.api) == null ? void 0 : _b.edit_block) == null ? void 0 : _c.call(_b, uuid);\n });\n },\n placeholder: \"Create or search your graph...\"\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(\"div\", {\n className: \"tl-logseq-portal-container\",\n \"data-collapsed\": this.collapsed,\n \"data-page-id\": pageId,\n \"data-portal-selected\": portalSelected,\n \"data-editing\": isEditing,\n style: portalStyle,\n children: [\n !this.props.compact && !targetNotFound && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(LogseqPortalShapeHeader, {\n type: (_a3 = this.props.blockType) != null ? _a3 : \"P\",\n fill,\n opacity,\n children: this.props.blockType === \"P\" ? \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(PageName, {\n pageName: pageId\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(Breadcrumb, {\n blockId: pageId\n })\n }),\n targetNotFound && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"div\", {\n className: \"tl-target-not-found\",\n children: \"Target not found\"\n }),\n showingPortal && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(PortalComponent, __spreadValues({}, componentProps))\n ]\n })\n })\n ]\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"rect\", {\n width: bounds.width,\n height: bounds.height,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: this.props.isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n var _a3;\n if (props.size !== void 0) {\n const scale = levelToScale7[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"];\n props.size[0] = Math.max(props.size[0], 60 * scale);\n props.size[1] = Math.max(props.size[1], HEADER_HEIGHT * scale);\n }\n return withClampedStyles(this, props);\n });\n makeObservable(this);\n if (props.collapsed) {\n Object.assign(this.canResize, [true, false]);\n }\n if (((_a3 = props.size) == null ? void 0 : _a3[1]) === 0) {\n this.initialHeightCalculated = false;\n }\n }\n static isPageOrBlock(id3) {\n const blockRefEg = \"((62af02d0-0443-42e8-a284-946c162b0f89))\";\n if (id3) {\n return \/^\\(\\(.*\\)\\)$\/.test(id3) && id3.length === blockRefEg.length ? \"B\" : \"P\";\n }\n return false;\n }\n get collapsed() {\n return this.props.blockType === \"B\" ? this.props.compact : this.props.collapsed;\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n useComponentSize(ref, selector = \"\") {\n const [size, setSize] = React61.useState([0, 0]);\n const app = useApp();\n React61.useEffect(() => {\n setTimeout(() => {\n if (ref == null ? void 0 : ref.current) {\n const el = selector ? ref.current.querySelector(selector) : ref.current;\n if (el) {\n const updateSize = () => {\n const { width, height } = el.getBoundingClientRect();\n const bound = src_default.div([width, height], app.viewport.camera.zoom);\n setSize(bound);\n return bound;\n };\n updateSize();\n this.getInnerHeight = () => updateSize()[1];\n const resizeObserver = new ResizeObserver(() => {\n updateSize();\n });\n resizeObserver.observe(el);\n return () => {\n resizeObserver.disconnect();\n };\n }\n }\n return () => {\n };\n }, 10);\n }, [ref, selector]);\n return size;\n }\n getHeaderHeight() {\n var _a3;\n const scale = levelToScale7[(_a3 = this.props.scaleLevel) != null ? _a3 : \"md\"];\n return this.props.compact ? 0 : HEADER_HEIGHT * scale;\n }\n getAutoResizeHeight() {\n if (this.getInnerHeight) {\n return this.getHeaderHeight() + this.getInnerHeight();\n }\n return null;\n }\n getShapeSVGJsx({ preview }) {\n var _a3, _b, _c;\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"rect\", {\n fill: this.props.fill && this.props.fill !== \"var(--ls-secondary-background-color)\" ? isBuiltInColor(this.props.fill) ? `var(--ls-highlight-color-${this.props.fill})` : this.props.fill : \"var(--ls-secondary-background-color)\",\n stroke: getComputedColor(this.props.fill, \"background\"),\n strokeWidth: (_a3 = this.props.strokeWidth) != null ? _a3 : 2,\n fillOpacity: (_b = this.props.opacity) != null ? _b : 0.2,\n width: bounds.width,\n rx: 8,\n ry: 8,\n height: bounds.height\n }),\n !this.props.compact && \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"rect\", {\n fill: this.props.fill && this.props.fill !== \"var(--ls-secondary-background-color)\" ? getComputedColor(this.props.fill, \"background\") : \"var(--ls-tertiary-background-color)\",\n fillOpacity: (_c = this.props.opacity) != null ? _c : 0.2,\n x: 1,\n y: 1,\n width: bounds.width - 2,\n height: HEADER_HEIGHT - 2,\n rx: 8,\n ry: 8\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime64.jsx)(\"text\", {\n style: {\n transformOrigin: \"top left\"\n },\n transform: `translate(${bounds.width \/ 2}, ${10 + bounds.height \/ 2})`,\n textAnchor: \"middle\",\n fontFamily: \"var(--ls-font-family)\",\n fontSize: \"32\",\n fill: \"var(--ls-secondary-text-color)\",\n stroke: \"var(--ls-secondary-text-color)\",\n children: this.props.blockType === \"P\" ? this.props.pageId : \"\"\n })\n ]\n });\n }\n};\n__publicField(LogseqPortalShape, \"id\", \"logseq-portal\");\n__publicField(LogseqPortalShape, \"defaultSearchQuery\", \"\");\n__publicField(LogseqPortalShape, \"defaultSearchFilter\", null);\n__publicField(LogseqPortalShape, \"defaultProps\", {\n id: \"logseq-portal\",\n type: \"logseq-portal\",\n parentId: \"page\",\n point: [0, 0],\n size: [400, 50],\n collapsedHeight: 0,\n stroke: \"\",\n fill: \"\",\n noFill: false,\n borderRadius: 8,\n strokeWidth: 2,\n strokeType: \"line\",\n opacity: 1,\n pageId: \"\",\n collapsed: false,\n compact: false,\n scaleLevel: \"md\",\n isAutoResizing: true\n});\n__decorateClass([\n computed\n], LogseqPortalShape.prototype, \"collapsed\", 1);\n__decorateClass([\n action\n], LogseqPortalShape.prototype, \"setCollapsed\", 2);\n__decorateClass([\n computed\n], LogseqPortalShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], LogseqPortalShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ ..\/..\/node_modules\/perfect-freehand\/dist\/esm\/index.js\nfunction $2(e2, t2, u4, x4 = (h4) => h4) {\n return e2 * x4(0.5 - t2 * (0.5 - u4));\n}\nfunction se2(e2) {\n return [-e2[0], -e2[1]];\n}\nfunction l4(e2, t2) {\n return [e2[0] + t2[0], e2[1] + t2[1]];\n}\nfunction a4(e2, t2) {\n return [e2[0] - t2[0], e2[1] - t2[1]];\n}\nfunction b4(e2, t2) {\n return [e2[0] * t2, e2[1] * t2];\n}\nfunction he2(e2, t2) {\n return [e2[0] \/ t2, e2[1] \/ t2];\n}\nfunction R4(e2) {\n return [e2[1], -e2[0]];\n}\nfunction B2(e2, t2) {\n return e2[0] * t2[0] + e2[1] * t2[1];\n}\nfunction ue2(e2, t2) {\n return e2[0] === t2[0] && e2[1] === t2[1];\n}\nfunction ge2(e2) {\n return Math.hypot(e2[0], e2[1]);\n}\nfunction de2(e2) {\n return e2[0] * e2[0] + e2[1] * e2[1];\n}\nfunction A3(e2, t2) {\n return de2(a4(e2, t2));\n}\nfunction G2(e2) {\n return he2(e2, ge2(e2));\n}\nfunction ie2(e2, t2) {\n return Math.hypot(e2[1] - t2[1], e2[0] - t2[0]);\n}\nfunction L4(e2, t2, u4) {\n let x4 = Math.sin(u4), h4 = Math.cos(u4), y4 = e2[0] - t2[0], n4 = e2[1] - t2[1], f4 = y4 * h4 - n4 * x4, d4 = y4 * x4 + n4 * h4;\n return [f4 + t2[0], d4 + t2[1]];\n}\nfunction K2(e2, t2, u4) {\n return l4(e2, b4(a4(t2, e2), u4));\n}\nfunction ee2(e2, t2, u4) {\n return l4(e2, b4(t2, u4));\n}\nvar { min: C3, PI: xe2 } = Math;\nvar pe2 = 0.275;\nvar V3 = xe2 + 1e-4;\nfunction ce2(e2, t2 = {}) {\n let { size: u4 = 16, smoothing: x4 = 0.5, thinning: h4 = 0.5, simulatePressure: y4 = true, easing: n4 = (r4) => r4, start: f4 = {}, end: d4 = {}, last: D4 = false } = t2, { cap: S3 = true, easing: j2 = (r4) => r4 * (2 - r4) } = f4, { cap: q2 = true, easing: c4 = (r4) => --r4 * r4 * r4 + 1 } = d4;\n if (e2.length === 0 || u4 <= 0)\n return [];\n let p4 = e2[e2.length - 1].runningLength, g4 = f4.taper === false ? 0 : f4.taper === true ? Math.max(u4, p4) : f4.taper, T4 = d4.taper === false ? 0 : d4.taper === true ? Math.max(u4, p4) : d4.taper, te2 = Math.pow(u4 * x4, 2), _2 = [], M2 = [], H3 = e2.slice(0, 10).reduce((r4, i4) => {\n let o4 = i4.pressure;\n if (y4) {\n let s4 = C3(1, i4.distance \/ u4), W3 = C3(1, 1 - s4);\n o4 = C3(1, r4 + (W3 - r4) * (s4 * pe2));\n }\n return (r4 + o4) \/ 2;\n }, e2[0].pressure), m4 = $2(u4, h4, e2[e2.length - 1].pressure, n4), U2, X2 = e2[0].vector, z3 = e2[0].point, F2 = z3, O3 = z3, E4 = F2, J2 = false;\n for (let r4 = 0; r4 < e2.length; r4++) {\n let { pressure: i4 } = e2[r4], { point: o4, vector: s4, distance: W3, runningLength: I2 } = e2[r4];\n if (r4 < e2.length - 1 && p4 - I2 < 3)\n continue;\n if (h4) {\n if (y4) {\n let v4 = C3(1, W3 \/ u4), Z2 = C3(1, 1 - v4);\n i4 = C3(1, H3 + (Z2 - H3) * (v4 * pe2));\n }\n m4 = $2(u4, h4, i4, n4);\n } else\n m4 = u4 \/ 2;\n U2 === void 0 && (U2 = m4);\n let le2 = I2 < g4 ? j2(I2 \/ g4) : 1, fe2 = p4 - I2 < T4 ? c4((p4 - I2) \/ T4) : 1;\n m4 = Math.max(0.01, m4 * Math.min(le2, fe2));\n let re2 = (r4 < e2.length - 1 ? e2[r4 + 1] : e2[r4]).vector, Y2 = r4 < e2.length - 1 ? B2(s4, re2) : 1, be2 = B2(s4, X2) < 0 && !J2, ne2 = Y2 !== null && Y2 < 0;\n if (be2 || ne2) {\n let v4 = b4(R4(X2), m4);\n for (let Z2 = 1 \/ 13, w4 = 0; w4 <= 1; w4 += Z2)\n O3 = L4(a4(o4, v4), o4, V3 * w4), _2.push(O3), E4 = L4(l4(o4, v4), o4, V3 * -w4), M2.push(E4);\n z3 = O3, F2 = E4, ne2 && (J2 = true);\n continue;\n }\n if (J2 = false, r4 === e2.length - 1) {\n let v4 = b4(R4(s4), m4);\n _2.push(a4(o4, v4)), M2.push(l4(o4, v4));\n continue;\n }\n let oe2 = b4(R4(K2(re2, s4, Y2)), m4);\n O3 = a4(o4, oe2), (r4 <= 1 || A3(z3, O3) > te2) && (_2.push(O3), z3 = O3), E4 = l4(o4, oe2), (r4 <= 1 || A3(F2, E4) > te2) && (M2.push(E4), F2 = E4), H3 = i4, X2 = s4;\n }\n let P3 = e2[0].point.slice(0, 2), k3 = e2.length > 1 ? e2[e2.length - 1].point.slice(0, 2) : l4(e2[0].point, [1, 1]), Q2 = [], N3 = [];\n if (e2.length === 1) {\n if (!(g4 || T4) || D4) {\n let r4 = ee2(P3, G2(R4(a4(P3, k3))), -(U2 || m4)), i4 = [];\n for (let o4 = 1 \/ 13, s4 = o4; s4 <= 1; s4 += o4)\n i4.push(L4(r4, P3, V3 * 2 * s4));\n return i4;\n }\n } else {\n if (!(g4 || T4 && e2.length === 1))\n if (S3)\n for (let i4 = 1 \/ 13, o4 = i4; o4 <= 1; o4 += i4) {\n let s4 = L4(M2[0], P3, V3 * o4);\n Q2.push(s4);\n }\n else {\n let i4 = a4(_2[0], M2[0]), o4 = b4(i4, 0.5), s4 = b4(i4, 0.51);\n Q2.push(a4(P3, o4), a4(P3, s4), l4(P3, s4), l4(P3, o4));\n }\n let r4 = R4(se2(e2[e2.length - 1].vector));\n if (T4 || g4 && e2.length === 1)\n N3.push(k3);\n else if (q2) {\n let i4 = ee2(k3, r4, m4);\n for (let o4 = 1 \/ 29, s4 = o4; s4 < 1; s4 += o4)\n N3.push(L4(i4, k3, V3 * 3 * s4));\n } else\n N3.push(l4(k3, b4(r4, m4)), l4(k3, b4(r4, m4 * 0.99)), a4(k3, b4(r4, m4 * 0.99)), a4(k3, b4(r4, m4)));\n }\n return _2.concat(N3, M2.reverse(), Q2);\n}\nfunction me2(e2, t2 = {}) {\n var q2;\n let { streamline: u4 = 0.5, size: x4 = 16, last: h4 = false } = t2;\n if (e2.length === 0)\n return [];\n let y4 = 0.15 + (1 - u4) * 0.85, n4 = Array.isArray(e2[0]) ? e2 : e2.map(({ x: c4, y: p4, pressure: g4 = 0.5 }) => [c4, p4, g4]);\n if (n4.length === 2) {\n let c4 = n4[1];\n n4 = n4.slice(0, -1);\n for (let p4 = 1; p4 < 5; p4++)\n n4.push(K2(n4[0], c4, p4 \/ 4));\n }\n n4.length === 1 && (n4 = [...n4, [...l4(n4[0], [1, 1]), ...n4[0].slice(2)]]);\n let f4 = [{ point: [n4[0][0], n4[0][1]], pressure: n4[0][2] >= 0 ? n4[0][2] : 0.25, vector: [1, 1], distance: 0, runningLength: 0 }], d4 = false, D4 = 0, S3 = f4[0], j2 = n4.length - 1;\n for (let c4 = 1; c4 < n4.length; c4++) {\n let p4 = h4 && c4 === j2 ? n4[c4].slice(0, 2) : K2(S3.point, n4[c4], y4);\n if (ue2(S3.point, p4))\n continue;\n let g4 = ie2(p4, S3.point);\n if (D4 += g4, c4 < j2 && !d4) {\n if (D4 < x4)\n continue;\n d4 = true;\n }\n S3 = { point: p4, pressure: n4[c4][2] >= 0 ? n4[c4][2] : 0.5, vector: G2(a4(S3.point, p4)), distance: g4, runningLength: D4 }, f4.push(S3);\n }\n return f4[0].vector = ((q2 = f4[1]) == null ? void 0 : q2.vector) || [0, 0], f4;\n}\n\n\/\/ src\/lib\/shapes\/PencilShape.tsx\nvar import_jsx_runtime65 = require(\"react\/jsx-runtime\");\nvar levelToScale8 = {\n xs: 1,\n sm: 1.6,\n md: 2,\n lg: 3.2,\n xl: 4.8,\n xxl: 6\n};\nvar simulatePressureSettings = {\n easing: (t2) => Math.sin(t2 * Math.PI \/ 2),\n simulatePressure: true\n};\nvar realPressureSettings = {\n easing: (t2) => t2 * t2,\n simulatePressure: false\n};\nfunction getFreehandOptions(shape) {\n const options = __spreadProps(__spreadValues({\n size: 1 + shape.strokeWidth * 1.5,\n thinning: 0.65,\n streamline: 0.65,\n smoothing: 0.65\n }, shape.points[1][2] === 0.5 ? simulatePressureSettings : realPressureSettings), {\n last: shape.isComplete\n });\n return options;\n}\nfunction getDrawStrokePoints(shape, options) {\n return me2(shape.points, options);\n}\nfunction getDrawStrokePathTDSnapshot(shape) {\n if (shape.points.length < 2)\n return \"\";\n const options = getFreehandOptions(shape);\n const strokePoints = getDrawStrokePoints(shape, options);\n const path = SvgPathUtils.getSvgPathFromStroke(ce2(strokePoints, options));\n return path;\n}\nvar PencilShape = class extends TLDrawShape {\n constructor(props = {}) {\n super(props);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing }) => {\n const {\n props: { opacity }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime65.jsx)(SVGContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: this.getShapeSVGJsx()\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n strokeWidth: levelToScale8[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const { pointsPath } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime65.jsx)(\"path\", {\n d: pointsPath,\n strokeDasharray: this.props.isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n props = withClampedStyles(this, props);\n if (props.strokeWidth !== void 0)\n props.strokeWidth = Math.max(props.strokeWidth, 1);\n return props;\n });\n makeObservable(this);\n }\n get pointsPath() {\n return getDrawStrokePathTDSnapshot(this.props);\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx() {\n const {\n pointsPath,\n props: { stroke, strokeWidth, strokeType }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime65.jsx)(\"path\", {\n pointerEvents: \"all\",\n d: pointsPath,\n strokeWidth: strokeWidth \/ 2,\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n stroke: getComputedColor(stroke, \"text\"),\n fill: getComputedColor(stroke, \"text\"),\n strokeDasharray: strokeType === \"dashed\" ? \"12 4\" : void 0\n });\n }\n};\n__publicField(PencilShape, \"id\", \"pencil\");\n__publicField(PencilShape, \"defaultProps\", {\n id: \"pencil\",\n parentId: \"page\",\n type: \"pencil\",\n point: [0, 0],\n points: [],\n isComplete: false,\n stroke: \"\",\n fill: \"\",\n noFill: true,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1\n});\n__decorateClass([\n computed\n], PencilShape.prototype, \"pointsPath\", 1);\n__decorateClass([\n computed\n], PencilShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], PencilShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/PolygonShape.tsx\nvar React62 = __toESM(require(\"react\"));\nvar import_jsx_runtime66 = require(\"react\/jsx-runtime\");\nvar font4 = \"20px \/ 1 var(--ls-font-family)\";\nvar levelToScale9 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar PolygonShape = class extends TLPolygonShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(\n ({ events, isErasing, isSelected, isEditing, onEditingEnd }) => {\n const {\n offset: [x4, y4],\n props: {\n stroke,\n fill,\n noFill,\n strokeWidth,\n opacity,\n strokeType,\n label,\n italic,\n fontWeight,\n fontSize\n }\n } = this;\n const path = this.getVertices(strokeWidth \/ 2).join();\n const labelSize = label || isEditing ? getTextLabelSize(\n label,\n { fontFamily: \"var(--ls-font-family)\", fontSize, lineHeight: 1, fontWeight },\n 4\n ) : [0, 0];\n const midPoint = [this.props.size[0] \/ 2, this.props.size[1] * 2 \/ 3];\n const scale = Math.max(\n 0.5,\n Math.min(\n 1,\n this.props.size[0] \/ (labelSize[0] * 2),\n this.props.size[1] \/ (labelSize[1] * 2)\n )\n );\n const bounds = this.getBounds();\n const offset = React62.useMemo(() => {\n return src_default.sub(midPoint, src_default.toFixed([bounds.width \/ 2, bounds.height \/ 2]));\n }, [bounds, scale, midPoint]);\n const handleLabelChange = React62.useCallback(\n (label2) => {\n var _a3;\n (_a3 = this.update) == null ? void 0 : _a3.call(this, { label: label2 });\n },\n [label]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsxs)(\"div\", __spreadProps(__spreadValues({}, events), {\n style: { width: \"100%\", height: \"100%\", overflow: \"hidden\" },\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(TextLabel, {\n font: font4,\n text: label,\n fontSize,\n color: getComputedColor(stroke, \"text\"),\n offsetX: offset[0],\n offsetY: offset[1] \/ scale,\n scale,\n isEditing,\n onChange: handleLabelChange,\n onBlur: onEditingEnd,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontWeight,\n pointerEvents: !!label\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(SVGContainer, {\n opacity: isErasing ? 0.2 : opacity,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsxs)(\"g\", {\n transform: `translate(${x4}, ${y4})`,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n className: isSelected || !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n points: path\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n points: path,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\"),\n strokeWidth,\n rx: 2,\n ry: 2,\n strokeLinejoin: \"round\",\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0\n })\n ]\n })\n })\n ]\n }));\n }\n ));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale9[v4 != null ? v4 : \"md\"],\n strokeWidth: levelToScale9[v4 != null ? v4 : \"md\"] \/ 10\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n offset: [x4, y4],\n props: { strokeWidth, isLocked }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n transform: `translate(${x4}, ${y4})`,\n points: this.getVertices(strokeWidth \/ 2).join(),\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n })\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.sides !== void 0)\n props.sides = Math.max(props.sides, 3);\n return withClampedStyles(this, props);\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getShapeSVGJsx(opts) {\n const {\n offset: [x4, y4],\n props: { stroke, fill, noFill, strokeWidth, opacity, strokeType }\n } = this;\n const path = this.getVertices(strokeWidth \/ 2).join();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsxs)(\"g\", {\n transform: `translate(${x4}, ${y4})`,\n opacity,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n className: !noFill ? \"tl-hitarea-fill\" : \"tl-hitarea-stroke\",\n points: path\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime66.jsx)(\"polygon\", {\n points: path,\n stroke: getComputedColor(stroke, \"stroke\"),\n fill: noFill ? \"none\" : getComputedColor(fill, \"background\"),\n strokeWidth,\n rx: 2,\n ry: 2,\n strokeLinejoin: \"round\",\n strokeDasharray: strokeType === \"dashed\" ? \"8 2\" : void 0\n })\n ]\n });\n }\n};\n__publicField(PolygonShape, \"id\", \"polygon\");\n__publicField(PolygonShape, \"defaultProps\", {\n id: \"polygon\",\n parentId: \"page\",\n type: \"polygon\",\n point: [0, 0],\n size: [100, 100],\n sides: 3,\n ratio: 1,\n isFlippedY: false,\n stroke: \"\",\n fill: \"\",\n fontWeight: 400,\n fontSize: 20,\n italic: false,\n noFill: false,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1,\n label: \"\"\n});\n__decorateClass([\n computed\n], PolygonShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], PolygonShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/TextShape.tsx\nvar React63 = __toESM(require(\"react\"));\nvar import_jsx_runtime67 = require(\"react\/jsx-runtime\");\nvar levelToScale10 = {\n xs: 10,\n sm: 16,\n md: 20,\n lg: 32,\n xl: 48,\n xxl: 60\n};\nvar TextShape = class extends TLTextShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, onEditingEnd }) => {\n const {\n props: {\n opacity,\n fontFamily,\n fontSize,\n fontWeight,\n italic,\n lineHeight,\n text,\n stroke,\n padding\n }\n } = this;\n const rInput = React63.useRef(null);\n const rIsMounted = React63.useRef(false);\n const rInnerWrapper = React63.useRef(null);\n const handleChange = React63.useCallback((e2) => {\n const { isSizeLocked } = this.props;\n const text2 = TextUtils.normalizeText(e2.currentTarget.value);\n if (isSizeLocked) {\n this.update({ text: text2, size: this.getAutoSizedBoundingBox({ text: text2 }) });\n return;\n }\n this.update({ text: text2 });\n }, []);\n const handleKeyDown = React63.useCallback((e2) => {\n if (e2.key === \"Escape\")\n return;\n if (e2.key === \"Tab\" && text.length === 0) {\n e2.preventDefault();\n return;\n }\n if (!(e2.key === \"Meta\" || e2.metaKey)) {\n e2.stopPropagation();\n } else if (e2.key === \"z\" && e2.metaKey) {\n if (e2.shiftKey) {\n document.execCommand(\"redo\", false);\n } else {\n document.execCommand(\"undo\", false);\n }\n e2.stopPropagation();\n e2.preventDefault();\n return;\n }\n if (e2.key === \"Tab\") {\n e2.preventDefault();\n if (e2.shiftKey) {\n TextAreaUtils.unindent(e2.currentTarget);\n } else {\n TextAreaUtils.indent(e2.currentTarget);\n }\n this.update({ text: TextUtils.normalizeText(e2.currentTarget.value) });\n }\n }, []);\n const handleBlur = React63.useCallback(\n (e2) => {\n if (!isEditing)\n return;\n onEditingEnd == null ? void 0 : onEditingEnd();\n },\n [onEditingEnd]\n );\n const handleFocus = React63.useCallback(\n (e2) => {\n if (!isEditing)\n return;\n if (!rIsMounted.current)\n return;\n if (document.activeElement === e2.currentTarget) {\n e2.currentTarget.select();\n }\n },\n [isEditing]\n );\n const handlePointerDown = React63.useCallback(\n (e2) => {\n if (isEditing)\n e2.stopPropagation();\n },\n [isEditing]\n );\n React63.useEffect(() => {\n if (isEditing) {\n requestAnimationFrame(() => {\n rIsMounted.current = true;\n const elm = rInput.current;\n if (elm) {\n elm.focus();\n elm.select();\n }\n });\n }\n }, [isEditing, onEditingEnd]);\n React63.useLayoutEffect(() => {\n if (this.props.size[0] === 0 || this.props.size[1] === 0) {\n this.onResetBounds();\n }\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(HTMLContainer, __spreadProps(__spreadValues({}, events), {\n opacity: isErasing ? 0.2 : opacity,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"div\", {\n ref: rInnerWrapper,\n className: \"tl-text-shape-wrapper\",\n \"data-hastext\": !!text,\n \"data-isediting\": isEditing,\n style: {\n fontFamily,\n fontStyle: italic ? \"italic\" : \"normal\",\n fontSize,\n fontWeight,\n padding,\n lineHeight,\n color: getComputedColor(stroke, \"text\")\n },\n children: isEditing ? \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"textarea\", {\n ref: rInput,\n className: \"tl-text-shape-input\",\n name: \"text\",\n tabIndex: -1,\n autoComplete: \"false\",\n autoCapitalize: \"false\",\n autoCorrect: \"false\",\n autoSave: \"false\",\n placeholder: \"\",\n spellCheck: \"true\",\n wrap: \"off\",\n dir: \"auto\",\n datatype: \"wysiwyg\",\n defaultValue: text,\n onFocus: handleFocus,\n onChange: handleChange,\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n onPointerDown: handlePointerDown\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, {\n children: [\n text,\n \"\\u200B\"\n ]\n })\n })\n }));\n }));\n __publicField(this, \"setScaleLevel\", (v4) => __async(this, null, function* () {\n this.update({\n scaleLevel: v4,\n fontSize: levelToScale10[v4 != null ? v4 : \"md\"]\n });\n this.onResetBounds();\n }));\n __publicField(this, \"ReactIndicator\", observer(({ isEditing }) => {\n const {\n props: { borderRadius, isLocked },\n bounds\n } = this;\n return isEditing ? null : \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"rect\", {\n width: bounds.width,\n height: bounds.height,\n rx: borderRadius,\n ry: borderRadius,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.isSizeLocked || this.props.isSizeLocked) {\n }\n return withClampedStyles(this, props);\n });\n __publicField(this, \"getBounds\", () => {\n const [x4, y4] = this.props.point;\n const [width, height] = this.props.size;\n return {\n minX: x4,\n minY: y4,\n maxX: x4 + width,\n maxY: y4 + height,\n width,\n height\n };\n });\n __publicField(this, \"onResizeStart\", ({ isSingle }) => {\n var _a3;\n if (!isSingle)\n return this;\n this.scale = [...(_a3 = this.props.scale) != null ? _a3 : [1, 1]];\n return this.update({\n isSizeLocked: false\n });\n });\n __publicField(this, \"onResetBounds\", () => {\n this.update({\n size: this.getAutoSizedBoundingBox(),\n isSizeLocked: true\n });\n return this;\n });\n }\n get scaleLevel() {\n var _a3;\n return (_a3 = this.props.scaleLevel) != null ? _a3 : \"md\";\n }\n getAutoSizedBoundingBox(props = {}) {\n const {\n text = this.props.text,\n fontFamily = this.props.fontFamily,\n fontSize = this.props.fontSize,\n fontWeight = this.props.fontWeight,\n lineHeight = this.props.lineHeight,\n padding = this.props.padding\n } = props;\n const [width, height] = getTextLabelSize(\n text,\n { fontFamily, fontSize, lineHeight, fontWeight },\n padding\n );\n return [width, height];\n }\n getShapeSVGJsx() {\n if (isSafari()) {\n return super.getShapeSVGJsx(null);\n }\n const {\n props: { text, stroke, fontSize, fontFamily }\n } = this;\n const bounds = this.getBounds();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"foreignObject\", {\n width: bounds.width,\n height: bounds.height,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime67.jsx)(\"div\", {\n style: {\n color: getComputedColor(stroke, \"text\"),\n fontSize,\n fontFamily,\n display: \"contents\"\n },\n children: text\n })\n });\n }\n};\n__publicField(TextShape, \"id\", \"text\");\n__publicField(TextShape, \"defaultProps\", {\n id: \"box\",\n parentId: \"page\",\n type: \"text\",\n point: [0, 0],\n size: [0, 0],\n isSizeLocked: true,\n text: \"\",\n lineHeight: 1.2,\n fontSize: 20,\n fontWeight: 400,\n italic: false,\n padding: 4,\n fontFamily: \"var(--ls-font-family)\",\n borderRadius: 0,\n stroke: \"\",\n fill: \"\",\n noFill: true,\n strokeType: \"line\",\n strokeWidth: 2,\n opacity: 1\n});\n__decorateClass([\n computed\n], TextShape.prototype, \"scaleLevel\", 1);\n__decorateClass([\n action\n], TextShape.prototype, \"setScaleLevel\", 2);\n\n\/\/ src\/lib\/shapes\/VideoShape.tsx\nvar React64 = __toESM(require(\"react\"));\nvar import_jsx_runtime68 = require(\"react\/jsx-runtime\");\nvar VideoShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"canChangeAspectRatio\", false);\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, asset, isEditing }) => {\n const {\n props: {\n opacity,\n size: [w4, h4]\n }\n } = this;\n const isMoving = useCameraMovingRef();\n const app = useApp();\n const isSelected = app.selectedIds.has(this.id);\n const tlEventsEnabled = isMoving || isSelected && !isEditing || app.selectedTool.id !== \"select\";\n const stop2 = React64.useCallback(\n (e2) => {\n if (!tlEventsEnabled) {\n e2.stopPropagation();\n }\n },\n [tlEventsEnabled]\n );\n const { handlers } = React64.useContext(LogseqContext);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : opacity\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(\"div\", {\n onWheelCapture: stop2,\n onPointerDown: stop2,\n onPointerUp: stop2,\n className: \"tl-video-container\",\n style: {\n pointerEvents: !isMoving && (isEditing || isSelected) ? \"all\" : \"none\",\n overflow: isEditing ? \"auto\" : \"hidden\"\n },\n children: asset && \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(\"video\", {\n controls: true,\n src: handlers ? handlers.makeAssetUrl(asset.src) : asset.src\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime68.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n};\n__publicField(VideoShape, \"id\", \"video\");\n__publicField(VideoShape, \"defaultProps\", {\n id: \"video1\",\n parentId: \"page\",\n type: \"video\",\n point: [0, 0],\n size: [100, 100],\n opacity: 1,\n assetId: \"\",\n clipping: 0,\n isAspectRatioLocked: true\n});\n\n\/\/ src\/lib\/shapes\/YouTubeShape.tsx\nvar import_jsx_runtime69 = require(\"react\/jsx-runtime\");\nvar YOUTUBE_REGEX = \/^(?:https?:\\\/\\\/)?(?:www\\.)?(?:youtu\\.be\\\/|youtube\\.com\\\/(?:embed\\\/|v\\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$\/;\nvar _YouTubeShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"aspectRatio\", 480 \/ 853);\n __publicField(this, \"canChangeAspectRatio\", false);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"onYoutubeLinkChange\", (url) => {\n this.update({ url, size: _YouTubeShape.defaultProps.size });\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, isSelected }) => {\n const app = useApp();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"div\", {\n className: \"rounded-lg w-full h-full relative overflow-hidden shadow-xl tl-youtube-container\",\n style: {\n pointerEvents: isEditing || app.readOnly ? \"all\" : \"none\",\n userSelect: \"none\",\n background: `url('https:\/\/img.youtube.com\/vi\/${this.embedId}\/mqdefault.jpg') no-repeat center\/cover`\n },\n children: this.embedId ? \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"div\", {\n style: {\n overflow: \"hidden\",\n position: \"relative\",\n height: \"100%\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"iframe\", {\n className: \"absolute inset-0 w-full h-full m-0\",\n width: \"853\",\n height: \"480\",\n src: `https:\/\/www.youtube.com\/embed\/${this.embedId}`,\n frameBorder: \"0\",\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",\n allowFullScreen: true,\n title: \"Embedded youtube\"\n })\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"div\", {\n className: \"w-full h-full flex items-center justify-center p-4\",\n style: {\n backgroundColor: \"var(--ls-primary-background-color)\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"svg\", {\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n viewBox: \"0 0 502 210.649\",\n height: \"210.65\",\n width: \"128\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M498.333 45.7s-2.91-20.443-11.846-29.447C475.157 4.44 462.452 4.38 456.627 3.687c-41.7-3-104.25-3-104.25-3h-.13s-62.555 0-104.255 3c-5.826.693-18.523.753-29.86 12.566-8.933 9.004-11.84 29.447-11.84 29.447s-2.983 24.003-2.983 48.009v22.507c0 24.006 2.983 48.013 2.983 48.013s2.907 20.44 11.84 29.446c11.337 11.817 26.23 11.44 32.86 12.677 23.84 2.28 101.315 2.983 101.315 2.983s62.62-.094 104.32-3.093c5.824-.694 18.527-.75 29.857-12.567 8.936-9.006 11.846-29.446 11.846-29.446s2.98-24.007 2.98-48.013V93.709c0-24.006-2.98-48.01-2.98-48.01\",\n fill: \"#cd201f\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"g\", {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M187.934 169.537h-18.96V158.56c-7.19 8.24-13.284 12.4-19.927 12.4-5.826 0-9.876-2.747-11.9-7.717-1.23-3.02-2.103-7.736-2.103-14.663V68.744h18.957v81.833c.443 2.796 1.636 3.823 4.043 3.823 3.63 0 6.913-3.153 10.93-8.817V68.744h18.96v100.793zM102.109 139.597c.996 9.98-2.1 14.93-7.987 14.93s-8.98-4.95-7.98-14.93v-39.92c-1-9.98 2.093-14.657 7.98-14.657 5.89 0 8.993 4.677 7.996 14.657l-.01 39.92zm18.96-37.923c0-10.77-2.164-18.86-5.987-23.95-5.054-6.897-12.973-9.72-20.96-9.72-9.033 0-15.913 2.823-20.957 9.72-3.886 5.09-5.97 13.266-5.97 24.036l-.016 35.84c0 10.71 1.853 18.11 5.736 23.153 5.047 6.873 13.227 10.513 21.207 10.513 7.986 0 16.306-3.64 21.36-10.513 3.823-5.043 5.586-12.443 5.586-23.153v-35.926zM46.223 114.647v54.889h-19.96v-54.89S5.582 47.358 1.314 34.815H22.27L36.277 87.38l13.936-52.566H71.17l-24.947 79.833z\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsxs)(\"g\", {\n fill: \"#fff\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M440.413 96.647c0-9.33 2.557-11.874 8.59-11.874 5.99 0 8.374 2.777 8.374 11.997v10.893l-16.964.02V96.647zm35.96 25.986l-.003-20.4c0-10.656-2.1-18.456-5.88-23.5-5.06-6.823-12.253-10.436-21.317-10.436-9.226 0-16.42 3.613-21.643 10.436-3.84 5.044-6.076 13.28-6.076 23.943v34.927c0 10.596 2.46 18.013 6.296 23.003 5.227 6.813 12.42 10.216 21.87 10.216 9.44 0 16.853-3.566 21.85-10.81 2.2-3.196 3.616-6.82 4.226-10.823.164-1.81.64-5.933.64-11.753v-2.827h-18.96c0 7.247.037 11.557-.133 12.54-1.033 4.834-3.623 7.25-8.07 7.25-6.203 0-8.826-4.636-8.76-13.843v-17.923h35.96zM390.513 140.597c0 9.98-2.353 13.806-7.563 13.806-2.973 0-6.4-1.53-9.423-4.553l.02-60.523c3.02-2.98 6.43-4.55 9.403-4.55 5.21 0 7.563 2.93 7.563 12.91v42.91zm2.104-72.453c-6.647 0-13.253 4.087-19.09 11.27l.02-43.603h-17.963V169.54h17.963l.027-10.05c6.036 7.47 12.62 11.333 19.043 11.333 7.193 0 12.45-3.85 14.863-11.267 1.203-4.226 1.993-10.733 1.993-19.956V99.684c0-9.447-1.21-15.907-2.416-19.917-2.41-7.466-7.247-11.623-14.44-11.623M340.618 169.537h-18.956V158.56c-7.193 8.24-13.283 12.4-19.926 12.4-5.827 0-9.877-2.747-11.9-7.717-1.234-3.02-2.107-7.736-2.107-14.663V69.744h18.96v80.833c.443 2.796 1.633 3.823 4.043 3.823 3.63 0 6.913-3.153 10.93-8.817V69.744h18.957v99.793z\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M268.763 169.537h-19.956V54.77h-20.956V35.835l62.869-.024v18.96h-21.957v114.766z\"\n })\n ]\n })\n ]\n })\n })\n })\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.max(props.size[0], 1);\n props.size[1] = Math.max(props.size[0] * this.aspectRatio, 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get embedId() {\n var _a3, _b;\n const url = this.props.url;\n const match = url.match(YOUTUBE_REGEX);\n const embedId = (_b = (_a3 = match == null ? void 0 : match[1]) != null ? _a3 : url) != null ? _b : \"\";\n return embedId;\n }\n getShapeSVGJsx() {\n const bounds = this.getBounds();\n const embedId = this.embedId;\n if (embedId) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"image\", {\n width: bounds.width,\n height: bounds.height,\n href: `https:\/\/img.youtube.com\/vi\/${embedId}\/mqdefault.jpg`,\n className: \"grayscale-[50%]\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"svg\", {\n x: bounds.width \/ 4,\n y: bounds.height \/ 4,\n width: bounds.width \/ 2,\n height: bounds.height \/ 2,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime69.jsx)(\"path\", {\n d: \"M4.76447 3.12199C5.63151 3.04859 6.56082 3 7.5 3C8.43918 3 9.36849 3.04859 10.2355 3.12199C11.2796 3.21037 11.9553 3.27008 12.472 3.39203C12.9425 3.50304 13.2048 3.64976 13.4306 3.88086C13.4553 3.90618 13.4902 3.94414 13.5133 3.97092C13.7126 4.20149 13.8435 4.4887 13.918 5.03283C13.9978 5.6156 14 6.37644 14 7.52493C14 8.66026 13.9978 9.41019 13.9181 9.98538C13.8439 10.5206 13.7137 10.8061 13.5125 11.0387C13.4896 11.0651 13.4541 11.1038 13.4296 11.1287C13.2009 11.3625 12.9406 11.5076 12.4818 11.6164C11.9752 11.7365 11.3143 11.7942 10.2878 11.8797C9.41948 11.9521 8.47566 12 7.5 12C6.52434 12 5.58052 11.9521 4.7122 11.8797C3.68572 11.7942 3.02477 11.7365 2.51816 11.6164C2.05936 11.5076 1.7991 11.3625 1.57037 11.1287C1.54593 11.1038 1.51035 11.0651 1.48748 11.0387C1.28628 10.8061 1.15612 10.5206 1.08193 9.98538C1.00221 9.41019 1 8.66026 1 7.52493C1 6.37644 1.00216 5.6156 1.082 5.03283C1.15654 4.4887 1.28744 4.20149 1.48666 3.97092C1.5098 3.94414 1.54468 3.90618 1.56942 3.88086C1.7952 3.64976 2.05752 3.50304 2.52796 3.39203C3.04473 3.27008 3.7204 3.21037 4.76447 3.12199ZM0 7.52493C0 5.28296 0 4.16198 0.729985 3.31713C0.766457 3.27491 0.815139 3.22194 0.854123 3.18204C1.63439 2.38339 2.64963 2.29744 4.68012 2.12555C5.56923 2.05028 6.52724 2 7.5 2C8.47276 2 9.43077 2.05028 10.3199 2.12555C12.3504 2.29744 13.3656 2.38339 14.1459 3.18204C14.1849 3.22194 14.2335 3.27491 14.27 3.31713C15 4.16198 15 5.28296 15 7.52493C15 9.74012 15 10.8477 14.2688 11.6929C14.2326 11.7348 14.1832 11.7885 14.1444 11.8281C13.3629 12.6269 12.3655 12.71 10.3709 12.8763C9.47971 12.9505 8.50782 13 7.5 13C6.49218 13 5.52028 12.9505 4.62915 12.8763C2.63446 12.71 1.63712 12.6269 0.855558 11.8281C0.816844 11.7885 0.767442 11.7348 0.731221 11.6929C0 10.8477 0 9.74012 0 7.52493ZM5.25 5.38264C5.25 5.20225 5.43522 5.08124 5.60041 5.15369L10.428 7.27105C10.6274 7.35853 10.6274 7.64147 10.428 7.72895L5.60041 9.84631C5.43522 9.91876 5.25 9.79775 5.25 9.61736V5.38264Z\",\n fill: \"#D10014\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })\n })\n ]\n });\n }\n return super.getShapeSVGJsx({});\n }\n};\nvar YouTubeShape = _YouTubeShape;\n__publicField(YouTubeShape, \"id\", \"youtube\");\n__publicField(YouTubeShape, \"defaultProps\", {\n id: \"youtube\",\n type: \"youtube\",\n parentId: \"page\",\n point: [0, 0],\n size: [853, 480],\n url: \"\"\n});\n__decorateClass([\n computed\n], YouTubeShape.prototype, \"embedId\", 1);\n__decorateClass([\n action\n], YouTubeShape.prototype, \"onYoutubeLinkChange\", 2);\n\n\/\/ src\/lib\/shapes\/TweetShape.tsx\nvar React65 = __toESM(require(\"react\"));\nvar import_jsx_runtime70 = require(\"react\/jsx-runtime\");\nvar TWITTER_REGEX = \/https?:\\\/\\\/twitter.com\\\/[0-9a-zA-Z_]{1,20}\\\/status\\\/([0-9]*)\/;\nvar _TweetShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"canFlip\", false);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"initialHeightCalculated\", true);\n __publicField(this, \"getInnerHeight\", null);\n __publicField(this, \"onTwitterLinkChange\", (url) => {\n this.update({ url, size: _TweetShape.defaultProps.size });\n });\n __publicField(this, \"ReactComponent\", observer(({ events, isErasing, isEditing, isSelected }) => {\n const {\n renderers: { Tweet }\n } = React65.useContext(LogseqContext);\n const app = useApp();\n const cpRefContainer = React65.useRef(null);\n const [, innerHeight] = this.useComponentSize(cpRefContainer);\n React65.useEffect(() => {\n var _a3, _b;\n const latestInnerHeight = (_b = (_a3 = this.getInnerHeight) == null ? void 0 : _a3.call(this)) != null ? _b : innerHeight;\n const newHeight = latestInnerHeight;\n if (innerHeight && Math.abs(newHeight - this.props.size[1]) > 1) {\n this.update({\n size: [this.props.size[0], newHeight]\n });\n app.persist(true);\n }\n }, [innerHeight]);\n React65.useEffect(() => {\n if (!this.initialHeightCalculated) {\n setTimeout(() => {\n this.onResetBounds();\n app.persist(true);\n });\n }\n }, [this.initialHeightCalculated]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"div\", {\n className: \"rounded-xl w-full h-full relative shadow-xl tl-tweet-container\",\n style: {\n pointerEvents: isEditing || app.readOnly ? \"all\" : \"none\",\n userSelect: \"none\"\n },\n children: this.embedId ? \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"div\", {\n ref: cpRefContainer,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(Tweet, {\n tweetId: this.embedId\n })\n }) : null\n })\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n __publicField(this, \"onResetBounds\", (info) => {\n const height = this.getAutoResizeHeight();\n if (height !== null && Math.abs(height - this.props.size[1]) > 1) {\n this.update({\n size: [this.props.size[0], height]\n });\n this.initialHeightCalculated = true;\n }\n return this;\n });\n __publicField(this, \"onResize\", (initialProps, info) => {\n var _a3;\n const {\n bounds,\n rotation,\n scale: [scaleX, scaleY]\n } = info;\n const nextScale = [...this.scale];\n if (scaleX < 0)\n nextScale[0] *= -1;\n if (scaleY < 0)\n nextScale[1] *= -1;\n const height = (_a3 = this.getAutoResizeHeight()) != null ? _a3 : bounds.height;\n return this.update({\n point: [bounds.minX, bounds.minY],\n size: [Math.max(1, bounds.width), Math.max(1, height)],\n scale: nextScale,\n rotation\n });\n });\n __publicField(this, \"validateProps\", (props) => {\n if (props.size !== void 0) {\n props.size[0] = Math.min(Math.max(props.size[0], 300), 550);\n props.size[1] = Math.max(props.size[1], 1);\n }\n return withClampedStyles(this, props);\n });\n }\n get embedId() {\n var _a3, _b;\n const url = this.props.url;\n const match = url.match(TWITTER_REGEX);\n const embedId = (_b = (_a3 = match == null ? void 0 : match[1]) != null ? _a3 : url) != null ? _b : \"\";\n return embedId;\n }\n useComponentSize(ref, selector = \"\") {\n const [size, setSize] = React65.useState([0, 0]);\n const app = useApp();\n React65.useEffect(() => {\n if (ref == null ? void 0 : ref.current) {\n const el = selector ? ref.current.querySelector(selector) : ref.current;\n if (el) {\n const updateSize = () => {\n const { width, height } = el.getBoundingClientRect();\n const bound = src_default.div([width, height], app.viewport.camera.zoom);\n setSize(bound);\n return bound;\n };\n updateSize();\n this.getInnerHeight = () => updateSize()[1];\n const resizeObserver = new ResizeObserver(() => {\n updateSize();\n });\n resizeObserver.observe(el);\n return () => {\n resizeObserver.disconnect();\n };\n }\n }\n return () => {\n };\n }, [ref, selector]);\n return size;\n }\n getAutoResizeHeight() {\n if (this.getInnerHeight) {\n return this.getInnerHeight();\n }\n return null;\n }\n getShapeSVGJsx() {\n const bounds = this.getBounds();\n const embedId = this.embedId;\n if (embedId) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsxs)(\"g\", {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"rect\", {\n width: bounds.width,\n height: bounds.height,\n fill: \"#15202b\",\n rx: 8,\n ry: 8\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"svg\", {\n x: bounds.width \/ 4,\n y: bounds.height \/ 4,\n width: bounds.width \/ 2,\n height: bounds.height \/ 2,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime70.jsx)(\"path\", {\n d: \"m13.464 4.4401c0.0091 0.13224 0.0091 0.26447 0.0091 0.39793 0 4.0664-3.0957 8.7562-8.7562 8.7562v-0.0024c-1.6721 0.0024-3.3095-0.47658-4.7172-1.3797 0.24314 0.02925 0.48751 0.04387 0.73248 0.04448 1.3857 0.0013 2.7319-0.46374 3.8221-1.3199-1.3169-0.024981-2.4717-0.8836-2.8751-2.1371 0.4613 0.08897 0.93662 0.070688 1.3894-0.053016-1.4357-0.29007-2.4686-1.5515-2.4686-3.0165v-0.039001c0.42779 0.23827 0.90676 0.37051 1.3967 0.38513-1.3522-0.90372-1.769-2.7026-0.95247-4.1091 1.5625 1.9226 3.8678 3.0914 6.3425 3.2151-0.24802-1.0689 0.090798-2.1889 0.89031-2.9403 1.2395-1.1651 3.1889-1.1054 4.3541 0.13346 0.68921-0.13589 1.3498-0.38879 1.9543-0.74711-0.22974 0.71237-0.71054 1.3175-1.3528 1.702 0.60999-0.071907 1.206-0.23522 1.7672-0.48446-0.41316 0.61913-0.93358 1.1584-1.5356 1.5942z\",\n fill: \"#1d9bf0\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })\n })\n ]\n });\n }\n return super.getShapeSVGJsx({});\n }\n};\nvar TweetShape = _TweetShape;\n__publicField(TweetShape, \"id\", \"tweet\");\n__publicField(TweetShape, \"defaultProps\", {\n id: \"tweet\",\n type: \"tweet\",\n parentId: \"page\",\n point: [0, 0],\n size: [331, 290],\n url: \"\"\n});\n__decorateClass([\n computed\n], TweetShape.prototype, \"embedId\", 1);\n__decorateClass([\n action\n], TweetShape.prototype, \"onTwitterLinkChange\", 2);\n\n\/\/ src\/lib\/shapes\/PdfShape.tsx\nvar React66 = __toESM(require(\"react\"));\nvar import_jsx_runtime71 = require(\"react\/jsx-runtime\");\nvar PdfShape = class extends TLBoxShape {\n constructor() {\n super(...arguments);\n __publicField(this, \"frameRef\", React66.createRef());\n __publicField(this, \"canChangeAspectRatio\", true);\n __publicField(this, \"canFlip\", true);\n __publicField(this, \"canEdit\", true);\n __publicField(this, \"ReactComponent\", observer(({ events, asset, isErasing, isEditing }) => {\n const ref = React66.useRef(null);\n const { handlers } = React66.useContext(LogseqContext);\n const app = useApp();\n const isMoving = useCameraMovingRef();\n return \/* @__PURE__ *\/ (0, import_jsx_runtime71.jsx)(HTMLContainer, __spreadProps(__spreadValues({\n style: {\n overflow: \"hidden\",\n pointerEvents: \"all\",\n opacity: isErasing ? 0.2 : 1\n }\n }, events), {\n children: asset ? \/* @__PURE__ *\/ (0, import_jsx_runtime71.jsx)(\"embed\", {\n src: handlers ? handlers.inflateAsset(asset.src).url : asset.src,\n className: \"relative tl-pdf-container\",\n onWheelCapture: stop,\n onPointerDown: stop,\n onPointerUp: stop,\n style: {\n width: \"100%\",\n height: \"100%\",\n pointerEvents: !isMoving && isEditing ? \"all\" : \"none\"\n }\n }) : null\n }));\n }));\n __publicField(this, \"ReactIndicator\", observer(() => {\n const {\n props: {\n size: [w4, h4],\n isLocked\n }\n } = this;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime71.jsx)(\"rect\", {\n width: w4,\n height: h4,\n fill: \"transparent\",\n rx: 8,\n ry: 8,\n strokeDasharray: isLocked ? \"8 2\" : \"undefined\"\n });\n }));\n }\n};\n__publicField(PdfShape, \"id\", \"pdf\");\n__publicField(PdfShape, \"defaultProps\", {\n id: \"pdf\",\n type: \"pdf\",\n parentId: \"page\",\n point: [0, 0],\n size: [595, 842],\n assetId: \"\"\n});\n\n\/\/ src\/lib\/shapes\/DotShape.tsx\nvar import_jsx_runtime72 = require(\"react\/jsx-runtime\");\n\n\/\/ src\/lib\/shapes\/index.ts\nvar shapes = [\n BoxShape,\n EllipseShape,\n HighlighterShape,\n ImageShape,\n VideoShape,\n LineShape,\n PencilShape,\n PolygonShape,\n TextShape,\n YouTubeShape,\n TweetShape,\n IFrameShape,\n HTMLShape,\n PdfShape,\n LogseqPortalShape,\n GroupShape\n];\n\n\/\/ src\/lib\/tools\/BoxTool.tsx\nvar BoxTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", BoxShape);\n }\n};\n__publicField(BoxTool, \"id\", \"box\");\n__publicField(BoxTool, \"shortcut\", \"whiteboard\/rectangle\");\n\n\/\/ src\/lib\/tools\/EllipseTool.tsx\nvar EllipseTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", EllipseShape);\n }\n};\n__publicField(EllipseTool, \"id\", \"ellipse\");\n__publicField(EllipseTool, \"shortcut\", \"whiteboard\/ellipse\");\n\n\/\/ src\/lib\/tools\/EraseTool.tsx\nvar NuEraseTool = class extends TLEraseTool {\n};\n__publicField(NuEraseTool, \"id\", \"erase\");\n__publicField(NuEraseTool, \"shortcut\", \"whiteboard\/eraser\");\n\n\/\/ src\/lib\/tools\/HighlighterTool.tsx\nvar HighlighterTool = class extends TLDrawTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", HighlighterShape);\n __publicField(this, \"simplify\", true);\n __publicField(this, \"simplifyTolerance\", 0.618);\n }\n};\n__publicField(HighlighterTool, \"id\", \"highlighter\");\n__publicField(HighlighterTool, \"shortcut\", \"whiteboard\/highlighter\");\n\n\/\/ src\/lib\/tools\/LineTool.tsx\nvar LineTool = class extends TLLineTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", LineShape);\n }\n};\n__publicField(LineTool, \"id\", \"line\");\n__publicField(LineTool, \"shortcut\", \"whiteboard\/connector\");\n\n\/\/ src\/lib\/tools\/PencilTool.tsx\nvar PencilTool = class extends TLDrawTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", PencilShape);\n __publicField(this, \"simplify\", false);\n }\n};\n__publicField(PencilTool, \"id\", \"pencil\");\n__publicField(PencilTool, \"shortcut\", \"whiteboard\/pencil\");\n\n\/\/ src\/lib\/tools\/PolygonTool.tsx\nvar PolygonTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", PolygonShape);\n }\n};\n__publicField(PolygonTool, \"id\", \"polygon\");\n\n\/\/ src\/lib\/tools\/TextTool.tsx\nvar TextTool = class extends TLTextTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", TextShape);\n }\n};\n__publicField(TextTool, \"id\", \"text\");\n__publicField(TextTool, \"shortcut\", \"whiteboard\/text\");\n\n\/\/ src\/lib\/tools\/YouTubeTool.tsx\nvar YouTubeTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", YouTubeShape);\n }\n};\n__publicField(YouTubeTool, \"id\", \"youtube\");\n\n\/\/ src\/lib\/tools\/LogseqPortalTool\/states\/CreatingState.tsx\nvar CreatingState6 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"creatingShape\");\n __publicField(this, \"offset\", [0, 0]);\n __publicField(this, \"onEnter\", () => {\n this.app.history.pause();\n transaction(() => {\n let point = src_default.sub(this.app.inputs.originPoint, this.offset);\n if (this.app.settings.snapToGrid) {\n point = src_default.snap(point, GRID_SIZE);\n }\n const shape = new LogseqPortalShape({\n id: uniqueId(),\n parentId: this.app.currentPage.id,\n point,\n size: LogseqPortalShape.defaultProps.size,\n fill: this.app.settings.color,\n stroke: this.app.settings.color\n });\n this.creatingShape = shape;\n this.app.currentPage.addShapes(shape);\n this.app.setEditingShape(shape);\n this.app.setSelectedShapes([shape]);\n });\n });\n __publicField(this, \"onPointerDown\", (info) => {\n switch (info.type) {\n case \"shape\" \/* Shape *\/: {\n if (info.shape === this.creatingShape)\n return;\n this.app.selectTool(\"select\");\n break;\n }\n case \"selection\" \/* Selection *\/: {\n break;\n }\n case \"handle\" \/* Handle *\/: {\n break;\n }\n case \"canvas\" \/* Canvas *\/: {\n if (!info.order) {\n this.app.selectTool(\"select\");\n }\n break;\n }\n }\n });\n __publicField(this, \"onExit\", () => {\n var _a3;\n if (!this.creatingShape)\n return;\n this.app.history.resume();\n if ((_a3 = this.creatingShape) == null ? void 0 : _a3.props.pageId) {\n this.app.setSelectedShapes([this.creatingShape.id]);\n } else {\n this.app.deleteShapes([this.creatingShape.id]);\n this.app.setEditingShape();\n }\n this.creatingShape = void 0;\n });\n }\n};\n__publicField(CreatingState6, \"id\", \"creating\");\n\n\/\/ src\/lib\/tools\/LogseqPortalTool\/states\/IdleState.tsx\nvar IdleState9 = class extends TLToolState {\n constructor() {\n super(...arguments);\n __publicField(this, \"cursor\", \"crosshair\" \/* Cross *\/);\n __publicField(this, \"onPointerDown\", (e2) => {\n this.tool.transition(\"creating\");\n });\n }\n};\n__publicField(IdleState9, \"id\", \"idle\");\n\n\/\/ src\/lib\/tools\/LogseqPortalTool\/LogseqPortalTool.tsx\nvar LogseqPortalTool = class extends TLTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", LogseqPortalShape);\n __publicField(this, \"onPinch\", (info) => {\n this.app.viewport.pinchZoom(info.point, info.delta, info.delta[2]);\n });\n }\n};\n__publicField(LogseqPortalTool, \"id\", \"logseq-portal\");\n__publicField(LogseqPortalTool, \"shortcut\", \"whiteboard\/portal\");\n__publicField(LogseqPortalTool, \"states\", [IdleState9, CreatingState6]);\n__publicField(LogseqPortalTool, \"initial\", \"idle\");\n\n\/\/ src\/lib\/tools\/HTMLTool.tsx\nvar HTMLTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", HTMLShape);\n }\n};\n__publicField(HTMLTool, \"id\", \"youtube\");\n\n\/\/ src\/lib\/tools\/IFrameTool.tsx\nvar IFrameTool = class extends TLBoxTool {\n constructor() {\n super(...arguments);\n __publicField(this, \"Shape\", IFrameShape);\n }\n};\n__publicField(IFrameTool, \"id\", \"iframe\");\n\n\/\/ src\/lib\/preview-manager.tsx\nvar import_server = __toESM(require(\"react-dom\/server\"));\nvar import_jsx_runtime73 = require(\"react\/jsx-runtime\");\nvar SVG_EXPORT_PADDING = 16;\nvar ShapesMap = new Map(shapes.map((shape) => [shape.id, shape]));\nvar getShapeClass = (type) => {\n if (!type)\n throw Error(\"No shape type provided.\");\n const Shape5 = ShapesMap.get(type);\n if (!Shape5)\n throw Error(`Could not find shape class for ${type}`);\n return Shape5;\n};\nvar PreviewManager = class {\n constructor(serializedApp) {\n __publicField(this, \"shapes\");\n __publicField(this, \"pageId\");\n __publicField(this, \"assets\");\n if (serializedApp) {\n this.load(serializedApp);\n }\n }\n load(snapshot) {\n var _a3;\n const page = (_a3 = snapshot == null ? void 0 : snapshot.pages) == null ? void 0 : _a3[0];\n this.pageId = page == null ? void 0 : page.id;\n this.assets = snapshot.assets;\n this.shapes = page == null ? void 0 : page.shapes.map((s4) => {\n const ShapeClass = getShapeClass(s4.type);\n return new ShapeClass(s4);\n }).filter((s4) => s4.type !== \"group\");\n }\n generatePreviewJsx(viewport, ratio) {\n var _a3, _b;\n const allBounds = [...((_a3 = this.shapes) != null ? _a3 : []).map((s4) => s4.getRotatedBounds())];\n const vBounds = viewport == null ? void 0 : viewport.currentView;\n if (vBounds) {\n allBounds.push(vBounds);\n }\n let commonBounds = BoundsUtils.getCommonBounds(allBounds);\n if (!commonBounds) {\n return null;\n }\n commonBounds = BoundsUtils.expandBounds(commonBounds, SVG_EXPORT_PADDING);\n commonBounds = ratio ? BoundsUtils.ensureRatio(commonBounds, ratio) : commonBounds;\n const translatePoint = (p4) => {\n return [(p4[0] - commonBounds.minX).toFixed(2), (p4[1] - commonBounds.minY).toFixed(2)];\n };\n const [vx, vy] = vBounds ? translatePoint([vBounds.minX, vBounds.minY]) : [0, 0];\n const svgElement = commonBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsxs)(\"svg\", {\n xmlns: \"http:\/\/www.w3.org\/2000\/svg\",\n \"data-common-bound-x\": commonBounds.minX.toFixed(2),\n \"data-common-bound-y\": commonBounds.minY.toFixed(2),\n \"data-common-bound-width\": commonBounds.width.toFixed(2),\n \"data-common-bound-height\": commonBounds.height.toFixed(2),\n viewBox: [0, 0, commonBounds.width, commonBounds.height].join(\" \"),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"defs\", {\n children: vBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"rect\", {\n id: this.pageId + \"-camera-rect\",\n transform: `translate(${vx}, ${vy})`,\n width: vBounds.width,\n height: vBounds.height\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsxs)(\"mask\", {\n id: this.pageId + \"-camera-mask\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"rect\", {\n width: commonBounds.width,\n height: commonBounds.height,\n fill: \"white\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"use\", {\n href: `#${this.pageId}-camera-rect`,\n fill: \"black\"\n })\n ]\n })\n ]\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"g\", {\n id: this.pageId + \"-preview-shapes\",\n children: (_b = this.shapes) == null ? void 0 : _b.map((s4) => {\n var _a4, _b2;\n const {\n bounds,\n props: { rotation }\n } = s4;\n const [tx, ty] = translatePoint([bounds.minX, bounds.minY]);\n const r4 = +(((rotation != null ? rotation : 0) + ((_a4 = bounds.rotation) != null ? _a4 : 0)) * 180 \/ Math.PI).toFixed(2);\n const [rdx, rdy] = [(bounds.width \/ 2).toFixed(2), (bounds.height \/ 2).toFixed(2)];\n const transformArr = [`translate(${tx}, ${ty})`, `rotate(${r4}, ${rdx}, ${rdy})`];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"g\", {\n transform: transformArr.join(\" \"),\n children: s4.getShapeSVGJsx({\n assets: (_b2 = this.assets) != null ? _b2 : []\n })\n }, s4.id);\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"rect\", {\n mask: vBounds ? `url(#${this.pageId}-camera-mask)` : \"\",\n width: commonBounds.width,\n height: commonBounds.height,\n fill: \"transparent\"\n }),\n vBounds && \/* @__PURE__ *\/ (0, import_jsx_runtime73.jsx)(\"use\", {\n id: \"minimap-camera-rect\",\n \"data-x\": vx,\n \"data-y\": vy,\n \"data-width\": vBounds.width,\n \"data-height\": vBounds.height,\n href: `#${this.pageId}-camera-rect`,\n fill: \"transparent\",\n stroke: \"red\",\n strokeWidth: 4 \/ viewport.camera.zoom\n })\n ]\n });\n return svgElement;\n }\n exportAsSVG(ratio) {\n const svgElement = this.generatePreviewJsx(void 0, ratio);\n return svgElement ? import_server.default.renderToString(svgElement) : \"\";\n }\n};\nfunction generateSVGFromModel(serializedApp, ratio = 4 \/ 3) {\n const preview = new PreviewManager(serializedApp);\n return preview.exportAsSVG(ratio);\n}\nfunction generateJSXFromModel(serializedApp, ratio = 4 \/ 3) {\n const preview = new PreviewManager(serializedApp);\n return preview.generatePreviewJsx(void 0, ratio);\n}\n\n\/\/ src\/components\/inputs\/TextInput.tsx\nvar React67 = __toESM(require(\"react\"));\nvar import_jsx_runtime74 = require(\"react\/jsx-runtime\");\nvar TextInput = React67.forwardRef(\n (_a3, ref) => {\n var _b = _a3, { autoResize = true, value, className } = _b, rest = __objRest(_b, [\"autoResize\", \"value\", \"className\"]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsx)(\"div\", {\n className: \"tl-input\" + (className ? \" \" + className : \"\"),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsxs)(\"div\", {\n className: \"tl-input-sizer\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsx)(\"div\", {\n className: \"tl-input-hidden\",\n children: value\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime74.jsx)(\"input\", __spreadValues({\n ref,\n value,\n className: \"tl-text-input\",\n type: \"text\"\n }, rest))\n ]\n })\n });\n }\n);\n\n\/\/ src\/components\/QuickSearch\/QuickSearch.tsx\nvar import_jsx_runtime75 = require(\"react\/jsx-runtime\");\nvar LogseqTypeTag = ({\n type,\n active\n}) => {\n const nameMapping = {\n B: \"block\",\n P: \"page\",\n WP: \"whiteboard\",\n BA: \"new-block\",\n PA: \"new-page\",\n WA: \"new-whiteboard\",\n BS: \"block-search\",\n PS: \"page-search\"\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"span\", {\n className: \"tl-type-tag\",\n \"data-active\": active,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"i\", {\n className: `tie tie-${nameMapping[type]}`\n })\n });\n};\nfunction escapeRegExp(text) {\n return text.replace(\/[-[\\]{}()*+?.,\\\\^$|#\\s]\/g, \"\\\\$&\");\n}\nvar highlightedJSX = (input, keyword) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"span\", {\n children: input.split(new RegExp(`(${escapeRegExp(keyword)})`, \"gi\")).map((part, index3) => {\n if (index3 % 2 === 1) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"mark\", {\n className: \"tl-highlighted\",\n children: part\n });\n }\n return part;\n }).map((frag, idx) => \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(import_react86.default.Fragment, {\n children: frag\n }, idx))\n });\n};\nvar useSearch = (q2, searchFilter) => {\n const { handlers } = import_react86.default.useContext(LogseqContext);\n const [results, setResults] = import_react86.default.useState(null);\n const dq = useDebouncedValue(q2, 200);\n import_react86.default.useEffect(() => {\n let canceled = false;\n if (dq.length > 0) {\n const filter2 = { \"pages?\": true, \"blocks?\": true, \"files?\": false };\n if (searchFilter === \"B\") {\n filter2[\"pages?\"] = false;\n } else if (searchFilter === \"P\") {\n filter2[\"blocks?\"] = false;\n }\n handlers.search(dq, filter2).then((_results) => {\n if (!canceled) {\n setResults(_results);\n }\n });\n } else {\n setResults(null);\n }\n return () => {\n canceled = true;\n };\n }, [dq, handlers == null ? void 0 : handlers.search]);\n return results;\n};\nvar LogseqQuickSearch = observer(\n ({ className, style, placeholder: placeholder2, onChange, onBlur, onAddBlock }) => {\n const [q2, setQ] = import_react86.default.useState(LogseqPortalShape.defaultSearchQuery);\n const [searchFilter, setSearchFilter] = import_react86.default.useState(\n LogseqPortalShape.defaultSearchFilter\n );\n const rInput = import_react86.default.useRef(null);\n const { handlers, renderers } = import_react86.default.useContext(LogseqContext);\n const t2 = handlers.t;\n const finishSearching = import_react86.default.useCallback((id3) => {\n var _a3;\n setTimeout(() => onChange(id3));\n (_a3 = rInput.current) == null ? void 0 : _a3.blur();\n if (id3) {\n LogseqPortalShape.defaultSearchQuery = \"\";\n LogseqPortalShape.defaultSearchFilter = null;\n }\n }, []);\n const handleAddBlock = import_react86.default.useCallback(\n (content) => {\n const uuid = handlers == null ? void 0 : handlers.addNewBlock(content);\n if (uuid) {\n finishSearching(uuid);\n onAddBlock == null ? void 0 : onAddBlock(uuid);\n }\n return uuid;\n },\n [onAddBlock]\n );\n const optionsWrapperRef = import_react86.default.useRef(null);\n const [focusedOptionIdx, setFocusedOptionIdx] = import_react86.default.useState(0);\n const searchResult = useSearch(q2, searchFilter);\n const [prefixIcon, setPrefixIcon] = import_react86.default.useState(\"circle-plus\");\n const [showPanel, setShowPanel] = import_react86.default.useState(false);\n import_react86.default.useEffect(() => {\n setTimeout(() => {\n var _a3;\n (_a3 = rInput.current) == null ? void 0 : _a3.focus();\n });\n }, [searchFilter]);\n import_react86.default.useEffect(() => {\n LogseqPortalShape.defaultSearchQuery = q2;\n LogseqPortalShape.defaultSearchFilter = searchFilter;\n }, [q2, searchFilter]);\n const options = import_react86.default.useMemo(() => {\n var _a3;\n const options2 = [];\n const Breadcrumb = renderers == null ? void 0 : renderers.Breadcrumb;\n if (!Breadcrumb || !handlers) {\n return [];\n }\n if (onAddBlock) {\n options2.push({\n actionIcon: \"circle-plus\",\n onChosen: () => {\n return !!handleAddBlock(q2);\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n active: true,\n type: \"BA\"\n }),\n q2.length > 0 ? \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-block\")\n }),\n q2\n ]\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-block-no-colon\")\n })\n ]\n })\n });\n }\n if (!((_a3 = searchResult == null ? void 0 : searchResult.pages) == null ? void 0 : _a3.some((p4) => p4.toLowerCase() === q2.toLowerCase())) && q2) {\n options2.push(\n {\n actionIcon: \"circle-plus\",\n onChosen: () => {\n finishSearching(q2);\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n active: true,\n type: \"PA\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-page\")\n }),\n q2\n ]\n })\n },\n {\n actionIcon: \"circle-plus\",\n onChosen: () => {\n handlers == null ? void 0 : handlers.addNewWhiteboard(q2);\n finishSearching(q2);\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n active: true,\n type: \"WA\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"strong\", {\n children: t2(\"whiteboard\/new-whiteboard\")\n }),\n q2\n ]\n })\n }\n );\n }\n if (q2.length === 0 && searchFilter === null) {\n options2.push(\n {\n actionIcon: \"search\",\n onChosen: () => {\n setSearchFilter(\"B\");\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: \"BS\"\n }),\n t2(\"whiteboard\/search-only-blocks\")\n ]\n })\n },\n {\n actionIcon: \"search\",\n onChosen: () => {\n setSearchFilter(\"P\");\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: \"PS\"\n }),\n t2(\"whiteboard\/search-only-pages\")\n ]\n })\n }\n );\n }\n if ((!searchFilter || searchFilter === \"P\") && searchResult && searchResult.pages) {\n options2.push(\n ...searchResult.pages.map((page) => {\n return {\n actionIcon: \"search\",\n onChosen: () => {\n finishSearching(page);\n return true;\n },\n element: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: handlers.isWhiteboardPage(page) ? \"WP\" : \"P\"\n }),\n highlightedJSX(page, q2)\n ]\n })\n };\n })\n );\n }\n if ((!searchFilter || searchFilter === \"B\") && searchResult && searchResult.blocks) {\n options2.push(\n ...searchResult.blocks.filter((block) => block.content && block.uuid).map(({ content, uuid }) => {\n const block = handlers.queryBlockByUUID(uuid);\n return {\n actionIcon: \"search\",\n onChosen: () => {\n var _a4, _b, _c;\n if (block) {\n finishSearching(uuid);\n (_c = (_b = (_a4 = window.logseq) == null ? void 0 : _a4.api) == null ? void 0 : _b.set_blocks_id) == null ? void 0 : _c.call(_b, [uuid]);\n return true;\n }\n return false;\n },\n element: block ? \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: \"B\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-option-breadcrumb\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(Breadcrumb, {\n blockId: uuid\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-option-placeholder\"\n }),\n highlightedJSX(content, q2)\n ]\n })\n ]\n }) : \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-option-row\",\n children: t2(\"whiteboard\/cache-outdated\")\n })\n };\n })\n );\n }\n return options2;\n }, [q2, searchFilter, searchResult, renderers == null ? void 0 : renderers.Breadcrumb, handlers]);\n import_react86.default.useEffect(() => {\n const keydownListener = (e2) => {\n var _a3, _b;\n let newIndex = focusedOptionIdx;\n if (e2.key === \"ArrowDown\") {\n newIndex = Math.min(options.length - 1, focusedOptionIdx + 1);\n } else if (e2.key === \"ArrowUp\") {\n newIndex = Math.max(0, focusedOptionIdx - 1);\n } else if (e2.key === \"Enter\") {\n (_a3 = options[focusedOptionIdx]) == null ? void 0 : _a3.onChosen();\n e2.stopPropagation();\n e2.preventDefault();\n } else if (e2.key === \"Backspace\" && q2.length === 0) {\n setSearchFilter(null);\n } else if (e2.key === \"Escape\") {\n finishSearching(\"\");\n }\n if (newIndex !== focusedOptionIdx) {\n const option = options[newIndex];\n setFocusedOptionIdx(newIndex);\n setPrefixIcon(option.actionIcon);\n e2.stopPropagation();\n e2.preventDefault();\n const optionElement = (_b = optionsWrapperRef.current) == null ? void 0 : _b.querySelector(\n \".tl-quick-search-option:nth-child(\" + (newIndex + 1) + \")\"\n );\n if (optionElement) {\n optionElement == null ? void 0 : optionElement.scrollIntoViewIfNeeded(false);\n }\n }\n };\n document.addEventListener(\"keydown\", keydownListener, true);\n return () => {\n document.removeEventListener(\"keydown\", keydownListener, true);\n };\n }, [options, focusedOptionIdx, q2]);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search \" + (className != null ? className : \"\"),\n style,\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(CircleButton, {\n icon: prefixIcon,\n onClick: () => {\n var _a3;\n (_a3 = options[focusedOptionIdx]) == null ? void 0 : _a3.onChosen();\n }\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-input-container\",\n children: [\n searchFilter && \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsxs)(\"div\", {\n className: \"tl-quick-search-input-filter\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(LogseqTypeTag, {\n type: searchFilter\n }),\n searchFilter === \"B\" ? \"Search blocks\" : \"Search pages\",\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n className: \"tl-quick-search-input-filter-remove\",\n onClick: () => setSearchFilter(null),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(TablerIcon, {\n name: \"x\"\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(TextInput, {\n ref: rInput,\n type: \"text\",\n value: q2,\n className: \"tl-quick-search-input\",\n placeholder: placeholder2 != null ? placeholder2 : \"Create or search your graph...\",\n onChange: (q3) => setQ(q3.target.value),\n onKeyDown: (e2) => {\n if (e2.key === \"Enter\") {\n finishSearching(q2);\n }\n e2.stopPropagation();\n },\n onFocus: () => {\n setShowPanel(true);\n },\n onBlur: () => {\n setShowPanel(false);\n onBlur == null ? void 0 : onBlur();\n }\n })\n ]\n }),\n options.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n onWheelCapture: (e2) => e2.stopPropagation(),\n className: \"tl-quick-search-options\",\n ref: optionsWrapperRef,\n style: {\n visibility: showPanel ? \"visible\" : \"hidden\",\n pointerEvents: showPanel ? \"all\" : \"none\"\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(cn, {\n style: { height: Math.min(Math.max(1, options.length), 12) * 40 },\n totalCount: options.length,\n itemContent: (index3) => {\n const { actionIcon, onChosen, element } = options[index3];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime75.jsx)(\"div\", {\n \"data-focused\": index3 === focusedOptionIdx,\n className: \"tl-quick-search-option\",\n tabIndex: 0,\n onMouseEnter: () => {\n setPrefixIcon(actionIcon);\n setFocusedOptionIdx(index3);\n },\n onPointerDownCapture: (e2) => {\n if (onChosen()) {\n e2.stopPropagation();\n e2.preventDefault();\n }\n },\n children: element\n }, index3);\n }\n })\n })\n ]\n });\n }\n);\n\n\/\/ src\/components\/inputs\/ShapeLinksInput.tsx\nvar import_jsx_runtime76 = require(\"react\/jsx-runtime\");\nfunction ShapeLinkItem({\n id: id3,\n type,\n onRemove,\n showContent\n}) {\n const app = useApp();\n const { handlers } = import_react88.default.useContext(LogseqContext);\n const t2 = handlers.t;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"tl-shape-links-panel-item color-level relative\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"whitespace-pre break-all overflow-hidden text-ellipsis inline-flex\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(BlockLink, {\n id: id3,\n showReferenceContent: showContent\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"flex-1\"\n }),\n handlers.getBlockPageName(id3) !== app.currentPage.name && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-page\"),\n type: \"button\",\n onClick: () => handlers == null ? void 0 : handlers.redirectToPage(id3),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: \"open-as-page\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-page-in-sidebar\"),\n type: \"button\",\n onClick: () => handlers == null ? void 0 : handlers.sidebarAddBlock(id3, type === \"B\" ? \"block\" : \"page\"),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: \"move-to-sidebar-right\"\n })\n }),\n onRemove && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Button, {\n className: \"tl-shape-links-panel-item-remove-button\",\n tooltip: t2(\"whiteboard\/remove-link\"),\n type: \"button\",\n onClick: onRemove,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: \"x\",\n className: \"!translate-y-0\"\n })\n })\n ]\n });\n}\nvar ShapeLinksInput = observer(function ShapeLinksInput2(_a3) {\n var _b = _a3, {\n pageId,\n portalType,\n shapeType,\n refs,\n side,\n onRefsChange\n } = _b, rest = __objRest(_b, [\n \"pageId\",\n \"portalType\",\n \"shapeType\",\n \"refs\",\n \"side\",\n \"onRefsChange\"\n ]);\n const {\n handlers: { t: t2 }\n } = import_react88.default.useContext(LogseqContext);\n const noOfLinks = refs.length + (pageId ? 1 : 0);\n const canAddLink = refs.length === 0;\n const addNewRef = (value) => {\n if (value && !refs.includes(value) && canAddLink) {\n onRefsChange([...refs, value]);\n }\n };\n const showReferencePanel = !!(pageId && portalType);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(PopoverButton, __spreadProps(__spreadValues({}, rest), {\n side,\n align: \"start\",\n alignOffset: -6,\n label: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(Tooltip, {\n content: t2(\"whiteboard\/link\"),\n sideOffset: 14,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"flex gap-1 relative items-center justify-center px-1\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n name: noOfLinks > 0 ? \"link\" : \"add-link\"\n }),\n noOfLinks > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"tl-shape-links-count\",\n children: noOfLinks\n })\n ]\n })\n }),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"color-level rounded-lg\",\n \"data-show-reference-panel\": showReferencePanel,\n children: [\n showReferencePanel && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"tl-shape-links-reference-panel\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"text-base inline-flex gap-1 items-center\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n className: \"opacity-50\",\n name: \"internal-link\"\n }),\n t2(\"whiteboard\/references\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(ShapeLinkItem, {\n type: portalType,\n id: pageId\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"tl-shape-links-panel color-level\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsxs)(\"div\", {\n className: \"text-base inline-flex gap-1 items-center\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(TablerIcon, {\n className: \"opacity-50\",\n name: \"add-link\"\n }),\n t2(\"whiteboard\/link-to-any-page-or-block\")\n ]\n }),\n canAddLink && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(LogseqQuickSearch, {\n style: {\n width: \"calc(100% - 46px)\",\n marginLeft: \"46px\"\n },\n placeholder: t2(\"whiteboard\/start-typing-to-search\"),\n onChange: addNewRef\n }),\n refs.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(\"div\", {\n className: \"flex flex-col items-stretch gap-2\",\n children: refs.map((ref, i4) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime76.jsx)(ShapeLinkItem, {\n id: ref,\n type: validUUID(ref) ? \"B\" : \"P\",\n onRemove: () => {\n onRefsChange(refs.filter((_2, j2) => i4 !== j2));\n },\n showContent: true\n }, ref);\n })\n })\n ]\n })\n ]\n })\n }));\n});\n\n\/\/ ..\/..\/node_modules\/@radix-ui\/react-toggle-group\/dist\/index.module.js\nvar import_react89 = __toESM(require(\"react\"));\nvar $6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [$6c1fd9e6a8969628$var$createToggleGroupContext, $6c1fd9e6a8969628$export$d1c7c4bcd9f26dd4] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME, [\n $d7bdfb9eb0fdf311$export$c7109489551a4f4\n]);\nvar $6c1fd9e6a8969628$var$useRovingFocusGroupScope = $d7bdfb9eb0fdf311$export$c7109489551a4f4();\nvar $6c1fd9e6a8969628$export$af3ec21f6cfb5e30 = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { type } = _a3, toggleGroupProps = __objRest(_a3, [\"type\"]);\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImplSingle, _extends2({}, singleProps, {\n ref: forwardedRef\n }));\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImplMultiple, _extends2({}, multipleProps, {\n ref: forwardedRef\n }));\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${$6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME}\\``);\n});\nvar [$6c1fd9e6a8969628$var$ToggleGroupValueProvider, $6c1fd9e6a8969628$var$useToggleGroupValueContext] = $6c1fd9e6a8969628$var$createToggleGroupContext($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME);\nvar $6c1fd9e6a8969628$var$ToggleGroupImplSingle = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { value: valueProp, defaultValue, onValueChange = () => {\n } } = _a3, toggleGroupSingleProps = __objRest(_a3, [\"value\", \"defaultValue\", \"onValueChange\"]);\n const [value, setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupValueProvider, {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: value ? [\n value\n ] : [],\n onItemActivate: setValue,\n onItemDeactivate: import_react89.default.useCallback(\n () => setValue(\"\"),\n [\n setValue\n ]\n )\n }, \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImpl, _extends2({}, toggleGroupSingleProps, {\n ref: forwardedRef\n })));\n});\nvar $6c1fd9e6a8969628$var$ToggleGroupImplMultiple = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { value: valueProp, defaultValue, onValueChange = () => {\n } } = _a3, toggleGroupMultipleProps = __objRest(_a3, [\"value\", \"defaultValue\", \"onValueChange\"]);\n const [value1 = [], setValue] = $71cd76cc60e0454e$export$6f32135080cb4c3({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const handleButtonActivate = import_react89.default.useCallback(\n (itemValue) => setValue(\n (prevValue = []) => [\n ...prevValue,\n itemValue\n ]\n ),\n [\n setValue\n ]\n );\n const handleButtonDeactivate = import_react89.default.useCallback(\n (itemValue) => setValue(\n (prevValue = []) => prevValue.filter(\n (value) => value !== itemValue\n )\n ),\n [\n setValue\n ]\n );\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupValueProvider, {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value: value1,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate\n }, \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupImpl, _extends2({}, toggleGroupMultipleProps, {\n ref: forwardedRef\n })));\n});\nvar [$6c1fd9e6a8969628$var$ToggleGroupContext, $6c1fd9e6a8969628$var$useToggleGroupContext] = $6c1fd9e6a8969628$var$createToggleGroupContext($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME);\nvar $6c1fd9e6a8969628$var$ToggleGroupImpl = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { __scopeToggleGroup, disabled = false, rovingFocus = true, orientation, dir, loop = true } = _a3, toggleGroupProps = __objRest(_a3, [\"__scopeToggleGroup\", \"disabled\", \"rovingFocus\", \"orientation\", \"dir\", \"loop\"]);\n const rovingFocusGroupScope = $6c1fd9e6a8969628$var$useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = $f631663db3294ace$export$b39126d51d94e6f3(dir);\n const commonProps = __spreadValues({\n role: \"group\",\n dir: direction\n }, toggleGroupProps);\n return \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupContext, {\n scope: __scopeToggleGroup,\n rovingFocus,\n disabled\n }, rovingFocus ? \/* @__PURE__ *\/ import_react89.default.createElement($d7bdfb9eb0fdf311$export$be92b6f5f03c0fe9, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n orientation,\n dir: direction,\n loop\n }), \/* @__PURE__ *\/ import_react89.default.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, commonProps, {\n ref: forwardedRef\n }))) : \/* @__PURE__ *\/ import_react89.default.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends2({}, commonProps, {\n ref: forwardedRef\n })));\n});\nvar $6c1fd9e6a8969628$var$ITEM_NAME = \"ToggleGroupItem\";\nvar $6c1fd9e6a8969628$export$b453109e13abe10b = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const valueContext = $6c1fd9e6a8969628$var$useToggleGroupValueContext($6c1fd9e6a8969628$var$ITEM_NAME, props.__scopeToggleGroup);\n const context = $6c1fd9e6a8969628$var$useToggleGroupContext($6c1fd9e6a8969628$var$ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = $6c1fd9e6a8969628$var$useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = __spreadProps(__spreadValues({}, props), {\n pressed,\n disabled\n });\n const ref = import_react89.default.useRef(null);\n return context.rovingFocus ? \/* @__PURE__ *\/ import_react89.default.createElement($d7bdfb9eb0fdf311$export$6d08773d2e66f8f2, _extends2({\n asChild: true\n }, rovingFocusGroupScope, {\n focusable: !disabled,\n active: pressed,\n ref\n }), \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupItemImpl, _extends2({}, commonProps, {\n ref: forwardedRef\n }))) : \/* @__PURE__ *\/ import_react89.default.createElement($6c1fd9e6a8969628$var$ToggleGroupItemImpl, _extends2({}, commonProps, {\n ref: forwardedRef\n }));\n});\nvar $6c1fd9e6a8969628$var$ToggleGroupItemImpl = \/* @__PURE__ *\/ import_react89.default.forwardRef((props, forwardedRef) => {\n const _a3 = props, { __scopeToggleGroup, value } = _a3, itemProps = __objRest(_a3, [\"__scopeToggleGroup\", \"value\"]);\n const valueContext = $6c1fd9e6a8969628$var$useToggleGroupValueContext($6c1fd9e6a8969628$var$ITEM_NAME, __scopeToggleGroup);\n const singleProps = {\n role: \"radio\",\n \"aria-checked\": props.pressed,\n \"aria-pressed\": void 0\n };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return \/* @__PURE__ *\/ import_react89.default.createElement($b3bbe2732c13b576$export$bea8ebba691c5813, _extends2({}, typeProps, itemProps, {\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed)\n valueContext.onItemActivate(value);\n else\n valueContext.onItemDeactivate(value);\n }\n }));\n});\nvar $6c1fd9e6a8969628$export$be92b6f5f03c0fe9 = $6c1fd9e6a8969628$export$af3ec21f6cfb5e30;\nvar $6c1fd9e6a8969628$export$6d08773d2e66f8f2 = $6c1fd9e6a8969628$export$b453109e13abe10b;\n\n\/\/ src\/components\/inputs\/ToggleGroupInput.tsx\nvar import_jsx_runtime77 = require(\"react\/jsx-runtime\");\nfunction ToggleGroupInput({ options, value, onValueChange }) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$be92b6f5f03c0fe9, {\n className: \"tl-toggle-group-input\",\n type: \"single\",\n value,\n onValueChange,\n children: options.map((option) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(Tooltip, {\n content: option.tooltip,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(\"div\", {\n className: \"inline-block\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$6d08773d2e66f8f2, {\n className: \"tl-toggle-group-input-button\",\n value: option.value,\n disabled: option.value === value,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(TablerIcon, {\n name: option.icon\n })\n })\n })\n }, option.value);\n })\n });\n}\nfunction ToggleGroupMultipleInput({\n options,\n value,\n onValueChange\n}) {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$be92b6f5f03c0fe9, {\n className: \"tl-toggle-group-input\",\n type: \"multiple\",\n value,\n onValueChange,\n children: options.map((option) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)($6c1fd9e6a8969628$export$6d08773d2e66f8f2, {\n className: \"tl-toggle-group-input-button\",\n value: option.value,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime77.jsx)(TablerIcon, {\n name: option.icon\n })\n }, option.value);\n })\n });\n}\n\n\/\/ src\/components\/ContextBar\/contextBarActionFactory.tsx\nvar import_jsx_runtime78 = require(\"react\/jsx-runtime\");\nvar contextBarActionTypes = [\n \"EditPdf\",\n \"LogseqPortalViewMode\",\n \"Geometry\",\n \"AutoResizing\",\n \"Swatch\",\n \"NoFill\",\n \"StrokeType\",\n \"ScaleLevel\",\n \"TextStyle\",\n \"YoutubeLink\",\n \"TwitterLink\",\n \"IFrameSource\",\n \"ArrowMode\",\n \"Links\"\n];\nvar singleShapeActions = [\n \"YoutubeLink\",\n \"TwitterLink\",\n \"IFrameSource\",\n \"Links\",\n \"EditPdf\"\n];\nvar contextBarActionMapping = \/* @__PURE__ *\/ new Map();\nvar shapeMapping = {\n \"logseq-portal\": [\"Swatch\", \"LogseqPortalViewMode\", \"ScaleLevel\", \"AutoResizing\", \"Links\"],\n youtube: [\"YoutubeLink\", \"Links\"],\n tweet: [\"TwitterLink\", \"Links\"],\n iframe: [\"IFrameSource\", \"Links\"],\n box: [\"Geometry\", \"TextStyle\", \"Swatch\", \"ScaleLevel\", \"NoFill\", \"StrokeType\", \"Links\"],\n ellipse: [\"Geometry\", \"TextStyle\", \"Swatch\", \"ScaleLevel\", \"NoFill\", \"StrokeType\", \"Links\"],\n polygon: [\"Geometry\", \"TextStyle\", \"Swatch\", \"ScaleLevel\", \"NoFill\", \"StrokeType\", \"Links\"],\n line: [\"TextStyle\", \"Swatch\", \"ScaleLevel\", \"ArrowMode\", \"Links\"],\n pencil: [\"Swatch\", \"Links\", \"ScaleLevel\"],\n highlighter: [\"Swatch\", \"Links\", \"ScaleLevel\"],\n text: [\"TextStyle\", \"Swatch\", \"ScaleLevel\", \"AutoResizing\", \"Links\"],\n html: [\"ScaleLevel\", \"AutoResizing\", \"Links\"],\n image: [\"Links\"],\n video: [\"Links\"],\n pdf: [\"EditPdf\", \"Links\"]\n};\nvar withFillShapes = Object.entries(shapeMapping).filter(([key, types]) => {\n return types.includes(\"NoFill\") && types.includes(\"Swatch\");\n}).map(([key]) => key);\nfunction filterShapeByAction(type) {\n const app = useApp();\n const unlockedSelectedShapes = app.selectedShapesArray.filter((s4) => !s4.props.isLocked);\n return unlockedSelectedShapes.filter((shape) => {\n var _a3;\n return (_a3 = shapeMapping[shape.props.type]) == null ? void 0 : _a3.includes(type);\n });\n}\nvar AutoResizingAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"AutoResizing\");\n const pressed = shapes2.every((s4) => s4.props.isAutoResizing);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/auto-resize\"),\n toggle: shapes2.every((s4) => s4.props.type === \"logseq-portal\"),\n className: \"tl-button\",\n pressed,\n onPressedChange: (v4) => {\n shapes2.forEach((s4) => {\n if (s4.props.type === \"logseq-portal\") {\n s4.update({\n isAutoResizing: v4\n });\n } else {\n s4.onResetBounds({ zoom: app.viewport.camera.zoom });\n }\n });\n app.persist();\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"dimensions\"\n })\n });\n});\nvar LogseqPortalViewModeAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"LogseqPortalViewMode\");\n const collapsed = shapes2.every((s4) => s4.collapsed);\n if (!collapsed && !shapes2.every((s4) => !s4.collapsed)) {\n return null;\n }\n const tooltip = \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"div\", {\n className: \"flex\",\n children: [\n collapsed ? t2(\"whiteboard\/expand\") : t2(\"whiteboard\/collapse\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(KeyboardShortcut, {\n action: collapsed ? \"editor\/expand-block-children\" : \"editor\/collapse-block-children\"\n })\n ]\n });\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip,\n toggle: shapes2.every((s4) => s4.props.type === \"logseq-portal\"),\n className: \"tl-button\",\n pressed: collapsed,\n onPressedChange: () => app.api.setCollapsed(!collapsed),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: collapsed ? \"object-expanded\" : \"object-compact\"\n })\n });\n});\nvar ScaleLevelAction = observer(() => {\n const {\n handlers: { isMobile }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"ScaleLevel\");\n const scaleLevel = new Set(shapes2.map((s4) => s4.scaleLevel)).size > 1 ? \"\" : shapes2[0].scaleLevel;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ScaleInput, {\n scaleLevel,\n compact: isMobile()\n });\n});\nvar IFrameSourceAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shape = filterShapeByAction(\"IFrameSource\")[0];\n const handleChange = import_react91.default.useCallback((e2) => {\n shape.onIFrameSourceChange(e2.target.value.trim().toLowerCase());\n app.persist();\n }, []);\n const handleReload = import_react91.default.useCallback(() => {\n shape.reload();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-3\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/reload\"),\n type: \"button\",\n onClick: handleReload,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"refresh\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TextInput, {\n title: t2(\"whiteboard\/website-url\"),\n className: \"tl-iframe-src\",\n value: `${shape.props.url}`,\n onChange: handleChange\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-website-url\"),\n type: \"button\",\n onClick: () => window.open(shape.props.url),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"external-link\"\n })\n })\n ]\n });\n});\nvar YoutubeLinkAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shape = filterShapeByAction(\"YoutubeLink\")[0];\n const handleChange = import_react91.default.useCallback((e2) => {\n shape.onYoutubeLinkChange(e2.target.value);\n app.persist();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-3\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TextInput, {\n title: t2(\"whiteboard\/youtube-url\"),\n className: \"tl-youtube-link\",\n value: `${shape.props.url}`,\n onChange: handleChange\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-youtube-url\"),\n type: \"button\",\n onClick: () => {\n var _a3, _b, _c;\n return (_c = (_b = (_a3 = window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.open_external_link) == null ? void 0 : _c.call(_b, shape.props.url);\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"external-link\"\n })\n })\n ]\n });\n});\nvar TwitterLinkAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shape = filterShapeByAction(\"TwitterLink\")[0];\n const handleChange = import_react91.default.useCallback((e2) => {\n shape.onTwitterLinkChange(e2.target.value);\n app.persist();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-3\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TextInput, {\n title: t2(\"whiteboard\/twitter-url\"),\n className: \"tl-twitter-link\",\n value: `${shape.props.url}`,\n onChange: handleChange\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/open-twitter-url\"),\n type: \"button\",\n onClick: () => {\n var _a3, _b, _c;\n return (_c = (_b = (_a3 = window.logseq) == null ? void 0 : _a3.api) == null ? void 0 : _b.open_external_link) == null ? void 0 : _c.call(_b, shape.props.url);\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"external-link\"\n })\n })\n ]\n });\n});\nvar EditPdfAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2, setCurrentPdf }\n } = import_react91.default.useContext(LogseqContext);\n const shape = app.selectedShapesArray[0];\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(Button, {\n tooltip: t2(\"whiteboard\/edit-pdf\"),\n type: \"button\",\n onClick: () => setCurrentPdf(app.assets[shape.props.assetId].src),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"edit\"\n })\n });\n});\nvar NoFillAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"NoFill\");\n const handleChange = import_react91.default.useCallback((v4) => {\n app.selectedShapesArray.forEach((s4) => s4.update({ noFill: v4 }));\n app.persist();\n }, []);\n const noFill = shapes2.every((s4) => s4.props.noFill);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/fill\"),\n className: \"tl-button\",\n pressed: noFill,\n onPressedChange: handleChange,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: noFill ? \"droplet-off\" : \"droplet\"\n })\n });\n});\nvar SwatchAction = observer(() => {\n const app = useApp();\n const shapes2 = filterShapeByAction(\"Swatch\");\n const handleSetColor = import_react91.default.useCallback((color2) => {\n app.selectedShapesArray.forEach((s4) => {\n s4.update({ fill: color2, stroke: color2 });\n });\n app.persist();\n }, []);\n const handleSetOpacity = import_react91.default.useCallback((opacity) => {\n app.selectedShapesArray.forEach((s4) => {\n s4.update({ opacity });\n });\n app.persist();\n }, []);\n const color = shapes2[0].props.noFill ? shapes2[0].props.stroke : shapes2[0].props.fill;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ColorInput, {\n popoverSide: \"top\",\n color,\n opacity: shapes2[0].props.opacity,\n setOpacity: handleSetOpacity,\n setColor: handleSetColor\n });\n});\nvar GeometryAction = observer(() => {\n const app = useApp();\n const handleSetGeometry = import_react91.default.useCallback((e2) => {\n const type = e2.currentTarget.dataset.tool;\n app.api.convertShapes(type);\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(GeometryTools, {\n popoverSide: \"top\",\n chevron: false,\n setGeometry: handleSetGeometry\n });\n});\nvar StrokeTypeAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"StrokeType\");\n const StrokeTypeOptions = [\n {\n value: \"line\",\n icon: \"circle\",\n tooltip: \"Solid\"\n },\n {\n value: \"dashed\",\n icon: \"circle-dashed\",\n tooltip: \"Dashed\"\n }\n ];\n const value = shapes2.every((s4) => s4.props.strokeType === \"dashed\") ? \"dashed\" : shapes2.every((s4) => s4.props.strokeType === \"line\") ? \"line\" : \"mixed\";\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleGroupInput, {\n title: t2(\"whiteboard\/stroke-type\"),\n options: StrokeTypeOptions,\n value,\n onValueChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n strokeType: v4\n });\n });\n app.persist();\n }\n });\n});\nvar ArrowModeAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"ArrowMode\");\n const StrokeTypeOptions = [\n {\n value: \"start\",\n icon: \"arrow-narrow-left\"\n },\n {\n value: \"end\",\n icon: \"arrow-narrow-right\"\n }\n ];\n const startValue = shapes2.every((s4) => {\n var _a3;\n return ((_a3 = s4.props.decorations) == null ? void 0 : _a3.start) === \"arrow\" \/* Arrow *\/;\n });\n const endValue = shapes2.every((s4) => {\n var _a3;\n return ((_a3 = s4.props.decorations) == null ? void 0 : _a3.end) === \"arrow\" \/* Arrow *\/;\n });\n const value = [startValue ? \"start\" : null, endValue ? \"end\" : null].filter(isNonNullable);\n const valueToDecorations = (value2) => {\n return {\n start: value2.includes(\"start\") ? \"arrow\" \/* Arrow *\/ : null,\n end: value2.includes(\"end\") ? \"arrow\" \/* Arrow *\/ : null\n };\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleGroupMultipleInput, {\n title: t2(\"whiteboard\/arrow-head\"),\n options: StrokeTypeOptions,\n value,\n onValueChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n decorations: valueToDecorations(v4)\n });\n });\n app.persist();\n }\n });\n});\nvar TextStyleAction = observer(() => {\n const app = useApp();\n const {\n handlers: { t: t2 }\n } = import_react91.default.useContext(LogseqContext);\n const shapes2 = filterShapeByAction(\"TextStyle\");\n const bold = shapes2.every((s4) => s4.props.fontWeight > 500);\n const italic = shapes2.every((s4) => s4.props.italic);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsxs)(\"span\", {\n className: \"flex gap-1\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/bold\"),\n className: \"tl-button\",\n pressed: bold,\n onPressedChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n fontWeight: v4 ? 700 : 400\n });\n shape.onResetBounds();\n });\n app.persist();\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"bold\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ToggleInput, {\n tooltip: t2(\"whiteboard\/italic\"),\n className: \"tl-button\",\n pressed: italic,\n onPressedChange: (v4) => {\n shapes2.forEach((shape) => {\n shape.update({\n italic: v4\n });\n shape.onResetBounds();\n });\n app.persist();\n },\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(TablerIcon, {\n name: \"italic\"\n })\n })\n ]\n });\n});\nvar LinksAction = observer(() => {\n var _a3;\n const app = useApp();\n const shape = app.selectedShapesArray[0];\n const handleChange = (refs) => {\n shape.update({ refs });\n app.persist();\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime78.jsx)(ShapeLinksInput, {\n onRefsChange: handleChange,\n refs: (_a3 = shape.props.refs) != null ? _a3 : [],\n shapeType: shape.props.type,\n side: \"right\",\n pageId: shape.props.type === \"logseq-portal\" ? shape.props.pageId : void 0,\n portalType: shape.props.type === \"logseq-portal\" ? shape.props.blockType : void 0\n });\n});\ncontextBarActionMapping.set(\"Geometry\", GeometryAction);\ncontextBarActionMapping.set(\"AutoResizing\", AutoResizingAction);\ncontextBarActionMapping.set(\"LogseqPortalViewMode\", LogseqPortalViewModeAction);\ncontextBarActionMapping.set(\"ScaleLevel\", ScaleLevelAction);\ncontextBarActionMapping.set(\"YoutubeLink\", YoutubeLinkAction);\ncontextBarActionMapping.set(\"TwitterLink\", TwitterLinkAction);\ncontextBarActionMapping.set(\"IFrameSource\", IFrameSourceAction);\ncontextBarActionMapping.set(\"NoFill\", NoFillAction);\ncontextBarActionMapping.set(\"Swatch\", SwatchAction);\ncontextBarActionMapping.set(\"StrokeType\", StrokeTypeAction);\ncontextBarActionMapping.set(\"ArrowMode\", ArrowModeAction);\ncontextBarActionMapping.set(\"TextStyle\", TextStyleAction);\ncontextBarActionMapping.set(\"Links\", LinksAction);\ncontextBarActionMapping.set(\"EditPdf\", EditPdfAction);\nvar getContextBarActionTypes = (type) => {\n var _a3;\n return ((_a3 = shapeMapping[type]) != null ? _a3 : []).filter(isNonNullable);\n};\nvar getContextBarActionsForShapes = (shapes2) => {\n const types = shapes2.map((s4) => s4.props.type);\n const actionTypes = new Set(shapes2.length > 0 ? getContextBarActionTypes(types[0]) : []);\n for (let i4 = 1; i4 < types.length && actionTypes.size > 0; i4++) {\n const otherActionTypes = getContextBarActionTypes(types[i4]);\n actionTypes.forEach((action2) => {\n if (!otherActionTypes.includes(action2)) {\n actionTypes.delete(action2);\n }\n });\n }\n if (shapes2.length > 1) {\n singleShapeActions.forEach((action2) => {\n if (actionTypes.has(action2)) {\n actionTypes.delete(action2);\n }\n });\n }\n return Array.from(actionTypes).sort((a5, b5) => contextBarActionTypes.indexOf(a5) - contextBarActionTypes.indexOf(b5)).map((action2) => contextBarActionMapping.get(action2));\n};\n\n\/\/ src\/components\/ContextBar\/ContextBar.tsx\nvar import_jsx_runtime79 = require(\"react\/jsx-runtime\");\nvar _ContextBar = ({ shapes: shapes2, offsets, hidden }) => {\n const app = useApp();\n const rSize = React71.useRef(null);\n const rContextBar = React71.useRef(null);\n React71.useLayoutEffect(() => {\n setTimeout(() => {\n const elm = rContextBar.current;\n if (!elm)\n return;\n const { offsetWidth, offsetHeight } = elm;\n rSize.current = [offsetWidth, offsetHeight];\n });\n });\n React71.useLayoutEffect(() => {\n var _a3;\n const elm = rContextBar.current;\n if (!elm)\n return;\n const size = (_a3 = rSize.current) != null ? _a3 : [0, 0];\n const [x4, y4] = getContextBarTranslation(size, offsets);\n elm.style.transform = `translateX(${x4}px) translateY(${y4}px)`;\n }, [offsets]);\n if (!app)\n return null;\n const Actions = getContextBarActionsForShapes(shapes2);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)(HTMLContainer, {\n centered: true,\n children: Actions.length > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)(\"div\", {\n ref: rContextBar,\n className: \"tl-toolbar tl-context-bar\",\n style: {\n visibility: hidden ? \"hidden\" : \"visible\",\n pointerEvents: hidden ? \"none\" : \"all\"\n },\n children: Actions.map((Action, idx) => \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsxs)(React71.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)(Action, {}),\n idx < Actions.length - 1 && \/* @__PURE__ *\/ (0, import_jsx_runtime79.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n })\n ]\n }, idx))\n })\n });\n};\nvar ContextBar = observer(_ContextBar);\n\n\/\/ src\/components\/ContextMenu\/ContextMenu.tsx\nvar React72 = __toESM(require(\"react\"));\nvar import_jsx_runtime80 = require(\"react\/jsx-runtime\");\nvar LSUI = window.LSUI;\nvar ContextMenu = observer(function ContextMenu2({\n children,\n collisionRef\n}) {\n var _a3, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n const app = useApp();\n const { handlers } = React72.useContext(LogseqContext);\n const t2 = handlers.t;\n const rContent = React72.useRef(null);\n const runAndTransition = (f4) => {\n f4();\n app.transition(\"select\");\n };\n const developerMode = React72.useMemo(() => {\n return isDev();\n }, []);\n return \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenu, {\n onOpenChange: (open) => {\n if (open && !app.isIn(\"select.contextMenu\")) {\n app.transition(\"select\").selectedTool.transition(\"contextMenu\");\n } else if (!open && app.isIn(\"select.contextMenu\")) {\n app.selectedTool.transition(\"idle\");\n }\n },\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuTrigger, {\n disabled: app.editingShape && Object.keys(app.editingShape).length !== 0,\n children\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuContent, {\n className: \"tl-menu tl-context-menu\",\n ref: rContent,\n onEscapeKeyDown: () => app.transition(\"select\"),\n collisionBoundary: collisionRef.current,\n asChild: true,\n tabIndex: -1,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(\"div\", {\n children: [\n ((_a3 = app.selectedShapes) == null ? void 0 : _a3.size) > 1 && !app.readOnly && ((_b = app.selectedShapesArray) == null ? void 0 : _b.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-button-row-wrap\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(\"div\", {\n className: \"tl-menu-button-row pb-0\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-left\"),\n onClick: () => runAndTransition(() => app.align(\"left\" \/* Left *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-left\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-center-horizontally\"),\n onClick: () => runAndTransition(() => app.align(\"centerHorizontal\" \/* CenterHorizontal *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-center\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-right\"),\n onClick: () => runAndTransition(() => app.align(\"right\" \/* Right *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-right\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/distribute-horizontally\"),\n onClick: () => runAndTransition(() => app.distribute(\"horizontal\" \/* Horizontal *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-distribute-vertical\"\n })\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(\"div\", {\n className: \"tl-menu-button-row pt-0\",\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-top\"),\n onClick: () => runAndTransition(() => app.align(\"top\" \/* Top *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-top\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-center-vertically\"),\n onClick: () => runAndTransition(() => app.align(\"centerVertical\" \/* CenterVertical *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-middle\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/align-bottom\"),\n onClick: () => runAndTransition(() => app.align(\"bottom\" \/* Bottom *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-align-bottom\"\n })\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)($89eedd556c436f6a$export$be92b6f5f03c0fe9, {\n className: \"tl-toolbar-separator\",\n orientation: \"vertical\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(Button, {\n tooltip: t2(\"whiteboard\/distribute-vertically\"),\n onClick: () => runAndTransition(() => app.distribute(\"vertical\" \/* Vertical *\/)),\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n name: \"layout-distribute-horizontal\"\n })\n })\n ]\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.packIntoRectangle),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"layout-grid\"\n }),\n t2(\"whiteboard\/pack-into-rectangle\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n })\n ]\n }),\n ((_c = app.selectedShapes) == null ? void 0 : _c.size) > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.zoomToSelection),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/zoom-to-fit\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/zoom-to-fit\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n })\n ]\n }),\n (app.selectedShapesArray.some((s4) => s4.type === \"group\" || app.getParentGroup(s4)) || app.selectedShapesArray.length > 1) && ((_d = app.selectedShapesArray) == null ? void 0 : _d.some((s4) => !s4.props.isLocked)) && !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n app.selectedShapesArray.some((s4) => s4.type === \"group\" || app.getParentGroup(s4)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.unGroup),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"ungroup\"\n }),\n t2(\"whiteboard\/ungroup\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/ungroup\"\n })\n ]\n }),\n app.selectedShapesArray.length > 1 && ((_e2 = app.selectedShapesArray) == null ? void 0 : _e2.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.doGroup),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"group\"\n }),\n t2(\"whiteboard\/group\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/group\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n })\n ]\n }),\n ((_f = app.selectedShapes) == null ? void 0 : _f.size) > 0 && ((_g = app.selectedShapesArray) == null ? void 0 : _g.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.cut),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"cut\"\n }),\n t2(\"whiteboard\/cut\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.copy),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"copy\"\n }),\n t2(\"whiteboard\/copy\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"editor\/copy\"\n })\n ]\n })\n ]\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.paste),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"clipboard\"\n }),\n t2(\"whiteboard\/paste\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n shortcut: `${MOD_KEY}+v`\n })\n ]\n }),\n ((_h = app.selectedShapes) == null ? void 0 : _h.size) === 1 && !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(() => app.paste(void 0, true)),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/paste-as-link\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n shortcut: `${MOD_KEY}+\\u21E7+v`\n })\n ]\n }),\n ((_i = app.selectedShapes) == null ? void 0 : _i.size) > 0 && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(\n () => {\n var _a4, _b2;\n return handlers.exportToImage(app.currentPageId, {\n x: app.selectionBounds.minX + app.viewport.camera.point[0] - EXPORT_PADDING,\n y: app.selectionBounds.minY + app.viewport.camera.point[1] - EXPORT_PADDING,\n width: ((_a4 = app.selectionBounds) == null ? void 0 : _a4.width) + EXPORT_PADDING * 2,\n height: ((_b2 = app.selectionBounds) == null ? void 0 : _b2.height) + EXPORT_PADDING * 2,\n zoom: app.viewport.camera.zoom\n });\n }\n ),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"file-export\"\n }),\n t2(\"whiteboard\/export\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(\"div\", {\n className: \"tl-menu-right-slot\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(\"span\", {\n className: \"keyboard-shortcut\"\n })\n })\n ]\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.selectAll),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/select-all\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"editor\/select-parent\"\n })\n ]\n }),\n ((_j = app.selectedShapes) == null ? void 0 : _j.size) > 1 && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.deselectAll),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/deselect-all\")\n ]\n }),\n !app.readOnly && ((_k = app.selectedShapes) == null ? void 0 : _k.size) > 0 && ((_l = app.selectedShapesArray) == null ? void 0 : _l.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(() => app.setLocked(true)),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"lock\"\n }),\n t2(\"whiteboard\/lock\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/lock\"\n })\n ]\n }),\n !app.readOnly && ((_m = app.selectedShapes) == null ? void 0 : _m.size) > 0 && ((_n = app.selectedShapesArray) == null ? void 0 : _n.some((s4) => s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(() => app.setLocked(false)),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"lock-open\"\n }),\n t2(\"whiteboard\/unlock\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/unlock\"\n })\n ]\n }),\n ((_o = app.selectedShapes) == null ? void 0 : _o.size) > 0 && !app.readOnly && ((_p = app.selectedShapesArray) == null ? void 0 : _p.some((s4) => !s4.props.isLocked)) && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.api.deleteShapes),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"backspace\"\n }),\n t2(\"whiteboard\/delete\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"editor\/delete\"\n })\n ]\n }),\n ((_q = app.selectedShapes) == null ? void 0 : _q.size) > 1 && !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.flipHorizontal),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"flip-horizontal\"\n }),\n t2(\"whiteboard\/flip-horizontally\")\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.flipVertical),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"flip-vertical\"\n }),\n t2(\"whiteboard\/flip-vertically\")\n ]\n })\n ]\n }),\n !app.readOnly && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, {\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuSeparator, {\n className: \"menu-separator\"\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.bringToFront),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/move-to-front\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/bring-to-front\"\n })\n ]\n }),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsxs)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => runAndTransition(app.sendToBack),\n children: [\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(TablerIcon, {\n className: \"tl-menu-icon\",\n name: \"circle-dotted\"\n }),\n t2(\"whiteboard\/move-to-back\"),\n \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(KeyboardShortcut, {\n action: \"whiteboard\/send-to-back\"\n })\n ]\n })\n ]\n }),\n developerMode && \/* @__PURE__ *\/ (0, import_jsx_runtime80.jsx)(LSUI.ContextMenuItem, {\n className: \"tl-menu-item\",\n onClick: () => {\n if (app.selectedShapesArray.length === 1) {\n console.log(toJS(app.selectedShapesArray[0].serialized));\n } else {\n console.log(app.selectedShapesArray.map((s4) => toJS(s4.serialized)));\n }\n },\n children: t2(\"whiteboard\/dev-print-shape-props\")\n })\n ]\n })\n ]\n })\n })\n ]\n });\n});\n\n\/\/ src\/components\/QuickLinks\/QuickLinks.tsx\nvar import_react95 = __toESM(require(\"react\"));\nvar import_jsx_runtime81 = require(\"react\/jsx-runtime\");\nvar QuickLinks = observer(({ shape }) => {\n const app = useApp();\n const { handlers } = import_react95.default.useContext(LogseqContext);\n const t2 = handlers.t;\n const links = import_react95.default.useMemo(() => {\n var _a3;\n const links2 = [...(_a3 = shape.props.refs) != null ? _a3 : []].map(\n (l5) => [l5, true]\n );\n if (shape.props.type === \"logseq-portal\" && shape.props.pageId) {\n links2.unshift([shape.props.pageId, false]);\n }\n return links2.filter(\n (link) => link[0].toLowerCase() !== app.currentPage.name && handlers.getBlockPageName(link[0]) !== app.currentPage.name\n );\n }, [shape.props.id, shape.props.type, shape.props.parentId, shape.props.refs]);\n if (links.length === 0)\n return null;\n return \/* @__PURE__ *\/ (0, import_jsx_runtime81.jsx)(\"div\", {\n className: \"tl-quick-links\",\n title: t2(\"whiteboard\/shape-quick-links\"),\n children: links.map(([ref, showReferenceContent]) => {\n return \/* @__PURE__ *\/ (0, import_jsx_runtime81.jsx)(\"div\", {\n className: \"tl-quick-links-row\",\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime81.jsx)(BlockLink, {\n id: ref,\n showReferenceContent\n })\n }, ref);\n })\n });\n});\n\n\/\/ src\/hooks\/useDrop.ts\nvar React75 = __toESM(require(\"react\"));\n\n\/\/ src\/hooks\/usePaste.ts\nvar React74 = __toESM(require(\"react\"));\nvar isValidURL = (url) => {\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.host && [\"http:\", \"https:\"].includes(parsedUrl.protocol);\n } catch (e2) {\n return false;\n }\n};\nvar assetExtensions = {\n image: [\".png\", \".svg\", \".jpg\", \".jpeg\", \".gif\"],\n video: [\".mp4\", \".webm\", \".ogg\"],\n pdf: [\".pdf\"]\n};\nfunction getFileType(filename) {\n var _a3;\n const extensionMatch = filename.match(\/\\.[0-9a-z]+$\/i);\n if (!extensionMatch)\n return \"unknown\";\n const extension = extensionMatch[0].toLowerCase();\n const [type, _extensions] = (_a3 = Object.entries(assetExtensions).find(\n ([_type, extensions]) => extensions.includes(extension)\n )) != null ? _a3 : [\"unknown\", null];\n return type;\n}\nfunction tryCreateShapeHelper(...fns) {\n return (...args) => __async(this, null, function* () {\n for (const fn of fns) {\n const result = yield fn(...args);\n if (result && result.length > 0) {\n return result;\n }\n }\n return null;\n });\n}\nfunction getDataFromType(item, type) {\n return __async(this, null, function* () {\n if (!item.types.includes(type)) {\n return null;\n }\n if (item instanceof DataTransfer) {\n return item.getData(type);\n }\n const blob = yield item.getType(type);\n return yield blob.text();\n });\n}\nvar handleCreatingShapes = (_0, _1, _2) => __async(void 0, [_0, _1, _2], function* (app, { point, shiftKey, dataTransfer, fromDrop }, handlers) {\n var _a3, _b;\n let imageAssetsToCreate = [];\n let assetsToClone = [];\n const bindingsToCreate = [];\n function createAssetsFromURL(url, type) {\n return __async(this, null, function* () {\n const existingAsset = Object.values(app.assets).find((asset2) => asset2.src === url);\n if (existingAsset) {\n return existingAsset;\n }\n const asset = {\n id: uniqueId(),\n type,\n src: url,\n size: yield getSizeFromSrc(handlers.makeAssetUrl(url), type)\n };\n return asset;\n });\n }\n function createAssetsFromFiles(files) {\n return __async(this, null, function* () {\n const tasks = files.filter((file) => getFileType(file.name) !== \"unknown\").map((file) => __async(this, null, function* () {\n try {\n const dataurl = yield handlers.saveAsset(file);\n return yield createAssetsFromURL(dataurl, getFileType(file.name));\n } catch (err) {\n console.error(err);\n }\n return null;\n }));\n return (yield Promise.all(tasks)).filter(isNonNullable);\n });\n }\n function createHTMLShape(text) {\n return [\n __spreadProps(__spreadValues({}, HTMLShape.defaultProps), {\n html: text,\n point: [point[0], point[1]]\n })\n ];\n }\n function tryCreateShapesFromDataTransfer(dataTransfer2) {\n return __async(this, null, function* () {\n return tryCreateShapeHelper(\n tryCreateShapeFromFilePath,\n tryCreateShapeFromFiles,\n tryCreateShapeFromPageName,\n tryCreateShapeFromBlockUUID,\n tryCreateShapeFromTextPlain,\n tryCreateShapeFromTextHTML,\n tryCreateLogseqPortalShapesFromString\n )(dataTransfer2);\n });\n }\n function tryCreateShapesFromClipboard() {\n return __async(this, null, function* () {\n const items = yield navigator.clipboard.read();\n const createShapesFn = tryCreateShapeHelper(\n tryCreateShapeFromTextPlain,\n tryCreateShapeFromTextHTML,\n tryCreateLogseqPortalShapesFromString\n );\n const allShapes = (yield Promise.all(items.map((item) => createShapesFn(item)))).flat().filter(isNonNullable);\n return allShapes;\n });\n }\n function tryCreateShapeFromFilePath(item) {\n return __async(this, null, function* () {\n const file = item.getData(\"file\");\n if (!file)\n return null;\n const asset = yield createAssetsFromURL(file, \"pdf\");\n app.addAssets([asset]);\n const newShape = __spreadProps(__spreadValues({}, PdfShape.defaultProps), {\n id: uniqueId(),\n assetId: asset.id,\n url: file,\n opacity: 1\n });\n if (asset.size) {\n Object.assign(newShape, {\n point: [point[0] - asset.size[0] \/ 4 + 16, point[1] - asset.size[1] \/ 4 + 16],\n size: src_default.div(asset.size, 2)\n });\n }\n return [newShape];\n });\n }\n function tryCreateShapeFromFiles(item) {\n return __async(this, null, function* () {\n const files = Array.from(item.files);\n if (files.length > 0) {\n const assets = yield createAssetsFromFiles(files);\n imageAssetsToCreate = assets;\n return assets.map((asset, i4) => {\n let defaultProps = null;\n switch (asset.type) {\n case \"video\":\n defaultProps = VideoShape.defaultProps;\n break;\n case \"image\":\n defaultProps = ImageShape.defaultProps;\n break;\n case \"pdf\":\n defaultProps = PdfShape.defaultProps;\n break;\n default:\n return null;\n }\n const newShape = __spreadProps(__spreadValues({}, defaultProps), {\n id: uniqueId(),\n assetId: asset.id,\n opacity: 1\n });\n if (asset.size) {\n Object.assign(newShape, {\n point: [point[0] - asset.size[0] \/ 4 + i4 * 16, point[1] - asset.size[1] \/ 4 + i4 * 16],\n size: src_default.div(asset.size, 2)\n });\n }\n return newShape;\n });\n }\n return null;\n });\n }\n function tryCreateShapeFromTextHTML(item) {\n return __async(this, null, function* () {\n if (item.types.includes(\"text\/plain\") && (shiftKey || fromDrop)) {\n return null;\n }\n const rawText = yield getDataFromType(item, \"text\/html\");\n if (rawText) {\n return tryCreateShapeHelper(tryCreateClonedShapesFromJSON, createHTMLShape)(rawText);\n }\n return null;\n });\n }\n function tryCreateShapeFromBlockUUID(dataTransfer2) {\n return __async(this, null, function* () {\n var _a4, _b2, _c, _d, _e2, _f;\n const rawText = dataTransfer2.getData(\"block-uuid\");\n if (rawText) {\n const text = rawText.trim();\n const allSelectedBlocks = (_c = (_b2 = (_a4 = window.logseq) == null ? void 0 : _a4.api) == null ? void 0 : _b2.get_selected_blocks) == null ? void 0 : _c.call(_b2);\n const blockUUIDs = allSelectedBlocks && (allSelectedBlocks == null ? void 0 : allSelectedBlocks.length) > 1 ? allSelectedBlocks.map((b5) => b5.uuid) : [text];\n (_f = (_e2 = (_d = window.logseq) == null ? void 0 : _d.api) == null ? void 0 : _e2.set_blocks_id) == null ? void 0 : _f.call(_e2, blockUUIDs);\n const tasks = blockUUIDs.map((uuid) => tryCreateLogseqPortalShapesFromUUID(`((${uuid}))`));\n const newShapes2 = (yield Promise.all(tasks)).flat().filter(isNonNullable);\n return newShapes2.map((s4, idx) => {\n return __spreadProps(__spreadValues({}, s4), {\n point: [point[0] + (LogseqPortalShape.defaultProps.size[0] + 16) * idx, point[1]]\n });\n });\n }\n return null;\n });\n }\n function tryCreateShapeFromPageName(dataTransfer2) {\n return __async(this, null, function* () {\n const rawText = dataTransfer2.getData(\"page-name\");\n if (rawText) {\n const text = rawText.trim();\n return tryCreateLogseqPortalShapesFromUUID(`[[${text}]]`);\n }\n return null;\n });\n }\n function tryCreateShapeFromTextPlain(item) {\n return __async(this, null, function* () {\n const rawText = yield getDataFromType(item, \"text\/plain\");\n if (rawText) {\n const text = rawText.trim();\n return tryCreateShapeHelper(tryCreateShapeFromURL, tryCreateShapeFromIframeString)(text);\n }\n return null;\n });\n }\n function tryCreateClonedShapesFromJSON(rawText) {\n const result = app.api.getClonedShapesFromTldrString(decodeURIComponent(rawText), point);\n if (result) {\n const { shapes: shapes2, assets, bindings } = result;\n assetsToClone.push(...assets);\n bindingsToCreate.push(...bindings);\n return shapes2;\n }\n return null;\n }\n function tryCreateShapeFromURL(rawText) {\n return __async(this, null, function* () {\n if (isValidURL(rawText) && !shiftKey) {\n if (YOUTUBE_REGEX.test(rawText)) {\n return [\n __spreadProps(__spreadValues({}, YouTubeShape.defaultProps), {\n url: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n if (TWITTER_REGEX.test(rawText)) {\n return [\n __spreadProps(__spreadValues({}, TweetShape.defaultProps), {\n url: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n return [\n __spreadProps(__spreadValues({}, IFrameShape.defaultProps), {\n url: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n return null;\n });\n }\n function tryCreateShapeFromIframeString(rawText) {\n if (rawText.startsWith(\"<iframe\")) {\n return [\n __spreadProps(__spreadValues({}, HTMLShape.defaultProps), {\n html: rawText,\n point: [point[0], point[1]]\n })\n ];\n }\n return null;\n }\n function tryCreateLogseqPortalShapesFromUUID(rawText) {\n return __async(this, null, function* () {\n if (\/^\\(\\(.*\\)\\)$\/.test(rawText) && rawText.length === nil_default.length + 4) {\n const blockRef = rawText.slice(2, -2);\n if (validUUID(blockRef)) {\n return [\n __spreadProps(__spreadValues({}, LogseqPortalShape.defaultProps), {\n point: [point[0], point[1]],\n size: [400, 0],\n pageId: blockRef,\n fill: app.settings.color,\n stroke: app.settings.color,\n scaleLevel: app.settings.scaleLevel,\n blockType: \"B\"\n })\n ];\n }\n } else if (\/^\\[\\[.*\\]\\]$\/.test(rawText)) {\n const pageName = rawText.slice(2, -2);\n return [\n __spreadProps(__spreadValues({}, LogseqPortalShape.defaultProps), {\n point: [point[0], point[1]],\n size: [400, 0],\n pageId: pageName,\n fill: app.settings.color,\n stroke: app.settings.color,\n scaleLevel: app.settings.scaleLevel,\n blockType: \"P\"\n })\n ];\n }\n return null;\n });\n }\n function tryCreateLogseqPortalShapesFromString(item) {\n return __async(this, null, function* () {\n const rawText = yield getDataFromType(item, \"text\/plain\");\n if (rawText) {\n const text = rawText.trim();\n const uuid = handlers == null ? void 0 : handlers.addNewBlock(text);\n if (uuid) {\n return [\n __spreadProps(__spreadValues({}, LogseqPortalShape.defaultProps), {\n size: [400, 0],\n point: [point[0], point[1]],\n pageId: uuid,\n fill: app.settings.color,\n stroke: app.settings.color,\n scaleLevel: app.settings.scaleLevel,\n blockType: \"B\",\n compact: true\n })\n ];\n }\n }\n return null;\n });\n }\n app.cursors.setCursor(\"progress\" \/* Progress *\/);\n let newShapes = [];\n try {\n if (dataTransfer) {\n newShapes.push(...(_a3 = yield tryCreateShapesFromDataTransfer(dataTransfer)) != null ? _a3 : []);\n } else {\n newShapes.push(...(_b = yield tryCreateShapesFromClipboard()) != null ? _b : []);\n }\n } catch (error) {\n console.error(error);\n }\n const allShapesToAdd = newShapes.map((shape) => {\n return __spreadProps(__spreadValues({}, shape), {\n parentId: app.currentPageId,\n isLocked: false,\n id: validUUID(shape.id) ? shape.id : uniqueId()\n });\n });\n const filesOnly = dataTransfer == null ? void 0 : dataTransfer.types.every((t2) => t2 === \"Files\");\n app.wrapUpdate(() => {\n const allAssets = [...imageAssetsToCreate, ...assetsToClone];\n if (allAssets.length > 0) {\n app.createAssets(allAssets);\n }\n if (allShapesToAdd.length > 0) {\n app.createShapes(allShapesToAdd);\n }\n app.currentPage.updateBindings(Object.fromEntries(bindingsToCreate.map((b5) => [b5.id, b5])));\n if (app.selectedShapesArray.length === 1 && allShapesToAdd.length === 1 && fromDrop) {\n const source = app.selectedShapesArray[0];\n const target = app.getShapeById(allShapesToAdd[0].id);\n app.createNewLineBinding(source, target);\n }\n app.setSelectedShapes(allShapesToAdd.map((s4) => s4.id));\n app.selectedTool.transition(\"idle\");\n app.cursors.setCursor(\"default\" \/* Default *\/);\n if (fromDrop || filesOnly) {\n app.packIntoRectangle();\n }\n });\n});\nfunction usePaste() {\n const { handlers } = React74.useContext(LogseqContext);\n return React74.useCallback((app, info) => __async(this, null, function* () {\n if (info.shiftKey && app.selectedShapesArray.length === 1) {\n const items = yield navigator.clipboard.read();\n let newRef;\n if (items.length > 0) {\n const blob = yield items[0].getType(\"text\/plain\");\n const rawText = (yield blob.text()).trim();\n if (rawText) {\n if (\/^\\(\\(.*\\)\\)$\/.test(rawText) && rawText.length === nil_default.length + 4) {\n const blockRef = rawText.slice(2, -2);\n if (validUUID(blockRef)) {\n newRef = blockRef;\n }\n } else if (\/^\\[\\[.*\\]\\]$\/.test(rawText)) {\n newRef = rawText.slice(2, -2);\n }\n }\n }\n if (newRef) {\n app.selectedShapesArray[0].update({\n refs: [newRef]\n });\n app.persist();\n return;\n }\n }\n handleCreatingShapes(app, info, handlers);\n }), []);\n}\n\n\/\/ src\/hooks\/useDrop.ts\nfunction useDrop() {\n const handlePaste = usePaste();\n return React75.useCallback(\n (_0, _1) => __async(this, [_0, _1], function* (app, { dataTransfer, point }) {\n handlePaste(app, { point, shiftKey: false, dataTransfer, fromDrop: true });\n }),\n []\n );\n}\n\n\/\/ src\/hooks\/useCopy.ts\nvar React76 = __toESM(require(\"react\"));\nfunction useCopy() {\n const { handlers } = React76.useContext(LogseqContext);\n return React76.useCallback((app, { text, html }) => {\n handlers.copyToClipboard(text, html);\n }, []);\n}\n\n\/\/ src\/hooks\/useQuickAdd.ts\nvar import_react96 = __toESM(require(\"react\"));\nfunction useQuickAdd() {\n return import_react96.default.useCallback((app) => __async(this, null, function* () {\n setTimeout(() => {\n app.transition(\"logseq-portal\").selectedTool.transition(\"creating\");\n }, 100);\n }), []);\n}\n\n\/\/ src\/app.tsx\nvar import_jsx_runtime82 = require(\"react\/jsx-runtime\");\nvar tools = [\n BoxTool,\n EllipseTool,\n PolygonTool,\n NuEraseTool,\n HighlighterTool,\n LineTool,\n PencilTool,\n TextTool,\n YouTubeTool,\n IFrameTool,\n HTMLTool,\n LogseqPortalTool\n];\nvar BacklinksCount = (props) => {\n const { renderers } = React78.useContext(LogseqContext);\n const options = { \"portal?\": false };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(renderers.BacklinksCount, __spreadProps(__spreadValues({}, props), {\n options\n }));\n};\nvar AppImpl = () => {\n const ref = React78.useRef(null);\n const app = useApp();\n const components = React78.useMemo(\n () => ({\n ContextBar,\n BacklinksCount,\n QuickLinks\n }),\n []\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(ContextMenu, {\n collisionRef: ref,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(\"div\", {\n ref,\n className: \"logseq-tldraw logseq-tldraw-wrapper\",\n \"data-tlapp\": app.uuid,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppCanvas, {\n components,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppUI, {})\n })\n })\n });\n};\nvar AppInner = (_a3) => {\n var _b = _a3, {\n onPersist,\n readOnly,\n model\n } = _b, rest = __objRest(_b, [\n \"onPersist\",\n \"readOnly\",\n \"model\"\n ]);\n const onDrop = useDrop();\n const onPaste = usePaste();\n const onCopy = useCopy();\n const onQuickAdd = readOnly ? null : useQuickAdd();\n const onPersistOnDiff = React78.useCallback(\n (app, info) => {\n onPersist == null ? void 0 : onPersist(app, info);\n },\n [model]\n );\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppProvider, __spreadProps(__spreadValues({\n Shapes: shapes,\n Tools: tools,\n onDrop,\n onPaste,\n onCopy,\n readOnly,\n onCanvasDBClick: onQuickAdd,\n onPersist: onPersistOnDiff,\n model\n }, rest), {\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppImpl, {})\n }));\n};\nvar App3 = function App4(_a3) {\n var _b = _a3, { renderers, handlers } = _b, rest = __objRest(_b, [\"renderers\", \"handlers\"]);\n const memoRenders = React78.useMemo(() => {\n return Object.fromEntries(\n Object.entries(renderers).map(([key, comp]) => {\n return [key, React78.memo(comp)];\n })\n );\n }, []);\n const contextValue = {\n renderers: memoRenders,\n handlers\n };\n return \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(LogseqContext.Provider, {\n value: contextValue,\n children: \/* @__PURE__ *\/ (0, import_jsx_runtime82.jsx)(AppInner, __spreadValues({}, rest))\n });\n};\n\/*!\n * is-plain-object <https:\/\/github.com\/jonschlinkert\/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n *\/\n\n};","(ns frontend.rum\n \"Utility fns for rum\"\n (:require [clojure.string :as s]\n [clojure.set :as set]\n [clojure.walk :as w]\n [rum.core :refer [use-state use-effect!] :as rum]\n [daiquiri.interpreter :as interpreter]\n [cljs-bean.core :as bean]))\n\n;; copy from https:\/\/github.com\/priornix\/antizer\/blob\/35ba264cf48b84e6597743e28b3570d8aa473e74\/src\/antizer\/core.cljs\n\n(defn kebab-case->camel-case\n \"Converts from kebab case to camel case, eg: on-click to onClick\"\n [input]\n (s\/replace input #\"-([a-z])\" (fn [[_ c]] (s\/upper-case c))))\n\n(defn map-keys->camel-case\n \"Stringifys all the keys of a cljs hashmap and converts them\n from kebab case to camel case. If :html-props option is specified,\n then rename the html properties values to their dom equivalent\n before conversion\"\n [data & {:keys [html-props]}]\n (let [convert-to-camel (fn [[key value]]\n [(kebab-case->camel-case (name key)) value])]\n (w\/postwalk (fn [x]\n (if (map? x)\n (let [new-map (if html-props\n (set\/rename-keys x {:class :className :for :htmlFor})\n x)]\n (into {} (map convert-to-camel new-map)))\n x))\n data)))\n\n;; TODO: Replace this with rum's built in rum.core\/adapt-class\n;; adapted from https:\/\/github.com\/tonsky\/rum\/issues\/20\n(defn adapt-class\n ([react-class]\n (adapt-class react-class false))\n ([react-class skip-opts-transform?]\n (fn [& args]\n (let [[opts children] (if (map? (first args))\n [(first args) (rest args)]\n [{} args])\n type# (first children)\n ;; we have to make sure to check if the children is sequential\n ;; as a list can be returned, eg: from a (for)\n new-children (if (sequential? type#)\n (let [result (interpreter\/interpret children)]\n (if (sequential? result)\n result\n [result]))\n children)\n ;; convert any options key value to a react element, if\n ;; a valid html element tag is used, using sablono\n vector->react-elems (fn [[key val]]\n (if (sequential? val)\n [key (interpreter\/interpret val)]\n [key val]))\n new-options (into {}\n (if skip-opts-transform?\n opts\n (map vector->react-elems opts)))]\n (apply js\/React.createElement react-class\n ;; sablono html-to-dom-attrs does not work for nested hashmaps\n (bean\/->js (map-keys->camel-case new-options :html-props true))\n new-children)))))\n\n(defn use-atom-fn\n [a getter-fn setter-fn]\n (let [[val set-val] (use-state (getter-fn @a))]\n (use-effect!\n (fn []\n (let [id (str (random-uuid))]\n (add-watch a id (fn [_ _ prev-state next-state]\n (let [prev-value (getter-fn prev-state)\n next-value (getter-fn next-state)]\n (when-not (= prev-value next-value)\n (set-val next-value)))))\n #(remove-watch a id)))\n [])\n [val #(swap! a setter-fn %)]))\n\n(defn use-atom\n \"(use-atom my-atom)\"\n [a]\n (use-atom-fn a identity (fn [_ v] v)))\n\n(defn use-mounted\n []\n (let [*mounted (rum\/use-ref false)]\n (use-effect!\n (fn []\n (rum\/set-ref! *mounted true)\n #(rum\/set-ref! *mounted false))\n [])\n #(rum\/deref *mounted)))\n\n(defn use-bounding-client-rect\n \"Returns the bounding client rect for a given dom node\n You can manually change the tick value, if you want to force refresh the value, you can manually change the tick value\"\n ([] (use-bounding-client-rect nil))\n ([tick]\n (let [[ref set-ref] (rum\/use-state nil)\n [rect set-rect] (rum\/use-state nil)]\n (rum\/use-effect!\n (if ref\n (fn []\n (let [update-rect #(set-rect (. ref getBoundingClientRect))\n updator (fn [entries]\n (when (.-contentRect (first (js->clj entries))) (update-rect)))\n observer (js\/ResizeObserver. updator)]\n (update-rect)\n (.observe observer ref)\n #(.disconnect observer)))\n #())\n [ref tick])\n [set-ref rect])))\n\n(defn ->breakpoint\n \"Converts a number to a breakpoint string\n Values come from https:\/\/tailwindcss.com\/docs\/responsive-design\"\n [size]\n (cond\n (nil? size) :md\n (<= size 640) :sm\n (<= size 768) :md\n (<= size 1024) :lg\n (<= size 1280) :xl\n (<= size 1536) :xl\n :else :2xl))\n\n(defn use-breakpoint\n \"Returns the current breakpoint\n You can manually change the tick value, if you want to force refresh the value, you can manually change the tick value\"\n ([] (use-breakpoint nil))\n ([tick]\n (let [[ref rect] (use-bounding-client-rect tick)\n bp (->breakpoint (when (some? rect) (.-width rect)))]\n [ref bp])))\n\n(defn use-click-outside\n \"Returns a function that can be used to register a callback\n that will be called when the user clicks outside the given dom node\"\n [handler & {:keys [capture? event]\n :or {capture? false\n event \"click\"}}] ;; could be \"mousedown\" or \"click\"\n (let [[ref set-ref] (rum\/use-state nil)]\n (rum\/use-effect!\n (fn []\n (let [listener (fn [e]\n (when (and ref\n (not (.. ref (contains (.-target e)))))\n (handler e)))]\n (js\/document.addEventListener event listener capture?)\n #(js\/document.removeEventListener event listener capture?)))\n [ref])\n set-ref))\n","(ns frontend.config\n \"App config and fns built on top of configuration\"\n (:require [clojure.set :as set]\n [clojure.string :as string]\n [frontend.mobile.util :as mobile-util]\n [frontend.state :as state]\n [frontend.util :as util]\n [logseq.common.path :as path]\n [logseq.graph-parser.config :as gp-config]\n [logseq.graph-parser.util :as gp-util]\n [shadow.resource :as rc]\n [goog.crypt.Md5]\n [goog.crypt :as crypt]))\n\n(goog-define DEV-RELEASE false)\n(defonce dev-release? DEV-RELEASE)\n(defonce dev? ^boolean (or dev-release? goog.DEBUG))\n\n(goog-define PUBLISHING false)\n(defonce publishing? PUBLISHING)\n\n(goog-define REVISION \"unknown\")\n(defonce revision REVISION)\n\n(reset! state\/publishing? publishing?)\n\n(goog-define TEST false)\n(def test? TEST)\n\n(goog-define ENABLE-FILE-SYNC-PRODUCTION false)\n\n;; this is a feature flag to enable the account tab\n;; when it launches (when pro plan launches) it should be removed\n(def ENABLE-SETTINGS-ACCOUNT-TAB false)\n\n(if ENABLE-FILE-SYNC-PRODUCTION\n (do (def FILE-SYNC-PROD? true)\n (def LOGIN-URL\n \"https:\/\/logseq-prod.auth.us-east-1.amazoncognito.com\/login?client_id=3c7np6bjtb4r1k1bi9i049ops5&response_type=code&scope=email+openid+phone&redirect_uri=logseq%3A%2F%2Fauth-callback\")\n (def API-DOMAIN \"api.logseq.com\")\n (def WS-URL \"wss:\/\/ws.logseq.com\/file-sync?graphuuid=%s\")\n (def COGNITO-IDP \"https:\/\/cognito-idp.us-east-1.amazonaws.com\/\")\n (def COGNITO-CLIENT-ID \"69cs1lgme7p8kbgld8n5kseii6\")\n (def REGION \"us-east-1\")\n (def USER-POOL-ID \"us-east-1_dtagLnju8\")\n (def IDENTITY-POOL-ID \"us-east-1:d6d3b034-1631-402b-b838-b44513e93ee0\")\n (def OAUTH-DOMAIN \"logseq-prod.auth.us-east-1.amazoncognito.com\")\n (def CONNECTIVITY-TESTING-S3-URL \"https:\/\/logseq-connectivity-testing-prod.s3.us-east-1.amazonaws.com\/logseq-connectivity-testing\")\n )\n\n (do (def FILE-SYNC-PROD? false)\n (def LOGIN-URL\n \"https:\/\/logseq-test2.auth.us-east-2.amazoncognito.com\/login?client_id=3ji1a0059hspovjq5fhed3uil8&response_type=code&scope=email+openid+phone&redirect_uri=logseq%3A%2F%2Fauth-callback\")\n (def API-DOMAIN \"api-dev.logseq.com\")\n (def WS-URL \"wss:\/\/ws-dev.logseq.com\/file-sync?graphuuid=%s\")\n (def COGNITO-IDP \"https:\/\/cognito-idp.us-east-2.amazonaws.com\/\")\n (def COGNITO-CLIENT-ID \"1qi1uijg8b6ra70nejvbptis0q\")\n (def REGION \"us-east-2\")\n (def USER-POOL-ID \"us-east-2_kAqZcxIeM\")\n (def IDENTITY-POOL-ID \"us-east-2:cc7d2ad3-84d0-4faf-98fe-628f6b52c0a5\")\n (def OAUTH-DOMAIN \"logseq-test2.auth.us-east-2.amazoncognito.com\")\n (def CONNECTIVITY-TESTING-S3-URL \"https:\/\/logseq-connectivity-testing-prod.s3.us-east-1.amazonaws.com\/logseq-connectivity-testing\")))\n\n;; Feature flags\n;; =============\n\n(goog-define ENABLE-PLUGINS true)\n(defonce feature-plugin-system-on? ENABLE-PLUGINS)\n\n;; Desktop only as other platforms requires better understanding of their\n;; multi-graph workflows and optimal place for a \"global\" dir\n(def global-config-enabled? util\/electron?)\n\n;; User level configuration for whether plugins are enabled\n(defonce lsp-enabled?\n (and (util\/electron?)\n (not (false? feature-plugin-system-on?))\n (state\/lsp-enabled?-or-theme)))\n\n(defn plugin-config-enabled?\n []\n (and lsp-enabled? (global-config-enabled?)))\n\n;; :TODO: How to do this?\n;; (defonce desktop? ^boolean goog.DESKTOP)\n\n;; ============\n\n(def app-name \"logseq\")\n(def website\n (if dev?\n \"http:\/\/localhost:3000\"\n (util\/format \"https:\/\/%s.com\" app-name)))\n\n(def asset-domain (util\/format \"https:\/\/asset.%s.com\"\n app-name))\n\n;; TODO: Remove this, switch to lazy loader\n(defn asset-uri\n [path]\n (cond\n publishing?\n path\n\n (util\/file-protocol?)\n (string\/replace path \"\/static\/\" \".\/\")\n\n :else\n (if dev? path\n (str asset-domain path))))\n\n(def markup-formats\n #{:org :md :markdown :asciidoc :adoc :rst})\n\n(def doc-formats\n #{:doc :docx :xls :xlsx :ppt :pptx :one :pdf :epub})\n\n(def image-formats\n #{:png :jpg :jpeg :bmp :gif :webp :svg :heic})\n\n(def audio-formats\n #{:mp3 :ogg :mpeg :wav :m4a :flac :wma :aac})\n\n(def video-formats\n #{:mp4 :webm :mov :flv :avi :mkv})\n\n(def media-formats (set\/union (gp-config\/img-formats) audio-formats video-formats))\n\n(defn extname-of-supported?\n ([input] (extname-of-supported?\n input\n [image-formats doc-formats audio-formats\n video-formats markup-formats\n (gp-config\/text-formats)]))\n ([input formats]\n (when-let [input (some->\n (cond-> input\n (and (string? input)\n (not (string\/blank? input)))\n (string\/replace-first \".\" \"\"))\n (util\/safe-lower-case)\n (keyword))]\n (boolean\n (some\n (fn [s]\n (contains? s input))\n formats)))))\n\n(defn ext-of-video?\n ([s] (ext-of-video? s true))\n ([s html5?]\n (when-let [s (and (string? s) (util\/get-file-ext s))]\n (let [video-formats (cond-> video-formats\n html5? (disj :mkv))]\n (extname-of-supported? s [video-formats])))))\n\n(defn ext-of-audio?\n ([s] (ext-of-audio? s true))\n ([s html5?]\n (when-let [s (and (string? s) (util\/get-file-ext s))]\n (let [audio-formats (cond-> audio-formats\n html5? (disj :wma :ogg))]\n (extname-of-supported? s [audio-formats])))))\n\n(defn ext-of-image?\n [s]\n (when-let [s (and (string? s) (util\/get-file-ext s))]\n (extname-of-supported? s [image-formats])))\n\n(def mobile?\n \"Triggering condition: Mobile phones\n *** Warning!!! ***\n For UX logic only! Don't use for FS logic\n iPad \/ Android Pad doesn't trigger!\n\n Same as config\/mobile?\"\n (when-not util\/node-test?\n (util\/safe-re-find #\"Mobi\" js\/navigator.userAgent)))\n\n;; TODO: protocol design for future formats support\n\n(defn get-block-pattern\n [format]\n (gp-config\/get-block-pattern (or format (state\/get-preferred-format))))\n\n(defn get-hr\n [format]\n (let [format (or format (keyword (state\/get-preferred-format)))]\n (case format\n :org\n \"-----\"\n :markdown\n \"---\"\n \"\")))\n\n(defn get-bold\n [format]\n (let [format (or format (keyword (state\/get-preferred-format)))]\n (case format\n :org\n \"*\"\n :markdown\n \"**\"\n \"\")))\n\n(defn get-italic\n [format]\n (let [format (or format (keyword (state\/get-preferred-format)))]\n (case format\n :org\n \"\/\"\n :markdown\n \"*\"\n \"\")))\n(defn get-underline\n [format]\n (let [format (or format (keyword (state\/get-preferred-format)))]\n (case format\n :org\n \"_\"\n :markdown ;; no underline for markdown\n \"\"\n \"\")))\n(defn get-strike-through\n [format]\n (let [format (or format (keyword (state\/get-preferred-format)))]\n (case format\n :org\n \"+\"\n :markdown\n \"~~\"\n \"\")))\n\n(defn get-highlight\n [format]\n (case format\n :org\n \"^^\"\n :markdown\n \"==\"\n \"\"))\n\n(defn get-code\n [format]\n (let [format (or format (keyword (state\/get-preferred-format)))]\n (case format\n :org\n \"~\"\n :markdown\n \"`\"\n \"\")))\n\n(defn get-empty-link-and-forward-pos\n [format]\n (case format\n :org\n [\"[[][]]\" 2]\n :markdown\n [\"[]()\" 1]\n [\"\" 0]))\n\n(defn link-format\n [format label link]\n (if (not-empty label)\n (case format\n :org\n (util\/format \"[[%s][%s]]\" link label)\n :markdown\n (util\/format \"[%s](%s)\" label link))\n link))\n\n(defn with-default-link\n [format link]\n (case format\n :org\n [(util\/format \"[[%s][]]\" link)\n (+ 4 (count link))]\n :markdown\n [(util\/format \"[](%s)\" link)\n 1]\n [\"\" 0]))\n\n(defn with-label-link\n [format label link]\n (case format\n :org\n [(util\/format \"[[%s][%s]]\" link label)\n (+ 4 (count link) (count label))]\n :markdown\n [(util\/format \"[%s](%s)\" label link)\n (+ 4 (count link) (count label))]\n [\"\" 0]))\n\n(defn with-default-label\n [format label]\n (case format\n :org\n [(util\/format \"[[][%s]]\" label)\n 2]\n :markdown\n [(util\/format \"[%s]()\" label)\n (+ 3 (count label))]\n [\"\" 0]))\n\n(defn properties-wrapper-pattern\n [format]\n (case format\n :markdown\n \"---\\n%s\\n---\"\n \"%s\"))\n\n(defn get-file-extension\n [format]\n (case (keyword format)\n :markdown\n \"md\"\n (name format)))\n\n(defonce default-journals-directory \"journals\")\n(defonce default-pages-directory \"pages\")\n(defonce default-whiteboards-directory \"whiteboards\")\n\n(defn get-pages-directory\n []\n (or (state\/get-pages-directory) default-pages-directory))\n\n(defn get-journals-directory\n []\n (or (state\/get-journals-directory) default-journals-directory))\n\n(defn get-whiteboards-directory\n []\n (or (state\/get-whiteboards-directory) default-whiteboards-directory))\n\n(defonce local-repo \"local\")\n\n(defn demo-graph?\n \"Demo graph or nil graph?\"\n ([]\n (demo-graph? (state\/get-current-repo)))\n ([repo-url]\n (or (nil? repo-url) (= repo-url local-repo))))\n\n(defonce recycle-dir \".recycle\")\n(def config-file \"config.edn\")\n(def custom-css-file \"custom.css\")\n(def export-css-file \"export.css\")\n(def custom-js-file \"custom.js\")\n(def config-default-content (rc\/inline \"templates\/config.edn\"))\n(def config-default-content-md5 (let [md5 (new crypt\/Md5)]\n (.update md5 (crypt\/stringToUtf8ByteArray config-default-content))\n (crypt\/byteArrayToHex (.digest md5))))\n\n;; NOTE: repo-url is the unique identifier of a repo.\n;; - `local` => in-memory demo graph\n;; - `logseq_local_\/absolute\/path\/to\/graph` => local graph, native fs backend\n;; - `logseq_local_x:\/absolute\/path\/to\/graph` => local graph, native fs backend, on Windows\n;; - `logseq_local_GraphName` => local graph, browser fs backend\n;; - Use `\"\"` while writing global files\n\n(defonce idb-db-prefix \"logseq-db\/\")\n(defonce local-db-prefix \"logseq_local_\")\n(defonce local-handle \"handle\")\n\n(defn local-db?\n [s]\n (and (string? s)\n (string\/starts-with? s local-db-prefix)))\n\n(defn get-local-asset-absolute-path\n [s]\n (str \"\/\" (string\/replace s #\"^[.\/]*\" \"\")))\n\n(defn get-local-dir\n [s]\n (string\/replace s local-db-prefix \"\"))\n\n;; FIXME(andelf): this is not the reverse op of get-repo-dir, should be fixed\n(defn get-local-repo\n [dir]\n (str local-db-prefix dir))\n\n(defn get-repo-dir\n [repo-url]\n (cond\n (nil? repo-url)\n (do\n (js\/console.error \"BUG: nil repo\")\n nil)\n\n (and (util\/electron?) (local-db? repo-url))\n (get-local-dir repo-url)\n\n (and (mobile-util\/native-platform?) (local-db? repo-url))\n (let [dir (get-local-dir repo-url)]\n (if (string\/starts-with? dir \"file:\/\/\")\n dir\n (path\/path-join \"file:\/\/\" dir)))\n\n ;; Special handling for demo graph\n (= repo-url \"local\")\n \"memory:\/\/\/local\"\n\n ;; nfs, browser-fs-access\n ;; Format: logseq_local_{dir-name}\n (local-db? repo-url)\n (string\/replace-first repo-url local-db-prefix \"\")\n\n ;; unit test\n (= repo-url \"test-db\")\n \"\/test-db\"\n\n :else\n (do\n (js\/console.error \"BUG: This should be unreachable! get-repo-dir\" repo-url)\n (str \"\/\"\n (->> (take-last 2 (string\/split repo-url #\"\/\"))\n (string\/join \"_\"))))))\n\n(defn get-string-repo-dir\n [repo-dir]\n (if (mobile-util\/native-ios?)\n (str (if (mobile-util\/in-iCloud-container-path? repo-dir)\n \"iCloud\"\n (cond (mobile-util\/native-iphone?)\n \"On My iPhone\"\n\n (mobile-util\/native-ipad?)\n \"On My iPad\"\n\n :else\n \"Local\"))\n (->> (string\/split repo-dir \"Documents\/\")\n last\n gp-util\/safe-decode-uri-component\n (str \"\/\" (string\/capitalize app-name) \"\/\")))\n (get-repo-dir (get-local-repo repo-dir))))\n\n(defn get-repo-fpath\n [repo-url path]\n (path\/path-join (get-repo-dir repo-url) path))\n\n(defn get-repo-config-path\n []\n (path\/path-join app-name config-file))\n\n(defn get-custom-css-path\n ([]\n (get-custom-css-path (state\/get-current-repo)))\n ([repo]\n (when-let [repo-dir (get-repo-dir repo)]\n (path\/path-join repo-dir app-name custom-css-file))))\n\n(defn get-export-css-path\n ([]\n (get-export-css-path (state\/get-current-repo)))\n ([repo]\n (when-let [repo-dir (get-repo-dir repo)]\n (path\/path-join repo-dir app-name export-css-file))))\n\n(defn expand-relative-assets-path\n \"Resolve all relative links in custom.css to assets:\/\/ URL\"\n ;; ..\/assets\/xxx -> {assets|file}:\/\/{current-graph-root-path}\/xxx\n [source]\n (when-not (string\/blank? source)\n (let [protocol (and (string? source)\n (not (string\/blank? source))\n (if (util\/electron?) \"assets:\/\/\" \"file:\/\/\"))\n ;; BUG: use \"assets\" as fake current directory\n assets-link-fn (fn [_]\n (let [graph-root (get-repo-dir (state\/get-current-repo))\n protocol (if (string\/starts-with? graph-root \"file:\") \"\" protocol)\n full-path (path\/path-join protocol graph-root \"assets\")]\n (str (cond-> full-path\n (mobile-util\/native-platform?)\n (mobile-util\/convert-file-src))\n \"\/\")))]\n (string\/replace source #\"\\.\\.\/assets\/\" assets-link-fn))))\n\n(defn get-current-repo-assets-root\n []\n (when-let [repo-dir (and (local-db? (state\/get-current-repo))\n (get-repo-dir (state\/get-current-repo)))]\n (path\/path-join repo-dir \"assets\")))\n\n(defn get-custom-js-path\n ([]\n (get-custom-js-path (state\/get-current-repo)))\n ([repo]\n (when-let [repo-dir (get-repo-dir repo)]\n (path\/path-join repo-dir app-name custom-js-file))))\n\n(defn get-block-hidden-properties\n []\n (:block-hidden-properties (state\/get-config)))\n","\/**\n * @license\n * Copyright The Closure Library Authors.\n * SPDX-License-Identifier: Apache-2.0\n *\/\n\n\/**\n * @fileoverview Bootstrap for the Google JS Library (Closure).\n *\n * In uncompiled mode base.js will attempt to load Closure's deps file, unless\n * the global <code>CLOSURE_NO_DEPS<\/code> is set to true. This allows projects\n * to include their own deps file(s) from different locations.\n *\n * Avoid including base.js more than once. This is strictly discouraged and not\n * supported. goog.require(...) won't work properly in that case.\n *\n * @provideGoog\n *\/\n\n\n\/**\n * @define {boolean} Overridden to true by the compiler.\n *\/\nvar COMPILED = false;\n\n\n\/**\n * Base namespace for the Closure library. Checks to see goog is already\n * defined in the current scope before assigning to prevent clobbering if\n * base.js is loaded more than once.\n *\n * @const\n *\/\nvar goog = goog || {};\n\n\/**\n * Reference to the global object.\n * https:\/\/www.ecma-international.org\/ecma-262\/9.0\/index.html#sec-global-object\n *\n * More info on this implementation here:\n * https:\/\/docs.google.com\/document\/d\/1NAeW4Wk7I7FV0Y2tcUFvQdGMc89k2vdgSXInw8_nvCI\/edit\n *\n * @const\n * @suppress {undefinedVars} self won't be referenced unless `this` is falsy.\n * @type {!Global}\n *\/\ngoog.global =\n \/\/ Check `this` first for backwards compatibility.\n \/\/ Valid unless running as an ES module or in a function wrapper called\n \/\/ without setting `this` properly.\n \/\/ Note that base.js can't usefully be imported as an ES module, but it may\n \/\/ be compiled into bundles that are loadable as ES modules.\n this ||\n \/\/ https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/self\n \/\/ For in-page browser environments and workers.\n self;\n\n\n\/**\n * A hook for overriding the define values in uncompiled mode.\n *\n * In uncompiled mode, `CLOSURE_UNCOMPILED_DEFINES` may be defined before\n * loading base.js. If a key is defined in `CLOSURE_UNCOMPILED_DEFINES`,\n * `goog.define` will use the value instead of the default value. This\n * allows flags to be overwritten without compilation (this is normally\n * accomplished with the compiler's \"define\" flag).\n *\n * Example:\n * <pre>\n * var CLOSURE_UNCOMPILED_DEFINES = {'goog.DEBUG': false};\n * <\/pre>\n *\n * @type {Object<string, (string|number|boolean)>|undefined}\n *\/\ngoog.global.CLOSURE_UNCOMPILED_DEFINES;\n\n\n\/**\n * A hook for overriding the define values in uncompiled or compiled mode,\n * like CLOSURE_UNCOMPILED_DEFINES but effective in compiled code. In\n * uncompiled code CLOSURE_UNCOMPILED_DEFINES takes precedence.\n *\n * Also unlike CLOSURE_UNCOMPILED_DEFINES the values must be number, boolean or\n * string literals or the compiler will emit an error.\n *\n * While any @define value may be set, only those set with goog.define will be\n * effective for uncompiled code.\n *\n * Example:\n * <pre>\n * var CLOSURE_DEFINES = {'goog.DEBUG': false} ;\n * <\/pre>\n *\n * Currently the Closure Compiler will only recognize very simple definitions of\n * this value when looking for values to apply to compiled code and ignore all\n * other references. Specifically, it looks the value defined at the variable\n * declaration, as with the example above.\n *\n * TODO(user): Improve the recognized definitions.\n *\n * @type {!Object<string, (string|number|boolean)>|null|undefined}\n *\/\ngoog.global.CLOSURE_DEFINES;\n\n\n\/**\n * Builds an object structure for the provided namespace path, ensuring that\n * names that already exist are not overwritten. For example:\n * \"a.b.c\" -> a = {};a.b={};a.b.c={};\n * Used by goog.provide and goog.exportSymbol.\n * @param {string} name The name of the object that this file defines.\n * @param {*=} object The object to expose at the end of the path.\n * @param {boolean=} overwriteImplicit If object is set and a previous call\n * implicitly constructed the namespace given by name, this parameter\n * controls whether object should overwrite the implicitly constructed\n * namespace or be merged into it. Defaults to false.\n * @param {?Object=} objectToExportTo The object to add the path to; if this\n * field is not specified, its value defaults to `goog.global`.\n * @private\n *\/\ngoog.exportPath_ = function(name, object, overwriteImplicit, objectToExportTo) {\n var parts = name.split('.');\n var cur = objectToExportTo || goog.global;\n\n \/\/ Internet Explorer exhibits strange behavior when throwing errors from\n \/\/ methods externed in this manner. See the testExportSymbolExceptions in\n \/\/ base_test.html for an example.\n if (!(parts[0] in cur) && typeof cur.execScript != 'undefined') {\n cur.execScript('var ' + parts[0]);\n }\n\n for (var part; parts.length && (part = parts.shift());) {\n if (!parts.length && object !== undefined) {\n if (!overwriteImplicit && goog.isObject(object) &&\n goog.isObject(cur[part])) {\n \/\/ Merge properties on object (the input parameter) with the existing\n \/\/ implicitly defined namespace, so as to not clobber previously\n \/\/ defined child namespaces.\n for (var prop in object) {\n if (object.hasOwnProperty(prop)) {\n cur[part][prop] = object[prop];\n }\n }\n } else {\n \/\/ Either there is no existing implicit namespace, or overwriteImplicit\n \/\/ is set to true, so directly assign object (the input parameter) to\n \/\/ the namespace.\n cur[part] = object;\n }\n } else if (cur[part] && cur[part] !== Object.prototype[part]) {\n cur = cur[part];\n } else {\n cur = cur[part] = {};\n }\n }\n};\n\n\n\/**\n * Defines a named value. In uncompiled mode, the value is retrieved from\n * CLOSURE_DEFINES or CLOSURE_UNCOMPILED_DEFINES if the object is defined and\n * has the property specified, and otherwise used the defined defaultValue.\n * When compiled the default can be overridden using the compiler options or the\n * value set in the CLOSURE_DEFINES object. Returns the defined value so that it\n * can be used safely in modules. Note that the value type MUST be either\n * boolean, number, or string.\n *\n * @param {string} name The distinguished name to provide.\n * @param {T} defaultValue\n * @return {T} The defined value.\n * @template T\n *\/\ngoog.define = function(name, defaultValue) {\n var value = defaultValue;\n if (!COMPILED) {\n var uncompiledDefines = goog.global.CLOSURE_UNCOMPILED_DEFINES;\n var defines = goog.global.CLOSURE_DEFINES;\n if (uncompiledDefines &&\n \/\/ Anti DOM-clobbering runtime check (b\/37736576).\n \/** @type {?} *\/ (uncompiledDefines).nodeType === undefined &&\n Object.prototype.hasOwnProperty.call(uncompiledDefines, name)) {\n value = uncompiledDefines[name];\n } else if (\n defines &&\n \/\/ Anti DOM-clobbering runtime check (b\/37736576).\n \/** @type {?} *\/ (defines).nodeType === undefined &&\n Object.prototype.hasOwnProperty.call(defines, name)) {\n value = defines[name];\n }\n }\n return value;\n};\n\n\n\/**\n * @define {number} Integer year indicating the set of browser features that are\n * guaranteed to be present. This is defined to include exactly features that\n * work correctly on all \"modern\" browsers that are stable on January 1 of the\n * specified year. For example,\n * ```js\n * if (goog.FEATURESET_YEAR >= 2019) {\n * \/\/ use APIs known to be available on all major stable browsers Jan 1, 2019\n * } else {\n * \/\/ polyfill for older browsers\n * }\n * ```\n * This is intended to be the primary define for removing\n * unnecessary browser compatibility code (such as ponyfills and workarounds),\n * and should inform the default value for most other defines:\n * ```js\n * const ASSUME_NATIVE_PROMISE =\n * goog.define('ASSUME_NATIVE_PROMISE', goog.FEATURESET_YEAR >= 2016);\n * ```\n *\n * The default assumption is that IE9 is the lowest supported browser, which was\n * first available Jan 1, 2012.\n *\n * TODO(user): Reference more thorough documentation when it's available.\n *\/\ngoog.FEATURESET_YEAR = goog.define('goog.FEATURESET_YEAR', 2012);\n\n\n\/**\n * @define {boolean} DEBUG is provided as a convenience so that debugging code\n * that should not be included in a production. It can be easily stripped\n * by specifying --define goog.DEBUG=false to the Closure Compiler aka\n * JSCompiler. For example, most toString() methods should be declared inside an\n * \"if (goog.DEBUG)\" conditional because they are generally used for debugging\n * purposes and it is difficult for the JSCompiler to statically determine\n * whether they are used.\n *\/\ngoog.DEBUG = goog.define('goog.DEBUG', true);\n\n\n\/**\n * @define {string} LOCALE defines the locale being used for compilation. It is\n * used to select locale specific data to be compiled in js binary. BUILD rule\n * can specify this value by \"--define goog.LOCALE=<locale_name>\" as a compiler\n * option.\n *\n * Take into account that the locale code format is important. You should use\n * the canonical Unicode format with hyphen as a delimiter. Language must be\n * lowercase, Language Script - Capitalized, Region - UPPERCASE.\n * There are few examples: pt-BR, en, en-US, sr-Latin-BO, zh-Hans-CN.\n *\n * See more info about locale codes here:\n * http:\/\/www.unicode.org\/reports\/tr35\/#Unicode_Language_and_Locale_Identifiers\n *\n * For language codes you should use values defined by ISO 693-1. See it here\n * http:\/\/www.w3.org\/WAI\/ER\/IG\/ert\/iso639.htm. There is only one exception from\n * this rule: the Hebrew language. For legacy reasons the old code (iw) should\n * be used instead of the new code (he).\n *\n *\/\ngoog.LOCALE = goog.define('goog.LOCALE', 'en'); \/\/ default to en\n\n\n\/**\n * This method is intended to be used for bookkeeping purposes. We would\n * like to distinguish uses of goog.LOCALE used for code stripping purposes\n * and uses of goog.LOCALE for other uses (such as URL parameters).\n *\n * This allows us to ban direct uses of goog.LOCALE and to ensure that all\n * code has been transformed to our new localization build scheme.\n *\n * @return {string}\n *\n *\/\ngoog.getLocale = function() {\n return goog.LOCALE;\n};\n\n\n\/**\n * @define {boolean} Whether this code is running on trusted sites.\n *\n * On untrusted sites, several native functions can be defined or overridden by\n * external libraries like Prototype, Datejs, and JQuery and setting this flag\n * to false forces closure to use its own implementations when possible.\n *\n * If your JavaScript can be loaded by a third party site and you are wary about\n * relying on non-standard implementations, specify\n * \"--define goog.TRUSTED_SITE=false\" to the compiler.\n *\/\ngoog.TRUSTED_SITE = goog.define('goog.TRUSTED_SITE', true);\n\n\n\/**\n * @define {boolean} Whether code that calls {@link goog.setTestOnly} should\n * be disallowed in the compilation unit.\n *\/\ngoog.DISALLOW_TEST_ONLY_CODE =\n goog.define('goog.DISALLOW_TEST_ONLY_CODE', COMPILED && !goog.DEBUG);\n\n\n\/**\n * @define {boolean} Whether to use a Chrome app CSP-compliant method for\n * loading scripts via goog.require. @see appendScriptSrcNode_.\n *\/\ngoog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING =\n goog.define('goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING', false);\n\n\n\/**\n * Defines a namespace in Closure.\n *\n * A namespace may only be defined once in a codebase. It may be defined using\n * goog.provide() or goog.module().\n *\n * The presence of one or more goog.provide() calls in a file indicates\n * that the file defines the given objects\/namespaces.\n * Provided symbols must not be null or undefined.\n *\n * In addition, goog.provide() creates the object stubs for a namespace\n * (for example, goog.provide(\"goog.foo.bar\") will create the object\n * goog.foo.bar if it does not already exist).\n *\n * Build tools also scan for provide\/require\/module statements\n * to discern dependencies, build dependency files (see deps.js), etc.\n *\n * @see goog.require\n * @see goog.module\n * @param {string} name Namespace provided by this file in the form\n * \"goog.package.part\".\n * deprecated Use goog.module (see b\/159289405)\n *\/\ngoog.provide = function(name) {\n if (goog.isInModuleLoader_()) {\n throw new Error('goog.provide cannot be used within a module.');\n }\n if (!COMPILED) {\n \/\/ Ensure that the same namespace isn't provided twice.\n \/\/ A goog.module\/goog.provide maps a goog.require to a specific file\n if (goog.isProvided_(name)) {\n throw new Error('Namespace \"' + name + '\" already declared.');\n }\n }\n\n goog.constructNamespace_(name);\n};\n\n\n\/**\n * @param {string} name Namespace provided by this file in the form\n * \"goog.package.part\".\n * @param {?Object=} object The object to embed in the namespace.\n * @param {boolean=} overwriteImplicit If object is set and a previous call\n * implicitly constructed the namespace given by name, this parameter\n * controls whether opt_obj should overwrite the implicitly constructed\n * namespace or be merged into it. Defaults to false.\n * @private\n *\/\ngoog.constructNamespace_ = function(name, object, overwriteImplicit) {\n if (!COMPILED) {\n delete goog.implicitNamespaces_[name];\n\n var namespace = name;\n while ((namespace = namespace.substring(0, namespace.lastIndexOf('.')))) {\n if (goog.getObjectByName(namespace)) {\n break;\n }\n goog.implicitNamespaces_[namespace] = true;\n }\n }\n\n goog.exportPath_(name, object, overwriteImplicit);\n};\n\n\n\/**\n * According to the CSP3 spec a nonce must be a valid base64 string.\n * @see https:\/\/www.w3.org\/TR\/CSP3\/#grammardef-base64-value\n * @private @const\n *\/\ngoog.NONCE_PATTERN_ = \/^[\\w+\/_-]+[=]{0,2}$\/;\n\n\n\/**\n * Returns CSP nonce, if set for any script tag.\n * @param {?Window=} opt_window The window context used to retrieve the nonce.\n * Defaults to global context.\n * @return {string} CSP nonce or empty string if no nonce is present.\n * @private\n *\/\ngoog.getScriptNonce_ = function(opt_window) {\n var doc = (opt_window || goog.global).document;\n var script = doc.querySelector && doc.querySelector('script[nonce]');\n if (script) {\n \/\/ Try to get the nonce from the IDL property first, because browsers that\n \/\/ implement additional nonce protection features (currently only Chrome) to\n \/\/ prevent nonce stealing via CSS do not expose the nonce via attributes.\n \/\/ See https:\/\/github.com\/whatwg\/html\/issues\/2369\n var nonce = script['nonce'] || script.getAttribute('nonce');\n if (nonce && goog.NONCE_PATTERN_.test(nonce)) {\n return nonce;\n }\n }\n return '';\n};\n\n\n\/**\n * Module identifier validation regexp.\n * Note: This is a conservative check, it is very possible to be more lenient,\n * the primary exclusion here is \"\/\" and \"\\\" and a leading \".\", these\n * restrictions are intended to leave the door open for using goog.require\n * with relative file paths rather than module identifiers.\n * @private\n *\/\ngoog.VALID_MODULE_RE_ = \/^[a-zA-Z_$][a-zA-Z0-9._$]*$\/;\n\n\n\/**\n * Defines a module in Closure.\n *\n * Marks that this file must be loaded as a module and claims the namespace.\n *\n * A namespace may only be defined once in a codebase. It may be defined using\n * goog.provide() or goog.module().\n *\n * goog.module() has three requirements:\n * - goog.module may not be used in the same file as goog.provide.\n * - goog.module must be the first statement in the file.\n * - only one goog.module is allowed per file.\n *\n * When a goog.module annotated file is loaded, it is enclosed in\n * a strict function closure. This means that:\n * - any variables declared in a goog.module file are private to the file\n * (not global), though the compiler is expected to inline the module.\n * - The code must obey all the rules of \"strict\" JavaScript.\n * - the file will be marked as \"use strict\"\n *\n * NOTE: unlike goog.provide, goog.module does not declare any symbols by\n * itself. If declared symbols are desired, use\n * goog.module.declareLegacyNamespace().\n *\n *\n * See the public goog.module proposal: http:\/\/goo.gl\/Va1hin\n *\n * @param {string} name Namespace provided by this file in the form\n * \"goog.package.part\", is expected but not required.\n * @return {void}\n *\/\ngoog.module = function(name) {\n if (typeof name !== 'string' || !name ||\n name.search(goog.VALID_MODULE_RE_) == -1) {\n throw new Error('Invalid module identifier');\n }\n if (!goog.isInGoogModuleLoader_()) {\n throw new Error(\n 'Module ' + name + ' has been loaded incorrectly. Note, ' +\n 'modules cannot be loaded as normal scripts. They require some kind of ' +\n 'pre-processing step. You\\'re likely trying to load a module via a ' +\n 'script tag or as a part of a concatenated bundle without rewriting the ' +\n 'module. For more info see: ' +\n 'https:\/\/github.com\/google\/closure-library\/wiki\/goog.module:-an-ES6-module-like-alternative-to-goog.provide.');\n }\n if (goog.moduleLoaderState_.moduleName) {\n throw new Error('goog.module may only be called once per module.');\n }\n\n \/\/ Store the module name for the loader.\n goog.moduleLoaderState_.moduleName = name;\n if (!COMPILED) {\n \/\/ Ensure that the same namespace isn't provided twice.\n \/\/ A goog.module\/goog.provide maps a goog.require to a specific file\n if (goog.isProvided_(name)) {\n throw new Error('Namespace \"' + name + '\" already declared.');\n }\n delete goog.implicitNamespaces_[name];\n }\n};\n\n\n\/**\n * @param {string} name The module identifier.\n * @return {?} The module exports for an already loaded module or null.\n *\n * Note: This is not an alternative to goog.require, it does not\n * indicate a hard dependency, instead it is used to indicate\n * an optional dependency or to access the exports of a module\n * that has already been loaded.\n * @suppress {missingProvide}\n *\/\ngoog.module.get = function(name) {\n return goog.module.getInternal_(name);\n};\n\n\n\/**\n * @param {string} name The module identifier.\n * @return {?} The module exports for an already loaded module or null.\n * @private\n *\/\ngoog.module.getInternal_ = function(name) {\n if (!COMPILED) {\n if (name in goog.loadedModules_) {\n return goog.loadedModules_[name].exports;\n } else if (!goog.implicitNamespaces_[name]) {\n var ns = goog.getObjectByName(name);\n return ns != null ? ns : null;\n }\n }\n return null;\n};\n\n\n\/**\n * Types of modules the debug loader can load.\n * @enum {string}\n *\/\ngoog.ModuleType = {\n ES6: 'es6',\n GOOG: 'goog'\n};\n\n\n\/**\n * @private {?{\n * moduleName: (string|undefined),\n * declareLegacyNamespace:boolean,\n * type: ?goog.ModuleType\n * }}\n *\/\ngoog.moduleLoaderState_ = null;\n\n\n\/**\n * @private\n * @return {boolean} Whether a goog.module or an es6 module is currently being\n * initialized.\n *\/\ngoog.isInModuleLoader_ = function() {\n return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();\n};\n\n\n\/**\n * @private\n * @return {boolean} Whether a goog.module is currently being initialized.\n *\/\ngoog.isInGoogModuleLoader_ = function() {\n return !!goog.moduleLoaderState_ &&\n goog.moduleLoaderState_.type == goog.ModuleType.GOOG;\n};\n\n\n\/**\n * @private\n * @return {boolean} Whether an es6 module is currently being initialized.\n *\/\ngoog.isInEs6ModuleLoader_ = function() {\n var inLoader = !!goog.moduleLoaderState_ &&\n goog.moduleLoaderState_.type == goog.ModuleType.ES6;\n\n if (inLoader) {\n return true;\n }\n\n var jscomp = goog.global['$jscomp'];\n\n if (jscomp) {\n \/\/ jscomp may not have getCurrentModulePath if this is a compiled bundle\n \/\/ that has some of the runtime, but not all of it. This can happen if\n \/\/ optimizations are turned on so the unused runtime is removed but renaming\n \/\/ and Closure pass are off (so $jscomp is still named $jscomp and the\n \/\/ goog.provide\/require calls still exist).\n if (typeof jscomp.getCurrentModulePath != 'function') {\n return false;\n }\n\n \/\/ Bundled ES6 module.\n return !!jscomp.getCurrentModulePath();\n }\n\n return false;\n};\n\n\n\/**\n * Provide the module's exports as a globally accessible object under the\n * module's declared name. This is intended to ease migration to goog.module\n * for files that have existing usages.\n * @suppress {missingProvide}\n *\/\ngoog.module.declareLegacyNamespace = function() {\n if (!COMPILED && !goog.isInGoogModuleLoader_()) {\n throw new Error(\n 'goog.module.declareLegacyNamespace must be called from ' +\n 'within a goog.module');\n }\n if (!COMPILED && !goog.moduleLoaderState_.moduleName) {\n throw new Error(\n 'goog.module must be called prior to ' +\n 'goog.module.declareLegacyNamespace.');\n }\n goog.moduleLoaderState_.declareLegacyNamespace = true;\n};\n\n\n\/**\n * Associates an ES6 module with a Closure module ID so that is available via\n * goog.require. The associated ID acts like a goog.module ID - it does not\n * create any global names, it is merely available via goog.require \/\n * goog.module.get \/ goog.forwardDeclare \/ goog.requireType. goog.require and\n * goog.module.get will return the entire module as if it was import *'d. This\n * allows Closure files to reference ES6 modules for the sake of migration.\n *\n * @param {string} namespace\n * @suppress {missingProvide}\n *\/\ngoog.declareModuleId = function(namespace) {\n if (!COMPILED) {\n if (!goog.isInEs6ModuleLoader_()) {\n throw new Error(\n 'goog.declareModuleId may only be called from ' +\n 'within an ES6 module');\n }\n if (goog.moduleLoaderState_ && goog.moduleLoaderState_.moduleName) {\n throw new Error(\n 'goog.declareModuleId may only be called once per module.');\n }\n if (namespace in goog.loadedModules_) {\n throw new Error(\n 'Module with namespace \"' + namespace + '\" already exists.');\n }\n }\n if (goog.moduleLoaderState_) {\n \/\/ Not bundled - debug loading.\n goog.moduleLoaderState_.moduleName = namespace;\n } else {\n \/\/ Bundled - not debug loading, no module loader state.\n var jscomp = goog.global['$jscomp'];\n if (!jscomp || typeof jscomp.getCurrentModulePath != 'function') {\n throw new Error(\n 'Module with namespace \"' + namespace +\n '\" has been loaded incorrectly.');\n }\n var exports = jscomp.require(jscomp.getCurrentModulePath());\n goog.loadedModules_[namespace] = {\n exports: exports,\n type: goog.ModuleType.ES6,\n moduleId: namespace\n };\n }\n};\n\n\n\/**\n * Marks that the current file should only be used for testing, and never for\n * live code in production.\n *\n * In the case of unit tests, the message may optionally be an exact namespace\n * for the test (e.g. 'goog.stringTest'). The linter will then ignore the extra\n * provide (if not explicitly defined in the code).\n *\n * @param {string=} opt_message Optional message to add to the error that's\n * raised when used in production code.\n *\/\ngoog.setTestOnly = function(opt_message) {\n if (goog.DISALLOW_TEST_ONLY_CODE) {\n opt_message = opt_message || '';\n throw new Error(\n 'Importing test-only code into non-debug environment' +\n (opt_message ? ': ' + opt_message : '.'));\n }\n};\n\n\n\/**\n * Forward declares a symbol. This is an indication to the compiler that the\n * symbol may be used in the source yet is not required and may not be provided\n * in compilation.\n *\n * The most common usage of forward declaration is code that takes a type as a\n * function parameter but does not need to require it. By forward declaring\n * instead of requiring, no hard dependency is made, and (if not required\n * elsewhere) the namespace may never be required and thus, not be pulled\n * into the JavaScript binary. If it is required elsewhere, it will be type\n * checked as normal.\n *\n * Before using goog.forwardDeclare, please read the documentation at\n * https:\/\/github.com\/google\/closure-compiler\/wiki\/Bad-Type-Annotation to\n * understand the options and tradeoffs when working with forward declarations.\n *\n * @param {string} name The namespace to forward declare in the form of\n * \"goog.package.part\".\n * @deprecated See go\/noforwarddeclaration, Use `goog.requireType` instead.\n *\/\ngoog.forwardDeclare = function(name) {};\n\n\n\/**\n * Forward declare type information. Used to assign types to goog.global\n * referenced object that would otherwise result in unknown type references\n * and thus block property disambiguation.\n *\/\ngoog.forwardDeclare('Document');\ngoog.forwardDeclare('HTMLScriptElement');\ngoog.forwardDeclare('XMLHttpRequest');\n\n\nif (!COMPILED) {\n \/**\n * Check if the given name has been goog.provided. This will return false for\n * names that are available only as implicit namespaces.\n * @param {string} name name of the object to look for.\n * @return {boolean} Whether the name has been provided.\n * @private\n *\/\n goog.isProvided_ = function(name) {\n return (name in goog.loadedModules_) ||\n (!goog.implicitNamespaces_[name] && goog.getObjectByName(name) != null);\n };\n\n \/**\n * Namespaces implicitly defined by goog.provide. For example,\n * goog.provide('goog.events.Event') implicitly declares that 'goog' and\n * 'goog.events' must be namespaces.\n *\n * @type {!Object<string, (boolean|undefined)>}\n * @private\n *\/\n goog.implicitNamespaces_ = {'goog.module': true};\n\n \/\/ NOTE: We add goog.module as an implicit namespace as goog.module is defined\n \/\/ here and because the existing module package has not been moved yet out of\n \/\/ the goog.module namespace. This satisifies both the debug loader and\n \/\/ ahead-of-time dependency management.\n}\n\n\n\/**\n * Returns an object based on its fully qualified external name. The object\n * is not found if null or undefined. If you are using a compilation pass that\n * renames property names beware that using this function will not find renamed\n * properties.\n *\n * @param {string} name The fully qualified name.\n * @param {Object=} opt_obj The object within which to look; default is\n * |goog.global|.\n * @return {?} The value (object or primitive) or, if not found, null.\n *\/\ngoog.getObjectByName = function(name, opt_obj) {\n var parts = name.split('.');\n var cur = opt_obj || goog.global;\n for (var i = 0; i < parts.length; i++) {\n cur = cur[parts[i]];\n if (cur == null) {\n return null;\n }\n }\n return cur;\n};\n\n\n\/**\n * Adds a dependency from a file to the files it requires.\n * @param {string} relPath The path to the js file.\n * @param {!Array<string>} provides An array of strings with\n * the names of the objects this file provides.\n * @param {!Array<string>} requires An array of strings with\n * the names of the objects this file requires.\n * @param {boolean|!Object<string>=} opt_loadFlags Parameters indicating\n * how the file must be loaded. The boolean 'true' is equivalent\n * to {'module': 'goog'} for backwards-compatibility. Valid properties\n * and values include {'module': 'goog'} and {'lang': 'es6'}.\n *\/\ngoog.addDependency = function(relPath, provides, requires, opt_loadFlags) {\n if (!COMPILED && goog.DEPENDENCIES_ENABLED) {\n goog.debugLoader_.addDependency(relPath, provides, requires, opt_loadFlags);\n }\n};\n\n\n\/\/ NOTE(nnaze): The debug DOM loader was included in base.js as an original way\n\/\/ to do \"debug-mode\" development. The dependency system can sometimes be\n\/\/ confusing, as can the debug DOM loader's asynchronous nature.\n\/\/\n\/\/ With the DOM loader, a call to goog.require() is not blocking -- the script\n\/\/ will not load until some point after the current script. If a namespace is\n\/\/ needed at runtime, it needs to be defined in a previous script, or loaded via\n\/\/ require() with its registered dependencies.\n\/\/\n\/\/ User-defined namespaces may need their own deps file. For a reference on\n\/\/ creating a deps file, see:\n\/\/ Externally: https:\/\/developers.google.com\/closure\/library\/docs\/depswriter\n\/\/\n\/\/ Because of legacy clients, the DOM loader can't be easily removed from\n\/\/ base.js. Work was done to make it disableable or replaceable for\n\/\/ different environments (DOM-less JavaScript interpreters like Rhino or V8,\n\/\/ for example). See bootstrap\/ for more information.\n\n\n\/**\n * @define {boolean} Whether to enable the debug loader.\n *\n * If enabled, a call to goog.require() will attempt to load the namespace by\n * appending a script tag to the DOM (if the namespace has been registered).\n *\n * If disabled, goog.require() will simply assert that the namespace has been\n * provided (and depend on the fact that some outside tool correctly ordered\n * the script).\n *\/\ngoog.ENABLE_DEBUG_LOADER = goog.define('goog.ENABLE_DEBUG_LOADER', true);\n\n\n\/**\n * @param {string} msg\n * @private\n *\/\ngoog.logToConsole_ = function(msg) {\n if (goog.global.console) {\n goog.global.console['error'](msg);\n }\n};\n\n\n\/**\n * Implements a system for the dynamic resolution of dependencies that works in\n * parallel with the BUILD system.\n *\n * Note that all calls to goog.require will be stripped by the compiler.\n *\n * @see goog.provide\n * @param {string} namespace Namespace (as was given in goog.provide,\n * goog.module, or goog.declareModuleId) in the form\n * \"goog.package.part\".\n * @return {?} If called within a goog.module or ES6 module file, the associated\n * namespace or module otherwise null.\n *\/\ngoog.require = function(namespace) {\n if (!COMPILED) {\n \/\/ Might need to lazy load on old IE.\n if (goog.ENABLE_DEBUG_LOADER) {\n goog.debugLoader_.requested(namespace);\n }\n\n \/\/ If the object already exists we do not need to do anything.\n if (goog.isProvided_(namespace)) {\n if (goog.isInModuleLoader_()) {\n return goog.module.getInternal_(namespace);\n }\n } else if (goog.ENABLE_DEBUG_LOADER) {\n var moduleLoaderState = goog.moduleLoaderState_;\n goog.moduleLoaderState_ = null;\n try {\n goog.debugLoader_.load_(namespace);\n } finally {\n goog.moduleLoaderState_ = moduleLoaderState;\n }\n }\n\n return null;\n }\n};\n\n\n\/**\n * Requires a symbol for its type information. This is an indication to the\n * compiler that the symbol may appear in type annotations, yet it is not\n * referenced at runtime.\n *\n * When called within a goog.module or ES6 module file, the return value may be\n * assigned to or destructured into a variable, but it may not be otherwise used\n * in code outside of a type annotation.\n *\n * Note that all calls to goog.requireType will be stripped by the compiler.\n *\n * @param {string} namespace Namespace (as was given in goog.provide,\n * goog.module, or goog.declareModuleId) in the form\n * \"goog.package.part\".\n * @return {?}\n *\/\ngoog.requireType = function(namespace) {\n \/\/ Return an empty object so that single-level destructuring of the return\n \/\/ value doesn't crash at runtime when using the debug loader. Multi-level\n \/\/ destructuring isn't supported.\n return {};\n};\n\n\n\/**\n * Path for included scripts.\n * @type {string}\n *\/\ngoog.basePath = '';\n\n\n\/**\n * A hook for overriding the base path.\n * @type {string|undefined}\n *\/\ngoog.global.CLOSURE_BASE_PATH;\n\n\n\/**\n * Whether to attempt to load Closure's deps file. By default, when uncompiled,\n * deps files will attempt to be loaded.\n * @type {boolean|undefined}\n *\/\ngoog.global.CLOSURE_NO_DEPS;\n\n\n\/**\n * A function to import a single script. This is meant to be overridden when\n * Closure is being run in non-HTML contexts, such as web workers. It's defined\n * in the global scope so that it can be set before base.js is loaded, which\n * allows deps.js to be imported properly.\n *\n * The first parameter the script source, which is a relative URI. The second,\n * optional parameter is the script contents, in the event the script needed\n * transformation. It should return true if the script was imported, false\n * otherwise.\n * @type {(function(string, string=): boolean)|undefined}\n *\/\ngoog.global.CLOSURE_IMPORT_SCRIPT;\n\n\n\/**\n * Null function used for default values of callbacks, etc.\n * @return {void} Nothing.\n * @deprecated use '()=>{}' or 'function(){}' instead.\n *\/\ngoog.nullFunction = function() {};\n\n\n\/**\n * When defining a class Foo with an abstract method bar(), you can do:\n * Foo.prototype.bar = goog.abstractMethod\n *\n * Now if a subclass of Foo fails to override bar(), an error will be thrown\n * when bar() is invoked.\n *\n * @type {!Function}\n * @throws {Error} when invoked to indicate the method should be overridden.\n * @deprecated Use \"@abstract\" annotation instead of goog.abstractMethod in new\n * code. See\n * https:\/\/github.com\/google\/closure-compiler\/wiki\/@abstract-classes-and-methods\n *\/\ngoog.abstractMethod = function() {\n throw new Error('unimplemented abstract method');\n};\n\n\n\/**\n * Adds a `getInstance` static method that always returns the same\n * instance object.\n * @param {!Function} ctor The constructor for the class to add the static\n * method to.\n * @suppress {missingProperties} 'instance_' isn't a property on 'Function'\n * but we don't have a better type to use here.\n *\/\ngoog.addSingletonGetter = function(ctor) {\n \/\/ instance_ is immediately set to prevent issues with sealed constructors\n \/\/ such as are encountered when a constructor is returned as the export object\n \/\/ of a goog.module in unoptimized code.\n \/\/ Delcare type to avoid conformance violations that ctor.instance_ is unknown\n \/** @type {undefined|!Object} @suppress {underscore} *\/\n ctor.instance_ = undefined;\n ctor.getInstance = function() {\n if (ctor.instance_) {\n return ctor.instance_;\n }\n if (goog.DEBUG) {\n \/\/ NOTE: JSCompiler can't optimize away Array#push.\n goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = ctor;\n }\n \/\/ Cast to avoid conformance violations that ctor.instance_ is unknown\n return \/** @type {!Object|undefined} *\/ (ctor.instance_) = new ctor;\n };\n};\n\n\n\/**\n * All singleton classes that have been instantiated, for testing. Don't read\n * it directly, use the `goog.testing.singleton` module. The compiler\n * removes this variable if unused.\n * @type {!Array<!Function>}\n * @private\n *\/\ngoog.instantiatedSingletons_ = [];\n\n\n\/**\n * @define {boolean} Whether to load goog.modules using `eval` when using\n * the debug loader. This provides a better debugging experience as the\n * source is unmodified and can be edited using Chrome Workspaces or similar.\n * However in some environments the use of `eval` is banned\n * so we provide an alternative.\n *\/\ngoog.LOAD_MODULE_USING_EVAL = goog.define('goog.LOAD_MODULE_USING_EVAL', true);\n\n\n\/**\n * @define {boolean} Whether the exports of goog.modules should be sealed when\n * possible.\n *\/\ngoog.SEAL_MODULE_EXPORTS = goog.define('goog.SEAL_MODULE_EXPORTS', goog.DEBUG);\n\n\n\/**\n * The registry of initialized modules:\n * The module identifier or path to module exports map.\n * @private @const {!Object<string, {exports:?,type:string,moduleId:string}>}\n *\/\ngoog.loadedModules_ = {};\n\n\n\/**\n * True if the debug loader enabled and used.\n * @const {boolean}\n *\/\ngoog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;\n\n\n\/**\n * @define {string} How to decide whether to transpile. Valid values\n * are 'always', 'never', and 'detect'. The default ('detect') is to\n * use feature detection to determine which language levels need\n * transpilation.\n *\/\n\/\/ NOTE(sdh): we could expand this to accept a language level to bypass\n\/\/ detection: e.g. goog.TRANSPILE == 'es5' would transpile ES6 files but\n\/\/ would leave ES3 and ES5 files alone.\ngoog.TRANSPILE = goog.define('goog.TRANSPILE', 'detect');\n\n\/**\n * @define {boolean} If true assume that ES modules have already been\n * transpiled by the jscompiler (in the same way that transpile.js would\n * transpile them - to jscomp modules). Useful only for servers that wish to use\n * the debug loader and transpile server side. Thus this is only respected if\n * goog.TRANSPILE is \"never\".\n *\/\ngoog.ASSUME_ES_MODULES_TRANSPILED =\n goog.define('goog.ASSUME_ES_MODULES_TRANSPILED', false);\n\n\n\/**\n * @define {string} If a file needs to be transpiled what the output language\n * should be. By default this is the highest language level this file detects\n * the current environment supports. Generally this flag should not be set, but\n * it could be useful to override. Example: If the current environment supports\n * ES6 then by default ES7+ files will be transpiled to ES6, unless this is\n * overridden.\n *\n * Valid values include: es3, es5, es6, es7, and es8. Anything not recognized\n * is treated as es3.\n *\n * Note that setting this value does not force transpilation. Just if\n * transpilation occurs this will be the output. So this is most useful when\n * goog.TRANSPILE is set to 'always' and then forcing the language level to be\n * something lower than what the environment detects.\n *\/\ngoog.TRANSPILE_TO_LANGUAGE = goog.define('goog.TRANSPILE_TO_LANGUAGE', '');\n\n\n\/**\n * @define {string} Path to the transpiler. Executing the script at this\n * path (relative to base.js) should define a function $jscomp.transpile.\n *\/\ngoog.TRANSPILER = goog.define('goog.TRANSPILER', 'transpile.js');\n\n\n\/**\n * @define {string} Trusted Types policy name. If non-empty then Closure will\n * use Trusted Types.\n *\/\ngoog.TRUSTED_TYPES_POLICY_NAME =\n goog.define('goog.TRUSTED_TYPES_POLICY_NAME', 'goog');\n\n\n\/**\n * @package {?boolean}\n * Visible for testing.\n *\/\ngoog.hasBadLetScoping = null;\n\n\n\/**\n * @param {function(?):?|string} moduleDef The module definition.\n *\/\ngoog.loadModule = function(moduleDef) {\n \/\/ NOTE: we allow function definitions to be either in the from\n \/\/ of a string to eval (which keeps the original source intact) or\n \/\/ in a eval forbidden environment (CSP) we allow a function definition\n \/\/ which in its body must call `goog.module`, and return the exports\n \/\/ of the module.\n var previousState = goog.moduleLoaderState_;\n try {\n goog.moduleLoaderState_ = {\n moduleName: '',\n declareLegacyNamespace: false,\n type: goog.ModuleType.GOOG\n };\n var origExports = {};\n var exports = origExports;\n if (typeof moduleDef === 'function') {\n exports = moduleDef.call(undefined, exports);\n } else if (typeof moduleDef === 'string') {\n exports = goog.loadModuleFromSource_.call(undefined, exports, moduleDef);\n } else {\n throw new Error('Invalid module definition');\n }\n\n var moduleName = goog.moduleLoaderState_.moduleName;\n if (typeof moduleName === 'string' && moduleName) {\n \/\/ Don't seal legacy namespaces as they may be used as a parent of\n \/\/ another namespace\n if (goog.moduleLoaderState_.declareLegacyNamespace) {\n \/\/ Whether exports was overwritten via default export assignment.\n \/\/ This is important for legacy namespaces as it dictates whether\n \/\/ previously a previously loaded implicit namespace should be clobbered\n \/\/ or not.\n var isDefaultExport = origExports !== exports;\n goog.constructNamespace_(moduleName, exports, isDefaultExport);\n } else if (\n goog.SEAL_MODULE_EXPORTS && Object.seal &&\n typeof exports == 'object' && exports != null) {\n Object.seal(exports);\n }\n\n var data = {\n exports: exports,\n type: goog.ModuleType.GOOG,\n moduleId: goog.moduleLoaderState_.moduleName\n };\n goog.loadedModules_[moduleName] = data;\n } else {\n throw new Error('Invalid module name \\\"' + moduleName + '\\\"');\n }\n } finally {\n goog.moduleLoaderState_ = previousState;\n }\n};\n\n\n\/**\n * @private @const\n *\/\ngoog.loadModuleFromSource_ =\n \/** @type {function(!Object, string):?} *\/ (function(exports) {\n \/\/ NOTE: we avoid declaring parameters or local variables here to avoid\n \/\/ masking globals or leaking values into the module definition.\n 'use strict';\n eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(arguments[1]));\n return exports;\n });\n\n\n\/**\n * Normalize a file path by removing redundant \"..\" and extraneous \".\" file\n * path components.\n * @param {string} path\n * @return {string}\n * @private\n *\/\ngoog.normalizePath_ = function(path) {\n var components = path.split('\/');\n var i = 0;\n while (i < components.length) {\n if (components[i] == '.') {\n components.splice(i, 1);\n } else if (\n i && components[i] == '..' && components[i - 1] &&\n components[i - 1] != '..') {\n components.splice(--i, 2);\n } else {\n i++;\n }\n }\n return components.join('\/');\n};\n\n\n\/**\n * Provides a hook for loading a file when using Closure's goog.require() API\n * with goog.modules. In particular this hook is provided to support Node.js.\n *\n * @type {(function(string):string)|undefined}\n *\/\ngoog.global.CLOSURE_LOAD_FILE_SYNC;\n\n\n\/**\n * Loads file by synchronous XHR. Should not be used in production environments.\n * @param {string} src Source URL.\n * @return {?string} File contents, or null if load failed.\n * @private\n *\/\ngoog.loadFileSync_ = function(src) {\n if (goog.global.CLOSURE_LOAD_FILE_SYNC) {\n return goog.global.CLOSURE_LOAD_FILE_SYNC(src);\n } else {\n try {\n \/** @type {XMLHttpRequest} *\/\n var xhr = new goog.global['XMLHttpRequest']();\n xhr.open('get', src, false);\n xhr.send();\n \/\/ NOTE: Successful http: requests have a status of 200, but successful\n \/\/ file: requests may have a status of zero. Any other status, or a\n \/\/ thrown exception (particularly in case of file: requests) indicates\n \/\/ some sort of error, which we treat as a missing or unavailable file.\n return xhr.status == 0 || xhr.status == 200 ? xhr.responseText : null;\n } catch (err) {\n \/\/ No need to rethrow or log, since errors should show up on their own.\n return null;\n }\n }\n};\n\n\n\/**\n * Lazily retrieves the transpiler and applies it to the source.\n * @param {string} code JS code.\n * @param {string} path Path to the code.\n * @param {string} target Language level output.\n * @return {string} The transpiled code.\n * @private\n *\/\ngoog.transpile_ = function(code, path, target) {\n var jscomp = goog.global['$jscomp'];\n if (!jscomp) {\n goog.global['$jscomp'] = jscomp = {};\n }\n var transpile = jscomp.transpile;\n if (!transpile) {\n var transpilerPath = goog.basePath + goog.TRANSPILER;\n var transpilerCode = goog.loadFileSync_(transpilerPath);\n if (transpilerCode) {\n \/\/ This must be executed synchronously, since by the time we know we\n \/\/ need it, we're about to load and write the ES6 code synchronously,\n \/\/ so a normal script-tag load will be too slow. Wrapped in a function\n \/\/ so that code is eval'd in the global scope.\n (function() {\n (0, eval)(transpilerCode + '\\n\/\/# sourceURL=' + transpilerPath);\n }).call(goog.global);\n \/\/ Even though the transpiler is optional, if $gwtExport is found, it's\n \/\/ a sign the transpiler was loaded and the $jscomp.transpile *should*\n \/\/ be there.\n if (goog.global['$gwtExport'] && goog.global['$gwtExport']['$jscomp'] &&\n !goog.global['$gwtExport']['$jscomp']['transpile']) {\n throw new Error(\n 'The transpiler did not properly export the \"transpile\" ' +\n 'method. $gwtExport: ' + JSON.stringify(goog.global['$gwtExport']));\n }\n \/\/ transpile.js only exports a single $jscomp function, transpile. We\n \/\/ grab just that and add it to the existing definition of $jscomp which\n \/\/ contains the polyfills.\n goog.global['$jscomp'].transpile =\n goog.global['$gwtExport']['$jscomp']['transpile'];\n jscomp = goog.global['$jscomp'];\n transpile = jscomp.transpile;\n }\n }\n if (!transpile) {\n \/\/ The transpiler is an optional component. If it's not available then\n \/\/ replace it with a pass-through function that simply logs.\n var suffix = ' requires transpilation but no transpiler was found.';\n transpile = jscomp.transpile = function(code, path) {\n \/\/ TODO(sdh): figure out some way to get this error to show up\n \/\/ in test results, noting that the failure may occur in many\n \/\/ different ways, including in loadModule() before the test\n \/\/ runner even comes up.\n goog.logToConsole_(path + suffix);\n return code;\n };\n }\n \/\/ Note: any transpilation errors\/warnings will be logged to the console.\n return transpile(code, path, target);\n};\n\n\/\/==============================================================================\n\/\/ Language Enhancements\n\/\/==============================================================================\n\n\n\/**\n * This is a \"fixed\" version of the typeof operator. It differs from the typeof\n * operator in such a way that null returns 'null' and arrays return 'array'.\n * @param {?} value The value to get the type of.\n * @return {string} The name of the type.\n *\/\ngoog.typeOf = function(value) {\n var s = typeof value;\n\n if (s != 'object') {\n return s;\n }\n\n if (!value) {\n return 'null';\n }\n\n if (Array.isArray(value)) {\n return 'array';\n }\n return s;\n};\n\n\n\/**\n * Returns true if the object looks like an array. To qualify as array like\n * the value needs to be either a NodeList or an object with a Number length\n * property. Note that for this function neither strings nor functions are\n * considered \"array-like\".\n *\n * @param {?} val Variable to test.\n * @return {boolean} Whether variable is an array.\n *\/\ngoog.isArrayLike = function(val) {\n var type = goog.typeOf(val);\n \/\/ We do not use goog.isObject here in order to exclude function values.\n return type == 'array' || type == 'object' && typeof val.length == 'number';\n};\n\n\n\/**\n * Returns true if the object looks like a Date. To qualify as Date-like the\n * value needs to be an object and have a getFullYear() function.\n * @param {?} val Variable to test.\n * @return {boolean} Whether variable is a like a Date.\n *\/\ngoog.isDateLike = function(val) {\n return goog.isObject(val) && typeof val.getFullYear == 'function';\n};\n\n\n\/**\n * Returns true if the specified value is an object. This includes arrays and\n * functions.\n * @param {?} val Variable to test.\n * @return {boolean} Whether variable is an object.\n *\/\ngoog.isObject = function(val) {\n var type = typeof val;\n return type == 'object' && val != null || type == 'function';\n \/\/ return Object(val) === val also works, but is slower, especially if val is\n \/\/ not an object.\n};\n\n\n\/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. The unique ID is\n * guaranteed to be unique across the current session amongst objects that are\n * passed into `getUid`. There is no guarantee that the ID is unique or\n * consistent across sessions. It is unsafe to generate unique ID for function\n * prototypes.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {number} The unique ID for the object.\n *\/\ngoog.getUid = function(obj) {\n \/\/ TODO(arv): Make the type stricter, do not accept null.\n return Object.prototype.hasOwnProperty.call(obj, goog.UID_PROPERTY_) &&\n obj[goog.UID_PROPERTY_] ||\n (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_);\n};\n\n\n\/**\n * Whether the given object is already assigned a unique ID.\n *\n * This does not modify the object.\n *\n * @param {!Object} obj The object to check.\n * @return {boolean} Whether there is an assigned unique id for the object.\n *\/\ngoog.hasUid = function(obj) {\n return !!obj[goog.UID_PROPERTY_];\n};\n\n\n\/**\n * Removes the unique ID from an object. This is useful if the object was\n * previously mutated using `goog.getUid` in which case the mutation is\n * undone.\n * @param {Object} obj The object to remove the unique ID field from.\n *\/\ngoog.removeUid = function(obj) {\n \/\/ TODO(arv): Make the type stricter, do not accept null.\n\n \/\/ In IE, DOM nodes are not instances of Object and throw an exception if we\n \/\/ try to delete. Instead we try to use removeAttribute.\n if (obj !== null && 'removeAttribute' in obj) {\n obj.removeAttribute(goog.UID_PROPERTY_);\n }\n\n try {\n delete obj[goog.UID_PROPERTY_];\n } catch (ex) {\n }\n};\n\n\n\/**\n * Name for unique ID property. Initialized in a way to help avoid collisions\n * with other closure JavaScript on the same page.\n * @type {string}\n * @private\n *\/\ngoog.UID_PROPERTY_ = 'closure_uid_' + ((Math.random() * 1e9) >>> 0);\n\n\n\/**\n * Counter for UID.\n * @type {number}\n * @private\n *\/\ngoog.uidCounter_ = 0;\n\n\n\/**\n * Clones a value. The input may be an Object, Array, or basic type. Objects and\n * arrays will be cloned recursively.\n *\n * WARNINGS:\n * <code>goog.cloneObject<\/code> does not detect reference loops. Objects that\n * refer to themselves will cause infinite recursion.\n *\n * <code>goog.cloneObject<\/code> is unaware of unique identifiers, and copies\n * UIDs created by <code>getUid<\/code> into cloned results.\n *\n * @param {*} obj The value to clone.\n * @return {*} A clone of the input value.\n * @deprecated goog.cloneObject is unsafe. Prefer the goog.object methods.\n *\/\ngoog.cloneObject = function(obj) {\n var type = goog.typeOf(obj);\n if (type == 'object' || type == 'array') {\n if (typeof obj.clone === 'function') {\n return obj.clone();\n }\n if (typeof Map !== 'undefined' && obj instanceof Map) {\n return new Map(obj);\n } else if (typeof Set !== 'undefined' && obj instanceof Set) {\n return new Set(obj);\n }\n var clone = type == 'array' ? [] : {};\n for (var key in obj) {\n clone[key] = goog.cloneObject(obj[key]);\n }\n return clone;\n }\n\n return obj;\n};\n\n\n\/**\n * A native implementation of goog.bind.\n * @param {?function(this:T, ...)} fn A function to partially apply.\n * @param {T} selfObj Specifies the object which this should point to when the\n * function is run.\n * @param {...*} var_args Additional arguments that are partially applied to the\n * function.\n * @return {!Function} A partially-applied form of the function goog.bind() was\n * invoked as a method of.\n * @template T\n * @private\n *\/\ngoog.bindNative_ = function(fn, selfObj, var_args) {\n return \/** @type {!Function} *\/ (fn.call.apply(fn.bind, arguments));\n};\n\n\n\/**\n * A pure-JS implementation of goog.bind.\n * @param {?function(this:T, ...)} fn A function to partially apply.\n * @param {T} selfObj Specifies the object which this should point to when the\n * function is run.\n * @param {...*} var_args Additional arguments that are partially applied to the\n * function.\n * @return {!Function} A partially-applied form of the function goog.bind() was\n * invoked as a method of.\n * @template T\n * @private\n *\/\ngoog.bindJs_ = function(fn, selfObj, var_args) {\n if (!fn) {\n throw new Error();\n }\n\n if (arguments.length > 2) {\n var boundArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n \/\/ Prepend the bound arguments to the current arguments.\n var newArgs = Array.prototype.slice.call(arguments);\n Array.prototype.unshift.apply(newArgs, boundArgs);\n return fn.apply(selfObj, newArgs);\n };\n\n } else {\n return function() {\n return fn.apply(selfObj, arguments);\n };\n }\n};\n\n\n\/**\n * Partially applies this function to a particular 'this object' and zero or\n * more arguments. The result is a new function with some arguments of the first\n * function pre-filled and the value of this 'pre-specified'.\n *\n * Remaining arguments specified at call-time are appended to the pre-specified\n * ones.\n *\n * Also see: {@link #partial}.\n *\n * Usage:\n * <pre>var barMethBound = goog.bind(myFunction, myObj, 'arg1', 'arg2');\n * barMethBound('arg3', 'arg4');<\/pre>\n *\n * @param {?function(this:T, ...)} fn A function to partially apply.\n * @param {T} selfObj Specifies the object which this should point to when the\n * function is run.\n * @param {...*} var_args Additional arguments that are partially applied to the\n * function.\n * @return {!Function} A partially-applied form of the function goog.bind() was\n * invoked as a method of.\n * @template T\n * @suppress {deprecated} See above.\n * @deprecated use `=> {}` or Function.prototype.bind instead.\n *\/\ngoog.bind = function(fn, selfObj, var_args) {\n \/\/ TODO(nicksantos): narrow the type signature.\n if (Function.prototype.bind &&\n \/\/ NOTE(nicksantos): Somebody pulled base.js into the default Chrome\n \/\/ extension environment. This means that for Chrome extensions, they get\n \/\/ the implementation of Function.prototype.bind that calls goog.bind\n \/\/ instead of the native one. Even worse, we don't want to introduce a\n \/\/ circular dependency between goog.bind and Function.prototype.bind, so\n \/\/ we have to hack this to make sure it works correctly.\n Function.prototype.bind.toString().indexOf('native code') != -1) {\n goog.bind = goog.bindNative_;\n } else {\n goog.bind = goog.bindJs_;\n }\n return goog.bind.apply(null, arguments);\n};\n\n\n\/**\n * Like goog.bind(), except that a 'this object' is not required. Useful when\n * the target function is already bound.\n *\n * Usage:\n * var g = goog.partial(f, arg1, arg2);\n * g(arg3, arg4);\n *\n * @param {Function} fn A function to partially apply.\n * @param {...*} var_args Additional arguments that are partially applied to fn.\n * @return {!Function} A partially-applied form of the function goog.partial()\n * was invoked as a method of.\n *\/\ngoog.partial = function(fn, var_args) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function() {\n \/\/ Clone the array (with slice()) and append additional arguments\n \/\/ to the existing arguments.\n var newArgs = args.slice();\n newArgs.push.apply(newArgs, arguments);\n return fn.apply(\/** @type {?} *\/ (this), newArgs);\n };\n};\n\n\n\/**\n * Copies all the members of a source object to a target object. This method\n * does not work on all browsers for all objects that contain keys such as\n * toString or hasOwnProperty. Use goog.object.extend for this purpose.\n *\n * NOTE: Some have advocated for the use of goog.mixin to setup classes\n * with multiple inheritence (traits, mixins, etc). However, as it simply\n * uses \"for in\", this is not compatible with ES6 classes whose methods are\n * non-enumerable. Changing this, would break cases where non-enumerable\n * properties are not expected.\n *\n * @param {Object} target Target.\n * @param {Object} source Source.\n * @deprecated Prefer Object.assign\n *\/\ngoog.mixin = function(target, source) {\n for (var x in source) {\n target[x] = source[x];\n }\n\n \/\/ For IE7 or lower, the for-in-loop does not contain any properties that are\n \/\/ not enumerable on the prototype object (for example, isPrototypeOf from\n \/\/ Object.prototype) but also it will not include 'replace' on objects that\n \/\/ extend String and change 'replace' (not that it is common for anyone to\n \/\/ extend anything except Object).\n};\n\n\n\/**\n * @return {number} An integer value representing the number of milliseconds\n * between midnight, January 1, 1970 and the current time.\n * @deprecated Use Date.now\n *\/\ngoog.now = function() {\n return Date.now();\n};\n\n\n\/**\n * Evals JavaScript in the global scope.\n *\n * Throws an exception if neither execScript or eval is defined.\n * @param {string|!TrustedScript} script JavaScript string.\n *\/\ngoog.globalEval = function(script) {\n (0, eval)(script);\n};\n\n\n\/**\n * Optional map of CSS class names to obfuscated names used with\n * goog.getCssName().\n * @private {!Object<string, string>|undefined}\n * @see goog.setCssNameMapping\n *\/\ngoog.cssNameMapping_;\n\n\n\/**\n * Optional obfuscation style for CSS class names. Should be set to either\n * 'BY_WHOLE' or 'BY_PART' if defined.\n * @type {string|undefined}\n * @private\n * @see goog.setCssNameMapping\n *\/\ngoog.cssNameMappingStyle_;\n\n\n\n\/**\n * A hook for modifying the default behavior goog.getCssName. The function\n * if present, will receive the standard output of the goog.getCssName as\n * its input.\n *\n * @type {(function(string):string)|undefined}\n *\/\ngoog.global.CLOSURE_CSS_NAME_MAP_FN;\n\n\n\/**\n * Handles strings that are intended to be used as CSS class names.\n *\n * This function works in tandem with @see goog.setCssNameMapping.\n *\n * Without any mapping set, the arguments are simple joined with a hyphen and\n * passed through unaltered.\n *\n * When there is a mapping, there are two possible styles in which these\n * mappings are used. In the BY_PART style, each part (i.e. in between hyphens)\n * of the passed in css name is rewritten according to the map. In the BY_WHOLE\n * style, the full css name is looked up in the map directly. If a rewrite is\n * not specified by the map, the compiler will output a warning.\n *\n * When the mapping is passed to the compiler, it will replace calls to\n * goog.getCssName with the strings from the mapping, e.g.\n * var x = goog.getCssName('foo');\n * var y = goog.getCssName(this.baseClass, 'active');\n * becomes:\n * var x = 'foo';\n * var y = this.baseClass + '-active';\n *\n * If one argument is passed it will be processed, if two are passed only the\n * modifier will be processed, as it is assumed the first argument was generated\n * as a result of calling goog.getCssName.\n *\n * @param {string} className The class name.\n * @param {string=} opt_modifier A modifier to be appended to the class name.\n * @return {string} The class name or the concatenation of the class name and\n * the modifier.\n *\/\ngoog.getCssName = function(className, opt_modifier) {\n \/\/ String() is used for compatibility with compiled soy where the passed\n \/\/ className can be non-string objects.\n if (String(className).charAt(0) == '.') {\n throw new Error(\n 'className passed in goog.getCssName must not start with \".\".' +\n ' You passed: ' + className);\n }\n\n var getMapping = function(cssName) {\n return goog.cssNameMapping_[cssName] || cssName;\n };\n\n var renameByParts = function(cssName) {\n \/\/ Remap all the parts individually.\n var parts = cssName.split('-');\n var mapped = [];\n for (var i = 0; i < parts.length; i++) {\n mapped.push(getMapping(parts[i]));\n }\n return mapped.join('-');\n };\n\n var rename;\n if (goog.cssNameMapping_) {\n rename =\n goog.cssNameMappingStyle_ == 'BY_WHOLE' ? getMapping : renameByParts;\n } else {\n rename = function(a) {\n return a;\n };\n }\n\n var result =\n opt_modifier ? className + '-' + rename(opt_modifier) : rename(className);\n\n \/\/ The special CLOSURE_CSS_NAME_MAP_FN allows users to specify further\n \/\/ processing of the class name.\n if (goog.global.CLOSURE_CSS_NAME_MAP_FN) {\n return goog.global.CLOSURE_CSS_NAME_MAP_FN(result);\n }\n\n return result;\n};\n\n\n\/**\n * Sets the map to check when returning a value from goog.getCssName(). Example:\n * <pre>\n * goog.setCssNameMapping({\n * \"goog\": \"a\",\n * \"disabled\": \"b\",\n * });\n *\n * var x = goog.getCssName('goog');\n * \/\/ The following evaluates to: \"a a-b\".\n * goog.getCssName('goog') + ' ' + goog.getCssName(x, 'disabled')\n * <\/pre>\n * When declared as a map of string literals to string literals, the JSCompiler\n * will replace all calls to goog.getCssName() using the supplied map if the\n * --process_closure_primitives flag is set.\n *\n * @param {!Object} mapping A map of strings to strings where keys are possible\n * arguments to goog.getCssName() and values are the corresponding values\n * that should be returned.\n * @param {string=} opt_style The style of css name mapping. There are two valid\n * options: 'BY_PART', and 'BY_WHOLE'.\n * @see goog.getCssName for a description.\n *\/\ngoog.setCssNameMapping = function(mapping, opt_style) {\n goog.cssNameMapping_ = mapping;\n goog.cssNameMappingStyle_ = opt_style;\n};\n\n\n\/**\n * To use CSS renaming in compiled mode, one of the input files should have a\n * call to goog.setCssNameMapping() with an object literal that the JSCompiler\n * can extract and use to replace all calls to goog.getCssName(). In uncompiled\n * mode, JavaScript code should be loaded before this base.js file that declares\n * a global variable, CLOSURE_CSS_NAME_MAPPING, which is used below. This is\n * to ensure that the mapping is loaded before any calls to goog.getCssName()\n * are made in uncompiled mode.\n *\n * A hook for overriding the CSS name mapping.\n * @type {!Object<string, string>|undefined}\n *\/\ngoog.global.CLOSURE_CSS_NAME_MAPPING;\n\n\nif (!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING) {\n \/\/ This does not call goog.setCssNameMapping() because the JSCompiler\n \/\/ requires that goog.setCssNameMapping() be called with an object literal.\n goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING;\n}\n\n\n\/**\n * Gets a localized message.\n *\n * This function is a compiler primitive. If you give the compiler a localized\n * message bundle, it will replace the string at compile-time with a localized\n * version, and expand goog.getMsg call to a concatenated string.\n *\n * Messages must be initialized in the form:\n * <code>\n * var MSG_NAME = goog.getMsg('Hello {$placeholder}', {'placeholder': 'world'});\n * <\/code>\n *\n * This function produces a string which should be treated as plain text. Use\n * {@link goog.html.SafeHtmlFormatter} in conjunction with goog.getMsg to\n * produce SafeHtml.\n *\n * @param {string} str Translatable string, places holders in the form {$foo}.\n * @param {Object<string, string>=} opt_values Maps place holder name to value.\n * @param {{html: (boolean|undefined),\n * unescapeHtmlEntities: (boolean|undefined)}=} opt_options Options:\n * html: Escape '<' in str to '<'. Used by Closure Templates where the\n * generated code size and performance is critical which is why {@link\n * goog.html.SafeHtmlFormatter} is not used. The value must be literal true\n * or false.\n * unescapeHtmlEntities: Unescape common html entities: >, <, ',\n * " and &. Used for messages not in HTML context, such as with\n * `textContent` property.\n * @return {string} message with placeholders filled.\n *\/\ngoog.getMsg = function(str, opt_values, opt_options) {\n if (opt_options && opt_options.html) {\n \/\/ Note that '&' is not replaced because the translation can contain HTML\n \/\/ entities.\n str = str.replace(\/<\/g, '<');\n }\n if (opt_options && opt_options.unescapeHtmlEntities) {\n \/\/ Note that \"&\" must be the last to avoid \"creating\" new entities.\n str = str.replace(\/<\/g, '<')\n .replace(\/>\/g, '>')\n .replace(\/'\/g, '\\'')\n .replace(\/"\/g, '\"')\n .replace(\/&\/g, '&');\n }\n if (opt_values) {\n str = str.replace(\/\\{\\$([^}]+)}\/g, function(match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] :\n match;\n });\n }\n return str;\n};\n\n\n\/**\n * Gets a localized message. If the message does not have a translation, gives a\n * fallback message.\n *\n * This is useful when introducing a new message that has not yet been\n * translated into all languages.\n *\n * This function is a compiler primitive. Must be used in the form:\n * <code>var x = goog.getMsgWithFallback(MSG_A, MSG_B);<\/code>\n * where MSG_A and MSG_B were initialized with goog.getMsg.\n *\n * @param {string} a The preferred message.\n * @param {string} b The fallback message.\n * @return {string} The best translated message.\n *\/\ngoog.getMsgWithFallback = function(a, b) {\n return a;\n};\n\n\n\/**\n * Exposes an unobfuscated global namespace path for the given object.\n * Note that fields of the exported object *will* be obfuscated, unless they are\n * exported in turn via this function or goog.exportProperty.\n *\n * Also handy for making public items that are defined in anonymous closures.\n *\n * ex. goog.exportSymbol('public.path.Foo', Foo);\n *\n * ex. goog.exportSymbol('public.path.Foo.staticFunction', Foo.staticFunction);\n * public.path.Foo.staticFunction();\n *\n * ex. goog.exportSymbol('public.path.Foo.prototype.myMethod',\n * Foo.prototype.myMethod);\n * new public.path.Foo().myMethod();\n *\n * @param {string} publicPath Unobfuscated name to export.\n * @param {*} object Object the name should point to.\n * @param {?Object=} objectToExportTo The object to add the path to; default\n * is goog.global.\n *\/\ngoog.exportSymbol = function(publicPath, object, objectToExportTo) {\n goog.exportPath_(\n publicPath, object, \/* overwriteImplicit= *\/ true, objectToExportTo);\n};\n\n\n\/**\n * Exports a property unobfuscated into the object's namespace.\n * ex. goog.exportProperty(Foo, 'staticFunction', Foo.staticFunction);\n * ex. goog.exportProperty(Foo.prototype, 'myMethod', Foo.prototype.myMethod);\n * @param {Object} object Object whose static property is being exported.\n * @param {string} publicName Unobfuscated name to export.\n * @param {*} symbol Object the name should point to.\n *\/\ngoog.exportProperty = function(object, publicName, symbol) {\n object[publicName] = symbol;\n};\n\n\n\/**\n * Inherit the prototype methods from one constructor into another.\n *\n * Usage:\n * <pre>\n * function ParentClass(a, b) { }\n * ParentClass.prototype.foo = function(a) { };\n *\n * function ChildClass(a, b, c) {\n * ChildClass.base(this, 'constructor', a, b);\n * }\n * goog.inherits(ChildClass, ParentClass);\n *\n * var child = new ChildClass('a', 'b', 'see');\n * child.foo(); \/\/ This works.\n * <\/pre>\n *\n * @param {!Function} childCtor Child class.\n * @param {!Function} parentCtor Parent class.\n * @suppress {strictMissingProperties} superClass_ and base is not defined on\n * Function.\n * @deprecated Use ECMAScript class syntax instead.\n *\/\ngoog.inherits = function(childCtor, parentCtor) {\n \/** @constructor *\/\n function tempCtor() {}\n tempCtor.prototype = parentCtor.prototype;\n childCtor.superClass_ = parentCtor.prototype;\n childCtor.prototype = new tempCtor();\n \/** @override *\/\n childCtor.prototype.constructor = childCtor;\n\n \/**\n * Calls superclass constructor\/method.\n *\n * This function is only available if you use goog.inherits to\n * express inheritance relationships between classes.\n *\n * NOTE: This is a replacement for goog.base and for superClass_\n * property defined in childCtor.\n *\n * @param {!Object} me Should always be \"this\".\n * @param {string} methodName The method name to call. Calling\n * superclass constructor can be done with the special string\n * 'constructor'.\n * @param {...*} var_args The arguments to pass to superclass\n * method\/constructor.\n * @return {*} The return value of the superclass method\/constructor.\n *\/\n childCtor.base = function(me, methodName, var_args) {\n \/\/ Copying using loop to avoid deop due to passing arguments object to\n \/\/ function. This is faster in many JS engines as of late 2014.\n var args = new Array(arguments.length - 2);\n for (var i = 2; i < arguments.length; i++) {\n args[i - 2] = arguments[i];\n }\n return parentCtor.prototype[methodName].apply(me, args);\n };\n};\n\n\n\/**\n * Allow for aliasing within scope functions. This function exists for\n * uncompiled code - in compiled code the calls will be inlined and the aliases\n * applied. In uncompiled code the function is simply run since the aliases as\n * written are valid JavaScript.\n *\n *\n * @param {function()} fn Function to call. This function can contain aliases\n * to namespaces (e.g. \"var dom = goog.dom\") or classes\n * (e.g. \"var Timer = goog.Timer\").\n * @deprecated Use goog.module instead.\n *\/\ngoog.scope = function(fn) {\n if (goog.isInModuleLoader_()) {\n throw new Error('goog.scope is not supported within a module.');\n }\n fn.call(goog.global);\n};\n\n\n\/*\n * To support uncompiled, strict mode bundles that use eval to divide source\n * like so:\n * eval('someSource;\/\/# sourceUrl sourcefile.js');\n * We need to export the globally defined symbols \"goog\" and \"COMPILED\".\n * Exporting \"goog\" breaks the compiler optimizations, so we required that\n * be defined externally.\n * NOTE: We don't use goog.exportSymbol here because we don't want to trigger\n * extern generation when that compiler option is enabled.\n *\/\nif (!COMPILED) {\n goog.global['COMPILED'] = COMPILED;\n}\n\n\n\/\/==============================================================================\n\/\/ goog.defineClass implementation\n\/\/==============================================================================\n\n\n\/**\n * Creates a restricted form of a Closure \"class\":\n * - from the compiler's perspective, the instance returned from the\n * constructor is sealed (no new properties may be added). This enables\n * better checks.\n * - the compiler will rewrite this definition to a form that is optimal\n * for type checking and optimization (initially this will be a more\n * traditional form).\n *\n * @param {Function} superClass The superclass, Object or null.\n * @param {goog.defineClass.ClassDescriptor} def\n * An object literal describing\n * the class. It may have the following properties:\n * \"constructor\": the constructor function\n * \"statics\": an object literal containing methods to add to the constructor\n * as \"static\" methods or a function that will receive the constructor\n * function as its only parameter to which static properties can\n * be added.\n * all other properties are added to the prototype.\n * @return {!Function} The class constructor.\n * @deprecated Use ECMAScript class syntax instead.\n *\/\ngoog.defineClass = function(superClass, def) {\n \/\/ TODO(johnlenz): consider making the superClass an optional parameter.\n var constructor = def.constructor;\n var statics = def.statics;\n \/\/ Wrap the constructor prior to setting up the prototype and static methods.\n if (!constructor || constructor == Object.prototype.constructor) {\n constructor = function() {\n throw new Error(\n 'cannot instantiate an interface (no constructor defined).');\n };\n }\n\n var cls = goog.defineClass.createSealingConstructor_(constructor, superClass);\n if (superClass) {\n goog.inherits(cls, superClass);\n }\n\n \/\/ Remove all the properties that should not be copied to the prototype.\n delete def.constructor;\n delete def.statics;\n\n goog.defineClass.applyProperties_(cls.prototype, def);\n if (statics != null) {\n if (statics instanceof Function) {\n statics(cls);\n } else {\n goog.defineClass.applyProperties_(cls, statics);\n }\n }\n\n return cls;\n};\n\n\n\/**\n * @typedef {{\n * constructor: (!Function|undefined),\n * statics: (Object|undefined|function(Function):void)\n * }}\n *\/\ngoog.defineClass.ClassDescriptor;\n\n\n\/**\n * @define {boolean} Whether the instances returned by goog.defineClass should\n * be sealed when possible.\n *\n * When sealing is disabled the constructor function will not be wrapped by\n * goog.defineClass, making it incompatible with ES6 class methods.\n *\/\ngoog.defineClass.SEAL_CLASS_INSTANCES =\n goog.define('goog.defineClass.SEAL_CLASS_INSTANCES', goog.DEBUG);\n\n\n\/**\n * If goog.defineClass.SEAL_CLASS_INSTANCES is enabled and Object.seal is\n * defined, this function will wrap the constructor in a function that seals the\n * results of the provided constructor function.\n *\n * @param {!Function} ctr The constructor whose results maybe be sealed.\n * @param {Function} superClass The superclass constructor.\n * @return {!Function} The replacement constructor.\n * @private\n *\/\ngoog.defineClass.createSealingConstructor_ = function(ctr, superClass) {\n if (!goog.defineClass.SEAL_CLASS_INSTANCES) {\n \/\/ Do now wrap the constructor when sealing is disabled. Angular code\n \/\/ depends on this for injection to work properly.\n return ctr;\n }\n\n \/\/ NOTE: The sealing behavior has been removed\n\n \/**\n * @this {Object}\n * @return {?}\n *\/\n var wrappedCtr = function() {\n \/\/ Don't seal an instance of a subclass when it calls the constructor of\n \/\/ its super class as there is most likely still setup to do.\n var instance = ctr.apply(this, arguments) || this;\n instance[goog.UID_PROPERTY_] = instance[goog.UID_PROPERTY_];\n\n return instance;\n };\n\n return wrappedCtr;\n};\n\n\n\n\/\/ TODO(johnlenz): share these values with the goog.object\n\/**\n * The names of the fields that are defined on Object.prototype.\n * @type {!Array<string>}\n * @private\n * @const\n *\/\ngoog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n\n\/\/ TODO(johnlenz): share this function with the goog.object\n\/**\n * @param {!Object} target The object to add properties to.\n * @param {!Object} source The object to copy properties from.\n * @private\n *\/\ngoog.defineClass.applyProperties_ = function(target, source) {\n \/\/ TODO(johnlenz): update this to support ES5 getters\/setters\n\n var key;\n for (key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n\n \/\/ For IE the for-in-loop does not contain any properties that are not\n \/\/ enumerable on the prototype object (for example isPrototypeOf from\n \/\/ Object.prototype) and it will also not include 'replace' on objects that\n \/\/ extend String and change 'replace' (not that it is common for anyone to\n \/\/ extend anything except Object).\n for (var i = 0; i < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; i++) {\n key = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[i];\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n};\n\n\/**\n * Returns the parameter.\n * @param {string} s\n * @return {string}\n * @private\n *\/\ngoog.identity_ = function(s) {\n return s;\n};\n\n\n\/**\n * Creates Trusted Types policy if Trusted Types are supported by the browser.\n * The policy just blesses any string as a Trusted Type. It is not visibility\n * restricted because anyone can also call trustedTypes.createPolicy directly.\n * However, the allowed names should be restricted by a HTTP header and the\n * reference to the created policy should be visibility restricted.\n * @param {string} name\n * @return {?TrustedTypePolicy}\n *\/\ngoog.createTrustedTypesPolicy = function(name) {\n var policy = null;\n var policyFactory = goog.global.trustedTypes;\n if (!policyFactory || !policyFactory.createPolicy) {\n return policy;\n }\n \/\/ trustedTypes.createPolicy throws if called with a name that is already\n \/\/ registered, even in report-only mode. Until the API changes, catch the\n \/\/ error not to break the applications functionally. In such case, the code\n \/\/ will fall back to using regular Safe Types.\n \/\/ TODO(koto): Remove catching once createPolicy API stops throwing.\n try {\n policy = policyFactory.createPolicy(name, {\n createHTML: goog.identity_,\n createScript: goog.identity_,\n createScriptURL: goog.identity_\n });\n } catch (e) {\n goog.logToConsole_(e.message);\n }\n return policy;\n};\n\n\/\/ There's a bug in the compiler where without collapse properties the\n\/\/ Closure namespace defines do not guard code correctly. To help reduce code\n\/\/ size also check for !COMPILED even though it redundant until this is fixed.\nif (!COMPILED && goog.DEPENDENCIES_ENABLED) {\n\n\n \/**\n * Tries to detect whether the current browser is Edge, based on the user\n * agent. This matches only pre-Chromium Edge.\n * @see https:\/\/docs.microsoft.com\/en-us\/microsoft-edge\/web-platform\/user-agent-string\n * @return {boolean} True if the current browser is Edge.\n * @private\n *\/\n goog.isEdge_ = function() {\n var userAgent = goog.global.navigator && goog.global.navigator.userAgent ?\n goog.global.navigator.userAgent :\n '';\n var edgeRe = \/Edge\\\/(\\d+)(\\.\\d)*\/i;\n return !!userAgent.match(edgeRe);\n };\n\n\n \/**\n * Tries to detect whether is in the context of an HTML document.\n * @return {boolean} True if it looks like HTML document.\n * @private\n *\/\n goog.inHtmlDocument_ = function() {\n \/** @type {!Document} *\/\n var doc = goog.global.document;\n return doc != null && 'write' in doc; \/\/ XULDocument misses write.\n };\n\n\n \/**\n * We'd like to check for if the document readyState is 'loading'; however\n * there are bugs on IE 10 and below where the readyState being anything other\n * than 'complete' is not reliable.\n * @return {boolean}\n * @private\n *\/\n goog.isDocumentLoading_ = function() {\n \/\/ attachEvent is available on IE 6 thru 10 only, and thus can be used to\n \/\/ detect those browsers.\n \/** @type {!HTMLDocument} *\/\n var doc = goog.global.document;\n return doc.attachEvent ? doc.readyState != 'complete' :\n doc.readyState == 'loading';\n };\n\n\n \/**\n * Tries to detect the base path of base.js script that bootstraps Closure.\n * @private\n *\/\n goog.findBasePath_ = function() {\n if (goog.global.CLOSURE_BASE_PATH != undefined &&\n \/\/ Anti DOM-clobbering runtime check (b\/37736576).\n typeof goog.global.CLOSURE_BASE_PATH === 'string') {\n goog.basePath = goog.global.CLOSURE_BASE_PATH;\n return;\n } else if (!goog.inHtmlDocument_()) {\n return;\n }\n \/** @type {!Document} *\/\n var doc = goog.global.document;\n \/\/ If we have a currentScript available, use it exclusively.\n var currentScript = doc.currentScript;\n if (currentScript) {\n var scripts = [currentScript];\n } else {\n var scripts = doc.getElementsByTagName('SCRIPT');\n }\n \/\/ Search backwards since the current script is in almost all cases the one\n \/\/ that has base.js.\n for (var i = scripts.length - 1; i >= 0; --i) {\n var script = \/** @type {!HTMLScriptElement} *\/ (scripts[i]);\n var src = script.src;\n var qmark = src.lastIndexOf('?');\n var l = qmark == -1 ? src.length : qmark;\n if (src.substr(l - 7, 7) == 'base.js') {\n goog.basePath = src.substr(0, l - 7);\n return;\n }\n }\n };\n\n goog.findBasePath_();\n\n \/** @struct @constructor @final *\/\n goog.Transpiler = function() {\n \/** @private {?Object<string, boolean>} *\/\n this.requiresTranspilation_ = null;\n \/** @private {string} *\/\n this.transpilationTarget_ = goog.TRANSPILE_TO_LANGUAGE;\n };\n \/**\n * Returns a newly created map from language mode string to a boolean\n * indicating whether transpilation should be done for that mode as well as\n * the highest level language that this environment supports.\n *\n * Guaranteed invariant:\n * For any two modes, l1 and l2 where l2 is a newer mode than l1,\n * `map[l1] == true` implies that `map[l2] == true`.\n *\n * Note this method is extracted and used elsewhere, so it cannot rely on\n * anything external (it should easily be able to be transformed into a\n * standalone, top level function).\n *\n * @private\n * @return {{\n * target: string,\n * map: !Object<string, boolean>\n * }}\n *\/\n goog.Transpiler.prototype.createRequiresTranspilation_ = function() {\n var transpilationTarget = 'es3';\n var \/** !Object<string, boolean> *\/ requiresTranspilation = {'es3': false};\n var transpilationRequiredForAllLaterModes = false;\n\n \/**\n * Adds an entry to requiresTranspliation for the given language mode.\n *\n * IMPORTANT: Calls must be made in order from oldest to newest language\n * mode.\n * @param {string} modeName\n * @param {function(): boolean} isSupported Returns true if the JS engine\n * supports the given mode.\n *\/\n function addNewerLanguageTranspilationCheck(modeName, isSupported) {\n if (transpilationRequiredForAllLaterModes) {\n requiresTranspilation[modeName] = true;\n } else if (isSupported()) {\n transpilationTarget = modeName;\n requiresTranspilation[modeName] = false;\n } else {\n requiresTranspilation[modeName] = true;\n transpilationRequiredForAllLaterModes = true;\n }\n }\n\n \/**\n * Does the given code evaluate without syntax errors and return a truthy\n * result?\n *\/\n function \/** boolean *\/ evalCheck(\/** string *\/ code) {\n try {\n return !!eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(code));\n } catch (ignored) {\n return false;\n }\n }\n\n \/\/ Identify ES3-only browsers by their incorrect treatment of commas.\n addNewerLanguageTranspilationCheck('es5', function() {\n return evalCheck('[1,].length==1');\n });\n addNewerLanguageTranspilationCheck('es6', function() {\n \/\/ Edge has a non-deterministic (i.e., not reproducible) bug with ES6:\n \/\/ https:\/\/github.com\/Microsoft\/ChakraCore\/issues\/1496.\n if (goog.isEdge_()) {\n \/\/ The Reflect.construct test below is flaky on Edge. It can sometimes\n \/\/ pass or fail on 40 15.15063, so just exit early for Edge and treat\n \/\/ it as ES5. Until we're on a more up to date version just always use\n \/\/ ES5. See https:\/\/github.com\/Microsoft\/ChakraCore\/issues\/3217.\n return false;\n }\n \/\/ Test es6: [FF50 (?), Edge 14 (?), Chrome 50]\n \/\/ (a) default params (specifically shadowing locals),\n \/\/ (b) destructuring, (c) block-scoped functions,\n \/\/ (d) for-of (const), (e) new.target\/Reflect.construct\n var es6fullTest =\n 'class X{constructor(){if(new.target!=String)throw 1;this.x=42}}' +\n 'let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof ' +\n 'String))throw 1;for(const a of[2,3]){if(a==2)continue;function ' +\n 'f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()' +\n '==3}';\n\n return evalCheck('(()=>{\"use strict\";' + es6fullTest + '})()');\n });\n \/\/ ** and **= are the only new features in 'es7'\n addNewerLanguageTranspilationCheck('es7', function() {\n return evalCheck('2**3==8');\n });\n \/\/ async functions are the only new features in 'es8'\n addNewerLanguageTranspilationCheck('es8', function() {\n return evalCheck('async()=>1,1');\n });\n addNewerLanguageTranspilationCheck('es9', function() {\n return evalCheck('({...rest}={}),1');\n });\n \/\/ optional catch binding, unescaped unicode paragraph separator in strings\n addNewerLanguageTranspilationCheck('es_2019', function() {\n return evalCheck('let r;try{r=\"\\u2029\"}catch{};r');\n });\n \/\/ optional chaining, nullish coalescing\n \/\/ untested\/unsupported: bigint, import meta\n addNewerLanguageTranspilationCheck('es_2020', function() {\n return evalCheck('null?.x??1');\n });\n addNewerLanguageTranspilationCheck('es_next', function() {\n return false; \/\/ assume it always need to transpile\n });\n return {target: transpilationTarget, map: requiresTranspilation};\n };\n\n\n \/**\n * Determines whether the given language needs to be transpiled.\n * @param {string} lang\n * @param {string|undefined} module\n * @return {boolean}\n *\/\n goog.Transpiler.prototype.needsTranspile = function(lang, module) {\n if (goog.TRANSPILE == 'always') {\n return true;\n } else if (goog.TRANSPILE == 'never') {\n return false;\n } else if (!this.requiresTranspilation_) {\n var obj = this.createRequiresTranspilation_();\n this.requiresTranspilation_ = obj.map;\n this.transpilationTarget_ = this.transpilationTarget_ || obj.target;\n }\n if (lang in this.requiresTranspilation_) {\n if (this.requiresTranspilation_[lang]) {\n return true;\n } else if (\n goog.inHtmlDocument_() && module == 'es6' &&\n !('noModule' in goog.global.document.createElement('script'))) {\n return true;\n } else {\n return false;\n }\n } else {\n throw new Error('Unknown language mode: ' + lang);\n }\n };\n\n\n \/**\n * Lazily retrieves the transpiler and applies it to the source.\n * @param {string} code JS code.\n * @param {string} path Path to the code.\n * @return {string} The transpiled code.\n *\/\n goog.Transpiler.prototype.transpile = function(code, path) {\n \/\/ TODO(johnplaisted): We should delete goog.transpile_ and just have this\n \/\/ function. But there's some compile error atm where goog.global is being\n \/\/ stripped incorrectly without this.\n return goog.transpile_(code, path, this.transpilationTarget_);\n };\n\n\n \/** @private @final {!goog.Transpiler} *\/\n goog.transpiler_ = new goog.Transpiler();\n\n \/**\n * Rewrites closing script tags in input to avoid ending an enclosing script\n * tag.\n *\n * @param {string} str\n * @return {string}\n * @private\n *\/\n goog.protectScriptTag_ = function(str) {\n return str.replace(\/<\\\/(SCRIPT)\/ig, '\\\\x3c\/$1');\n };\n\n\n \/**\n * A debug loader is responsible for downloading and executing javascript\n * files in an unbundled, uncompiled environment.\n *\n * This can be custimized via the setDependencyFactory method, or by\n * CLOSURE_IMPORT_SCRIPT\/CLOSURE_LOAD_FILE_SYNC.\n *\n * @struct @constructor @final @private\n *\/\n goog.DebugLoader_ = function() {\n \/** @private @const {!Object<string, !goog.Dependency>} *\/\n this.dependencies_ = {};\n \/** @private @const {!Object<string, string>} *\/\n this.idToPath_ = {};\n \/** @private @const {!Object<string, boolean>} *\/\n this.written_ = {};\n \/** @private @const {!Array<!goog.Dependency>} *\/\n this.loadingDeps_ = [];\n \/** @private {!Array<!goog.Dependency>} *\/\n this.depsToLoad_ = [];\n \/** @private {boolean} *\/\n this.paused_ = false;\n \/** @private {!goog.DependencyFactory} *\/\n this.factory_ = new goog.DependencyFactory(goog.transpiler_);\n \/** @private @const {!Object<string, !Function>} *\/\n this.deferredCallbacks_ = {};\n \/** @private @const {!Array<string>} *\/\n this.deferredQueue_ = [];\n };\n\n \/**\n * @param {!Array<string>} namespaces\n * @param {function(): undefined} callback Function to call once all the\n * namespaces have loaded.\n *\/\n goog.DebugLoader_.prototype.bootstrap = function(namespaces, callback) {\n var cb = callback;\n function resolve() {\n if (cb) {\n goog.global.setTimeout(cb, 0);\n cb = null;\n }\n }\n\n if (!namespaces.length) {\n resolve();\n return;\n }\n\n var deps = [];\n for (var i = 0; i < namespaces.length; i++) {\n var path = this.getPathFromDeps_(namespaces[i]);\n if (!path) {\n throw new Error('Unregonized namespace: ' + namespaces[i]);\n }\n deps.push(this.dependencies_[path]);\n }\n\n var require = goog.require;\n var loaded = 0;\n for (var i = 0; i < namespaces.length; i++) {\n require(namespaces[i]);\n deps[i].onLoad(function() {\n if (++loaded == namespaces.length) {\n resolve();\n }\n });\n }\n };\n\n\n \/**\n * Loads the Closure Dependency file.\n *\n * Exposed a public function so CLOSURE_NO_DEPS can be set to false, base\n * loaded, setDependencyFactory called, and then this called. i.e. allows\n * custom loading of the deps file.\n *\/\n goog.DebugLoader_.prototype.loadClosureDeps = function() {\n \/\/ Circumvent addDependency, which would try to transpile deps.js if\n \/\/ transpile is set to always.\n var relPath = 'deps.js';\n this.depsToLoad_.push(this.factory_.createDependency(\n goog.normalizePath_(goog.basePath + relPath), relPath, [], [], {},\n false));\n this.loadDeps_();\n };\n\n\n \/**\n * Notifies the debug loader when a dependency has been requested.\n *\n * @param {string} absPathOrId Path of the dependency or goog id.\n * @param {boolean=} opt_force\n *\/\n goog.DebugLoader_.prototype.requested = function(absPathOrId, opt_force) {\n var path = this.getPathFromDeps_(absPathOrId);\n if (path &&\n (opt_force || this.areDepsLoaded_(this.dependencies_[path].requires))) {\n var callback = this.deferredCallbacks_[path];\n if (callback) {\n delete this.deferredCallbacks_[path];\n callback();\n }\n }\n };\n\n\n \/**\n * Sets the dependency factory, which can be used to create custom\n * goog.Dependency implementations to control how dependencies are loaded.\n *\n * @param {!goog.DependencyFactory} factory\n *\/\n goog.DebugLoader_.prototype.setDependencyFactory = function(factory) {\n this.factory_ = factory;\n };\n\n\n \/**\n * Travserses the dependency graph and queues the given dependency, and all of\n * its transitive dependencies, for loading and then starts loading if not\n * paused.\n *\n * @param {string} namespace\n * @private\n *\/\n goog.DebugLoader_.prototype.load_ = function(namespace) {\n if (!this.getPathFromDeps_(namespace)) {\n var errorMessage = 'goog.require could not find: ' + namespace;\n goog.logToConsole_(errorMessage);\n } else {\n var loader = this;\n\n var deps = [];\n\n \/** @param {string} namespace *\/\n var visit = function(namespace) {\n var path = loader.getPathFromDeps_(namespace);\n\n if (!path) {\n throw new Error('Bad dependency path or symbol: ' + namespace);\n }\n\n if (loader.written_[path]) {\n return;\n }\n\n loader.written_[path] = true;\n\n var dep = loader.dependencies_[path];\n for (var i = 0; i < dep.requires.length; i++) {\n if (!goog.isProvided_(dep.requires[i])) {\n visit(dep.requires[i]);\n }\n }\n\n deps.push(dep);\n };\n\n visit(namespace);\n\n var wasLoading = !!this.depsToLoad_.length;\n this.depsToLoad_ = this.depsToLoad_.concat(deps);\n\n if (!this.paused_ && !wasLoading) {\n this.loadDeps_();\n }\n }\n };\n\n\n \/**\n * Loads any queued dependencies until they are all loaded or paused.\n *\n * @private\n *\/\n goog.DebugLoader_.prototype.loadDeps_ = function() {\n var loader = this;\n var paused = this.paused_;\n\n while (this.depsToLoad_.length && !paused) {\n (function() {\n var loadCallDone = false;\n var dep = loader.depsToLoad_.shift();\n\n var loaded = false;\n loader.loading_(dep);\n\n var controller = {\n pause: function() {\n if (loadCallDone) {\n throw new Error('Cannot call pause after the call to load.');\n } else {\n paused = true;\n }\n },\n resume: function() {\n if (loadCallDone) {\n loader.resume_();\n } else {\n \/\/ Some dep called pause and then resume in the same load call.\n \/\/ Just keep running this same loop.\n paused = false;\n }\n },\n loaded: function() {\n if (loaded) {\n throw new Error('Double call to loaded.');\n }\n\n loaded = true;\n loader.loaded_(dep);\n },\n pending: function() {\n \/\/ Defensive copy.\n var pending = [];\n for (var i = 0; i < loader.loadingDeps_.length; i++) {\n pending.push(loader.loadingDeps_[i]);\n }\n return pending;\n },\n \/**\n * @param {goog.ModuleType} type\n *\/\n setModuleState: function(type) {\n goog.moduleLoaderState_ = {\n type: type,\n moduleName: '',\n declareLegacyNamespace: false\n };\n },\n \/** @type {function(string, string, string=)} *\/\n registerEs6ModuleExports: function(\n path, exports, opt_closureNamespace) {\n if (opt_closureNamespace) {\n goog.loadedModules_[opt_closureNamespace] = {\n exports: exports,\n type: goog.ModuleType.ES6,\n moduleId: opt_closureNamespace || ''\n };\n }\n },\n \/** @type {function(string, ?)} *\/\n registerGoogModuleExports: function(moduleId, exports) {\n goog.loadedModules_[moduleId] = {\n exports: exports,\n type: goog.ModuleType.GOOG,\n moduleId: moduleId\n };\n },\n clearModuleState: function() {\n goog.moduleLoaderState_ = null;\n },\n defer: function(callback) {\n if (loadCallDone) {\n throw new Error(\n 'Cannot register with defer after the call to load.');\n }\n loader.defer_(dep, callback);\n },\n areDepsLoaded: function() {\n return loader.areDepsLoaded_(dep.requires);\n }\n };\n\n try {\n dep.load(controller);\n } finally {\n loadCallDone = true;\n }\n })();\n }\n\n if (paused) {\n this.pause_();\n }\n };\n\n\n \/** @private *\/\n goog.DebugLoader_.prototype.pause_ = function() {\n this.paused_ = true;\n };\n\n\n \/** @private *\/\n goog.DebugLoader_.prototype.resume_ = function() {\n if (this.paused_) {\n this.paused_ = false;\n this.loadDeps_();\n }\n };\n\n\n \/**\n * Marks the given dependency as loading (load has been called but it has not\n * yet marked itself as finished). Useful for dependencies that want to know\n * what else is loading. Example: goog.modules cannot eval if there are\n * loading dependencies.\n *\n * @param {!goog.Dependency} dep\n * @private\n *\/\n goog.DebugLoader_.prototype.loading_ = function(dep) {\n this.loadingDeps_.push(dep);\n };\n\n\n \/**\n * Marks the given dependency as having finished loading and being available\n * for require.\n *\n * @param {!goog.Dependency} dep\n * @private\n *\/\n goog.DebugLoader_.prototype.loaded_ = function(dep) {\n for (var i = 0; i < this.loadingDeps_.length; i++) {\n if (this.loadingDeps_[i] == dep) {\n this.loadingDeps_.splice(i, 1);\n break;\n }\n }\n\n for (var i = 0; i < this.deferredQueue_.length; i++) {\n if (this.deferredQueue_[i] == dep.path) {\n this.deferredQueue_.splice(i, 1);\n break;\n }\n }\n\n if (this.loadingDeps_.length == this.deferredQueue_.length &&\n !this.depsToLoad_.length) {\n \/\/ Something has asked to load these, but they may not be directly\n \/\/ required again later, so load them now that we know we're done loading\n \/\/ everything else. e.g. a goog module entry point.\n while (this.deferredQueue_.length) {\n this.requested(this.deferredQueue_.shift(), true);\n }\n }\n\n dep.loaded();\n };\n\n\n \/**\n * @param {!Array<string>} pathsOrIds\n * @return {boolean}\n * @private\n *\/\n goog.DebugLoader_.prototype.areDepsLoaded_ = function(pathsOrIds) {\n for (var i = 0; i < pathsOrIds.length; i++) {\n var path = this.getPathFromDeps_(pathsOrIds[i]);\n if (!path ||\n (!(path in this.deferredCallbacks_) &&\n !goog.isProvided_(pathsOrIds[i]))) {\n return false;\n }\n }\n\n return true;\n };\n\n\n \/**\n * @param {string} absPathOrId\n * @return {?string}\n * @private\n *\/\n goog.DebugLoader_.prototype.getPathFromDeps_ = function(absPathOrId) {\n if (absPathOrId in this.idToPath_) {\n return this.idToPath_[absPathOrId];\n } else if (absPathOrId in this.dependencies_) {\n return absPathOrId;\n } else {\n return null;\n }\n };\n\n\n \/**\n * @param {!goog.Dependency} dependency\n * @param {!Function} callback\n * @private\n *\/\n goog.DebugLoader_.prototype.defer_ = function(dependency, callback) {\n this.deferredCallbacks_[dependency.path] = callback;\n this.deferredQueue_.push(dependency.path);\n };\n\n\n \/**\n * Interface for goog.Dependency implementations to have some control over\n * loading of dependencies.\n *\n * @record\n *\/\n goog.LoadController = function() {};\n\n\n \/**\n * Tells the controller to halt loading of more dependencies.\n *\/\n goog.LoadController.prototype.pause = function() {};\n\n\n \/**\n * Tells the controller to resume loading of more dependencies if paused.\n *\/\n goog.LoadController.prototype.resume = function() {};\n\n\n \/**\n * Tells the controller that this dependency has finished loading.\n *\n * This causes this to be removed from pending() and any load callbacks to\n * fire.\n *\/\n goog.LoadController.prototype.loaded = function() {};\n\n\n \/**\n * List of dependencies on which load has been called but which have not\n * called loaded on their controller. This includes the current dependency.\n *\n * @return {!Array<!goog.Dependency>}\n *\/\n goog.LoadController.prototype.pending = function() {};\n\n\n \/**\n * Registers an object as an ES6 module's exports so that goog.modules may\n * require it by path.\n *\n * @param {string} path Full path of the module.\n * @param {?} exports\n * @param {string=} opt_closureNamespace Closure namespace to associate with\n * this module.\n *\/\n goog.LoadController.prototype.registerEs6ModuleExports = function(\n path, exports, opt_closureNamespace) {};\n\n\n \/**\n * Sets the current module state.\n *\n * @param {goog.ModuleType} type Type of module.\n *\/\n goog.LoadController.prototype.setModuleState = function(type) {};\n\n\n \/**\n * Clears the current module state.\n *\/\n goog.LoadController.prototype.clearModuleState = function() {};\n\n\n \/**\n * Registers a callback to call once the dependency is actually requested\n * via goog.require + all of the immediate dependencies have been loaded or\n * all other files have been loaded. Allows for lazy loading until\n * require'd without pausing dependency loading, which is needed on old IE.\n *\n * @param {!Function} callback\n *\/\n goog.LoadController.prototype.defer = function(callback) {};\n\n\n \/**\n * @return {boolean}\n *\/\n goog.LoadController.prototype.areDepsLoaded = function() {};\n\n\n \/**\n * Basic super class for all dependencies Closure Library can load.\n *\n * This default implementation is designed to load untranspiled, non-module\n * scripts in a web broswer.\n *\n * For transpiled non-goog.module files {@see goog.TranspiledDependency}.\n * For goog.modules see {@see goog.GoogModuleDependency}.\n * For untranspiled ES6 modules {@see goog.Es6ModuleDependency}.\n *\n * @param {string} path Absolute path of this script.\n * @param {string} relativePath Path of this script relative to goog.basePath.\n * @param {!Array<string>} provides goog.provided or goog.module symbols\n * in this file.\n * @param {!Array<string>} requires goog symbols or relative paths to Closure\n * this depends on.\n * @param {!Object<string, string>} loadFlags\n * @struct @constructor\n *\/\n goog.Dependency = function(\n path, relativePath, provides, requires, loadFlags) {\n \/** @const *\/\n this.path = path;\n \/** @const *\/\n this.relativePath = relativePath;\n \/** @const *\/\n this.provides = provides;\n \/** @const *\/\n this.requires = requires;\n \/** @const *\/\n this.loadFlags = loadFlags;\n \/** @private {boolean} *\/\n this.loaded_ = false;\n \/** @private {!Array<function()>} *\/\n this.loadCallbacks_ = [];\n };\n\n\n \/**\n * @return {string} The pathname part of this dependency's path if it is a\n * URI.\n *\/\n goog.Dependency.prototype.getPathName = function() {\n var pathName = this.path;\n var protocolIndex = pathName.indexOf(':\/\/');\n if (protocolIndex >= 0) {\n pathName = pathName.substring(protocolIndex + 3);\n var slashIndex = pathName.indexOf('\/');\n if (slashIndex >= 0) {\n pathName = pathName.substring(slashIndex + 1);\n }\n }\n return pathName;\n };\n\n\n \/**\n * @param {function()} callback Callback to fire as soon as this has loaded.\n * @final\n *\/\n goog.Dependency.prototype.onLoad = function(callback) {\n if (this.loaded_) {\n callback();\n } else {\n this.loadCallbacks_.push(callback);\n }\n };\n\n\n \/**\n * Marks this dependency as loaded and fires any callbacks registered with\n * onLoad.\n * @final\n *\/\n goog.Dependency.prototype.loaded = function() {\n this.loaded_ = true;\n var callbacks = this.loadCallbacks_;\n this.loadCallbacks_ = [];\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i]();\n }\n };\n\n\n \/**\n * Whether or not document.written \/ appended script tags should be deferred.\n *\n * @private {boolean}\n *\/\n goog.Dependency.defer_ = false;\n\n\n \/**\n * Map of script ready \/ state change callbacks. Old IE cannot handle putting\n * these properties on goog.global.\n *\n * @private @const {!Object<string, function(?):undefined>}\n *\/\n goog.Dependency.callbackMap_ = {};\n\n\n \/**\n * @param {function(...?):?} callback\n * @return {string}\n * @private\n *\/\n goog.Dependency.registerCallback_ = function(callback) {\n var key = Math.random().toString(32);\n goog.Dependency.callbackMap_[key] = callback;\n return key;\n };\n\n\n \/**\n * @param {string} key\n * @private\n *\/\n goog.Dependency.unregisterCallback_ = function(key) {\n delete goog.Dependency.callbackMap_[key];\n };\n\n\n \/**\n * @param {string} key\n * @param {...?} var_args\n * @private\n * @suppress {unusedPrivateMembers}\n *\/\n goog.Dependency.callback_ = function(key, var_args) {\n if (key in goog.Dependency.callbackMap_) {\n var callback = goog.Dependency.callbackMap_[key];\n var args = [];\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n callback.apply(undefined, args);\n } else {\n var errorMessage = 'Callback key ' + key +\n ' does not exist (was base.js loaded more than once?).';\n throw Error(errorMessage);\n }\n };\n\n\n \/**\n * Starts loading this dependency. This dependency can pause loading if it\n * needs to and resume it later via the controller interface.\n *\n * When this is loaded it should call controller.loaded(). Note that this will\n * end up calling the loaded method of this dependency; there is no need to\n * call it explicitly.\n *\n * @param {!goog.LoadController} controller\n *\/\n goog.Dependency.prototype.load = function(controller) {\n if (goog.global.CLOSURE_IMPORT_SCRIPT) {\n if (goog.global.CLOSURE_IMPORT_SCRIPT(this.path)) {\n controller.loaded();\n } else {\n controller.pause();\n }\n return;\n }\n\n if (!goog.inHtmlDocument_()) {\n goog.logToConsole_(\n 'Cannot use default debug loader outside of HTML documents.');\n if (this.relativePath == 'deps.js') {\n \/\/ Some old code is relying on base.js auto loading deps.js failing with\n \/\/ no error before later setting CLOSURE_IMPORT_SCRIPT.\n \/\/ CLOSURE_IMPORT_SCRIPT should be set *before* base.js is loaded, or\n \/\/ CLOSURE_NO_DEPS set to true.\n goog.logToConsole_(\n 'Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, ' +\n 'or setting CLOSURE_NO_DEPS to true.');\n controller.loaded();\n } else {\n controller.pause();\n }\n return;\n }\n\n \/** @type {!HTMLDocument} *\/\n var doc = goog.global.document;\n\n \/\/ If the user tries to require a new symbol after document load,\n \/\/ something has gone terribly wrong. Doing a document.write would\n \/\/ wipe out the page. This does not apply to the CSP-compliant method\n \/\/ of writing script tags.\n if (doc.readyState == 'complete' &&\n !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) {\n \/\/ Certain test frameworks load base.js multiple times, which tries\n \/\/ to write deps.js each time. If that happens, just fail silently.\n \/\/ These frameworks wipe the page between each load of base.js, so this\n \/\/ is OK.\n var isDeps = \/\\bdeps.js$\/.test(this.path);\n if (isDeps) {\n controller.loaded();\n return;\n } else {\n throw Error('Cannot write \"' + this.path + '\" after document load');\n }\n }\n\n var nonce = goog.getScriptNonce_();\n if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING &&\n goog.isDocumentLoading_()) {\n var key;\n var callback = function(script) {\n if (script.readyState && script.readyState != 'complete') {\n script.onload = callback;\n return;\n }\n goog.Dependency.unregisterCallback_(key);\n controller.loaded();\n };\n key = goog.Dependency.registerCallback_(callback);\n\n var defer = goog.Dependency.defer_ ? ' defer' : '';\n var nonceAttr = nonce ? ' nonce=\"' + nonce + '\"' : '';\n var script = '<script src=\"' + this.path + '\"' + nonceAttr + defer +\n ' id=\"script-' + key + '\"><\\\/script>';\n\n script += '<script' + nonceAttr + '>';\n\n if (goog.Dependency.defer_) {\n script += 'document.getElementById(\\'script-' + key +\n '\\').onload = function() {\\n' +\n ' goog.Dependency.callback_(\\'' + key + '\\', this);\\n' +\n '};\\n';\n } else {\n script += 'goog.Dependency.callback_(\\'' + key +\n '\\', document.getElementById(\\'script-' + key + '\\'));';\n }\n\n script += '<\\\/script>';\n\n doc.write(\n goog.TRUSTED_TYPES_POLICY_ ?\n goog.TRUSTED_TYPES_POLICY_.createHTML(script) :\n script);\n } else {\n var scriptEl =\n \/** @type {!HTMLScriptElement} *\/ (doc.createElement('script'));\n scriptEl.defer = goog.Dependency.defer_;\n scriptEl.async = false;\n\n \/\/ If CSP nonces are used, propagate them to dynamically created scripts.\n \/\/ This is necessary to allow nonce-based CSPs without 'strict-dynamic'.\n if (nonce) {\n scriptEl.nonce = nonce;\n }\n\n if (goog.DebugLoader_.IS_OLD_IE_) {\n \/\/ Execution order is not guaranteed on old IE, halt loading and write\n \/\/ these scripts one at a time, after each loads.\n controller.pause();\n scriptEl.onreadystatechange = function() {\n if (scriptEl.readyState == 'loaded' ||\n scriptEl.readyState == 'complete') {\n controller.loaded();\n controller.resume();\n }\n };\n } else {\n scriptEl.onload = function() {\n scriptEl.onload = null;\n controller.loaded();\n };\n }\n\n scriptEl.src = goog.TRUSTED_TYPES_POLICY_ ?\n goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path) :\n this.path;\n doc.head.appendChild(scriptEl);\n }\n };\n\n\n \/**\n * @param {string} path Absolute path of this script.\n * @param {string} relativePath Path of this script relative to goog.basePath.\n * @param {!Array<string>} provides Should be an empty array.\n * TODO(johnplaisted) add support for adding closure namespaces to ES6\n * modules for interop purposes.\n * @param {!Array<string>} requires goog symbols or relative paths to Closure\n * this depends on.\n * @param {!Object<string, string>} loadFlags\n * @struct @constructor\n * @extends {goog.Dependency}\n *\/\n goog.Es6ModuleDependency = function(\n path, relativePath, provides, requires, loadFlags) {\n goog.Es6ModuleDependency.base(\n this, 'constructor', path, relativePath, provides, requires, loadFlags);\n };\n goog.inherits(goog.Es6ModuleDependency, goog.Dependency);\n\n\n \/**\n * @override\n * @param {!goog.LoadController} controller\n *\/\n goog.Es6ModuleDependency.prototype.load = function(controller) {\n if (goog.global.CLOSURE_IMPORT_SCRIPT) {\n if (goog.global.CLOSURE_IMPORT_SCRIPT(this.path)) {\n controller.loaded();\n } else {\n controller.pause();\n }\n return;\n }\n\n if (!goog.inHtmlDocument_()) {\n goog.logToConsole_(\n 'Cannot use default debug loader outside of HTML documents.');\n controller.pause();\n return;\n }\n\n \/** @type {!HTMLDocument} *\/\n var doc = goog.global.document;\n\n var dep = this;\n\n \/\/ TODO(johnplaisted): Does document.writing really speed up anything? Any\n \/\/ difference between this and just waiting for interactive mode and then\n \/\/ appending?\n function write(src, contents) {\n var nonceAttr = '';\n var nonce = goog.getScriptNonce_();\n if (nonce) {\n nonceAttr = ' nonce=\"' + nonce + '\"';\n }\n\n if (contents) {\n var script = '<script type=\"module\" crossorigin' + nonceAttr + '>' +\n contents + '<\/' +\n 'script>';\n doc.write(\n goog.TRUSTED_TYPES_POLICY_ ?\n goog.TRUSTED_TYPES_POLICY_.createHTML(script) :\n script);\n } else {\n var script = '<script type=\"module\" crossorigin src=\"' + src + '\"' +\n nonceAttr + '><\/' +\n 'script>';\n doc.write(\n goog.TRUSTED_TYPES_POLICY_ ?\n goog.TRUSTED_TYPES_POLICY_.createHTML(script) :\n script);\n }\n }\n\n function append(src, contents) {\n var scriptEl =\n \/** @type {!HTMLScriptElement} *\/ (doc.createElement('script'));\n scriptEl.defer = true;\n scriptEl.async = false;\n scriptEl.type = 'module';\n scriptEl.setAttribute('crossorigin', true);\n\n \/\/ If CSP nonces are used, propagate them to dynamically created scripts.\n \/\/ This is necessary to allow nonce-based CSPs without 'strict-dynamic'.\n var nonce = goog.getScriptNonce_();\n if (nonce) {\n scriptEl.nonce = nonce;\n }\n\n if (contents) {\n scriptEl.text = goog.TRUSTED_TYPES_POLICY_ ?\n goog.TRUSTED_TYPES_POLICY_.createScript(contents) :\n contents;\n } else {\n scriptEl.src = goog.TRUSTED_TYPES_POLICY_ ?\n goog.TRUSTED_TYPES_POLICY_.createScriptURL(src) :\n src;\n }\n\n doc.head.appendChild(scriptEl);\n }\n\n var create;\n\n if (goog.isDocumentLoading_()) {\n create = write;\n \/\/ We can ONLY call document.write if we are guaranteed that any\n \/\/ non-module script tags document.written after this are deferred.\n \/\/ Small optimization, in theory document.writing is faster.\n goog.Dependency.defer_ = true;\n } else {\n create = append;\n }\n\n \/\/ Write 4 separate tags here:\n \/\/ 1) Sets the module state at the correct time (just before execution).\n \/\/ 2) A src node for this, which just hopefully lets the browser load it a\n \/\/ little early (no need to parse #3).\n \/\/ 3) Import the module and register it.\n \/\/ 4) Clear the module state at the correct time. Guaranteed to run even\n \/\/ if there is an error in the module (#3 will not run if there is an\n \/\/ error in the module).\n var beforeKey = goog.Dependency.registerCallback_(function() {\n goog.Dependency.unregisterCallback_(beforeKey);\n controller.setModuleState(goog.ModuleType.ES6);\n });\n create(undefined, 'goog.Dependency.callback_(\"' + beforeKey + '\")');\n\n \/\/ TODO(johnplaisted): Does this really speed up anything?\n create(this.path, undefined);\n\n var registerKey = goog.Dependency.registerCallback_(function(exports) {\n goog.Dependency.unregisterCallback_(registerKey);\n controller.registerEs6ModuleExports(\n dep.path, exports, goog.moduleLoaderState_.moduleName);\n });\n create(\n undefined,\n 'import * as m from \"' + this.path + '\"; goog.Dependency.callback_(\"' +\n registerKey + '\", m)');\n\n var afterKey = goog.Dependency.registerCallback_(function() {\n goog.Dependency.unregisterCallback_(afterKey);\n controller.clearModuleState();\n controller.loaded();\n });\n create(undefined, 'goog.Dependency.callback_(\"' + afterKey + '\")');\n };\n\n\n \/**\n * Superclass of any dependency that needs to be loaded into memory,\n * transformed, and then eval'd (goog.modules and transpiled files).\n *\n * @param {string} path Absolute path of this script.\n * @param {string} relativePath Path of this script relative to goog.basePath.\n * @param {!Array<string>} provides goog.provided or goog.module symbols\n * in this file.\n * @param {!Array<string>} requires goog symbols or relative paths to Closure\n * this depends on.\n * @param {!Object<string, string>} loadFlags\n * @struct @constructor @abstract\n * @extends {goog.Dependency}\n *\/\n goog.TransformedDependency = function(\n path, relativePath, provides, requires, loadFlags) {\n goog.TransformedDependency.base(\n this, 'constructor', path, relativePath, provides, requires, loadFlags);\n \/** @private {?string} *\/\n this.contents_ = null;\n\n \/**\n * Whether to lazily make the synchronous XHR (when goog.require'd) or make\n * the synchronous XHR when initially loading. On FireFox 61 there is a bug\n * where an ES6 module cannot make a synchronous XHR (rather, it can, but if\n * it does then no other ES6 modules will load after).\n *\n * tl;dr we lazy load due to bugs on older browsers and eager load due to\n * bugs on newer ones.\n *\n * https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1477090\n *\n * @private @const {boolean}\n *\/\n this.lazyFetch_ = !goog.inHtmlDocument_() ||\n !('noModule' in goog.global.document.createElement('script'));\n };\n goog.inherits(goog.TransformedDependency, goog.Dependency);\n\n\n \/**\n * @override\n * @param {!goog.LoadController} controller\n *\/\n goog.TransformedDependency.prototype.load = function(controller) {\n var dep = this;\n\n function fetch() {\n dep.contents_ = goog.loadFileSync_(dep.path);\n\n if (dep.contents_) {\n dep.contents_ = dep.transform(dep.contents_);\n if (dep.contents_) {\n dep.contents_ += '\\n\/\/# sourceURL=' + dep.path;\n }\n }\n }\n\n if (goog.global.CLOSURE_IMPORT_SCRIPT) {\n fetch();\n if (this.contents_ &&\n goog.global.CLOSURE_IMPORT_SCRIPT('', this.contents_)) {\n this.contents_ = null;\n controller.loaded();\n } else {\n controller.pause();\n }\n return;\n }\n\n\n var isEs6 = this.loadFlags['module'] == goog.ModuleType.ES6;\n\n if (!this.lazyFetch_) {\n fetch();\n }\n\n function load() {\n if (dep.lazyFetch_) {\n fetch();\n }\n\n if (!dep.contents_) {\n \/\/ loadFileSync_ or transform are responsible. Assume they logged an\n \/\/ error.\n return;\n }\n\n if (isEs6) {\n controller.setModuleState(goog.ModuleType.ES6);\n }\n\n var namespace;\n\n try {\n var contents = dep.contents_;\n dep.contents_ = null;\n goog.globalEval(goog.CLOSURE_EVAL_PREFILTER_.createScript(contents));\n if (isEs6) {\n namespace = goog.moduleLoaderState_.moduleName;\n }\n } finally {\n if (isEs6) {\n controller.clearModuleState();\n }\n }\n\n if (isEs6) {\n \/\/ Due to circular dependencies this may not be available for require\n \/\/ right now.\n goog.global['$jscomp']['require']['ensure'](\n [dep.getPathName()], function() {\n controller.registerEs6ModuleExports(\n dep.path,\n goog.global['$jscomp']['require'](dep.getPathName()),\n namespace);\n });\n }\n\n controller.loaded();\n }\n\n \/\/ Do not fetch now; in FireFox 47 the synchronous XHR doesn't block all\n \/\/ events. If we fetched now and then document.write'd the contents the\n \/\/ document.write would be an eval and would execute too soon! Instead write\n \/\/ a script tag to fetch and eval synchronously at the correct time.\n function fetchInOwnScriptThenLoad() {\n \/** @type {!HTMLDocument} *\/\n var doc = goog.global.document;\n\n var key = goog.Dependency.registerCallback_(function() {\n goog.Dependency.unregisterCallback_(key);\n load();\n });\n\n var nonce = goog.getScriptNonce_();\n var nonceAttr = nonce ? ' nonce=\"' + nonce + '\"' : '';\n var script = '<script' + nonceAttr + '>' +\n goog.protectScriptTag_('goog.Dependency.callback_(\"' + key + '\");') +\n '<\/' +\n 'script>';\n doc.write(\n goog.TRUSTED_TYPES_POLICY_ ?\n goog.TRUSTED_TYPES_POLICY_.createHTML(script) :\n script);\n }\n\n \/\/ If one thing is pending it is this.\n var anythingElsePending = controller.pending().length > 1;\n\n \/\/ If anything else is loading we need to lazy load due to bugs in old IE.\n \/\/ Specifically script tags with src and script tags with contents could\n \/\/ execute out of order if document.write is used, so we cannot use\n \/\/ document.write. Do not pause here; it breaks old IE as well.\n var useOldIeWorkAround =\n anythingElsePending && goog.DebugLoader_.IS_OLD_IE_;\n\n \/\/ Additionally if we are meant to defer scripts but the page is still\n \/\/ loading (e.g. an ES6 module is loading) then also defer. Or if we are\n \/\/ meant to defer and anything else is pending then defer (those may be\n \/\/ scripts that did not need transformation and are just script tags with\n \/\/ defer set to true, and we need to evaluate after that deferred script).\n var needsAsyncLoading = goog.Dependency.defer_ &&\n (anythingElsePending || goog.isDocumentLoading_());\n\n if (useOldIeWorkAround || needsAsyncLoading) {\n \/\/ Note that we only defer when we have to rather than 100% of the time.\n \/\/ Always defering would work, but then in theory the order of\n \/\/ goog.require calls would then matter. We want to enforce that most of\n \/\/ the time the order of the require calls does not matter.\n controller.defer(function() {\n load();\n });\n return;\n }\n \/\/ TODO(johnplaisted): Externs are missing onreadystatechange for\n \/\/ HTMLDocument.\n \/** @type {?} *\/\n var doc = goog.global.document;\n\n var isInternetExplorerOrEdge = goog.inHtmlDocument_() &&\n ('ActiveXObject' in goog.global || goog.isEdge_());\n\n \/\/ Don't delay in any version of IE or pre-Chromium Edge. There's a bug\n \/\/ around this that will cause out of order script execution. This means\n \/\/ that on older IE ES6 modules will load too early (while the document is\n \/\/ still loading + the dom is not available). The other option is to load\n \/\/ too late (when the document is complete and the onload even will never\n \/\/ fire). This seems to be the lesser of two evils as scripts already act\n \/\/ like the former.\n if (isEs6 && goog.inHtmlDocument_() && goog.isDocumentLoading_() &&\n !isInternetExplorerOrEdge) {\n goog.Dependency.defer_ = true;\n \/\/ Transpiled ES6 modules still need to load like regular ES6 modules,\n \/\/ aka only after the document is interactive.\n controller.pause();\n var oldCallback = doc.onreadystatechange;\n doc.onreadystatechange = function() {\n if (doc.readyState == 'interactive') {\n doc.onreadystatechange = oldCallback;\n load();\n controller.resume();\n }\n if (typeof oldCallback === 'function') {\n oldCallback.apply(undefined, arguments);\n }\n };\n } else {\n \/\/ Always eval on old IE.\n if (goog.DebugLoader_.IS_OLD_IE_ || !goog.inHtmlDocument_() ||\n !goog.isDocumentLoading_()) {\n load();\n } else {\n fetchInOwnScriptThenLoad();\n }\n }\n };\n\n\n \/**\n * @param {string} contents\n * @return {string}\n * @abstract\n *\/\n goog.TransformedDependency.prototype.transform = function(contents) {};\n\n\n \/**\n * Any non-goog.module dependency which needs to be transpiled before eval.\n *\n * @param {string} path Absolute path of this script.\n * @param {string} relativePath Path of this script relative to goog.basePath.\n * @param {!Array<string>} provides goog.provided or goog.module symbols\n * in this file.\n * @param {!Array<string>} requires goog symbols or relative paths to Closure\n * this depends on.\n * @param {!Object<string, string>} loadFlags\n * @param {!goog.Transpiler} transpiler\n * @struct @constructor\n * @extends {goog.TransformedDependency}\n *\/\n goog.TranspiledDependency = function(\n path, relativePath, provides, requires, loadFlags, transpiler) {\n goog.TranspiledDependency.base(\n this, 'constructor', path, relativePath, provides, requires, loadFlags);\n \/** @protected @const*\/\n this.transpiler = transpiler;\n };\n goog.inherits(goog.TranspiledDependency, goog.TransformedDependency);\n\n\n \/**\n * @override\n * @param {string} contents\n * @return {string}\n *\/\n goog.TranspiledDependency.prototype.transform = function(contents) {\n \/\/ Transpile with the pathname so that ES6 modules are domain agnostic.\n return this.transpiler.transpile(contents, this.getPathName());\n };\n\n\n \/**\n * An ES6 module dependency that was transpiled to a jscomp module outside\n * of the debug loader, e.g. server side.\n *\n * @param {string} path Absolute path of this script.\n * @param {string} relativePath Path of this script relative to goog.basePath.\n * @param {!Array<string>} provides goog.provided or goog.module symbols\n * in this file.\n * @param {!Array<string>} requires goog symbols or relative paths to Closure\n * this depends on.\n * @param {!Object<string, string>} loadFlags\n * @struct @constructor\n * @extends {goog.TransformedDependency}\n *\/\n goog.PreTranspiledEs6ModuleDependency = function(\n path, relativePath, provides, requires, loadFlags) {\n goog.PreTranspiledEs6ModuleDependency.base(\n this, 'constructor', path, relativePath, provides, requires, loadFlags);\n };\n goog.inherits(\n goog.PreTranspiledEs6ModuleDependency, goog.TransformedDependency);\n\n\n \/**\n * @override\n * @param {string} contents\n * @return {string}\n *\/\n goog.PreTranspiledEs6ModuleDependency.prototype.transform = function(\n contents) {\n return contents;\n };\n\n\n \/**\n * A goog.module, transpiled or not. Will always perform some minimal\n * transformation even when not transpiled to wrap in a goog.loadModule\n * statement.\n *\n * @param {string} path Absolute path of this script.\n * @param {string} relativePath Path of this script relative to goog.basePath.\n * @param {!Array<string>} provides goog.provided or goog.module symbols\n * in this file.\n * @param {!Array<string>} requires goog symbols or relative paths to Closure\n * this depends on.\n * @param {!Object<string, string>} loadFlags\n * @param {boolean} needsTranspile\n * @param {!goog.Transpiler} transpiler\n * @struct @constructor\n * @extends {goog.TransformedDependency}\n *\/\n goog.GoogModuleDependency = function(\n path, relativePath, provides, requires, loadFlags, needsTranspile,\n transpiler) {\n goog.GoogModuleDependency.base(\n this, 'constructor', path, relativePath, provides, requires, loadFlags);\n \/** @private @const *\/\n this.needsTranspile_ = needsTranspile;\n \/** @private @const *\/\n this.transpiler_ = transpiler;\n };\n goog.inherits(goog.GoogModuleDependency, goog.TransformedDependency);\n\n\n \/**\n * @override\n * @param {string} contents\n * @return {string}\n *\/\n goog.GoogModuleDependency.prototype.transform = function(contents) {\n if (this.needsTranspile_) {\n contents = this.transpiler_.transpile(contents, this.getPathName());\n }\n\n if (!goog.LOAD_MODULE_USING_EVAL || goog.global.JSON === undefined) {\n return '' +\n 'goog.loadModule(function(exports) {' +\n '\"use strict\";' + contents +\n '\\n' + \/\/ terminate any trailing single line comment.\n ';return exports' +\n '});' +\n '\\n\/\/# sourceURL=' + this.path + '\\n';\n } else {\n return '' +\n 'goog.loadModule(' +\n goog.global.JSON.stringify(\n contents + '\\n\/\/# sourceURL=' + this.path + '\\n') +\n ');';\n }\n };\n\n\n \/**\n * Whether the browser is IE9 or earlier, which needs special handling\n * for deferred modules.\n * @const @private {boolean}\n *\/\n goog.DebugLoader_.IS_OLD_IE_ = !!(\n !goog.global.atob && goog.global.document && goog.global.document['all']);\n\n\n \/**\n * @param {string} relPath\n * @param {!Array<string>|undefined} provides\n * @param {!Array<string>} requires\n * @param {boolean|!Object<string>=} opt_loadFlags\n * @see goog.addDependency\n *\/\n goog.DebugLoader_.prototype.addDependency = function(\n relPath, provides, requires, opt_loadFlags) {\n provides = provides || [];\n relPath = relPath.replace(\/\\\\\/g, '\/');\n var path = goog.normalizePath_(goog.basePath + relPath);\n if (!opt_loadFlags || typeof opt_loadFlags === 'boolean') {\n opt_loadFlags = opt_loadFlags ? {'module': goog.ModuleType.GOOG} : {};\n }\n var dep = this.factory_.createDependency(\n path, relPath, provides, requires, opt_loadFlags,\n goog.transpiler_.needsTranspile(\n opt_loadFlags['lang'] || 'es3', opt_loadFlags['module']));\n this.dependencies_[path] = dep;\n for (var i = 0; i < provides.length; i++) {\n this.idToPath_[provides[i]] = path;\n }\n this.idToPath_[relPath] = path;\n };\n\n\n \/**\n * Creates goog.Dependency instances for the debug loader to load.\n *\n * Should be overridden to have the debug loader use custom subclasses of\n * goog.Dependency.\n *\n * @param {!goog.Transpiler} transpiler\n * @struct @constructor\n *\/\n goog.DependencyFactory = function(transpiler) {\n \/** @protected @const *\/\n this.transpiler = transpiler;\n };\n\n\n \/**\n * @param {string} path Absolute path of the file.\n * @param {string} relativePath Path relative to closure\u2019s base.js.\n * @param {!Array<string>} provides Array of provided goog.provide\/module ids.\n * @param {!Array<string>} requires Array of required goog.provide\/module \/\n * relative ES6 module paths.\n * @param {!Object<string, string>} loadFlags\n * @param {boolean} needsTranspile True if the file needs to be transpiled\n * per the goog.Transpiler.\n * @return {!goog.Dependency}\n *\/\n goog.DependencyFactory.prototype.createDependency = function(\n path, relativePath, provides, requires, loadFlags, needsTranspile) {\n\n if (loadFlags['module'] == goog.ModuleType.GOOG) {\n return new goog.GoogModuleDependency(\n path, relativePath, provides, requires, loadFlags, needsTranspile,\n this.transpiler);\n } else if (needsTranspile) {\n return new goog.TranspiledDependency(\n path, relativePath, provides, requires, loadFlags, this.transpiler);\n } else {\n if (loadFlags['module'] == goog.ModuleType.ES6) {\n if (goog.TRANSPILE == 'never' && goog.ASSUME_ES_MODULES_TRANSPILED) {\n return new goog.PreTranspiledEs6ModuleDependency(\n path, relativePath, provides, requires, loadFlags);\n } else {\n return new goog.Es6ModuleDependency(\n path, relativePath, provides, requires, loadFlags);\n }\n } else {\n return new goog.Dependency(\n path, relativePath, provides, requires, loadFlags);\n }\n }\n };\n\n\n \/** @private @const *\/\n goog.debugLoader_ = new goog.DebugLoader_();\n\n\n \/**\n * Loads the Closure Dependency file.\n *\n * Exposed a public function so CLOSURE_NO_DEPS can be set to false, base\n * loaded, setDependencyFactory called, and then this called. i.e. allows\n * custom loading of the deps file.\n *\/\n goog.loadClosureDeps = function() {\n goog.debugLoader_.loadClosureDeps();\n };\n\n\n \/**\n * Sets the dependency factory, which can be used to create custom\n * goog.Dependency implementations to control how dependencies are loaded.\n *\n * Note: if you wish to call this function and provide your own implemnetation\n * it is a wise idea to set CLOSURE_NO_DEPS to true, otherwise the dependency\n * file and all of its goog.addDependency calls will use the default factory.\n * You can call goog.loadClosureDeps to load the Closure dependency file\n * later, after your factory is injected.\n *\n * @param {!goog.DependencyFactory} factory\n *\/\n goog.setDependencyFactory = function(factory) {\n goog.debugLoader_.setDependencyFactory(factory);\n };\n\n\n \/**\n * Trusted Types policy for the debug loader.\n * @private @const {?TrustedTypePolicy}\n *\/\n goog.TRUSTED_TYPES_POLICY_ = goog.TRUSTED_TYPES_POLICY_NAME ?\n goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + '#base') :\n null;\n\n if (!goog.global.CLOSURE_NO_DEPS) {\n goog.debugLoader_.loadClosureDeps();\n }\n\n\n \/**\n * Bootstraps the given namespaces and calls the callback once they are\n * available either via goog.require. This is a replacement for using\n * `goog.require` to bootstrap Closure JavaScript. Previously a `goog.require`\n * in an HTML file would guarantee that the require'd namespace was available\n * in the next immediate script tag. With ES6 modules this no longer a\n * guarantee.\n *\n * @param {!Array<string>} namespaces\n * @param {function(): ?} callback Function to call once all the namespaces\n * have loaded. Always called asynchronously.\n *\/\n goog.bootstrap = function(namespaces, callback) {\n goog.debugLoader_.bootstrap(namespaces, callback);\n };\n}\n\n\nif (!COMPILED) {\n var isChrome87 = false;\n \/\/ Cannot run check for Chrome <87 bug in case of strict CSP environments.\n \/\/ TODO(user): Remove once Chrome <87 bug is no longer a problem.\n try {\n isChrome87 = eval(goog.global.trustedTypes.emptyScript) !==\n goog.global.trustedTypes.emptyScript;\n } catch (err) {\n }\n\n \/**\n * Trusted Types for running dev servers.\n *\n * @private @const\n *\/\n goog.CLOSURE_EVAL_PREFILTER_ =\n \/\/ Detect Chrome <87 bug with TT and eval.\n goog.global.trustedTypes && isChrome87 &&\n goog.createTrustedTypesPolicy('goog#base#devonly#eval') ||\n {createScript: goog.identity_};\n}\n"],"names":["frontend.handler.whiteboard\/cleanup!","tl-page","cljs.core.map.cljs$core$IFn$_invoke$arity$2","cljs$core$IFn$_invoke$arity$2","frontend.handler.whiteboard.cleanup_BANG_","p1__88012#","cljs.core.map","tl_page","frontend.handler.whiteboard\/js->clj-keywordize","obj","frontend.handler.whiteboard.js__GT_clj_keywordize","cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic","cljs$core$IFn$_invoke$arity$variadic","cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2","frontend.handler.whiteboard\/get-onboard-whiteboard-edn","frontend.handler.whiteboard.get_onboard_whiteboard_edn","promesa.core.bind","___25251__auto__","js\/fetch","res","logseq.graph_parser.util.safe_read_string.cljs$core$IFn$_invoke$arity$2","logseq.graph_parser.util.safe_read_string","text","promesa.protocols\/-promise","edn","frontend.handler.whiteboard\/build-page-block","page-name","tldraw-page","assets","shapes-index","frontend.handler.whiteboard.build_page_block","page-entity","frontend.db.model\/get-page","cljs.core.PersistentArrayMap","get","tldraw_page","get-k","p1__87933_SHARP_","frontend.util\/time-ms","or__5043__auto__","cljs$core$IFn$_invoke$arity$1","cljs.core.truth_","page_name","frontend.handler.whiteboard\/compute-tx","app","new-id-nonces","db-id-nonces","replace?","frontend.handler.whiteboard.compute_tx","new-shapes","p1__87935#","shape-id->index","cljs.core\/zipmap","cljs.core.range","new_shapes","upsert-shapes","cljs.core\/set","map__87941","cljs.core\/--destructure-map","p__87940","cljs.core.get","cljs.core.assoc.cljs$core$IFn$_invoke$arity$3","cljs$core$IFn$_invoke$arity$3","getShapeById","id","serialized","clojure.set.difference","old-ids","new-ids","created-ids","created-shapes","cljs.core.filter.cljs$core$IFn$_invoke$arity$2","p1__87936#","cljs.core.filter","G__87942","created_ids","deleted-ids","clojure.string\/blank?","repo","frontend.state\/get-current-repo","deleted-shapes","cljs.core\/seq","b","cljs.core.get_in.cljs$core$IFn$_invoke$arity$2","cljs.core.PersistentVector","cljs.core.PersistentVector.EMPTY_NODE","G__87948","G__87949","cljs.core.mapv","cljs.core\/uuid","frontend.db.utils.pull_many.cljs$core$IFn$_invoke$arity$3","frontend.db\/pull-many","deleted-shapes-tx","block","changed-shapes","prev-changed-blocks","G__87953","G__87954","shape","with_timestamps","cljs.core\/contains?","cljs.core.str.cljs$core$IFn$_invoke$arity$1","cljs.core.assoc","frontend.modules.outliner.core\/block-with-timestamps","p1__87937#","with-timestamps","properties","logseq.graph-parser.util\/page-name-sanity-lc","frontend.util\/page-name-sanity-lc","additional-props","logseq.graph-parser.whiteboard\/with-whiteboard-block-props","cljs.core.merge","deleted_shapes_tx","cljs.core.not","replace_QMARK_","deleted_shapes","created_shapes","changed_shapes","frontend.handler.whiteboard\/get-whiteboard-blocks","blocks","frontend.db.model.get_page_blocks_no_cache","frontend.handler.whiteboard.get_whiteboard_blocks","cljs.core.remove","logseq.graph-parser.whiteboard\/shape-block?","frontend.handler.whiteboard\/get-last-root-block","frontend.handler.whiteboard.get_last_root_block","page-id","root-blocks","cljs.core._EQ_","root-block-left-ids","cljs.core.get_in.cljs$core$IFn$_invoke$arity$3","blocks-with-no-next","cljs.core.remove.cljs$core$IFn$_invoke$arity$2","p1__87986#","G__87989","root_block_left_ids","cljs.core\/first","frontend.db.model\/get-whiteboard-id-nonces","frontend.db.model.get_whiteboard_id_nonces","p__49443","map__49444","uuid","p1__49442#","frontend.db.model.get_page_blocks_no_cache.cljs$core$IFn$_invoke$arity$3","frontend.handler.whiteboard\/transact-tldr-delta!","frontend.handler.whiteboard.transact_tldr_delta_BANG_","cljs.core\/second","shapes","page-block","prev-shapes-index","page_block","shape-id->prev-index","cljs.core\/count","cljs.core.map_indexed","idx","Date","js\/Date.now","cljs.core\/-deref","frontend.handler.whiteboard\/*last-shapes-nonce","p1__87955#","cljs.core.update.cljs$core$IFn$_invoke$arity$3","cljs.core.update","cljs.core\/str","map__87961","upserted-blocks","delete-blocks","tx-data","cljs.core.concat","metadata","metadata'","cljs.core.some","p1__87957#","cljs.core\/some","and__5041__auto__","cljs.core\/not-empty","cljs.core.every_QMARK_","p1__87958#","cljs.core\/every?","p1__87959#","cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2","cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4","cljs$core$IFn$_invoke$arity$4","cljs.core\/assoc-in","cljs.core.contains_QMARK_","cljs.core.PersistentHashSet","frontend.state.set_state_BANG_","pending-tx-data","frontend.state\/state","tx-data'","metadata''","frontend.state\/set-state!","frontend.db.utils.transact_BANG_","frontend.handler.whiteboard\/populate-onboarding-whiteboard","api","frontend.handler.whiteboard.populate_onboarding_whiteboard","promesa.core.catch$.cljs$core$IFn$_invoke$arity$2","promesa.core.catch$","p__88004","map__88005","pages","frontend.handler.whiteboard\/build-shapes","tldr-page","logseq.graph-parser.whiteboard\/page-block->tldr-page","bindings","cljs.core.clj__GT_js","frontend.state.set_onboarding_whiteboard_BANG_","e","console","warn","frontend.handler.whiteboard\/should-populate-onboarding-whiteboard?","frontend.handler.whiteboard.should_populate_onboarding_whiteboard_QMARK_","whiteboards","frontend.db.model\/get-all-whiteboards","cljs.core\/empty?","cljs.core\/not","cljs.core\/deref","frontend.extensions.tldraw\/search-handler","q","filters","map__105528","frontend.extensions.tldraw.search_handler","pages?","blocks?","limit","frontend.search.page_search.cljs$core$IFn$_invoke$arity$2","frontend.search.file_search","files","frontend.extensions.tldraw\/save-asset-handler","file","frontend.extensions.tldraw.save_asset_handler","promesa.core.then.cljs$core$IFn$_invoke$arity$2","frontend.handler.editor.save_assets_BANG_.cljs$core$IFn$_invoke$arity$2","frontend.state.get_current_repo","promesa.core.then","temp__5804__auto__","frontend.handler.editor\/resolve-relative-path","cljs.core.nth","_","full-file-path","asset-file-name","frontend.extensions.tldraw.undo","frontend.handler.history.undo_BANG_","frontend.extensions.tldraw.redo","frontend.handler.history.redo_BANG_","frontend.extensions.tldraw\/get-tldraw-handlers","current-whiteboard-name","frontend.extensions.tldraw.get_tldraw_handlers","cljs.core.PersistentHashMap.fromArrays","p1__105535#","frontend.util\/uuid-string?","G__105536","block-id-str","frontend.db\/entity","src","cljs.core\/clj->js","frontend.extensions.pdf.assets\/inflate-asset","page-name-or-uuid","frontend.db.model.get_redirect_page_name.cljs$core$IFn$_invoke$arity$2","frontend.state\/set-current-pdf!","frontend.extensions.pdf.assets.inflate_asset","frontend.handler.whiteboard.create_new_whiteboard_page_BANG_","frontend.util\/mobile?","frontend.handler.editor.insert_first_page_block_if_not_exists_BANG_.cljs$core$IFn$_invoke$arity$2","frontend.db.model\/whiteboard-page?","frontend.handler.editor\/make-asset-url","html","frontend.util.copy_to_clipboard_BANG_.cljs$core$IFn$_invoke$arity$variadic","content","datascript.core\/squuid","datascript.util\/squuid","cljs.core.select_keys","last_root_block","last-root-block","call","frontend.db.utils.transact_BANG_.cljs$core$IFn$_invoke$arity$1","tx","key","frontend.context.i18n.t","cljs.core.keyword","options","frontend.state.set_modal_BANG_.cljs$core$IFn$_invoke$arity$1","frontend.state.set_modal_BANG_","frontend.components.export\/export-blocks","cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic","type","frontend.state\/sidebar-add-block!","frontend.db.model\/get-block-page","cljs.core\/parse-uuid","page-exists?","frontend.db.model\/page-exists?","whiteboard?","frontend.handler.route.redirect_to_whiteboard_BANG_.cljs$core$IFn$_invoke$arity$2","frontend.handler.route.redirect_to_page_BANG_","block-uuid","frontend.db.model\/query-block-by-uuid","cljs.core.Keyword","frontend.extensions.tldraw\/block-reference","files?","frontend.config\/publishing?","beforeLoadModuleCode","module$frontend$tldraw_logseq","shadow.js.require","frontend.extensions.tldraw\/tldraw","frontend.extensions.tldraw.tldraw_renderers","frontend.extensions.tldraw","frontend.rum.adapt_class.cljs$core$IFn$_invoke$arity$2","react_class","frontend.extensions.tldraw.generate_preview","js\/module$frontend$tldraw_logseq","rum.core\/lazy-build","frontend.extensions.tldraw.page_cp","frontend.extensions.tldraw\/page-cp","props","frontend.components.page.page","frontend.extensions.tldraw.block_cp","frontend.extensions.tldraw\/block-cp","G__105527","fexpr__105526","frontend.state.get_component","daiquiri.interpreter\/interpret","frontend.extensions.tldraw.breadcrumb","frontend.extensions.tldraw\/breadcrumb","frontend.components.block.breadcrumb","frontend.extensions.tldraw.tweet","frontend.extensions.tldraw\/tweet","frontend.ui\/tweet-embed","frontend.extensions.tldraw.page_name_link","frontend.extensions.tldraw\/page-name-link","frontend.components.block.page_cp","frontend.extensions.tldraw\/references-count","cljs.core.apply","frontend.components.whiteboard\/references-count","k","frontend.extensions.tldraw.block_reference","frontend.components.block.block_reference","cljs.core.PersistentArrayMap.EMPTY","frontend.extensions.tldraw.keyboard_shortcut","frontend.extensions.tldraw\/keyboard-shortcut","cljs-bean.core\/->clj","map__105534","action","shortcut","frontend.ui\/keyboard-shortcut-from-config","opts","frontend.ui.render_keyboard_shortcut","cljs.core.interpose","p1__105532#","frontend.ui.render_keyboard_shortcut.cljs$core$IFn$_invoke$arity$variadic","frontend.extensions.tldraw.tldraw_app","frontend.extensions.tldraw\/tldraw-app","block-id","on_mount","tln","frontend.extensions.tldraw\/undo","frontend.extensions.tldraw\/redo","populate_onboarding_QMARK_","frontend.state.focus_whiteboard_shape","set-loaded-app","populate-onboarding?","data","frontend.handler.whiteboard\/page-name->tldr!","vec__105538","rum.core.use_state","rum.core\/use-state","loaded-app","rum.core.use_effect_BANG_","cljs.core.List.EMPTY","daiquiri.core\/create-element","onBlur","G__105544","fexpr__105543","frontend.state\/clear-edit!","frontend.util.stop_propagation","frontend.ui.loading.cljs$core$IFn$_invoke$arity$1","frontend.ui.loading","G__105546","frontend.config.PUBLISHING","info","goog.DEBUG","js\/console","k__40589__auto__","res__40590__auto__","frontend.extensions.tldraw.tldraw.cljs$core$IFn$_invoke$arity$1","mm","setLoaded"]}}]} |