vendor: 25,514 bytes, lines 1-9
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/reviews-DhYmmrjA.js","assets/jsx-runtime-DGeXAQPT.js","assets/star-CdJnaaB0.js","assets/createLucideIcon-IrB5uTdA.js","assets/react-vt4WmSOl.js","assets/ReviewForm-Ds_j9oTp.js","assets/textarea-Dlm8KqeI.js","assets/react-dom-um4tKP-X.js","assets/microneedling-brooklyn-heights-NI_8oNwd.js","assets/ServiceBrooklynLanding-C9tSS9t_.js","assets/link-HkuMAk7k.js","assets/ClientOnly-BAe7sELS.js","assets/useStore-Dl4E1gi0.js","assets/arrow-right-ezB9wVT8.js","assets/check-C2FLR9Iu.js","assets/clock-kwMLFdvS.js","assets/PageHero-CrJyWuwQ.js","assets/microneedling-brooklyn-DTM_h_Qn.js","assets/local-citations-CEuED728.js","assets/laser-vein-treatment-brooklyn-heights-B9Qa9znC.js","assets/laser-vein-treatment-brooklyn-RHe7paBm.js","assets/laser-skin-treatments-brooklyn-Df9l-A8V.js","assets/laser-rejuvenation-D1rBt0gH.js","assets/sparkles-CGbE_qG3.js","assets/laser-pigmentation-treatment-brooklyn-heights-BhJ32DNN.js","assets/laser-pigmentation-treatment-brooklyn-CBjtVH6N.js","assets/laser-hair-removal-brooklyn-heights-CdV_Fd26.js","assets/laser-hair-removal-640-SBS075f1.js","assets/laser-hair-removal-brooklyn-BzM5BIdM.js","assets/laser-genesis-brooklyn-heights-C34XhCGl.js","assets/laser-acne-treatment-brooklyn-heights-BNWQ5ZQS.js","assets/laser-acne-treatment-brooklyn-DW2VwsP1.js","assets/landing-DRhGpzU8.js","assets/full-body-laser-hair-removal-brooklyn-B7j1qdFf.js","assets/faq-BGuVt4F-.js","assets/facials-brooklyn-heights-DO6-N9Aq.js","assets/facial-laser-hair-removal-brooklyn-5tcx_yQk.js","assets/cryo-sculpt-brooklyn-heights-V_dhIgj3.js","assets/cryo-sculpt-brooklyn-NaYpe0oY.js","assets/contact-BFTQF5e8.js","assets/redirect-DCb_aIiF.js","assets/createServerFn-CXAMiI0N.js","assets/qss-CuvTgpZA.js","assets/brazilian-laser-hair-removal-brooklyn-V145xXuO.js","assets/auth-Crazd59C.js","assets/about-CjbgepDR.js","assets/route-DK8WoSw6.js","assets/services.index-KyabiTWH.js","assets/locations.index-aAoyLrxK.js","assets/blog.index-CcKt3fBT.js","assets/JournalImage-DX-G_9RD.js","assets/services._slug-W703Szvb.js","assets/services._slug-DdvPO8Jy.js","assets/services._slug-yyDNbdQP.js","assets/locations._slug-DrTz7aUe.js","assets/blog.seventy-two-hour-rest-after-laser-rejuvenation-microneedling-CkfG5IgA.js","assets/calendar-D5GAvTbA.js","assets/blog.pcos-laser-hair-removal-LSGQsj32.js","assets/blog.natural-sun-protection-after-laser-ChVC9-r6.js","assets/blog.keeping-cool-after-laser-hair-removal-CXwIIuf6.js","assets/blog.brazilian-laser-hair-removal-guide-CZMPfCtR.js","assets/blog._slug-BLg2bxIo.js","assets/blog._slug-DnRMShER.js","assets/seo-Bums5srR.js","assets/blog._slug-BgsBvLHQ.js","assets/blog._slug-CP8s97lc.js","assets/profile-BYyoP8J8.js","assets/portal-C-xdMxgF.js","assets/useQuery-Boaa3tNi.js","assets/_._lovable.oauth.consent-D6pbDuAI.js","assets/_._lovable.oauth.consent-70Q3_3zC.js","assets/admin.testimonials-94EZjdn5.js","assets/admin.portal-BdAmC6e6.js","assets/admin.journal-BL7mBn_r.js","assets/admin.inquiries-DZCH6lCZ.js"])))=>i.map(i=>d[i]); 2import{n as e,r as t,t as n}from"./jsx-runtime-DGeXAQPT.js";import{t as r}from"./react-vt4WmSOl.js";import{t as i}from"./react-dom-um4tKP-X.js";import{i as a,n as o,r as s,t as c}from"./createServerFn-CXAMiI0N.js";import{_ as l,a as u,c as d,d as f,f as p,g as m,h,i as g,l as _,m as v,n as y,o as b,p as x,r as ee,s as S,t as C,u as te,v as ne,y as re}from"./useStore-Dl4E1gi0.js";import{C as ie,S as ae,_ as oe,b as se,c as ce,d as le,f as ue,g as w,h as T,l as de,m as fe,n as pe,o as me,r as he,s as ge,t as _e,v as ve,w as ye,x as be,y as xe}from"./ClientOnly-BAe7sELS.js";import{a as Se,i as E,r as Ce,t as we}from"./redirect-DCb_aIiF.js";import{n as Te,t as Ee}from"./qss-CuvTgpZA.js";import{t as De}from"./root-DLTE-HSj.js";import{t as Oe}from"./link-HkuMAk7k.js";import{n as ke}from"./matchContext-B6W89ahp.js";import{n as Ae,t as je}from"./useMatch-ZUWEp0gV.js";import{a as Me,i as Ne,n as D,r as Pe,t as Fe}from"./seo-Bums5srR.js";import{t as Ie}from"./createLucideIcon-IrB5uTdA.js";var Le=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,ee||(ee=!0,ie());else{var t=n(l);t!==null&&se(x,t.startTime-e)}}var ee=!1,S=-1,C=5,te=-1;function ne(){return g?!0:!(e.unstable_now()-te<C)}function re(){if(g=!1,ee){var t=e.unstable_now();te=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(S),S=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&ne());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&se(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?ie():ee=!1}}}var ie;if(typeof y==`function`)ie=function(){y(re)};else if(typeof MessageChannel<`u`){var ae=new MessageChannel,oe=ae.port2;ae.port1.onmessage=re,ie=function(){oe.postMessage(null)}}else ie=function(){_(re,0)};function se(t,n){S=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):C=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(S),S=-1):h=!0,se(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,ie()))),r},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Re=e(((e,t)=>{t.exports=Le()})),ze=e((e=>{var t=Re(),n=r(),a=i();function o(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function s(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function c(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function l(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function d(e){if(c(e)!==e)throw Error(o(188))}function f(e){var t=e.alternate;if(!t){if(t=c(e),t===null)throw Error(o(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var a=i.alternate;if(a===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===a.child){for(a=i.child;a;){if(a===n)return d(i),e;if(a===r)return d(i),t;a=a.sibling}throw Error(o(188))}if(n.return!==r.return)n=i,r=a;else{for(var s=!1,l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s){for(l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(n.tag!==3)throw Error(o(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var m=Object.assign,h=Symbol.for(`react.element`),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),ee=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),te=Symbol.for(`react.suspense_list`),ne=Symbol.for(`react.memo`),re=Symbol.for(`react.lazy`),ie=Symbol.for(`react.activity`),ae=Symbol.for(`react.memo_cache_sentinel`),oe=Symbol.iterator;function se(e){return typeof e!=`object`||!e?null:(e=oe&&e[oe]||e[`@@iterator`],typeof e==`function`?e:null)}var ce=Symbol.for(`react.client.reference`);function le(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ce?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case C:return`Suspense`;case te:return`SuspenseList`;case ie:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case _:return`Portal`;case ee:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case S:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ne:return t=e.displayName||null,t===null?le(e.type)||`Memo`:t;case re:t=e._payload,e=e._init;try{return le(e(t))}catch{}}return null}var ue=Array.isArray,w=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=a.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,de={pending:!1,data:null,method:null,action:null},fe=[],pe=-1;function me(e){return{current:e}}function he(e){0>pe||(e.current=fe[pe],fe[pe]=null,pe--)}function ge(e,t){pe++,fe[pe]=e.current,e.current=t}var _e=me(null),ve=me(null),ye=me(null),be=me(null);function xe(e,t){switch(ge(ye,t),ge(ve,e),ge(_e,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Xd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Xd(t),e=Zd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}he(_e),ge(_e,e)}function Se(){he(_e),he(ve),he(ye)}function E(e){e.memoizedState!==null&&ge(be,e);var t=_e.current,n=Zd(t,e.type);t!==n&&(ge(ve,e),ge(_e,n))}function Ce(e){ve.current===e&&(he(_e),he(ve)),be.current===e&&(he(be),sp._currentValue=de)}var we,Te;function Ee(e){if(we===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);we=t&&t[1]||``,Te=-1<e.stack.indexOf(` 3 at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return` 4`+we+e+Te}var De=!1;function Oe(e,t){if(!e||De)return``;De=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(` 5`),l=s.split(` 6`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=` 7`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{De=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Ee(n):``}function ke(e,t){switch(e.tag){case 26:case 27:case 5:return Ee(e.type);case 16:return Ee(`Lazy`);case 13:return e.child!==t&&t!==null?Ee(`Suspense Fallback`):Ee(`Suspense`);case 19:return Ee(`SuspenseList`);case 0:case 15:return Oe(e.type,!1);case 11:return Oe(e.type.render,!1);case 1:return Oe(e.type,!0);case 31:return Ee(`Activity`);default:return``}}function Ae(e){try{var t=``,n=null;do t+=ke(e,n),n=e,e=e.return;while(e);return t}catch(e){return` 8Error generating stack: `+e.message+` 9`+e.stack}}var je=Object.prototype.hasOwnProperty,Me=t.unstable_scheduleCallback,Ne=t.unstable_cancelCallback,D=t.unstable_shouldYield,Pe=t.unstable_requestPaint,Fe=t.unstable_now,Ie=t.unstable_getCurrentPriorityLevel,Le=t.unstable_ImmediatePriority,ze=t.unstable_UserBlockingPriority,Be=t.unstable_NormalPriority,Ve=t.unstable_LowPriority,He=t.unstable_IdlePriority,Ue=t.log,We=t.unstable_setDisableYieldValue,Ge=null,Ke=null;function qe(e){if(typeof Ue==`function`&&We(e),Ke&&typeof Ke.setStrictMode==`function`)try{Ke.setStrictMode(Ge,e)}catch{}}var Je=Math.clz32?Math.clz32:Ze,Ye=Math.log,Xe=Math.LN2;function Ze(e){return e>>>=0,e===0?32:31-(Ye(e)/Xe|0)|0}var Qe=256,$e=262144,et=4194304;function tt(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function nt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=tt(n))):i=tt(o):i=tt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=tt(n))):i=tt(o)):i=tt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function rt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function it(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function at(){var e=et;return et<<=1,!(et&62914560)&&(et=4194304),e}function ot(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function st(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ct(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Je(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&<(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function lt(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Je(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function ut(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Je(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function dt(e,t){var n=t&-t;return n=n&42?1:ft(n),(n&(e.suspendedLanes|t))===0?n:0}function ft(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function pt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function mt(){var e=T.p;return e===0?(e=window.event,e===void 0?32:Cp(e.type)):e}function ht(e,t){var n=T.p;try{return T.p=e,t()}finally{T.p=n}}var gt=Math.random().toString(36).slice(2),_t=`__reactFiber$`+gt,vt=`__reactProps$`+gt,yt=`__reactContainer$`+gt,bt=`__reactEvents$`+gt,xt=`__reactListeners$`+gt,St=`__reactHandles$`+gt,Ct=`__reactResources$`+gt,wt=`__reactMarker$`+gt;function Tt(e){delete e[_t],delete e[vt],delete e[bt],delete e[xt],delete e[St]}function Et(e){var t=e[_t];if(t)return t;for(var n=e.parentNode;n;){if(t=n[yt]||n[_t]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=bf(e);e!==null;){if(n=e[_t])return n;e=bf(e)}return t}e=n,n=e.parentNode}return null}function Dt(e){if(e=e[_t]||e[yt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Ot(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(o(33))}function kt(e){var t=e[Ct];return t||=e[Ct]={hoistableStyles:new Map,hoistableScripts:new Map},t}function At(e){e[wt]=!0}var jt=new Set,Mt={};function Nt(e,t){Pt(e,t),Pt(e+`Capture`,t)}function Pt(e,t){for(Mt[e]=t,e=0;e<t.length;e++)jt.add(t[e])}var Ft=RegExp(`^[: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]*$`),It={},Lt={};function Rt(e){return je.call(Lt,e)?!0:je.call(It,e)?!1:Ft.test(e)?Lt[e]=!0:(It[e]=!0,!1)}function zt(e,t,n){if(Rt(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Bt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function Vt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Ht(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Ut(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Wt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Gt(e){if(!e._valueTracker){var t=Ut(e)?`checked`:`value`;e._valueTracker=Wt(e,t,``+e[t])}}function Kt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Ut(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function qt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Jt=/[\n"\\]/g;function Yt(e){return e.replace(Jt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Xt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Ht(t)):e.value!==``+Ht(t)&&(e.value=``+Ht(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Qt(e,o,Ht(n)):Qt(e,o,Ht(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Ht(s):e.removeAttribute(`name`)}function Zt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Gt(e);return}n=n==null?``:``+Ht(n),t=t==null?n:``+Ht(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Gt(e)}function Qt(e,t,n){t===`number`&&qt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function $t(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Ht(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function en(e,t,n){if(t!=null&&(t=``+Ht(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Ht(n)}function tn(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(o(92));if(ue(r)){if(1<r.length)throw Error(o(93));r=r[0]}n=r}n??=``,t=n}n=Ht(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Gt(e)}function nn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var rn=new Set(`animationIterationCount aspectRatio 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 scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function an(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||rn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function on(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(o(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var i in t)r=t[i],t.hasOwnProperty(i)&&n[i]!==r&&an(e,i,r)}else for(var a in t)t.hasOwnProperty(a)&&an(e,a,t[a])}function sn(e){if(e.indexOf(`-`)===-1)return!1;switch(e){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`:return!1;default:return!0}}var cn=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`
9clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),ln=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function un(e){return ln.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function dn(){}var fn=null;function pn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var mn=null,hn=null;function gn(e){var t=Dt(e);if(t&&(e=t.stateNode)){var n=e[vt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Xt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Yt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=r[vt]||null;if(!i)throw Error(o(90));Xt(r,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Kt(r)}break a;case`textarea`:en(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&$t(e,!!n.multiple,t,!1)}}}var O=!1;function k(e,t,n){if(O)return e(t,n);O=!0;try{return e(t)}finally{if(O=!1,(mn!==null||hn!==null)&&(ku(),mn&&(t=mn,e=hn,hn=mn=null,gn(t),e)))for(t=0;t<e.length;t++)gn(e[t])}}function _n(e,t){var n=e.stateNode;if(n===null)return null;var r=n[vt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(o(231,t,typeof n));return n}var vn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),yn=!1;if(vn)try{var bn={};Object.defineProperty(bn,"passive",{get:function(){yn=!0}
vendor: 126,600 bytes, lines 9-10
9}),window.addEventListener(`test`,bn,bn),window.removeEventListener(`test`,bn,bn)}catch{yn=!1}var xn=null,Sn=null,Cn=null;function wn(){if(Cn)return Cn;var e,t=Sn,n=t.length,r,i=`value`in xn?xn.value:xn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Cn=i.slice(e,1<r?1-r:void 0)}function Tn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function En(){return!0}function Dn(){return!1}function On(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?En:Dn,this.isPropagationStopped=Dn,this}return m(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=En)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=En)},persist:function(){},isPersistent:En}),t}var kn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},An=On(kn),jn=m({},kn,{view:0,detail:0}),Mn=On(jn),Nn,Pn,Fn,In=m({},jn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:qn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Fn&&(Fn&&e.type===`mousemove`?(Nn=e.screenX-Fn.screenX,Pn=e.screenY-Fn.screenY):Pn=Nn=0,Fn=e),Nn)},movementY:function(e){return`movementY`in e?e.movementY:Pn}}),Ln=On(In),Rn=On(m({},In,{dataTransfer:0})),zn=On(m({},jn,{relatedTarget:0})),Bn=On(m({},kn,{animationName:0,elapsedTime:0,pseudoElement:0})),Vn=On(m({},kn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Hn=On(m({},kn,{data:0})),Un={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Wn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Gn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Gn[e])?!!t[e]:!1}function qn(){return Kn}var Jn=On(m({},jn,{key:function(e){if(e.key){var t=Un[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=Tn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Wn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:qn,charCode:function(e){return e.type===`keypress`?Tn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?Tn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Yn=On(m({},In,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Xn=On(m({},jn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:qn})),Zn=On(m({},kn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Qn=On(m({},In,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),A=On(m({},kn,{newState:0,oldState:0})),$n=[9,13,27,32],j=vn&&`CompositionEvent`in window,er=null;vn&&`documentMode`in document&&(er=document.documentMode);var tr=vn&&`TextEvent`in window&&!er,nr=vn&&(!j||er&&8<er&&11>=er),rr=` `,ir=!1;function ar(e,t){switch(e){case`keyup`:return $n.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function or(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var sr=!1;function cr(e,t){switch(e){case`compositionend`:return or(t);case`keypress`:return t.which===32?(ir=!0,rr):null;case`textInput`:return e=t.data,e===rr&&ir?null:e;default:return null}}function lr(e,t){if(sr)return e===`compositionend`||!j&&ar(e,t)?(e=wn(),Cn=Sn=xn=null,sr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return nr&&t.locale!==`ko`?null:t.data;default:return null}}var ur={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function dr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!ur[e.type]:t===`textarea`}function fr(e,t,n,r){mn?hn?hn.push(r):hn=[r]:mn=r,t=Fd(t,`onChange`),0<t.length&&(n=new An(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var pr=null,mr=null;function hr(e){Od(e,0)}function gr(e){if(Kt(Ot(e)))return e}function _r(e,t){if(e===`change`)return t}var vr=!1;if(vn){var yr;if(vn){var br=`oninput`in document;if(!br){var xr=document.createElement(`div`);xr.setAttribute(`oninput`,`return;`),br=typeof xr.oninput==`function`}yr=br}else yr=!1;vr=yr&&(!document.documentMode||9<document.documentMode)}function Sr(){pr&&(pr.detachEvent(`onpropertychange`,Cr),mr=pr=null)}function Cr(e){if(e.propertyName===`value`&&gr(mr)){var t=[];fr(t,mr,e,pn(e)),k(hr,t)}}function wr(e,t,n){e===`focusin`?(Sr(),pr=t,mr=n,pr.attachEvent(`onpropertychange`,Cr)):e===`focusout`&&Sr()}function Tr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return gr(mr)}function Er(e,t){if(e===`click`)return gr(t)}function Dr(e,t){if(e===`input`||e===`change`)return gr(t)}function Or(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var kr=typeof Object.is==`function`?Object.is:Or;function Ar(e,t){if(kr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!je.call(t,i)||!kr(e[i],t[i]))return!1}return!0}function jr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Mr(e,t){var n=jr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=jr(n)}}function Nr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Nr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Pr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=qt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=qt(e.document)}return t}function Fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Ir=vn&&`documentMode`in document&&11>=document.documentMode,Lr=null,Rr=null,zr=null,Br=!1;function Vr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Br||Lr==null||Lr!==qt(r)||(r=Lr,`selectionStart`in r&&Fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),zr&&Ar(zr,r)||(zr=r,r=Fd(Rr,`onSelect`),0<r.length&&(t=new An(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Lr)))}function Hr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Ur={animationend:Hr(`Animation`,`AnimationEnd`),animationiteration:Hr(`Animation`,`AnimationIteration`),animationstart:Hr(`Animation`,`AnimationStart`),transitionrun:Hr(`Transition`,`TransitionRun`),transitionstart:Hr(`Transition`,`TransitionStart`),transitioncancel:Hr(`Transition`,`TransitionCancel`),transitionend:Hr(`Transition`,`TransitionEnd`)},Wr={},Gr={};vn&&(Gr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Ur.animationend.animation,delete Ur.animationiteration.animation,delete Ur.animationstart.animation),`TransitionEvent`in window||delete Ur.transitionend.transition);function Kr(e){if(Wr[e])return Wr[e];if(!Ur[e])return e;var t=Ur[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Gr)return Wr[e]=t[n];return e}var qr=Kr(`animationend`),Jr=Kr(`animationiteration`),Yr=Kr(`animationstart`),Xr=Kr(`transitionrun`),Zr=Kr(`transitionstart`),Qr=Kr(`transitioncancel`),$r=Kr(`transitionend`),ei=new Map,ti=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);ti.push(`scrollEnd`);function ni(e,t){ei.set(e,t),Nt(t,[e])}var ri=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ii=[],ai=0,oi=0;function si(){for(var e=ai,t=oi=ai=0;t<e;){var n=ii[t];ii[t++]=null;var r=ii[t];ii[t++]=null;var i=ii[t];ii[t++]=null;var a=ii[t];if(ii[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&di(n,i,a)}}function ci(e,t,n,r){ii[ai++]=e,ii[ai++]=t,ii[ai++]=n,ii[ai++]=r,oi|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function li(e,t,n,r){return ci(e,t,n,r),fi(e)}function ui(e,t){return ci(e,null,null,t),fi(e)}function di(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Je(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function fi(e){if(50<bu)throw bu=0,xu=null,Error(o(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var pi={};function mi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function hi(e,t,n,r){return new mi(e,t,n,r)}function gi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _i(e,t){var n=e.alternate;return n===null?(n=hi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function vi(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function yi(e,t,n,r,i,a){var s=0;if(r=e,typeof e==`function`)gi(e)&&(s=1);else if(typeof e==`string`)s=Qf(e,n,_e.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case ie:return e=hi(31,n,t,i),e.elementType=ie,e.lanes=a,e;case v:return bi(n.children,i,a,t);case y:s=8,i|=24;break;case b:return e=hi(12,n,t,i|2),e.elementType=b,e.lanes=a,e;case C:return e=hi(13,n,t,i),e.elementType=C,e.lanes=a,e;case te:return e=hi(19,n,t,i),e.elementType=te,e.lanes=a,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case ee:s=10;break a;case x:s=9;break a;case S:s=11;break a;case ne:s=14;break a;case re:s=16,r=null;break a}s=29,n=Error(o(130,e===null?`null`:typeof e,``)),r=null}return t=hi(s,n,t,i),t.elementType=e,t.type=r,t.lanes=a,t}function bi(e,t,n,r){return e=hi(7,e,r,t),e.lanes=n,e}function xi(e,t,n){return e=hi(6,e,null,t),e.lanes=n,e}function Si(e){var t=hi(18,null,null,0);return t.stateNode=e,t}function Ci(e,t,n){return t=hi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var wi=new WeakMap;function Ti(e,t){if(typeof e==`object`&&e){var n=wi.get(e);return n===void 0?(t={value:e,source:t,stack:Ae(t)},wi.set(e,t),t):n}return{value:e,source:t,stack:Ae(t)}}var Ei=[],Di=0,Oi=null,ki=0,Ai=[],ji=0,Mi=null,Ni=1,Pi=``;function Fi(e,t){Ei[Di++]=ki,Ei[Di++]=Oi,Oi=e,ki=t}function Ii(e,t,n){Ai[ji++]=Ni,Ai[ji++]=Pi,Ai[ji++]=Mi,Mi=e;var r=Ni;e=Pi;var i=32-Je(r)-1;r&=~(1<<i),n+=1;var a=32-Je(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Ni=1<<32-Je(t)+i|n<<i|r,Pi=a+e}else Ni=1<<a|n<<i|r,Pi=e}function Li(e){e.return!==null&&(Fi(e,1),Ii(e,1,0))}function Ri(e){for(;e===Oi;)Oi=Ei[--Di],Ei[Di]=null,ki=Ei[--Di],Ei[Di]=null;for(;e===Mi;)Mi=Ai[--ji],Ai[ji]=null,Pi=Ai[--ji],Ai[ji]=null,Ni=Ai[--ji],Ai[ji]=null}function zi(e,t){Ai[ji++]=Ni,Ai[ji++]=Pi,Ai[ji++]=Mi,Ni=t.id,Pi=t.overflow,Mi=e}var Bi=null,Vi=null,M=!1,Hi=null,Ui=!1,Wi=Error(o(519));function Gi(e){throw Zi(Ti(Error(o(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Wi}function Ki(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[_t]=e,t[vt]=r,n){case`dialog`:U(`cancel`,t),U(`close`,t);break;case`iframe`:case`object`:case`embed`:U(`load`,t);break;case`video`:case`audio`:for(n=0;n<Ed.length;n++)U(Ed[n],t);break;case`source`:U(`error`,t);break;case`img`:case`image`:case`link`:U(`error`,t),U(`load`,t);break;case`details`:U(`toggle`,t);break;case`input`:U(`invalid`,t),Zt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:U(`invalid`,t);break;case`textarea`:U(`invalid`,t),tn(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Vd(t.textContent,n)?(r.popover!=null&&(U(`beforetoggle`,t),U(`toggle`,t)),r.onScroll!=null&&U(`scroll`,t),r.onScrollEnd!=null&&U(`scrollend`,t),r.onClick!=null&&(t.onclick=dn),t=!0):t=!1,t||Gi(e,!0)}function qi(e){for(Bi=e.return;Bi;)switch(Bi.tag){case 5:case 31:case 13:Ui=!1;return;case 27:case 3:Ui=!0;return;default:Bi=Bi.return}}function Ji(e){if(e!==Bi)return!1;if(!M)return qi(e),M=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Qd(e.type,e.memoizedProps)),n=!n),n&&Vi&&Gi(e),qi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(o(317));Vi=yf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(o(317));Vi=yf(e)}else t===27?(t=Vi,sf(e.type)?(e=vf,vf=null,Vi=e):Vi=t):Vi=Bi?_f(e.stateNode.nextSibling):null;return!0}function Yi(){Vi=Bi=null,M=!1}function Xi(){var e=Hi;return e!==null&&(ou===null?ou=e:ou.push.apply(ou,e),Hi=null),e}function Zi(e){Hi===null?Hi=[e]:Hi.push(e)}var Qi=me(null),$i=null,ea=null;function ta(e,t,n){ge(Qi,t._currentValue),t._currentValue=n}function na(e){e._currentValue=Qi.current,he(Qi)}function ra(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function ia(e,t,n,r){var i=e.child;for(i!==null&&(i.return=e);i!==null;){var a=i.dependencies;if(a!==null){var s=i.child;a=a.firstContext;a:for(;a!==null;){var c=a;a=i;for(var l=0;l<t.length;l++)if(c.context===t[l]){a.lanes|=n,c=a.alternate,c!==null&&(c.lanes|=n),ra(a.return,n,e),r||(s=null);break a}a=c.next}}else if(i.tag===18){if(s=i.return,s===null)throw Error(o(341));s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),ra(s,n,e),s=null}else s=i.child;if(s!==null)s.return=i;else for(s=i;s!==null;){if(s===e){s=null;break}if(i=s.sibling,i!==null){i.return=s.return,s=i;break}s=s.return}i=s}}function aa(e,t,n,r){e=null;for(var i=t,a=!1;i!==null;){if(!a){if(i.flags&524288)a=!0;else if(i.flags&262144)break}if(i.tag===10){var s=i.alternate;if(s===null)throw Error(o(387));if(s=s.memoizedProps,s!==null){var c=i.type;kr(i.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(i===be.current){if(s=i.alternate,s===null)throw Error(o(387));s.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(e===null?e=[sp]:e.push(sp))}i=i.return}e!==null&&ia(t,e,n,r),t.flags|=262144}function oa(e){for(e=e.firstContext;e!==null;){if(!kr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function sa(e){$i=e,ea=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ca(e){return ua($i,e)}function la(e,t){return $i===null&&sa(e),ua(e,t)}function ua(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},ea===null){if(e===null)throw Error(o(308));ea=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else ea=ea.next=t;return n}var da=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},fa=t.unstable_scheduleCallback,pa=t.unstable_NormalPriority,ma={$$typeof:ee,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ha(){return{controller:new da,data:new Map,refCount:0}}function ga(e){e.refCount--,e.refCount===0&&fa(pa,function(){e.controller.abort()})}var _a=null,va=0,ya=0,ba=null;function xa(e,t){if(_a===null){var n=_a=[];va=0,ya=bd(),ba={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return va++,t.then(Sa,Sa),t}function Sa(){if(--va===0&&_a!==null){ba!==null&&(ba.status=`fulfilled`);var e=_a;_a=null,ya=0,ba=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ca(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var wa=w.S;w.S=function(e,t){lu=Fe(),typeof t==`object`&&t&&typeof t.then==`function`&&xa(e,t),wa!==null&&wa(e,t)};var Ta=me(null);function Ea(){var e=Ta.current;return e===null?ql.pooledCache:e}function Da(e,t){t===null?ge(Ta,Ta.current):ge(Ta,t.pool)}function Oa(){var e=Ea();return e===null?null:{parent:ma._currentValue,pool:e}}var ka=Error(o(460)),Aa=Error(o(474)),ja=Error(o(542)),Ma={then:function(){}};function Na(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Pa(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(dn,dn),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,N(e),e;default:if(typeof t.status==`string`)t.then(dn,dn);else{if(e=ql,e!==null&&100<e.shellSuspendCounter)throw Error(o(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,N(e),e}throw Ia=t,ka}}function Fa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Ia=e,ka):e}}var Ia=null;function La(){if(Ia===null)throw Error(o(459));var e=Ia;return Ia=null,e}function N(e){if(e===ka||e===ja)throw Error(o(483))}var Ra=null,za=0;function Ba(e){var t=za;return za+=1,Ra===null&&(Ra=[]),Pa(Ra,e,t)}function Va(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ha(e,t){throw t.$$typeof===h?Error(o(525)):(e=Object.prototype.toString.call(t),Error(o(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Ua(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function i(e,t){return e=_i(e,t),e.index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=xi(n,e.mode,r),t.return=e,t):(t=i(t,n),t.return=e,t)}function l(e,t,n,r){var a=n.type;return a===v?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===a||typeof a==`object`&&a&&a.$$typeof===re&&Fa(a)===t.type)?(t=i(t,n.props),Va(t,n),t.return=e,t):(t=yi(n.type,n.key,n.props,null,e.mode,r),Va(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Ci(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,a){return t===null||t.tag!==7?(t=bi(n,e.mode,r,a),t.return=e,t):(t=i(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=xi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case g:return n=yi(t.type,t.key,t.props,null,e.mode,n),Va(n,t),n.return=e,n;case _:return t=Ci(t,e.mode,n),t.return=e,t;case re:return t=Fa(t),f(e,t,n)}if(ue(t)||se(t))return t=bi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Ba(t),n);if(t.$$typeof===ee)return f(e,la(e,t),n);Ha(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case g:return n.key===i?l(e,t,n,r):null;case _:return n.key===i?u(e,t,n,r):null;case re:return n=Fa(n),p(e,t,n,r)}if(ue(n)||se(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Ba(n),r);if(n.$$typeof===ee)return p(e,t,la(e,n),r);Ha(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case g:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case _:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case re:return r=Fa(r),m(e,t,n,r,i)}if(ue(r)||se(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Ba(r),i);if(r.$$typeof===ee)return m(e,t,n,la(t,r),i);Ha(t,r)}return null}function h(i,o,s,c){for(var l=null,u=null,d=o,h=o=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),M&&Fi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(o=a(d,o,h),u===null?l=d:u.sibling=d,u=d);return M&&Fi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),o=a(g,o,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),M&&Fi(i,h),l}function y(i,s,c,l){if(c==null)throw Error(o(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=a(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),M&&Fi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=a(v,s,g),d===null?u=v:d.sibling=v,d=v);return M&&Fi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=a(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),M&&Fi(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===v&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case g:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===v){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===re&&Fa(l)===r.type){n(e,r.sibling),c=i(r,a.props),Va(c,a),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}a.type===v?(c=bi(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=yi(a.type,a.key,a.props,null,e.mode,c),Va(c,a),c.return=e,e=c)}return s(e);case _:a:{for(l=a.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=Ci(a,e.mode,c),c.return=e,e=c}return s(e);case re:return a=Fa(a),b(e,r,a,c)}if(ue(a))return h(e,r,a,c);if(se(a)){if(l=se(a),typeof l!=`function`)throw Error(o(150));return a=l.call(a),y(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,Ba(a),c);if(a.$$typeof===ee)return b(e,r,la(e,a),c);Ha(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=xi(a,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{za=0;var i=b(e,t,n,r);return Ra=null,i}catch(t){if(t===ka||t===ja)throw t;var a=hi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Wa=Ua(!0),Ga=Ua(!1),Ka=!1;function qa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ja(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ya(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Xa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,R&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=fi(e),di(e,null,n),t}return ci(e,r,t,n),fi(e)}function Za(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ut(e,n)}}function Qa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var $a=!1;function eo(){if($a){var e=ba;if(e!==null)throw e}}function to(e,t,n,r){$a=!1;var i=e.updateQueue;Ka=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(B&f)===f:(r&f)===f){f!==0&&f===ya&&($a=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Ka=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),eu|=o,e.lanes=o,e.memoizedState=d}}function no(e,t){if(typeof e!=`function`)throw Error(o(191,e));e.call(t)}function ro(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)no(n[e],t)}var io=me(null),ao=me(0);function oo(e,t){e=Ql,ge(ao,e),ge(io,t),Ql=e|t.baseLanes}function so(){ge(ao,Ql),ge(io,io.current)}function co(){Ql=ao.current,he(io),he(ao)}var lo=me(null),uo=null;function fo(e){var t=e.alternate;ge(_o,_o.current&1),ge(lo,e),uo===null&&(t===null||io.current!==null||t.memoizedState!==null)&&(uo=e)}function po(e){ge(_o,_o.current),ge(lo,e),uo===null&&(uo=e)}function mo(e){e.tag===22?(ge(_o,_o.current),ge(lo,e),uo===null&&(uo=e)):ho(e)}function ho(){ge(_o,_o.current),ge(lo,lo.current)}function go(e){he(lo),uo===e&&(uo=null),he(_o)}var _o=me(0);function vo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||mf(n)||hf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var yo=0,P=null,bo=null,xo=null,So=!1,Co=!1,wo=!1,To=0,Eo=0,Do=null,Oo=0;function ko(){throw Error(o(321))}function Ao(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!kr(e[n],t[n]))return!1;return!0}function jo(e,t,n,r,i,a){return yo=a,P=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,w.H=e===null||e.memoizedState===null?Ks:qs,wo=!1,a=n(r,i),wo=!1,Co&&(a=No(t,n,r,i)),Mo(e),a}function Mo(e){w.H=Gs;var t=bo!==null&&bo.next!==null;if(yo=0,xo=bo=P=null,So=!1,Eo=0,Do=null,t)throw Error(o(300));e===null||uc||(e=e.dependencies,e!==null&&oa(e)&&(uc=!0))}function No(e,t,n,r){P=e;var i=0;do{if(Co&&(Do=null),Eo=0,Co=!1,25<=i)throw Error(o(301));if(i+=1,xo=bo=null,e.updateQueue!=null){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,a.memoCache!=null&&(a.memoCache.index=0)}w.H=Js,a=t(n,r)}while(Co);return a}function Po(){var e=w.H,t=e.useState()[0];return t=typeof t.then==`function`?Bo(t):t,e=e.useState()[0],(bo===null?null:bo.memoizedState)!==e&&(P.flags|=1024),t}function F(){var e=To!==0;return To=0,e}function Fo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Io(e){if(So){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}So=!1}yo=0,xo=bo=P=null,Co=!1,Eo=To=0,Do=null}function Lo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return xo===null?P.memoizedState=xo=e:xo=xo.next=e,xo}function Ro(){if(bo===null){var e=P.alternate;e=e===null?null:e.memoizedState}else e=bo.next;var t=xo===null?P.memoizedState:xo.next;if(t!==null)xo=t,bo=e;else{if(e===null)throw P.alternate===null?Error(o(467)):Error(o(310));bo=e,e={memoizedState:bo.memoizedState,baseState:bo.baseState,baseQueue:bo.baseQueue,queue:bo.queue,next:null},xo===null?P.memoizedState=xo=e:xo=xo.next=e}return xo}function zo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Bo(e){var t=Eo;return Eo+=1,Do===null&&(Do=[]),e=Pa(Do,e,t),t=P,(xo===null?t.memoizedState:xo.next)===null&&(t=t.alternate,w.H=t===null||t.memoizedState===null?Ks:qs),e}function Vo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Bo(e);if(e.$$typeof===ee)return ca(e)}throw Error(o(438,String(e)))}function Ho(e){var t=null,n=P.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=P.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=zo(),P.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ae;return t.index++,n}function Uo(e,t){return typeof t==`function`?t(e):t}function Wo(e){return Go(Ro(),bo,e)}function Go(e,t,n){var r=e.queue;if(r===null)throw Error(o(311));r.lastRenderedReducer=n;var i=e.baseQueue,a=r.pending;if(a!==null){if(i!==null){var s=i.next;i.next=a.next,a.next=s}t.baseQueue=i=a,r.pending=null}if(a=e.baseState,i===null)e.memoizedState=a;else{t=i.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(yo&f)===f:(B&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===ya&&(d=!0);else if((yo&p)===p){u=u.next,p===ya&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=a):l=l.next=f,P.lanes|=p,eu|=p;f=u.action,wo&&n(a,f),a=u.hasEagerState?u.eagerState:n(a,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=a):l=l.next=p,P.lanes|=f,eu|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=a:l.next=c,!kr(a,e.memoizedState)&&(uc=!0,d&&(n=ba,n!==null)))throw n;e.memoizedState=a,e.baseState=s,e.baseQueue=l,r.lastRenderedState=a}return i===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Ko(e){var t=Ro(),n=t.queue;if(n===null)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,a=t.memoizedState;if(i!==null){n.pending=null;var s=i=i.next;do a=e(a,s.action),s=s.next;while(s!==i);kr(a,t.memoizedState)||(uc=!0),t.memoizedState=a,t.baseQueue===null&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function qo(e,t,n){var r=P,i=Ro(),a=M;if(a){if(n===void 0)throw Error(o(407));n=n()}else n=t();var s=!kr((bo||i).memoizedState,n);if(s&&(i.memoizedState=n,uc=!0),i=i.queue,vs(Xo.bind(null,r,i,e),[e]),i.getSnapshot!==t||s||xo!==null&&xo.memoizedState.tag&1){if(r.flags|=2048,ps(9,{destroy:void 0},Yo.bind(null,r,i,n,t),null),ql===null)throw Error(o(349));a||yo&127||Jo(r,t,n)}return n}function Jo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=P.updateQueue,t===null?(t=zo(),P.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Yo(e,t,n,r){t.value=n,t.getSnapshot=r,Zo(t)&&Qo(e)}function Xo(e,t,n){return n(function(){Zo(t)&&Qo(e)})}function Zo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!kr(e,n)}catch{return!0}}function Qo(e){var t=ui(e,2);t!==null&&wu(t,e,2)}function $o(e){var t=Lo();if(typeof e==`function`){var n=e;if(e=n(),wo){qe(!0);try{n()}finally{qe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:e},t}function es(e,t,n,r){return e.baseState=n,Go(e,bo,typeof r==`function`?r:Uo)}function ts(e,t,n,r,i){if(Us(e))throw Error(o(485));if(e=t.action,e!==null){var a={payload:i,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};w.T===null?a.isTransition=!1:n(!0),r(a),n=t.pending,n===null?(a.next=t.pending=a,ns(t,a)):(a.next=n.next,t.pending=n.next=a)}}function ns(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=w.T,o={};w.T=o;try{var s=n(i,r),c=w.S;c!==null&&c(o,s),rs(e,t,s)}catch(n){as(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),w.T=a}}else try{a=n(i,r),rs(e,t,a)}catch(n){as(e,t,n)}}function rs(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){is(e,t,n)},function(n){return as(e,t,n)}):is(e,t,n)}function is(e,t,n){t.status=`fulfilled`,t.value=n,os(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,ns(e,n)))}function as(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,os(t),t=t.next;while(t!==r)}e.action=null}function os(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function ss(e,t){return t}function cs(e,t){if(M){var n=ql.formState;if(n!==null){a:{var r=P;if(M){if(Vi){b:{for(var i=Vi,a=Ui;i.nodeType!==8;){if(!a){i=null;break b}if(i=_f(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Vi=_f(i.nextSibling),r=i.data===`F!`;break a}}Gi(r)}r=!1}r&&(t=n[0])}}return n=Lo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ss,lastRenderedState:t},n.queue=r,n=Bs.bind(null,P,r),r.dispatch=n,r=$o(!1),a=Hs.bind(null,P,!1,r.queue),r=Lo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=ts.bind(null,P,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function ls(e){return us(Ro(),bo,e)}function us(e,t,n){if(t=Go(e,t,ss)[0],e=Wo(Uo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Bo(t)}catch(e){throw e===ka?ja:e}else r=t;t=Ro();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(P.flags|=2048,ps(9,{destroy:void 0},ds.bind(null,i,n),null)),[r,a,e]}function ds(e,t){e.action=t}function fs(e){var t=Ro(),n=bo;if(n!==null)return us(t,n,e);Ro(),t=t.memoizedState,n=Ro();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ps(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=P.updateQueue,t===null&&(t=zo(),P.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ms(){return Ro().memoizedState}function hs(e,t,n,r){var i=Lo();P.flags|=e,i.memoizedState=ps(1|t,{destroy:void 0},n,r===void 0?null:r)}function gs(e,t,n,r){var i=Ro();r=r===void 0?null:r;var a=i.memoizedState.inst;bo!==null&&r!==null&&Ao(r,bo.memoizedState.deps)?i.memoizedState=ps(t,a,n,r):(P.flags|=e,i.memoizedState=ps(1|t,a,n,r))}function _s(e,t){hs(8390656,8,e,t)}function vs(e,t){gs(2048,8,e,t)}function ys(e){P.flags|=4;var t=P.updateQueue;if(t===null)t=zo(),P.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function bs(e){var t=Ro().memoizedState;return ys({ref:t,nextImpl:e}),function(){if(R&2)throw Error(o(440));return t.impl.apply(void 0,arguments)}}function xs(e,t){return gs(4,2,e,t)}function Ss(e,t){return gs(4,4,e,t)}function Cs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ws(e,t,n){n=n==null?null:n.concat([e]),gs(4,4,Cs.bind(null,t,e),n)}function Ts(){}function Es(e,t){var n=Ro();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Ao(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ds(e,t){var n=Ro();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Ao(t,r[1]))return r[0];if(r=e(),wo){qe(!0);try{e()}finally{qe(!1)}}return n.memoizedState=[r,t],r}function Os(e,t,n){return n===void 0||yo&1073741824&&!(B&261930)?e.memoizedState=t:(e.memoizedState=n,e=Cu(),P.lanes|=e,eu|=e,n)}function ks(e,t,n,r){return kr(n,t)?n:io.current===null?!(yo&42)||yo&1073741824&&!(B&261930)?(uc=!0,e.memoizedState=n):(e=Cu(),P.lanes|=e,eu|=e,t):(e=Os(e,n,r),kr(e,t)||(uc=!0),e)}function As(e,t,n,r,i){var a=T.p;T.p=a!==0&&8>a?a:8;var o=w.T,s={};w.T=s,Hs(e,!1,t,n);try{var c=i(),l=w.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Vs(e,t,Ca(c,r),Su(e)):Vs(e,t,r,Su(e))}catch(n){Vs(e,t,{then:function(){},status:`rejected`,reason:n},Su())}finally{T.p=a,o!==null&&s.types!==null&&(o.types=s.types),w.T=o}}function js(){}function Ms(e,t,n,r){if(e.tag!==5)throw Error(o(476));var i=Ns(e).queue;As(e,i,t,de,n===null?js:function(){return Ps(e),n(r)})}function Ns(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:de,baseState:de,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:de},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ps(e){var t=Ns(e);t.next===null&&(t=e.alternate.memoizedState),Vs(e,t.next.queue,{},Su())}function Fs(){return ca(sp)}function Is(){return Ro().memoizedState}function Ls(){return Ro().memoizedState}function Rs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Su();e=Ya(n);var r=Xa(t,e,n);r!==null&&(wu(r,t,n),Za(r,t,n)),t={cache:ha()},e.payload=t;return}t=t.return}}function zs(e,t,n){var r=Su();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Us(e)?Ws(t,n):(n=li(e,t,n,r),n!==null&&(wu(n,e,r),I(n,t,r)))}function Bs(e,t,n){Vs(e,t,n,Su())}function Vs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Us(e))Ws(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,kr(s,o))return ci(e,t,i,0),ql===null&&si(),!1}catch{}if(n=li(e,t,i,r),n!==null)return wu(n,e,r),I(n,t,r),!0}return!1}function Hs(e,t,n,r){if(r={lane:2,revertLane:bd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Us(e)){if(t)throw Error(o(479))}else t=li(e,n,r,2),t!==null&&wu(t,e,2)}function Us(e){var t=e.alternate;return e===P||t!==null&&t===P}function Ws(e,t){Co=So=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ut(e,n)}}var Gs={readContext:ca,use:Vo,useCallback:ko,useContext:ko,useEffect:ko,useImperativeHandle:ko,useLayoutEffect:ko,useInsertionEffect:ko,useMemo:ko,useReducer:ko,useRef:ko,useState:ko,useDebugValue:ko,useDeferredValue:ko,useTransition:ko,useSyncExternalStore:ko,useId:ko,useHostTransitionStatus:ko,useFormState:ko,useActionState:ko,useOptimistic:ko,useMemoCache:ko,useCacheRefresh:ko};Gs.useEffectEvent=ko;var Ks={readContext:ca,use:Vo,useCallback:function(e,t){return Lo().memoizedState=[e,t===void 0?null:t],e},useContext:ca,useEffect:_s,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),hs(4194308,4,Cs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return hs(4194308,4,e,t)},useInsertionEffect:function(e,t){hs(4,2,e,t)},useMemo:function(e,t){var n=Lo();t=t===void 0?null:t;var r=e();if(wo){qe(!0);try{e()}finally{qe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Lo();if(n!==void 0){var i=n(t);if(wo){qe(!0);try{n(t)}finally{qe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=zs.bind(null,P,e),[r.memoizedState,e]},useRef:function(e){var t=Lo();return e={current:e},t.memoizedState=e},useState:function(e){e=$o(e);var t=e.queue,n=Bs.bind(null,P,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ts,useDeferredValue:function(e,t){return Os(Lo(),e,t)},useTransition:function(){var e=$o(!1);return e=As.bind(null,P,e.queue,!0,!1),Lo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=P,i=Lo();if(M){if(n===void 0)throw Error(o(407));n=n()}else{if(n=t(),ql===null)throw Error(o(349));B&127||Jo(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,_s(Xo.bind(null,r,a,e),[e]),r.flags|=2048,ps(9,{destroy:void 0},Yo.bind(null,r,a,n,t),null),n},useId:function(){var e=Lo(),t=ql.identifierPrefix;if(M){var n=Pi,r=Ni;n=(r&~(1<<32-Je(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=To++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=Oo++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Fs,useFormState:cs,useActionState:cs,useOptimistic:function(e){var t=Lo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Hs.bind(null,P,!0,n),n.dispatch=t,[e,t]},useMemoCache:Ho,useCacheRefresh:function(){return Lo().memoizedState=Rs.bind(null,P)},useEffectEvent:function(e){var t=Lo(),n={impl:e};return t.memoizedState=n,function(){if(R&2)throw Error(o(440));return n.impl.apply(void 0,arguments)}}},qs={readContext:ca,use:Vo,useCallback:Es,useContext:ca,useEffect:vs,useImperativeHandle:ws,useInsertionEffect:xs,useLayoutEffect:Ss,useMemo:Ds,useReducer:Wo,useRef:ms,useState:function(){return Wo(Uo)},useDebugValue:Ts,useDeferredValue:function(e,t){return ks(Ro(),bo.memoizedState,e,t)},useTransition:function(){var e=Wo(Uo)[0],t=Ro().memoizedState;return[typeof e==`boolean`?e:Bo(e),t]},useSyncExternalStore:qo,useId:Is,useHostTransitionStatus:Fs,useFormState:ls,useActionState:ls,useOptimistic:function(e,t){return es(Ro(),bo,e,t)},useMemoCache:Ho,useCacheRefresh:Ls};qs.useEffectEvent=bs;var Js={readContext:ca,use:Vo,useCallback:Es,useContext:ca,useEffect:vs,useImperativeHandle:ws,useInsertionEffect:xs,useLayoutEffect:Ss,useMemo:Ds,useReducer:Ko,useRef:ms,useState:function(){return Ko(Uo)},useDebugValue:Ts,useDeferredValue:function(e,t){var n=Ro();return bo===null?Os(n,e,t):ks(n,bo.memoizedState,e,t)},useTransition:function(){var e=Ko(Uo)[0],t=Ro().memoizedState;return[typeof e==`boolean`?e:Bo(e),t]},useSyncExternalStore:qo,useId:Is,useHostTransitionStatus:Fs,useFormState:fs,useActionState:fs,useOptimistic:function(e,t){var n=Ro();return bo===null?(n.baseState=e,[e,n.queue.dispatch]):es(n,bo,e,t)},useMemoCache:Ho,useCacheRefresh:Ls};Js.useEffectEvent=bs;function Ys(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:m({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Xs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Su(),i=Ya(r);i.payload=t,n!=null&&(i.callback=n),t=Xa(e,i,r),t!==null&&(wu(t,e,r),Za(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Su(),i=Ya(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Xa(e,i,r),t!==null&&(wu(t,e,r),Za(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Su(),r=Ya(n);r.tag=2,t!=null&&(r.callback=t),t=Xa(e,r,n),t!==null&&(wu(t,e,n),Za(t,e,n))}};function Zs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Ar(n,r)||!Ar(i,a):!0}function Qs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Xs.enqueueReplaceState(t,t.state,null)}function $s(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=m({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function ec(e){ri(e)}function tc(e){console.error(e)}function nc(e){ri(e)}function rc(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function ic(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function ac(e,t,n){return n=Ya(n),n.tag=3,n.payload={element:null},n.callback=function(){rc(e,t)},n}function oc(e){return e=Ya(e),e.tag=3,e}function sc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){ic(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){ic(t,n,r),typeof i!=`function`&&(fu===null?fu=new Set([this]):fu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function cc(e,t,n,r,i){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&aa(t,n,i,!0),n=lo.current,n!==null){switch(n.tag){case 31:case 13:return uo===null?Iu():n.alternate===null&&$l===0&&($l=3),n.flags&=-257,n.flags|=65536,n.lanes=i,r===Ma?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),ed(e,r,i)),!1;case 22:return n.flags|=65536,r===Ma?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),ed(e,r,i)),!1}throw Error(o(435,n.tag))}return ed(e,r,i),Iu(),!1}if(M)return t=lo.current,t===null?(r!==Wi&&(t=Error(o(423),{cause:r}),Zi(Ti(t,n))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,r=Ti(r,n),i=ac(e.stateNode,r,i),Qa(e,i),$l!==4&&($l=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=i,r!==Wi&&(e=Error(o(422),{cause:r}),Zi(Ti(e,n)))),!1;var a=Error(o(520),{cause:r});if(a=Ti(a,n),au===null?au=[a]:au.push(a),$l!==4&&($l=2),t===null)return!0;r=Ti(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=i&-i,n.lanes|=e,e=ac(n.stateNode,r,e),Qa(n,e),!1;case 1:if(t=n.type,a=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||a!==null&&typeof a.componentDidCatch==`function`&&(fu===null||!fu.has(a))))return n.flags|=65536,i&=-i,n.lanes|=i,i=oc(i),sc(i,e,n,r),Qa(n,i),!1}n=n.return}while(n!==null);return!1}var lc=Error(o(461)),uc=!1;function dc(e,t,n,r){t.child=e===null?Ga(t,null,n,r):Wa(t,e.child,n,r)}function fc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return sa(t),r=jo(e,t,n,o,a,i),s=F(),e!==null&&!uc?(Fo(e,t,i),Fc(e,t,i)):(M&&s&&Li(t),t.flags|=1,dc(e,t,r,i),t.child)}function pc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!gi(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,mc(e,t,a,r,i)):(e=yi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Ic(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Ar:n,n(o,r)&&e.ref===t.ref)return Fc(e,t,i)}return t.flags|=1,e=_i(a,r),e.ref=t.ref,e.return=t,t.child=e}function mc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Ar(a,r)&&e.ref===t.ref)if(uc=!1,t.pendingProps=r=a,Ic(e,i))e.flags&131072&&(uc=!0);else return t.lanes=e.lanes,Fc(e,t,i)}return Sc(e,t,n,r,i)}function hc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return _c(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Da(t,a===null?null:a.cachePool),a===null?so():oo(t,a),mo(t);else return r=t.lanes=536870912,_c(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&Da(t,null),so(),ho(t)):(Da(t,a.cachePool),oo(t,a),ho(t),t.memoizedState=null);return dc(e,t,i,n),t.child}function gc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function _c(e,t,n,r,i){var a=Ea();return a=a===null?null:{parent:ma._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&Da(t,null),so(),mo(t),e!==null&&aa(e,t,r,!0),t.childLanes=i,null}function vc(e,t){return t=jc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function yc(e,t,n){return Wa(t,e.child,null,n),e=vc(t,t.pendingProps),e.flags|=2,go(t),t.memoizedState=null,e}function bc(e,t,n){var r=t.pendingProps,i=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(M){if(r.mode===`hidden`)return e=vc(t,r),t.lanes=536870912,gc(null,e);if(po(t),(e=Vi)?(e=pf(e,Ui),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Mi===null?null:{id:Ni,overflow:Pi},retryLane:536870912,hydrationErrors:null},n=Si(e),n.return=t,t.child=n,Bi=t,Vi=null)):e=null,e===null)throw Gi(t);return t.lanes=536870912,null}return vc(t,r)}var a=e.memoizedState;if(a!==null){var s=a.dehydrated;if(po(t),i)if(t.flags&256)t.flags&=-257,t=yc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(o(558));else if(uc||aa(e,t,n,!1),i=(n&e.childLanes)!==0,uc||i){if(r=ql,r!==null&&(s=dt(r,n),s!==0&&s!==a.retryLane))throw a.retryLane=s,ui(e,s),wu(r,e,s),lc;Iu(),t=yc(e,t,n)}else e=a.treeContext,Vi=_f(s.nextSibling),Bi=t,M=!0,Hi=null,Ui=!1,e!==null&&zi(t,e),t=vc(t,r),t.flags|=4096;return t}return e=_i(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function xc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(o(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Sc(e,t,n,r,i){return sa(t),n=jo(e,t,n,r,void 0,i),r=F(),e!==null&&!uc?(Fo(e,t,i),Fc(e,t,i)):(M&&r&&Li(t),t.flags|=1,dc(e,t,n,i),t.child)}function Cc(e,t,n,r,i,a){return sa(t),t.updateQueue=null,n=No(t,r,n,i),Mo(e),r=F(),e!==null&&!uc?(Fo(e,t,a),Fc(e,t,a)):(M&&r&&Li(t),t.flags|=1,dc(e,t,n,a),t.child)}function wc(e,t,n,r,i){if(sa(t),t.stateNode===null){var a=pi,o=n.contextType;typeof o==`object`&&o&&(a=ca(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Xs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},qa(t),o=n.contextType,a.context=typeof o==`object`&&o?ca(o):pi,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Ys(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Xs.enqueueReplaceState(a,a.state,null),to(t,r,a,i),eo(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=$s(n,s);a.props=c;var l=a.context,u=n.contextType;o=pi,typeof u==`object`&&u&&(o=ca(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Qs(t,a,r,o),Ka=!1;var f=t.memoizedState;a.state=f,to(t,r,a,i),eo(),l=t.memoizedState,s||f!==l||Ka?(typeof d==`function`&&(Ys(t,n,d,r),l=t.memoizedState),(c=Ka||Zs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ja(e,t),o=t.memoizedProps,u=$s(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=pi,typeof l==`object`&&l&&(c=ca(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Qs(t,a,r,c),Ka=!1,f=t.memoizedState,a.state=f,to(t,r,a,i),eo();var p=t.memoizedState;o!==d||f!==p||Ka||e!==null&&e.dependencies!==null&&oa(e.dependencies)?(typeof s==`function`&&(Ys(t,n,s,r),p=t.memoizedState),(u=Ka||Zs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&oa(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,xc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Wa(t,e.child,null,i),t.child=Wa(t,null,n,i)):dc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Fc(e,t,i),e}function Tc(e,t,n,r){return Yi(),t.flags|=256,dc(e,t,n,r),t.child}var Ec={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Dc(e){return{baseLanes:e,cachePool:Oa()}}function Oc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=ru),e}function kc(e,t,n){var r=t.pendingProps,i=!1,a=(t.flags&128)!=0,s;if((s=a)||(s=e!==null&&e.memoizedState===null?!1:(_o.current&2)!=0),s&&(i=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(M){if(i?fo(t):ho(t),(e=Vi)?(e=pf(e,Ui),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Mi===null?null:{id:Ni,overflow:Pi},retryLane:536870912,hydrationErrors:null},n=Si(e),n.return=t,t.child=n,Bi=t,Vi=null)):e=null,e===null)throw Gi(t);return hf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,i?(ho(t),i=t.mode,c=jc({mode:`hidden`,children:c},i),r=bi(r,i,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=Dc(n),r.childLanes=Oc(e,s,n),t.memoizedState=Ec,gc(null,r)):(fo(t),Ac(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(a)t.flags&256?(fo(t),t.flags&=-257,t=Mc(e,t,n)):t.memoizedState===null?(ho(t),c=r.fallback,i=t.mode,r=jc({mode:`visible`,children:r.children},i),c=bi(c,i,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Wa(t,e.child,null,n),r=t.child,r.memoizedState=Dc(n),r.childLanes=Oc(e,s,n),t.memoizedState=Ec,t=gc(null,r)):(ho(t),t.child=e.child,t.flags|=128,t=null);else if(fo(t),hf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(o(419)),r.stack=``,r.digest=s,Zi({value:r,source:null,stack:null}),t=Mc(e,t,n)}else if(uc||aa(e,t,n,!1),s=(n&e.childLanes)!==0,uc||s){if(s=ql,s!==null&&(r=dt(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ui(e,r),wu(s,e,r),lc;mf(c)||Iu(),t=Mc(e,t,n)}else mf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Vi=_f(c.nextSibling),Bi=t,M=!0,Hi=null,Ui=!1,e!==null&&zi(t,e),t=Ac(t,r.children),t.flags|=4096);return t}return i?(ho(t),c=r.fallback,i=t.mode,l=e.child,u=l.sibling,r=_i(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=bi(c,i,n,null),c.flags|=2):c=_i(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,gc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=Dc(n):(i=c.cachePool,i===null?i=Oa():(l=ma._currentValue,i=i.parent===l?i:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:i}),r.memoizedState=c,r.childLanes=Oc(e,s,n),t.memoizedState=Ec,gc(e.child,r)):(fo(t),n=e.child,e=n.sibling,n=_i(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function Ac(e,t){return t=jc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function jc(e,t){return e=hi(22,e,null,t),e.lanes=0,e}function Mc(e,t,n){return Wa(t,e.child,null,n),e=Ac(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Nc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ra(e.return,t,n)}function L(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Pc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=_o.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,ge(_o,o),dc(e,t,r,n),r=M?ki:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Nc(e,n,t);else if(e.tag===19)Nc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&vo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),L(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&vo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}L(t,!0,n,null,a,r);break;case`together`:L(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Fc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),eu|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(aa(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,n=_i(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=_i(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Ic(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&oa(e))):!0}function Lc(e,t,n){switch(t.tag){case 3:xe(t,t.stateNode.containerInfo),ta(t,ma,e.memoizedState.cache),Yi();break;case 27:case 5:E(t);break;case 4:xe(t,t.stateNode.containerInfo);break;case 10:ta(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,po(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(fo(t),e=Fc(e,t,n),e===null?null:e.sibling):kc(e,t,n):(fo(t),t.flags|=128,null);fo(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(aa(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Pc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),ge(_o,_o.current),r)break;return null;case 22:return t.lanes=0,hc(e,t,n,t.pendingProps);case 24:ta(t,ma,e.memoizedState.cache)}return Fc(e,t,n)}function Rc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)uc=!0;else{if(!Ic(e,n)&&!(t.flags&128))return uc=!1,Lc(e,t,n);uc=!!(e.flags&131072)}else uc=!1,M&&t.flags&1048576&&Ii(t,ki,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Fa(t.elementType),t.type=e,typeof e==`function`)gi(e)?(r=$s(e,r),t.tag=1,t=wc(null,t,e,r,n)):(t.tag=0,t=Sc(null,t,e,r,n));else{if(e!=null){var i=e.$$typeof;if(i===S){t.tag=11,t=fc(null,t,e,r,n);break a}else if(i===ne){t.tag=14,t=pc(null,t,e,r,n);break a}}throw t=le(e)||e,Error(o(306,t,``))}}return t;case 0:return Sc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,i=$s(r,t.pendingProps),wc(e,t,r,i,n);case 3:a:{if(xe(t,t.stateNode.containerInfo),e===null)throw Error(o(387));r=t.pendingProps;var a=t.memoizedState;i=a.element,Ja(e,t),to(t,r,null,n);var s=t.memoizedState;if(r=s.cache,ta(t,ma,r),r!==a.cache&&ia(t,[ma],n,!0),eo(),r=s.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){t=Tc(e,t,r,n);break a}else if(r!==i){i=Ti(Error(o(424)),t),Zi(i),t=Tc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Vi=_f(e.firstChild),Bi=t,M=!0,Hi=null,Ui=!0,n=Ga(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Yi(),r===i){t=Fc(e,t,n);break a}dc(e,t,r,n)}t=t.child}return t;case 26:return xc(e,t),e===null?(n=Rf(t.type,null,t.pendingProps,null))?t.memoizedState=n:M||(n=t.type,e=t.pendingProps,r=Yd(ye.current).createElement(n),r[_t]=t,r[vt]=e,Ud(r,n,e),At(r),t.stateNode=r):t.memoizedState=Rf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return E(t),e===null&&M&&(r=t.stateNode=xf(t.type,t.pendingProps,ye.current),Bi=t,Ui=!0,i=Vi,sf(t.type)?(vf=i,Vi=_f(r.firstChild)):Vi=i),dc(e,t,t.pendingProps.children,n),xc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&M&&((i=r=Vi)&&(r=df(r,t.type,t.pendingProps,Ui),r===null?i=!1:(t.stateNode=r,Bi=t,Vi=_f(r.firstChild),Ui=!1,i=!0)),i||Gi(t)),E(t),i=t.type,a=t.pendingProps,s=e===null?null:e.memoizedProps,r=a.children,Qd(i,a)?r=null:s!==null&&Qd(i,s)&&(t.flags|=32),t.memoizedState!==null&&(i=jo(e,t,Po,null,null,n),sp._currentValue=i),xc(e,t),dc(e,t,r,n),t.child;case 6:return e===null&&M&&((e=n=Vi)&&(n=ff(n,t.pendingProps,Ui),n===null?e=!1:(t.stateNode=n,Bi=t,Vi=null,e=!0)),e||Gi(t)),null;case 13:return kc(e,t,n);case 4:return xe(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Wa(t,null,r,n):dc(e,t,r,n),t.child;case 11:return fc(e,t,t.type,t.pendingProps,n);case 7:return dc(e,t,t.pendingProps,n),t.child;case 8:return dc(e,t,t.pendingProps.children,n),t.child;case 12:return dc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,ta(t,t.type,r.value),dc(e,t,r.children,n),t.child;case 9:return i=t.type._context,r=t.pendingProps.children,sa(t),i=ca(i),r=r(i),t.flags|=1,dc(e,t,r,n),t.child;case 14:return pc(e,t,t.type,t.pendingProps,n);case 15:return mc(e,t,t.type,t.pendingProps,n);case 19:return Pc(e,t,n);case 31:return bc(e,t,n);case 22:return hc(e,t,n,t.pendingProps);case 24:return sa(t),r=ca(ma),e===null?(i=Ea(),i===null&&(i=ql,a=ha(),i.pooledCache=a,a.refCount++,a!==null&&(i.pooledCacheLanes|=n),i=a),t.memoizedState={parent:r,cache:i},qa(t),ta(t,ma,i)):((e.lanes&n)!==0&&(Ja(e,t),to(t,null,null,n),eo()),i=e.memoizedState,a=t.memoizedState,i.parent===r?(r=a.cache,ta(t,ma,r),r!==i.cache&&ia(t,[ma],n,!0)):(i={parent:r,cache:r},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),ta(t,ma,r))),dc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(o(156,t.tag))}function zc(e){e.flags|=4}function Bc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(Nu())e.flags|=8192;else throw Ia=Ma,Aa}else e.flags&=-16777217}function Vc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!$f(t))if(Nu())e.flags|=8192;else throw Ia=Ma,Aa}function Hc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:at(),e.lanes|=t,iu|=t)}function Uc(e,t){if(!M)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Wc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Gc(e,t,n){var r=t.pendingProps;switch(Ri(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Wc(t),null;case 1:return Wc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),na(ma),Se(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Ji(t)?zc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Xi())),Wc(t),null;case 26:var i=t.type,a=t.memoizedState;return e===null?(zc(t),a===null?(Wc(t),Bc(t,i,null,r,n)):(Wc(t),Vc(t,a))):a?a===e.memoizedState?(Wc(t),t.flags&=-16777217):(zc(t),Wc(t),Vc(t,a)):(e=e.memoizedProps,e!==r&&zc(t),Wc(t),Bc(t,i,e,r,n)),null;case 27:if(Ce(t),n=ye.current,i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&zc(t);else{if(!r){if(t.stateNode===null)throw Error(o(166));return Wc(t),null}e=_e.current,Ji(t)?Ki(t,e):(e=xf(i,r,n),t.stateNode=e,zc(t))}return Wc(t),null;case 5:if(Ce(t),i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&zc(t);else{if(!r){if(t.stateNode===null)throw Error(o(166));return Wc(t),null}if(a=_e.current,Ji(t))Ki(t,a);else{var s=Yd(ye.current);switch(a){case 1:a=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case 2:a=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;default:switch(i){case`svg`:a=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case`math`:a=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;case`script`:a=s.createElement(`div`),a.innerHTML=`<script><\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}a[_t]=t,a[vt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)a.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=a;a:switch(Ud(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&zc(t)}}return Wc(t),Bc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&zc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(o(166));if(e=ye.current,Ji(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Bi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[_t]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Vd(e.nodeValue,n)),e||Gi(t,!0)}else e=Yd(e).createTextNode(r),e[_t]=t,t.stateNode=e}return Wc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Ji(t),n!==null){if(e===null){if(!r)throw Error(o(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(o(557));e[_t]=t}else Yi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Wc(t),e=!1}else n=Xi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(go(t),t):(go(t),null);if(t.flags&128)throw Error(o(558))}return Wc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Ji(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(o(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(o(317));i[_t]=t}else Yi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Wc(t),i=!1}else i=Xi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(go(t),t):(go(t),null)}return go(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Hc(t,t.updateQueue),Wc(t),null);case 4:return Se(),e===null&&jd(t.stateNode.containerInfo),Wc(t),null;case 10:return na(t.type),Wc(t),null;case 19:if(he(_o),r=t.memoizedState,r===null)return Wc(t),null;if(i=(t.flags&128)!=0,a=r.rendering,a===null)if(i)Uc(r,!1);else{if($l!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=vo(e),a!==null){for(t.flags|=128,Uc(r,!1),e=a.updateQueue,t.updateQueue=e,Hc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)vi(n,e),n=n.sibling;return ge(_o,_o.current&1|2),M&&Fi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Fe()>uu&&(t.flags|=128,i=!0,Uc(r,!1),t.lanes=4194304)}else{if(!i)if(e=vo(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Hc(t,e),Uc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!M)return Wc(t),null}else 2*Fe()-r.renderingStartTime>uu&&n!==536870912&&(t.flags|=128,i=!0,Uc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}return r.tail===null?(Wc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Fe(),e.sibling=null,n=_o.current,ge(_o,i?n&1|2:n&1),M&&Fi(t,r.treeForkCount),e);case 22:case 23:return go(t),co(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Wc(t),t.subtreeFlags&6&&(t.flags|=8192)):Wc(t),n=t.updateQueue,n!==null&&Hc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&he(Ta),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),na(ma),Wc(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Kc(e,t){switch(Ri(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return na(ma),Se(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Ce(t),null;case 31:if(t.memoizedState!==null){if(go(t),t.alternate===null)throw Error(o(340));Yi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(go(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Yi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return he(_o),null;case 4:return Se(),null;case 10:return na(t.type),null;case 22:case 23:return go(t),co(),e!==null&&he(Ta),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return na(ma),null;case 25:return null;default:return null}}function qc(e,t){switch(Ri(t),t.tag){case 3:na(ma),Se();break;case 26:case 27:case 5:Ce(t);break;case 4:Se();break;case 31:t.memoizedState!==null&&go(t);break;case 13:go(t);break;case 19:he(_o);break;case 10:na(t.type);break;case 22:case 23:go(t),co(),e!==null&&he(Ta);break;case 24:na(ma)}}function Jc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){$u(t,t.return,e)}}function Yc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){$u(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){$u(t,t.return,e)}}function Xc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{ro(t,n)}catch(t){$u(e,e.return,t)}}}function Zc(e,t,n){n.props=$s(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){$u(e,t,n)}}function Qc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){$u(e,t,n)}}function $c(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){$u(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){$u(e,t,n)}else n.current=null}function el(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){$u(e,e.return,t)}}function tl(e,t,n){try{var r=e.stateNode;Wd(r,e.type,n,t),r[vt]=t}catch(t){$u(e,e.return,t)}}function nl(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&sf(e.type)||e.tag===4}function rl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||nl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&sf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function il(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=dn));else if(r!==4&&(r===27&&sf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(il(e,t,n),e=e.sibling;e!==null;)il(e,t,n),e=e.sibling}function al(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&sf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(al(e,t,n),e=e.sibling;e!==null;)al(e,t,n),e=e.sibling}function ol(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Ud(t,r,n),t[_t]=e,t[vt]=n}catch(t){$u(e,e.return,t)}}var sl=!1,cl=!1,ll=!1,ul=typeof WeakSet==`function`?WeakSet:Set,dl=null;function fl(e,t){if(e=e.containerInfo,qd=gp,e=Pr(e),Fr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==a||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===a&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Jd={focusedElem:e,selectionRange:n},gp=!1,dl=t;dl!==null;)if(t=dl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,dl=e;else for(;dl!==null;){switch(t=dl,a=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)i=e[n],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&a!==null){e=void 0,n=t,i=a.memoizedProps,a=a.memoizedState,r=n.stateNode;try{var h=$s(n.type,i);e=r.getSnapshotBeforeUpdate(h,a),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){$u(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)uf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:uf(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(o(163))}if(e=t.sibling,e!==null){e.return=t.return,dl=e;break}dl=t.return}}function pl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Ol(e,n),r&4&&Jc(5,n);break;case 1:if(Ol(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){$u(n,n.return,e)}else{var i=$s(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){$u(n,n.return,e)}}r&64&&Xc(n),r&512&&Qc(n,n.return);break;case 3:if(Ol(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{ro(e,t)}catch(e){$u(n,n.return,e)}}break;case 27:t===null&&r&4&&ol(n);case 26:case 5:Ol(e,n),t===null&&r&4&&el(n),r&512&&Qc(n,n.return);break;case 12:Ol(e,n);break;case 31:Ol(e,n),r&4&&yl(e,n);break;case 13:Ol(e,n),r&4&&bl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=rd.bind(null,n),gf(e,n))));break;case 22:if(r=n.memoizedState!==null||sl,!r){t=t!==null&&t.memoizedState!==null||cl,i=sl;var a=cl;sl=r,(cl=t)&&!a?Al(e,n,(n.subtreeFlags&8772)!=0):Ol(e,n),sl=i,cl=a}break;case 30:break;default:Ol(e,n)}}function ml(e){var t=e.alternate;t!==null&&(e.alternate=null,ml(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Tt(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var hl=null,gl=!1;function _l(e,t,n){for(n=n.child;n!==null;)vl(e,t,n),n=n.sibling}function vl(e,t,n){if(Ke&&typeof Ke.onCommitFiberUnmount==`function`)try{Ke.onCommitFiberUnmount(Ge,n)}catch{}switch(n.tag){case 26:cl||$c(n,t),_l(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:cl||$c(n,t);var r=hl,i=gl;sf(n.type)&&(hl=n.stateNode,gl=!1),_l(e,t,n),Sf(n.stateNode),hl=r,gl=i;break;case 5:cl||$c(n,t);case 6:if(r=hl,i=gl,hl=null,_l(e,t,n),hl=r,gl=i,hl!==null)if(gl)try{(hl.nodeType===9?hl.body:hl.nodeName===`HTML`?hl.ownerDocument.body:hl).removeChild(n.stateNode)}catch(e){$u(n,t,e)}else try{hl.removeChild(n.stateNode)}catch(e){$u(n,t,e)}break;case 18:hl!==null&&(gl?(e=hl,cf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Hp(e)):cf(hl,n.stateNode));break;case 4:r=hl,i=gl,hl=n.stateNode.containerInfo,gl=!0,_l(e,t,n),hl=r,gl=i;break;case 0:case 11:case 14:case 15:Yc(2,n,t),cl||Yc(4,n,t),_l(e,t,n);break;case 1:cl||($c(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Zc(n,t,r)),_l(e,t,n);break;case 21:_l(e,t,n);break;case 22:cl=(r=cl)||n.memoizedState!==null,_l(e,t,n),cl=r;break;default:_l(e,t,n)}}function yl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Hp(e)}catch(e){$u(t,t.return,e)}}}function bl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Hp(e)}catch(e){$u(t,t.return,e)}}function xl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new ul),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new ul),t;default:throw Error(o(435,e.tag))}}function Sl(e,t){var n=xl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=id.bind(null,e,t);t.then(r,r)}})}function Cl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r],a=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(sf(c.type)){hl=c.stateNode,gl=!1;break a}break;case 5:hl=c.stateNode,gl=!1;break a;case 3:case 4:hl=c.stateNode.containerInfo,gl=!0;break a}c=c.return}if(hl===null)throw Error(o(160));vl(a,s,i),hl=null,gl=!1,a=i.alternate,a!==null&&(a.return=null),i.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Tl(t,e),t=t.sibling}var wl=null;function Tl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Cl(t,e),El(e),r&4&&(Yc(3,e,e.return),Jc(3,e),Yc(5,e,e.return));break;case 1:Cl(t,e),El(e),r&512&&(cl||n===null||$c(n,n.return)),r&64&&sl&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var i=wl;if(Cl(t,e),El(e),r&512&&(cl||n===null||$c(n,n.return)),r&4){var a=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,i=i.ownerDocument||i;b:switch(r){case`title`:a=i.getElementsByTagName(`title`)[0],(!a||a[wt]||a[_t]||a.namespaceURI===`http://www.w3.org/2000/svg`||a.hasAttribute(`itemprop`))&&(a=i.createElement(r),i.head.insertBefore(a,i.querySelector(`head > title`))),Ud(a,r,n),a[_t]=e,At(a),r=a;break a;case`link`:var s=Xf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(a=s[c],a.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&a.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&a.getAttribute(`title`)===(n.title==null?null:n.title)&&a.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}a=i.createElement(r),Ud(a,r,n),i.head.appendChild(a);break;case`meta`:if(s=Xf(`meta`,`content`,i).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(a=s[c],a.getAttribute(`content`)===(n.content==null?null:``+n.content)&&a.getAttribute(`name`)===(n.name==null?null:n.name)&&a.getAttribute(`property`)===(n.property==null?null:n.property)&&a.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&a.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}a=i.createElement(r),Ud(a,r,n),i.head.appendChild(a);break;default:throw Error(o(468,r))}a[_t]=e,At(a),r=a}e.stateNode=r}else Zf(i,e.type,e.stateNode);else e.stateNode=Gf(i,r,e.memoizedProps);else a===r?r===null&&e.stateNode!==null&&tl(e,e.memoizedProps,n.memoizedProps):(a===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):a.count--,r===null?Zf(i,e.type,e.stateNode):Gf(i,r,e.memoizedProps))}break;case 27:Cl(t,e),El(e),r&512&&(cl||n===null||$c(n,n.return)),n!==null&&r&4&&tl(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Cl(t,e),El(e),r&512&&(cl||n===null||$c(n,n.return)),e.flags&32){i=e.stateNode;try{nn(i,``)}catch(t){$u(e,e.return,t)}}r&4&&e.stateNode!=null&&(i=e.memoizedProps,tl(e,i,n===null?i:n.memoizedProps)),r&1024&&(ll=!0);break;case 6:if(Cl(t,e),El(e),r&4){if(e.stateNode===null)throw Error(o(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){$u(e,e.return,t)}}break;case 3:if(Yf=null,i=wl,wl=Tf(t.containerInfo),Cl(t,e),wl=i,El(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Hp(t.containerInfo)}catch(t){$u(e,e.return,t)}ll&&(ll=!1,Dl(e));break;case 4:r=wl,wl=Tf(e.stateNode.containerInfo),Cl(t,e),El(e),wl=r;break;case 12:Cl(t,e),El(e);break;case 31:Cl(t,e),El(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,Sl(e,r)));break;case 13:Cl(t,e),El(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(cu=Fe()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,Sl(e,r)));break;case 22:i=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=sl,d=cl;if(sl=u||i,cl=d||l,Cl(t,e),cl=d,sl=u,El(e),r&8192)a:for(t=e.stateNode,t._visibility=i?t._visibility&-2:t._visibility|1,i&&(n===null||l||sl||cl||kl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(a=l.stateNode,i)s=a.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){$u(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=i?``:l.memoizedProps}catch(e){$u(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;i?lf(m,!0):lf(l.stateNode,!1)}catch(e){$u(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,Sl(e,n))));break;case 19:Cl(t,e),El(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,Sl(e,r)));break;case 30:break;case 21:break;default:Cl(t,e),El(e)}}function El(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(nl(r)){n=r;break}r=r.return}if(n==null)throw Error(o(160));switch(n.tag){case 27:var i=n.stateNode;al(e,rl(e),i);break;case 5:var a=n.stateNode;n.flags&32&&(nn(a,``),n.flags&=-33),al(e,rl(e),a);break;case 3:case 4:var s=n.stateNode.containerInfo;il(e,rl(e),s);break;default:throw Error(o(161))}}catch(t){$u(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Dl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Dl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Ol(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)pl(e,t.alternate,t),t=t.sibling}function kl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Yc(4,t,t.return),kl(t);break;case 1:$c(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Zc(t,t.return,n),kl(t);break;case 27:Sf(t.stateNode);case 26:case 5:$c(t,t.return),kl(t);break;case 22:t.memoizedState===null&&kl(t);break;case 30:kl(t);break;default:kl(t)}e=e.sibling}}function Al(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Al(i,a,n),Jc(4,a);break;case 1:if(Al(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){$u(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)no(c[i],s)}catch(e){$u(r,r.return,e)}}n&&o&64&&Xc(a),Qc(a,a.return);break;case 27:ol(a);case 26:case 5:Al(i,a,n),n&&r===null&&o&4&&el(a),Qc(a,a.return);break;case 12:Al(i,a,n);break;case 31:Al(i,a,n),n&&o&4&&yl(i,a);break;case 13:Al(i,a,n),n&&o&4&&bl(i,a);break;case 22:a.memoizedState===null&&Al(i,a,n),Qc(a,a.return);break;case 30:break;default:Al(i,a,n)}t=t.sibling}}function jl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&ga(n))}function Ml(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ga(e))}function Nl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Pl(e,t,n,r),t=t.sibling}function Pl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Nl(e,t,n,r),i&2048&&Jc(9,t);break;case 1:Nl(e,t,n,r);break;case 3:Nl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ga(e)));break;case 12:if(i&2048){Nl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){$u(t,t.return,e)}}else Nl(e,t,n,r);break;case 31:Nl(e,t,n,r);break;case 13:Nl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Nl(e,t,n,r):(a._visibility|=2,Fl(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?Nl(e,t,n,r):Il(e,t),i&2048&&jl(o,t);break;case 24:Nl(e,t,n,r),i&2048&&Ml(t.alternate,t);break;default:Nl(e,t,n,r)}}function Fl(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Fl(a,o,s,c,i),Jc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Fl(a,o,s,c,i)):u._visibility&2?Fl(a,o,s,c,i):Il(a,o),i&&l&2048&&jl(o.alternate,o);break;case 24:Fl(a,o,s,c,i),i&&l&2048&&Ml(o.alternate,o);break;default:Fl(a,o,s,c,i)}t=t.sibling}}function Il(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Il(n,r),i&2048&&jl(r.alternate,r);break;case 24:Il(n,r),i&2048&&Ml(r.alternate,r);break;default:Il(n,r)}t=t.sibling}}var Ll=8192;function Rl(e,t,n){if(e.subtreeFlags&Ll)for(e=e.child;e!==null;)zl(e,t,n),e=e.sibling}function zl(e,t,n){switch(e.tag){case 26:Rl(e,t,n),e.flags&Ll&&e.memoizedState!==null&&ep(n,wl,e.memoizedState,e.memoizedProps);break;case 5:Rl(e,t,n);break;case 3:case 4:var r=wl;wl=Tf(e.stateNode.containerInfo),Rl(e,t,n),wl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Ll,Ll=16777216,Rl(e,t,n),Ll=r):Rl(e,t,n));break;default:Rl(e,t,n)}}function Bl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Vl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];dl=r,Wl(r,e)}Bl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Hl(e),e=e.sibling}function Hl(e){switch(e.tag){case 0:case 11:case 15:Vl(e),e.flags&2048&&Yc(9,e,e.return);break;case 3:Vl(e);break;case 12:Vl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Ul(e)):Vl(e);break;default:Vl(e)}}function Ul(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];dl=r,Wl(r,e)}Bl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Yc(8,t,t.return),Ul(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Ul(t));break;default:Ul(t)}e=e.sibling}}function Wl(e,t){for(;dl!==null;){var n=dl;switch(n.tag){case 0:case 11:case 15:Yc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:ga(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,dl=r;else a:for(n=e;dl!==null;){r=dl;var i=r.sibling,a=r.return;if(ml(r),r===n){dl=null;break a}if(i!==null){i.return=a,dl=i;break a}dl=a}}}var Gl={getCacheForType:function(e){var t=ca(ma),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ca(ma).controller.signal}},Kl=typeof WeakMap==`function`?WeakMap:Map,R=0,ql=null,z=null,B=0,V=0,Jl=null,Yl=!1,Xl=!1,Zl=!1,Ql=0,$l=0,eu=0,tu=0,nu=0,ru=0,iu=0,au=null,ou=null,su=!1,cu=0,lu=0,uu=1/0,du=null,fu=null,pu=0,mu=null,hu=null,gu=0,_u=0,vu=null,yu=null,bu=0,xu=null;function Su(){return R&2&&B!==0?B&-B:w.T===null?mt():bd()}function Cu(){if(ru===0)if(!(B&536870912)||M){var e=$e;$e<<=1,!($e&3932160)&&($e=262144),ru=e}else ru=536870912;return e=lo.current,e!==null&&(e.flags|=32),ru}function wu(e,t,n){(e===ql&&(V===2||V===9)||e.cancelPendingCommit!==null)&&(ju(e,0),Ou(e,B,ru,!1)),st(e,n),(!(R&2)||e!==ql)&&(e===ql&&(!(R&2)&&(tu|=n),$l===4&&Ou(e,B,ru,!1)),fd(e))}function Tu(e,t,n){if(R&6)throw Error(o(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||rt(e,t),i=r?zu(e,t):Lu(e,t,!0),a=r;do{if(i===0){Xl&&!r&&Ou(e,t,0,!1);break}else{if(n=e.current.alternate,a&&!Du(n)){i=Lu(e,t,!1),a=!1;continue}if(i===2){if(a=t,e.errorRecoveryDisabledLanes&a)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;i=au;var l=c.current.memoizedState.isDehydrated;if(l&&(ju(c,s).flags|=256),s=Lu(c,s,!1),s!==2){if(Zl&&!l){c.errorRecoveryDisabledLanes|=a,tu|=a,i=4;break a}a=ou,ou=i,a!==null&&(ou===null?ou=a:ou.push.apply(ou,a))}i=s}if(a=!1,i!==2)continue}}if(i===1){ju(e,0),Ou(e,t,0,!0);break}a:{switch(r=e,a=i,a){case 0:case 1:throw Error(o(345));case 4:if((t&4194048)!==t)break;case 6:Ou(r,t,ru,!Yl);break a;case 2:ou=null;break;case 3:case 5:break;default:throw Error(o(329))}if((t&62914560)===t&&(i=cu+300-Fe(),10<i)){if(Ou(r,t,ru,!Yl),nt(r,0,!0)!==0)break a;gu=t,r.timeoutHandle=tf(Eu.bind(null,r,n,ou,du,su,t,ru,tu,iu,Yl,a,`Throttled`,-0,0),i);break a}Eu(r,n,ou,du,su,t,ru,tu,iu,Yl,a,null,-0,0)}}break}while(1);fd(e)}function Eu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:dn},zl(t,a,d);var m=(a&62914560)===a?cu-Fe():(a&4194048)===a?lu-Fe():0;if(m=np(d,m),m!==null){gu=a,e.cancelPendingCommit=m(Gu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Ou(e,a,o,!l);return}}Gu(e,t,a,n,r,i,o,s,c)}function Du(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!kr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Ou(e,t,n,r){t&=~nu,t&=~tu,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Je(i),o=1<<a;r[a]=-1,i&=~o}n!==0&<(e,n,t)}function ku(){return R&6?!0:(pd(0,!1),!1)}function Au(){if(z!==null){if(V===0)var e=z.return;else e=z,ea=$i=null,Io(e),Ra=null,za=0,e=z;for(;e!==null;)qc(e.alternate,e),e=e.return;z=null}}function ju(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,nf(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),gu=0,Au(),ql=e,z=n=_i(e.current,null),B=t,V=0,Jl=null,Yl=!1,Xl=rt(e,t),Zl=!1,iu=ru=nu=tu=eu=$l=0,ou=au=null,su=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Je(r),a=1<<i;t|=e[i],r&=~a}return Ql=t,si(),n}function Mu(e,t){P=null,w.H=Gs,t===ka||t===ja?(t=La(),V=3):t===Aa?(t=La(),V=4):V=t===lc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Jl=t,z===null&&($l=1,rc(e,Ti(t,e.current)))}function Nu(){var e=lo.current;return e===null?!0:(B&4194048)===B?uo===null:(B&62914560)===B||B&536870912?e===uo:!1}function Pu(){var e=w.H;return w.H=Gs,e===null?Gs:e}function Fu(){var e=w.A;return w.A=Gl,e}function Iu(){$l=4,Yl||(B&4194048)!==B&&lo.current!==null||(Xl=!0),!(eu&134217727)&&!(tu&134217727)||ql===null||Ou(ql,B,ru,!1)}function Lu(e,t,n){var r=R;R|=2;var i=Pu(),a=Fu();(ql!==e||B!==t)&&(du=null,ju(e,t)),t=!1;var o=$l;a:do try{if(V!==0&&z!==null){var s=z,c=Jl;switch(V){case 8:Au(),o=6;break a;case 3:case 2:case 9:case 6:lo.current===null&&(t=!0);var l=V;if(V=0,Jl=null,Hu(e,s,c,l),n&&Xl){o=0;break a}break;default:l=V,V=0,Jl=null,Hu(e,s,c,l)}}Ru(),o=$l;break}catch(t){Mu(e,t)}while(1);return t&&e.shellSuspendCounter++,ea=$i=null,R=r,w.H=i,w.A=a,z===null&&(ql=null,B=0,si()),o}function Ru(){for(;z!==null;)Vu(z)}function zu(e,t){var n=R;R|=2;var r=Pu(),i=Fu();ql!==e||B!==t?(du=null,uu=Fe()+500,ju(e,t)):Xl=rt(e,t);a:do try{if(V!==0&&z!==null){t=z;var a=Jl;b:switch(V){case 1:V=0,Jl=null,Hu(e,t,a,1);break;case 2:case 9:if(Na(a)){V=0,Jl=null,H(t);break}t=function(){V!==2&&V!==9||ql!==e||(V=7),fd(e)},a.then(t,t);break a;case 3:V=7;break a;case 4:V=5;break a;case 7:Na(a)?(V=0,Jl=null,H(t)):(V=0,Jl=null,Hu(e,t,a,7));break;case 5:var s=null;switch(z.tag){case 26:s=z.memoizedState;case 5:case 27:var c=z;if(s?$f(s):c.stateNode.complete){V=0,Jl=null;var l=c.sibling;if(l!==null)z=l;else{var u=c.return;u===null?z=null:(z=u,Uu(u))}break b}}V=0,Jl=null,Hu(e,t,a,5);break;case 6:V=0,Jl=null,Hu(e,t,a,6);break;case 8:Au(),$l=6;break a;default:throw Error(o(462))}}Bu();break}catch(t){Mu(e,t)}while(1);return ea=$i=null,w.H=r,w.A=i,R=n,z===null?(ql=null,B=0,si(),$l):0}function Bu(){for(;z!==null&&!D();)Vu(z)}function Vu(e){var t=Rc(e.alternate,e,Ql);e.memoizedProps=e.pendingProps,t===null?Uu(e):z=t}function H(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Cc(n,t,t.pendingProps,t.type,void 0,B);break;case 11:t=Cc(n,t,t.pendingProps,t.type.render,t.ref,B);break;case 5:Io(t);default:qc(n,t),t=z=vi(t,Ql),t=Rc(n,t,Ql)}e.memoizedProps=e.pendingProps,t===null?Uu(e):z=t}function Hu(e,t,n,r){ea=$i=null,Io(t),Ra=null,za=0;var i=t.return;try{if(cc(e,i,t,n,B)){$l=1,rc(e,Ti(n,e.current)),z=null;return}}catch(t){if(i!==null)throw z=i,t;$l=1,rc(e,Ti(n,e.current)),z=null;return}t.flags&32768?(M||r===1?e=!0:Xl||B&536870912?e=!1:(Yl=e=!0,(r===2||r===9||r===3||r===6)&&(r=lo.current,r!==null&&r.tag===13&&(r.flags|=16384))),Wu(t,e)):Uu(t)}function Uu(e){var t=e;do{if(t.flags&32768){Wu(t,Yl);return}e=t.return;var n=Gc(t.alternate,t,Ql);if(n!==null){z=n;return}if(t=t.sibling,t!==null){z=t;return}z=t=e}while(t!==null);$l===0&&($l=5)}function Wu(e,t){do{var n=Kc(e.alternate,e);if(n!==null){n.flags&=32767,z=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){z=e;return}z=e=n}while(e!==null);$l=6,z=null}function Gu(e,t,n,r,i,a,s,c,l){e.cancelPendingCommit=null;do Xu();while(pu!==0);if(R&6)throw Error(o(327));if(t!==null){if(t===e.current)throw Error(o(177));if(a=t.lanes|t.childLanes,a|=oi,ct(e,n,a,s,c,l),e===ql&&(z=ql=null,B=0),hu=t,mu=e,gu=n,_u=a,vu=i,yu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,ad(Be,function(){return Zu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=w.T,w.T=null,i=T.p,T.p=2,s=R,R|=4;try{fl(e,t,n)}finally{R=s,T.p=i,w.T=r}}pu=1,Ku(),qu(),Ju()}}function Ku(){if(pu===1){pu=0;var e=mu,t=hu,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=w.T,w.T=null;var r=T.p;T.p=2;var i=R;R|=4;try{Tl(t,e);var a=Jd,o=Pr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Nr(s.ownerDocument.documentElement,s)){if(c!==null&&Fr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Mr(s,h),v=Mr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}gp=!!qd,Jd=qd=null}finally{R=i,T.p=r,w.T=n}}e.current=t,pu=2}}function qu(){if(pu===2){pu=0;var e=mu,t=hu,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=w.T,w.T=null;var r=T.p;T.p=2;var i=R;R|=4;try{pl(e,t.alternate,t)}finally{R=i,T.p=r,w.T=n}}pu=3}}function Ju(){if(pu===4||pu===3){pu=0,Pe();var e=mu,t=hu,n=gu,r=yu;t.subtreeFlags&10256||t.flags&10256?pu=5:(pu=0,hu=mu=null,Yu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(fu=null),pt(n),t=t.stateNode,Ke&&typeof Ke.onCommitFiberRoot==`function`)try{Ke.onCommitFiberRoot(Ge,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=w.T,i=T.p,T.p=2,w.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{w.T=t,T.p=i}}gu&3&&Xu(),fd(e),i=e.pendingLanes,n&261930&&i&42?e===xu?bu++:(bu=0,xu=e):bu=0,pd(0,!1)}}function Yu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,ga(t)))}function Xu(){return Ku(),qu(),Ju(),Zu()}function Zu(){if(pu!==5)return!1;var e=mu,t=_u;_u=0;var n=pt(gu),r=w.T,i=T.p;try{T.p=32>n?32:n,w.T=null,n=vu,vu=null;var a=mu,s=gu;if(pu=0,hu=mu=null,gu=0,R&6)throw Error(o(331));var c=R;if(R|=4,Hl(a.current),Pl(a,a.current,s,n),R=c,pd(0,!1),Ke&&typeof Ke.onPostCommitFiberRoot==`function`)try{Ke.onPostCommitFiberRoot(Ge,a)}catch{}return!0}finally{T.p=i,w.T=r,Yu(e,t)}}function Qu(e,t,n){t=Ti(n,t),t=ac(e.stateNode,t,2),e=Xa(e,t,2),e!==null&&(st(e,2),fd(e))}function $u(e,t,n){if(e.tag===3)Qu(e,e,n);else for(;t!==null;){if(t.tag===3){Qu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(fu===null||!fu.has(r))){e=Ti(n,e),n=oc(2),r=Xa(t,n,2),r!==null&&(sc(n,r,t,e),st(r,2),fd(r));break}}t=t.return}}function ed(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Kl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Zl=!0,i.add(n),e=td.bind(null,e,t,n),t.then(e,e))}function td(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ql===e&&(B&n)===n&&($l===4||$l===3&&(B&62914560)===B&&300>Fe()-cu?!(R&2)&&ju(e,0):nu|=n,iu===B&&(iu=0)),fd(e)}function nd(e,t){t===0&&(t=at()),e=ui(e,t),e!==null&&(st(e,t),fd(e))}function rd(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),nd(e,n)}function id(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}r!==null&&r.delete(t),nd(e,n)}function ad(e,t){return Me(e,t)}var od=null,sd=null,cd=!1,ld=!1,ud=!1,dd=0;function fd(e){e!==sd&&e.next===null&&(sd===null?od=sd=e:sd=sd.next=e),ld=!0,cd||(cd=!0,yd())}function pd(e,t){if(!ud&&ld){ud=!0;do for(var n=!1,r=od;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Je(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,vd(r,a))}else a=B,a=nt(r,r===ql?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||rt(r,a)||(n=!0,vd(r,a));r=r.next}while(n);ud=!1}}function md(){hd()}function hd(){ld=cd=!1;var e=0;dd!==0&&ef()&&(e=dd);for(var t=Fe(),n=null,r=od;r!==null;){var i=r.next,a=gd(r,t);a===0?(r.next=null,n===null?od=i:n.next=i,i===null&&(sd=n)):(n=r,(e!==0||a&3)&&(ld=!0)),r=i}pu!==0&&pu!==5||pd(e,!1),dd!==0&&(dd=0)}function gd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Je(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=it(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=ql,n=B,n=nt(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(V===2||V===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Ne(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||rt(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Ne(r),pt(n)){case 2:case 8:n=ze;break;case 32:n=Be;break;case 268435456:n=He;break;default:n=Be}return r=_d.bind(null,e),n=Me(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Ne(r),e.callbackPriority=2,e.callbackNode=null,2}function _d(e,t){if(pu!==0&&pu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Xu()&&e.callbackNode!==n)return null;var r=B;return r=nt(e,e===ql?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Tu(e,r,t),gd(e,Fe()),e.callbackNode!=null&&e.callbackNode===n?_d.bind(null,e):null)}function vd(e,t){if(Xu())return null;Tu(e,t,!0)}function yd(){af(function(){R&6?Me(Le,md):hd()})}function bd(){if(dd===0){var e=ya;e===0&&(e=Qe,Qe<<=1,!(Qe&261888)&&(Qe=256)),dd=e}return dd}function xd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:un(``+e)}function Sd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function Cd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=xd((i[vt]||null).action),o=r.submitter;o&&(t=(t=o[vt]||null)?xd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new An(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(dd!==0){var e=o?Sd(i,o):new FormData(i);Ms(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?Sd(i,o):new FormData(i),Ms(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var wd=0;wd<ti.length;wd++){var Td=ti[wd];ni(Td.toLowerCase(),`on`+(Td[0].toUpperCase()+Td.slice(1)))}ni(qr,`onAnimationEnd`),ni(Jr,`onAnimationIteration`),ni(Yr,`onAnimationStart`),ni(`dblclick`,`onDoubleClick`),ni(`focusin`,`onFocus`),ni(`focusout`,`onBlur`),ni(Xr,`onTransitionRun`),ni(Zr,`onTransitionStart`),ni(Qr,`onTransitionCancel`),ni($r,`onTransitionEnd`),Pt(`onMouseEnter`,[`mouseout`,`mouseover`]),Pt(`onMouseLeave`,[`mouseout`,`mouseover`]),Pt(`onPointerEnter`,[`pointerout`,`pointerover`]),Pt(`onPointerLeave`,[`pointerout`,`pointerover`]),Nt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Nt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Nt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Nt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Nt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Nt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var Ed=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),Dd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(Ed));function Od(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ri(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ri(e)}i.currentTarget=null,a=c}}}}function U(e,t){var n=t[bt];n===void 0&&(n=t[bt]=new Set);var r=e+`__bubble`;n.has(r)||(Md(t,e,2,!1),n.add(r))}function kd(e,t,n){var r=0;t&&(r|=4),Md(n,e,r,t)}var Ad=`_reactListening`+Math.random().toString(36).slice(2);function jd(e){if(!e[Ad]){e[Ad]=!0,jt.forEach(function(t){t!==`selectionchange`&&(Dd.has(t)||kd(t,!1,e),kd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ad]||(t[Ad]=!0,kd(`selectionchange`,!1,t))}}function Md(e,t,n,r){switch(Cp(t)){case 2:var i=_p;break;case 8:i=vp;break;default:i=yp}n=i.bind(null,t,n,e),i=void 0,!yn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Nd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var s=r.stateNode.containerInfo;if(s===i)break;if(o===4)for(o=r.return;o!==null;){var l=o.tag;if((l===3||l===4)&&o.stateNode.containerInfo===i)return;o=o.return}for(;s!==null;){if(o=Et(s),o===null)return;if(l=o.tag,l===5||l===6||l===26||l===27){r=a=o;continue a}s=s.parentNode}}r=r.return}k(function(){var r=a,i=pn(n),o=[];a:{var s=ei.get(e);if(s!==void 0){var l=An,u=e;switch(e){case`keypress`:if(Tn(n)===0)break a;case`keydown`:case`keyup`:l=Jn;break;case`focusin`:u=`focus`,l=zn;break;case`focusout`:u=`blur`,l=zn;break;case`beforeblur`:case`afterblur`:l=zn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Ln;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Rn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Xn;break;case qr:case Jr:case Yr:l=Bn;break;case $r:l=Zn;break;case`scroll`:case`scrollend`:l=Mn;break;case`wheel`:l=Qn;break;case`copy`:case`cut`:case`paste`:l=Vn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Yn;break;case`toggle`:case`beforetoggle`:l=A}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?s===null?null:s+`Capture`:s;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=_n(m,p),g!=null&&d.push(Pd(m,g,h))),f)break;m=m.return}0<d.length&&(s=new l(s,u,null,n,i),o.push({event:s,listeners:d}))}}if(!(t&7)){a:{if(s=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,s&&n!==fn&&(u=n.relatedTarget||n.fromElement)&&(Et(u)||u[yt]))break a;if((l||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?Et(u):null,u!==null&&(f=c(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Ln,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Yn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?s:Ot(l),h=u==null?s:Ot(u),s=new d(g,m+`leave`,l,n,i),s.target=f,s.relatedTarget=h,g=null,Et(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Id,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Ld(o,s,l,d,!1),u!==null&&f!==null&&Ld(o,f,u,d,!0)}}a:{if(s=r?Ot(r):window,l=s.nodeName&&s.nodeName.toLowerCase(),l===`select`||l===`input`&&s.type===`file`)var v=_r;else if(dr(s))if(vr)v=Dr;else{v=Tr;var y=wr}else l=s.nodeName,!l||l.toLowerCase()!==`input`||s.type!==`checkbox`&&s.type!==`radio`?r&&sn(r.elementType)&&(v=_r):v=Er;if(v&&=v(e,r)){fr(o,v,n,i);break a}y&&y(e,s,r),e===`focusout`&&r&&s.type===`number`&&r.memoizedProps.value!=null&&Qt(s,`number`,s.value)}switch(y=r?Ot(r):window,e){case`focusin`:(dr(y)||y.contentEditable===`true`)&&(Lr=y,Rr=r,zr=null);break;case`focusout`:zr=Rr=Lr=null;break;case`mousedown`:Br=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Br=!1,Vr(o,n,i);break;case`selectionchange`:if(Ir)break;case`keydown`:case`keyup`:Vr(o,n,i)}var b;if(j)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else sr?ar(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(nr&&n.locale!==`ko`&&(sr||x!==`onCompositionStart`?x===`onCompositionEnd`&&sr&&(b=wn()):(xn=i,Sn=`value`in xn?xn.value:xn.textContent,sr=!0)),y=Fd(r,x),0<y.length&&(x=new Hn(x,e,null,n,i),o.push({event:x,listeners:y}),b?x.data=b:(b=or(n),b!==null&&(x.data=b)))),(b=tr?cr(e,n):lr(e,n))&&(x=Fd(r,`onBeforeInput`),0<x.length&&(y=new Hn(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:y,listeners:x}),y.data=b)),Cd(o,e,r,n,i)}Od(o,t)})}function Pd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Fd(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=_n(e,n),i!=null&&r.unshift(Pd(e,i,a)),i=_n(e,t),i!=null&&r.push(Pd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Id(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ld(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=_n(n,a),l!=null&&o.unshift(Pd(n,l,c))):i||(l=_n(n,a),l!=null&&o.push(Pd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Rd=/\r\n?/g,zd=/\u0000|\uFFFD/g;function Bd(e){return(typeof e==`string`?e:``+e).replace(Rd,` 10`).replace(zd,``)}function Vd(e,t){return t=Bd(t),Bd(e)===t}function Hd(e,t,n,r,i,a){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||nn(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&nn(e,``+r);break;case`className`:Bt(e,`class`,r);break;case`tabIndex`:Bt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Bt(e,n,r);break;case`style`:on(e,r,a);break;case`data`:if(t!==`object`){Bt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=un(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof a==`function`&&(n===`formAction`?(t!==`input`&&Hd(e,t,`name`,i.name,i,null),Hd(e,t,`formEncType`,i.formEncType,i,null),Hd(e,t,`formMethod`,i.formMethod,i,null),Hd(e,t,`formTarget`,i.formTarget,i,null)):(Hd(e,t,`encType`,i.encType,i,null),Hd(e,t,`method`,i.method,i,null),Hd(e,t,`target`,i.target,i,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=un(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=dn);break;case`onScroll`:r!=null&&U(`scroll`,e);break;case`onScrollEnd`:r!=null&&U(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(o(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(o(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=un(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:U(`beforetoggle`,e),U(`toggle`,e),zt(e,`popover`,r);break;case`xlinkActuate`:Vt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Vt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Vt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Vt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Vt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Vt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Vt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Vt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Vt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:zt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=cn.get(n)||n,zt(e,n,r))}}function W(e,t,n,r,i,a){switch(n){case`style`:on(e,r,a);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(o(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(o(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?nn(e,r):(typeof r==`number`||typeof r==`bigint`)&&nn(e,``+r);break;case`onScroll`:r!=null&&U(`scroll`,e);break;case`onScrollEnd`:r!=null&&U(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=dn);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!Mt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(i=n.endsWith(`Capture`),t=n.slice(2,i?n.length-7:void 0),a=e[vt]||null,a=a==null?null:a[n],typeof a==`function`&&e.removeEventListener(t,a,i),typeof r==`function`)){typeof a!=`function`&&a!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,i);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):zt(e,n,r)}}}function Ud(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:U(`error`,e),U(`load`,e);var r=!1,i=!1,a;for(a in n)if(n.hasOwnProperty(a)){var s=n[a];if(s!=null)switch(a){case`src`:r=!0;break;case`srcSet`:i=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(o(137,t));default:Hd(e,t,a,s,n,null)}}i&&Hd(e,t,`srcSet`,n.srcSet,n,null),r&&Hd(e,t,`src`,n.src,n,null);return;case`input`:U(`invalid`,e);var c=a=s=i=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:i=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:a=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(o(137,t));break;default:Hd(e,t,r,d,n,null)}}Zt(e,a,c,l,u,s,i,!1);return;case`select`:for(i in U(`invalid`,e),r=s=a=null,n)if(n.hasOwnProperty(i)&&(c=n[i],c!=null))switch(i){case`value`:a=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Hd(e,t,i,c,n,null)}t=a,n=s,e.multiple=!!r,t==null?n!=null&&$t(e,!!r,n,!0):$t(e,!!r,t,!1);return;case`textarea`:for(s in U(`invalid`,e),a=i=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:i=c;break;case`children`:a=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(o(91));break;default:Hd(e,t,s,c,n,null)}tn(e,r,i,a);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Hd(e,t,l,r,n,null)}return;case`dialog`:U(`beforetoggle`,e),U(`toggle`,e),U(`cancel`,e),U(`close`,e);break;case`iframe`:case`object`:U(`load`,e);break;case`video`:case`audio`:for(r=0;r<Ed.length;r++)U(Ed[r],e);break;case`image`:U(`error`,e),U(`load`,e);break;case`details`:U(`toggle`,e);break;case`embed`:case`source`:case`link`:U(`error`,e),U(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(o(137,t));default:Hd(e,t,u,r,n,null)}return;default:if(sn(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&W(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Hd(e,t,c,r,n,null))}function Wd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var i=null,a=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Hd(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:a=m;break;case`name`:i=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(o(137,t));break;default:m!==f&&Hd(e,t,p,m,r,f)}}Xt(e,s,c,l,u,d,a,i);return;case`select`:for(a in m=s=c=p=null,n)if(l=n[a],n.hasOwnProperty(a)&&l!=null)switch(a){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(a)||Hd(e,t,a,null,r,l)}for(i in r)if(a=r[i],l=n[i],r.hasOwnProperty(i)&&(a!=null||l!=null))switch(i){case`value`:p=a;break;case`defaultValue`:c=a;break;case`multiple`:s=a;default:a!==l&&Hd(e,t,i,a,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?$t(e,!!n,n?[]:``,!1):$t(e,!!n,t,!0)):$t(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(i=n[c],n.hasOwnProperty(c)&&i!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Hd(e,t,c,null,r,i)}for(s in r)if(i=r[s],a=n[s],r.hasOwnProperty(s)&&(i!=null||a!=null))switch(s){case`value`:p=i;break;case`defaultValue`:m=i;break;case`children`:break;case`dangerouslySetInnerHTML`:if(i!=null)throw Error(o(91));break;default:i!==a&&Hd(e,t,s,i,r,a)}en(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Hd(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Hd(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Hd(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(o(137,t));break;default:Hd(e,t,u,p,r,m)}return;default:if(sn(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&W(e,t,_,void 0,r,p);
vendor: 4,462 bytes, line 10
10for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||W(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Hd(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Hd(e,t,f,p,r,m)}function Gd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Kd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Gd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Gd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var qd=null,Jd=null;function Yd(e){return e.nodeType===9?e:e.ownerDocument}function Xd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Zd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Qd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var $d=null;function ef(){var e=window.event;return e&&e.type===`popstate`?e===$d?!1:($d=e,!0):($d=null,!1)}var tf=typeof setTimeout==`function`?setTimeout:void 0,nf=typeof clearTimeout==`function`?clearTimeout:void 0,rf=typeof Promise==`function`?Promise:void 0,af=typeof queueMicrotask==`function`?queueMicrotask:rf===void 0?tf:function(e){return rf.resolve(null).then(e).catch(of)};function of(e){setTimeout(function(){throw e})}function sf(e){return e===`head`}function cf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Hp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)Sf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,Sf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[wt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&Sf(e.ownerDocument.body);n=i}while(n);Hp(t)}function lf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function uf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:uf(n),Tt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function df(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[wt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=_f(e.nextSibling),e===null)break}return null}function ff(e,t,n){if(t===``)return null;for(;
vendor: 17,789 bytes, line 10
10e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=_f(e.nextSibling),e===null))return null;return e}function pf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=_f(e.nextSibling),e===null))return null;return e}function mf(e){return e.data===`$?`||e.data===`$~`}function hf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function gf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function _f(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var vf=null;function yf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return _f(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function bf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function xf(e,t,n){switch(t=Yd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(o(452));return e;case`head`:if(e=t.head,!e)throw Error(o(453));return e;case`body`:if(e=t.body,!e)throw Error(o(454));return e;default:throw Error(o(451))}}function Sf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Tt(e)}var Cf=new Map,wf=new Set;function Tf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Ef=T.d;T.d={f:Df,r:Of,D:jf,C:Mf,L:Nf,m:Pf,X:If,S:Ff,M:Lf};function Df(){var e=Ef.f(),t=ku();return e||t}function Of(e){var t=Dt(e);t!==null&&t.tag===5&&t.type===`form`?Ps(t):Ef.r(e)}var kf=typeof document>`u`?null:document;function Af(e,t,n){var r=kf;if(r&&typeof t==`string`&&t){var i=Yt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),wf.has(i)||(wf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Ud(t,`link`,e),At(t),r.head.appendChild(t)))}}function jf(e){Ef.D(e),Af(`dns-prefetch`,e,null)}function Mf(e,t){Ef.C(e,t),Af(`preconnect`,e,t)}function Nf(e,t,n){Ef.L(e,t,n);var r=kf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Yt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Yt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Yt(n.imageSizes)+`"]`)):i+=`[href="`+Yt(e)+`"]`;var a=i;switch(t){case`style`:a=zf(e);break;case`script`:a=Uf(e)}Cf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),Cf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Bf(a))||t===`script`&&r.querySelector(Wf(a))||(t=r.createElement(`link`),Ud(t,`link`,e),At(t),r.head.appendChild(t)))}}function Pf(e,t){Ef.m(e,t);var n=kf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Yt(r)+`"][href="`+Yt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Uf(e)}if(!Cf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),Cf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Wf(a)))return}r=n.createElement(`link`),Ud(r,`link`,e),At(r),n.head.appendChild(r)}}}function Ff(e,t,n){Ef.S(e,t,n);var r=kf;if(r&&e){var i=kt(r).hoistableStyles,a=zf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Bf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=Cf.get(a))&&qf(e,n);var c=o=r.createElement(`link`);At(c),Ud(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Kf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function If(e,t){Ef.X(e,t);var n=kf;if(n&&e){var r=kt(n).hoistableScripts,i=Uf(e),a=r.get(i);a||(a=n.querySelector(Wf(i)),a||(e=m({src:e,async:!0},t),(t=Cf.get(i))&&Jf(e,t),a=n.createElement(`script`),At(a),Ud(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Lf(e,t){Ef.M(e,t);var n=kf;if(n&&e){var r=kt(n).hoistableScripts,i=Uf(e),a=r.get(i);a||(a=n.querySelector(Wf(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=Cf.get(i))&&Jf(e,t),a=n.createElement(`script`),At(a),Ud(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Rf(e,t,n,r){var i=(i=ye.current)?Tf(i):null;if(!i)throw Error(o(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=zf(n.href),n=kt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=zf(n.href);var a=kt(i).hoistableStyles,s=a.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,s),(a=i.querySelector(Bf(e)))&&!a._p&&(s.instance=a,s.state.loading=5),Cf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Cf.set(e,n),a||Hf(i,e,n,s.state))),t&&r===null)throw Error(o(528,``));return s}if(t&&r!==null)throw Error(o(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Uf(n),n=kt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(o(444,e))}}function zf(e){return`href="`+Yt(e)+`"`}function Bf(e){return`link[rel="stylesheet"][`+e+`]`}function Vf(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Hf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Ud(t,`link`,n),At(t),e.head.appendChild(t))}function Uf(e){return`[src="`+Yt(e)+`"]`}function Wf(e){return`script[async]`+e}function Gf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Yt(n.href)+`"]`);if(r)return t.instance=r,At(r),r;var i=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),At(r),Ud(r,`style`,i),Kf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=zf(n.href);var a=e.querySelector(Bf(i));if(a)return t.state.loading|=4,t.instance=a,At(a),a;r=Vf(n),(i=Cf.get(i))&&qf(r,i),a=(e.ownerDocument||e).createElement(`link`),At(a);var s=a;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Ud(a,`link`,r),t.state.loading|=4,Kf(a,n.precedence,e),t.instance=a;case`script`:return a=Uf(n.src),(i=e.querySelector(Wf(a)))?(t.instance=i,At(i),i):(r=n,(i=Cf.get(a))&&(r=m({},n),Jf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),At(i),Ud(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(o(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Kf(r,n.precedence,e));return t.instance}function Kf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function qf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Jf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Yf=null;function Xf(e,t,n){if(Yf===null){var r=new Map,i=Yf=new Map;i.set(n,r)}else i=Yf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[wt]||a[_t]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Zf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Qf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function $f(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function ep(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=zf(r.href),a=t.querySelector(Bf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=rp.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,At(a);return}a=t.ownerDocument||t,r=Vf(r),(i=Cf.get(i))&&qf(r,i),a=a.createElement(`link`),At(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Ud(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=rp.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var tp=0;function np(e,t){return e.stylesheets&&e.count===0&&ap(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&ap(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&tp===0&&(tp=62500*Kd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&ap(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>tp?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function rp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ap(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ip=null;function ap(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ip=new Map,t.forEach(op,e),ip=null,rp.call(e))}function op(e,t){if(!(t.state.loading&4)){var n=ip.get(e);if(n)var r=n.get(null);else{n=new Map,ip.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=rp.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var sp={$$typeof:ee,Provider:null,Consumer:null,_currentValue:de,_currentValue2:de,_threadCount:0};function cp(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ot(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ot(0),this.hiddenUpdates=ot(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function lp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new cp(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=hi(3,null,null,t),e.current=a,a.stateNode=e,t=ha(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},qa(a),e}function up(e){return e?(e=pi,e):pi}function dp(e,t,n,r,i,a){i=up(i),r.context===null?r.context=i:r.pendingContext=i,r=Ya(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Xa(e,r,t),n!==null&&(wu(n,e,t),Za(n,e,t))}function fp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function pp(e,t){fp(e,t),(e=e.alternate)&&fp(e,t)}function mp(e){if(e.tag===13||e.tag===31){var t=ui(e,67108864);t!==null&&wu(t,e,67108864),pp(e,67108864)}}function hp(e){if(e.tag===13||e.tag===31){var t=Su();t=ft(t);var n=ui(e,t);n!==null&&wu(n,e,t),pp(e,t)}}var gp=!0;function _p(e,t,n,r){var i=w.T;w.T=null;var a=T.p;try{T.p=2,yp(e,t,n,r)}finally{T.p=a,w.T=i}}function vp(e,t,n,r){var i=w.T;w.T=null;var a=T.p;try{T.p=8,yp(e,t,n,r)}finally{T.p=a,w.T=i}}function yp(e,t,n,r){if(gp){var i=bp(r);if(i===null)Nd(e,t,r,xp,n),Mp(e,r);else if(Pp(i,e,t,n,r))r.stopPropagation();else if(Mp(e,r),t&4&&-1<jp.indexOf(e)){for(;i!==null;){var a=Dt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=tt(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Je(o);s.entanglements[1]|=c,o&=~c}fd(a),!(R&6)&&(uu=Fe()+500,pd(0,!1))}}break;case 31:case 13:s=ui(a,2),s!==null&&wu(s,a,2),ku(),pp(a,2)}if(a=bp(r),a===null&&Nd(e,t,r,xp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Nd(e,t,r,null,n)}}function bp(e){return e=pn(e),Sp(e)}var xp=null;function Sp(e){if(xp=null,e=Et(e),e!==null){var t=c(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=l(t),e!==null)return e;e=null}else if(n===31){if(e=u(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return xp=e,null}function Cp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Ie()){case Le:return 2;case ze:return 8;case Be:case Ve:return 32;case He:return 268435456;default:return 32}default:return 32}}var wp=!1,Tp=null,Ep=null,Dp=null,Op=new Map,kp=new Map,Ap=[],jp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Mp(e,t){switch(e){case`focusin`:case`focusout`:Tp=null;break;case`dragenter`:case`dragleave`:Ep=null;break;case`mouseover`:case`mouseout`:Dp=null;break;case`pointerover`:case`pointerout`:Op.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:kp.delete(t.pointerId)}}function Np(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Dt(t),t!==null&&mp(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Pp(e,t,n,r,i){switch(t){case`focusin`:return Tp=Np(Tp,e,t,n,r,i),!0;case`dragenter`:return Ep=Np(Ep,e,t,n,r,i),!0;case`mouseover`:return Dp=Np(Dp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Op.set(a,Np(Op.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,kp.set(a,Np(kp.get(a)||null,e,t,n,r,i)),!0}return!1}function Fp(e){var t=Et(e.target);if(t!==null){var n=c(t);if(n!==null){if(t=n.tag,t===13){if(t=l(n),t!==null){e.blockedOn=t,ht(e.priority,function(){hp(n)});return}}else if(t===31){if(t=u(n),t!==null){e.blockedOn=t,ht(e.priority,function(){hp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ip(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=bp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);fn=r,n.target.dispatchEvent(r),fn=null}else return t=Dt(n),t!==null&&mp(t),e.blockedOn=n,!1;t.shift()}return!0}
10function Lp(e,t,n){Ip(e)&&n.delete(t)}function Rp(){wp=!1,Tp!==null&&Ip(Tp)&&(Tp=null),Ep!==null&&Ip(Ep)&&(Ep=null),Dp!==null&&Ip(Dp)&&(Dp=null),Op.forEach(Lp),kp.forEach(Lp)}function zp(e,n){e.blockedOn===n&&(e.blockedOn=null,wp||(wp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Rp)))}var Bp=null;function Vp(e){Bp!==e&&(Bp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Bp===e&&(Bp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(Sp(r||n)===null)continue;break}var a=Dt(n);a!==null&&(e.splice(t,3),t-=3,Ms(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Hp(e){function t(t){return zp(t,e)}Tp!==null&&zp(Tp,e),Ep!==null&&zp(Ep,e),Dp!==null&&zp(Dp,e),Op.forEach(t),kp.forEach(t);for(var n=0;n<Ap.length;n++){var r=Ap[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Ap.length&&(n=Ap[0],n.blockedOn===null);)Fp(n),n.blockedOn===null&&Ap.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[vt]||null;if(typeof a==`function`)o||Vp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[vt]||null)s=o.formAction;else if(Sp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Vp(n)}}}function Up(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Wp(e){this._internalRoot=e}Gp.prototype.render=Wp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(o(409));var n=t.current;dp(n,Su(),e,t,null,null)},Gp.prototype.unmount=Wp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;dp(e.current,2,null,e,null,null),ku(),t[yt]=null}};function Gp(e){this._internalRoot=e}Gp.prototype.unstable_scheduleHydration=function(e){if(e){var t=mt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ap.length&&t!==0&&t<Ap[n].priority;n++);Ap.splice(n,0,e),n===0&&Fp(e)}};var Kp=n.version;if(Kp!==`19.2.5`)throw Error(o(527,Kp,`19.2.5`));T.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(o(188)):(e=Object.keys(e).join(`,`),Error(o(268,e)));return e=f(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var qp={bundleType:0,version:`19.2.5`,rendererPackageName:`react-dom`,currentDispatcherRef:w,reconcilerVersion:`19.2.5`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Jp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jp.isDisabled&&Jp.supportsFiber)try{Ge=Jp.inject(qp),Ke=Jp}catch{}}e.hydrateRoot=function(e,t,n){if(!s(e))throw Error(o(299));var r=!1,i=``,a=ec,c=tc,l=nc,u=null;return n!=null&&(!0===n.unstable_strictMode&&(r=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onUncaughtError!==void 0&&(a=n.onUncaughtError),n.onCaughtError!==void 0&&(c=n.onCaughtError),n.onRecoverableError!==void 0&&(l=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=lp(e,1,!0,t,n??null,r,i,u,a,c,l,Up),t.context=up(null),n=t.current,r=Su(),r=ft(r),i=Ya(r),i.callback=null,Xa(n,i,r),n=r,t.current.lanes=n,st(t,n),fd(t),e[yt]=t.current,jd(e),new Gp(t)}})),Be=e(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=ze()})),Ve=Ue(JSON.parse),He=We(JSON.stringify,JSON.parse);function Ue(e){return t=>{t[0]===`?`&&(t=t.substring(1));let n=Ee(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function We(e,t){let n=typeof t==`function`;function r(r){if(typeof r==`object`&&r)try{return e(r)}catch{}else if(n&&typeof r==`string`)try{return t(r),e(r)}catch{}return r}return e=>{let t=Te(e,r);return t?`?${t}`:``}}var Ge=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},Ke=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),qe=(e,t)=>
10!!(e.preload&&!e.router.stores.matchStores.has(t)),Je=(e,t,n=!0)=>{let r={...e.router.options.context??{}},i=n?t:t-1;for(let t=0;t<=i;t++){let n=e.matches[t];if(!n)continue;let i=e.router.getMatch(n.id);i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},Ye=(e,t)=>{if(!e.matches.length)return;let n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),i=r>=0?r:0,a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=i);for(let t=a;t>=0;t--){let n=e.matches[t];if(e.router.looseRoutesById[n.routeId].options.notFoundComponent)return t}return n?a:i},Xe=(e,t,n)=>{if(!(!we(n)&&!E(n)))throw we(n)&&n.redirectHandled&&!n.options.reloadDocument?n:(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:we(n)?`redirected`:E(n)?`notFound`:r.status===`pending`?`success`:r.status,context:Je(e,t.index),isFetching:!1,error:n})),E(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),we(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},Ze=(e,t)=>{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},Qe=(e,t,n)=>{let r=Je(e,n);e.updateMatch(t,e=>({...e,context:r}))},$e=(e,t,n)=>{let{id:r,routeId:i}=e.matches[t],a=e.router.looseRoutesById[i];if(n instanceof Promise)throw n;e.firstBadMatchIndex??=t,Xe(e,e.router.getMatch(r),n);try{a.options.onError?.(n)}catch(t){n=t,Xe(e,e.router.getMatch(r),n)}e.updateMatch(r,e=>(e._nonReactive.beforeLoadPromise?.resolve(),e._nonReactive.beforeLoadPromise=void 0,e._nonReactive.loadPromise?.resolve(),{...e,error:n,status:`error`,isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!we(n)&&!E(n)&&(e.serialError??=n)},et=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!qe(e,t)&&(n.options.loader||n.options.beforeLoad||dt(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{Ge(e)},i);r._nonReactive.pendingTimeout=t}},tt=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;et(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&Xe(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},nt=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=S(()=>{a?.resolve(),a=void 0});let{paramsError:o,searchError:s}=i;o&&$e(e,n,o),s&&$e(e,n,s),et(e,t,r,i);let c=new AbortController,l=!1,u=()=>{l||(l=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:c})))},d=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{u(),d()});return}i._nonReactive.beforeLoadPromise=S();let f={...Je(e,n,!1),...i.__routeContext},{search:p,params:h,cause:g}=i,_=qe(e,t),v={search:p,abortController:c,params:h,preload:_,context:f,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:_?`preload`:g,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},y=r=>{if(r===void 0){e.router.batch(()=>{u(),d()});return}(we(r)||E(r))&&(u(),$e(e,n,r)),e.router.batch(()=>{u(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),d()})},b;try{if(b=r.options.beforeLoad(v),m(b))return u(),b.catch(t=>{$e(e,n,t)}).then(y)}catch(t){u(),$e(e,n,t)}y(b)},rt=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>s(),o=()=>nt(e,n,t,i),s=()=>{if(Ze(e,n))return;let t=tt(e,n,i);return m(t)?t.then(o):o()};return a()},it=(e,t,n)=>{let r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;let i={ssr:e.router.options.ssr,matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(i),n.options.scripts?.(i),n.options.headers?.(i)]).then(([e,t,n])=>({meta:e?.meta,links:e?.links,headScripts:e?.scripts,headers:n,scripts:t,styles:e?.styles}))},at=(e,t,n,r,i)=>{let a=t[r-1],{params:o,loaderDeps:s,abortController:c,cause:l}=e.router.getMatch(n),u=Je(e,r),d=qe(e,n);return{params:o,deps:s,preload:!!d,parentMatchPromise:a,abortController:c,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?`preload`:l,route:i,...e.router.options.additionalContext}},ot=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{ut(i);let o=i.options.loader,s=typeof o==`function`?o:o?.handler,c=s?.(at(e,t,n,r,i)),l=!!s&&m(c);if((l||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),s){let t=l?await c:c;Xe(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let u=a._nonReactive.minPendingPromise;u&&await u,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:Je(e,r),status:`success`,isFetching:!1,updatedAt:Date.now()}))}catch(t){let o=t;if(o?.name===`AbortError`){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,t=>
10({...t,status:t.status===`pending`?`success`:t.status,isFetching:!1,context:Je(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,E(t)&&await i.options.notFoundComponent?.preload?.(),Xe(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,Xe(e,e.router.getMatch(n),t)}!we(o)&&!E(o)&&await ut(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:Je(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),Xe(e,r,t)}},st=async(e,t,n)=>{async function r(r,a,c,l,d){let f=Date.now()-a.updatedAt,p=r?d.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:d.options.staleTime??e.router.options.defaultStaleTime??0,m=d.options.shouldReload,h=typeof m==`function`?m(at(e,t,i,n,d)):m,{status:g,invalid:_}=l,v=f>=p&&(!!e.forceStaleReload||l.cause===`enter`||c!==void 0&&c!==l.id);o=g===`success`&&(_||(h??v)),r&&d.options.preload===!1||(o&&!e.sync&&u?(s=!0,(async()=>{try{await ot(e,t,i,n,d);let r=e.router.getMatch(i);r._nonReactive.loaderPromise?.resolve(),r._nonReactive.loadPromise?.resolve(),r._nonReactive.loaderPromise=void 0,r._nonReactive.loadPromise=void 0}catch(t){we(t)&&await e.router.navigate(t.options)}})()):g!==`success`||o?await ot(e,t,i,n,d):Qe(e,i,n))}let{id:i,routeId:a}=e.matches[n],o=!1,s=!1,c=e.router.looseRoutesById[a],l=c.options.loader,u=((typeof l==`function`?void 0:l?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(Ze(e,i)){if(!e.router.getMatch(i))return e.matches[n];Qe(e,i,n)}else{let t=e.router.getMatch(i),o=e.router.stores.matchesId.get()[n],s=(o&&e.router.stores.matchStores.get(o)||null)?.routeId===a?o:e.router.stores.matches.get().find(e=>e.routeId===a)?.id,l=qe(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&u)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&Xe(e,n,a),n.status===`pending`&&await r(l,t,s,n,c)}else{let n=l&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=S(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(l,t,s,a,c)}}let d=e.router.getMatch(i);s||(d._nonReactive.loaderPromise?.resolve(),d._nonReactive.loadPromise?.resolve(),d._nonReactive.loadPromise=void 0),clearTimeout(d._nonReactive.pendingTimeout),d._nonReactive.pendingTimeout=void 0,s||(d._nonReactive.loaderPromise=void 0),d._nonReactive.dehydrated=void 0;let f=s?d.isFetching:!1;return f!==d.isFetching||d.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:f,invalid:!1})),e.router.getMatch(i)):d};async function ct(e){let t=e,n=[];Ke(t.router)&&Ge(t);let r;for(let e=0;e<t.matches.length;e++){try{let n=rt(t,e);m(n)&&await n}catch(e){if(we(e))throw e;if(E(e))r=e;else if(!t.preload)throw e;break}if(t.serialError||t.firstBadMatchIndex!=null)break}let i=t.firstBadMatchIndex??t.matches.length,a=r&&!t.preload?Ye(t,r):void 0,o=r&&t.preload?0:a===void 0?i:Math.min(a+1,i),s,c;for(let e=0;e<o;e++)n.push(st(t,n,e));try{await Promise.all(n)}catch{let e=await Promise.allSettled(n);for(let t of e){if(t.status!==`rejected`)continue;let e=t.reason;if(we(e))throw e;E(e)?s??=e:c??=e}if(c!==void 0)throw c}let l=s??(r&&!t.preload?r:void 0),u=t.firstBadMatchIndex===void 0?t.matches.length-1:t.firstBadMatchIndex;if(!l&&r&&t.preload)return t.matches;if(l){let e=Ye(t,l);e===void 0&&g();let n=t.matches[e],r=t.router.looseRoutesById[n.routeId],i=t.router.options?.defaultNotFoundComponent;!r.options.notFoundComponent&&i&&(r.options.notFoundComponent=i),l.routeId=n.routeId;let a=n.routeId===t.router.routeTree.id;t.updateMatch(n.id,e=>({...e,...a?{status:`success`,globalNotFound:!0,error:void 0}:{status:`notFound`,error:l},isFetching:!1})),u=e,await ut(r,[`notFoundComponent`])}else if(!t.preload){let e=t.matches[0];e.globalNotFound||t.router.getMatch(e.id)?.globalNotFound&&t.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){let e=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await ut(e,[`errorComponent`])}for(let e=0;e<=u;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=it(t,n,i);if(e){let r=await e;t.updateMatch(n,e=>({...e,...r}))}}catch(e){console.error(`Error executing head for route ${r}:`,e)}}let d=Ge(t);if(m(d)&&await d,l)throw l;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function lt(e,t){let n=t.map(t=>
10e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function ut(e,t=ft){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);let n=()=>e._componentsLoaded?void 0:t===ft?(()=>{if(e._componentsPromise===void 0){let t=lt(e,ft);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():lt(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function dt(e){for(let t of ft)if(e.options[t]?.preload)return!0;return!1}var ft=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`];function pt(e){return{input:({url:t})=>{for(let n of e)t=ht(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=gt(e[n],t);return t}}}function mt(e){let t=T(e.basepath),n=`/${t}`,r=e.caseSensitive?n:n.toLowerCase(),i=`${r}/`;return{input:({url:t})=>{let a=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return a===r?t.pathname=`/`:a.startsWith(i)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=ue([`/`,t,e.pathname]),e)}}function ht(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function gt(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function _t(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i,init:a}=t,o=new Map,s=new Map,c=new Map,l=n(e.status),u=n(e.loadedAt),d=n(e.isLoading),f=n(e.isTransitioning),p=n(e.location),m=n(e.resolvedLocation),h=n(e.statusCode),g=n(e.redirect),_=n([]),v=n([]),y=n([]),b=r(()=>vt(o,_.get())),x=r(()=>vt(s,v.get())),ee=r(()=>vt(c,y.get())),S=r(()=>_.get()[0]),C=r(()=>_.get().some(e=>o.get(e)?.get().status===`pending`)),te=r(()=>({locationHref:p.get().href,resolvedLocationHref:m.get()?.href,status:l.get()})),ne=r(()=>({status:l.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:f.get(),matches:b.get(),location:p.get(),resolvedLocation:m.get(),statusCode:h.get(),redirect:g.get()})),re=ye(64);function ie(e){let t=re.get(e);return t||(t=r(()=>{let t=_.get();for(let n of t){let t=o.get(n);if(t&&t.routeId===e)return t.get()}}),re.set(e,t)),t}let ae={status:l,loadedAt:u,isLoading:d,isTransitioning:f,location:p,resolvedLocation:m,statusCode:h,redirect:g,matchesId:_,pendingIds:v,cachedIds:y,matches:b,pendingMatches:x,cachedMatches:ee,firstId:S,hasPending:C,matchRouteDeps:te,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:ne,getRouteMatchStore:ie,setMatches:oe,setPending:se,setCached:ce};oe(e.matches),a?.(ae);function oe(e){yt(e,o,_,n,i)}function se(e){yt(e,s,v,n,i)}function ce(e){yt(e,c,y,n,i)}return ae}function vt(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function yt(e,t,n,r,i){let a=e.map(e=>e.id),o=new Set(a);i(()=>{for(let e of t.keys())o.has(e)||t.delete(e);for(let n of e){let e=t.get(n.id);if(!e){let e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}b(n.get(),a)||n.set(a)})}var bt=`__TSR_index`,xt=`popstate`,St=`beforeunload`;function Ct(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=Dt(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[bt];i=wt(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[bt];i=wt(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[bt]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function wt(e,t){t||={};let n=Ot();return{...t,key:n,__TSR_key:n,[bt]:e}}function Tt(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=e?.createHref??(e=>e),c=e?.parseLocation??(()=>Dt(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Ot();t.history.replaceState({[bt]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(S._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),S._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=Dt(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),S.notify({type:e})},x=async()=>
10{if(f){f=!1;return}let e=c(),n=e.state[bt]-l.state[bt],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let n=a();if(typeof document<`u`&&n.length){for(let r of n)if(await r.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(1),S.notify(u);return}}}l=c(),S.notify(u)},ee=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},S=Ct({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>y(`push`,e,t),replaceState:(e,t)=>y(`replace`,e,t),back:e=>(e&&(p=!0),m=!0,t.history.back()),forward:e=>{e&&(p=!0),m=!0,t.history.forward()},go:e=>{d=!0,t.history.go(e)},createHref:e=>s(e),flush:v,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(St,ee,{capture:!0}),t.removeEventListener(xt,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(St,ee,{capture:!0}),t.addEventListener(xt,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return S._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return S._ignoreSubscribers||b(`REPLACE`),n},S}function Et(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function Dt(e,t){let n=Et(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=Ot();return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t||{[bt]:0,key:a,__TSR_key:a}}}function Ot(){return(Math.random()+1).toString(36).substring(7)}function kt(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function At(e,t){let n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:n?.pathname!==r.pathname,hrefChanged:n?.href!==r.href,hashChanged:n?.hash!==r.hash}}var jt=new WeakMap,Mt=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={next:!0},this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.routeBranchCache=new WeakMap,this.startTransition=e=>e(),this.update=e=>{let t=this.options,n=this.basepath??t?.basepath??`/`,r=this.basepath===void 0,i=t?.rewrite;if(this.options={...t,...e},this.isServer=this.options.isServer??typeof document>`u`,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=de(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=Tt()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!==`null`?this.origin=window.origin:this.origin=`http://localhost`),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=ye(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=_t(Ft(this.latestLocation),e),tn(this)}let a=!1,o=this.options.basepath??`/`,s=this.options.rewrite;if(r||n!==o||i!==s){this.basepath=o;let e=[],t=T(o);t&&t!==`/`&&e.push(mt({basepath:o})),s&&e.push(s),this.rewrite=e.length===0?void 0:e.length===1?e[0]:pt(e),this.history&&this.updateLatestLocation(),a=!0}a&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<`u`&&`CSS`in window&&typeof window.CSS?.supports==`function`&&(this.isViewTransitionTypesSupported=window.CSS.supports(`selector(:active-view-transition-type(a))`))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=ie(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&ae(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>
10{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:d(e).path,external:!1,searchStr:o,search:ne(t?.search,i),hash:d(r.slice(1)).path,state:re(t?.state,a)}}let o=new URL(i,this.origin),s=ht(this.rewrite,o),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:d(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:l,search:ne(t?.search,c),hash:d(s.hash.slice(1)).path,state:re(t?.state,a)}},r=n(e),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>fe({base:e,to:t.includes(`//`)?ce(t):t,trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>Lt({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{let t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{if(this.stores.pendingMatchStores.has(e))return;let t=this.stores.matchStores.get(e)?.get();t&&(t.status===`pending`||t.isFetching===`loader`)&&this.cancelMatch(e)})},this.buildLocation=e=>{let t=(t={})=>{let n=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,r=this.matchRoutesLightweight(n);t.from;let i=t.unsafeRelative===`path`?n.pathname:t.from??r.fullPath,a=t.to?`${t.to}`:void 0,o=r.search,s=Object.assign(Object.create(null),r.params),c=a?.charCodeAt(0)===47?`/`:this.resolvePathWithBase(i,`.`),l=a?this.resolvePathWithBase(c,a):c,u=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?s:Object.assign(s,p(t.params,s)),f=this.routesByPath[oe(l)],m;if(f)m=this.getRouteBranch(f);else if(l.includes(`$`))m=[];else{let e=this.getMatchedRoutes(l);m=e.matchedRoutes,this.options.notFoundRoute&&(!e.foundRoute||e.foundRoute.path!==`/`&&e.routeParams[`**`])&&(m=[...m,this.options.notFoundRoute])}if(m.length&&x(u))for(let e of m){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(u,t(u))}catch{}}let h=e.leaveParams?l:d(le({path:l,params:u,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,g=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};m.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,It(t.options.validateSearch,{...e,...g}))}catch{}}),g=e}g=Rt({search:g,dest:t,destRoutes:m,_includeValidateSearch:e._includeValidateSearch}),g=ne(o,g);let _=this.options.stringifySearch(g),v=t.hash===!0?n.hash:t.hash?p(t.hash,n.hash):void 0,y=v?`#${v}`:``,b=t.state===!0?n.state:t.state?p(t.state,n.state):{};b=re(n.state,b);let ee=`${h}${_}${y}`,S,C,ie=!1;if(this.rewrite){let e=new URL(ee,this.origin),t=gt(this.rewrite,e);S=e.href.replace(e.origin,``),t.origin===this.origin?C=t.pathname+t.search+t.hash:(C=t.href,ie=!0)}else S=te(ee),C=S;return{publicHref:C,href:S,pathname:h,search:g,searchStr:_,state:b,hash:v??``,external:ie,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{let i=t(n),a=r?t(r):void 0;if(!a){let n=Object.create(null);if(this.options.routeMasks){let o=xe(i.pathname,this.processedTree);if(o){Object.assign(n,o.rawParams);let{from:i,params:s,...c}=o.route,l=s===!1||s===null?Object.create(null):(s??!0)===!0?n:Object.assign(n,p(s,n));r={from:e.from,...c,params:l},a=t(r)}}}return a&&(i.maskedLocation=a),i};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r,i=()=>{let e=[`key`,`__TSR_key`,`__TSR_index`,`__hashScrollIntoViewOptions`];
10e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});let t=_(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t},a=oe(this.latestLocation.href)===oe(n.href),o=this.commitLocationPromise;if(this.commitLocationPromise=S(()=>{o?.resolve(),o=void 0}),a&&i())this.load();else{let{maskedLocation:i,hashScrollIntoView:a,...o}=n;i&&(o={...i,state:{...i.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state.__hashScrollIntoViewOptions=a??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,r=n.replace?`REPLACE`:`PUSH`,this.history[r===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t})}return this._scroll.next=n.resetScroll??!0,this.history.subscribers.size||this.load(r?{action:{type:r}}:void 0),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:a,...o}={})=>{if(a){let t=this.history.location.state.__TSR_index,n=Dt(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=ht(this.rewrite,r).pathname,o.search=this.options.parseSearch(n.search),o.hash=n.hash.slice(1)}let s=this.buildLocation({...o,_includeValidateSearch:!0});this.pendingBuiltLocation=s;let c=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return Promise.resolve().then(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),c},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=!1;if(n)try{new URL(`${n}`),a=!0}catch{}if(a&&!t&&(t=!0),t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i});n??=t.publicHref,r??=t.publicHref}let t=!a&&r?r:n;if(v(t,this.protocolAllowlist))return Promise.resolve();if(!i.ignoreBlocker){let e=this.history.getBlockers?.()??[];for(let t of e)if(t?.blockerFn&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:`PUSH`}))return Promise.resolve()}return i.replace?window.location.replace(t):window.location.href=t,Promise.resolve()}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();let e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set(`pending`),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t=e?.action?.type,n,r,i,a=this.stores.resolvedLocation.get()??this.stores.location.get();for(i=new Promise(o=>{this.startTransition(async()=>{try{this.beforeLoad(),t?jt.set(this.latestLocation,t):jt.delete(this.latestLocation);let n=this.latestLocation,r=At(n,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...r}),this.emit({type:`onBeforeLoad`,...r}),await ct({router:this,sync:e?.sync,forceStaleReload:a.href===n.href,matches:this.stores.pendingMatches.get(),location:n,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let e=null,t=null,n=null,r=null;this.batch(()=>{let i=this.stores.pendingMatches.get(),a=i.length,o=this.stores.matches.get();e=a?o.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;let s=new Set;for(let e of this.stores.pendingMatchStores.values())e.routeId&&s.add(e.routeId);let c=new Set;for(let e of this.stores.matchStores.values())e.routeId&&c.add(e.routeId);t=a?o.filter(e=>!s.has(e.routeId)):null,n=a?i.filter(e=>!c.has(e.routeId)):null,r=a?i.filter(e=>c.has(e.routeId)):o,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),a&&(this.stores.setMatches(i),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...e.filter(e=>e.status!==`error`&&e.status!==`notFound`&&e.status!==`redirected`)]),this.clearExpiredCache())});for(let[e,i]of[[t,`onLeave`],[n,`onEnter`],[r,`onStay`]])if(e)for(let t of e)this.looseRoutesById[t.routeId].options[i]?.(t)})})}})}catch(e){we(e)?(n=e,this.navigate({...n.options,replace:!0,ignoreBlocker:!0})):E(e)&&(r=e);let t=n?n.status:r?404:this.stores.matches.get().some(e=>e.status===`error`)?500:200;this.batch(()=>{this.stores.statusCode.set(t),this.stores.redirect.set(n)})}this.latestLoadPromise===i&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),o()})}),this.latestLoadPromise=i,await i;this.latestLoadPromise&&i!==this.latestLoadPromise;)await this.latestLoadPromise;let o;this.hasNotFoundMatch()?o=404:this.stores.matches.get().some(e=>e.status===`error`)&&(o=500),o!==void 0&&this.stores.statusCode.set(o)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document<`u`&&`startViewTransition`in document&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&this.isViewTransitionTypesSupported){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(At(r,i)):t.types;if(a===!1){e();return}n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>
10{let n=this.stores.pendingMatchStores.get(e);if(n){n.set(t);return}let r=this.stores.matchStores.get(e);if(r){r.set(t);return}let i=this.stores.cachedMatchStores.get(e);if(i){let n=t(i.get());n.status===`redirected`?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):i.set(n)}})},this.getMatch=e=>this.stores.cachedMatchStores.get(e)?.get()??this.stores.pendingMatchStores.get(e)?.get()??this.stores.matchStores.get(e)?.get(),this.invalidate=e=>{let t=t=>e?.filter?.(t)??!0?{...t,invalid:!0,...e?.forcePending||t.status===`error`||t.status===`notFound`?{status:`pending`,error:void 0}:void 0}:t;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.getParsedLocationHref=e=>e.publicHref||`/`,this.resolveRedirect=e=>{let t=e.headers.get(`Location`);if(!e.options.href||e.options._builtLocation){let t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set(`Location`,n)}else if(t)try{let n=new URL(t);if(this.origin&&n.origin===this.origin){let t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set(`Location`,t)}}catch{}if(e.options.href&&!e.options._builtLocation&&v(e.options.href,this.protocolAllowlist))throw Error(`Redirect blocked: unsafe protocol`);return e.headers.get(`Location`)||e.headers.set(`Location`,e.options.href),e},this.clearCache=e=>{let t=e?.filter;t===void 0?this.stores.setCached([]):this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e)))},this.clearExpiredCache=()=>{let e=Date.now();this.clearCache({filter:t=>{let n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;let r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??300*1e3;return t.status===`error`?!0:e-t.updatedAt>=r}})},this.loadRouteChunk=ut,this.preloadRoute=async e=>{let t=e._builtLocation??this.buildLocation(e),n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e}),r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),i=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!i.has(e.id));if(a.length){let e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await ct({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(e){if(we(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});E(e)||console.error(e);return}},this.matchRoute=(e,t)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||``,e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(t?.pending&&this.stores.status.get()!==`pending`)return!1;let i=(t?.pending===void 0?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=be(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,i.pathname,this.processedTree);return!a||e.params&&!_(a.rawParams,e.params,{partial:!0})?!1:t?.includeSearch??!0?_(i.search,r.search,{partial:!0})?a.rawParams:!1:a.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>e.status===`notFound`||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??He,parseSearch:e.parseSearch??Ve,protocolAllowlist:e.protocolAllowlist??u}),typeof document<`u`&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;let r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}getRouteBranch(e){let t=this.routeBranchCache.get(e);return t||(t=ve(e),this.routeBranchCache.set(e,t)),t}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){let n=this.getMatchedRoutes(e.pathname),{foundRoute:r,routeParam
10s:i}=n,{matchedRoutes:a}=n,o=!1;(r?r.path!==`/`&&i[`**`]:oe(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?Bt(this.options.notFoundMode,a):void 0,c=Array(a.length),l=new Map;for(let e of this.stores.matchStores.values())e.routeId&&l.set(e.routeId,e.get());for(let n=0;n<a.length;n++){let r=a[n],o=c[n-1],u,d,f;{let n=o?.search??e.search,i=o?._strictSearch??void 0;try{let e=It(r.options.validateSearch,{...n})??void 0;u={...n,...e},d={...i,...e},f=void 0}catch(e){let r=e;if(e instanceof Nt||(r=new Nt(e.message,{cause:e})),t?.throwOnError)throw r;u=n,d={},f=r}}let p=r.options.loaderDeps?.({search:u})??``,m=p?JSON.stringify(p):``,{interpolatedPath:h,usedParams:g}=le({path:r.fullPath,params:i,decoder:this.pathParamsDecoder,server:this.isServer}),_=r.id+h+m,v=this.getMatch(_),y=l.get(r.id),b=v?._strictParams??g,x;if(!v)try{Vt(r,b)}catch(e){if(x=E(e)||we(e)?e:new Pt(e.message,{cause:e}),t?.throwOnError)throw x}Object.assign(i,b);let ee=y?`stay`:`enter`,C;if(v)C={...v,cause:ee,params:y?.params??i,_strictParams:b,search:ne(y?y.search:v.search,u),_strictSearch:d};else{let e=r.options.loader||r.options.beforeLoad||r.lazyFn||dt(r)?`pending`:`success`;C={id:_,ssr:r.options.ssr,index:n,routeId:r.id,params:y?.params??i,_strictParams:b,pathname:h,updatedAt:Date.now(),search:y?ne(y.search,u):u,_strictSearch:d,searchError:void 0,status:e,isFetching:!1,error:void 0,paramsError:x,__routeContext:void 0,_nonReactive:{loadPromise:S()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:ee,loaderDeps:y?re(y.loaderDeps,p):p,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:r.options.staticData||{},fullPath:r.fullPath}}t?.preload||(C.globalNotFound=s===r.id),C.searchError=f;let te=this.getParentContext(o);C.context={...te,...C.__routeContext,...C.__beforeLoadContext},c[n]=C}for(let t=0;t<c.length;t++){let n=c[t],r=this.looseRoutesById[n.routeId],a=this.getMatch(n.id),o=l.get(n.routeId);if(n.params=o?ne(o.params,i):i,!a){let i=c[t-1],a=this.getParentContext(i);if(r.options.context){let t={deps:n.loaderDeps,params:n.params,context:a??{},location:e,navigate:t=>this.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:n.cause,abortController:n.abortController,preload:!!n.preload,matches:c,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return c}matchRoutesLightweight(e){let{matchedRoutes:t,routeParams:n}=this.getMatchedRoutes(e.pathname),r=l(t),i={...e.search};for(let e of t)try{Object.assign(i,It(e.options.validateSearch,i))}catch{}let a=l(this.stores.matchesId.get()),o=a&&this.stores.matchStores.get(a)?.get(),s=o&&o.routeId===r.id&&o.pathname===e.pathname,c;if(s)c=o.params;else{let e=Object.assign(Object.create(null),n);for(let n of t)try{Vt(n,e)}catch{}c=e}return{matchedRoutes:t,fullPath:r.fullPath,search:i,params:c}}},Nt=class extends Error{},Pt=class extends Error{};function Ft(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function It(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new Nt(`Async validation not supported`);if(n.issues)throw new Nt(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return`parse`in e?e.parse(t):typeof e==`function`?e(t):{}}function Lt({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=oe(e),a,o=se(i,n,!0);return o&&(a=o.route,Object.assign(r,o.rawParams)),{matchedRoutes:o?.branch||[t.__root__],routeParams:r,foundRoute:a}}function Rt({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return zt(n)(e,t,r??!1)}function zt(e){let t,n,r=[];for(let t of e){let e=t.options;`search`in e?e.search?.middlewares&&r.push(...e.search.middlewares):(e.preSearchFilters||e.postSearchFilters)&&r.push(({search:t,next:n})=>{let r=n(e.preSearchFilters?e.preSearchFilters.reduce((e,t)=>t(e),t):t);return e.postSearchFilters?e.postSearchFilters.reduce((e,t)=>
10t(e),r):r});let i=e.validateSearch;i&&r.push(({search:e,next:t,meta:r})=>{let a=t(e);if(n)try{let e=It(i,a);if(r&&e)for(let t in e)t in a||(r.defaulted||=new Map).set(t,e[t]);return{...a,...e}}catch{}return a})}let i=(e,n,a)=>{if(e>=r.length){if(!t.search)return{};if(t.search===!0)return n;let e=p(t.search,n);return a&&(a.explicit=e),e}return r[e]({search:n,next:(t,n)=>{if(n){let n=a||{};return{search:i(e+1,t,n),meta:n}}return i(e+1,t,a)},meta:a})};return function(e,r,a){return t=r,n=a,i(0,e)}}function Bt(e,t){if(e!==`root`)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.children)return n.id}return De}function Vt(e,t){let n=e.options.params?.parse??e.options.parseParams;if(n){let e=n(t);if(e===!1)throw Error(`Route params.parse returned false for a matched route`);Object.assign(t,e)}}function Ht(){try{return sessionStorage}catch{return}}var Ut=`tsr-scroll-restoration-v1_3`,Wt=Ht();function Gt(){try{return JSON.parse(Wt?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function Kt(){try{Wt?.setItem(Ut,JSON.stringify(qt))}catch{}}var qt=Gt(),Jt=`data-scroll-restoration-id`,Yt=e=>e.state.__TSR_key||e.href;function Xt(e){let t=e.getAttribute(Jt);if(t)return`[${Jt}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var Zt=!1,Qt=`window`;function $t(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function en(e){let t=[];for(let n of e){if(n===Qt)continue;let e=$t(n);e&&t.push(e)}return t}function tn(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||Yt,a=new Map,o=(e,t,n)=>{let r=a.get(e)||{};r.scrollX=t,r.scrollY=n,a.set(e,r)},s=e=>{if(!(Zt||!r.restoring))if(e.target===document)o(Qt,scrollX,scrollY);else{let t=e.target;o(t,t.scrollLeft,t.scrollTop)}},c=e=>{if(!r.restoring)return;let t=qt[e]||={};for(let[e,n]of a)e===Qt?t[Qt]=n:e.isConnected&&(t[Xt(e)]=n)};n&&!r.restoration&&(r.restoration=!0,Zt=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,s,!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&c(i(e.fromLocation)),a.clear()}),addEventListener(`pagehide`,()=>{c(i(e.stores.resolvedLocation.get()??e.stores.location.get())),Kt()})),!r.reset&&(r.reset=!0,e.subscribe(`onRendered`,t=>{let n=e.options.scrollRestorationBehavior,o=e.options.scrollToTopSelectors,s=r.next,c;if(a.clear(),s||(r.next=!0),typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let l=i(t.toLocation),u=t.fromLocation&&i(t.fromLocation);if(r.restoring&&u&&u!==l){let e=qt[u];if(e){let t=qt[l];for(let n in e){if(n===Qt){if(s)continue}else{let e=$t(n);if(!e||s&&o&&(c??=en(o),c.includes(e)))continue}t||=qt[l]={},t[n]??=e[n]}}}Zt=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){let s=jt.get(t.toLocation),u=e&&i&&(s===`PUSH`||s===`REPLACE`),d=r.restoring?qt[l]:void 0;if(d)for(let e in d){let{scrollX:t,scrollY:r}=d[e];if(e===Qt){if(u)continue;scrollTo({top:r,left:t,behavior:n}),a=!0}else{let n=$t(e);n&&(n.scrollLeft=t,n.scrollTop=r)}}if(!a&&!e){let e={top:0,left:0,behavior:n};if(scrollTo(e),o){c??=en(o);for(let t of c)t.scrollTo(e)}}}!a&&e&&i&&document.getElementById(e)?.scrollIntoView(i)}finally{Zt=!1}}))}var nn=Symbol.for(`TSR_DEFERRED_PROMISE`);function rn(e,t){let n=e;return n[nn]?n:(n[nn]={status:`pending`},n.then(e=>{n[nn].status=`success`,n[nn].data=e}).catch(e=>{n[nn].status=`error`,n[nn].error={data:(t?.serializeError??kt)(e),__isServerError:!0}}),n)}function an(e,t){if(e)return typeof e==`string`?e:e[t]}function on(e){return e?.scriptFormat??`module`}function sn(e,t,n){let r=cn(t),i=an(n,`script`)??r.crossOrigin;return{...on(e)===`iife`?{rel:`preload`,as:`script`}:{rel:`modulepreload`},href:r.href,...i?{crossOrigin:i}:{}}}function cn(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}function ln(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}let n=new Set;for(let r of t){let t=JSON.stringify(r);n.has(t)||(n.add(t),e.push(r))}}function un(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}var dn=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e.originalIndex;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=De:this.parentRoute||g();let r=n?De:t?.path;r&&r!==`/`&&(r=w(r));let i=t?.id||r,a=n?De:ue([this.parentRoute.id===`__root__`?``:this.parentRoute.id,i]);r===`__root__`&&(r=`/`),a!==`__root__`&&(a=ue([`/`,a]));let o=a===`__root__`?`/`:ue([this.parentRoute.fullPath,r]);this._path=r,this._id=a,this._fullPath=o,this._to=oe(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>Ce({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},fn=class extends dn{constructor(e){super(e)}},pn=s({key:`$TSS/serverfn`,test:e=>typeof e!=`function`||!(a in e)?!1:!!e[a],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>o(e)});function mn(e){return e.replaceAll(`\0`,`/`).replaceAll(`�`,`/`)}function hn(e,t){e.id=t.i,e.__beforeLoadContext=t.b,e.loaderData=t.l,e.
10status=t.s,e.ssr=t.ssr,e.updatedAt=t.u,e.error=t.e,t.g!==void 0&&(e.globalNotFound=t.g)}async function gn(e){window.$_TSR||g();let t=e.options.serializationAdapters;if(t?.length){let e=new Map;t.forEach(t=>{e.set(t.key,t.fromSerializable)}),window.$_TSR.t=e,window.$_TSR.buffer.forEach(e=>e())}window.$_TSR.initialized=!0,window.$_TSR.router||g();let n=window.$_TSR.router;n.matches.forEach(e=>{e.i=mn(e.i)}),n.lastMatchId&&=mn(n.lastMatchId);let{manifest:r,dehydratedData:i,lastMatchId:a}=n;e.ssr={manifest:r};let o=document.querySelector(`meta[property="csp-nonce"]`)?.content;e.options.ssr={nonce:o},await e.options.hydrate?.(i);let s=e.matchRoutes(e.stores.location.get()),c=Promise.all(s.map(t=>e.loadRouteChunk(e.looseRoutesById[t.routeId])));function l(t){let n=e.looseRoutesById[t.routeId].options.pendingMinMs??e.options.defaultPendingMinMs;if(n){let r=S();t._nonReactive.minPendingPromise=r,t._forcePending=!0,setTimeout(()=>{r.resolve(),e.updateMatch(t.id,e=>(e._nonReactive.minPendingPromise=void 0,{...e,_forcePending:void 0}))},n)}}function u(t){let n=e.looseRoutesById[t.routeId];n&&(n.options.ssr=t.ssr)}let d;s.forEach(e=>{let t=n.matches.find(t=>t.i===e.id);if(!t){e._nonReactive.dehydrated=!1,e.ssr=!1,u(e);return}hn(e,t),u(e),e._nonReactive.dehydrated=e.ssr!==!1,(e.ssr===`data-only`||e.ssr===!1)&&d===void 0&&(d=e.index,l(e))}),e.stores.setMatches(s);let f=e.stores.matches.get(),p=e.stores.location.get();await Promise.all(f.map(async t=>{try{let n=e.looseRoutesById[t.routeId],r=f[t.index-1]?.context??e.options.context;if(n.options.context){let i={deps:t.loaderDeps,params:t.params,context:r??{},location:p,navigate:t=>e.navigate({...t,_fromLocation:p}),buildLocation:e.buildLocation,cause:t.cause,abortController:t.abortController,preload:!1,matches:s,routeId:n.id};t.__routeContext=n.options.context(i)??void 0}t.context={...r,...t.__routeContext,...t.__beforeLoadContext};let i={ssr:e.options.ssr,matches:f,match:t,params:t.params,loaderData:t.loaderData},a=await n.options.head?.(i),o=await n.options.scripts?.(i);t.meta=a?.meta,t.links=a?.links,t.headScripts=a?.scripts,t.styles=a?.styles,t.scripts=o}catch(e){if(E(e))t.error={isNotFound:!0},console.error(`NotFound error during hydration for routeId: ${t.routeId}`,e);else throw t.error=e,console.error(`Error during hydration for route ${t.routeId}:`,e),e}}));let m=s[s.length-1].id!==a;if(!s.some(e=>e.ssr===!1)&&!m)return s.forEach(e=>{e._nonReactive.dehydrated=void 0}),e.stores.resolvedLocation.set(e.stores.location.get()),c;let h=Promise.resolve().then(()=>e.load()).catch(e=>{console.error(`Error during router hydration:`,e)});if(m){let t=s[1];t||g(),l(t),t._displayPending=!0,t._nonReactive.displayPendingPromise=h,h.then(()=>{e.batch(()=>{e.stores.status.get()===`pending`&&(e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())),e.updateMatch(t.id,e=>({...e,_displayPending:void 0,displayPendingPromise:void 0}))})})}return c}var O=t(r(),1),k=n();function _n({promise:e}){if(he)return he(e);let t=rn(e);if(t[nn].status===`pending`)throw t;if(t[nn].status===`error`)throw t[nn].error;return t[nn].data}function vn(e){let t=(0,k.jsx)(yn,{...e});return e.fallback?(0,k.jsx)(O.Suspense,{fallback:e.fallback,children:t}):t}function yn(e){let t=_n(e);return e.children(t)}function bn(e){let t=e.errorComponent??Sn;return(0,k.jsx)(xn,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?O.createElement(t,{error:n,reset:r}):e.children})}var xn=class extends O.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function Sn({error:e}){let[t,n]=O.useState(!1);return(0,k.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,k.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,k.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,k.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,k.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,k.jsx)(`div`,{children:(0,k.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`}
10,children:e.message?(0,k.jsx)(`code`,{children:e.message}):null})}):null]})}var Cn=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(Cn||{});function wn({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Tn(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var En=[],Dn=0,{link:On,unlink:kn,propagate:An,checkDirty:jn,shallowPropagate:Mn}=wn({update(e){return e._update()},notify(e){En[Pn++]=e,e.flags&=~Cn.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=Cn.Mutable|Cn.Dirty,Rn(e))}}),Nn=0,Pn=0,Fn,In=0;function Ln(e){try{++In,e()}finally{--In||zn()}}function Rn(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=kn(n,e)}function zn(){if(!(In>0)){for(;Nn<Pn;){let e=En[Nn];En[Nn++]=void 0,e.notify()}Nn=0,Pn=0}}function Bn(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?Cn.None:Cn.Mutable,get(){return Fn!==void 0&&On(i,Fn,Dn),i._snapshot},subscribe(e){let t=Tn(e),n={current:!1},r=Vn(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Fn,o=t?.compare??Object.is;if(n)Fn=i,++Dn,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=Cn.Mutable|Cn.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Fn=a,n&&(i.flags&=~Cn.RecursedCheck),Rn(i)}}};return n?(i.flags=Cn.Mutable|Cn.Dirty,i.get=function(){let e=i.flags;if(e&Cn.Dirty||e&Cn.Pending&&jn(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Mn(e)}}else e&Cn.Pending&&(i.flags=e&~Cn.Pending);return Fn!==void 0&&On(i,Fn,Dn),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(An(e),Mn(e),zn())}},i}function Vn(e){let t=()=>{let t=Fn;Fn=n,++Dn,n.depsTail=void 0,n.flags=Cn.Watching|Cn.RecursedCheck;try{return e()}finally{Fn=t,n.flags&=~Cn.RecursedCheck,Rn(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:Cn.Watching|Cn.RecursedCheck,notify(){let e=this.flags;e&Cn.Dirty||e&Cn.Pending&&jn(this.deps,this)?t():this.flags=Cn.Watching},stop(){this.flags=Cn.None,this.depsTail=void 0,Rn(this)}};return t(),n}function Hn(e){return je({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Un(e){let{select:t,...n}=e;return je({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Wn(e){return je({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function Gn(e){return je({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Kn(e){let t=y();return O.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function qn(e){return je({...e,select:t=>e.select?e.select(t.context):t.context})}var Jn=class extends dn{constructor(e){super(e),this.useMatch=e=>je({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>qn({...e,from:this.id}),this.useSearch=e=>Gn({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Wn({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Un({...e,from:this.id}),this.useLoaderData=e=>Hn({...e,from:this.id}),this.useNavigate=()=>Kn({from:this.fullPath}),this.Link=O.forwardRef((e,t)=>
10(0,k.jsx)(Oe,{ref:t,from:this.fullPath,...e}))}};function Yn(e){return new Jn(e)}function Xn(){return e=>Qn(e)}var Zn=class extends fn{constructor(e){super(e),this.useMatch=e=>je({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>qn({...e,from:this.id}),this.useSearch=e=>Gn({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Wn({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Un({...e,from:this.id}),this.useLoaderData=e=>Hn({...e,from:this.id}),this.useNavigate=()=>Kn({from:this.fullPath}),this.Link=O.forwardRef((e,t)=>(0,k.jsx)(Oe,{ref:t,from:this.fullPath,...e}))}};function Qn(e){return new Zn(e)}function A(e){return new $n(e,{silent:!0}).createRoute}var $n=class{constructor(e,t){this.path=e,this.createRoute=e=>{let t=Yn(e);return t.isRoot=!1,t},this.silent=t?.silent}};function j(e,t){let n,r,i,a,o=()=>(n||=e().then(e=>{n=void 0,r=e[t??`default`]}).catch(e=>{if(i=e,h(i)&&i instanceof Error&&typeof window<`u`&&typeof sessionStorage<`u`){let e=`tanstack_router_reload:${i.message}`;sessionStorage.getItem(e)||(sessionStorage.setItem(e,`1`),a=!0)}}),n),s=function(e){if(a)throw window.location.reload(),new Promise(()=>{});if(i)throw i;if(!r)if(he)he(o());else throw o();return O.createElement(r,e)};return s.preload=o,s}function er(e){let t=y(),n=`not-found-${C(t.stores.location,e=>e.pathname)}-${C(t.stores.status,e=>e)}`;return(0,k.jsx)(bn,{getResetKey:()=>n,onCatch:(t,n)=>{if(E(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(E(t))return e.fallback?.(t);throw t},children:e.children})}function tr(){return(0,k.jsx)(`p`,{children:`Not Found`})}function nr(e){return(0,k.jsx)(k.Fragment,{children:e.children})}function rr(e,t,n){return t.options.notFoundComponent?(0,k.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,k.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,k.jsx)(tr,{})}var ir=(e,t)=>e.routeId===t.routeId&&e._displayPending===t._displayPending,ar=(e,t)=>e[0]===t[0]&&e[1]===t[1],or=O.memo(function({matchId:e}){let t=y(),n=t.stores.matchStores.get(e);n||g();let r=C(t.stores.loadedAt,e=>e),i=C(n,e=>e,ir);return(0,k.jsx)(sr,{router:t,matchId:e,resetKey:r,matchState:O.useMemo(()=>{let e=i.routeId,n=t.routesById[e].parentRoute?.id;return{routeId:e,ssr:i.ssr,_displayPending:i._displayPending,parentRouteId:n}},[i._displayPending,i.routeId,i.ssr,t.routesById])})});function sr({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,k.jsx)(a,{}):null,s=i.options.errorComponent??e.options.defaultErrorComponent,c=i.options.onCatch??e.options.defaultOnCatch,l=i.isRoot?i.options.notFoundComponent??e.options.notFoundRoute?.options.component:i.options.notFoundComponent,u=r.ssr===!1||r.ssr===`data-only`,d=(!i.isRoot||i.options.wrapInSuspense||u)&&(i.options.wrapInSuspense??a??(i.options.errorComponent?.preload||u))?O.Suspense:nr,f=s?bn:nr,p=l?er:nr;return(0,k.jsxs)(i.isRoot?i.options.shellComponent??nr:nr,{children:[(0,k.jsx)(ke.Provider,{value:t,children:(0,k.jsx)(d,{fallback:o,children:(0,k.jsx)(f,{getResetKey:()=>n,errorComponent:s||Sn,onCatch:(e,t)=>{if(E(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,k.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return O.createElement(l,e)},children:u||r._displayPending?(0,k.jsx)(_e,{fallback:o,children:(0,k.jsx)(lr,{matchId:t})}):(0,k.jsx)(lr,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(cr,{}),(e.options.scrollRestoration,null)]}):null]})}function cr(){let e=y(),t=O.useRef();return me(()=>{let n=e.stores.resolvedLocation.get(),r=t.current;n&&(!r||r.href!==n.href)&&e.emit({type:`onRendered`,...At(e.stores.location.get(),r??n)}),t.current=n},[C(e.stores.resolvedLocation,e=>e?.state.__TSR_key),e]),null}var lr=O.memo(function({matchId:e}){let t=y(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||g();let i=C(r,e=>e),a=i.routeId,o=t.routesById[a],s=O.useMemo(()=>{let e=(t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?.({routeId:a,loaderDeps:i.loaderDeps,params:i._strictParams,search:i._strictSearch});return e?JSON.stringify(e):void 0},[a,i.loaderDeps,i._strictParams,i._strictSearch,t.options.defaultRemountDeps,t.routesById]),c=O.useMemo(()=>{let e=o.options.component??t.options.defaultComponent;return e?(0,k.jsx)(e,{},s):(0,k.jsx)(ur,{})},[s,o.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);
10if(i.status===`pending`){let e=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){let n=t.getMatch(i.id);if(n&&!n._nonReactive.minPendingPromise){let t=S();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return E(i.error)||g(),rr(t,o,i.error);if(i.status===`redirected`)throw we(i.error)||g(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return c}),ur=O.memo(function(){let e=y(),t=O.useContext(ke),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=C(a,e=>[e?.routeId,e?.globalNotFound??!1],ar),i=C(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,k.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||g(),rr(e,a,void 0);if(!i)return null;let s=(0,k.jsx)(or,{matchId:i});return n===`__root__`?(0,k.jsx)(O.Suspense,{fallback:o,children:s}):s});function dr(){let e=y(),t=O.useRef({router:e,mounted:!1}),[n,r]=O.useState(!1),i=C(e.stores.isLoading,e=>e),a=C(e.stores.hasPending,e=>e),o=ge(i),s=i||n||a,c=ge(s),l=i||a,u=ge(l);return e.startTransition=e=>{r(!0),O.startTransition(()=>{e(),r(!1)})},O.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return oe(e.latestLocation.publicHref)!==oe(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),me(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),me(()=>{o&&!i&&e.emit({type:`onLoad`,...At(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),me(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...At(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),me(()=>{if(c&&!s){let t=At(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Ln(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}function fr(){let e=y(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,k.jsx)(t,{}):null,r=(0,k.jsxs)(typeof document<`u`&&e.ssr?nr:O.Suspense,{fallback:n,children:[(0,k.jsx)(dr,{}),(0,k.jsx)(pr,{})]});return e.options.InnerWrap?(0,k.jsx)(e.options.InnerWrap,{children:r}):r}function pr(){let e=y(),t=C(e.stores.firstId,e=>e),n=C(e.stores.loadedAt,e=>e),r=t?(0,k.jsx)(or,{matchId:t}):null;return(0,k.jsx)(ke.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,k.jsx)(bn,{getResetKey:()=>n,errorComponent:Sn,onCatch:void 0,children:r})})}var mr=e=>({createMutableStore:Bn,createReadonlyStore:Bn,batch:Ln}),hr=e=>new gr(e),gr=class extends Mt{constructor(e){super(e,mr)}};function _r({router:e,children:t,...n}
10){x(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,k.jsx)(ee.Provider,{value:e,children:t});return e.options.Wrap?(0,k.jsx)(e.options.Wrap,{children:r}):r}function vr({router:e,...t}){return(0,k.jsx)(_r,{router:e,...t,children:(0,k.jsx)(fr,{})})}function yr(e){let t=y();return C(t.stores.location,Ae(e,t))}function br(e,t){if(t)for(let[n,r]of Object.entries(t))n!==`suppressHydrationWarning`&&r!==void 0&&r!==!1&&e.setAttribute(n,typeof r==`boolean`?``:String(r))}function xr(e){let{attrs:t,children:n,nonce:r,preventScriptHoist:i}=e;switch(e.tag){case`title`:return(0,k.jsx)(`title`,{...t,suppressHydrationWarning:!0,children:n});case`meta`:return(0,k.jsx)(`meta`,{...t,suppressHydrationWarning:!0});case`link`:return(0,k.jsx)(`link`,{...t,precedence:t?.precedence??(t?.rel===`stylesheet`?`default`:void 0),nonce:r,suppressHydrationWarning:!0});case`style`:return e.inlineCss,(0,k.jsx)(`style`,{...t,dangerouslySetInnerHTML:{__html:n},nonce:r});case`script`:return(0,k.jsx)(Sr,{attrs:t,preventScriptHoist:i,children:n});default:return null}}function Sr({attrs:e,children:t,preventScriptHoist:n}){y();let r=pe(),i=typeof e?.type==`string`&&e.type!==``&&e.type!==`text/javascript`&&e.type!==`module`;if(O.useEffect(()=>{if(!i){if(e?.src){let t=(()=>{try{let t=document.baseURI||window.location.href;return new URL(e.src,t).href}catch{return e.src}})();for(let e of document.querySelectorAll(`script[src]`))if(e.src===t)return;let n=document.createElement(`script`);return br(n,e),document.head.appendChild(n),()=>n.remove()}if(typeof t==`string`){let n=typeof e?.type==`string`?e.type:`text/javascript`,r=typeof e?.nonce==`string`?e.nonce:void 0;for(let e of document.querySelectorAll(`script:not([src])`)){if(!(e instanceof HTMLScriptElement))continue;let i=e.getAttribute(`type`)??`text/javascript`,a=e.getAttribute(`nonce`)??void 0;if(e.textContent===t&&i===n&&a===r)return}let i=document.createElement(`script`);return i.textContent=t,br(i,e),document.head.appendChild(i),()=>i.remove()}}},[e,t,i]),i&&typeof t==`string`)return(0,k.jsx)(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!r){if(e?.src)return(0,k.jsx)(`script`,{...e,suppressHydrationWarning:!0});if(typeof t==`string`)return(0,k.jsx)(`script`,{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var Cr=e=>{let t=y(),n=t.options.ssr?.nonce,r=C(t.stores.matches,e=>e.map(e=>e.meta).filter(e=>e!==void 0),_),i=O.useMemo(()=>{let e=[],t={},i;for(let a=r.length-1;a>=0;a--){let o=r[a];for(let r=o.length-1;r>=0;r--){let a=o[r];if(a)if(a.title)i||={tag:`title`,children:a.title};else if(`script:ld+json`in a)try{let t=JSON.stringify(a[`script:ld+json`]);e.push({tag:`script`,attrs:{type:`application/ld+json`},children:f(t)})}catch{}else{let r=a.name??a.property;if(r){if(t[r])continue;t[r]=!0}e.push({tag:`meta`,attrs:{...a,nonce:n}})}}}return i&&e.push(i),n&&e.push({tag:`meta`,attrs:{property:`csp-nonce`,content:n}}),e.reverse(),e},[r,n]),a=C(t.stores.matches,e=>e.flatMap(e=>e.links??[]).filter(e=>e!==void 0).map(e=>({tag:`link`,attrs:{...e,nonce:n}})),_),o=C(t.stores.matches,r=>{let i=t.ssr?.manifest,a=[];return i?(r.forEach(t=>{i.routes[t.routeId]?.css?.forEach(t=>{let r=un(t);a.push({tag:`link`,attrs:{rel:`stylesheet`,...r,crossOrigin:an(e,`stylesheet`)??r.crossOrigin,suppressHydrationWarning:!0,nonce:n}})})}),i.inlineStyle&&a.push({tag:`style`,attrs:{...i.inlineStyle.attrs,nonce:n},children:i.inlineStyle.children,inlineCss:!0}),a):a},_),s=C(t.stores.matches,r=>{let i=[],a=t.ssr?.manifest;return a&&r.forEach(t=>{a.routes[t.routeId]?.preloads?.forEach(t=>{i.push({tag:`link`,attrs:{...sn(a,t,e),nonce:n}})})}),i},_),c=C(t.stores.matches,e=>e.flatMap(e=>e.styles??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`style`,attrs:{...t,nonce:n},children:e})),_),l=C(t.stores.matches,e=>e.flatMap(e=>e.headScripts??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`script`,attrs:{...t,nonce:n},children:e})),_),u=[];return ln(u,i),u.push(...s),ln(u,a),u.push(...o),ln(u,c),ln(u,l),u};
10function wr(e){let t=Cr(e.assetCrossOrigin),n=y().options.ssr?.nonce;return(0,k.jsx)(k.Fragment,{children:t.map(e=>(0,O.createElement)(xr,{...e,key:`tsr-meta-${JSON.stringify(e)}`,nonce:n}))})}var Tr=()=>{let e=y(),t=e.options.ssr?.nonce,n=n=>{let r=[],i=e.ssr?.manifest;if(!i)return[];for(let e of n){let n=i.routes[e.routeId]?.scripts;if(n)for(let e of n)r.push({tag:`script`,attrs:{...e.attrs,nonce:t},children:e.children,...typeof e.attrs?.src==`string`?{preventScriptHoist:!0}:{}})}return r},r=e=>e.map(e=>e.scripts).flat(1).filter(Boolean).map(({children:e,...n})=>({tag:`script`,attrs:{...n,suppressHydrationWarning:!0,nonce:t},children:e})),i=C(e.stores.matches,n,_);return Er(e,C(e.stores.matches,r,_),i)};function Er(e,t,n){let r=[...t,...n];return(0,k.jsx)(k.Fragment,{children:r.map((e,t)=>(0,O.createElement)(xr,{...e,key:`tsr-scripts-${e.tag}-${t}`}))})}var Dr=(e,t)=>{let n={type:`request`,...t||e},r=e=>Dr({},Object.assign(n,{validator:e,inputValidator:e}));return{options:n,middleware:e=>Dr({},Object.assign(n,{middleware:e})),validator:r,inputValidator:r,client:e=>Dr({},Object.assign(n,{client:e})),server:e=>Dr({},Object.assign(n,{server:e}))}};function Or(e,t){for(let n=0,r=t.length;n<r;n++){let r=t[n];e.has(r)||(e.add(r),r.extends&&Or(e,r.extends))}}var kr=e=>({getOptions:async()=>{let t=await e();if(t.serializationAdapters){let e=new Set;Or(e,t.serializationAdapters),t.serializationAdapters=Array.from(e)}return t},createMiddleware:Dr}),Ar=function(){return Ar=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Ar.apply(this,arguments)};function jr(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function Mr(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function Nr(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var Pr=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),Fr=class extends Error{constructor(e,t=`FunctionsError`,n){super(e),this.name=t,this.context=n}toJSON(){return{name:this.name,message:this.message,context:this.context}}},Ir=class extends Fr{constructor(e){super(`Failed to send a request to the Edge Function`,`FunctionsFetchError`,e)}},Lr=class extends Fr{constructor(e){super(`Relay Error invoking the Edge Function`,`FunctionsRelayError`,e)}},Rr=class extends Fr{constructor(e){super(`Edge Function returned a non-2xx status code`,`FunctionsHttpError`,e)}},zr;(function(e){e.Any=`any`,e.ApNortheast1=`ap-northeast-1`,e.ApNortheast2=`ap-northeast-2`,e.ApSouth1=`ap-south-1`,e.ApSoutheast1=`ap-southeast-1`,e.ApSoutheast2=`ap-southeast-2`,e.CaCentral1=`ca-central-1`,e.EuCentral1=`eu-central-1`,e.EuWest1=`eu-west-1`,e.EuWest2=`eu-west-2`,e.EuWest3=`eu-west-3`,e.SaEast1=`sa-east-1`,e.UsEast1=`us-east-1`,e.UsWest1=`us-west-1`,e.UsWest2=`us-west-2`})(zr||={});var Br=class{constructor(e,{headers:t={},customFetch:n,region:r=zr.Any}={}){this.url=e,this.headers=t,this.region=r,this.fetch=Pr(n)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e){return Mr(this,arguments,void 0,function*(e,t={}){var n;let r,i,a;try{let{headers:n,method:o,body:s,signal:c,timeout:l}=t,u={},{region:d}=t;d||=this.region;let f=new URL(`${this.url}/${e}`);d&&d!==`any`&&(u[`x-region`]=d,f.searchParams.set(`forceFunctionRegion`,d));let p,m=!!n&&Object.keys(n).some(e=>e.toLowerCase()===`content-type`);s&&!m?typeof Blob<`u`&&s instanceof Blob||s instanceof ArrayBuffer?(u[`Content-Type`]=`application/octet-stream`,p=s):typeof s==`string`?(u[`Content-Type`]=`text/plain`,p=s):typeof FormData<`u`&&s instanceof FormData?p=s:(u[`Content-Type`]=`application/json`,p=JSON.stringify(s)):p=s&&typeof s!=`string`&&!(typeof Blob<`u`&&s instanceof Blob)&&!(s instanceof ArrayBuffer)&&!(typeof FormData<`u`&&s instanceof FormData)?JSON.stringify(s):s;let h=c;l&&(i=new AbortController,r=setTimeout(()=>i.abort(),l),c?(h=i.signal,a=()=>i.abort(),c.addEventListener(`abort`,a)):h=i.signal);let g=yield this.fetch(f.toString(),{method:o||`POST`,headers:Object.assign(Object.assign(Object.assign({},u),this.headers),n),body:p,signal:h}).catch(e=>{throw new Ir(e)}),_=g.headers.get(`x-relay-error`);if(_&&_===`true`)throw new Lr(g);if(!g.ok)throw new Rr(g);let v=(g.headers.get(`Content-Type`)??`text/plain`).split(`;`)[0].trim().toLowerCase(),y;return y=v===`application/json`?yield g.json():v===`application/octet-stream`||v===`application/pdf`?yield g.blob():v===`text/event-stream`?g:v===`multipart/form-data`?yield g.formData():yield g.text(),{data:y,error:null,response:g}}catch(e){return{data:null,error:e,response:e instanceof Rr||e instanceof Lr?e.context:void 0}}finally{r&&clearTimeout(r),a&&((n=t.signal)==null||n.removeEventListener(`abort`,a))}})}},Vr=3,Hr=e=>Math.min(1e3*2**e,3e4),Ur=[520,503],Wr=[`GET`,`HEAD`,`OPTIONS`],Gr=class extends
10Error{constructor(e){super(e.message),this.name=`PostgrestError`,this.details=e.details,this.hint=e.hint,this.code=e.code}toJSON(){return{name:this.name,message:this.message,details:this.details,hint:this.hint,code:this.code}}};function Kr(e,t){return new Promise(n=>{if(t?.aborted){n();return}let r=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);function i(){clearTimeout(r),n()}t?.addEventListener(`abort`,i)})}function qr(e,t,n,r){return!(!r||n>=Vr||!Wr.includes(e)||!Ur.includes(t))}var Jr=class{constructor(e){this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=e.shouldThrowOnError??!1,this.signal=e.signal,this.isMaybeSingle=e.isMaybeSingle??!1,this.shouldStripNulls=e.shouldStripNulls??!1,this.urlLengthLimit=e.urlLengthLimit??8e3,this.retryEnabled=e.retry??!0,e.fetch?this.fetch=e.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get(`Accept`)===`text/csv`)throw Error(`stripNulls() cannot be used with csv()`);return this.shouldStripNulls=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}retry(e){return this.retryEnabled=e,this}then(e,t){var n=this;if(this.schema===void 0||([`GET`,`HEAD`].includes(this.method)?this.headers.set(`Accept-Profile`,this.schema):this.headers.set(`Content-Profile`,this.schema)),this.method!==`GET`&&this.method!==`HEAD`&&this.headers.set(`Content-Type`,`application/json`),this.shouldStripNulls){let e=this.headers.get(`Accept`);e===`application/vnd.pgrst.object+json`?this.headers.set(`Accept`,`application/vnd.pgrst.object+json;nulls=stripped`):(!e||e===`application/json`)&&this.headers.set(`Accept`,`application/vnd.pgrst.array+json;nulls=stripped`)}let r=this.fetch,i=(async()=>{let e=0;for(;;){let t={};n.headers.forEach((e,n)=>{t[n]=e}),e>0&&(t[`X-Retry-Count`]=String(e));let i;try{i=await r(n.url.toString(),{method:n.method,headers:t,body:JSON.stringify(n.body,(e,t)=>typeof t==`bigint`?t.toString():t),signal:n.signal})}catch(t){if(t?.name===`AbortError`||t?.code===`ABORT_ERR`||!Wr.includes(n.method))throw t;if(n.retryEnabled&&e<Vr){let t=Hr(e);e++,await Kr(t,n.signal);continue}throw t}if(qr(n.method,i.status,e,n.retryEnabled)){let t=i.headers?.get(`Retry-After`)??null,r=t===null?Hr(e):Math.max(0,parseInt(t,10)||0)*1e3;await i.text(),e++,await Kr(r,n.signal);continue}return await n.processResponse(i)}})();return this.shouldThrowOnError||(i=i.catch(e=>{let t=``,n=``,r=``,i=e?.cause;if(i){let n=i?.message??``,r=i?.code??``;t=`${e?.name??`FetchError`}: ${e?.message}`,t+=`\n\nCaused by: ${i?.name??`Error`}: ${n}`,r&&(t+=` (${r})`),i?.stack&&(t+=`\n${i.stack}`)}else t=e?.stack??``;let a=this.url.toString().length;return e?.name===`AbortError`||e?.code===`ABORT_ERR`?(r=``,n=`Request was aborted (timeout or manual cancellation)`,a>this.urlLengthLimit&&(n+=`. Note: Your request URL is ${a} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(i?.name===`HeadersOverflowError`||i?.code===`UND_ERR_HEADERS_OVERFLOW`)&&(r=``,n=`HTTP headers exceeded server limits (typically 16KB)`,a>this.urlLengthLimit&&(n+=`. Your request URL is ${a} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{success:!1,error:{message:`${e?.name??`FetchError`}: ${e?.message}`,details:t,hint:n,code:r},data:null,count:null,status:0,statusText:``}})),i.then(e,t)}async processResponse(e){var t=this;let n=null,r=null,i=null,a=e.status,o=e.statusText;if(e.ok){if(t.method!==`HEAD`){let i=await e.text();if(i!==``)if(t.headers.get(`Accept`)===`text/csv`)r=i;else if(t.headers.get(`Accept`)&&t.headers.get(`Accept`)?.includes(`application/vnd.pgrst.plan+text`))r=i;else try{r=JSON.parse(i)}catch{if(n={message:i},r=null,t.shouldThrowOnError)throw new Gr({message:i,details:``,hint:``,code:``})}}let s=t.headers.get(`Prefer`)?.match(/count=(exact|planned|estimated)/),c=e.headers.get(`content-range`)?.split(`/`);s&&c&&c.length>1&&(i=parseInt(c[1])),t.isMaybeSingle&&Array.isArray(r)&&(r.length>1?(n={code:`PGRST116`,details:`Results contain ${r.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:`JSON object requested, multiple (or no) rows returned`},r=null,i=null,a=406,o=`Not Acceptable`):r=r.length===1?r[0]:null)}else{let i=await e.text();try{n=JSON.parse(i),Array.isArray(n)&&e.status===404&&(r=[],n=null,a=200,o=`OK`)}
vendor: 10,009 bytes, line 10
10catch{e.status===404&&i===``?(a=204,o=`No Content`):n={message:i}}if(n&&t.shouldThrowOnError)throw new Gr(n)}return{success:n===null,error:n,data:r,count:i,status:a,statusText:o}}returns(){return this}overrideTypes(){return this}},Yr=class extends Jr{throwOnError(){return super.throwOnError()}select(e){let t=!1,n=(e??`*`).split(``).map(e=>/\s/.test(e)&&!t?``:(e===`"`&&(t=!t),e)).join(``);return this.url.searchParams.set(`select`,n),this.headers.append(`Prefer`,`return=representation`),this}order(e,{ascending:t=!0,nullsFirst:n,foreignTable:r,referencedTable:i=r}={}){let a=i?`${i}.order`:`order`,o=this.url.searchParams.get(a);return this.url.searchParams.set(a,`${o?`${o},`:``}${e}.${t?`asc`:`desc`}${n===void 0?``:n?`.nullsfirst`:`.nullslast`}`),this}limit(e,{foreignTable:t,referencedTable:n=t}={}){let r=n===void 0?`limit`:`${n}.limit`;return this.url.searchParams.set(r,`${e}`),this}range(e,t,{foreignTable:n,referencedTable:r=n}={}){let i=r===void 0?`offset`:`${r}.offset`,a=r===void 0?`limit`:`${r}.limit`;return this.url.searchParams.set(i,`${e}`),this.url.searchParams.set(a,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set(`Accept`,`application/vnd.pgrst.object+json`),this}maybeSingle(){return this.isMaybeSingle=!0,this}csv(){return this.headers.set(`Accept`,`text/csv`),this}geojson(){return this.headers.set(`Accept`,`application/geo+json`),this}explain({analyze:e=!1,verbose:t=!1,settings:n=!1,buffers:r=!1,wal:i=!1,format:a=`text`}={}){let o=[e?`analyze`:null,t?`verbose`:null,n?`settings`:null,r?`buffers`:null,i?`wal`:null].filter(Boolean).join(`|`),s=this.headers.get(`Accept`)??`application/json`;return this.headers.set(`Accept`,`application/vnd.pgrst.plan+${a}; for="${s}"; options=${o};`),this}rollback(){return this.headers.append(`Prefer`,`tx=rollback`),this}returns(){return this}maxAffected(e){return this.headers.append(`Prefer`,`handling=strict`),this.headers.append(`Prefer`,`max-affected=${e}`),this}},Xr=RegExp(`[,()]`),Zr=class extends Yr{throwOnError(){return super.throwOnError()}eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(`,`)}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(`,`)}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(`,`)}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(`,`)}}`),this}regexMatch(e,t){return this.url.searchParams.append(e,`match.${t}`),this}regexIMatch(e,t){return this.url.searchParams.append(e,`imatch.${t}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}isDistinct(e,t){return this.url.searchParams.append(e,`isdistinct.${t}`),this}in(e,t){let n=Array.from(new Set(t)).map(e=>typeof e==`string`&&Xr.test(e)?`"${e}"`:`${e}`).join(`,`);return this.url.searchParams.append(e,`in.(${n})`),this}notIn(e,t){let n=Array.from(new Set(t)).map(e=>typeof e==`string`&&Xr.test(e)?`"${e}"`:`${e}`).join(`,`);return this.url.searchParams.append(e,`not.in.(${n})`),this}contains(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t==`string`?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(`,`)}}`),this}textSearch(e,t,{config:n,type:r}={}){let i=``;r===`plain`?i=`pl`:r===`phrase`?i=`ph`:r===`websearch`&&(i=`w`);let a=n===void 0?``:`(${n})`;return this.url.searchParams.append(e,`${i}fts${a}.${t}`),this}match(e){return Object.entries(e).filter(([e,t])=>t!==void 0).forEach(([e,t])=>{this.url.searchParams.append(e,`eq.${t}`)}),this}not(e,t,n){return this.url.searchParams.append(e,`not.${t}.${n}`),this}or(e,{foreignTable:t,referencedTable:n=t}={}){let r=n?`${n}.or`:`or`;return this.url.searchParams.append(r,`(${e})`),this}filter(e,t,n){return this.url.searchParams.append(e,`${t}.${n}`),this}},Qr=class{constructor(e,{headers:t={},schema:n,fetch:r,urlLengthLimit:i=8e3,retry:a}){this.url=e,this.headers=new Headers(t),this.schema=n,this.fetch=r,this.urlLengthLimit=i,this.retry=a}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(e,t){let{head:n=!1,count:r}=t??{},i=n?`HEAD`:`GET`,a=!1,o=(e??`*`).split(``).map(e=>/\s/.test(e)&&!a?``:(e===`"`&&(a=!a),e)).join(``),{url:s,headers:c}=this.cloneRequestState();return s.searchParams.set(`select`,o),r&&c.append(`Prefer`,`count=${r}`),new Zr({method:i,url:s,headers:c,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}insert(e,{count:t,defaultToNull:n=!0}={}){let{url:r,headers:i}=this.cloneRequestState();if(t&&i.append(`Prefer`,`count=${t}`),n||i.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);r.searchParams.set(`columns`,e.join(`,`))}}return new Zr({method:`POST`,url:r,headers:i,schema:this.schema,body:e,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}upsert(e,{onConflict:t,ignoreDuplicates:n=!1,count:r,defaultToNull:i=!0}={}){let{url:a,headers:o}=this.cloneRequestState();if(o.append(`Prefer`,`resolution=${n?`ignore`:`merge`}-duplicates`),t!==void 0&&a.searchParams.set(`on_conflict`,t),r&&o.append(`Prefer`,`count=${r}`),i||o.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);a.searchParams.set(`columns`,e.join(`,`))}}return new Zr({method:`POST`,url:a,headers:o,schema:this.schema,body:e,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}update(e,{count:t}={}){let{url:n,headers:r}=this.cloneRequestState();return t&&r.append(`Prefer`,`count=${t}`),new Zr({method:`PATCH`,url:n,headers:r,schema:this.schema,body:e,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}delete({count:e}={}){let{url:t,headers:n}=this.cloneRequestState();return e&&n.append(`Prefer`,`count=${e}`),new Zr({method:`DELETE`,url:t,headers:n,schema:this.schema,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};function $r(e){"@babel/helpers - typeof";return $r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},$r(e)}function ei(e,t){if($r(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if($r(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ti(e){var t=ei(e,`string`);return $r(t)==`symbol`?t:t+``}function ni(e,t,n){return(t=ti(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ri(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ii(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ri(Object(n),!0).forEach(function(t){ni(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ri(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var ai=class e{constructor(e,{headers:t={},schema:n,fetch:r,timeout:i,urlLengthLimit:a=8e3,retry:o}={}){this.url=e,this.headers=new Headers(t),this.schemaName=n,this.urlLengthLimit=a;let s=r??globalThis.fetch;i!==void 0&&i>0?this.fetch=(e,t)=>{let n=new AbortController,r=setTimeout(()=>n.abort(),i),a=t?.signal;if(a){if(a.aborted)return clearTimeout(r),s(e,t);let i=()=>{clearTimeout(r),n.abort()};return a.addEventListener(`abort`,i,{once:!0}),s(e,ii(ii({},t),{},{signal:n.signal})).finally(()=>{clearTimeout(r),a.removeEventListener(`abort`,i)})}return s(e,ii(ii({},t),{},{signal:n.signal})).finally(()=>clearTimeout(r))}:this.fetch=s,this.retry=o}from(e){if(!e||typeof e!=`string`||e.trim()===``)throw Error(`Invalid relation name: relation must be a non-empty string.`);return new Qr(new URL(`${this.url}/${e}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}schema(t){return new e(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}rpc(e,t={},{head:n=!1,get:r=!1,count:i}={}){let a,o=new URL(`${this.url}/rpc/${e}`),s,c=e=>typeof e==`object`&&!!e&&(!Array.isArray(e)||e.some(c)),l=n&&Object.values(t).some(c);l?(a=`POST`,s=t):n||r?(a=n?`HEAD`:`GET`,Object.entries(t).filter(([e,t])=>t!==void 0).map(([e,t])=>[e,Array.isArray(t)?`{${t.join(`,`)}}`:`${t}
10`]).forEach(([e,t])=>{o.searchParams.append(e,t)})):(a=`POST`,s=t);let u=new Headers(this.headers);return l?u.set(`Prefer`,i?`count=${i},return=minimal`:`return=minimal`):i&&u.set(`Prefer`,`count=${i}`),new Zr({method:a,url:o,headers:u,schema:this.schemaName,body:s,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}},oi=class{constructor(){}static detectEnvironment(){if(typeof WebSocket<`u`)return{type:`native`,wsConstructor:WebSocket};let e=globalThis;if(typeof globalThis<`u`&&e.WebSocket!==void 0)return{type:`native`,wsConstructor:e.WebSocket};let t=typeof global<`u`?global:void 0;if(t&&t.WebSocket!==void 0)return{type:`native`,wsConstructor:t.WebSocket};if(typeof globalThis<`u`&&e.WebSocketPair!==void 0&&globalThis.WebSocket===void 0)return{type:`cloudflare`,error:`Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.`,workaround:`Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime.`};if(typeof globalThis<`u`&&e.EdgeRuntime||typeof navigator<`u`&&navigator.userAgent?.includes(`Vercel-Edge`))return{type:`unsupported`,error:`Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.`,workaround:`Use serverless functions or a different deployment target for WebSocket functionality.`};let n=globalThis.process;if(n){let e=n.versions;if(e&&e.node)return{type:`unsupported`,error:`Node.js detected but native WebSocket not found.`,workaround:`Ensure you are running Node.js 22+ or provide a WebSocket implementation via the transport option.`}}return{type:`unsupported`,error:`Unknown JavaScript runtime without WebSocket support.`,workaround:`Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation.`}}static getWebSocketConstructor(){let e=this.detectEnvironment();if(e.wsConstructor)return e.wsConstructor;let t=e.error||`WebSocket not supported in this environment.`;throw e.workaround&&(t+=`\n\nSuggested solution: ${e.workaround}`),Error(t)}static isWebSocketSupported(){try{return this.detectEnvironment().type===`native`}catch{return!1}}},si=`realtime-js/2.110.8`,ci=`1.0.0`,li=`2.0.0`,ui=li,di=1e4,fi={closed:`closed`,errored:`errored`,joined:`joined`,joining:`joining`,leaving:`leaving`},pi={close:`phx_close`,error:`phx_error`,join:`phx_join`,reply:`phx_reply`,leave:`phx_leave`,access_token:`access_token`},mi={connecting:`connecting`,open:`open`,closing:`closing`,closed:`closed`},hi=class{constructor(e){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT=`broadcast`,this.allowedMetadataKeys=[],this.allowedMetadataKeys=e??[]}encode(e,t){if(e.event===this.BROADCAST_EVENT&&!(e.payload instanceof ArrayBuffer)&&typeof e.payload.event==`string`)return t(this._binaryEncodeUserBroadcastPush(e));let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}_binaryEncodeUserBroadcastPush(e){return this._isArrayBuffer(e.payload?.payload)?this._encodeBinaryUserBroadcastPush(e):this._encodeJsonUserBroadcastPush(e)}_encodeBinaryUserBroadcastPush(e){let t=e.payload?.payload??new ArrayBuffer(0);return this._encodeUserBroadcastPush(e,this.BINARY_ENCODING,t)}_encodeJsonUserBroadcastPush(e){let t=e.payload?.payload??{},n=new TextEncoder().encode(JSON.stringify(t)).buffer;return this._encodeUserBroadcastPush(e,this.JSON_ENCODING,n)}_encodeUserBroadcastPush(e,t,n){let r=new TextEncoder,i=r.encode(e.topic),a=r.encode(e.ref??``),o=r.encode(e.join_ref??``),s=r.encode(e.payload.event),c=this.allowedMetadataKeys?this._pick(e.payload,this.allowedMetadataKeys):{},l=r.encode(Object.keys(c).length===0?``:JSON.stringify(c));if(o.length>255)throw Error(`joinRef length ${o.length} exceeds maximum of 255`);if(a.length>255)throw Error(`ref length ${a.length} exceeds maximum of 255`);if(i.length>255)throw Error(`topic length ${i.length} exceeds maximum of 255`);if(s.length>255)throw Error(`userEvent length ${s.length} exceeds maximum of 255`);if(l.length>255)throw Error(`metadata length ${l.length} exceeds maximum of 255`);let u=this.USER_BROADCAST_PUSH_META_LENGTH+o.length+a.length+i.length+s.length+l.length,d=new ArrayBuffer(this.HEADER_LENGTH+u),f=new DataView(d),p=new Uint8Array(d),m=0;f.setUint8(m++,this.KINDS.userBroadcastPush),f.setUint8(m++,o.length),f.setUint8(m++,a.length),f.setUint8(m++,i.length),f.setUint8(m++,s.length),f.setUint8(m++,l.length),f.setUint8(m++,t),p.set(o,m),m+=o.length,p.set(a,m),m+=a.length,p.set(i,m),m+=i.length,p.set(s,m),m+=s.length,p.set(l,m),m+=l.length;var h=new Uint8Array(d.byteLength+n.byteLength);return h.set(new Uint8Array(d),0),h.set(new Uint8Array(n),d.byteLength),h.buffer}decode(e,t){if(this._isArrayBuffer(e))return t(this._binaryDecode(e));if(typeof e==`string`){let[n,r,i,a,o]=JSON.parse(e);return t({join_ref:n,ref:r,topic:i,event:a,payload:o})}return t({})}_binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.userBroadcast:return this._decodeUserBroadcast(e,t,r)}}_decodeUserBroadcast(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=t.getUint8(4),s=this.HEADER_LENGTH+4,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+i));s+=i;let u=n.decode(e.slice(s,s+a));s+=a;let d=e.slice(s,e.byteLength),f=o===this.JSON_ENCODING?JSON.parse(n.decode(d)):d,p={type:this.BROADCAST_EVENT,event:l,payload:f};return a>0&&(p.meta=JSON.parse(u)),{join_ref:null,ref:null,topic:c,event:this.BROADCAST_EVENT,payload:p}}_isArrayBuffer(e){return e instanceof ArrayBuffer||e?.constructor?.name===`ArrayBuffer`}_pick(e,t){return!e||typeof e!=`object`?{}:Object.fromEntries(Object.entries(e).filter(([e])=>t.includes(e)))}},gi;(function(e){e.abstime=`abstime`,e.bool=`bool`,e.date=`date`,e.daterange=`daterange`,e.float4=`float4`,e.float8=`float8`,e.int2=`int2`,e.int4=`int4`,e.int4range=`int4range`,e.int8=`int8`,e.int8range=`int8range`,e.json=`json`,e.jsonb=`jsonb`,e.money=`money`,e.numeric=`numeric`,e.oid=`oid`,e.reltime=`reltime`,e.text=`text`,e.time=`time`,e.timestamp=`timestamp`,e.timestamptz=`timestamptz`,e.timetz=`timetz`,e.tsrange=`tsrange`,e.tstzrange=`tstzrange`})(gi||={});var _i=(e,t,n={})=>{let r=n.skipTypes??[];return t?Object.keys(t).reduce((n,i)=>(n[i]=vi(i,e,t,r),n),{}):{}},vi=(e,t,n,r)=>{let i=t.find(t=>t.name===e)?.type,a=n[e];return i&&!r.includes(i)?yi(i,a):bi(a)},yi=(e,t)=>{if(e.charAt(0)===`_`)return wi(t,e.slice(1,e.length));switch(e){case gi.bool:return xi(t);case gi.float4:case gi.float8:case gi.int2:case gi.int4:case gi.int8:case gi.numeric:case gi.oid:return Si(t);case gi.json:case gi.jsonb:return Ci(t);case gi.timestamp:return Ti(t);case gi.abstime:case gi.date:case gi.daterange:case gi.int4range:case gi.int8range:case gi.money:case gi.reltime:case gi.text:case gi.time:case gi.timestamptz:case gi.timetz:case gi.tsrange:case gi.tstzrange:return bi(t);default:return bi(t)}},bi=e=>e,xi=e=>{switch(e){case`t`:return!0;case`f`:return!1;default:return e}},Si=e=>{if(typeof e==`string`){let t=parseFloat(e);
vendor: 35,284 bytes, lines 10-11
10if(!Number.isNaN(t))return t}return e},Ci=e=>{if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e},wi=(e,t)=>{if(typeof e!=`string`)return e;let n=e.length-1,r=e[n];if(e[0]===`{`&&r===`}`){let r,i=e.slice(1,n);try{r=JSON.parse(`[`+i+`]`)}catch{r=i?i.split(`,`):[]}return r.map(e=>yi(t,e))}return e},Ti=e=>typeof e==`string`?e.replace(` `,`T`):e,Ei=e=>{let t=new URL(e);return t.protocol=t.protocol.replace(/^ws/i,`http`),t.pathname=t.pathname.replace(/\/+$/,``).replace(/\/socket\/websocket$/i,``).replace(/\/socket$/i,``).replace(/\/websocket$/i,``),t.pathname===``||t.pathname===`/`?t.pathname=`/api/broadcast`:t.pathname+=`/api/broadcast`,t.href},Di=e=>typeof e==`function`?e:function(){return e},Oi=typeof self<`u`?self:null,ki=typeof window<`u`?window:null,Ai=Oi||ki||globalThis,ji=`2.0.0`,Mi=1e4,Ni=1e3,Pi=100,Fi={connecting:0,open:1,closing:2,closed:3},Ii={closed:`closed`,errored:`errored`,joined:`joined`,joining:`joining`,leaving:`leaving`},Li={close:`phx_close`,error:`phx_error`,join:`phx_join`,reply:`phx_reply`,leave:`phx_leave`},Ri={longpoll:`longpoll`,websocket:`websocket`},zi={complete:4},Bi=`base64url.bearer.phx.`,Vi=class{constructor(e,t,n,r){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=r,this.timeoutTimer=null,this.recHooks=[],this.sent=!1,this.ref=void 0}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived(`timeout`)||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(e,t){return this.hasReceived(e)&&t(this.receivedResp.response),this.recHooks.push({status:e,callback:t}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}destroy(){this.cancelRefEvent(),this.cancelTimeout()}matchReceive({status:e,response:t,_ref:n}){this.recHooks.filter(t=>t.status===e).forEach(e=>e.callback(t))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)}),this.timeoutTimer=setTimeout(()=>{this.trigger(`timeout`,{})},this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,t){this.channel.trigger(this.refEvent,{status:e,response:t})}},M=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries+=1,this.callback()},this.timerCalc(this.tries+1))}},Hi=class{constructor(e,t,n){this.state=Ii.closed,this.topic=e,this.params=Di(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new Vi(this,Li.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new M(()=>{this.socket.isConnected()&&this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()})),this.joinPush.receive(`ok`,()=>{this.state=Ii.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(e=>e.send()),this.pushBuffer=[]}),this.joinPush.receive(`error`,e=>{this.state=Ii.errored,this.socket.hasLogger()&&this.socket.log(`channel`,`error ${this.topic}`,e),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log(`channel`,`close ${this.topic}`),this.state=Ii.closed,this.socket.remove(this)}),this.onError(e=>{this.socket.hasLogger()&&this.socket.log(`channel`,`error ${this.topic}`,e),this.isJoining()&&this.joinPush.reset(),this.state=Ii.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive(`timeout`,()=>{this.socket.hasLogger()&&this.socket.log(`channel`,`timeout ${this.topic}`,this.joinPush.timeout),new Vi(this,Li.leave,Di({}),this.timeout).send(),this.state=Ii.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on(Li.reply,(e,t)=>{this.trigger(this.replyEventName(t),e)})}join(e=this.timeout){if(this.joinedOnce)throw Error(`tried to join multiple times. 'join' can only be called a single time per channel instance`);return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=Ii.closed,this.bindings=[]}onClose(e){this.on(Li.close,e)}onError(e){return this.on(Li.error,t=>e(t))}on(e,t){let n=this.bindingRef++;return this.bindings.push({event:e,ref:n,callback:t}),n}off(e,t){this.bindings=this.bindings.filter(n=>!(n.event===e&&(t===void 0||t===n.ref)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,n=this.timeout){if(t||={},!this.joinedOnce)throw Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let r=new Vi(this,e,function(){return t},n);return this.canPush()?r.send():(r.startTimeout(),this.pushBuffer.push(r)),r}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=Ii.leaving;let t=()=>{this.socket.hasLogger()&&this.socket.log(`channel`,`leave ${this.topic}`),this.trigger(Li.close,`leave`)},n=new Vi(this,Li.leave,Di({}),e);return n.receive(`ok`,()=>t()).receive(`timeout`,()=>t()),n.send(),this.canPush()||n.trigger(`ok`,{}),n}onMessage(e,t,n){return t}filterBindings(e,t,n){return!0}isMember(e,t,n,r){return this.topic===e?r&&r!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log(`channel`,`dropping outdated message`,{topic:e,event:t,payload:n,joinRef:r}),!1):!0:!1}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=Ii.joining,this.joinPush.resend(e))}trigger(e,t,n,r){let i=this.onMessage(e,t,n,r);if(t&&!i)throw Error(`channel onMessage callbacks must return the payload, modified or unmodified`);let a=this.bindings.filter(r=>r.event===e&&this.filterBindings(r,t,n));for(let e=0;e<a.length;e++)a[e].callback(i,n,r||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===Ii.closed}isErrored(){return this.state===Ii.errored}isJoined(){return this.state===Ii.joined}isJoining(){return this.state===Ii.joining}isLeaving(){return this.state===Ii.leaving}},Ui=class{static request(e,t,n,r,i,a,o){if(Ai.XDomainRequest){let n=new Ai.XDomainRequest;return this.xdomainRequest(n,e,t,r,i,a,o)}else if(Ai.XMLHttpRequest){let s=new Ai.XMLHttpRequest;return this.xhrRequest(s,e,t,n,r,i,a,o)}else if(Ai.fetch&&Ai.AbortController)return this.fetchRequest(e,t,n,r,i,a,o);else throw Error(`No suitable XMLHttpRequest implementation found`)}static fetchRequest(e,t,n,r,i,a,o){let s={method:e,headers:n,body:r},c=null;return i&&(c=new AbortController,setTimeout(()=>c.abort(),i),s.signal=c.signal),Ai.fetch(t,s).then(e=>e.text()).then(e=>this.parseJSON(e)).then(e=>o&&o(e)).catch(e=>{e.name===`AbortError`&&a?a():o&&o(null)}),c}static xdomainRequest(e,t,n,r,i,a,o){return e.timeout=i,e.open(t,n),e.onload=()=>{let t=this.parseJSON(e.responseText);o&&o(t)},a&&(e.ontimeout=a),e.onprogress=()=>{},e.send(r),e}static xhrRequest(e,t,n,r,i,a,o,s){e.open(t,n,!0),e.timeout=a;for(let[t,n]of Object.entries(r))e.setRequestHeader(t,n);return e.onerror=()=>s&&s(null),e.onreadystatechange=()=>{e.readyState===zi.complete&&s&&s(this.parseJSON(e.responseText))},o&&(e.ontimeout=o),e.send(i),e}static parseJSON(e){if(!e||e===``)return null;try{return JSON.parse(e)}catch{return console&&console.log(`failed to parse JSON response`,e),null}}static serialize(e,t){let n=[];for(var r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let i=t?`${t}[${r}]`:r,a=e[r];typeof a==`object`?n.push(this.serialize(a,i)):n.push(encodeURIComponent(i)+`=`+encodeURIComponent(a))}return n.join(`&`)}static appendParams(e,t){return Object.keys(t).length===0?e:`${e}${e.match(/\?/)?`&`:`?`}${this.serialize(t)}`}},Wi=e=>{let t=``,n=new Uint8Array(e),r=n.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(n[e]);return btoa(t)},Gi=class{constructor(e,t){t&&t.length===2&&t[1].startsWith(Bi)&&(this.authToken=atob(t[1].slice(Bi.length))),this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.reqs=new Set,this.awaitingBatchAck=!1,this.currentBatch=null,this.currentBatchTimer=null,this.batchBuffer=[],this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=Fi.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace(`ws://`,`http://`).replace(`wss://`,`https://`).replace(RegExp(`(.*)/`+Ri.websocket),`$1/`+Ri.longpoll)}endpointURL(){return Ui.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,t,n){this.close(e,t,n),this.readyState=Fi.connecting}ontimeout(){this.onerror(`timeout`),this.closeAndRetry(1005,`timeout`,!1)}isActive(){return this.readyState===Fi.open||this.readyState===Fi.connecting}poll(){let e={Accept:`application/json`};this.authToken&&(e[`X-Phoenix-AuthToken`]=this.authToken),this.ajax(`GET`,e,null,()=>this.ontimeout(),e=>{if(e){var{status:t,token:n,messages:r}=e;if(t===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,`session_gone`,!1);return}this.token=n}else t=0;switch(t){case 200:r.forEach(e=>{setTimeout(()=>this.onmessage({data:e}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=Fi.open,this.onopen({}),this.poll();break;case 403:this.onerror(403),this.close(1008,`forbidden`,!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,`internal server error`,500);break;default:throw Error(`unhandled poll status ${t}`)}})}send(e){typeof e!=`string`&&(e=Wi(e)),this.currentBatch?this.currentBatch.push(e):this.awaitingBatchAck?this.batchBuffer.push(e):(this.currentBatch=[e],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0))}batchSend(e,t=0){this.awaitingBatchAck=!0;let n=t+Pi,r=e.slice(t,n);this.ajax(`POST`,{"Content-Type":`application/x-ndjson`},r.join(` 11`),()=>this.onerror(`timeout`),t=>{!t||t.status!==200?(this.awaitingBatchAck=!1,this.onerror(t&&t.status),this.closeAndRetry(1011,`internal server error`,!1)):n<e.length?this.batchSend(e,n):this.batchBuffer.length>0?(this.batchSend(this.batchBuffer),this.batchBuffer=[]):this.awaitingBatchAck=!1})}close(e,t,n){for(let e of this.reqs)e.abort();this.readyState=Fi.closed;let r=Object.assign({code:1e3,reason:void 0,wasClean:!0},{code:e,reason:t,wasClean:n});this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent<`u`?this.onclose(new CloseEvent(`close`,r)):this.onclose(r)}ajax(e,t,n,r,i){let a;a=Ui.request(e,this.endpointURL(),t,n,this.timeout,()=>{this.reqs.delete(a),r()},e=>{this.reqs.delete(a),this.isActive()&&i(e)}),this.reqs.add(a)}},Ki=class e{constructor(t,n={}){let r=n.events||{state:`presence_state`,diff:`presence_diff`};this.state=Object.create(null),this.pendingDiffs=[],this.channel=t,this.joinRef=null,this.caller={onJoin:function(){},onLeave:function(){},onSync:function(){}},this.channel.on(r.state,t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.joinRef=this.channel.joinRef(),this.state=e.syncState(this.state,t,n,r),this.pendingDiffs.forEach(t=>{this.state=e.syncDiff(this.state,t,n,r)}),this.pendingDiffs=[],i()}),this.channel.on(r.diff,t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(t):(this.state=e.syncDiff(this.state,t,n,r),i())})}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}list(t){return e.list(this.state,t)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(e,t,n,r){let i=this.toNullProtoObj(this.clone(e));t=this.toNullProtoObj(t);let a=Object.create(null),o=Object.create(null);return this.map(i,(e,n)=>{t[e]||(o[e]=n)}),this.map(t,(e,t)=>{let n=i[e];if(n){let r=t.metas.map(e=>e.phx_ref),i=n.metas.map(e=>e.phx_ref),s=t.metas.filter(e=>i.indexOf(e.phx_ref)<0),c=n.metas.filter(e=>r.indexOf(e.phx_ref)<0);s.length>0&&(a[e]=t,a[e].metas=s),c.length>0&&(o[e]=this.clone(n),o[e].metas=c)}else a[e]=t}),this.syncDiff(i,{joins:a,leaves:o},n,r)}static syncDiff(e,t,n,r){e=this.toNullProtoObj(e);let{joins:i,leaves:a}=this.clone(t);return n||=function(){},r||=function(){},this.map(i,(t,r)=>{let i=e[t];if(e[t]=this.clone(r),i){let n=e[t].metas.map(e=>e.phx_ref),r=i.metas.filter(e=>n.indexOf(e.phx_ref)<0);e[t].metas.unshift(...r)}n(t,i,r)}),this.map(a,(t,n)=>{let i=e[t];if(!i)return;let a=n.metas.map(e=>e.phx_ref);i.metas=i.metas.filter(e=>a.indexOf(e.phx_ref)<0),r(t,i,n),i.metas.length===0&&delete e[t]}),e}static list(e,t){return t||=function(e,t){return t},this.map(e,(e,n)=>t(e,n))}static map(e,t){return Object.getOwnPropertyNames(e).map(n=>t(n,e[n]))}static toNullProtoObj(e){if(Object.getPrototypeOf(e)===null)return e;let t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(n=>{t[n]=e[n]}),t}static clone(e){return JSON.parse(JSON.stringify(e))}},qi={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,t){if(e.payload.constructor===ArrayBuffer)return t(this.binaryEncode(e));{let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}},decode(e,t){if(e.constructor===ArrayBuffer)return t(this.binaryDecode(e));{let[n,r,i,a,o]=JSON.parse(e);return t({join_ref:n,ref:r,topic:i,event:a,payload:o})}},binaryEncode(e){let{join_ref:t,ref:n,event:r,topic:i,payload:a}=e,o=new TextEncoder,s=o.encode(t),c=o.encode(n),l=o.encode(i),u=o.encode(r);this.assertFieldSize(s.byteLength,`join_ref`),this.assertFieldSize(c.byteLength,`ref`),this.assertFieldSize(l.byteLength,`topic`),this.assertFieldSize(u.byteLength,`event`);let d=this.META_LENGTH+s.byteLength+c.byteLength+l.byteLength+u.byteLength,f=new ArrayBuffer(this.HEADER_LENGTH+d),p=new Uint8Array(f),m=new DataView(f),h=0;m.setUint8(h++,this.KINDS.push),m.setUint8(h++,s.byteLength),m.setUint8(h++,c.byteLength),m.setUint8(h++,l.byteLength),m.setUint8(h++,u.byteLength),p.set(s,h),h+=s.byteLength,p.set(c,h),h+=c.byteLength,p.set(l,h),h+=l.byteLength,p.set(u,h),h+=u.byteLength;var g=new Uint8Array(f.byteLength+a.byteLength);return g.set(p,0),g.set(new Uint8Array(a),f.byteLength),g.buffer},assertFieldSize(e,t){if(e>255)throw Error(`unable to convert ${t} to binary: must be less than or equal to 255 bytes, but is ${e} bytes`)},binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,r);case this.KINDS.reply:return this.decodeReply(e,t,r);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,r)}},decodePush(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=this.HEADER_LENGTH+this.META_LENGTH-1,s=n.decode(e.slice(o,o+r));o+=r;let c=n.decode(e.slice(o,o+i));o+=i;let l=n.decode(e.slice(o,o+a));return o+=a,{join_ref:s,ref:null,topic:c,event:l,payload:e.slice(o,e.byteLength)}},decodeReply(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=t.getUint8(4),s=this.HEADER_LENGTH+this.META_LENGTH,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+i));s+=i;let u=n.decode(e.slice(s,s+a));s+=a;let d=n.decode(e.slice(s,s+o));s+=o;let f={status:d,response:e.slice(s,e.byteLength)};return{join_ref:c,ref:l,topic:u,event:Li.reply,payload:f}},decodeBroadcast(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=this.HEADER_LENGTH+2,o=n.decode(e.slice(a,a+r));a+=r;let s=n.decode(e.slice(a,a+i));return a+=i,{join_ref:null,ref:null,topic:o,event:s,payload:e.slice(a,e.byteLength)}}},Ji=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=t.timeout||Mi,this.transport=t.transport||Ai.WebSocket||Gi,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=t.longPollFallbackMs,this.fallbackTimer=null;let n=null;try{n=Ai&&Ai.sessionStorage}catch{}this.sessionStore=t.sessionStorage||n,this.establishedConnections=0,this.defaultEncoder=qi.encode.bind(qi),this.defaultDecoder=qi.decode.bind(qi),this.closeWasClean=!0,this.disconnecting=!1,this.binaryType=t.binaryType||`arraybuffer`,this.connectClock=1,this.pageHidden=!1,this.encode=void 0,this.decode=void 0,this.transport===Gi?(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder):(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder);let r=null;ki&&ki.addEventListener&&(ki.addEventListener(`pagehide`,e=>{this.conn&&(this.disconnect(),r=this.connectClock)}),ki.addEventListener(`pageshow`,e=>{r===this.connectClock&&(r=null,this.connect())}),ki.addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`?this.pageHidden=!0:(this.pageHidden=!1,!this.isConnected()&&!this.closeWasClean&&this.teardown(()=>this.connect()))})),this.heartbeatIntervalMs=t.heartbeatIntervalMs||3e4,this.autoSendHeartbeat=t.autoSendHeartbeat??!0,this.heartbeatCallback=t.heartbeatCallback??(()=>{}),this.rejoinAfterMs=e=>t.rejoinAfterMs?t.rejoinAfterMs(e):[1e3,2e3,5e3][e-1]||1e4,this.reconnectAfterMs=e=>t.reconnectAfterMs?t.reconnectAfterMs(e):[10,50,100,150,200,250,500,1e3,2e3][e-1]||5e3,this.logger=t.logger||null,!this.logger&&t.debug&&(this.logger=(e,t,n)=>{console.log(`${e}: ${t}`,n)}),this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=Di(t.params||{}),this.endPoint=`${e}/${Ri.websocket}`,this.vsn=t.vsn||ji,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new M(()=>{if(this.pageHidden){this.log(`Not reconnecting as page is hidden!`),this.teardown();return}this.teardown(async()=>{t.beforeReconnect&&await t.beforeReconnect(),this.connect()})},this.reconnectAfterMs),this.authToken=t.authToken&&Di(t.authToken)}getLongPollTransport(){return Gi}replaceTransport(e){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn&&=(this.conn.close(),null),this.transport=e}protocol(){return location.protocol.match(/^https/)?`wss`:`ws`}endPointURL(){let e=Ui.appendParams(Ui.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return e.charAt(0)===`/`?e.charAt(1)===`/`?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`:e}disconnect(e,t,n){this.connectClock++,this.disconnecting=!0,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(()=>{this.disconnecting=!1,e&&e()},t,n)}connect(e){e&&(console&&console.log(`passing params to connect is deprecated. Instead pass :params to the Socket constructor`),this.params=Di(e)),!(this.conn&&!this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==Gi?this.connectWithFallback(Gi,this.longPollFallbackMs):this.transportConnect())}log(e,t,n){this.logger&&this.logger(e,t,n)}hasLogger(){return this.logger!==null}onOpen(e){let t=this.makeRef();return this.stateChangeCallbacks.open.push([t,e]),t}onClose(e){let t=this.makeRef();return this.stateChangeCallbacks.close.push([t,e]),t}onError(e){let t=this.makeRef();return this.stateChangeCallbacks.error.push([t,e]),t}onMessage(e){let t=this.makeRef();return this.stateChangeCallbacks.message.push([t,e]),t}onHeartbeat(e){this.heartbeatCallback=e}ping(e){if(!this.isConnected())return!1;let t=this.makeRef(),n=Date.now();this.push({topic:`phoenix`,event:`heartbeat`,payload:{},ref:t});let r=this.onMessage(i=>{i.ref===t&&(this.off([r]),e(Date.now()-n))});return!0}transportName(e){switch(e){case Gi:return`LongPoll`;default:return e.name}}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=[`phoenix`,`${Bi}${btoa(this.authToken()).replace(/=/g,``)}`]),this.conn=new this.transport(this.endPointURL(),e),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=e=>this.onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this.onConnClose(e)}getSession(e){return this.sessionStore&&this.sessionStore.getItem(e)}storeSession(e,t){this.sessionStore&&this.sessionStore.setItem(e,t)}connectWithFallback(e,t=2500){clearTimeout(this.fallbackTimer);let n=!1,r=!0,i,a=this.transportName(e),o=t=>{this.log(`transport`,`falling back to ${a}...`,t),this.off([void 0,i]),r=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${a}`))return o(`memorized`);this.fallbackTimer=setTimeout(o,t),i=this.onError(e=>{this.log(`transport`,`error`,e),r&&!n&&(clearTimeout(this.fallbackTimer),o(e))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(n=!0,!r){let t=this.transportName(e);return this.primaryPassedHealthCheck||this.storeSession(`phx:fallback:${t}`,`true`),this.log(`transport`,`established ${t} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(o,t),this.ping(e=>{this.log(`transport`,`connected to primary after`,e),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){this.hasLogger()&&this.log(`transport`,`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.disconnecting=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.autoSendHeartbeat&&this.resetHeartbeat(),this.triggerStateCallbacks(`open`)}heartbeatTimeout(){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.hasLogger()&&this.log(`transport`,`heartbeat timeout. Attempting to re-establish connection`);try{this.heartbeatCallback(`timeout`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this.triggerChanError(Error(`heartbeat timeout`)),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),Ni,`heartbeat timeout`)}}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}teardown(e,t,n){if(!this.conn)return e&&e();let r=this.conn;this.waitForBufferDone(r,()=>{t?r.close(t,n||``):r.close(),this.waitForSocketClosed(r,()=>{this.conn===r&&(this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null),e&&e()})})}waitForBufferDone(e,t,n=1){if(n===5||!e.bufferedAmount){t();return}setTimeout(()=>{this.waitForBufferDone(e,t,n+1)},150*n)}waitForSocketClosed(e,t,n=1){if(n===5||e.readyState===Fi.closed){t();return}setTimeout(()=>{this.waitForSocketClosed(e,t,n+1)},150*n)}onConnClose(e){this.conn&&(this.conn.onclose=()=>{}),this.hasLogger()&&this.log(`transport`,`close`,e),this.triggerChanError(e),this.clearHeartbeats(),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.triggerStateCallbacks(`close`,e)}onConnError(e){this.hasLogger()&&this.log(`transport`,`error`,e);let t=this.transport,n=this.establishedConnections;this.triggerStateCallbacks(`error`,e,t,n),(t===this.transport||n>0)&&this.triggerChanError(e)}triggerChanError(e){this.channels.forEach(t=>{t.isErrored()||t.isLeaving()||t.isClosed()||t.trigger(Li.error,e)})}connectionState(){switch(this.conn&&this.conn.readyState){case Fi.connecting:return`connecting`;case Fi.open:return`open`;case Fi.closing:return`closing`;default:return`closed`}}isConnected(){return this.connectionState()===`open`}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter(t=>t!==e)}off(e){for(let t in this.stateChangeCallbacks)this.stateChangeCallbacks[t]=this.stateChangeCallbacks[t].filter(([t])=>e.indexOf(t)===-1)}channel(e,t={}){let n=new Hi(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:r,ref:i,join_ref:a}=e;this.log(`push`,`${t} ${n} (${a}, ${i})`,r)}this.isConnected()?this.encode(e,e=>this.conn.send(e)):this.sendBuffer.push(()=>this.encode(e,e=>this.conn.send(e)))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){if(!this.isConnected()){try{this.heartbeatCallback(`disconnected`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}return}if(this.pendingHeartbeatRef){this.heartbeatTimeout();return}this.pendingHeartbeatRef=this.makeRef(),this.heartbeatSentAt=Date.now(),this.push({topic:`phoenix`,event:`heartbeat`,payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback(`sent`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,e=>{let{topic:t,event:n,payload:r,ref:i,join_ref:a}=e;if(i&&i===this.pendingHeartbeatRef){let e=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(r.status===`ok`?`ok`:`error`,e)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.autoSendHeartbeat&&(this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}this.hasLogger()&&this.log(`receive`,`${r.status||``} ${t} ${n} ${i&&`(`+i+`)`||``}`.trim(),r);for(let e=0;e<this.channels.length;e++){let o=this.channels[e];o.isMember(t,n,r,a)&&o.trigger(n,r,i,a)}this.triggerStateCallbacks(`message`,e)})}triggerStateCallbacks(e,...t){try{this.stateChangeCallbacks[e].forEach(([n,r])=>{try{r(...t)}catch(t){this.log(`error`,`error in ${e} callback`,t)}})}catch(t){this.log(`error`,`error triggering ${e} callbacks`,t)}}leaveOpenTopic(e){let t=this.channels.find(t=>t.topic===e&&(t.isJoined()||t.isJoining()));t&&(this.hasLogger()&&this.log(`transport`,`leaving duplicate topic "${e}"`),t.leave())}},Yi=class e{constructor(t,n){let r=Qi(n);this.presence=new Ki(t.getChannel(),r),this.presence.onJoin((n,r,i)=>{let a=e.onJoinPayload(n,r,i);t.getChannel().trigger(`presence`,a)}),this.presence.onLeave((n,r,i)=>{let a=e.onLeavePayload(n,r,i);t.getChannel().trigger(`presence`,a)}),this.presence.onSync(()=>{t.getChannel().trigger(`presence`,{event:`sync`})})}get state(){return e.transformState(this.presence.state)}static transformState(e){return e=Zi(e),Object.getOwnPropertyNames(e).reduce((t,n)=>{let r=e[n];return t[n]=Xi(r),t},{})}static onJoinPayload(e,t,n){return{event:`join`,key:e,currentPresences:$i(t),newPresences:Xi(n)}}static onLeavePayload(e,t,n){return{event:`leave`,key:e,currentPresences:$i(t),leftPresences:Xi(n)}}};function Xi(e){return e.metas.map(e=>(e.presence_ref=e.phx_ref,delete e.phx_ref,delete e.phx_ref_prev,e))}function Zi(e){return JSON.parse(JSON.stringify(e))}function Qi(e){return e?.events&&{events:e.events}}function $i(e){return e?.metas?Xi(e):[]}var ea;(function(e){e.SYNC=`sync`,e.JOIN=`join`,e.LEAVE=`leave`})(ea||={});var ta=class{get state(){return this.presenceAdapter.state}constructor(e,t){this.channel=e,this.presenceAdapter=new Yi(this.channel.channelAdapter,t)}};function na(e){if(e instanceof Error)return e;if(typeof e==`string`)return Error(e);if(e&&typeof e==`object`){let t=e;if(typeof t.code==`number`){let n=typeof t.reason==`string`&&t.reason?` (${t.reason})`:``;return Error(`socket closed: ${t.code}${n}`,{cause:e})}return Error(`channel error: transport failure`,{cause:e})}return Error(`channel error: connection lost`)}var ra=class{constructor(e,t,n){let r=ia(n);this.channel=e.getSocket().channel(t,r),this.socket=e}get state(){return this.channel.state}set state(e){this.channel.state=e}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(e,t){return this.channel.on(e,t)}off(e,t){this.channel.off(e,t)}subscribe(e){return this.channel.join(e)}unsubscribe(e){return this.channel.leave(e)}teardown(){this.channel.teardown()}onClose(e){this.channel.onClose(e)}onError(e){return this.channel.onError(e)}push(e,t,n){let r;try{r=this.channel.push(e,t,n)}catch{throw Error(`tried to push '${e}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>100){let e=this.channel.pushBuffer.shift();e.cancelTimeout(),this.socket.log(`channel`,`discarded push due to buffer overflow: ${e.event}`,e.payload())}return r}updateJoinPayload(e){let t=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},t),e)}canPush(){return this.socket.isConnected()&&this.state===fi.joined}isJoined(){return this.state===fi.joined}isJoining(){return this.state===fi.joining}isClosed(){return this.state===fi.closed}isLeaving(){return this.state===fi.leaving}updateFilterBindings(e){this.channel.filterBindings=e}updatePayloadTransform(e){this.channel.onMessage=e}getChannel(){return this.channel}};function ia(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:``,enabled:!1},private:!1},e.config)}}var aa=/[,()"\\]/,oa=e=>aa.test(e)||e!==e.trim(),sa=e=>`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`,ca=e=>{let t=e===null?`null`:String(e);return oa(t)?sa(t):t},la=e=>e===null?`null`:String(e),ua=(e,t)=>{if(e===`in`){let e=Array.isArray(t)?t:[t];if(e.length===0)throw Error("Realtime `in` filter requires at least one value.");return`in.(${Array.from(new Set(e)).map(e=>ca(e)).join(`,`)})`}return e===`is`?`is.${la(t)}`:`${e}.${ca(t)}`},da=class{constructor(){this.filters=[]}add(e,t,n,r=!1){let i=r?`not.`:``;return this.filters.push(`${e}=${i}${ua(t,n)}`),this}eq(e,t){return this.add(e,`eq`,t)}neq(e,t){return this.add(e,`neq`,t)}gt(e,t){return this.add(e,`gt`,t)}gte(e,t){return this.add(e,`gte`,t)}lt(e,t){return this.add(e,`lt`,t)}lte(e,t){return this.add(e,`lte`,t)}in(e,t){return this.add(e,`in`,t)}like(e,t){return this.add(e,`like`,t)}ilike(e,t){return this.add(e,`ilike`,t)}match(e,t){return this.add(e,`match`,t)}imatch(e,t){return this.add(e,`imatch`,t)}is(e,t){return this.add(e,`is`,t)}isDistinct(e,t){return this.add(e,`isdistinct`,t)}not(e,t,n){return this.add(e,t,n,!0)}build(){return this.filters.join(`,`)}toString(){return this.build()}},fa;(function(e){e.ALL=`*`,e.INSERT=`INSERT`,e.UPDATE=`UPDATE`,e.DELETE=`DELETE`})(fa||={});var pa;(function(e){e.BROADCAST=`broadcast`,e.PRESENCE=`presence`,e.POSTGRES_CHANGES=`postgres_changes`,e.SYSTEM=`system`})(pa||={});var ma;(function(e){e.SUBSCRIBED=`SUBSCRIBED`,e.TIMED_OUT=`TIMED_OUT`,e.CLOSED=`CLOSED`,e.CHANNEL_ERROR=`CHANNEL_ERROR`})(ma||={});var ha=class e{get state(){return this.channelAdapter.state}set state(e){this.channelAdapter.state=e}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(e,t={config:{}},n){if(this.topic=e,this.params=t,this.socket=n,this.bindings={},this.subTopic=e.replace(/^realtime:/i,``),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:``,enabled:!1},private:!1},t.config),this.channelAdapter=new ra(this.socket.socketAdapter,e,this.params),this.presence=new ta(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=Ei(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&this.params.config?.broadcast?.replay)throw Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(e,t=this.timeout){if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){let{config:{broadcast:n,presence:r,private:i}}=this.params,a=this.bindings.postgres_changes?.map(e=>e.filter)??[],o=!!this.bindings[pa.PRESENCE]&&this.bindings[pa.PRESENCE].length>0||this.params.config.presence?.enabled===!0,s={},c={broadcast:n,presence:Object.assign(Object.assign({},r),{enabled:o}),postgres_changes:a,private:i};this.socket.accessTokenValue&&(s.access_token=this.socket.accessTokenValue),this._onError(t=>{e?.(ma.CHANNEL_ERROR,na(t))}),this._onClose(()=>e?.(ma.CLOSED)),this.updateJoinPayload(Object.assign({config:c},s)),this._updateFilterMessage(),this.channelAdapter.subscribe(t).receive(`ok`,async({postgres_changes:t})=>{if(this.socket._isManualToken()||this.socket.setAuth(),t===void 0){e?.(ma.SUBSCRIBED);return}this._updatePostgresBindings(t,e)}).receive(`error`,t=>{this.state=fi.errored;let n=Object.values(t).join(`, `)||`error`;e?.(ma.CHANNEL_ERROR,Error(n,{cause:t}))}).receive(`timeout`,()=>{e?.(ma.TIMED_OUT)})}return this}_updatePostgresBindings(t,n){let r=this.bindings.postgres_changes,i=r?.length??0,a=[];for(let o=0;o<i;o++){let i=r[o],{filter:{event:s,schema:c,table:l,filter:u}}=i,d=t&&t[o];if(d&&d.event===s&&e.isFilterValueEqual(d.schema,c)&&e.isFilterValueEqual(d.table,l)&&e.isFilterValueEqual(d.filter,u))a.push(Object.assign(Object.assign({},i),{id:d.id}));else{this.unsubscribe(),this.state=fi.errored,n?.(ma.CHANNEL_ERROR,Error(`mismatch between server and client bindings for postgres changes`));return}}this.bindings.postgres_changes=a,this.state!=fi.errored&&n&&n(ma.SUBSCRIBED)}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:`presence`,event:`track`,payload:e},t)}async untrack(e={}){return await this.send({type:`presence`,event:`untrack`},e)}on(e,t,n){let r=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),i=e===pa.PRESENCE||e===pa.POSTGRES_CHANGES;if(r&&i)throw this.socket.log(`channel`,`cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`),Error(`cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`);return this._on(e,t,n)}async httpSend(e,t,n={}){if(t==null)return Promise.reject(Error(`Payload is required for httpSend()`));let r=t instanceof ArrayBuffer||ArrayBuffer.isView(t),i={apikey:this.socket.apiKey?this.socket.apiKey:``,"Content-Type":r?`application/octet-stream`:`application/json`};this.socket.accessTokenValue&&(i.Authorization=`Bearer ${this.socket.accessTokenValue}`);let a=new URL(this.broadcastEndpointURL);a.pathname+=`/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(e)}`,this.private&&a.searchParams.set(`private`,`true`);let o={method:`POST`,headers:i,body:r?t:JSON.stringify(t)},s=await this._fetchWithTimeout(a.toString(),o,n.timeout??this.timeout);if(s.status===202)return{success:!0};if(s.status===404)return Promise.reject(Error(`httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. See https://github.com/supabase/supabase-js/blob/master/packages/core/realt
11ime-js/migrations/httpsend-server-version.md`));let c=s.statusText;try{let e=await s.json();c=e.error||e.message||c}catch{}return Promise.reject(Error(c))}async send(e,t={}){if(!this.channelAdapter.canPush()&&e.type===`broadcast`){console.warn(`Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.`);let{event:n,payload:r}=e,i={apikey:this.socket.apiKey?this.socket.apiKey:``,"Content-Type":`application/json`};this.socket.accessTokenValue&&(i.Authorization=`Bearer ${this.socket.accessTokenValue}`);let a={method:`POST`,headers:i,body:JSON.stringify({messages:[{topic:this.subTopic,event:n,payload:r,private:this.private}]})};try{let e=await this._fetchWithTimeout(this.broadcastEndpointURL,a,t.timeout??this.timeout);return await e.body?.cancel(),e.ok?`ok`:`error`}catch(e){return e instanceof Error&&e.name===`AbortError`?`timed out`:`error`}}else return new Promise(n=>{let r=this.channelAdapter.push(e.type,e,t.timeout||this.timeout);e.type===`broadcast`&&!this.params?.config?.broadcast?.ack&&n(`ok`),r.receive(`ok`,()=>n(`ok`)),r.receive(`error`,()=>n(`error`)),r.receive(`timeout`,()=>n(`timed out`))})}updateJoinPayload(e){this.channelAdapter.updateJoinPayload(e)}async unsubscribe(e=this.timeout){return new Promise(t=>{this.channelAdapter.unsubscribe(e).receive(`ok`,()=>t(`ok`)).receive(`timeout`,()=>t(`timed out`)).receive(`error`,()=>t(`error`))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(e,t,n){let r=new AbortController,i=setTimeout(()=>r.abort(),n),a=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:r.signal}));return clearTimeout(i),a}_on(e,t,n){let r=e.toLocaleLowerCase(),i=t?.filter;(i instanceof da||typeof i==`object`&&i&&typeof i.build==`function`)&&(t=Object.assign(Object.assign({},t),{filter:i.build()}));let a=this.channelAdapter.on(e,n),o={type:r,filter:t,callback:n,ref:a};return this.bindings[r]?this.bindings[r].push(o):this.bindings[r]=[o],this._updateFilterMessage(),this}_onClose(e){this.channelAdapter.onClose(e)}_onError(e){this.channelAdapter.onError(e)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((e,t,n)=>{let r=e.event.toLocaleLowerCase();if(this._notThisChannelEvent(r,n))return!1;let i=this.bindings[r]?.find(t=>t.ref===e.ref);if(!i)return!0;if([`broadcast`,`presence`,`postgres_changes`].includes(r))if(`id`in i){let e=i.id,n=i.filter?.event;return e&&t.ids?.includes(e)&&(n===`*`||n?.toLocaleLowerCase()===t.data?.type.toLocaleLowerCase())}else{let e=(i?.filter?.event)?.toLocaleLowerCase();return e===`*`||e===(t?.event)?.toLocaleLowerCase()}else return i.type.toLocaleLowerCase()===r})}_notThisChannelEvent(e,t){let{close:n,error:r,leave:i,join:a}=pi;return t&&[n,r,i,a].includes(e)&&t!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((e,t,n)=>{if(typeof t==`object`&&`ids`in t){let e=t.data,{schema:n,table:r,commit_timestamp:i,type:a,errors:o}=e;return Object.assign(Object.assign({},{schema:n,table:r,commit_timestamp:i,eventType:a,new:{},old:{},errors:o}),this._getPayloadRecords(e))}return t})}copyBindings(e){if(this.joinedOnce)throw Error(`cannot copy bindings into joined channel`);for(let t in e.bindings)for(let n of e.bindings[t])this._on(n.type,n.filter,n.callback)}static isFilterValueEqual(e,t){return(e??void 0)===(t??void 0)}_getPayloadRecords(e){let t={new:{},old:{}};return(e.type===`INSERT`||e.type===`UPDATE`)&&(t.new=_i(e.columns,e.record)),(e.type===`UPDATE`||e.type===`DELETE`)&&(t.old=_i(e.columns,e.old_record)),t}},ga=class{constructor(e,t){this.socket=new Ji(e,t)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(e){this.socket.heartbeatCallback=e}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(e,t,n,r=1e4){return new Promise(i=>{setTimeout(()=>i(`timeout`),r),this.socket.disconnect(()=>{e(),i(`ok`)},t,n)})}push(e){this.socket.push(e)}log(e,t,n){this.socket.log(e,t,n)}makeRef(){return this.socket.makeRef()}onOpen(e){this.socket.onOpen(e)}onClose(e){this.socket.onClose(e)}onError(e){this.socket.onError(e)}onMessage(e){this.socket.onMessage(e)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==mi.connecting}isDisconnecting(){return this.socket.connectionState()==mi.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}},_a={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},va=[1e3,2e3,5e3,1e4],ya=1e4;function ba(){let e=new Map;return{get length(){return e.size},clear(){e.clear()},getItem(t){return e.has(t)?e.get(t):null},key(t){return Array.from(e.keys())[t]??null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,String(n))}}}function xa(){try{if(typeof globalThis<`u`&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return ba()}var Sa=` 12 addEventListener("message", (e) => { 13 if (e.data.event === "start") { 14 setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval); 15 } 16 });`,Ca=class{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(e,t){if(this.channels=[],this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint=``,this.headers={},this.params={}
16,this.ref=0,this.serializer=new hi,this._manuallySetToken=!1,this._authPromise=null,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),!t?.params?.apikey)throw Error(`API key is required to connect to Realtime`);this.apiKey=t.params.apikey;let n=this._initializeOptions(t);this.socketAdapter=new ga(e,n),this.httpEndpoint=Ei(e),this.fetch=this._resolveFetch(t?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely(`connect`),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(e){let t=e.message;throw Error(`WebSocket not available: ${t}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(e,t){return this._cancelPendingDisconnect(),this.isDisconnecting()?`ok`:await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},e,t)}getChannels(){return this.channels}async removeChannel(e){let t=await e.unsubscribe();return t===`ok`&&e.teardown(),t}async removeAllChannels(){let e=this.channels.map(async e=>{let t=await e.unsubscribe();return e.teardown(),t}),t=await Promise.all(e);return await this.disconnect(),t}log(e,t,n){this.socketAdapter.log(e,t,n)}connectionState(){return this.socketAdapter.connectionState()||mi.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(e,t={config:{}}){let n=`realtime:${e}`,r=this.getChannels().find(e=>e.topic===n);if(r)return r;{let n=new ha(`realtime:${e}`,t,this);return this._cancelPendingDisconnect(),this.channels.push(n),n}}push(e){this.socketAdapter.push(e)}async setAuth(e=null){this._authPromise=this._performAuth(e);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(e){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(e)}_makeRef(){return this.socketAdapter.makeRef()}_remove(e){this.channels=this.channels.filter(t=>t.topic!==e.topic),this.channels.length===0&&(this.log(`transport`,`no channels remaining, scheduling disconnect`),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){if(this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0){this.log(`transport`,`disconnecting immediately - no channels`),this.disconnect();return}
16this._pendingDisconnectTimer=setTimeout(()=>{this._pendingDisconnectTimer=null,this.channels.length===0&&(this.log(`transport`,`deferred disconnect fired - no channels, disconnecting`),this.disconnect())},this._disconnectOnEmptyChannelsAfterMs),this.log(`transport`,`deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`)}_cancelPendingDisconnect(){this._pendingDisconnectTimer!==null&&(this.log(`transport`,`pending disconnect cancelled - channel activity detected`),clearTimeout(this._pendingDisconnectTimer),this._pendingDisconnectTimer=null)}async _performAuth(e=null){let t,n=!1;if(e)t=e,n=!0;else if(this.accessToken)try{t=await this.accessToken()}catch(e){this.log(`error`,`Error fetching access token from callback`,e),t=this.accessTokenValue}else t=this.accessTokenValue;n?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=t&&(this.accessTokenValue=t,this.channels.forEach(e=>{let n={access_token:t,version:si};t&&e.updateJoinPayload(n),e.joinedOnce&&e.channelAdapter.isJoined()&&e.channelAdapter.push(pi.access_token,{access_token:t})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(e=`general`){this._isManualToken()||this.setAuth().catch(t=>{this.log(`error`,`Error setting auth in ${e}`,t)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(e=>{this.log(`error`,`error waiting for auth on connect`,e)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(e=>{e.ref&&e.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(e){return(t,n)=>{t!==`disconnected`&&(t==`sent`&&this._setAuthSafely(),e&&e(t,n))}}_startWorkerHeartbeat(){this.workerUrl?this.log(`worker`,`starting worker for from ${this.workerUrl}`):this.log(`worker`,`starting default worker`);let e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=e=>{this.log(`worker`,`worker error`,e.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=e=>{e.data.event===`keepAlive`&&this.sendHeartbeat()},this.workerRef.postMessage({event:`start`,interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&=(this.log(`worker`,`terminating worker`),this.workerRef.terminate(),void 0)}_workerObjectUrl(e){let t;if(e)t=e;else{let e=new Blob([Sa],{type:`application/javascript`});t=URL.createObjectURL(e)}return t}_initializeOptions(e){this.worker=e?.worker??!1,this.accessToken=e?.accessToken??null;let t={};t.timeout=e?.timeout??di,t.heartbeatIntervalMs=e?.heartbeatIntervalMs??_a.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=e?.disconnectOnEmptyChannelsAfterMs??2*(e?.heartbeatIntervalMs??_a.HEARTBEAT_INTERVAL),t.transport=e?.transport??oi.getWebSocketConstructor(),t.params=e?.params,t.logger=e?.logger,t.heartbeatCallback=this._wrapHeartbeatCallback(e?.heartbeatCallback),t.sessionStorage=e?.sessionStorage??xa(),t.reconnectAfterMs=e?.reconnectAfterMs??(e=>va[e-1]||ya);let n,r,i=e?.vsn??ui;switch(i){case ci:n=(e,t)=>t(JSON.stringify(e)),r=(e,t)=>t(JSON.parse(e));break;case li:n=this.serializer.encode.bind(this.serializer),r=this.serializer.decode.bind(this.serializer);break;default:throw Error(`Unsupported serializer version: ${t.vsn}`)}if(t.vsn=i,t.encode=e?.encode??n,t.decode=e?.decode??r,t.beforeReconnect=this._reconnectAuth.bind(this),(e?.logLevel||e?.log_level)&&(this.logLevel=e.logLevel||e.log_level,t.params=Object.assign(Object.assign({},t.params),{log_level:this.logLevel})),this.worker){if(typeof window<`u`&&!window.Worker)throw Error(`Web Worker is not supported`);this.workerUrl=e?.workerUrl,t.autoSendHeartbeat=!this.worker}return t}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}
vendor: 4,836 bytes, line 16
16,wa=class extends Error{constructor(e,t){super(e),this.name=`IcebergError`,this.status=t.status,this.icebergType=t.icebergType,this.icebergCode=t.icebergCode,this.details=t.details,this.isCommitStateUnknown=t.icebergType===`CommitStateUnknownException`||[500,502,504].includes(t.status)&&t.icebergType?.includes(`CommitState`)===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function Ta(e,t,n){let r=new URL(t,e);if(n)for(let[e,t]of Object.entries(n))t!==void 0&&r.searchParams.set(e,t);return r.toString()}async function Ea(e){return!e||e.type===`none`?{}:e.type===`bearer`?{Authorization:`Bearer ${e.token}`}:e.type===`header`?{[e.name]:e.value}:e.type===`custom`?await e.getHeaders():{}}function Da(e){let t=e.fetchImpl??globalThis.fetch;return{async request({method:n,path:r,query:i,body:a,headers:o}){let s=Ta(e.baseUrl,r,i),c=await Ea(e.auth),l=await t(s,{method:n,headers:{...a?{"Content-Type":`application/json`}:{},...c,...o},body:a?JSON.stringify(a):void 0}),u=await l.text(),d=(l.headers.get(`content-type`)||``).includes(`application/json`),f=d&&u?JSON.parse(u):u;if(!l.ok){let e=d?f:void 0,t=e?.error;throw new wa(t?.message??`Request failed with status ${l.status}`,{status:l.status,icebergType:t?.type,icebergCode:t?.code,details:e})}return{status:l.status,headers:l.headers,data:f}}}}function Oa(e){return e.join(`�`)}var ka=class{constructor(e,t=``){this.client=e,this.prefix=t}async listNamespaces(e){let t=e?{parent:Oa(e.namespace)}:void 0;return(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(e=>({namespace:e}))}async createNamespace(e,t){let n={namespace:e.namespace,properties:t?.properties};return(await this.client.request({method:`POST`,path:`${this.prefix}/namespaces`,body:n})).data}async dropNamespace(e){await this.client.request({method:`DELETE`,path:`${this.prefix}/namespaces/${Oa(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${Oa(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:`HEAD`,path:`${this.prefix}/namespaces/${Oa(e.namespace)}`}),!0}catch(e){if(e instanceof wa&&e.status===404)return!1;throw e}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(e){if(e instanceof wa&&e.status===409)return;throw e}}};function Aa(e){return e.join(`�`)}var ja=class{constructor(e,t=``,n){this.client=e,this.prefix=t,this.accessDelegation=n}async listTables(e){return(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${Aa(e.namespace)}/tables`})).data.identifiers}async createTable(e,t){let n={};return this.accessDelegation&&(n[`X-Iceberg-Access-Delegation`]=this.accessDelegation),(await this.client.request({method:`POST`,path:`${this.prefix}/namespaces/${Aa(e.namespace)}/tables`,body:t,headers:n})).data.metadata}async updateTable(e,t){let n=await this.client.request({method:`POST`,path:`${this.prefix}/namespaces/${Aa(e.namespace)}/tables/${e.name}`,body:t});return{"metadata-location":n.data[`metadata-location`],metadata:n.data.metadata}}async dropTable(e,t){await this.client.request({method:`DELETE`,path:`${this.prefix}/namespaces/${Aa(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String(t?.purge??!1)}})}async loadTable(e){let t={};return this.accessDelegation&&(t[`X-Iceberg-Access-Delegation`]=this.accessDelegation),(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${Aa(e.namespace)}/tables/${e.name}`,headers:t})).data.metadata}async tableExists(e){let t={};this.accessDelegation&&(t[`X-Iceberg-Access-Delegation`]=this.accessDelegation);try{return await this.client.request({method:`HEAD`,path:`${this.prefix}/namespaces/${Aa(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(e){if(e instanceof wa&&e.status===404)return!1;throw e}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(n){if(n instanceof wa&&n.status===409)return await this.loadTable({namespace:e.namespace,name:t.name});throw n}}},Ma=class{constructor(e){let t=`v1`;e.catalogName&&(t+=`/${e.catalogName}`);let n=e.baseUrl.endsWith(`/`)?e.baseUrl:`${e.baseUrl}/`;this.client=Da({baseUrl:n,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=e.accessDelegation?.join(`,`),this.namespaceOps=new ka(this.client,t),this.tableOps=new ja(this.client,t,this.accessDelegation)}async listNamespaces(e){return this.namespaceOps.listNamespaces(e)}async createNamespace(e,t){return this.namespaceOps.createNamespace(e,t)}async dropNamespace(e){await this.namespaceOps.dropNamespace(e)}async loadNamespaceMetadata(e){return this.namespaceOps.loadNamespaceMetadata(e)}async listTables(e){return this.tableOps.listTables(e)}
16async createTable(e,t){return this.tableOps.createTable(e,t)}async updateTable(e,t){return this.tableOps.updateTable(e,t)}async dropTable(e,t){await this.tableOps.dropTable(e,t)}async loadTable(e){return this.tableOps.loadTable(e)}async namespaceExists(e){return this.namespaceOps.namespaceExists(e)}async tableExists(e){return this.tableOps.tableExists(e)}async createNamespaceIfNotExists(e,t){return this.namespaceOps.createNamespaceIfNotExists(e,t)}async createTableIfNotExists(e,t){return this.tableOps.createTableIfNotExists(e,t)}};function Na(e){"@babel/helpers - typeof";return Na=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Na(e)}function Pa(e,t){if(Na(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Na(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Fa(e){var t=Pa(e,`string`);return Na(t)==`symbol`?t:t+``}function Ia(e,t,n){return(t=Fa(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function La(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?La(Object(n),!0).forEach(function(t){Ia(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):La(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Ra=class extends Error{constructor(e,t=`storage`,n,r){super(e),this.__isStorageError=!0,this.namespace=t,this.name=t===`vectors`?`StorageVectorsError`:`StorageError`,this.status=n,this.statusCode=r}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function za(e){return typeof e==`object`&&!!e&&`__isStorageError`in e}var Ba=class extends Ra{constructor(e,t,n,r=`storage`){super(e,r,t,n),this.name=r===`vectors`?`StorageVectorsApiError`:`StorageApiError`,this.status=t,this.statusCode=n}toJSON(){return N({},super.toJSON())}},Va=class extends Ra{constructor(e,t,n=`storage`){super(e,n),this.name=n===`vectors`?`StorageVectorsUnknownError`:`StorageUnknownError`,this.originalError=t}};function Ha(e,t,n){let r=N({},e),i=t.toLowerCase();for(let e of Object.keys(r))e.toLowerCase()===i&&delete r[e];return r[i]=n,r}function Ua(e){let t={};for(let[n,r]of Object.entries(e))t[n.toLowerCase()]=r;return t}var Wa=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),Ga=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Ka=e=>{if(Array.isArray(e))return e.map(e=>Ka(e));if(typeof e==`function`||e!==Object(e))return e;let t={};return Object.entries(e).forEach(([e,n])=>{let r=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace(/[-_]/g,``));t[r]=Ka(n)}),t},qa=e=>!e||typeof e!=`string`||e.length===0||e.length>100||e.trim()!==e||e.includes(`/`)||e.includes(`\\`)?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),Ja=e=>e.split(`/`).map(encodeURIComponent).join(`/`),Ya=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.msg==`string`)return t.msg;if(typeof t.message==`string`)return t.message;if(typeof t.error_description==`string`)return t.error_description;if(typeof t.error==`string`)return t.error;if(typeof t.error==`object`&&t.error!==null){let e=t.error;if(typeof e.message==`string`)return e.message}}return JSON.stringify(e)},Xa=async(e,t,n,r)=>{if(typeof e==`object`&&e&&`json`in e&&typeof e.json==`function`){let n=e,i=parseInt(String(n.status),10);Number.isFinite(i)||(i=500),n.json().then(e=>{let n=e?.statusCode||e?.code||i+``;t(new Ba(Ya(e),i,n,r))}).catch(()=>{let e=i+``;t(new Ba(n.statusText||`HTTP ${i} error`,i,e,r))})}else t(new Va(Ya(e),e,r))},Za=(e,t,n,r)=>{let i={method:e,headers:t?.headers||{}};if(e===`GET`||e===`HEAD`||!r)return N(N({},i),n);if(Ga(r)){let e=t?.headers||{},n;for(let[t,r]of Object.entries(e))t.toLowerCase()===`content-type`&&(n=r);i.headers=Ha(e,`Content-Type`,n??`application/json`),i.body=JSON.stringify(r)}else i.body=r;return t?.duplex&&(i.duplex=t.duplex),N(N({},i),n)};async function Qa(e,t,n,r,i,a,o){return new Promise((s,c)=>{e(n,Za(t,r,i,a)).then(e=>{if(!e.ok)throw e;if(r?.noResolveJson)return e;if(o===`vectors`){let t=e.headers.get(`content-type`);if(e.headers.get(`content-length`)===`0`||e.status===204||!t||!t.includes(`application/json`))return{}}return e.json()}).then(e=>s(e)).catch(e=>Xa(e,c,r,o))})}function $a(e=`storage`){return{get:async(t,n,r,i)=>Qa(t,`GET`,n,r,i,void 0,e),post:async(t,n,r,i,a)=>Qa(t,`POST`,n,i,a,r,e),put:async(t,n,r,i,a)=>Qa(t,`PUT`,n,i,a,r,e),head:async(t,n,r,i)=>Qa(t,`HEAD`,n,N(N({},r),{},{noResolveJson:!0}),i,void 0,e),remove:async(t,n,r,i,a)=>Qa(t,`DELETE`,n,i,a,r,e)}}var{get:eo,post:to,put:no,head:ro,remove:io}=$a(`storage`),ao=$a(`vectors`),oo=class{constructor(e,t={},n,r=`storage`){this.shouldThrowOnError=!1,this.url=e,this.headers=Ua(t),this.fetch=Wa(n),this.namespace=r}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=Ha(this.headers,e,t),this}async handleOperation(e){var t=this;try{return{data:await e(),error:null}}catch(e){if(t.shouldThrowOnError)throw e;if(za(e))return{data:null,error:e};throw e}}},so=Symbol.toStringTag,co=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[so]=`StreamDownloadBuilder`,this.promise=null}
16then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||=this.execute(),this.promise}async execute(){var e=this;try{return{data:(await e.downloadFn()).body,error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(za(t))return{data:null,error:t};throw t}}},lo=Symbol.toStringTag,uo=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[lo]=`BlobDownloadBuilder`,this.promise=null}asStream(){return new co(this.downloadFn,this.shouldThrowOnError)}then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||=this.execute(),this.promise}async execute(){var e=this;try{return{data:await(await e.downloadFn()).blob(),error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(za(t))return{data:null,error:t};throw t}}},fo={limit:100,offset:0,sortBy:{column:`name`,order:`asc`}},po={cacheControl:`3600`,contentType:`text/plain;charset=UTF-8`,upsert:!1},mo=class extends oo{constructor(e,t={},n,r){super(e,t,r,`storage`),this.bucketId=n}async uploadOrUpdate(e,t,n,r){var i=this;return i.handleOperation(async()=>{let a,o=N(N({},po),r),s=N(N({},i.headers),e===`POST`&&{"x-upsert":String(o.upsert)}),c=o.metadata;if(typeof Blob<`u`&&n instanceof Blob?(a=new FormData,a.append(`cacheControl`,o.cacheControl),c&&a.append(`metadata`,i.encodeMetadata(c)),a.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(a=n,a.has(`cacheControl`)||a.append(`cacheControl`,o.cacheControl),c&&!a.has(`metadata`)&&a.append(`metadata`,i.encodeMetadata(c))):(a=n,s[`cache-control`]=`max-age=${o.cacheControl}`,s[`content-type`]=o.contentType,c&&(s[`x-metadata`]=i.toBase64(i.encodeMetadata(c))),(typeof ReadableStream<`u`&&a instanceof ReadableStream||a&&typeof a==`object`&&`pipe`in a&&typeof a.pipe==`function`)&&!o.duplex&&(o.duplex=`half`)),r?.headers)for(let[e,t]of Object.entries(r.headers))s=Ha(s,e,t);let l=i._removeEmptyFolders(t),u=i._getFinalPath(l),d=await(e==`PUT`?no:to)(i.fetch,`${i.url}/object/${u}`,a,N({headers:s},o?.duplex?{duplex:o.duplex}:{}));return{path:l,id:d.Id,fullPath:d.Key}})}async upload(e,t,n){return this.uploadOrUpdate(`POST`,e,t,n)}async uploadToSignedUrl(e,t,n,r){var i=this;let a=i._removeEmptyFolders(e),o=i._getFinalPath(a),s=new URL(i.url+`/object/upload/sign/${o}`);return s.searchParams.set(`token`,t),i.handleOperation(async()=>{let e,t=N(N({},po),r),o=N(N({},i.headers),{"x-upsert":String(t.upsert)}),c=t.metadata;if(typeof Blob<`u`&&n instanceof Blob?(e=new FormData,e.append(`cacheControl`,t.cacheControl),c&&e.append(`metadata`,i.encodeMetadata(c)),e.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(e=n,e.has(`cacheControl`)||e.append(`cacheControl`,t.cacheControl),c&&!e.has(`metadata`)&&e.append(`metadata`,i.encodeMetadata(c))):(e=n,o[`cache-control`]=`max-age=${t.cacheControl}`,o[`content-type`]=t.contentType,c&&(o[`x-metadata`]=i.toBase64(i.encodeMetadata(c))),(typeof ReadableStream<`u`&&e instanceof ReadableStream||e&&typeof e==`object`&&`pipe`in e&&typeof e.pipe==`function`)&&!t.duplex&&(t.duplex=`half`)),r?.headers)for(let[e,t]of Object.entries(r.headers))o=Ha(o,e,t);return{path:a,fullPath:(await no(i.fetch,s.toString(),e,N({headers:o},t?.duplex?{duplex:t.duplex}:{}))).Key}})}async createSignedUploadUrl(e,t){var n=this;return n.handleOperation(async()=>{let r=n._getFinalPath(e),i=N({},n.headers);t?.upsert&&(i[`x-upsert`]=`true`);let a=await to(n.fetch,`${n.url}/object/upload/sign/${r}`,{},{headers:i}),o=new URL(n.url+a.url),s=o.searchParams.get(`token`);if(!s)throw new Ra(`No token returned by API`);return{signedUrl:o.toString(),path:e,token:s}})}async update(e,t,n){return this.uploadOrUpdate(`PUT`,e,t,n)}async move(e,t,n){var r=this;return r.handleOperation(async()=>await to(r.fetch,`${r.url}/object/move`,{bucketId:r.bucketId,sourceKey:e,destinationKey:t,de
16stinationBucket:n?.destinationBucket},{headers:r.headers}))}async copy(e,t,n){var r=this;return r.handleOperation(async()=>({path:(await to(r.fetch,`${r.url}/object/copy`,{bucketId:r.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:r.headers})).Key}))}async createSignedUrl(e,t,n){var r=this;return r.handleOperation(async()=>{let i=r._getFinalPath(e),a=typeof n?.transform==`object`&&n.transform!==null&&Object.keys(n.transform).length>0,o=await to(r.fetch,`${r.url}/object/sign/${i}`,N({expiresIn:t},a?{transform:n.transform}:{}),{headers:r.headers}),s=new URLSearchParams;n?.download&&s.set(`download`,n.download===!0?``:n.download),n?.cacheNonce!=null&&s.set(`cacheNonce`,String(n.cacheNonce));let c=s.toString();return{signedUrl:encodeURI(`${r.url}${o.signedURL}${c?`&${c}`:``}`)}})}async createSignedUrls(e,t,n){var r=this;return r.handleOperation(async()=>{let i=await to(r.fetch,`${r.url}/object/sign/${r.bucketId}`,{expiresIn:t,paths:e},{headers:r.headers}),a=new URLSearchParams;n?.download&&a.set(`download`,n.download===!0?``:n.download),n?.cacheNonce!=null&&a.set(`cacheNonce`,String(n.cacheNonce));let o=a.toString();return i.map(e=>N(N({},e),{},{signedUrl:e.signedURL?encodeURI(`${r.url}${e.signedURL}${o?`&${o}`:``}`):null}))})}download(e,t,n){let r=typeof t?.transform==`object`&&t.transform!==null&&Object.keys(t.transform).length>0?`render/image/authenticated`:`object`,i=new URLSearchParams;t?.transform&&this.applyTransformOptsToQuery(i,t.transform),t?.cacheNonce!=null&&i.set(`cacheNonce`,String(t.cacheNonce));let a=i.toString(),o=this._getFinalPath(e);return new uo(()=>eo(this.fetch,`${this.url}/${r}/${o}${a?`?${a}`:``}`,{headers:this.headers,noResolveJson:!0},n),this.shouldThrowOnError)}async info(e){var t=this;let n=t._getFinalPath(e);return t.handleOperation(async()=>Ka(await eo(t.fetch,`${t.url}/object/info/${n}`,{headers:t.headers})))}async exists(e){var t=this;let n=t._getFinalPath(e);try{return await ro(t.fetch,`${t.url}/object/${n}`,{headers:t.headers}),{data:!0,error:null}}catch(e){if(t.shouldThrowOnError)throw e;if(za(e)){let t=e instanceof Ba?e.status:e instanceof Va?e.originalError?.status:void 0;if(t!==void 0&&[400,404].includes(t))return{data:!1,error:e}}throw e}}getPublicUrl(e,t){let n=this._getFinalPath(e),r=new URLSearchParams;t?.download&&r.set(`download`,t.download===!0?``:t.download),t?.transform&&this.applyTransformOptsToQuery(r,t.transform),t?.cacheNonce!=null&&r.set(`cacheNonce`,String(t.cacheNonce));let i=r.toString(),a=typeof t?.transform==`object`&&t.transform!==null&&Object.keys(t.transform).length>0?`render/image`:`object`;return{data:{publicUrl:encodeURI(`${this.url}/${a}/public/${n}`)+(i?`?${i}`:``)}}}async remove(e){var t=this;return t.handleOperation(async()=>await io(t.fetch,`${t.url}/object/${t.bucketId}`,{prefixes:e},{headers:t.headers}))}async purgeCache(e,t,n){var r=this;return r.handleOperation(async()=>{let i=Ja(r._getFinalPath(e)),a=new URLSearchParams;t?.transformations&&a.set(`transformations`,`true`);let o=a.toString();return await io(r.fetch,`${r.url}/cdn/${i}${o?`?${o}`:``}`,{},{headers:r.headers},n)})}async list(e,t,n){var r=this;return r.handleOperation(async()=>{let i=t?.sortBy?N(N({},fo.sortBy),t.sortBy):fo.sortBy,a=N(N(N({},fo),t),{},{sortBy:i,prefix:e||``});return await to(r.fetch,`${r.url}/object/list/${r.bucketId}`,a,{headers:r.headers},n)})}async listV2(e,t){var n=this;return n.handleOperation(async()=>{let r=N({},e);return await to(n.fetch,`${n.url}/object/list-v2/${n.bucketId}`,r,{headers:n.headers},t)})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<`u`?Buffer.from(e).toString(`base64`):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,``)}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,``).replace(/\/+/g,`/`)}applyTransformOptsToQuery(e,t){return t.width&&e.set(`width`,t.width.toString()),t.height&&e.set(`height`,t.height.toString()),t.resize&&e.set(`resize`,t.resize),t.format&&e.set(`format`,t.format),t.quality&&e.set(`quality`,t.quality.toString()),e}},ho={"X-Client-Info":`storage-js/2.110.8`},go=class extends oo{constructor(e,t={},n,r){let i=new URL(e);r?.useNewHostname&&/supabase\.(co|in|red)$/.test(i.hostname)&&!i.hostname.includes(`storage.supabase.`)&&(i.hostname=i.hostname.replace(`supabase.`,`storage.supabase.`));let a=i.href.replace(/\/$/,``),o=N(N({},ho),t);super(a,o,n,`storage`)}async listBuckets(e){var t=this;return t.handleOperation(async()=>{let n=t.listBucketOptionsToQueryString(e);return await eo(t.fetch,`${t.url}/bucket${n}`,{headers:t.headers})})}async getBucket(e){var t=this;return t.handleOperation(async()=>await eo(t.fetch,`${t.url}/bucket/${e}`,{headers:t.headers}))}async createBucket(e,t={public:!1}){var n=this;return n.handleOperation(async()=>await to(n.fetch,`${n.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async updateBucket(e,t){var n=this;return n.handleOperation(async()=>await no(n.fetch,`${n.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async emptyBucket(e){var t=this;return t.handleOperation(async()=>await to(t.fetch,`${t.url}/bucket/${e}/empty`,{},{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await io(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}async purgeBucketCache(e,t,n){var r=this;return r.handleOperation(async()=>{let i=new URLSearchParams;t?.transformations&&i.set(`transformations`,`true`);let a=i.toString();return await io(r.fetch,`${r.url}/cdn/${Ja(e)}${a?`?${a}`:``}`,{},{headers:r.headers},n)})}listBucketOptionsToQueryString(e){let t={};return e&&(`limit`in e&&(t.limit=String(e.limit)),`offset`in e&&(t.offset=String(e.offset)),e.search&&(t.search=e.search),e.sortColumn&&(t.sortColumn=e.sortColumn),e.sortOrder&&(t.sortOrder=e.sortOrder)),Object.keys(t).length>
160?`?`+new URLSearchParams(t).toString():``}},_o=class extends oo{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=N(N({},ho),t);super(r,i,n,`storage`)}async createBucket(e){var t=this;return t.handleOperation(async()=>await to(t.fetch,`${t.url}/bucket`,{name:e},{headers:t.headers}))}async listBuckets(e){var t=this;return t.handleOperation(async()=>{let n=new URLSearchParams;e?.limit!==void 0&&n.set(`limit`,e.limit.toString()),e?.offset!==void 0&&n.set(`offset`,e.offset.toString()),e?.sortColumn&&n.set(`sortColumn`,e.sortColumn),e?.sortOrder&&n.set(`sortOrder`,e.sortOrder),e?.search&&n.set(`search`,e.search);let r=n.toString(),i=r?`${t.url}/bucket?${r}`:`${t.url}/bucket`;return await eo(t.fetch,i,{headers:t.headers})})}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await io(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}from(e){var t=this;if(!qa(e))throw new Ra(`Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.`);let n=new Ma({baseUrl:this.url,catalogName:e,auth:{type:`custom`,getHeaders:async()=>t.headers},fetch:this.fetch}),r=this.shouldThrowOnError;return new Proxy(n,{get(e,t){let n=e[t];return typeof n==`function`?async(...t)=>{try{return{data:await n.apply(e,t),error:null}}catch(e){if(r)throw e;return{data:null,error:e}}}:n}})}},vo=class extends oo{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=N(N({},ho),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async createIndex(e){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/CreateIndex`,e,{headers:t.headers})||{})}async getIndex(e,t){var n=this;return n.handleOperation(async()=>await ao.post(n.fetch,`${n.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers}))}async listIndexes(e){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/ListIndexes`,e,{headers:t.headers}))}async deleteIndex(e,t){var n=this;return n.handleOperation(async()=>await ao.post(n.fetch,`${n.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers})||{})}},yo=class extends oo{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=N(N({},ho),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async putVectors(e){var t=this;if(e.vectors.length<1||e.vectors.length>500)throw Error(`Vector batch size must be between 1 and 500 items`);return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/PutVectors`,e,{headers:t.headers})||{})}async getVectors(e){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/GetVectors`,e,{headers:t.headers}))}async listVectors(e){var t=this;if(e.segmentCount!==void 0){if(e.segmentCount<1||e.segmentCount>16)throw Error(`segmentCount must be between 1 and 16`);if(e.segmentIndex!==void 0&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw Error(`segmentIndex must be between 0 and ${e.segmentCount-1}`)}return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/ListVectors`,e,{headers:t.headers}))}async queryVectors(e){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/QueryVectors`,e,{headers:t.headers}))}async deleteVectors(e){var t=this;if(e.keys.length<1||e.keys.length>500)throw Error(`Keys batch size must be between 1 and 500 items`);return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/DeleteVectors`,e,{headers:t.headers})||{})}},P=class extends oo{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=N(N({},ho),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async createBucket(e){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}async getBucket(e){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/GetVectorBucket`,{vectorBucketName:e},{headers:t.headers}))}async listBuckets(e={}){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/ListVectorBuckets`,e,{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await ao.post(t.fetch,`${t.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}},bo=class extends P{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new xo(this.url,this.headers,e,this.fetch)}async createBucket(e){var t=()=>super.createBucket,n=this;return t().call(n,e)}async getBucket(e){var t=()=>super.getBucket,n=this;return t().call(n,e)}async listBuckets(e={}){var t=()=>super.listBuckets,n=this;return t().call(n,e)}async deleteBucket(e){var t=()=>super.deleteBucket,n=this;return t().call(n,e)}},xo=class extends vo{constructor(e,t,n,r){super(e,t,r),this.vectorBucketName=n}async createIndex(e){var t=()=>super.createIndex,n=this;return t().call(n,N(N({},e),{},{vectorBucketName:n.vectorBucketName}))}
16async listIndexes(e={}){var t=()=>super.listIndexes,n=this;return t().call(n,N(N({},e),{},{vectorBucketName:n.vectorBucketName}))}async getIndex(e){var t=()=>super.getIndex,n=this;return t().call(n,n.vectorBucketName,e)}async deleteIndex(e){var t=()=>super.deleteIndex,n=this;return t().call(n,n.vectorBucketName,e)}index(e){return new So(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},So=class extends yo{constructor(e,t,n,r,i){super(e,t,i),this.vectorBucketName=n,this.indexName=r}async putVectors(e){var t=()=>super.putVectors,n=this;return t().call(n,N(N({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async getVectors(e){var t=()=>super.getVectors,n=this;return t().call(n,N(N({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async listVectors(e={}){var t=()=>super.listVectors,n=this;return t().call(n,N(N({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async queryVectors(e){var t=()=>super.queryVectors,n=this;return t().call(n,N(N({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async deleteVectors(e){var t=()=>super.deleteVectors,n=this;return t().call(n,N(N({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}},Co=class extends go{constructor(e,t={},n,r){super(e,t,n,r)}from(e){return new mo(this.url,this.headers,e,this.fetch)}get vectors(){return new bo(this.url+`/vector`,{headers:this.headers,fetch:this.fetch})}get analytics(){return new _o(this.url+`/iceberg`,this.headers,this.fetch)}},wo=`2.110.8`,To=30*1e3,Eo=3*To,Do=2*To,Oo=`http://localhost:9999`,ko=`supabase.auth.token`,Ao={"X-Client-Info":`gotrue-js/${wo}`},jo=`X-Supabase-Api-Version`,Mo={"2024-01-01":{timestamp:Date.parse(`2024-01-01T00:00:00.0Z`),name:`2024-01-01`}},No=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,Po=class extends Error{constructor(e,t,n){super(e),this.__isAuthError=!0,this.name=`AuthError`,this.status=t,this.code=n}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}};function F(e){return typeof e==`object`&&!!e&&`__isAuthError`in e}var Fo=class extends Po{constructor(e,t,n){super(e,t,n),this.name=`AuthApiError`,this.status=t,this.code=n}};function Io(e){return F(e)&&e.name===`AuthApiError`}var Lo=class extends Po{constructor(e,t){super(e),this.name=`AuthUnknownError`,this.originalError=t}},Ro=class extends Po{constructor(e,t,n,r){super(e,n,r),this.name=t,this.status=n}},zo=class extends Ro{constructor(){super(`Auth session missing!`,`AuthSessionMissingError`,400,void 0)}};function Bo(e){return F(e)&&e.name===`AuthSessionMissingError`}var Vo=class extends Ro{constructor(){super(`Auth session or user missing`,`AuthInvalidToken
16ResponseError`,500,void 0)}},Ho=class extends Ro{constructor(e){super(e,`AuthInvalidCredentialsError`,400,void 0)}},Uo=class extends Ro{constructor(e,t=null){super(e,`AuthImplicitGrantRedirectError`,500,void 0),this.details=null,this.details=t}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}};function Wo(e){return F(e)&&e.name===`AuthImplicitGrantRedirectError`}var Go=class extends Ro{constructor(e,t=null){super(e,`AuthPKCEGrantCodeExchangeError`,500,void 0),this.details=null,this.details=t}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}},Ko=class extends Ro{constructor(){super(`PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.`,`AuthPKCECodeVerifierMissingError`,400,`pkce_code_verifier_not_found`)}},qo=class extends Ro{constructor(e,t){super(e,`AuthRetryableFetchError`,t,void 0)}};function Jo(e){return F(e)&&e.name===`AuthRetryableFetchError`}var Yo=class extends Ro{constructor(e=`Refresh result discarded: session state changed mid-flight (e.g., concurrent signOut)`){super(e,`AuthRefreshDiscardedError`,409,void 0)}};function Xo(e){return F(e)&&e.name===`AuthRefreshDiscardedError`}var Zo=class extends Ro{constructor(e,t,n){super(e,`AuthWeakPasswordError`,t,`weak_password`),this.reasons=n}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}},Qo=class extends Ro{constructor(e){super(e,`AuthInvalidJwtError`,400,`invalid_jwt`)}},$o=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`.split(``),es=` 17\r=`.split(``),ts=(()=>{let e=Array(128);for(let t=0;t<e.length;t+=1)e[t]=-1;for(let t=0;t<es.length;t+=1)e[es[t].charCodeAt(0)]=-2;for(let t=0;t<$o.length;t+=1)e[$o[t].charCodeAt(0)]=t;return e})();function ns(e,t,n){if(e!==null)for(t.queue=t.queue<<8|e,t.queuedBits+=8;t.queuedBits>=6;)n($o[t.queue>>t.queuedBits-6&63]),t.queuedBits-=6;else if(t.queuedBits>0)for(t.queue<<=6-t.queuedBits,t.queuedBits=6;t.queuedBits>=6;)n($o[t.queue>>t.queuedBits-6&63]),t.queuedBits-=6}function rs(e,t,n){let r=ts[e];if(r>-1)for(t.queue=t.queue<<6|r,t.queuedBits+=6;t.queuedBits>=8;)n(t.queue>>t.queuedBits-8&255),t.queuedBits-=8;else if(r===-2)return;else throw Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}function is(e){let t=[],n=e=>{t.push(String.fromCodePoint(e))},r={utf8seq:0,codepoint:0},i={queue:0,queuedBits:0},a=e=>{ss(e,r,n)};for(let t=0;t<e.length;t+=1)rs(e.charCodeAt(t),i,a);return t.join(``)}function as(e,t){if(e<=127){t(e);return}else if(e<=2047){t(192|e>>6),t(128|e&63);return}else if(e<=65535){t(224|e>>12),t(128|e>>6&63),t(128|e&63);return}else if(e<=1114111){t(240|e>>18),t(128|e>>12&63),t(128|e>>6&63),t(128|e&63);return}throw Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function os(e,t){for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);if(r>55295&&r<=56319){let t=(r-55296)*1024&65535;r=(e.charCodeAt(n+1)-56320&65535|t)+65536,n+=1}as(r,t)}}function ss(e,t,n){if(t.utf8seq===0){if(e<=127){n(e);return}for(let n=1;n<6;n+=1)if(!(e>>7-n&1)){t.utf8seq=n;break}if(t.utf8seq===2)t.codepoint=e&31;else if(t.utf8seq===3)t.codepoint=e&15;else if(t.utf8seq===4)t.codepoint=e&7;else throw Error(`Invalid UTF-8 sequence`);--t.utf8seq}else if(t.utf8seq>0){if(e<=127)throw Error(`Invalid UTF-8 sequence`);t.codepoint=t.codepoint<<6|e&63,--t.utf8seq,t.utf8seq===0&&n(t.codepoint)}}function cs(e){let t=[],n={queue:0,queuedBits:0},r=e=>{t.push(e)};for(let t=0;t<e.length;t+=1)rs(e.charCodeAt(t),n,r);return new Uint8Array(t)}function ls(e){let t=[];return os(e,e=>t.push(e)),new Uint8Array(t)}function us(e){let t=[],n={queue:0,queuedBits:0},r=e=>{t.push(e)};return e.forEach(e=>ns(e,n,r)),ns(null,n,r),t.join(``)}function ds(e){return Math.round(Date.now()/1e3)+e}function fs(){return Symbol(`auth-callback`)}var ps=()=>typeof window<`u`&&typeof document<`u`,ms={tested:!1,writable:!1},hs=()=>
17{if(!ps())return!1;try{if(typeof globalThis.localStorage!=`object`)return!1}catch{return!1}if(ms.tested)return ms.writable;let e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),ms.tested=!0,ms.writable=!0}catch{ms.tested=!0,ms.writable=!1}return ms.writable};function gs(e){let t={},n=new URL(e);if(n.hash&&n.hash[0]===`#`)try{new URLSearchParams(n.hash.substring(1)).forEach((e,n)=>{t[n]=e})}catch{}return n.searchParams.forEach((e,n)=>{t[n]=e}),t}var _s=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),vs=e=>typeof e==`object`&&!!e&&`status`in e&&`ok`in e&&`json`in e&&typeof e.json==`function`,ys=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},bs=async(e,t)=>{let n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return null}},xs=async(e,t)=>{await e.removeItem(t)},Ss=class e{constructor(){this.promise=new e.promiseConstructor((e,t)=>{this.resolve=e,this.reject=t})}};Ss.promiseConstructor=Promise;function Cs(e){let t=e.split(`.`);if(t.length!==3)throw new Qo(`Invalid JWT structure`);for(let e=0;e<t.length;e++)if(!No.test(t[e]))throw new Qo(`JWT not in base64url format`);return{header:JSON.parse(is(t[0])),payload:JSON.parse(is(t[1])),signature:cs(t[2]),raw:{header:t[0],payload:t[1]}}}async function ws(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function Ts(e,t){return new Promise((n,r)=>{(async()=>{for(let i=0;i<1/0;i++)try{let r=await e(i);if(!t(i,null,r)){n(r);return}}catch(e){if(!t(i,e)){r(e);return}}})()})}function Es(e){return(`0`+e.toString(16)).substr(-2)}function Ds(){let e=new Uint32Array(56);if(typeof crypto>`u`){let e=``;for(let t=0;t<56;t++)e+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~`.charAt(Math.floor(Math.random()*66));return e}return crypto.getRandomValues(e),Array.from(e,Es).join(``)}async function Os(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t),r=new Uint8Array(n);return Array.from(r).map(e=>String.fromCharCode(e)).join(``)}async function ks(e){if(!(typeof crypto<`u`&&crypto.subtle!==void 0&&typeof TextEncoder<`u`))return console.warn(`WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.`),e;let t=await Os(e);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function As(e,t,n=!1){let r=Ds(),i=r;n&&(i+=`/recovery`),await ys(e,`${t}-code-verifier`,i);let a=await ks(r);return[a,r===a?`plain`:`s256`]}var js=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function Ms(e){let t=e.headers.get(jo);if(!t||!t.match(js))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}function Ns(e){if(!e)throw Error(`Missing exp claim`);if(e<=Math.floor(Date.now()/1e3))throw Error(`JWT has expired`)}function Ps(e){switch(e){case`RS256`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-256`}};case`ES256`:return{name:`ECDSA`,namedCurve:`P-256`,hash:{name:`SHA-256`}};default:throw Error(`Invalid alg claim`)}}var Fs=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function Is(e){if(!Fs.test(e))throw Error(`@supabase/auth-js: Expected parameter to be UUID but is not`)}function Ls(e){if(!e.passkey)throw Error("@supabase/auth-js: the passkey API is experimental and disabled by default. Enable it by passing `auth: { experimental: { passkey: true } }` to createClient (or to the GoTrueClient constructor).")}function Rs(){return new Proxy({},{get:(e,t)=>{if(t===`__isUserNotAvailableProxy`)return!0;if(typeof t==`symbol`){let e=t.toString();if(e===`Symbol(Symbol.toPrimitive)`||e===`Symbol(Symbol.toStringTag)`||e===`Symbol(util.inspect.custom)`)return}throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${t}" property of the session object is not supported. Please use getUser() instead.`)},set:(e,t)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${t}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(e,t)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${t}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function zs(e,t){return new Proxy(e,{get:(e,n,r)=>{if(n===`__isInsecureUserWarningProxy`)return!0;
17if(typeof n==`symbol`){let t=n.toString();if(t===`Symbol(Symbol.toPrimitive)`||t===`Symbol(Symbol.toStringTag)`||t===`Symbol(util.inspect.custom)`||t===`Symbol(nodejs.util.inspect.custom)`)return Reflect.get(e,n,r)}return!t.value&&typeof n==`string`&&(console.warn(`Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.`),t.value=!0),Reflect.get(e,n,r)}})}function Bs(e){return JSON.parse(JSON.stringify(e))}var Vs=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.msg==`string`)return t.msg;if(typeof t.message==`string`)return t.message;if(typeof t.error_description==`string`)return t.error_description;if(typeof t.error==`string`)return t.error}return JSON.stringify(e)},Hs=[500,501,502,503,504,520,521,522,523,524,525,526,527,528,529,530];async function Us(e){if(!vs(e))throw new qo(Vs(e),0);if(Hs.includes(e.status))throw new qo(Vs(e),e.status);let t;try{t=await e.json()}catch(e){throw new Lo(Vs(e),e)}let n,r=Ms(e);if(r&&r.getTime()>=Mo[`2024-01-01`].timestamp&&typeof t==`object`&&t&&typeof t.code==`string`?n=t.code:typeof t==`object`&&t&&typeof t.error_code==`string`&&(n=t.error_code),!n){if(typeof t==`object`&&t&&typeof t.weak_password==`object`&&t.weak_password&&Array.isArray(t.weak_password.reasons)&&t.weak_password.reasons.length&&t.weak_password.reasons.reduce((e,t)=>e&&typeof t==`string`,!0))throw new Zo(Vs(t),e.status,t.weak_password.reasons)}else if(n===`weak_password`)throw new Zo(Vs(t),e.status,t.weak_password?.reasons||[]);else if(n===`session_not_found`)throw new zo;throw new Fo(Vs(t),e.status||500,n)}var Ws=(e,t,n,r)=>{let i={method:e,headers:t?.headers||{}};return e===`GET`?i:(i.headers=Object.assign({"Content-Type":`application/json;charset=UTF-8`},t?.headers),i.body=JSON.stringify(r),Object.assign(Object.assign({},i),n))};async function I(e,t,n,r){let i=Object.assign({},r?.headers);i[`X-Supabase-Api-Version`]||(i[jo]=Mo[`2024-01-01`].name),r?.jwt&&(i.Authorization=`Bearer ${r.jwt}`);let a=r?.query??{};r?.redirectTo&&(a.redirect_to=r.redirectTo);let o=await Gs(e,t,n+(Object.keys(a).length?`?`+new URLSearchParams(a).toString():``),{headers:i,noResolveJson:r?.noResolveJson},{},r?.body);return r?.xform?r?.xform(o):{data:Object.assign({},o),error:null}}async function Gs(e,t,n,r,i,a){let o=Ws(t,r,i,a),s;try{s=await e(n,Object.assign({},o))}catch(e){throw new qo(Vs(e),0)}if(s.ok||await Us(s),r?.noResolveJson)return s;try{return await s.json()}catch(e){await Us(e)}}function Ks(e){let t=null;Qs(e)&&(t=Object.assign({},e),e.expires_at||(t.expires_at=ds(e.expires_in)));let n=e.user??(typeof e?.id==`string`?e:null);return{data:{session:t,user:n},error:null}}function qs(e){let t=Ks(e);return!t.error&&e.weak_password&&typeof e.weak_password==`object`&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message==`string`&&e.weak_password.reasons.reduce((e,t)=>e&&typeof t==`string`,!0)&&(t.data.weak_password=e.weak_password),t}function Js(e){return{data:{user:e.user??e},error:null}}function Ys(e){return{data:e,error:null}}function Xs(e){let{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a}=e,o=jr(e,[`action_link`,`email_otp`,`hashed_token`,`redirect_to`,`verification_type`]);return{data:{properties:{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a},user:Object.assign({},o)},error:null}}function Zs(e){return e}function Qs(e){return!!e.access_token&&!!e.refresh_token&&!!e.expires_in}var $s=[`global`,`local`,`others`],ec=class{constructor({url:e=``,headers:t={},fetch:n,experimental:r}){this.url=e,this.headers=t,this.fetch=_s(n),this.experimental=r??{},this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)},this.customProviders={listProviders:this._listCustomProviders.bind(this),createProvider:this._createCustomProvider.bind(this),getProvider:this._getCustomProvider.bind(this),updateProvider:this._updateCustomProvider.bind(this),deleteProvider:this._deleteCustomProvider.bind(this)},this.passkey={listPasskeys:this._adminListPasskeys.bind(this),deletePasskey:this._adminDeletePasskey.bind(this)}}
17async signOut(e,t=$s[0]){if($s.indexOf(t)<0)throw Error(`@supabase/auth-js: Parameter scope must be one of ${$s.join(`, `)}`);try{return await I(this.fetch,`POST`,`${this.url}/logout?scope=${t}`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(e){if(F(e))return{data:null,error:e};throw e}}async inviteUserByEmail(e,t={}){try{return await I(this.fetch,`POST`,`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:Js})}catch(e){if(F(e))return{data:{user:null},error:e};throw e}}async generateLink(e){try{let{options:t}=e,n=jr(e,[`options`]),r=Object.assign(Object.assign({},n),t);return`newEmail`in n&&(r.new_email=n?.newEmail,delete r.newEmail),await I(this.fetch,`POST`,`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:Xs,redirectTo:t?.redirectTo})}catch(e){if(F(e))return{data:{properties:null,user:null},error:e};throw e}}async createUser(e){try{return await I(this.fetch,`POST`,`${this.url}/admin/users`,{body:e,headers:this.headers,xform:Js})}catch(e){if(F(e))return{data:{user:null},error:e};throw e}}async listUsers(e){try{let t={nextPage:null,lastPage:0,total:0},n=await I(this.fetch,`GET`,`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(e?.page)?.toString()??``,per_page:(e?.perPage)?.toString()??``},xform:Zs});if(n.error)throw n.error;let r=await n.json(),i=n.headers.get(`x-total-count`)??0,a=n.headers.get(`link`)?.split(`,`)??[];return a.length>0&&(a.forEach(e=>{let n=parseInt(e.split(`;`)[0].split(`=`)[1].substring(0,1)),r=JSON.parse(e.split(`;`)[1].split(`=`)[1]);t[`${r}Page`]=n}),t.total=parseInt(i)),{data:Object.assign(Object.assign({},r),t),error:null}}catch(e){if(F(e))return{data:{users:[]},error:e};throw e}}async getUserById(e){Is(e);try{return await I(this.fetch,`GET`,`${this.url}/admin/users/${e}`,{headers:this.headers,xform:Js})}catch(e){if(F(e))return{data:{user:null},error:e};throw e}}async updateUserById(e,t){Is(e);try{return await I(this.fetch,`PUT`,`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:Js})}catch(e){if(F(e))return{data:{user:null},error:e};throw e}}async deleteUser(e,t=!1){Is(e);try{return await I(this.fetch,`DELETE`,`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:Js})}catch(e){if(F(e))return{data:{user:null},error:e};throw e}}async _listFactors(e){Is(e.userId);try{let{data:t,error:n}=await I(this.fetch,`GET`,`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:e=>({data:{factors:e},error:null})});return{data:t,error:n}}catch(e){if(F(e))return{data:null,error:e};throw e}}async _deleteFactor(e){Is(e.userId),Is(e.id);try{return{data:await I(this.fetch,`DELETE`,`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers}),error:null}}catch(e){if(F(e))return{data:null,error:e};throw e}}async _listOAuthClients(e){try{let t={nextPage:null,lastPage:0,total:0},n=await I(this.fetch,`GET`,`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(e?.page)?.toString()??``,per_page:(e?.perPage)?.toString()??``},xform:Zs});if(n.error)throw n.error;let r=await n.json(),i=n.headers.get(`x-total-count`)??0,a=n.headers.get(`link`)?.split(`,`)??[];return a.length>0&&(a.forEach(e=>{let n=parseInt(e.split(`;`)[0].split(`=`)[1].substring(0,1)),r=JSON.parse(e.split(`;`)[1].split(`=`)[1]);t[`${r}Page`]=n}),t.total=parseInt(i)),{data:Object.assign(Object.assign({},r),t),error:null}}catch(e){if(F(e))return{data:{clients:[]},error:e};throw e}}async _createOAuthClient(e){try{return await I(this.fetch,`POST`,`${this.url}/admin/oauth/clients`,{body:e,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _getOAuthClient(e){try{return await I(this.fetch,`GET`,`${this.url}/admin/oauth/clients/${e}`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _updateOAuthClient(e,t){try{return await I(this.fetch,`PUT`,`${this.url}/admin/oauth/clients/${e}`,{body:t,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _deleteOAuthClient(e){try{return await I(this.fetch,`DELETE`,`${this.url}/admin/oauth/clients/${e}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(e){if(F(e))return{data:null,error:e};throw e}}async _regenerateOAuthClientSecret(e){try{return await I(this.fetch,`POST`,`${this.url}/admin/oauth/clients/${e}/regenerate_secret`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _listCustomProviders(e){try{let t={};return e?.type&&(t.type=e.type),await I(this.fetch,`GET`,`${this.url}/admin/custom-providers`,{headers:this.headers,query:t,xform:e=>({data:{providers:e?.providers??[]},error:null})})}catch(e){if(F(e))return{data:{providers:[]},error:e};throw e}}async _createCustomProvider(e){try{return await I(this.fetch,`POST`,`${this.url}/admin/custom-providers`,{body:e,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _getCustomProvider(e){try{return await I(this.fetch,`GET`,`${this.url}/admin/custom-providers/${e}`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _updateCustomProvider(e,t){try{return await I(this.fetch,`PUT`,`${this.url}/admin/custom-providers/${e}`,{body:t,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _deleteCustomProvider(e){try{return await I(this.fetch,`DELETE`,`${this.url}/admin/custom-providers/${e}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(e){if(F(e))return{data:null,error:e};throw e}}async _adminListPasskeys(e){Ls(this.experimental),Is(e.userId);try{return await I(this.fetch,`GET`,`${this.url}/admin/users/${e.userId}/passkeys`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(F(e))return{data:null,error:e};throw e}}async _adminDeletePasskey(e){Ls(this.experimental),Is(e.userId),Is(e.passkeyId);try{return await I(this.fetch,`DELETE`,`${this.url}/admin/users/${e.userId}/passkeys/${e.passkeyId}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(e){if(F(e))return{data:null,error:e};throw e}}};function tc(e={}){return{getItem:t=>
17e[t]||null,setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]}}}globalThis&&hs()&&globalThis.localStorage&&globalThis.localStorage.getItem(`supabase.gotrue-js.locks.debug`);var nc=class extends Error{constructor(e){super(e),this.isAcquireTimeout=!0}};function rc(){if(typeof globalThis!=`object`)try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<`u`&&(self.globalThis=self)}}function ic(e){if(!/^0x[a-fA-F0-9]{40}$/.test(e))throw Error(`@supabase/auth-js: Address "${e}" is invalid.`);return e.toLowerCase()}function ac(e){return parseInt(e,16)}function oc(e){let t=new TextEncoder().encode(e);return`0x`+Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}function sc(e){let{chainId:t,domain:n,expirationTime:r,issuedAt:i=new Date,nonce:a,notBefore:o,requestId:s,resources:c,scheme:l,uri:u,version:d}=e;if(!Number.isInteger(t))throw Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${t}`);if(!n)throw Error(`@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.`);if(a&&a.length<8)throw Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${a}`);if(!u)throw Error(`@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.`);if(d!==`1`)throw Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${d}`);if(e.statement?.includes(` 18`))throw Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${e.statement}`);let f=ic(e.address),p=`${l?`${l}://${n}`:n} wants you to sign in with your Ethereum account:\n${f}\n\n${e.statement?`${e.statement}\n`:``}`,m=`URI: ${u}\nVersion: ${d}\nChain ID: ${t}${a?`\nNonce: ${a}`:``}\nIssued At: ${i.toISOString()}`;if(r&&(m+=`\nExpiration Time: ${r.toISOString()}`),o&&(m+=`\nNot Before: ${o.toISOString()}`),s&&(m+=`\nRequest ID: ${s}`),c){let e=` 19Resources:`;for(let t of c){if(!t||typeof t!=`string`)throw Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${t}`);e+=`\n- ${t}`}m+=e}return`${p}\n${m}`}var cc=class extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),this.__isWebAuthnError=!0,this.name=r??(n instanceof Error?n.name:void 0)??`Unknown Error`,this.code=t}toJSON(){return{name:this.name,message:this.message,code:this.code}}},lc=class extends cc{constructor(e,t){super({code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:t,message:e}),this.name=`WebAuthnUnknownError`,this.originalError=t}};function uc({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new cc({message:`Registration ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`ConstraintError`){if(n.authenticatorSelection?.requireResidentKey===!0)return new cc({message:`Discoverable credentials were required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`,cause:e});if(t.mediation===`conditional`&&n.authenticatorSelection?.userVerification===`required`)return new cc({message:`User verification was required during automatic registration but it could not be performed`,code:`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`,cause:e});if(n.authenticatorSelection?.userVerification===`required`)return new cc({message:`User verification was required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`,cause:e})}else if(e.name===`InvalidStateError`)return new cc({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new cc({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`NotSupportedError`)return n.pubKeyCredParams.filter(e=>e.type===`public-key`).length===0?new cc({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new cc({message:`No available authenticator supported any of the specified pubKeyCredParams algorithms`,code:`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`,cause:e});else if(e.name===`SecurityError`){let t=window.location.hostname;if(!_c(t))return new cc({message:`${window.location.hostname}
19 is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new cc({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`TypeError`){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new cc({message:`User ID was not between 1 and 64 characters`,code:`ERROR_INVALID_USER_ID_LENGTH`,cause:e})}else if(e.name===`UnknownError`)return new cc({message:`The authenticator was unable to process the specified options, or could not create a new credential`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return new cc({message:`a Non-Webauthn related error has occurred`,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e})}function dc({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new cc({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new cc({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=window.location.hostname;if(!_c(t))return new cc({message:`${window.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new cc({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`UnknownError`)return new cc({message:`The authenticator was unable to process the specified options, or could not create a new assertion signature`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return new cc({message:`a Non-Webauthn related error has occurred`,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e})}var fc=new class{createNewAbortSignal(){if(this.controller){let e=Error(`Cancelling existing WebAuthn API call for new one`);e.name=`AbortError`,this.controller.abort(e)}let e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){let e=Error(`Manually cancelling existing WebAuthn API call`);e.name=`AbortError`,this.controller.abort(e),this.controller=void 0}}};function pc(e){if(!e)throw Error(`Credential creation options are required`);if(typeof PublicKeyCredential<`u`&&`parseCreationOptionsFromJSON`in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON==`function`)return PublicKeyCredential.parseCreationOptionsFromJSON(e);let{challenge:t,user:n,excludeCredentials:r}=e,i=jr(e,[`challenge`,`user`,`excludeCredentials`]),a=cs(t).buffer,o=Object.assign(Object.assign({},n),{id:cs(n.id).buffer}),s=Object.assign(Object.assign({},i),{challenge:a,user:o});if(r&&r.length>0){s.excludeCredentials=Array(r.length);for(let e=0;e<r.length;e++){let t=r[e];s.excludeCredentials[e]=Object.assign(Object.assign({},t),{id:cs(t.id).buffer,type:t.type||`public-key`,transports:t.transports})}}return s}function mc(e){if(!e)throw Error(`Credential request options are required`);if(typeof PublicKeyCredential<`u`&&`parseRequestOptionsFromJSON`in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON==`function`)return PublicKeyCredential.parseRequestOptionsFromJSON(e);let{challenge:t,allowCredentials:n}=e,r=jr(e,[`challenge`,`allowCredentials`]),i=cs(t).buffer,a=Object.assign(Object.assign({},r),{challenge:i});if(n&&n.length>0){a.allowCredentials=Array(n.length);for(let e=0;e<n.length;e++){let t=n[e];a.allowCredentials[e]=Object.assign(Object.assign({},t),{id:cs(t.id).buffer,type:t.type||`public-key`,transports:t.transports})}}return a}function hc(e){if(`toJSON`in e&&typeof e.toJSON==`function`)return e.toJSON();let t=e;return{id:e.id,rawId:e.id,response:{attestationObject:us(new Uint8Array(e.response.attestationObject)),clientDataJSON:us(new Uint8Array(e.response.clientDataJSON))},type:`public-key`,clientExtensionResults:e.getClientExtensionResults(),authenticatorAttachment:t.authenticatorAttachment??void 0}}function gc(e){if(`toJSON`in e&&typeof e.toJSON==`function`)return e.toJSON();let t=e,n=e.getClientExtensionResults(),r=e.response;return{id:e.id,rawId:e.id,response:{authenticatorData:us(new Uint8Array(r.authenticatorData)),clientDataJSON:us(new Uint8Array(r.clientDataJSON)),signature:us(new Uint8Array(r.signature)),userHandle:r.userHandle?us(new Uint8Array(r.userHandle)):void 0},type:`public-key`,clientExtensionResults:n,authenticatorAttachment:t.authenticatorAttachment??void 0}}function _c(e){return e===`localhost`||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}function vc(){return!!(ps()&&`PublicKeyCredential`in window&&window.PublicKeyCredential&&`credentials`in navigator&&typeof(navigator==null?void 0:navigator.credentials)?.create==`function`&&typeof(navigator==null?void 0:navigator.credentials)?.get==`function`)}async function yc(e){try{let t=await navigator.credentials.create(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new lc(`Browser returned unexpected credential type`,t)}:{data:null,error:new lc(`Empty credential response`,t)}}
19catch(t){return{data:null,error:uc({error:t,options:e})}}}async function bc(e){try{let t=await navigator.credentials.get(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new lc(`Browser returned unexpected credential type`,t)}:{data:null,error:new lc(`Empty credential response`,t)}}catch(t){return{data:null,error:dc({error:t,options:e})}}}var xc={hints:[`security-key`],authenticatorSelection:{authenticatorAttachment:`cross-platform`,requireResidentKey:!1,userVerification:`preferred`,residentKey:`discouraged`},attestation:`direct`},Sc={userVerification:`preferred`,hints:[`security-key`],attestation:`direct`};function Cc(...e){let t=e=>typeof e==`object`&&!!e&&!Array.isArray(e),n=e=>e instanceof ArrayBuffer||ArrayBuffer.isView(e),r={};for(let i of e)if(i)for(let e in i){let a=i[e];if(a!==void 0)if(Array.isArray(a))r[e]=a;else if(n(a))r[e]=a;else if(t(a)){let n=r[e];t(n)?r[e]=Cc(n,a):r[e]=Cc(a)}else r[e]=a}return r}function wc(e,t){return Cc(xc,e,t||{})}function Tc(e,t){return Cc(Sc,e,t||{})}var Ec=class{constructor(e){this.client=e,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(e){return this.client.mfa.enroll(Object.assign(Object.assign({},e),{factorType:`webauthn`}))}async _challenge({factorId:e,webauthn:t,friendlyName:n,signal:r},i){try{let{data:a,error:o}=await this.client.mfa.challenge({factorId:e,webauthn:t});if(!a)return{data:null,error:o};let s=r??fc.createNewAbortSignal();if(a.webauthn.type===`create`){let{user:e}=a.webauthn.credential_options.publicKey;if(!e.name){let t=n;if(t)e.name=`${e.id}:${t}`;else{let t=(await this.client.getUser()).data.user,n=t?.user_metadata?.name||t?.email||t?.id||`User`;e.name=`${e.id}:${n}`}}e.displayName||=e.name}switch(a.webauthn.type){case`create`:{let{data:t,error:n}=await yc({publicKey:wc(a.webauthn.credential_options.publicKey,i?.create),signal:s});return t?{data:{factorId:e,challengeId:a.id,webauthn:{type:a.webauthn.type,credential_response:t}},error:null}:{data:null,error:n}}case`request`:{let t=Tc(a.webauthn.credential_options.publicKey,i?.request),{data:n,error:r}=await bc(Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:t,signal:s}));return n?{data:{factorId:e,challengeId:a.id,webauthn:{type:a.webauthn.type,credential_response:n}},error:null}:{data:null,error:r}}}}catch(e){return F(e)?{data:null,error:e}:{data:null,error:new Lo(`Unexpected error in challenge`,e)}}}async _verify({challengeId:e,factorId:t,webauthn:n}){return this.client.mfa.verify({factorId:t,challengeId:e,webauthn:n})}async _authenticate({factorId:e,webauthn:{rpId:t=typeof window<`u`?window.location.hostname:void 0,rpOrigins:n=typeof window<`u`?[window.location.origin]:void 0,signal:r}={}},i){if(!t)return{data:null,error:new Po(`rpId is required for WebAuthn authentication`)};try{if(!vc())return{data:null,error:new Lo(`Browser does not support WebAuthn`,null)};let{data:a,error:o}=await this.challenge({factorId:e,webauthn:{rpId:t,rpOrigins:n},signal:r},{request:i});if(!a)return{data:null,error:o};let{webauthn:s}=a;return this._verify({factorId:e,challengeId:a.challengeId,webauthn:{type:s.type,rpId:t,rpOrigins:n,credential_response:s.credential_response}})}catch(e){return F(e)?{data:null,error:e}:{data:null,error:new Lo(`Unexpected error in authenticate`,e)}}}async _register({friendlyName:e,webauthn:{rpId:t=typeof window<`u`?window.location.hostname:void 0,rpOrigins:n=typeof window<`u`?[window.location.origin]:void 0,signal:r}={}},i){if(!t)return{data:null,error:new Po(`rpId is required for WebAuthn registration`)};try{if(!vc())return{data:null,error:new Lo(`Browser does not support WebAuthn`,null)};let{data:a,error:o}=await this._enroll({friendlyName:e});if(!a)return await this.client.mfa.listFactors().then(t=>t.data?.all.find(t=>t.factor_type===`webauthn`&&t.friendly_name===e&&t.status!==`unverified`)).then(e=>e?this.client.mfa.unenroll({factorId:e?.id}):void 0),{data:null,error:o};let{data:s,error:c}=await this._challenge({factorId:a.id,friendlyName:a.friendly_name,webauthn:{rpId:t,rpOrigins:n},signal:r},{create:i});return s?this._verify({factorId:a.id,challengeId:s.challengeId,webauthn:{rpId:t,rpOrigins:n,type:s.webauthn.type,credential_response:s.webauthn.credential_response}}):{data:null,error:c}}catch(e){return F(e)?{data:null,error:e}:{data:null,error:new Lo(`Unexpected error in register`,e)}}}};rc();var Dc={url:Oo,storageKey:ko,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:Ao,flowType:`implicit`,debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:5e3,skipAutoInitialize:!1,experimental:{}},Oc={},kc=class e{get jwks(){return Oc[this.storageKey]?.jwks??{keys:[]}}set jwks(e){Oc[this.storageKey]=Object.assign(Object.assign({},Oc[this.storageKey]),{jwks:e})}get jwks_cached_at(){return Oc[this.storageKey]?.cachedAt??-(2**53-1)}set jwks_cached_at(e){Oc[this.storageKey]=Object.assign(Object.assign({},Oc[this.storageKey]),{cachedAt:e})}constructor(t){var n;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.lastRefreshFailure=null,this._sessionRemovalEpoch=0,this.initializePromise=null,this._pendingInitNotifications=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lock=null,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;let r=Object.assign(Object.assign({},Dc),t);
19if(this.storageKey=r.storageKey,this.instanceID=e.nextInstanceID[this.storageKey]??0,e.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!r.debug,typeof r.debug==`function`&&(this.logger=r.debug),this.instanceID>0&&ps()){let e=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(e),this.logDebugMessages&&console.trace(e)}if(this.persistSession=r.persistSession,this.autoRefreshToken=r.autoRefreshToken,this.experimental=r.experimental??{},this.admin=new ec({url:r.url,headers:r.headers,fetch:r.fetch,experimental:this.experimental}),this.url=r.url,this.headers=r.headers,this.fetch=_s(r.fetch),this.detectSessionInUrl=r.detectSessionInUrl,this.flowType=r.flowType,this.hasCustomAuthorizationHeader=r.hasCustomAuthorizationHeader,this.throwOnError=r.throwOnError,this.lockAcquireTimeout=r.lockAcquireTimeout,r.lock!=null&&(this.lock=r.lock),this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=-(2**53-1)),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new Ec(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.passkey={startRegistration:this._startPasskeyRegistration.bind(this),verifyRegistration:this._verifyPasskeyRegistration.bind(this),startAuthentication:this._startPasskeyAuthentication.bind(this),verifyAuthentication:this._verifyPasskeyAuthentication.bind(this),list:this._listPasskeys.bind(this),update:this._updatePasskey.bind(this),delete:this._deletePasskey.bind(this)},this.persistSession?(r.storage?this.storage=r.storage:hs()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=tc(this.memoryStorage)),r.userStorage&&(this.userStorage=r.userStorage)):(this.memoryStorage={},this.storage=tc(this.memoryStorage)),ps()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error(`Failed to create a new BroadcastChannel, multi-tab state changes will not be available`,e)}(n=this.broadcastChannel)==null||n.addEventListener(`message`,async e=>{this._debug(`received broadcast notification from other tab or client`,e),(e.data.event===`TOKEN_REFRESHED`||e.data.event===`SIGNED_IN`)&&(this.lastRefreshFailure=null);try{await this._notifyAllSubscribers(e.data.event,e.data.session,!1)}catch(e){this._debug(`#broadcastChannel`,`error`,e)}})}r.skipAutoInitialize||this.initialize().catch(e=>{this._debug(`#initialize()`,`error`,e)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(e){if(this.throwOnError&&e&&e.error)throw e.error;return e}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${wo}) ${new Date().toISOString()}`}_debug(...e){return this.logDebugMessages&&this.logger(this._logPrefix(),...e),this}async initialize(){if(this.initializePromise)return await this.initializePromise;this._pendingInitNotifications=[],this.initializePromise=(async()=>this.lock==null?await this._initialize():await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()))();let e=await this.initializePromise,t=this._pendingInitNotifications??[];this._pendingInitNotifications=null;for(let e of t)await this._notifyAllSubscribers(e.event,e.session,e.broadcast);return e}async _initialize(){try{let e={},t=`none`;if(ps()&&(e=gs(window.location.href),this._isImplicitGrantCallback(e)?t=`implicit`:await this._isPKCECallback(e)&&(t=`pkce`)),ps()&&this.detectSessionInUrl&&t!==`none`){let{data:n,error:r}=await this._getSessionFromURL(e,t);if(r){if(this._debug(`#_initialize()`,`error detecting session from URL`,r),Wo(r)){let e=r.details?.code;if(e===`identity_already_exists`||e===`identity_not_found`||e===`single_identity_not_deletable`)return{error:r}}return{error:r}}let{session:i,redirectType:a}=n;return this._debug(`#_initialize()`,`detected session in URL`,i,`redirect type`,a),await this._saveSession(i),setTimeout(async()=>{a===`recovery`?await this._notifyAllSubscribers(`PASSWORD_RECOVERY`,i):await this._notifyAllSubscribers(`SIGNED_IN`,i)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(e){return F(e)?this._returnResult({error:e}):this._returnResult({error:new Lo(`Unexpected error during initialization`,e)})}finally{await this._handleVisibilityChange(),this._debug(`#_initialize()`,`end`)}}async signInAnonymously(e){try{let{data:t,error:n}=await I(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,body:{data:e?.options?.data??{},gotrue_meta_security:{captcha_token:e?.options?.captchaToken}},xform:Ks});if(n||!t)return this._returnResult({data:{user:null,session:null},error:n});let r=t.session,i=t.user;return t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers(`SIGNED_IN`,r)),this._returnResult({data:{user:i,session:r},error:null})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signUp(e){try{let t;if(`email`in e){let{email:n,password:r,options:i}=e,a=null,o=null;this.flowType===`pkce`&&([a,o]=await As(this.storage,this.storageKey)),t=await I(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,redirectTo:i?.emailRedirectTo,body:{email:n,password:r,data:i?.data??{},gotrue_meta_security:{captcha_token:i?.captchaToken},code_challenge:a,code_challenge_method:o},xform:Ks})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await I(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,body:{phone:n,password:r,data:i?.data??{},channel:i?.channel??`sms`,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:Ks})}else throw new Ho(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;if(r||!n)return await xs(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:r});let i=n.session,a=n.user;return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,i)),this._returnResult({data:{user:a,session:i},error:null})}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithPassword(e){try{let t;if(`email`in e){let{email:n,password:r,options:i}=e;t=await I(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:qs})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await I(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:qs})}else throw new Ho(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;if(r)return this._returnResult({data:{user:null,session:null},error:r});if(!n||!n.session||!n.user){let e=new Vo;return this._returnResult({data:{user:null,session:null},error:e})}return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,n.session)),this._returnResult({data:Object.assign({user:n.user,session:n.session},n.weak_password?{weakPassword:n.weak_password}:null),error:r})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithOAuth(e){return await this._handleProviderSignIn(e.provider,{redirectTo:e.options?.redirectTo,scopes:e.options?.scopes,queryParams:e.options?.queryParams,skipBrowserRedirect:e.options?.skipBrowserRedirect})}async exchangeCodeForSession(e){return await this.initializePromise,this.lock==null?this._exchangeCodeForSession(e):this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(e))}async signInWithWeb3(e){let{chain:t}=e;switch(t){case`ethereum`:return await this.signInWithEthereum(e);case`solana`:return await this.signInWithSolana(e);default:throw Error(`@supabase/auth-js: Unsupported chain "${t}"`)}}async signInWithEthereum(e){let t,n;if(`message`in e)t=e.message,n=e.signature;else{let{chain:r,wallet:i,statement:a,options:o}=e,s;
19if(!ps()){if(typeof i!=`object`||!o?.url)throw Error(`@supabase/auth-js: Both wallet and url must be specified in non-browser environments.`);s=i}else if(typeof i==`object`)s=i;else{let e=window;if(`ethereum`in e&&typeof e.ethereum==`object`&&`request`in e.ethereum&&typeof e.ethereum.request==`function`)s=e.ethereum;else throw Error(`@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.`)}let c=new URL(o?.url??window.location.href),l=await s.request({method:`eth_requestAccounts`}).then(e=>e).catch(()=>{throw Error(`@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid`)});if(!l||l.length===0)throw Error(`@supabase/auth-js: No accounts available. Please ensure the wallet is connected.`);let u=ic(l[0]),d=o?.signInWithEthereum?.chainId;d||=ac(await s.request({method:`eth_chainId`})),t=sc({domain:c.host,address:u,statement:a,uri:c.href,version:`1`,chainId:d,nonce:o?.signInWithEthereum?.nonce,issuedAt:o?.signInWithEthereum?.issuedAt??new Date,expirationTime:o?.signInWithEthereum?.expirationTime,notBefore:o?.signInWithEthereum?.notBefore,requestId:o?.signInWithEthereum?.requestId,resources:o?.signInWithEthereum?.resources}),n=await s.request({method:`personal_sign`,params:[oc(t),u]})}try{let{data:r,error:i}=await I(this.fetch,`POST`,`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:`ethereum`,message:t,signature:n},e.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options?.captchaToken}}:null),xform:Ks});if(i)throw i;if(!r||!r.session||!r.user){let e=new Vo;return this._returnResult({data:{user:null,session:null},error:e})}return r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(`SIGNED_IN`,r.session)),this._returnResult({data:Object.assign({},r),error:i})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithSolana(e){let t,n;if(`message`in e)t=e.message,n=e.signature;else{let{chain:r,wallet:i,statement:a,options:o}=e,s;if(!ps()){if(typeof i!=`object`||!o?.url)throw Error(`@supabase/auth-js: Both wallet and url must be specified in non-browser environments.`);s=i}else if(typeof i==`object`)s=i;else{let e=window;if(`solana`in e&&typeof e.solana==`object`&&(`signIn`in e.solana&&typeof e.solana.signIn==`function`||`signMessage`in e.solana&&typeof e.solana.signMessage==`function`))s=e.solana;else throw Error(`@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.`)}let c=new URL(o?.url??window.location.href);if(`signIn`in s&&s.signIn){let e=await s.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},o?.signInWithSolana),{version:`1`,domain:c.host,uri:c.href}),a?{statement:a}:null)),r;if(Array.isArray(e)&&e[0]&&typeof e[0]==`object`)r=e[0];else if(e&&typeof e==`object`&&`signedMessage`in e&&`signature`in e)r=e;else throw Error(`@supabase/auth-js: Wallet method signIn() returned unrecognized value`);if(`signedMessage`in r&&`signature`in r&&(typeof r.signedMessage==`string`||r.signedMessage instanceof Uint8Array)&&r.signature instanceof Uint8Array)t=typeof r.signedMessage==`string`?r.signedMessage:new TextDecoder().decode(r.signedMessage),n=r.signature;else throw Error(`@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields`)}else{if(!(`signMessage`in s)||typeof s.signMessage!=`function`||!(`publicKey`in s)||typeof s!=`object`||!s.publicKey||!(`toBase58`in s.publicKey)||typeof s.publicKey.toBase58!=`function`)throw Error(`@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API`);t=[`${c.host} wants you to sign in with your Solana account:`,s.publicKey.toBase58(),...a?[``,a,``]:[``],`Version: 1`,`URI: ${c.href}`,`Issued At: ${o?.signInWithSolana?.issuedAt??new Date().toISOString()}`,...o?.signInWithSolana?.notBefore?[`Not Before: ${o.signInWithSolana.notBefore}`]:[],...o?.signInWithSolana?.expirationTime?[`Expiration Time: ${o.signInWithSolana.expirationTime}`]:[],...o?.signInWithSolana?.chainId?[`Chain ID: ${o.signInWithSolana.chainId}`]:[],...o?.signInWithSolana?.nonce?[`Nonce: ${o.signInWithSolana.nonce}`]:[],...o?.signInWithSolana?.requestId?[`Request ID: ${o.signInWithSolana.requestId}`]:[],...o?.signInWithSolana?.resources?.length?[`Resources`,...o.signInWithSolana.resources.map(e=>`- ${e}`)]:[]].join(` 20`);let e=await s.signMessage(new TextEncoder().encode(t),`utf8`);if(!e||!(e instanceof Uint8Array))throw Error(`@supabase/auth-js: Wallet signMessage() API returned an recognized value`);n=e}}try{let{data:r,error:i}=await I(this.fetch,`POST`,`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:`solana`,message:t,signature:us(n)},e.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options?.captchaToken}}:null),xform:Ks});if(i)throw i;if(!r||!r.session||!r.user){let e=new Vo;return this._returnResult({data:{user:null,session:null},error:e})}return r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(`SIGNED_IN`,r.session)),this._returnResult({data:Object.assign({},r),error:i})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async _exchangeCodeForSession(e){let[t,n]=(await bs(this.storage,`${this.storageKey}-code-verifier`)??``).split(`/`);try{if(!t&&this.flowType===`pkce`)throw new Ko;let{data:r,error:i}=await I(this.fetch,`POST`,`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:t},xform:Ks});if(await xs(this.storage,`${this.storageKey}-code-verifier`),i)throw i;if(!r||!r.session||!r.user){let e=new Vo;return this._returnResult({data:{user:null,session:null,redirectType:null},error:e})}return r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(n===`recovery`?`PASSWORD_RECOVERY`:`SIGNED_IN`,r.session)),this._returnResult({data:Object.assign(Object.assign({},r),{redirectType:n??null}),error:i})}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:{user:null,session:null,redirectType:null},error:e});throw e}}async signInWithIdToken(e){try{let{options:t,provider:n,token:r,access_token:i,nonce:a}=e,{data:o,error:s}=await I(this.fetch,`POST`,`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:n,id_token:r,access_token:i,nonce:a,gotrue_meta_security:{captcha_token:t?.captchaToken}},xform:Ks});if(s)return this._returnResult({data:{user:null,session:null},error:s});if(!o||!o.session||!o.user){let e=new Vo;return this._returnResult({data:{user:null,session:null},error:e})}return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers(`SIGNED_IN`,o.session)),this._returnResult({data:o,error:s})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithOtp(e){try{if(`email`in e){let{email:t,options:n}=e,r=null,i=null;this.flowType===`pkce`&&([r,i]=await As(this.storage,this.storageKey));let{error:a}=await I(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{email:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},code_challenge:r,code_challenge_method:i},redirectTo:n?.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:a})}if(`phone`in e){let{phone:t,options:n}=e,{data:r,error:i}=await I(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{phone:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},channel:n?.channel??`sms`}});return this._returnResult({data:{user:null,session:null,messageId:r?.message_id},error:i})}throw new Ho(`You must provide either an email or phone number.`)}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async verifyOtp(e){try{let t,n;`options`in e&&(t=e.options?.redirectTo,n=e.options?.captchaToken);let{data:r,error:i}=await I(this.fetch,`POST`,`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:n}}),redirectTo:t,xform:Ks});if(i)throw i;if(!r)throw Error(`An error occurred on token verification.`);let a=r.session,o=r.user;return a?.access_token&&(await this._saveSession(a),await this._notifyAllSubscribers(e.type==`recovery`?`PASSWORD_RECOVERY`:`SIGNED_IN`,a)),this._returnResult({data:{user:o,session:a},error:null})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithSSO(e){try{let t=null,n=null;this.flowType===`pkce`&&([t,n]=await As(this.storage,this.storageKey));let r=await I(this.fetch,`POST`,`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},`providerId`in e?{provider_id:e.providerId}:null),`domain`in e?{domain:e.domain}:null),{redirect_to:e.options?.redirectTo??void 0}),e?.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:t,code_challenge_method:n}),headers:this.headers,xform:Ys});return r.data?.url&&ps()&&!e.options?.skipBrowserRedirect&&window.location.assign(r.data.url),this._returnResult(r)}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:null,error:e});throw e}}async reauthenticate(){return await this.initializePromise,this.lock==null?await this._reauthenticate():await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)throw n;if(!t)throw new zo;let{error:r}=await I(this.fetch,`GET`,`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return this._returnResult({data:{user:null,session:null},error:r})})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async resend(e){try{let t=`${this.url}/resend`;if(`email`in e){let{email:n,type:r,options:i}=e,a=null,o=null;this.flowType===`pkce`&&([a,o]=await As(this.storage,this.storageKey));let{error:s}=await I(this.fetch,`POST`,t,{headers:this.headers,body:{email:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken},code_challenge:a,code_challenge_method:o},redirectTo:i?.emailRedirectTo});return s&&await xs(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:s})}else if(`phone`in e){let{phone:n,type:r,options:i}=e,{data:a,error:o}=await I(this.fetch,`POST`,t,{headers:this.headers,body:{phone:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:a?.message_id},error:o})}throw new Ho(`You must provide either an email or phone number and a type`)}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async getSession(){return await this.initializePromise,this.lock==null?await this._useSession(async e=>e):await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async e=>e))}async _acquireLock(e,t){this._debug(`#_acquireLock`,`begin`,e);try{if(this.lockAcquired){let e=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),n=(async()=>(await e,await t()))();return this.pendingInLock.push((async()=>{try{await n}catch{}})()),n}return await this.lock(`lock:${this.storageKey}`,e,async()=>{this._debug(`#_acquireLock`,`lock acquired for storage key`,this.storageKey);try{this.lockAcquired=!0;let e=t();for(this.pendingInLock.push((async()=>{try{await e}catch{}})()),await e;this.pendingInLock.length;){let e=[...this.pendingInLock];await Promise.all(e),this.pendingInLock.splice(0,e.length)}return await e}finally{this._debug(`#_acquireLock`,`lock released for storage key`,this.storageKey),this.lockAcquired=!1}})}finally{this._debug(`#_acquireLock`,`end`)}}async _useSession(e){this._debug(`#_useSession`,`begin`);try{return await e(await this.__loadSession())}finally{this._debug(`#_useSession`,`end`)}}async __loadSession(){this._debug(`#__loadSession()`,`begin`),this.lock!=null&&!this.lockAcquired&&this._debug(`#__loadSession()`,`used outside of an acquired lock!`,Error().stack);try{let e=null,t=await bs(this.storage,this.storageKey);if(this._debug(`#getSession()`,`session from storage`,t),t!==null&&(this._isValidSession(t)?e=t:(this._debug(`#getSession()`,`session from storage is not val
20id`),await this._removeSession())),!e)return{data:{session:null},error:null};let n=e.expires_at?e.expires_at*1e3-Date.now()<Eo:!1;if(this._debug(`#__loadSession()`,`session has${n?``:` not`} expired`,`expires_at`,e.expires_at),!n){if(this.userStorage){let t=await bs(this.userStorage,this.storageKey+`-user`);t?.user?e.user=t.user:e.user=Rs()}if(this.storage.isServer&&e.user&&!e.user.__isUserNotAvailableProxy){let t={value:this.suppressGetSessionWarning};e.user=zs(e.user,t),t.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:e},error:null}}let{data:r,error:i}=await this._callRefreshToken(e.refresh_token);if(i){if(e.expires_at&&e.expires_at*1e3>Date.now()){let t=await bs(this.storage,this.storageKey);if(t&&t.refresh_token===e.refresh_token)return this._returnResult({data:{session:e},error:null})}return this._returnResult({data:{session:null},error:i})}return this._returnResult({data:{session:r},error:null})}finally{this._debug(`#__loadSession()`,`end`)}}async getUser(e){if(e)return await this._getUser(e);await this.initializePromise;let t;return t=this.lock==null?await this._getUser():await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser()),t.data.user&&(this.suppressGetSessionWarning=!0),t}async _getUser(e){try{return e?await I(this.fetch,`GET`,`${this.url}/user`,{headers:this.headers,jwt:e,xform:Js}):await this._useSession(async e=>{let{data:t,error:n}=e;if(n)throw n;return!t.session?.access_token&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new zo}:await I(this.fetch,`GET`,`${this.url}/user`,{headers:this.headers,jwt:t.session?.access_token??void 0,xform:Js})})}catch(e){if(F(e))return Bo(e)&&(await this._removeSession(),await xs(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:e});throw e}}async updateUser(e,t={}){return await this.initializePromise,this.lock==null?await this._updateUser(e,t):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(e,t))}async _updateUser(e,t={}){try{return await this._useSession(async n=>{let{data:r,error:i}=n;if(i)throw i;if(!r.session)throw new zo;let a=r.session,o=null,s=null;this.flowType===`pkce`&&e.email!=null&&([o,s]=await As(this.storage,this.storageKey));let{data:c,error:l}=await I(this.fetch,`PUT`,`${this.url}/user`,{headers:this.headers,redirectTo:t?.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:o,code_challenge_method:s}),jwt:a.access_token,xform:Js});if(l)throw l;return a.user=c.user,await this._saveSession(a),await this._notifyAllSubscribers(`USER_UPDATED`,a),this._returnResult({data:{user:a.user},error:null})})}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:{user:null},error:e});throw e}}async setSession(e){return await this.initializePromise,this.lock==null?await this._setSession(e):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(e))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new zo;let t=Date.now()/1e3,n=t,r=!0,i=null,{payload:a}=Cs(e.access_token);if(a.exp&&(n=a.exp,r=n<=t),r){let{data:t,error:n}=await this._callRefreshToken(e.refresh_token);if(n)return this._returnResult({data:{user:null,session:null},error:n});if(!t)return{data:{user:null,session:null},error:null};i=t}else{let{data:r,error:a}=await this._getUser(e.access_token);if(a)return this._returnResult({data:{user:null,session:null},error:a});i={access_token:e.access_token,refresh_token:e.refresh_token,user:r.user,token_type:`bearer`,expires_in:n-t,expires_at:n},await this._saveSession(i),await this._notifyAllSubscribers(`SIGNED_IN`,i)}return this._returnResult({data:{user:i.user,session:i},error:null})}catch(e){if(F(e))return this._returnResult({data:{session:null,user:null},error:e});throw e}}async refreshSession(e){return await this.initializePromise,this.lock==null?await this._refreshSession(e):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(e))}async _refreshSession(e){try{return await this._useSession(async t=>{if(!e){let{data:n,error:r}=t;if(r)throw r;e=n.session??void 0}if(!e?.refresh_token)throw new zo;let{data:n,error:r}=await this._callRefreshToken(e.refresh_token);return r?this._returnResult({data:{user:null,session:null},error:r}):n?this._returnResult({data:{user:n.user,session:n},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(e){if(F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async _getSessionFromURL(e,t){try{if(!ps())throw new Uo(`No browser detected.`);if(e.error||e.error_description||e.error_code)throw new Uo(e.error_description||`Error in URL with unspecified error_description`,{error:e.error||`unspecified_error`,code:e.error_code||`unspecified_code`});switch(t){case`implicit`:if(this.flowType===`pkce`)throw new Go(`Not a valid PKCE flow url.`);break;case`pkce`:if(this.flowType===`implicit`)throw new Uo(`Not a valid implicit grant flow url.`);break;default:}if(t===`pkce`){if(this._debug(`#_initialize()`,`begin`,`is PKCE flow`,!0),!e.code)throw new Go(`No code detected.`);let{data:t,error:n}=await this._exchangeCodeForSession(e.code);
20if(n)throw n;let r=new URL(window.location.href);return r.searchParams.delete(`code`),window.history.replaceState(window.history.state,``,r.toString()),{data:{session:t.session,redirectType:t.redirectType??null},error:null}}let{provider_token:n,provider_refresh_token:r,access_token:i,refresh_token:a,expires_in:o,expires_at:s,token_type:c}=e;if(!i||!o||!a||!c)throw new Uo(`No session defined in URL`);let l=Math.round(Date.now()/1e3),u=parseInt(o),d=l+u;s&&(d=parseInt(s));let f=d-l;f*1e3<=3e4&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${f}s, should have been closer to ${u}s`);let p=d-u;l-p>=120?console.warn(`@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale`,p,d,l):l-p<0&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew`,p,d,l);let{data:m,error:h}=await this._getUser(i);if(h)throw h;let g={provider_token:n,provider_refresh_token:r,access_token:i,expires_in:u,expires_at:d,refresh_token:a,token_type:c,user:m.user};return window.location.hash=``,this._debug(`#_getSessionFromURL()`,`clearing window.location.hash`),this._returnResult({data:{session:g,redirectType:e.type},error:null})}catch(e){if(F(e))return this._returnResult({data:{session:null,redirectType:null},error:e});throw e}}_isImplicitGrantCallback(e){return typeof this.detectSessionInUrl==`function`?this.detectSessionInUrl(new URL(window.location.href),e):!!(e.access_token||e.error||e.error_description||e.error_code)}async _isPKCECallback(e){let t=await bs(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&t)}async signOut(e={scope:`global`}){return await this.initializePromise,this.lock==null?await this._signOut(e):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(e))}async _signOut({scope:e}={scope:`global`}){return await this._useSession(async t=>{let n=async()=>{await this._removeSession(),await xs(this.storage,`${this.storageKey}-code-verifier`)},{data:r,error:i}=t;if(i&&!Bo(i))return this._returnResult({error:i});let a=r.session?.access_token;if(a){let{error:t}=await this.admin.signOut(a,e);if(t&&!(Io(t)&&(t.status===404||t.status===401||t.status===403)||Bo(t)))return e!==`others`&&await n(),this._returnResult({error:t})}return e!==`others`&&await n(),this._returnResult({error:null})})}onAuthStateChange(e){let t=fs(),n={id:t,callback:e,unsubscribe:()=>{this._debug(`#unsubscribe()`,`state change callback with id removed`,t),this.stateChangeEmitters.delete(t)}};return this._debug(`#onAuthStateChange()`,`registered callback with id`,t),this.stateChangeEmitters.set(t,n),(async()=>{await this.initializePromise,this.lock==null?await this._emitInitialSession(t):await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(t)})})(),{data:{subscription:n}}}async _emitInitialSession(e){return await this._useSession(async t=>{try{let{data:{session:n},error:r}=t;if(r)throw r;await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,n),this._debug(`INITIAL_SESSION`,`callback id`,e,`session`,n)}catch(t){await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,null),this._debug(`INITIAL_SESSION`,`callback id`,e,`error`,t),Bo(t)||Jo(t)?console.warn(t):console.error(t)}})}async resetPasswordForEmail(e,t={}){let n=null,r=null;this.flowType===`pkce`&&([n,r]=await As(this.storage,this.storageKey,!0));try{return await I(this.fetch,`POST`,`${this.url}/recover`,{body:{email:e,code_challenge:n,code_challenge_method:r,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:null,error:e});throw e}}async getUserIdentities(){try{let{data:e,error:t}=await this.getUser();if(t)throw t;return this._returnResult({data:{identities:e.user.identities??[]},error:null})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async linkIdentity(e){return`token`in e?this.linkIdentityIdToken(e):this.linkIdentityOAuth(e)}async linkIdentityOAuth(e){try{let{data:t,error:n}=await this._useSession(async t=>{let{data:n,error:r}=t;if(r)throw r;let i=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,e.provider,{redirectTo:e.options?.redirectTo,scopes:e.options?.scopes,queryParams:e.options?.queryParams,skipBrowserRedirect:!0});return await I(this.fetch,`GET`,i,{headers:this.headers,jwt:n.session?.access_token??void 0})});if(n)throw n;return ps()&&!e.options?.skipBrowserRedirect&&window.location.assign(t?.url),this._returnResult({data:{provider:e.provider,url:t?.url},error:null})}catch(t){if(F(t))return this._returnResult({data:{provider:e.provider,url:null},error:t});throw t}}async linkIdentityIdToken(e){return await this._useSession(async t=>{try{let{error:n,data:{session:r}}=t;if(n)throw n;let{options:i,provider:a,token:o,access_token:s,nonce:c}=e,{data:l,error:u}=await I(this.fetch,`POST`,`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:r?.access_token??void 0,body:{provider:a,id_token:o,access_token:s,nonce:c,link_identity:!0,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:Ks});return u?this._returnResult({data:{user:null,session:null},error:u}):!l||!l.session||!l.user?this._returnResult({data:{user:null,session:null},error:new Vo}):(l.session&&(await this._saveSession(l.session),await this._notifyAllSubscribers(`USER_UPDATED`,l.session)),this._returnResult({data:l,error:u}))}catch(e){if(await xs(this.storage,`${this.storageKey}-code-verifier`),F(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}})}async unlinkIdentity(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)throw r;return await I(this.fetch,`DELETE`,`${this.url}/user/identities/${e.identity_id}`,{headers:this.headers,jwt:n.session?.access_token??void 0})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _refreshAccessToken(e){let t=`#_refreshAccessToken()`;this._debug(t,`begin`);try{let n=Date.now();return await Ts(async n=>(n>0&&await ws(200*2**(n-1)),this._debug(t,`refreshing attempt`,n),await I(this.fetch,`POST`,`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:Ks})),(e,t)=>{let r=200*2**e;return t&&Jo(t)&&Date.now()+r-n<3e4})}catch(e){if(this._debug(t,`error`,e),F(e))return this._returnResult({data:{session:null,user:null},error:e});throw e}finally{this._debug(t,`end`)}}_isValidSession(e){return typeof e==`object`&&!!e&&`access_token`in e&&`refresh_token`in e&&`expires_at`in e}async _handleProviderSignIn(e,t){let n=await this._getUrlForProvider(`${this.url}/authorize`,e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});return this._debug(`#_handleProviderSignIn()`,`provider`,e,`options`,t,`url`,n),ps()&&!t.skipBrowserRedirect&&window.location.assign(n),{data:{provider:e,url:n},error:null}}async _recoverAndRefresh(){let e=`#_recoverAndRefresh()`;this._debug(e,`begin`);try{let t=await bs(this.storage,this.storageKey);if(t&&this.userStorage){let e=await bs(this.userStorage,this.storageKey+`-user`);!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!e&&(e={user:t.user},await ys(this.userStorage,this.storageKey+`-user`,e)),t.user=e?.user??Rs()}else if(t&&!t.user&&!t.user){let e=await bs(this.storage,this.storageKey+`-user`);e&&e?.user?(t.user=e.user,await xs(this.storage,this.storageKey+`-user`),await ys(this.storage,this.storageKey,t)):t.user=Rs()}if(this._debug(e,`session from storage`,t),!this._isValidSession(t)){this._debug(e,`session is not val
20id`),t!==null&&await this._removeSession();return}let n=(t.expires_at??1/0)*1e3-Date.now()<Eo;if(this._debug(e,`session has${n?``:` not`} expired with margin of ${Eo}s`),n){if(this.autoRefreshToken&&t.refresh_token){let{error:n}=await this._callRefreshToken(t.refresh_token);n&&(Xo(n)?this._debug(e,`refresh discarded by commit guard`,n):this._debug(e,`refresh failed`,n))}}else if(t.user&&t.user.__isUserNotAvailableProxy===!0)try{let{data:n,error:r}=await this._getUser(t.access_token);!r&&n?.user?(t.user=n.user,await this._saveSession(t),await this._notifyAllSubscribers(`SIGNED_IN`,t)):this._debug(e,`could not get user data, skipping SIGNED_IN notification`)}catch(t){console.error(`Error getting user data:`,t),this._debug(e,`error getting user data, skipping SIGNED_IN notification`,t)}else await this._notifyAllSubscribers(`SIGNED_IN`,t)}catch(t){this._debug(e,`error`,t),Jo(t)?console.warn(t):console.error(t);return}finally{this._debug(e,`end`)}}async _callRefreshToken(e){var t,n;if(!e)throw new zo;if(this.refreshingDeferred)return this.refreshingDeferred.promise;if(this.lastRefreshFailure&&this.lastRefreshFailure.refreshToken===e&&Date.now()<this.lastRefreshFailure.expiresAt)return this._debug(`#_callRefreshToken()`,`returning cached failure (cooldown active)`),this.lastRefreshFailure.result;let r=`#_callRefreshToken()`;this._debug(r,`begin`);try{this.refreshingDeferred=new Ss;let t=await bs(this.storage,this.storageKey),{data:n,error:i}=await this._refreshAccessToken(e);if(i)throw i;if(!n.session)throw new zo;let a=await bs(this.storage,this.storageKey);if(t!==null&&(a===null||a.refresh_token!==t.refresh_token)){this._debug(r,`commit guard: storage changed since refresh started, discarding rotated tokens`,{startedWith:`present`,nowHolds:a?`replaced`:`cleared`});let e={data:null,error:new Yo};return this.refreshingDeferred.resolve(e),e}let o=this._sessionRemovalEpoch;if(await this._saveSession(n.session),this._sessionRemovalEpoch!==o){this._debug(r,`commit guard (post-save): _removeSession ran during _saveSession, undoing write`),await xs(this.storage,this.storageKey),this.userStorage&&await xs(this.userStorage,this.storageKey+`-user`);let e={data:null,error:new Yo};return this.refreshingDeferred.resolve(e),e}await this._notifyAllSubscribers(`TOKEN_REFRESHED`,n.session);let s={data:n.session,error:null};return this.lastRefreshFailure=null,this.refreshingDeferred.resolve(s),s}catch(i){if(this._debug(r,`error`,i),F(i)){let n={data:null,error:i};if(!Jo(i)){let e=await bs(this.storage,this.storageKey);e?.expires_at&&e.expires_at*1e3>Date.now()?this._debug(r,`proactive refresh failed, access token still valid â preserving session`):await this._removeSession()}return this.lastRefreshFailure={refreshToken:e,result:n,expiresAt:Date.now()+Do},(t=this.refreshingDeferred)==null||t.resolve(n),n}throw(n=this.refreshingDeferred)==null||n.reject(i),i}finally{this.refreshingDeferred=null,this._debug(r,`end`)}}async _notifyAllSubscribers(e,t,n=!0){if(this._pendingInitNotifications!==null&&n){this._pendingInitNotifications.push({event:e,session:t,broadcast:n});return}let r=`#_notifyAllSubscribers(${e})`;this._debug(r,`begin`,t,`broadcast = ${n}`);try{this.broadcastChannel&&n&&this.broadcastChannel.postMessage({event:e,session:t});let r=[],i=Array.from(this.stateChangeEmitters.values()).map(async n=>{try{await n.callback(e,t)}catch(e){r.push(e)}});if(await Promise.all(i),r.length>0){for(let e=0;e<r.length;e+=1)console.error(r[e]);throw r[0]}}finally{this._debug(r,`end`)}}async _saveSession(e){this._debug(`#_saveSession()`,e),this.suppressGetSessionWarning=!0;let t=Object.assign({},e),n=t.user&&t.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!n&&t.user&&await ys(this.userStorage,this.storageKey+`-user`,{user:t.user});let e=Object.assign({},t);delete e.user;let r=Bs(e);await ys(this.storage,this.storageKey,r)}else{let e=Bs(t);await ys(this.storage,this.storageKey,e)}}async _removeSession(){this._sessionRemovalEpoch+=1,this._debug(`#_removeSession()`),this.lastRefreshFailure=null,this.suppressGetSessionWarning=!1,await xs(this.storage,this.storageKey),await xs(this.storage,this.storageKey+`-code-verifier`),await xs(this.storage,this.storageKey+`-user`),this.userStorage&&await xs(this.userStorage,this.storageKey+`-user`),await this._notifyAllSubscribers(`SIGNED_OUT`,null)}_removeVisibilityChangedCallback(){this._debug(`#_removeVisibilityChangedCallback()`);let e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&ps()&&window!=null&&window.removeEventListener&&window.removeEventListener(`visibilitychange`,e)}
20catch(e){console.error(`removing visibilitychange callback failed`,e)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug(`#_startAutoRefresh()`);let e=setInterval(()=>this._autoRefreshTokenTick(),To);this.autoRefreshTicker=e,e&&typeof e==`object`&&typeof e.unref==`function`?e.unref():typeof Deno<`u`&&typeof Deno.unrefTimer==`function`&&Deno.unrefTimer(e);let t=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=t,t&&typeof t==`object`&&typeof t.unref==`function`?t.unref():typeof Deno<`u`&&typeof Deno.unrefTimer==`function`&&Deno.unrefTimer(t)}async _stopAutoRefresh(){this._debug(`#_stopAutoRefresh()`);let e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e);let t=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,t&&clearTimeout(t)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async dispose(){var e;this._removeVisibilityChangedCallback(),await this._stopAutoRefresh(),(e=this.broadcastChannel)==null||e.close(),this.broadcastChannel=null,this.stateChangeEmitters.clear()}async _autoRefreshTokenTick(){if(this._debug(`#_autoRefreshTokenTick()`,`begin`),this.lock!=null){try{await this._acquireLock(0,async()=>{try{let e=Date.now();try{return await this._useSession(async t=>{let{data:{session:n}}=t;if(!n||!n.refresh_token||!n.expires_at){this._debug(`#_autoRefreshTokenTick()`,`no session`);return}let r=Math.floor((n.expires_at*1e3-e)/To);this._debug(`#_autoRefreshTokenTick()`,`access token expires in ${r} ticks, a tick lasts ${To}ms, refresh threshold is 3 ticks`),r<=3&&await this._callRefreshToken(n.refresh_token)})}catch(e){console.error(`Auto refresh tick failed with error. This is likely a transient error.`,e)}}finally{this._debug(`#_autoRefreshTokenTick()`,`end`)}})}catch(e){if(e instanceof nc)this._debug(`auto refresh token tick lock not available`);else throw e}return}if(this.refreshingDeferred!==null){this._debug(`#_autoRefreshTokenTick()`,`refresh already in flight, skipping`);return}try{let e=Date.now();try{await this._useSession(async t=>{let{data:{session:n}}=t;if(!n||!n.refresh_token||!n.expires_at){this._debug(`#_autoRefreshTokenTick()`,`no session`);return}let r=Math.floor((n.expires_at*1e3-e)/To);this._debug(`#_autoRefreshTokenTick()`,`access token expires in ${r} ticks, a tick lasts ${To}ms, refresh threshold is 3 ticks`),r<=3&&await this._callRefreshToken(n.refresh_token)})}catch(e){console.error(`Auto refresh tick failed with error. This is likely a transient error.`,e)}}finally{this._debug(`#_autoRefreshTokenTick()`,`end`)}}async _handleVisibilityChange(){if(this._debug(`#_handleVisibilityChange()`),!ps()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(e){this._debug(`#visibilityChangedCallback`,`error`,e)}},window==null||window.addEventListener(`visibilitychange`,this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error(`_handleVisibilityChange`,e)}}async _onVisibilityChanged(e){let t=`#_onVisibilityChanged(${e})`;if(this._debug(t,`visibilityState`,document.visibilityState),document.visibilityState===`visible`){if(this.autoRefreshToken&&this._startAutoRefresh(),!e)if(await this.initializePromise,this.lock!=null)await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!==`visible`){this._debug(t,`acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting`);return}await this._recoverAndRefresh()});else{if(document.visibilityState!==`visible`){this._debug(t,`visibilityState is no longer visible, skipping recovery`);return}await this._recoverAndRefresh()}}else document.visibilityState===`hidden`&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(e,t,n){let r=[`provider=${encodeURIComponent(t)}`];if(n?.redirectTo&&r.push(`redirect_to=${encodeURIComponent(n.redirectTo)}`),n?.scopes&&r.push(`scopes=${encodeURIComponent(n.scopes)}`),this.flowType===`pkce`){let[e,t]=await As(this.storage,this.storageKey),n=new URLSearchParams({code_challenge:`${encodeURIComponent(e)}`,code_challenge_method:`${encodeURIComponent(t)}`});
20r.push(n.toString())}if(n?.queryParams){let e=new URLSearchParams(n.queryParams);r.push(e.toString())}return n?.skipBrowserRedirect&&r.push(`skip_http_redirect=${n.skipBrowserRedirect}`),`${e}?${r.join(`&`)}`}async _unenroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;return r?this._returnResult({data:null,error:r}):await I(this.fetch,`DELETE`,`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:n?.session?.access_token})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _enroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return this._returnResult({data:null,error:r});let i=Object.assign({friendly_name:e.friendlyName,factor_type:e.factorType},e.factorType===`phone`?{phone:e.phone}:e.factorType===`totp`?{issuer:e.issuer}:{}),{data:a,error:o}=await I(this.fetch,`POST`,`${this.url}/factors`,{body:i,headers:this.headers,jwt:n?.session?.access_token});return o?this._returnResult({data:null,error:o}):(e.factorType===`totp`&&a.type===`totp`&&a?.totp?.qr_code&&(a.totp.qr_code=`data:image/svg+xml;utf-8,${a.totp.qr_code}`),this._returnResult({data:a,error:null}))})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _verify(e){let t=async()=>{try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return this._returnResult({data:null,error:r});let i=Object.assign({challenge_id:e.challengeId},`webauthn`in e?{webauthn:Object.assign(Object.assign({},e.webauthn),{credential_response:e.webauthn.type===`create`?hc(e.webauthn.credential_response):gc(e.webauthn.credential_response)})}:{code:e.code}),{data:a,error:o}=await I(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/verify`,{body:i,headers:this.headers,jwt:n?.session?.access_token});return o?this._returnResult({data:null,error:o}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+a.expires_in},a)),await this._notifyAllSubscribers(`MFA_CHALLENGE_VERIFIED`,a),this._returnResult({data:a,error:o}))})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}};return this.lock==null?t():this._acquireLock(this.lockAcquireTimeout,t)}async _challenge(e){let t=async()=>{try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return this._returnResult({data:null,error:r});let i=await I(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/challenge`,{body:e,headers:this.headers,jwt:n?.session?.access_token});if(i.error)return i;let{data:a}=i;if(a.type!==`webauthn`)return{data:a,error:null};switch(a.webauthn.type){case`create`:return{data:Object.assign(Object.assign({},a),{webauthn:Object.assign(Object.assign({},a.webauthn),{credential_options:Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:pc(a.webauthn.credential_options.publicKey)})})}),error:null};case`request`:return{data:Object.assign(Object.assign({},a),{webauthn:Object.assign(Object.assign({},a.webauthn),{credential_options:Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:mc(a.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}};return this.lock==null?t():this._acquireLock(this.lockAcquireTimeout,t)}async _challengeAndVerify(e){let{data:t,error:n}=await this._challenge({factorId:e.factorId});return n?this._returnResult({data:null,error:n}):await this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}async _listFactors(){let{data:{user:e},error:t}=await this.getUser();if(t)return{data:null,error:t};let n={all:[],phone:[],totp:[],webauthn:[]};for(let t of e?.factors??[])n.all.push(t),t.status===`verified`&&n[t.factor_type].push(t);return{data:n,error:null}}async _getAuthenticatorAssuranceLevel(e){if(e)try{let{payload:t}=Cs(e),n=null;t.aal&&(n=t.aal);let r=n,{data:{user:i},error:a}=await this.getUser(e);if(a)return this._returnResult({data:null,error:a});((i?.factors)?.filter(e=>e.status===`verified`)??[]).length>0&&(r=`aal2`);let o=t.amr||[];return{data:{currentLevel:n,nextLevel:r,currentAuthenticationMethods:o},error:null}}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}let{data:{session:t},error:n}
20=await this.getSession();if(n)return this._returnResult({data:null,error:n});if(!t)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let{payload:r}=Cs(t.access_token),i=null;r.aal&&(i=r.aal);let a=i;(t.user.factors?.filter(e=>e.status===`verified`)??[]).length>0&&(a=`aal2`);let o=r.amr||[];return{data:{currentLevel:i,nextLevel:a,currentAuthenticationMethods:o},error:null}}async _getAuthorizationDetails(e){try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;return r?this._returnResult({data:null,error:r}):n?await I(this.fetch,`GET`,`${this.url}/oauth/authorizations/${e}`,{headers:this.headers,jwt:n.access_token,xform:e=>({data:e,error:null})}):this._returnResult({data:null,error:new zo})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _approveAuthorization(e,t){try{return await this._useSession(async n=>{let{data:{session:r},error:i}=n;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new zo});let a=await I(this.fetch,`POST`,`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:`approve`},xform:e=>({data:e,error:null})});return a.data&&a.data.redirect_url&&ps()&&!t?.skipBrowserRedirect&&window.location.assign(a.data.redirect_url),a})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _denyAuthorization(e,t){try{return await this._useSession(async n=>{let{data:{session:r},error:i}=n;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new zo});let a=await I(this.fetch,`POST`,`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:`deny`},xform:e=>({data:e,error:null})});return a.data&&a.data.redirect_url&&ps()&&!t?.skipBrowserRedirect&&window.location.assign(a.data.redirect_url),a})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _listOAuthGrants(){try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;return n?this._returnResult({data:null,error:n}):t?await I(this.fetch,`GET`,`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:t.access_token,xform:e=>({data:e,error:null})}):this._returnResult({data:null,error:new zo})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _revokeOAuthGrant(e){try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;return r?this._returnResult({data:null,error:r}):n?(await I(this.fetch,`DELETE`,`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:n.access_token,query:{client_id:e.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new zo})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async fetchJwk(e,t={keys:[]}){let n=t.keys.find(t=>t.kid===e);if(n)return n;let r=Date.now();if(n=this.jwks.keys.find(t=>t.kid===e),n&&this.jwks_cached_at+6e5>r)return n;let{data:i,error:a}=await I(this.fetch,`GET`,`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(a)throw a;return!i.keys||i.keys.length===0||(this.jwks=i,this.jwks_cached_at=r,n=i.keys.find(t=>t.kid===e),!n)?null:n}async getClaims(e,t={}){try{let n=e;if(!n){let{data:e,error:t}
20=await this.getSession();if(t||!e.session)return this._returnResult({data:null,error:t});n=e.session.access_token}let{header:r,payload:i,signature:a,raw:{header:o,payload:s}}=Cs(n);if(!t?.allowExpired)try{Ns(i.exp)}catch(e){throw new Qo(e instanceof Error?e.message:`JWT validation failed`)}let c=!r.alg||r.alg.startsWith(`HS`)||!r.kid||!(`crypto`in globalThis&&`subtle`in globalThis.crypto)?null:await this.fetchJwk(r.kid,t?.keys?{keys:t.keys}:t?.jwks);if(!c){let{error:e}=await this.getUser(n);if(e)throw e;return{data:{claims:i,header:r,signature:a},error:null}}let l=Ps(r.alg),u=await crypto.subtle.importKey(`jwk`,c,l,!0,[`verify`]);if(!await crypto.subtle.verify(l,u,a,ls(`${o}.${s}`)))throw new Qo(`Invalid JWT signature`);return{data:{claims:i,header:r,signature:a},error:null}}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async signInWithPasskey(e){Ls(this.experimental);try{if(!vc())return this._returnResult({data:null,error:new Lo(`Browser does not support WebAuthn`,null)});let{data:t,error:n}=await this._startPasskeyAuthentication({options:{captchaToken:e?.options?.captchaToken}});if(n||!t)return this._returnResult({data:null,error:n});let{data:r,error:i}=await bc({publicKey:mc(t.options),signal:e?.options?.signal??fc.createNewAbortSignal()});if(i||!r)return this._returnResult({data:null,error:i??new Lo(`WebAuthn ceremony failed`,null)});let a=gc(r);return this._verifyPasskeyAuthentication({challengeId:t.challenge_id,credential:a})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async registerPasskey(e){Ls(this.experimental);try{if(!vc())return this._returnResult({data:null,error:new Lo(`Browser does not support WebAuthn`,null)});let{data:t,error:n}=await this._startPasskeyRegistration();if(n||!t)return this._returnResult({data:null,error:n});let{data:r,error:i}=await yc({publicKey:pc(t.options),signal:e?.options?.signal??fc.createNewAbortSignal()});if(i||!r)return this._returnResult({data:null,error:i??new Lo(`WebAuthn ceremony failed`,null)});let a=hc(r);return this._verifyPasskeyRegistration({challengeId:t.challenge_id,credential:a})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _startPasskeyRegistration(){Ls(this.experimental);try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)return this._returnResult({data:null,error:n});if(!t)return this._returnResult({data:null,error:new zo});let{data:r,error:i}=await I(this.fetch,`POST`,`${this.url}/passkeys/registration/options`,{headers:this.headers,jwt:t.access_token,body:{}});return i?this._returnResult({data:null,error:i}):this._returnResult({data:r,error:null})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _verifyPasskeyRegistration(e){Ls(this.experimental);try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;if(r)return this._returnResult({data:null,error:r});if(!n)return this._returnResult({data:null,error:new zo});let{data:i,error:a}=await I(this.fetch,`POST`,`${this.url}/passkeys/registration/verify`,{headers:this.headers,jwt:n.access_token,body:{challenge_id:e.challengeId,credential:e.credential}});return a?this._returnResult({data:null,error:a}):this._returnResult({data:i,error:null})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _startPasskeyAuthentication(e){Ls(this.experimental);try{let{data:t,error:n}=await I(this.fetch,`POST`,`${this.url}/passkeys/authentication/options`,{headers:this.headers,body:{gotrue_meta_security:{captcha_token:e?.options?.captchaToken}}});return n?this._returnResult({data:null,error:n}):this._returnResult({data:t,error:null})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _verifyPasskeyAuthentication(e){Ls(this.experimental);try{let{data:t,error:n}=await I(this.fetch,`POST`,`${this.url}/passkeys/authentication/verify`,{headers:this.headers,body:{challenge_id:e.challengeId,credential:e.credential},xform:Ks});return n?this._returnResult({data:null,error:n}):(t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers(`SIGNED_IN`,t.session)),this._returnResult({data:t,error:null}))}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _listPasskeys(){Ls(this.experimental);try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)return this._returnResult({data:null,error:n});if(!t)return this._returnResult({data:null,error:new zo});let{data:r,error:i}=await I(this.fetch,`GET`,`${this.url}/passkeys`,{headers:this.headers,jwt:t.access_token,xform:e=>({data:e,error:null})});return i?this._returnResult({data:null,error:i}):this._returnResult({data:r,error:null})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _updatePasskey(e){Ls(this.experimental);try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;if(r)return this._returnResult({data:null,error:r});if(!n)return this._returnResult({data:null,error:new zo});let{data:i,error:a}=await I(this.fetch,`PATCH`,`${this.url}/passkeys/${e.passkeyId}`,{headers:this.headers,jwt:n.access_token,body:{friendly_name:e.friendlyName}});return a?this._returnResult({data:null,error:a}):this._returnResult({data:i,error:null})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}async _deletePasskey(e){Ls(this.experimental);try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;if(r)return this._returnResult({data:null,error:r});if(!n)return this._returnResult({data:null,error:new zo});let{error:i}=await I(this.fetch,`DELETE`,`${this.url}/passkeys/${e.passkeyId}`,{headers:this.headers,jwt:n.access_token,noResolveJson:!0});return i?this._returnResult({data:null,error:i}):this._returnResult({data:null,error:null})})}catch(e){if(F(e))return this._returnResult({data:null,error:e});throw e}}};kc.nextInstanceID={};var Ac=kc,jc=`modulepreload`,Mc=function(e){return`/`+e},Nc={},L=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Mc(t,n),t in Nc)return;Nc[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:jc,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n
20)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Pc=`2.110.8`,Fc=``,Ic;if(typeof Deno<`u`)Fc=`deno`,Ic=Deno.version?.deno;else if(typeof document<`u`)Fc=`web`;else if(typeof navigator<`u`&&navigator.product===`ReactNative`)Fc=`react-native`;else{var Lc;Fc=`node`;let e=globalThis.process;Ic=e==null||(Lc=e.version)==null?void 0:Lc.replace(/^v/,``)}var Rc=[`runtime=${Fc}`];Ic&&Rc.push(`runtime-version=${Ic}`);var zc={headers:{"X-Client-Info":`supabase-js/${Pc}; ${Rc.join(`; `)}`}},Bc={schema:`public`},Vc={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:`implicit`},Hc={},Uc={enabled:!1,respectSamplingDecision:!0};function Wc(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}var Gc=null,Kc=`@opentelemetry/api`;function qc(){return Gc===null&&(Gc=L(()=>import(Kc),[]).catch(()=>null)),Gc}function Jc(){return Wc(this,void 0,void 0,function*(){try{let e=yield qc();if(!e||!e.propagation||!e.context)return null;let t={};e.propagation.inject(e.context.active(),t);let n=t.traceparent;return n?{traceparent:n,tracestate:t.tracestate,baggage:t.baggage}:null}catch{return null}})}function Yc(e){if(!e||typeof e!=`string`)return null;let t=e.split(`-`);if(t.length!==4)return null;let[n,r,i,a]=t;if(n.length!==2||r.length!==32||i.length!==16||a.length!==2)return null;let o=/^[0-9a-f]+$/i;return!o.test(n)||!o.test(r)||!o.test(i)||!o.test(a)||r===`00000000000000000000000000000000`||i===`0000000000000000`?null:{version:n,traceId:r,parentId:i,traceFlags:a,isSampled:(parseInt(a,16)&1)==1}}function Xc(e,t){if(!e||!t||t.length===0)return!1;let n;if(e instanceof URL)n=e;else try{n=new URL(e)}catch{return!1}for(let e of t)try{if(typeof e==`string`){if(Zc(n.hostname,e))return!0}else if(e instanceof RegExp){if(e.test(n.hostname))return!0}else if(typeof e==`function`&&e(n))return!0}catch{continue}return!1}function Zc(e,t){if(t===e)return!0;if(t.startsWith(`*.`)){let n=t.slice(2);if(e.endsWith(n)&&(e===n||e.endsWith(`.`+n)))return!0}return!1}function Qc(e){let t=[];try{let n=new URL(e);t.push(n.hostname)}catch{}return t.push(`*.supabase.co`,`*.supabase.in`),t.push(`localhost`,`127.0.0.1`,`[::1]`),t}function $c(e){"@babel/helpers - typeof";return $c=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},$c(e)}function el(e,t){if($c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if($c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function tl(e){var t=el(e,`string`);return $c(t)==`symbol`?t:t+``}function nl(e,t,n){return(t=tl(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function il(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?rl(Object(n),!0).forEach(function(t){nl(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var al=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),ol=()=>Headers,sl=e=>e.startsWith(`sb_publishable_`)||e.startsWith(`sb_secret_`),cl=`sb_temp_`,ll=new Set,ul=e=>{if(!e.startsWith(`sb_`)||sl(e)||e.startsWith(cl))return;let t=e.match(/^sb_[a-zA-Z0-9]+_/)?.[0]??`unknown`;
20ll.has(t)||(ll.add(t),console.warn(`@supabase/supabase-js: Unrecognized Supabase API key format. The client will proceed and send this key as-is; if you see authentication errors you may need to upgrade @supabase/supabase-js to a version that recognizes this key type.`))},dl=(e,t,n,r,i,a)=>{let o=al(r),s=ol(),c=i?.enabled===!0,l=i?.respectSamplingDecision!==!1,u=c?Qc(t):null,d=!(a?.omitApiKeyAsBearer&&sl(e));return async(t,r)=>{let i=await n(),a=new s(r?.headers);if(a.has(`apikey`)||a.set(`apikey`,e),!a.has(`Authorization`)){let t=i??(d?e:null);t&&a.set(`Authorization`,`Bearer ${t}`)}if(u){let e=await fl(t,u,l);e&&(e.traceparent&&!a.has(`traceparent`)&&a.set(`traceparent`,e.traceparent),e.tracestate&&!a.has(`tracestate`)&&a.set(`tracestate`,e.tracestate),e.baggage&&!a.has(`baggage`)&&a.set(`baggage`,e.baggage))}return o(t,il(il({},r),{},{headers:a}))}};async function fl(e,t,n){if(!Xc(typeof e==`string`||e instanceof URL?e:e.url,t))return null;let r=await Jc();if(!r||!r.traceparent)return null;if(n){let e=Yc(r.traceparent);if(e&&!e.isSampled)return null}return r}function pl(e){return typeof e==`boolean`?{enabled:e}:e}function ml(e){return e.endsWith(`/`)?e:e+`/`}function hl(e,t){let{db:n,auth:r,realtime:i,global:a}=e,{db:o,auth:s,realtime:c,global:l}=t,u=pl(e.tracePropagation),d=pl(t.tracePropagation),f={db:il(il({},o),n),auth:il(il({},s),r),realtime:il(il({},c),i),storage:{},global:il(il(il({},l),a),{},{headers:il(il({},l?.headers??{}),a?.headers??{})}),tracePropagation:{enabled:u?.enabled??d?.enabled??!1,respectSamplingDecision:u?.respectSamplingDecision??d?.respectSamplingDecision??!0},accessToken:async()=>``};return e.accessToken?f.accessToken=e.accessToken:delete f.accessToken,f}function gl(e){let t=e?.trim();if(!t)throw Error(`supabaseUrl is required.`);if(!t.match(/^https?:\/\//i))throw Error(`Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.`);try{return new URL(ml(t))}catch{throw Error(`Invalid supabaseUrl: Provided URL is malformed.`)}}var _l=class extends Ac{constructor(e){super(e)}},vl=class{constructor(e,t,n){this.supabaseUrl=e,this.supabaseKey=t;let r=gl(e);if(!t)throw Error(`supabaseKey is required.`);ul(t),this.realtimeUrl=new URL(`realtime/v1`,r),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace(`http`,`ws`),this.authUrl=new URL(`auth/v1`,r),this.storageUrl=new URL(`storage/v1`,r),this.functionsUrl=new URL(`functions/v1`,r);let i=`sb-${r.hostname.split(`.`)[0]}-auth-token`,a={db:Bc,realtime:Hc,auth:il(il({},Vc),{},{storageKey:i}),global:zc,tracePropagation:Uc},o=hl(n??{},a);this.settings=o,this.storageKey=o.auth.storageKey??``,this.headers=o.global.headers??{},o.accessToken?(this.accessToken=o.accessToken,this.auth=new Proxy({},{get:(e,t)=>{throw Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(t)} is not possible`)}})):this.auth=this._initSupabaseAuthClient(o.auth??{},this.headers,o.global.fetch),this.fetch=dl(t,e,this._getSessionToken.bind(this),o.global.fetch,o.tracePropagation),this.functionsFetch=dl(t,e,this._getSessionToken.bind(this),o.global.fetch,o.tracePropagation,{omitApiKeyAsBearer:!0}),this.realtime=this._initRealtimeClient(il({headers:this.headers,accessToken:this._getAccessToken.bind(this),fetch:this.fetch},o.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(e=>this.realtime.setAuth(e)).catch(e=>console.warn(`Failed to set initial Realtime auth token:`,e)),this.rest=new ai(new URL(`rest/v1`,r).href,{headers:this.headers,schema:o.db.schema,fetch:this.fetch,timeout:o.db.timeout,urlLengthLimit:o.db.urlLengthLimit}),this.storage=new Co(this.storageUrl.href,this.headers,this.fetch,n?.storage),o.accessToken||this._listenForAuthEvents()}get functions(){return new Br(this.functionsUrl.href,{headers:this.headers,customFetch:this.functionsFetch})}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,t={},n={head:!1,get:!1,count:void 0}){return this.rest.rpc(e,t,n)}channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getSessionToken(){var e=this;if(e.accessToken)return await e.accessToken();let{data:t}=await e.auth.getSession();return t.session?.access_token??null}async _getAccessToken(){var e=this;return await e._getSessionToken()??e.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,userStorage:i,storageKey:a,flowType:o,lock:s,debug:c,throwOnError:l,experimental:u,lockAcquireTimeout:d,skipAutoInitialize:f},p,m){let h={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new _l({url:this.authUrl.href,headers:il(il({},h),p),storageKey:a,autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,userStorage:i,flowType:o,lock:s,debug:c,throwOnError:l,experimental:u,fetch:m,lockAcquireTimeout:d,skipAutoInitialize:f,hasCustomAuthorizationHeader:Object.keys(this.headers).some(e=>e.toLowerCase()===`authorization`)})}_initRealtimeClient(e){return new Ca(this.realtimeUrl.href,il(il({},e),{},{params:il(il({},{apikey:this.supabaseKey}),e?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,`CLIENT`,t?.access_token)})}_handleTokenChanged(e,t,n){(e===`TOKEN_REFRESHED`||e===`SIGNED_IN`||e===`INITIAL_SESSION`)&&this.changedAccessToken!==n?(this.changedAccessToken=n,this.realtime.setAuth(n)):e===`SIGNED_OUT`&&(this.realtime.setAuth(),t==`STORAGE`&&this.auth.signOut(),this.changedAccessToken=void 0)}},yl=(e,t,n)=>new vl(e,t,n);function bl(){if(typeof window<`u`||globalThis.Deno!==void 0)return!1;let e=globalThis.process;if(!e)return!1;let t=e.version;if(t==null)return!1;let n=t.match(/^v(\d+)\./);return n?parseInt(n[1],10)<=20:!1}bl()&&console.warn(`â ï¸ Node.js 20 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to N
20ode.js 22 or later. For more information, visit: https://github.com/orgs/supabase/discussions/45715`);function xl(){if(typeof window>`u`)return;let e=location.hostname,t=[`lovableproject.com`,`lovableproject-dev.com`,`lovable.app`,`gpt-eng.com`,`gptengineer.run`].some(t=>e===t||e.endsWith(`.`+t))?e.match(RegExp(`^(?:id-preview(?:-[a-z0-9]+)?|project)--([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})(?:-dev)?(?=\\.|$)`,`i`))?.[1]??e.match(RegExp(`^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})(?=[.-])`,`i`))?.[1]:void 0,n=window.parent&&window.parent!==window;if(!t||!n)return localStorage;let r=e.endsWith(`.lovableproject-dev.com`)||e.endsWith(`.gpt-eng.com`),i=r?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,a=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:``),o=a&&i.test(a)?[a]:r?[`https://lovable.dev`,`http://localhost:3000`]:[`https://lovable.dev`],s=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),c=(e,n,r)=>new Promise(i=>{let a=s(),c=!1,l,u=e=>{c||(c=!0,clearTimeout(l),window.removeEventListener(`message`,d),i(e))},d=e=>{if(o.indexOf(e.origin)<0)return;let t=e.data;t&&t.type===`lovable-preview-auth:result`&&t.requestId===a&&u(t)};window.addEventListener(`message`,d);let f={type:e,requestId:a,projectId:t,key:n};r!==void 0&&(f.value=r);for(let e of o)window.parent.postMessage(f,e);l=setTimeout(()=>u(null),2e3)}),l=!0;return{getItem:async e=>{let t=await c(`lovable-preview-auth:get`,e);return!t&&l&&(await new Promise(e=>setTimeout(e,250)),t=await c(`lovable-preview-auth:get`,e)),l=!1,t&&t.ok&&typeof t.value==`string`?t.value===``?(localStorage.removeItem(e),null):t.value:localStorage.getItem(e)},setItem:(e,t)=>(localStorage.setItem(e,t),c(`lovable-preview-auth:set`,e,t).then(n=>{n&&n.ok&&typeof n.value==`string`&&localStorage.getItem(e)===t&&(n.value===``?localStorage.removeItem(e):localStorage.setItem(e,n.value))})),removeItem:e=>(localStorage.removeItem(e),c(`lovable-preview-auth:remove`,e).then(()=>void 0))}}function Sl(e){return e.startsWith(`sb_publishable_`)||e.startsWith(`sb_secret_`)}function Cl(e){return(t,n)=>{let r=new Headers(typeof Request<`u`&&t instanceof Request?t.headers:void 0);return n?.headers&&new Headers(n.headers).forEach((e,t)=>r.set(t,e)),Sl(e)&&r.get(`Authorization`)===`Bearer ${e}`&&r.delete(`Authorization`),r.set(`apikey`,e),fetch(t,{...n,headers:r})}}function wl(){let e=`sb_publishable_FFWZ3cgjlJ1PBieEJtyCuA_krLwmHuB`;return yl(`https://saxllsmittogucaogvoa.supabase.co`,e,{global:{fetch:Cl(e)},auth:{storage:xl(),persistSession:!0,autoRefreshToken:!0}})}var Tl,El=new Proxy({},{get(e,t,n){return Tl||=wl(),Reflect.get(Tl,t,n)}}),Dl=Dr({type:`function`}).client(async({next:e})=>{let{data:t}=await El.auth.getSession(),n=t.session?.access_token;return e({headers:n?{Authorization:`Bearer ${n}`}:{}})}),Ol=Dr(),kl=kr(()=>({functionMiddleware:[Dl],requestMiddleware:[Ol]})),Al=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},jl=new class extends Al{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},Ml={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Nl=new class{#e=Ml;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Pl(e){setTimeout(e,0)}var Fl=typeof window>`u`||`Deno`in globalThis;function Il(){}function Ll(e,t){return typeof e==`function`?e(t):e}function Rl(e){return typeof e==`number`&&e>=0&&e!==1/0}function zl(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Bl(e,t){return typeof e==`function`?e(t):e}function Vl(e,t){return typeof e==`function`?e(t):e}function Hl(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==Wl(o,t.options))return!1}else if(!Kl(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function Ul(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Gl(t.options.mutationKey)!==Gl(a))return!1}else if(!Kl(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Wl(e,t){return(t?.queryKeyHashFn||Gl)(e)}function Gl(e){return JSON.stringify(e,(e,t)=>V(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function Kl(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>Kl(e[n],t[n])):!1}var R=Object.prototype.hasOwnProperty;function ql(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=B(e)&&B(t);if(!r&&!(V(e)&&V(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:R.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=ql(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function z(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function B(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function V(e){if(!Jl(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Jl(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Jl(e){return Object.prototype.toString.call(e)===`[object Object]`}function Yl(e){return new Promise(t=>{Nl.setTimeout(t,e)})}function Xl(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:ql(e,t)}function Zl(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function Ql(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var $l=Symbol();function eu(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===$l?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function tu(e,t){return typeof e==`function`?e(...t):!!e}function nu(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ru=(()=>{let e=()=>Fl;return{isServer(){return e()},setIsServer(t){e=t}}})();function iu(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var au=Pl;function ou(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=au,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>
20{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var su=ou(),cu=new class extends Al{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function lu(e){return Math.min(1e3*2**e,3e4)}function uu(e){return(e??`online`)===`online`?cu.isOnline():!0}var du=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function fu(e){let t=!1,n=0,r,i=iu(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new du(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>jl.isFocused()&&(e.networkMode===`always`||cu.isOnline())&&e.canRun(),u=()=>uu(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(ru.isServer()?0:3),o=e.retryDelay??lu,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),Yl(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var pu=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Rl(this.gcTime)&&(this.#e=Nl.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(ru.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(Nl.clearTimeout(this.#e),this.#e=void 0)}};function mu(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{nu(e,()=>t.signal,()=>n=!0)},u=eu(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?Ql:Zl;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?gu:hu,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:hu(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function hu(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function gu(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var _u=class extends pu{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=bu(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=bu(this.options);e.data!==void 0&&(this.setState(yu(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Xl(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;
20return this.#a?.cancel(e),t?t.then(Il).catch(Il):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>Vl(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===$l||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>Bl(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!zl(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=eu(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?mu(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=fu({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof du&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof du){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...vu(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...yu(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;
vendor: 4,112 bytes, line 20
20return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),su.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function vu(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:uu(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function yu(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function bu(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var xu=class extends pu{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Su(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=fu({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPau
20sed:!1,status:`error`}}};this.state=t(this.state),su.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Su(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Cu=class extends Al{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new xu({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=wu(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=wu(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=wu(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=wu(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>
vendor: 4,118 bytes, line 20
20t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){su.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Ul(t,e))}findAll(e={}){return this.getAll().filter(t=>Ul(e,t))}notify(e){su.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return su.batch(()=>Promise.all(e.map(e=>e.continue().catch(Il))))}};function wu(e){return e.options.scope?.id}var Tu=class extends Al{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??Wl(r,t),a=this.get(i);return a||(a=new _u({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){su.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Hl(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>Hl(e,t)):t}notify(e){su.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){su.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){su.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Eu=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Tu,this.#t=e.mutationCache||new Cu,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=jl.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=cu.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Bl(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=Ll(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return su.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;su.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return su.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=su.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(Il).catch(Il)}invalidateQueries(e,t={}){return su.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=su.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(Il)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(Il)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(Bl(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}
20prefetchQuery(e){return this.fetchQuery(e).then(Il).catch(Il)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Il).catch(Il)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return cu.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(Gl(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{Kl(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(Gl(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{Kl(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=Wl(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===$l&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Du=O.createContext(void 0),Ou=e=>{let t=O.useContext(Du);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},ku=({client:e,children:t})=>(O.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,k.jsx)(Du.Provider,{value:e,children:t})),Au=`/assets/styles-BiR1tpc6.css`,ju={version:1,asset_id:`cd6d285b-1f2a-4fe8-bf26-43fabd9a89f6`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/cd6d285b-1f2a-4fe8-bf26-43fabd9a89f6/og-home.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/cd6d285b-1f2a-4fe8-bf26-43fabd9a89f6/og-home.jpg`,original_filename:`og-home.jpg`,size:75963,content_type:`image/jpeg`,created_at:`2026-07-28T02:49:59Z`},Mu=Ie(`calendar-days`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,key:`1hopcy`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M16 14h.01`,key:`1gbofw`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M16 18h.01`,key:`kzsmim`}]]),Nu=Ie(`mail`,[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`,key:`132q7q`}],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}]]),Pu=Ie(`map-pin`,[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]),Fu=Ie(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Iu=Ie(`phone`,[[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]),Lu=Ie(`user`,[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`,key:`975kel`}],[`circle`,{cx:`12`,cy:`7`,r:`4`,key:`17ys0d`}]]),Ru=Ie(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),zu=Ie(`volume-x`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),Bu=Ie(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function Vu(){let[e,t]=(0,O.useState)(null),[n,r]=(0,O.useState)(!0);return(0,O.useEffect)(()=>{let{data:e}=El.auth.onAuthStateChange((e,n)=>{t(n)});return El.auth.getSession().then(({data:e})=>{t(e.session),r(!1)}),()=>e.subscription.unsubscribe()},[]),{session:e,loading:n}}var H={name:`Ammonite Laser Spa`,streetAddress:`1 Boerum Place`,addressLocality:`Brooklyn`,addressRegion:`NY`,postalCode:`11201`,addressCountry:`US`,phoneDis
20play:`+1 718 813 2076`,phoneHref:`tel:+17188132076`,phoneSchema:`+1-718-813-2076`,email:`[email protected]`,emailHref:`mailto:[email protected]`,latitude:`40.6904`,longitude:`-73.9916`,mapUrl:`https://www.google.com/maps?q=1+Boerum+Place+Brooklyn+NY+11201`,priceRange:`$$`,bookingUrl:`https://www.fresha.com/a/ammonite-laser-spa-new-york-1-boreum-place-suites-at-jc-xq2yybrq`,googleBusinessUrl:`https://www.google.com/maps/search/?api=1&query=Ammonite+Laser+Spa+1+Boerum+Place+Brooklyn+NY+11201`},Hu=H.googleBusinessUrl,Uu=H.bookingUrl,Wu=`${H.streetAddress}, ${H.addressLocality}, ${H.addressRegion} ${H.postalCode}`,Gu={"@type":`PostalAddress`,streetAddress:H.streetAddress,addressLocality:H.addressLocality,addressRegion:H.addressRegion,postalCode:H.postalCode,addressCountry:H.addressCountry},Ku=[{"@type":`OpeningHoursSpecification`,dayOfWeek:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],opens:`09:00`,closes:`20:00`},{"@type":`OpeningHoursSpecification`,dayOfWeek:`Saturday`,opens:`10:00`,closes:`18:00`}],qu=e=>({"@context":`https://schema.org`,"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${Fe}/#business`,name:H.name,description:e.description,url:D(e.path),telephone:H.phoneSchema,email:H.email,image:D(e.image),logo:D(e.image),address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,priceRange:H.priceRange,openingHoursSpecification:Ku,areaServed:{"@type":`Place`,name:`${e.areaName}, Brooklyn, NY`},makesOffer:e.services.map(t=>({"@type":`Offer`,itemOffered:{"@type":`Service`,name:t},areaServed:{"@type":`Place`,name:`${e.areaName}, Brooklyn, NY`}}))}),Ju=[{days:`Monday â Friday`,hours:`9:00 AM â 8:00 PM`},{days:`Saturday`,hours:`10:00 AM â 6:00 PM`},{days:`Sunday`,hours:`Closed`}],Yu=[{label:`Treatments`,href:`/services`},{label:`Journal`,href:`/blog`},{label:`About`,href:`/about`},{label:`Contact`,href:`/contact`}];function Xu(){let[e,t]=(0,O.useState)(!1),n=yr(),r=Kn(),{session:i}=Vu(),a=e=>n.pathname===e||n.pathname.startsWith(`${e}/`);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`nav`,{className:`fixed inset-x-0 top-0 z-50 border-b border-border/60 bg-background/95 backdrop-blur-md`,children:[(0,k.jsxs)(`div`,{className:`max-w-screen-xl mx-auto px-6 h-16 flex items-center justify-between`,children:[(0,k.jsxs)(Oe,{to:`/`,className:`font-serif text-2xl font-light leading-[0.8] text-foreground sm:text-3xl`,children:[(0,k.jsx)(`span`,{className:`block font-serif text-xl font-light uppercase tracking-[0.32em] sm:text-2xl`,children:`Ammonite`}),(0,k.jsx)(`span`,{className:`mt-1.5 block font-sans text-[8px] font-medium uppercase tracking-[0.4em] text-muted-foreground`,children:`Laser Spa`})]}),(0,k.jsxs)(`div`,{className:`hidden md:flex items-center gap-6`,children:[Yu.map(e=>(0,k.jsx)(Oe,{to:e.href,className:`text-xs uppercase tracking-widest font-medium transition-colors ${a(e.href)?`text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:e.label},e.href)),i?(0,k.jsxs)(Oe,{to:`/portal`,className:`flex items-center gap-2 text-xs uppercase tracking-widest font-medium text-muted-foreground hover:text-foreground`,children:[(0,k.jsx)(Lu,{className:`size-4`}),`Client Portal`]}):(0,k.jsx)(Oe,{to:`/auth`,className:`text-xs uppercase tracking-widest font-medium text-muted-foreground hover:text-foreground`,children:`Sign in`}),(0,k.jsx)(`a`,{href:`tel:+17188132076`,className:`text-[10px] uppercase tracking-widest text-muted-foreground hover:text-foreground`,children:`718 813 2076`}),(0,k.jsx)(`a`,{href:Uu,target:`_blank`,rel:`noopener noreferrer`,className:`bg-foreground px-5 py-2.5 text-xs font-medium uppercase tracking-widest text-background transition-colors hover:bg-clay`,children:`Book â`})]}),(0,k.jsx)(`button`,{onClick:()=>t(!e),className:`md:hidden p-2 -mr-2 text-foreground`,"aria-label":`Toggle menu`,children:e?(0,k.jsx)(Bu,{className:`size-5`}):(0,k.jsx)(Fu,{className:`size-5`})})]}),(0,k.jsx)(`div`,{className:`h-9 overflow-hidden border-t border-border/60 bg-background`,"aria-hidden":`true`,children:(0,k.jsx)(`div`,{className:`marquee flex h-full w-max items-center gap-6 whitespace-nowrap text-[10px] uppercase tracking-[0.4em] text-muted-foreground`,children:Array.from({length:2}).map((e,t)=>(0,k.jsx)(`span`,{className:`flex gap-6 pr-6`,children:Array.from({length:4}).flatMap((e,t)=>[`Skin`,`Laser`,`Body`,`Ritual`,`Self care`,`Beauty`].map(e=>(0,k.jsxs)(`span`,{children:[e,` ·`]},`${t}-${e}`)))},t))})})]}),e&&(0,k.jsx)(`div`,{className:`fixed inset-0 z-40 bg-peach-soft pt-[6.25rem] md:hidden`,children:(0,k.jsxs)(`div`,{className:`px-6 py-12 flex flex-col gap-8`,children:[Yu.map(e=>(0,k.jsx)(Oe,{to:e.href,onClick:()=>t(!1),className:`text-3xl font-serif tracking-tight ${a(e.href)?`text-foreground`:`text-muted-foreground`}`,children:e.label},e.href)),i?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Oe,{to:`/portal`,onClick:()=>t(!1),className:`text-3xl font-serif tracking-tight text-muted-foreground`,children:`Client Portal`}),(0,k.jsx)(`button`,{onClick:async()=>{await El.auth.signOut(),t(!1),r({to:`/`,replace:!0})},className:`text-left text-3xl font-serif tracking-tight text-muted-foreground`,children:`Sign out`})]}):(0,k.jsx)(Oe,{to:`/auth`,onClick:()=>t(!1),className:`text-3xl font-serif tracking-tight text-muted-foreground`,children:`Sign in`}),(0,k.jsx)(`a`,{href:`tel:+17188132076`,onClick:()=>
20t(!1),className:`mt-4 w-full border border-foreground/20 py-4 text-center text-sm font-medium uppercase tracking-widest text-foreground`,children:`Call 718 813 2076`}),(0,k.jsx)(`a`,{href:Uu,target:`_blank`,rel:`noopener noreferrer`,onClick:()=>t(!1),className:`mt-3 w-full bg-peach-deep py-4 text-center text-sm font-medium uppercase tracking-widest text-primary-foreground`,children:`Book an appointment`})]})})]})}var Zu=[{label:`Treatments`,href:`/services`},{label:`Reviews`,href:`/reviews`},{label:`Journal`,href:`/blog`},{label:`Location & Hours`,href:`/local-citations`},{label:`Areas We Serve`,href:`/locations`},{label:`FAQ`,href:`/faq`}],Qu=`text-[10px] font-medium uppercase tracking-[0.3em]`;function $u(){return(0,k.jsx)(`footer`,{className:`border-t border-border bg-background`,children:(0,k.jsxs)(`div`,{className:`mx-auto max-w-screen-xl px-6 py-20 text-center md:py-28`,children:[(0,k.jsx)(`p`,{className:`font-serif text-2xl font-light uppercase tracking-[0.32em] md:text-3xl`,children:`Ammonite Laser Spa`}),(0,k.jsx)(`p`,{className:`${Qu} mt-4 text-muted-foreground`,children:`Brooklyn, NYC`}),(0,k.jsxs)(`nav`,{className:`${Qu} mt-10 flex flex-wrap justify-center gap-x-4 gap-y-2`,children:[(0,k.jsx)(`a`,{href:Uu,target:`_blank`,rel:`noopener noreferrer`,className:`hover:text-muted-foreground`,children:`Book`}),(0,k.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,k.jsx)(Oe,{to:`/contact`,className:`hover:text-muted-foreground`,children:`Contact`}),(0,k.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,k.jsx)(`a`,{href:`https://www.instagram.com/ammonitelaserspa`,target:`_blank`,rel:`noopener noreferrer`,className:`hover:text-muted-foreground`,children:`Instagram · @ammonitelaserspa`})]}),(0,k.jsxs)(`p`,{className:`mt-10 text-xs leading-6 text-muted-foreground`,children:[`1 Boerum Place, Brooklyn, NY 11201`,(0,k.jsx)(`br`,{}),(0,k.jsx)(`a`,{href:`tel:+17188132076`,className:`hover:text-foreground`,children:`718 813 2076`}),` `,`·`,` `,(0,k.jsx)(`a`,{href:`mailto:[email protected]`,className:`hover:text-foreground`,children:`[email protected]`})]}),(0,k.jsx)(`nav`,{className:`mt-8 flex flex-wrap justify-center gap-x-6 gap-y-2 text-[10px] uppercase tracking-[0.2em] text-muted-foreground`,children:Zu.map(e=>(0,k.jsx)(Oe,{to:e.href,className:`hover:text-foreground`,children:e.label},e.href))}),(0,k.jsxs)(`p`,{className:`mt-14 text-[10px] uppercase tracking-[0.2em] text-muted-foreground`,children:[`© `,new Date().getFullYear(),` Ammonite Laser Spa`]})]})})}var ed=`+17188132076`;function td(){return(0,k.jsx)(`div`,{className:`fixed inset-x-0 bottom-0 z-40 border-t border-border bg-background/95 p-2 backdrop-blur supports-[backdrop-filter]:bg-background/85 md:inset-x-auto md:bottom-6 md:right-6 md:border`,children:(0,k.jsxs)(`div`,{className:`mx-auto flex max-w-screen-sm items-stretch gap-2`,children:[(0,k.jsxs)(`a`,{href:Uu,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`Book an appointment with Ammonite Laser Spa`,className:`flex min-h-12 flex-[2] items-center justify-center gap-2 bg-primary px-5 py-3 text-xs font-semibold uppercase tracking-[0.16em] text-primary-foreground transition-colors hover:bg-primary/90`,children:[(0,k.jsx)(Mu,{className:`size-4`,"aria-hidden":`true`}),`Book an appointment`]}),(0,k.jsxs)(`a`,{href:`tel:${ed}`,"aria-label":`Call Ammonite Laser Spa at +1 718 813 2076`,className:`flex min-h-12 flex-1 items-center justify-center gap-2 border border-border px-4 py-3 text-xs font-medium uppercase tracking-widest transition-colors hover:bg-muted md:flex-none`,children:[(0,k.jsx)(Iu,{className:`size-4`,"aria-hidden":`true`}),` Call`]})]})})}function nd(e,t={}){if(typeof window>`u`)return;window.__lovableEvents?.captureException?.(e,{source:`react_error_boundary`,route:window.location.pathname,...t},{mechanism:`react_error_boundary`,handled:!1,severity:`error`});let n=e instanceof Response?`Response ${e.status}${e.url?` at ${e.url}`:``}`:e instanceof Error?e.message:String(e);window.__lovableReportRuntimeError?.({message:n,stack:e instanceof Error?e.stack:void 0,filename:window.location.pathname})}var rd=t(i(),1);function id(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var ad=e=>{switch(e){case`success`:return cd;case`info`:return ud;case`warning`:return ld;case`error`:return dd;default:return null}},od=Array(12).fill(0),sd=({visible:e,className:t})=>O.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(
20Boolean).join(` `),"data-visible":e},O.createElement(`div`,{className:`sonner-spinner`},od.map((e,t)=>O.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),cd=O.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},O.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),ld=O.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},O.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),ud=O.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},O.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),dd=O.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},O.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),fd=O.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},O.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),O.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),pd=()=>{let[e,t]=O.useState(document.hidden);return O.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},md=1,hd=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:md++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>
20this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],O.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(_d(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!O.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!O.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!O.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!O.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||md++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},gd=(e,t)=>{let n=t?.id||md++;return hd.addToast({title:e,...t,id:n}),n},_d=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,vd=Object.assign(gd,{success:hd.success,info:hd.info,warning:hd.warning,error:hd.error,custom:hd.custom,message:hd.message,promise:hd.promise,dismiss:hd.dismiss,loading:hd.loading},{getHistory:()=>hd.toasts,getToasts:()=>hd.getActiveToasts()});id(`
vendor: 14,859 bytes, line 20
20[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
20`);function yd(e){return e.label!==void 0}var bd=3,xd=`24px`,Sd=`16px`,Cd=4e3,wd=356,Td=14,Ed=45,Dd=200;function Od(...e){return e.filter(Boolean).join(` `)}function U(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var kd=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:v=``,duration:y,position:b,gap:x,expandByDefault:ee,classNames:S,icons:C,closeButtonAriaLabel:te=`Close toast`}=e,[ne,re]=O.useState(null),[ie,ae]=O.useState(null),[oe,se]=O.useState(!1),[ce,le]=O.useState(!1),[ue,w]=O.useState(!1),[T,de]=O.useState(!1),[fe,pe]=O.useState(!1),[me,he]=O.useState(0),[ge,_e]=O.useState(0),ve=O.useRef(n.duration||y||Cd),ye=O.useRef(null),be=O.useRef(null),xe=c===0,Se=c+1<=o,E=n.type,Ce=n.dismissible!==!1,we=n.className||``,Te=n.descriptionClassName||``,Ee=O.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),De=O.useMemo(()=>n.closeButton??p,[n.closeButton,p]),Oe=O.useMemo(()=>n.duration||y||Cd,[n.duration,y]),ke=O.useRef(0),Ae=O.useRef(0),je=O.useRef(0),Me=O.useRef(null),[Ne,D]=b.split(`-`),Pe=O.useMemo(()=>
20s.reduce((e,t,n)=>n>=Ee?e:e+t.height,0),[s,Ee]),Fe=pd(),Ie=n.invert||t,Le=E===`loading`;Ae.current=O.useMemo(()=>Ee*x+Pe,[Ee,Pe]),O.useEffect(()=>{ve.current=Oe},[Oe]),O.useEffect(()=>{se(!0)},[]),O.useEffect(()=>{let e=be.current;if(e){let t=e.getBoundingClientRect().height;return _e(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),O.useLayoutEffect(()=>{if(!oe)return;let e=be.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,_e(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[oe,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let Re=O.useCallback(()=>{le(!0),he(Ae.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},Dd)},[n,d,a,Ae]);O.useEffect(()=>{if(n.promise&&E===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||Fe?(()=>{if(je.current<ke.current){let e=new Date().getTime()-ke.current;ve.current-=e}je.current=new Date().getTime()})():ve.current!==1/0&&(ke.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),Re()},ve.current)),()=>clearTimeout(e)},[u,i,n,E,Fe,Re]),O.useEffect(()=>{n.delete&&(Re(),n.onDismiss==null||n.onDismiss.call(n,n))},[Re,n.delete]);function ze(){return C?.loading?O.createElement(`div`,{className:Od(S?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":E===`loading`},C.loading):O.createElement(sd,{className:Od(S?.loader,n?.classNames?.loader),visible:E===`loading`})}let Be=n.icon||C?.[E]||ad(E);return O.createElement(`li`,{tabIndex:0,ref:be,className:Od(_,we,S?.toast,n?.classNames?.toast,S?.default,S?.[E],n?.classNames?.[E]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":oe,"data-promise":!!n.promise,"data-swiped":fe,"data-removed":ce,"data-visible":Se,"data-y-position":Ne,"data-x-position":D,"data-index":c,"data-front":xe,"data-swiping":ue,"data-dismissible":Ce,"data-type":E,"data-invert":Ie,"data-swipe-out":T,"data-swipe-direction":ie,"data-expanded":!!(u||ee&&oe),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${ce?me:Ae.current}px`,"--initial-height":ee?`auto`:`${ge}px`,...m,...n.style},onDragEnd:()=>{w(!1),re(null),Me.current=null},onPointerDown:e=>{e.button!==2&&(Le||!Ce||(ye.current=new Date,he(Ae.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(w(!0),Me.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(T||!Ce)return;Me.current=null;let e=Number(be.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(be.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-ye.current?.getTime(),i=ne===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=Ed||a>.11){he(Ae.current),n.onDismiss==null||n.onDismiss.call(n,n),ae(ne===`x`?e>0?`right`:`left`:t>0?`down`:`up`),Re(),de(!0);return}else{var o,s;(o=be.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=be.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}pe(!1),w(!1),re(null)},onPointerMove:t=>{var n,r;if(!Me.current||!Ce||window.getSelection()?.toString().length>0)return;let i=t.clientY-Me.current.y,a=t.clientX-Me.current.x,o=e.swipeDirections??U(b);!ne&&(Math.abs(a)>1||Math.abs(i)>1)&&re(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(ne===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(ne===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&pe(!0),(n=be.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=be.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},De&&!n.jsx&&E!==`loading`?O.createElement(`button`,{"aria-label":te,"data-disabled":Le,"data-close-button":!0,onClick:Le||!Ce?()=>{}:()=>{Re(),n.onDismiss==null||n.onDismiss.call(n,n)},className:Od(S?.closeButton,n?.classNames?.closeButton)},C?.close??fd):null,(E||n.icon||n.promise)&&n.icon!==null&&(C?.[E]!==null||n.icon)?O.createElement(`div`,{"data-icon":``,className:Od(S?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||ze():null,n.type===`loading`?null:Be):null,O.createElement(`div`,{"data-content":``,className:Od(S?.content,n?.classNames?.content)},O.createElement(`div`,{"data-title":``,className:Od(S?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?O.createElement(`div`,{"data-description":``,className:Od(v,Te,S?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),O.isValidElement(n.cancel)?n.c
20ancel:n.cancel&&yd(n.cancel)?O.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{yd(n.cancel)&&Ce&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),Re())},className:Od(S?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,O.isValidElement(n.action)?n.action:n.action&&yd(n.action)?O.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{yd(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&Re())},className:Od(S?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function Ad(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function jd(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?Sd:xd;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var Md=O.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=bd,toastOptions:g,dir:_=Ad(),gap:v=Td,icons:y,containerAriaLabel:b=`Notifications`}=e,[x,ee]=O.useState([]),S=O.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),C=O.useMemo(()=>Array.from(new Set([i].concat(S.filter(e=>e.position).map(e=>e.position)))),[S,i]),[te,ne]=O.useState([]),[re,ie]=O.useState(!1),[ae,oe]=O.useState(!1),[se,ce]=O.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),le=O.useRef(null),ue=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),w=O.useRef(null),T=O.useRef(!1),de=O.useCallback(e=>{ee(t=>(t.find(t=>t.id===e.id)?.delete||hd.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return O.useEffect(()=>hd.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{ee(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{rd.flushSync(()=>{ee(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[x]),O.useEffect(()=>{if(d!==`system`){ce(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?ce(`dark`):ce(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{ce(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{ce(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),O.useEffect(()=>{x.length<=1&&ie(!1)},[x]),O.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;ie(!0),(t=le.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===le.current||le.current?.contains(document.activeElement))&&ie(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),O.useEffect(()=>{if(le.current)return()=>{w.current&&(w.current.focus({preventScroll:!0}),w.current=null,T.current=!1)}},[le.current]),O.createElement(`section`,{ref:t,"aria-label":`${b} ${ue}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},C.map((t,n)=>{let[i,a]=t.split(`-`);return S.length?O.createElement(`ol`,{key:t,dir:_===`auto`?Ad():_,tabIndex:-1,ref:le,className:c,"data-sonner-toaster":!0,"data-sonner-theme":se,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${te[0]?.height||0}px`,"--width":`${wd}px`,"--gap":`${v}px`,...m,...jd(l,u)},onBlur:e=>{T.current&&!e.currentTarget.contains(e.relatedTarget)&&(T.current=!1,w.current&&=(w.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`fal
20se`||T.current||(T.current=!0,w.current=e.relatedTarget)},onMouseEnter:()=>ie(!0),onMouseMove:()=>ie(!0),onMouseLeave:()=>{ae||ie(!1)},onDragEnd:()=>ie(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||oe(!0)},onPointerUp:()=>oe(!1)},S.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>O.createElement(kd,{key:n.id,icons:y,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:ae,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:de,toasts:S.filter(e=>e.position==n.position),heights:te.filter(e=>e.position==n.position),setHeights:ne,expandByDefault:o,gap:v,expanded:re,swipeDirections:e.swipeDirections}))):null}))}),Nd={version:1,asset_id:`cb772a35-7142-424c-b546-1ed604f4169c`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/cb772a35-7142-424c-b546-1ed604f4169c/ammonite-ambient.mp3`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/cb772a35-7142-424c-b546-1ed604f4169c/ammonite-ambient.mp3`,original_filename:`ammonite-amb
20ient.mp3`,size:1440750,content_type:`audio/mpeg`,created_at:`2026-09-23T19:20:04Z`},Pd=.18;function Fd(){let e=(0,O.useRef)(null),[t,n]=(0,O.useState)(!1);(0,O.useEffect)(()=>{let t=e.current;if(!t||(t.volume=Pd,localStorage.getItem(`ammonite-music`)===`off`))return;let r=()=>{t.play().then(()=>n(!0)).catch(()=>{})};r();let i=[`pointerdown`,`keydown`,`scroll`,`touchstart`],a=()=>{t.paused&&localStorage.getItem(`ammonite-music`)!==`off`&&r(),i.forEach(e=>window.removeEventListener(e,a))};return i.forEach(e=>window.addEventListener(e,a,{once:!0,passive:!0})),()=>i.forEach(e=>window.removeEventListener(e,a))},[]);let r=()=>{let r=e.current;r&&(t?(r.pause(),n(!1),localStorage.setItem(`ammonite-music`,`off`)):(localStorage.removeItem(`ammonite-music`),r.play().then(()=>n(!0)).catch(()=>{})))};return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`audio`,{ref:e,src:Nd.url,loop:!0,preload:`auto`}),(0,k.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),r()},"aria-label":t?`Mute music`:`Play music`,className:`fixed bottom-20 left-4 z-40 flex items-center gap-2 border border-foreground
20/20 bg-background/90 px-3 py-2 text-[10px] uppercase tracking-[0.2em] text-foreground backdrop-blur transition-colors hover:bg-foreground hover:text-background md:bottom-6 md:left-6`,children:[t?(0,k.jsx)(Ru,{className:`h-3.5 w-3.5`}):(0,k.jsx)(zu,{className:`h-3.5 w-3.5`}),(0,k.jsx)(`span`,{children:t?`Sound on`:`Sound off`})]})]})}var Id=`Ammonite Laser Spa`,Ld=`https://sunbeam-spacesammonitelaserspa.lovable.app`,Rd=`${Ld}/#business`,zd=(e,t,n,r)=>({"@type":`Offer`,itemOffered:{"@type":`Service`,name:e,description:t,provider:{"@id":Rd}},price:n,priceCurrency:`USD`,...r}),Bd={"@context":`https://schema.org`,"@graph":[{"@type":[`BeautySalon`,`HealthAndBeautyBusiness`],"@id":Rd,name:Id,description:`A private, boutique laser and skin studio in Downtown Brooklyn. Personalized laser hair removal, Laser Genesis, acne and pigmentation treatments, microneedling, Cryo Tone, Cryo Sculpt, and buccal face therapy. One-on-one sessions with a complimentary consultation for every first visit.`,url:Ld,logo:D(ju.url),image:D(ju.url),telephone:`+17188132076`,email:`[email protected]`,address:{"@type":`PostalAddress`,streetAddress:`1 Boerum Place`,addressLocality:`Brooklyn`,addressRegion:`NY`,postalCode:`11201`,addressCountry:`US`},geo:{"@type":`GeoCoordinates`,latitude:40.6904,longitude:-73.9916},hasMap:`https://www.google.com/maps?q=1+Boerum+Place+Brooklyn+NY`,openingHoursSpecification:[{"@type":`OpeningHoursSpecification`,dayOfWeek:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],opens:`09:00`,closes:`20:00`},{"@type":`OpeningHoursSpecification`,dayOfWeek:`Saturday`,opens:`09:30`,closes:`20:00`},{"@type":`OpeningHoursSpecification`,dayOfWeek:`Sunday`,opens:`09:30`,closes:`18:00`}],priceRange:`$$`,currenciesAccepted:`USD`,paymentAccepted:`Cash, Credit Card`,areaServed:[`Downtown Brooklyn, NY`,`Brooklyn Heights, NY`,`Boerum Hill, NY`,`DUMBO, NY`,`Cobble Hill, NY`,`Fort Greene, NY`,`Park Slope, NY`],sameAs:[`https://www.instagram.com/ammonitelaserspa`,`https://twitter.com/ammonitelaserspa`],hasOfferCatalog:{"@type":`OfferCatalog`,name:`Treatments`,itemListElement:[zd(`Laser Hair Removal`,`Long-term hair reduction using advanced laser technology. Safe for most skin tones and tailored to each treatment area. Areas include Brazilian, bikini, underarms, full legs, arms, face, back, chest, and full body.`,`95`,{priceSpecification:{"@type":`PriceSpecification`,price:`95`,priceCurrency:`USD`,description:`Starting from $95`}}),zd(`Laser Genesis`,`Gentle non-ablative laser that stimulates collagen, improves fine lines, and restores an even glow. Ideal for early signs of aging and preventive care. 45 minutes.`,`275`),zd(`Laser Acne Treatment`,`Targeted light-based therapy that reduces active breakouts, calms inflammation, and helps regulate oil production for clearer skin. 30 minutes.`,`150`),zd(`Laser Pigmentation Treatment`,`Precise laser energy fades sun spots, age spots, melasma, and uneven tone without damaging surrounding skin. 30â45 minutes.`,`225`),zd(`Microneedling`,`Controlled micro-injuries trigger the skin's natural repair process, improving texture, pore size, and fine lines. Pairs with growth factor serums. 60 minutes.`,`350`),zd(`Cryo Tone`,`Cold-activated body contouring that firms and smooths targeted areas using cryolipolysis and muscle stimulation. No downtime. 45 minutes.`,`200`),zd(`Cryo Sculpt`,`Intensive cryotherapy protocol to reduce stubborn fat pockets and refine body contours. Cooling panels calibrated to each area. 60 minutes.`,`325`),zd(`Buccal Face Therapy`,`An intra-oral facial sculpting massage that releases jaw tension, lifts facial contours, and improves circulation for a naturally defined look. 60 minutes.`,`275`)]}},{"@type":`WebSite`,"@id":`${Ld}/#website`,url:Ld,name:Id,publisher:{"@id":Rd},potentialAction:{"@type":`SearchAction`,target:{"@type":`EntryPoint`,urlTemplate:`/services?q={search_term_string}`},"query-input":`required name=search_term_string`}}]};function Vd(){return(0,k.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,k.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,k.jsx)(`h1`,{className:`text-7xl font-bold text-foreground`,children:`404`}),(0,k.jsx)(`h2`,{className:`mt-4 text-xl font-semibold text-foreground`,children:`Page not found`}),(0,k.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`The page you're looking for doesn't exist or has been moved.`}),(0,k.jsx)(`div`,{className:`mt-6`,children:(0,k.jsx)(Oe,{to:`/`,className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:`Go home`})})]})})}function Hd({error:e,reset:t}){console.error(e);let n=y();return(0,O.useEffect)(()=>{nd(e,{boundary:`tanstack_root_error_component`})},[e]),(0,k.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,k.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,k.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-foreground`,children:`This page didn't load`}),(0,k.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Something went wrong on our end. You can try refreshing or head back home.`}),(0,k.jsxs)(`div`,{className:`mt-6 flex flex-wrap justify-center gap-2`,children:[(0,k.jsx)(`button`,{onClick:()=>{n.invalidate(),t()},className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:`Try again`}),(0,k.jsx)(`a`,{href:`/`,className:`inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:bg-accent`,children:`Go home`})]})]})})}var W=Xn()({head:()=>({meta:[{charSet:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`},{name:`author`,content:Id},{name:`google-site-verification`,content:`XbB3cYXmLrqpgHfIlKGgrmxgETRGEPW_UVPuo_pu7Hw`},{name:`google-site-verification`,content:`q_aMkKSWwiMW821811pn39AIjpoo1cvDc9MyyVRLKAg`},{property:`og:site_name`,content:Id},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:site`,content:`@ammonitelaserspa`},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`},{name:`geo.position`,content:`40.6904;-73.9916`},{name:`ICBM`,content:`40.6904, -73.9916`}],links:[{rel:`stylesheet`,href:Au}
20,{rel:`icon`,href:`/favicon.ico`,type:`image/x-icon`},{rel:`preconnect`,href:`https://fonts.googleapis.com`},{rel:`preconnect`,href:`https://fonts.gstatic.com`,crossOrigin:`anonymous`},{rel:`stylesheet`,href:`https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..800;1,9..144,300..800&family=Karla:ital,wght@0,300..700;1,300..700&display=swap`}],scripts:[{type:`application/ld+json`,children:JSON.stringify(Bd)}]}),shellComponent:Ud,component:Wd,notFoundComponent:Vd,errorComponent:Hd});function Ud({children:e}){return(0,k.jsxs)(`html`,{lang:`en`,children:[(0,k.jsx)(`head`,{children:(0,k.jsx)(wr,{})}),(0,k.jsxs)(`body`,{children:[e,(0,k.jsx)(Tr,{})]})]})}function Wd(){let{queryClient:e}=W.useRouteContext(),t=y();return(0,O.useEffect)(()=>{let{data:n}=El.auth.onAuthStateChange(n=>{n!==`SIGNED_IN`&&n!==`SIGNED_OUT`&&n!==`USER_UPDATED`||(t.invalidate(),n!==`SIGNED_OUT`&&e.invalidateQueries())});return()=>n.subscription.unsubscribe()},[t,e]),(0,k.jsxs)(ku,{client:e,children:[(0,k.jsx)(Xu,{}),(0,k.jsx)(`main`,{className:`pt-[6.25rem]`,children:(0,k.jsx)(ur,{})}),(0,k.jsx)($u,{}),(0,k.jsx)(`div`,{className:`h-14 md:hidden`,"aria-hidden":`true`}),(0,k.jsx)(td,{}),(0,k.jsx)(Fd,{}),(0,k.jsx)(Md,{position:`top-center`})]})}var Gd=A(`/treatment-guide`)({beforeLoad:()=>{throw Ce({to:`/contact`,replace:!0})},head:()=>({meta:[{title:`Book a Consultation | Ammonite Laser Spa Brooklyn`},{name:`description`,content:`Request a personalized laser hair removal or skin treatment consultation at Ammonite Laser Spa in Brooklyn, NY.`},{property:`og:title`,content:`Book a Consultation | Ammonite Laser Spa Brooklyn`},{property:`og:description`,content:`Request a personalized laser hair removal or skin treatment consultation at Ammonite Laser Spa in Brooklyn, NY.`},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary`}]})}),Kd=c({method:`GET`}).handler(o(`82a1a9d93895598bb2def01a388e045c27f3b67db7c6d44dc8f853d1f36ab37c`)),qd=()=>L(()=>import(`./reviews-DhYmmrjA.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),Jd=`/reviews`,Yd=`Client Reviews | Laser Hair Removal in Brooklyn Heights | Ammonite Laser Spa`,Xd=`Read real client reviews of laser hair removal, Laser Genesis and microneedling at ${H.name}, ${Wu}. Share your own experience after your visit.`,Zd=A(`/reviews`)({loader:async()=>({reviews:await Kd()}),component:j(qd,`component`),head:({loaderData:e})=>{let t=Me(e?.reviews??[],H.name);return{meta:[{title:Yd},{name:`description`,content:Xd},{property:`og:title`,content:Yd},{property:`og:description`,content:Xd},{property:`og:type`,content:`website`},{property:`og:url`,content:D(Jd)},{name:`twitter:card`,content:`summary`},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:D(Jd)}],scripts:[...t?[{type:`application/ld+json`,children:JSON.stringify(t)}]:[],{type:`application/ld+json`,children:JSON.stringify(Pe([{name:`Home`,path:`/`},{name:`Client Reviews`,path:Jd}]))}]}}}),Qd={version:1,asset_id:`2865eb7d-fed5-432d-b945-3e8ed728138b`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/2865eb7d-fed5-432d-b945-3e8ed728138b/microneedling.webp`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/2865eb7d-fed5-432d-b945-3e8ed728138b/microneedling.webp`,original_filename:`microneedling.webp`,size:112642,content_type:`image/webp`,created_at:`2026-09-22T21:10:09Z`},$d=Qd.url,ef=`/assets/laser-hair-removal-1024-SBD5jfps.webp`,tf=`/assets/laser-genesis-1024-CdMkW-rO.webp`,nf={version:1,asset_id:`a778137b-66f9-4ae7-9110-5648846eae8f`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/a778137b-66f9-4ae7-9110-5648846eae8f/laser-acne.webp`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/a778137b-66f9-4ae7-9110-5648846eae8f/laser-acne.webp`,original_filename:`laser-acne.webp`,size:88056,content_type:`image/webp`,created_at:`2026-09-22T21:00:47Z`},rf={version:1,asset_id:`13986cbd-7907-4553-8119-24b418118e51`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/13986cbd-7907-4553-8119-24b418118e51/laser-pigmentation.webp`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/13986cbd-7907-4553-8119-24b418118e51/laser-pigmentation.webp`,original_filename:`laser-pigmentation.webp`,size:87600,content_type:`image/webp`,created_at:`2026-09-22T21:00:51Z`},af={version:1,asset_id:`b4982dc2-2908-4530-8e48-f1e42c7c8cec`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/b4982dc2-2908-4530-8e48-f1e42c7c8cec/laser-vein-treatment.webp`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/b4982dc2-2908-4530-8e48-f1e42c7c8cec/laser-vein-treatment.webp`,original_filename:`laser-vein-treatment.webp`,size:62514,content_type:`image/webp`,created_at:`2026-09-22T20:52:31Z`},of={version:1,asset_id:`9ffa72f6-ccc5-4a82-8f88-7f9edf8d40d4`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/9ffa72f6-ccc5-4a82-8f88-7f9edf8d40d4/cryo-tone-black.webp`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/9ffa72f6-ccc5-4a82-8f88-7f9edf8d40d4/cryo-tone-black.webp`,original_filename:`cryo-tone-black.webp`,size:58306,content_type:`image/webp`,created_at:`2026-09-22T21:26:03Z`},sf={version:1,asset_id:`ccc62079-1d54-498f-afb0-495ad93e0be1`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/ccc62079-1d54-498f-afb0-495ad93e0be1/cryo-sculpt.webp`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/ccc62079-1d54-498f-afb0-495ad93e0be1/cryo-sculpt.webp`,original_filename:`cryo-sculpt.webp`,size:54690,content_type:`image/webp`,created_at:`2026-09-22T21:29:22Z`},cf={version:1,asset_id:`f84a86fd-c5bc-4d1b-a1bd-55e79145ae54`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/f84a86fd-c5bc-4d1b-a1bd-55e79145ae54/buccal-therapy.webp`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/f84a86fd-c5bc-4d1b-a1bd-55e79145ae54/buccal-therapy.webp`,original_filename:`buccal-therapy.webp`,size:56008,content_type:`image/webp`,created_at:`2026-09-22T21:22:10Z`}
20,lf=Qd.url,uf=sf.url,df=cf.url,ff=nf.url,pf=rf.url,mf=af.url,hf=[{slug:`laser-hair-removal`,title:`Laser Hair Removal`,landingRoute:`/laser-hair-removal-brooklyn`,seoTitle:`Laser Hair Removal in Brooklyn, NY | Ammonite Laser Spa`,seoDescription:`Long-lasting laser hair removal in Brooklyn using advanced laser technology. Safe for most skin tones. Book a consultation at Ammonite Laser Spa.`,description:`Long-term hair reduction using advanced laser technology. Safe for most skin tones and tailored to each treatment area for smooth, lasting results.`,duration:`15â60 Minutes`,price:`From $95`,image:ef,alt:`Before and after facial laser treatment showing smoother, clearer skin`,longDescription:[`Ammonite's laser hair removal uses medical-grade laser technology to gently and permanently reduce unwanted hair. Each pulse targets the follicle at the root, leaving surrounding skin calm and untouched.`,`Because your body is sacred, every protocol is calibrated to your skin tone, hair density, and treatment area â so results feel natural, never forced.`],benefits:[`Long-term reduction in unwanted hair`,`Safe for most skin tones and body areas`,`Smooth finish with minimal downtime`,`Reduced ingrowns and irritation`],process:[{step:`Consultation`,detail:`We map your skin type, hair pattern, and goals.`},{step:`Treatment`,detail:`Precision laser pulses target each follicle.`},{step:`Cool down`,detail:`Cooling air calms and soothes the skin.`}],aftercare:`Avoid direct sun and heat for 48 hours. Nourish the skin with a gentle moisturizer and SPF.`,prep:[`Shave the area 12â24 hours before â do not wax, pluck, or thread for 4 weeks.`,`Avoid sun exposure and self-tanner for 2 weeks before your session.`,`Come with clean skin: no lotion, oil, deodorant, or makeup on the area.`,`Pause retinoids and exfoliating acids on the area for 3â5 days.`],aftercareSteps:[`Cool the area with a clean compress if it feels warm â mild redness is normal for 24 hours.`,`No hot showers, saunas, steam, or intense workouts for 48 hours.`,`Moisturize daily with a fragrance-free cream and wear SPF 50 on exposed skin.`,`Expect shedding 1â3 weeks after; gently exfoliate once shedding starts.`,`No waxing or plucking between sessions â shaving only.`],results:[{timeline:`After 1 session`,detail:`Hair sheds over 1â3 weeks and regrowth comes in finer and slower.`},{timeline:`After 3â4 sessions`,detail:`Noticeably patchier, softer regrowth and visibly less density.`},{timeline:`After 6â8 sessions`,detail:`Most clients see long-term reduction, with occasional maintenance.`}],faqs:[{q:`How many sessions will I need?`,a:`Most areas need 6â8 sessions spaced 4â6 weeks apart, because hair only responds while it is in its active growth phase.`},{q:`Does it hurt?`,a:`Most clients describe a warm snap. Cooling air runs throughout the session to keep the skin comfortable.`},{q:`Is it safe for deeper skin tones?`,a:`Yes. Settings are calibrated to your skin tone and hair type during consultation.`},{q:`Can I shave between sessions?`,a:`Yes â shaving is encouraged. Waxing, plucking, and threading are not, as they remove the follicle the laser targets.`}]},{slug:`laser-rejuvenation`,title:`Laser Genesis`,landingRoute:`/laser-skin-treatments-brooklyn`,seoTitle:`Laser Genesis in Brooklyn | Ammonite Laser Spa`,seoDescription:`Laser Genesis in Brooklyn boosts collagen, softens fine lines, and restores glow with zero downtime. Book your ritual at Ammonite Laser Spa.`,description:`Gentle non-ablative Laser Genesis treatment that stimulates collagen, improves fine lines, and restores an even glow â ideal for early signs of aging and preventive care.`,duration:`45 Minutes`,price:`From $275`,image:tf,alt:`Before and after Laser Genesis facial showing smoother texture, refined pores, and more even tone`,longDescription:[`A gentle, non-ablative Laser Genesis treatment that awakens your skin's natural collagen production. Over a series, fine lines soften, tone evens, and radiance returns.`,`This is skincare as ritual â quiet, intentional, and deeply restorative.`],benefits:[`Softens fine lines and early wrinkles`,`Improves overall tone and texture`,`Stimulates natural collagen renewal`,`Zero downtime`],process:[{step:`Cleanse`,detail
20:`Skin is prepped with a gentle enzyme cleanse.`},{step:`Laser pass`,detail:`Warm pulses deliver collagen-stimulating energy.`},{step:`Nourish`,detail:`Cooling mask and hydrating serums restore glow.`}],aftercare:`Skin may feel warm for a few hours. Use SPF 50 daily and hydrate generously.`,prep:[`Stop retinoids, glycolic, and salicylic acids 5 days before.`,`No sun exposure, tanning beds, or self-tanner for 2 weeks.`,`Arrive with a bare, clean face.`,`Tell us about any recent injectables â we space treatments 2 weeks apart.`],aftercareSteps:[`Skin may feel warm and look flushed for a few hours â this is expected.`,`Use a gentle cleanser and a bland, hydrating moisturizer for 3 days.`,`SPF 50 every morning, reapplied through the day.`,`Skip retinoids, acids, and scrubs for 5 days.`,`No saunas, steam rooms, or hot yoga for 48 hours.`],results:[{timeline:`Days 1â3`,detail:`A soft flush that settles into brightness.`},{timeline:`Weeks 2â4`,detail:`Tone evens out and texture begins to refine.`},{timeline:`After a series of 3â4`,detail
20:`Fine lines soften and collagen renewal continues for months.`}],faqs:[{q:`Is there any downtime?`,a:`None. Most clients return to their day immediately with only a light flush.`},{q:`How often should I come?`,a:`A series of 3â4 sessions, 4 weeks apart, then maintenance every 3â6 months.`},{q:`Can I wear makeup after?`,a:`Yes, after 12 hours â mineral makeup is gentlest on freshly treated skin.`},{q:`Is Laser Genesis safe with melasma?`,a:`Yes, with adjusted settings. We assess pigment depth at consultation first.`}]},{slug:`laser-acne-treatment`,title:`Laser Acne Treatment`,landingRoute:`/laser-acne-treatment-brooklyn`,seoTitle:`Laser Acne Treatment in Brooklyn | Ammonite Laser Spa`,seoDescription:`Gentle laser acne treatment in Brooklyn that calms breakouts, redness, and inflammation without harsh peels. Book at Ammonite Laser Spa.`,description:`Targeted light-based therapy that reduces active breakouts, calms inflammation, and helps regulate oil production for clearer skin over time.`,duration:`30 Minutes`,price:`From $150`,image:ff,alt:`Close-up of calm, healthy facial skin glowing in warm light`,longDescription:[`A calming, light-based therapy that targets the bacteria and inflammation behind breakouts â without harsh scrubs, peels, or extractions.`,`Ideal for reactive skin that needs both clarity and compassion.`],benefits:[`Reduces active breakouts`,`Calms redness and inflammation`,`Regulates excess oil`,`Softens post-acne marks over time`],process:[{step:`Assess`,detail:`We identify active zones and skin sensitivities.`},{step:`Light therapy`,detail:`Blue and near-infrared light target bacteria and calm skin.`},{step:`Barrier repair`,detail:`Soothing serum restores your skin's protective layer.`}],aftercare:`Keep skincare simple: gentle cleanser, hydrating serum, mineral SPF.`,prep:[`Pause retinoids and benzoyl peroxide for 3 days.`,`Come with clean skin â no makeup or SPF on the treatment area.`,`Let us know about oral acne medication such as isotretinoin.`,`Avoid extractions or facials for 1 week before.`],aftercareSteps:[`Keep your routine minimal: gentle cleanser, hydrating serum, mineral SPF.`,`No actives (retinol, AHA, BHA, benzoyl peroxide) for 3 days.`,`Do not pick or squeeze â purging can occur in the first week.`,`Change pillowcases and clean your phone screen while skin resets.`,`Hydrate well; oil regulation improves over the series.`],results:[{timeline:`Week 1`,detail:`Redness and inflammation visibly calm; some purging is normal.`}
20,{timeline:`Weeks 2â4`,detail:`Fewer new breakouts and less oiliness.`},{timeline:`After 4â6 sessions`,detail:`Clearer skin overall with post-acne marks fading.`}],faqs:[{q:`Will it make me break out first?`,a:`A short purge in week one is common as congestion clears. It settles quickly.`},{q:`How many sessions?`,a:`Usually 4â6 sessions, 2â3 weeks apart, then maintenance as needed.`},{q:`Can this replace my acne medication?`,a:`It complements your routine. Never stop prescribed medication without your doctor.`},{q:`Does it help acne scarring?`,a:`It softens post-acne marks. For textured scarring we usually pair it with microneedling.`}]},{slug:`laser-pigmentation-treatment`,title:`Laser Pigmentation Treatment`,landingRoute:`/laser-pigmentation-treatment-brooklyn`,seoTitle:`Laser Pigmentation Treatment in Brooklyn | Ammonite Laser Spa`,seoDescription:`Fade sun spots, melasma, and uneven tone with precision laser pigmentation treatment in Brooklyn at Ammonite Laser Spa.`,description:`Precise laser energy fades sun spots, age spots, melasma, and uneven tone without damaging surrounding skin. A series is recommended for best results.`,duration:`30â45 Minutes`,price:`From $225`,image:pf,alt:`Radiant cheek with golden light and even glowing skin`,longDescription:[`Precise laser energy breaks down excess melanin â fading sun spots, age spots, and melasma â while leaving healthy skin untouched.`,`A series of treatments reveals a more even, luminous complexion.`],benefits:[`Fades sun spots and age spots`,`Reduces melasma and uneven tone`,`Restores luminosity`,`Non-invasive with minimal downtime`],process:[{step:`Skin analysis`,detail:`We identify pigment depth and type.`},{step:`Targeted pulses`,detail:`Laser energy breaks down excess melanin.`},{step:`Recovery ritual`,detail:`Skin is cooled, calmed, and protected.`}],aftercare:`Strict daily SPF 50 for 4+ weeks. Avoid retinols for 5 days post-treatment.`,prep:[`Strictly no sun, tanning beds, or self-tanner for 4 weeks before.`,`Stop retinoids and acids 7 days before.`,`Arrive with bare, clean skin.`,`Tell us if you have a history of cold sores â we may pre-treat.`],aftercareSteps:[`Treated spots will darken and look like coffee grounds for 5â10 days â do not pick.`,`SPF 50 daily for at least 4 weeks, reapplied every 2 hours outdoors.`,`No retinols, acids, or exfoliation for 5 days.`,`Keep skin cool and hydrated; avoid saunas and steam for 48 hours.`,`Wear a hat and seek shade while the pigment lifts.`],results:[{timeline:`Days 5â10`,detail:`Darkened pigment flakes away, revealing clearer skin beneath.`}
20,{timeline:`Weeks 3â4`,detail:`Tone looks noticeably more even and luminous.`},{timeline:`After 2â4 sessions`,detail:`Sun spots and age spots fade substantially; melasma needs ongoing care.`}],faqs:[{q:`Why do my spots look darker afterwards?`,a:`That's the treated pigment rising to the surface. It flakes off naturally within 5â10 days.`},{q:`Will the pigment come back?`,a:`Sun exposure is the main trigger. Daily SPF 50 is what protects your result.`},{q:`Is melasma treatable?`,a:`It is manageable rather than curable. We use conservative settings and a maintenance plan.`},{q:`How many sessions?`,a:`Sun spots often clear in 1â3 sessions; melasma needs an ongoing series.`}]},{slug:`microneedling`,title:`Microneedling`,landingRoute:`/microneedling-brooklyn`,seoTitle:`Microneedling in Brooklyn, NY | Ammonite Laser Spa`,seoDescription:`Collagen-boosting microneedling in Brooklyn that refines texture, pores, and fine lines. Paired with growth factor serums at Ammonite Laser Spa.`,description:`Controlled micro-injuries trigger the skin's natural repair process, improving texture, pore size, and fine lines. Pairs beautifully with growth factor serums.`,duration:`60 Minutes`,price:`From $350`,image:lf,alt:`Woman gently touching her dewy glowing cheek in warm light`,longDescription:[`Microneedling awakens your skin's innate ability to renew itself. Tiny channels trigger collagen and elastin production, refining texture and softening scars.`,`We pair each session with nourishing growth factor serums for a deeper, more radiant result.`],benefits:[`Refines texture and pore size`,`Softens fine lines and scars`,`Stimulates collagen and elastin`,`Boosts serum absorption`],process:[{step:`Numbing`,detail:`A gentle topical anesthetic ensures comfort.`},{step:`Micro-channels`,detail:`Precision needling triggers renewal.`},{step:`Serum infusion`,detail:`Growth factors are pressed into fresh skin.`}],aftercare:`Skin will look flushed for 24â48 hours. Use only recommended balms and SPF.`,prep:[`Stop retinoids and acids 5 days before.`,`No sun exp
20osure or self-tanner for 2 weeks.`,`Avoid blood thinners and alcohol 24 hours before if medically able.`,`Arrive with a clean, makeup-free face; numbing takes 20 minutes.`],aftercareSteps:[`Expect a sunburn-like flush for 24â48 hours.`,`Cleanse with water only for the first 24 hours.`,`Use only the recommended balm and mineral SPF for 5 days.`,`No makeup for 24 hours, no gym or sweating for 48 hours.`,`Skip retinoids, acids, and exfoliation for 7 days.`],results:[{timeline:`Days 1â3`,detail:`Flushed, tight skin that settles into a glow.`},{timeline:`Weeks 2â4`,detail:`Texture refines and pores look smaller.`},{timeline:`After 3â6 sessions`,detail:`Scars and fine lines soften as new collagen matures over 3â6 months.`}],faqs:[{q:`Does it hurt?`,a:`Topical numbing is applied for 20 minutes first; most clients feel light pressure and vibration only.`},{q:`How soon can I wear makeup?`,a:`After 24 hours, and mineral makeup is best for the first few days.`},{q:`How many sessions for scarring?`,a:`Typically 4â6 sessions, 4â6 weeks apart, for meaningful scar improvement.`},{q:`Can I combine it with laser?`,a:`Yes, on alternating visits. We'll build the sequence together.`}]},{slug:`cryo-tone`,title:`Cryo Tone`,seoTitle:`Cryo Tone Body Contouring in Brooklyn | Ammonite Laser Spa`,seoDescription:`Cold-activated body contouring in Brooklyn that firms, tones, and smooths targeted areas. Book Cryo Tone at Ammonite Laser Spa.`,description:`Cold-activated body contouring that firms and smooths targeted areas using cryolipolysis and muscle stimulation. No downtime, gradual visible improvement.`,duration:`45 Minutes`,price:`From $200`,image:of.url,alt:`Editorial wellness photograph of a relaxed back and shoulders in a black scoop-back one-piece against a warm golden backdrop`,longDescription:[`Cryo Tone uses controlled cold and muscle stimulation to firm, smooth, and awaken targeted areas of the body.`,`A grounding ritual for reclaiming your relationship with your body â no downtime, no pressure, only presence.`],benefits:[`Firms and tones targeted areas`,`Improves circulation and lymphatic flow`,`Smooths appearance of cellulite`,`No downtime`],process:[{step:`Mapping`,detail:`We identify areas of focus with you.`},{step:`Cryo session`,detail:`Cold panels and stimulation activate the tissue.`},{step:`Lymphatic finish`,detail:`Gentle massage encourages drainage.`}],aftercare:`Hydrate well and move gently. Best results with a series of 6â8 sessions.`,prep:[`Hydrate well the day before and the morning of your session.`,`Eat a light meal 1â2 hours before.`,`Wear or bring comfortable two-piece clothing for easy access to the area.`,`Skip lotions and oils on the treatment area.`],aftercareSteps:[`Drink plenty of water for 24â48 hours to support lymphatic drainage.`,`Move gently â a walk or light stretching helps.`,`Avoid heavy alcohol and very salty food for 24 hours.`,`Mild redness or tingling is normal and fades within an hour.`,`Book consistently: results build across a series of 6â8 sessions.`],results:[{timeline:`Immediately`,detail:`Skin looks tighter and feels smoother from improved circulation.`},{timeline:`After 3â4 sessions`,detail:`Firmer tone and softer appearance of cellulite.`},{timeline:`After 6â8 sessions`,detail:`Visible, sustained improvement in the treated area.`}],faqs:[{q:`Is it uncomfortable?`,a:`It's cold but tolerable â most clients find it energizing rather than painful.`},{q:`Is there downtime?`,a:`None. You can go straight back to your day, including the gym.`},{q:`How many sessions do I need?`,a:`A series of 6â8, usually once or twice a week.`},{q:`Is this the same as fat reduction?`,a:`No. Cryo Tone firms and smooths; Cryo Sculpt targets stubborn fat pockets.`}]},{slug:`cryo-sculpt`,title:`Cryo Sculpt`,seoTitle:`Cryo Sculpt Fat Reduction in Brooklyn | Ammonite Laser Spa`,seoDescription:`Non-invasive cryolipolysis in Brooklyn that reduces stubborn fat pockets and refines contours. Book Cryo Sculpt at Ammonite Laser Spa.`,description:`Intensive cryotherapy protocol designed to reduce stubborn fat pockets and refine body contours. Cooling panels are precisely calibrated to each area.`,duration:`60 Minutes`,price:`From $325`,image:uf,alt:`Before and after Cryo Sculpt treatment showing a firmer, smoother stomach`,longDescription:[`An intensive cryolipolysis protocol that targets stubborn fat pockets â refining contours without surgery, needles, or downtime.`,`Precise cooling panels are calibrated to each area of the body for a sculpted, natural result.`],benefits:[`Reduces stubborn fat pockets`,`Refines and defines contours`,`Non-invasive, no needles`,`Results build over 8â12 weeks`],process:[{step:`Contour plan`,detail:`We map treatment zones and expectations.`},{step:`Cryolipolysis`,detail:`Panels chill fat cells to controlled temperatures.`}
20,{step:`Massage`,detail:`Post-treatment massage speeds results.`}],aftercare:`Some tenderness or numbness is normal. Full results appear over 8â12 weeks.`,prep:[`Hydrate well for 48 hours before your session.`,`Eat beforehand â sessions run 60 minutes.`,`Avoid anti-inflammatories 24 hours before if medically able.`,`Wear comfortable clothing you don't mind loosening.`],aftercareSteps:[`Tenderness, numbness, or mild swelling for a few days is expected.`,`Massage the treated area for 5 minutes daily for 2 weeks.`,`Drink plenty of water and keep moving to support clearance.`,`Avoid tight compression garments on the area for 24 hours.`,`Space repeat sessions on the same area at least 6 weeks apart.`],results:[{timeline:`Weeks 1â3`,detail:`Tenderness resolves; the area begins to feel softer.`},{timeline:`Weeks 4â8`,detail:`Contours start to visibly refine.`},{timeline:`Weeks 8â12`,detail:`Full result appears as treated cells clear naturally.`}],faqs:[{q:`When will I see results?`,a:`Changes begin around week 4 and reach full effect at 8â12 weeks.`},{q:`Is it a weight-loss treatment?`,a:`No. It targets stubborn, diet-resistant pockets in people near their stable weight.`},{q:`How many sessions per area?`,a:`Many areas respond well to 1â2 sessions, spaced at least 6 weeks apart.`},{q:`Is the numbness normal?`,a:`Yes â temporary numbness or tenderness for up to 2 weeks is a common, expected response.`}]},{slug:`buccal-face-therapy`,title:`Buccal Face Therapy`,seoTitle:`Buccal Face Therapy in Brooklyn | Ammonite Laser Spa`,seoDescription:`Intra-oral facial sculpting massage in Brooklyn that lifts contours and releases jaw tension. Book Buccal Face Therapy at Ammonite Laser Spa.`,description:`An intra-oral facial sculpting massage that releases tension in the jaw, lifts facial contours, and improves circulation for a naturally defined look.`,duration:`60 Minutes`,price:`From $275`,image:df,alt:`Gentle hands touching a relaxed jawline and neck in warm light`,longDescription:[`Buccal face therapy is an intra-oral massage that releases deep-held tension in the jaw and cheeks â lifting contours from the inside out.`,`It is presence work as much as it is beauty work: a permission slip to soften.`],benefits:[`Lifts and defines facial contours`,`Releases jaw and TMJ tension`,`Boosts circulation and glow`,`Softens tension lines`],process:[{step:`Cleanse`,detail
20:`Face is prepped with warm compresses.`},{step:`Intra-oral release`,detail:`Gloved massage releases held tension.`},{step:`Sculpt`,detail:`Lifting strokes finish the ritual.`}],aftercare:`Drink plenty of water. Some tenderness may last 24 hours.`,prep:[`Brush your teeth or rinse before arriving â the massage is intra-oral.`,`Skip heavy makeup on the lower face.`,`Avoid dental work within 48 hours of your session.`,`Let us know about TMJ diagnoses, braces, or recent oral surgery.`],aftercareSteps:[`Drink plenty of water â this work moves a lot of fluid.`,`Mild tenderness in the jaw and cheeks can last 24 hours.`,`Eat soft foods for the rest of the day if you feel sore.`,`Avoid clenching, gum, and very chewy food for 24 hours.`,`Warm compresses on the jaw feel wonderful that evening.`],results:[{timeline:`Immediately`,detail:`A visible lift and a lighter, released jaw.`},{timeline:`Days 1â3`,detail:`Puffiness settles and facial contours look more defined.`},{timeline:`Monthly maintenance`,detail:`Cumulative lift and lasting relief from held jaw tension.`}],faqs:[{q:`Does it hurt?`,a:`It's deep work. Some points feel intense, but pressure is adjusted to you throughout.`},{q:`Will it help my TMJ?`,a:`Many clients report meaningful relief from jaw tension, though it isn't a medical treatment.`},{q:`How often should I book?`,a:`Once a month is a good rhythm; some clients start with a short weekly series.`},{q:`Is it hygienic?`,a:`Always. Fresh sterile gloves are used for every intra-oral session.`}]},{slug:`laser-vein-treatment`,title:`Laser Vein Treatment`,landingRoute:`/laser-vein-treatment-brooklyn`,seoTitle:`Laser Vein Treatment in Brooklyn | Ammonite Laser Spa`,seoDescription:`Reduce spider veins and broken capillaries with laser vein treatment in Brooklyn at Ammonite Laser Spa. Non-invasive care at 1 Boerum Place.`,description:`Non-invasive laser therapy that targets spider veins, broken capillaries, and vascular lesions on the face and legs, gradually fading them for clearer skin.`,duration:`15â45 Minutes`,price:`From $175`,image:mf,alt:`Before and after laser vein treatment showing clearer legs with faded spider veins`,longDescription:[`Laser vein treatment at Ammonite Laser Spa uses targeted light energy to heat and collapse small, unwanted vessels â spider veins, broken capillaries, and facial vascular marks â without harming the surrounding skin.`,`Over the following weeks, treated vessels are naturally absorbed by the body, leaving skin looking clearer and more even. It is a precise, low-downtime option for the face, legs, and other small treatment areas.`],benefits:[`Fades spider veins and broken capillaries`,`Reduces facial redness and vascular lesions`,`Non-invasive with little to no downtime`,`Quick sessions, often 15â45 minutes`],process:[{step:`Consultation`,detail:`We assess the vessels, skin type, and treatment area.`},{step:`Laser pulses`,detail:`Targeted energy heats and collapses the unwanted vein.`},{step:`Cool down`,detail:`Skin is soothed and protected after treatment.`}],aftercare:`Avoid heat, sun, and strenuous exercise for 24â48 hours. Daily SPF is essential.`,prep:[`Avoid sun exposure and self-tanner on the area for 2 weeks before.`,`Skip retinoids and exfoliating acids on the area for 5 days.`,`Do not shave or irritate the treatment area the day of your session.`,`Wear comfortable clothing that allows easy access to the treatment zone.`],aftercareSteps:[`Mild redness, swelling, or warmth around the treated vessel is normal and usually fades within hours.`,`Avoid hot showers, saunas, steam, and intense workouts for 24â48 hours.`,`Protect treated skin with SPF 50 daily; sun exposure can darken or re-form vessels.`,`Do not pick, scratch, or apply pressure to any small scabs that form.`,`Vessels may darken before fading; results develop over 2â6 weeks.`],results:[{timeline:`Immediately`,detail:`Treated vessels may blanch, darken, or look slightly raised â this is expected.`},{timeline:`2â4 weeks`,detail:`The body begins to absorb collapsed vessels; discoloration lightens.`},{timeline:`After 2â4 sessions`,detail:`Most spider veins and small vascular marks fade substantially.`}],faqs:[{q:`Does it hurt?`,a:`Most clients feel a brief warm snap or sting with each pulse. Cooling air keeps the skin comfortable.`},{q:`How many sessions will I need?`,a:`Facial vessels may clear in 1â3 sessions; leg spider veins often need 2â4 sessions spaced 4â6 weeks a
20part.`},{q:`Is there downtime?`,a:`Usually none. You can return to normal activity, though we recommend avoiding heat and exercise for 24â48 hours.`},{q:`Will the veins come back?`,a:`Treated vessels are gone, but new ones can form over time due to genetics, sun, or lifestyle. Maintenance sessions help.`}]}];function gf(e){return hf.find(t=>t.slug===e)}var _f=()=>L(()=>import(`./microneedling-brooklyn-heights-NI_8oNwd.js`),__vite__mapDeps([8,1,9,10,11,12,4,7,13,3,14,15,16])),vf=`Microneedling in Brooklyn Heights | Collagen Induction | Ammonite Laser Spa`,yf=`Collagen-boosting microneedling in Brooklyn Heights. Refine texture, pores, acne scars, and fine lines at Ammonite Laser Spa, 1 Boerum Place.`,bf=`https://sunbeam-spacesammonitelaserspa.lovable.app/microneedling-brooklyn-heights`,xf=gf(`microneedling`)?.faqs??[],Sf=A(`/microneedling-brooklyn-heights`)({component:j(_f,`component`),head:()=>({meta:[{title:vf},{name:`description`,content:yf},{property:`og:title`,content:vf},{property:`og:description`,content:yf},{property:`og:type`,content:`website`},{property:`og:url`,content:bf},{property:`og:image`,content:D($d)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D($d)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:bf}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Microneedling in Brooklyn Heights, NY`,serviceType:`Microneedling`,description:yf,areaServed:{"@type":`Neighborhood`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,url:D(`/`)},offers:{"@type":`Offer`,price:`350`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:bf}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Microneedling`,item:bf}]})},...xf.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(xf,{path:new URL(bf).pathname}))}]:[]]})}),Cf=Qd.url,wf=()=>L(()=>import(`./microneedling-brooklyn-DTM_h_Qn.js`),__vite__mapDeps([17,1,9,10,11,12,4,7,13,3,14,15,16])),Tf=`Microneedling in Brooklyn, NY | Collagen Induction | Ammonite Laser Spa`,Ef=`Collagen-boosting microneedling in Brooklyn at Ammonite Laser Spa. Refine texture, pores, fine lines, and scars with personalized treatment at 1 Boerum Place.`,Df=`https://sunbeam-spacesammonitelaserspa.lovable.app/microneedling-brooklyn`,Of=gf(`microneedling`)?.faqs??[],kf=A(`/microneedling-brooklyn`)({component:j(wf,`component`),head:()=>({meta:[{title:Tf},{name:`description`,content:Ef},{property:`og:title`,content:Tf},{property:`og:description`,content:Ef},{property:`og:type`,content:`website`},{property:`og:url`,content:Df},{property:`og:image`,content:D(Cf)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Cf)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Df}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Microneedling in Brooklyn, NY`,serviceType:`Microneedling`,description:Ef,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`350`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Df}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Microneedling`,item:Df}]})},...Of.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(Of,{path:new URL(Df).pathname}))}]:[]]})}),Af=()=>L(()=>import(`./local-citations-CEuED728.js`),__vite__mapDeps([18,1,10,11,12,4,7,15,3,2])),jf=`/local-citations`,Mf=`Location, Hours & Contact | Ammonite Laser Spa, Brooklyn Heights`,Nf=`Official address, phone number and opening hours for ${H.name} â ${Wu}. Call ${H.phoneDisplay} or find us on Google.`,Pf=A(`/local-citations`)({component:j(Af,`component`),head:()=>({meta:[{title:Mf},{name:`description`,content:Nf},{property:`og:title`,content:Mf},{property:`og:description`,content:Nf},{property:`og:type`,content:`website`},{property:`og:url`,content:D(jf)},{name:`twitter:card`,content:`summary`},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:D(jf)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(qu({path:jf,areaName:`Brooklyn Heights`,description:Nf,image:`/favicon.ico`,services:[`Laser Hair Removal`,`Laser Genesis`,`Microneedling`,`Laser Pigmentation Treatment`,`Laser Acne Treatment`]}))},{type:`application/ld+json`,children:JSON.stringify(Pe([{name:`Home`,path:`/`},{name:`Location, Hours & Contact`,path:jf}]))}]})}),Ff=af.url,If=()=>L(()=>import(`./laser-vein-treatment-brooklyn-heights-B9Qa9znC.js`),__vite__mapDeps([19,1,9,10,11,12,4,7,13,3,14,15,16])),Lf=`Laser Vein Treatment in Brooklyn Heights | Ammonite Laser Spa`,Rf=`Fade spider veins and broken capillaries with laser vein treatment in Brooklyn Heights. Non-invasive, personalized care at Ammonite Laser Spa, 1 Boerum Place.`,zf=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-vein-treatment-brooklyn-heights`,Bf=gf(`laser-vein-treatment`)?.faqs??[],Vf=A(`/laser-vein-treatment-brooklyn-heights`)({component:j(If,`component`),head:()=>({meta:[{title:Lf},{name:`description`,content:Rf},{property:`og:title`,content:Lf},{property:`og:description`,content:Rf},{property:`og:type`,content:`website`},{property:`og:url`,content:zf},{property:`og:image`,content:D(Ff)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Ff)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:zf}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Vein Treatment in Brooklyn Heights, NY`,serviceType:`Laser vein treatment`,description:Rf,areaServed:{"@type":`Neighborhood`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,url:D(`/`)},offers:{"@type":`Offer`,price:`175`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:zf}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Vein Treatment`,item:zf}]})},...Bf.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(Bf,{path:new URL(zf).pathname}))}]:[]]})}),Hf=af.url,Uf=()=>L(()=>import(`./laser-vein-treatment-brooklyn-RHe7paBm.js`),__vite__mapDeps([20,1,9,10,11,12,4,7,13,3,14,15,16])),Wf=`Laser Vein Treatment in Brooklyn, NY | Ammonite Laser Spa`,Gf=`Fade spider veins and broken capillaries with laser vein treatment in Brooklyn at Ammonite Laser Spa. Non-invasive, personalized care at 1 Boerum Place.`,Kf=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-vein-treatment-brooklyn`,qf=gf(`laser-vein-treatment`)?.faqs??[],Jf=A(`/laser-vein-treatment-brooklyn`)({component:j(Uf,`component`),head:()=>({meta:[{title:Wf},{name:`description`,content:Gf},{property:`og:title`,content:Wf},{property:`og:description`,content:Gf},{property:`og:type`,content:`website`},{property:`og:url`,content:Kf},{property:`og:image`,content:D(Hf)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Hf)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Kf}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Vein Treatment in Brooklyn, NY`,serviceType:`Laser vein treatment`,description:Gf,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`175`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Kf}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Vein Treatment`,item:Kf}]})},...qf.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(qf,{path:new URL(Kf).pathname}))}]:[]]})}),Yf=`/assets/laser-rejuvenation-4AFhQx2A.jpg`,Xf=()=>L(()=>import(`./laser-skin-treatments-brooklyn-Df9l-A8V.js`),__vite__mapDeps([21,1,9,10,11,12,4,7,13,3,14,15,16])),Zf=`Laser Skin Treatments in Brooklyn, NY | Ammonite Laser Spa`,Qf=`Non-ablative Laser Genesis in Brooklyn at Ammonite Laser Spa. Boost collagen, soften fine lines, and restore glow with personalized treatments.`,$f=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-skin-treatments-brooklyn`,ep=gf(`laser-rejuvenation`)?.faqs??[],tp=A(`/laser-skin-treatments-brooklyn`)({component:j(Xf,`component`),head:()=>({meta:[{title:Zf},{name:`description`,content:Qf},{property:`og:title`,content:Zf},{property:`og:description`,content:Qf},{property:`og:type`,content:`website`},{property:`og:url`,content:$f},{property:`og:image`,content:D(Yf)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Yf)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:$f}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Skin Treatments in Brooklyn, NY`,serviceType:`Laser Genesis`,description:Qf,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`275`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:$f}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Skin Treatments`,item:$f}]})},...ep.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(ep,{path:new URL($f).pathname}))}]:[]]})}),np=[`Downtown Brooklyn`,`Brooklyn Heights`,`Boerum Hill`,`Cobble Hill`,`DUMBO`,`Fort Greene`,`Carroll Gardens`,`Park Slope`],rp=[{q:`How many sessions will I need?`,a:`Most guests see visible improvement after a single session, with best results over a series of 3â4 treatments spaced 4 weeks apart.`},{q:`Is there any downtime?`,a:`None. You may be slightly pink for an hour or two â most guests apply mineral SPF and return to their day, dinner, or event.`},{q:`Is Laser Genesis safe for my skin tone?`,a:`Yes. Our non-ablative laser is calibrated to a wide range of skin tones. During your consultation we adjust every setting to your unique skin profile.`},{q:`When will I see results?`,a:`You'll notice an immediate glow. Collagen renewal builds gradually â softer lines and more even tone appear over 4â8 weeks.`},{q:`How much does it cost?`,a:`Single sessions start at $275. Series packages are available and often the most nourishing (and cost-effective) way to commit to the ritual.`},{q:`Where can I find Laser Genesis near me in Brooklyn?`,a:`Ammonite Laser Spa is at 1 Boerum Place in Downtown Brooklyn, NY 11201 â a short walk from Brooklyn Heights, Boerum Hill, Cobble Hill, DUMBO, and Fort Greene, and minutes from the Borough Hall, Jay StâÂÂMetroTech, and HoytâÂÂSchermerhorn subway stops.`},{q:`Do you offer other laser treatments at the same visit?`,a:`Yes. Alongside Laser Genesis we offer laser hair removal, laser acne treatment, laser pigmentation treatment, microneedling, Cryo Tone, Cryo Sculpt, and buccal face therapy â all in one private Brooklyn studio.`}],ip=()=>L(()=>import(`./laser-rejuvenation-D1rBt0gH.js`),__vite__mapDeps([22,1,10,11,12,4,7,3,13,14,15,23,16])),ap=`Laser Genesis Brooklyn NY | Laser Skin Treatments Near Me`,op=`Looking for laser treatments near me in Brooklyn? Laser Genesis at Ammonite Laser Spa, 1 Boerum Place, smooths fine lines and evens tone with zero downtime.`,sp=A(`/laser-rejuvenation`)({component:j(ip,`component`),head:()=>({meta:[{title:ap},{name:`description`,content:op},{property:`og:title`,content:ap},{property:`og:description`,content:op},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-rejuvenation`},{property:`og:image`,content:D(tf)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(tf)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-rejuvenation`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Genesis`,serviceType:`Non-ablative Laser Genesis treatment`,description:op,areaServed:[{"@type":`City`,name:`Brooklyn`,address:{"@type":`PostalAddress`,addressLocality:`Brooklyn`,addressRegion:`NY`,addressCountry:`US`}},...np.map(e=>({"@type":`Place`,name:`${e}, Brooklyn, NY`}))],provider:{"@type":`HealthAndBeautyBusiness`,name:`Ammonite Laser Spa`,telephone:`+1-718-813-2076`,email:`[email protected]`,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:`https://www.google.com/maps/search/?api=1&query=1+Boerum+Place+Brooklyn+NY`,address:{"@type":`PostalAddress`,streetAddress:`1 Boerum Place`,addressLocality:`Brooklyn`,addressRegion:`NY`,postalCode:`11201`,addressCountry:`US`}},offers:{"@type":`Offer`,price:`275`,priceCurrency:`USD`,availability:`https://schema.org/InStock`}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:rp.map(e=>
20({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Laser Genesis`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-rejuvenation`}]})}]})}),cp=rf.url,lp=()=>L(()=>import(`./laser-pigmentation-treatment-brooklyn-heights-BhJ32DNN.js`),__vite__mapDeps([24,1,9,10,11,12,4,7,13,3,14,15,16])),up=`Laser Pigmentation Treatment in Brooklyn Heights | Ammonite Laser Spa`,dp=`Fade sun spots, melasma, and uneven skin tone with laser pigmentation treatment in Brooklyn Heights. Personalized care at Ammonite Laser Spa.`,fp=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-pigmentation-treatment-brooklyn-heights`,pp=gf(`laser-pigmentation-treatment`)?.faqs??[],mp=A(`/laser-pigmentation-treatment-brooklyn-heights`)({component:j(lp,`component`),head:()=>({meta:[{title:up},{name:`description`,content:dp},{property:`og:title`,content:up},{property:`og:description`,content:dp},{property:`og:type`,content:`website`},{property:`og:url`,content:fp},{property:`og:image`,content:D(cp)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(cp)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:fp}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Pigmentation Treatment in Brooklyn Heights, NY`,serviceType:`Laser pigmentation treatment`,description:dp,areaServed:{"@type":`Neighborhood`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,url:D(`/`)},offers:{"@type":`Offer`,price:`225`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:fp}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Pigmentation Treatment`,item:fp}]})},...pp.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(pp,{path:new URL(fp).pathname}))}]:[]]})}),hp=rf.url,gp=()=>L(()=>import(`./laser-pigmentation-treatment-brooklyn-CBjtVH6N.js`),__vite__mapDeps([25,1,9,10,11,12,4,7,13,3,14,15,16])),_p=`Laser Pigmentation Treatment in Brooklyn | Ammonite Laser Spa`,vp=`Fade sun spots, melasma, and uneven skin tone with laser pigmentation treatment in Brooklyn, NY. Personalized care at Ammonite Laser Spa.`,yp=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-pigmentation-treatment-brooklyn`,bp=gf(`laser-pigmentation-treatment`)?.faqs??[],xp=A(`/laser-pigmentation-treatment-brooklyn`)({component:j(gp,`component`),head:()=>({meta:[{title:_p},{name:`description`,content:vp},{property:`og:title`,content:_p},{property:`og:description`,content:vp},{property:`og:type`,content:`website`},{property:`og:url`,content:yp},{property:`og:image`,content:D(hp)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(hp)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:yp}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Pigmentation Treatment in Brooklyn, NY`,serviceType:`Laser pigmentation treatment`,description:vp,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`225`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:yp}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Pigmentation Treatment`,item:yp}]})},...bp.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(bp,{path:new URL(yp).pathname}))}]:[]]})}),Sp=[{q:`How many laser hair removal sessions will I need?`,a:`Most areas need 6â8 sessions spaced 4â6 weeks apart, because hair only responds while it is in its active growth phase.`},{q:`Does laser hair removal hurt?`,a:`Most clients describe a warm snap. Cooling air runs throughout the session to keep the skin comfortable.`},{q:`Is laser hair removal safe for deeper skin tones?`,a:`Yes. Settings are calibrated to your skin tone and hair type during consultation.`},{q:`Can I shave between sessions?`,a:`Yes â shaving is encouraged. Waxing, plucking, and threading are not, as they remove the follicle the laser targets.`}],Cp=`/assets/laser-hair-removal-1376-pSGJZD77.webp`,wp=()=>L(()=>import(`./laser-hair-removal-brooklyn-heights-CdV_Fd26.js`),__vite__mapDeps([26,1,13,3,4,14,15,2,27])),Tp=`Laser Hair Removal Brooklyn Heights | Ammonite Laser Spa`,Ep=`Laser hair removal in Brooklyn Heights at Ammonite Laser Spa, 1 Boerum Place. Personalized treatments for face, body, Brazilian, and full body. Book a free consultation or call 718-813-2076.`,Dp=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-hair-removal-brooklyn-heights`,Op=A(`/laser-hair-removal-brooklyn-heights`)({component:j(wp,`component`),head:()=>({meta:[{title:Tp},{name:`description`,content:Ep},{property:`og:title`,content:Tp},{property:`og:description`,content:Ep},{property:`og:type`,content:`website`},{property:`og:url`,content:Dp},{property:`og:image`,content:D(Cp)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Cp)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Dp}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Hair Removal in Brooklyn Heights`,serviceType:`Laser hair removal`,description:Ep,areaServed:{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`95`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Dp}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:Sp.map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Hair Removal Brooklyn Heights`,item:Dp}]})}]})}),kp=[{q:`How many laser hair removal sessions will I need?`,a:`Most areas need 6â8 sessions spaced 4â6 weeks apart, because hair only responds while it is in its active growth phase.`},{q:`Does laser hair removal hurt?`,a:`Most clients describe a warm snap. Cooling air runs throughout the session to keep the skin comfortable.`},{q:`Is laser hair removal safe for deeper skin tones?`,a:`Yes. Settings are calibrated to your skin tone and hair type during consultation.`},{q:`Can I shave between sessions?`,a:`Yes â shaving is encouraged. Waxing, plucking, and threading are not, as they remove the follicle the laser targets.`}],Ap=()=>L(()=>import(`./laser-hair-removal-brooklyn-BzM5BIdM.js`),__vite__mapDeps([28,1,13,3,4,14,15,27,16])),jp=`Laser Hair Removal in Brooklyn, NY | Ammonite Laser Spa`,Mp=`Personalized laser hair removal in Brooklyn, NY at Ammonite Laser Spa. Custom treatments for face, body, Brazilian, and full-body hair reduction. Book a consultation at 1 Boerum Place.`,Np=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-hair-removal-brooklyn`,Pp=A(`/laser-hair-removal-brooklyn`)({component:j(Ap,`component`),head:()=>({meta:[{title:jp},{name:`description`,content:Mp},{property:`og:title`,content:jp},{property:`og:description`,content:Mp},{property:`og:type`,content:`website`},{property:`og:url`,content:Np},{property:`og:image`,content:D(Cp)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Cp)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Np}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Hair Removal in Brooklyn, NY`,serviceType:`Laser hair removal`,description:Mp,areaServed:{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`95`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Np}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:kp.map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Hair Removal Brooklyn`,item:Np}]})}]})}),Fp=()=>L(()=>import(`./laser-genesis-brooklyn-heights-C34XhCGl.js`),__vite__mapDeps([29,1,9,10,11,12,4,7,13,3,14,15,16])),Ip=`Laser Genesis in Brooklyn Heights | Collagen Facial | Ammonite Laser Spa`,Lp=`Stimulate collagen and restore glow with Laser Genesis in Brooklyn Heights. Zero-downtime skin rejuvenation at Ammonite Laser Spa, 1 Boerum Place.`,Rp=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-genesis-brooklyn-heights`,zp=gf(`laser-rejuvenation`)?.faqs??[],Bp=A(`/laser-genesis-brooklyn-heights`)({component:j(Fp,`component`),head:()=>({meta:[{title:Ip},{name:`description`,content:Lp},{property:`og:title`,content:Ip},{property:`og:description`,content:Lp},{property:`og:type`,content:`website`},{property:`og:url`,content:Rp},{property:`og:image`,content:D(tf)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(tf)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Rp}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Genesis in Brooklyn Heights, NY`,serviceType:`Laser Genesis facial`,description:Lp,areaServed:{"@type":`Neighborhood`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,url:D(`/`)},offers:{"@type":`Offer`,price:`275`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Rp}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Genesis`,item:Rp}]})},...zp.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(zp,{path:new URL(Rp).pathname}))}]:[]]})}),Vp=nf.url,Hp=()=>L(()=>import(`./laser-acne-treatment-brooklyn-heights-BNWQ5ZQS.js`),__vite__mapDeps([30,1,9,10,11,12,4,7,13,3,14,15,16])),Up=`Laser Acne Treatment in Brooklyn Heights | Ammonite Laser Spa`,Wp=`Clear breakouts and calm inflammation with laser acne treatment in Brooklyn Heights. Gentle, effective care at Ammonite Laser Spa, 1 Boerum Place.`,Gp=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-acne-treatment-brooklyn-heights`,Kp=gf(`laser-acne-treatment`)?.faqs??[],qp=A(`/laser-acne-treatment-brooklyn-heights`)({component:j(Hp,`component`),head:()=>({meta:[{title:Up},{name:`description`,content:Wp},{property:`og:title`,content:Up},{property:`og:description`,content:Wp},{property:`og:type`,content:`website`},{property:`og:url`,content:Gp},{property:`og:image`,content:D(Vp)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Vp)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Gp}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Acne Treatment in Brooklyn Heights, NY`,serviceType:`Laser acne treatment`,description:Wp,areaServed:{"@type":`Neighborhood`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,url:D(`/`)},offers:{"@type":`Offer`,price:`150`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Gp}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Acne Treatment`,item:Gp}]})},...Kp.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(Kp,{path:new URL(Gp).pathname}))}]:[]]})}),Jp=nf.url,Yp=()=>L(()=>import(`./laser-acne-treatment-brooklyn-DW2VwsP1.js`),__vite__mapDeps([31,1,9,10,11,12,4,7,13,3,14,15,16])),Xp=`Laser Acne Treatment in Brooklyn, NY | Ammonite Laser Spa`,Zp=`Calm active acne and inflammation with laser acne treatment in Brooklyn at Ammonite Laser Spa. Gentle, personalized care for clearer skin at 1 Boerum Place.`,Qp=`https://sunbeam-spacesammonitelaserspa.lovable.app/laser-acne-treatment-brooklyn`,$p=gf(`laser-acne-treatment`)?.faqs??[],em=A(`/laser-acne-treatment-brooklyn`)({component:j(Yp,`component`),head:()=>({meta:[{title:Xp},{name:`description`,content:Zp},{property:`og:title`,content:Xp},{property:`og:description`,content:Zp},{property:`og:type`,content:`website`},{property:`og:url`,content:Qp},{property:`og:image`,content:D(Jp)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Jp)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Qp}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Laser Acne Treatment in Brooklyn, NY`,serviceType:`Laser acne treatment`,description:Zp,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`150`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Qp}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Laser Acne Treatment`,item:Qp}]})},...$p.length?[{type:`application/ld+json`,children:JSON.stringify(Ne($p,{path:new URL(Qp).pathname}))}]:[]]})}),tm={version:1,asset_id:`203085b3-6598-4170-b08d-f4a777bb02bd`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/203085b3-6598-4170-b08d-f4a777bb02bd/og-landing.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/203085b3-6598-4170-b08d-f4a777bb02bd/og-landing.jpg`,original_filename:`og-landing.jpg`,size:77387,content_type:`image/jpeg`,created_at:`2026-07-28T02:50:13Z`},nm=A(`/landing`)({component:j(()=>L(()=>import(`./landing-DRhGpzU8.js`),__vite__mapDeps([32,1,10,11,12,4,7,3,13,15,23,2])),`component`),head:()=>({meta:[{title:`Radiant Skin | Ammonite Laser Spa â Brooklyn, NY`},{name:`description`,content:`Discover Ammonite Laser Spa's evidence-based laser treatments in Brooklyn, NY. Explore features, client stories, and book a personalized consultation.`},{property:`og:title`,content:`Radiant Skin | Ammonite Laser Spa â Brooklyn, NY`},{property:`og:description`,content:`Discover Ammonite Laser Spa's evidence-based laser treatments in Brooklyn, NY. Explore features, client stories, and book a personalized consultation.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/landing`},{property:`og:image`,content:D(tm.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(tm.url)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/landing`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Overview`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/landing`}]})}]})}),rm={version:1,asset_id:`9180de73-e1c8-47a1-92ae-ba741f1c31fd`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/9180de73-e1c8-47a1-92ae-ba741f1c31fd/laser-hair-removal.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/9180de73-e1c8-47a1-92ae-ba741f1c31fd/laser-hair-removal.jpg`,original_filename:`laser-hair-removal.jpg`,size:234383,content_type:`image/jpeg`,created_at:`2026-09-11T23:06:06Z`},im=()=>L(()=>import(`./full-body-laser-hair-removal-brooklyn-B7j1qdFf.js`),__vite__mapDeps([33,1,9,10,11,12,4,7,13,3,14,15,16])),am=`Full Body Laser Hair Removal in Brooklyn | Ammonite Laser Spa`,om=`Full body laser hair removal in Brooklyn, NY at Ammonite Laser Spa. Custom packages for smooth, lasting results from head to toe. Book at 1 Boerum Place.`,sm=`https://sunbeam-spacesammonitelaserspa.lovable.app/full-body-laser-hair-removal-brooklyn`,cm=gf(`laser-hair-removal`)?.faqs??[],lm=A(`/full-body-laser-hair-removal-brooklyn`)({component:j(im,`component`),head:()=>({meta:[{title:am},{name:`description`,content:om},{property:`og:title`,content:am},{property:`og:description`,content:om},{property:`og:type`,content:`website`},{property:`og:url`,content:sm},{property:`og:image`,content:D(rm.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(rm.url)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:sm}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Full Body Laser Hair Removal in Brooklyn, NY`,serviceType:`Laser hair removal`,description:om,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`95`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:sm}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Full Body Laser Hair Removal`,item:sm}]})},...cm.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(cm,{path:new URL(sm).pathname}))}]:[]]})}),um={version:1,asset_id:`657e4e49-eb9b-494b-8bee-270bbd6d587a`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/657e4e49-eb9b-494b-8bee-270bbd6d587a/og-services.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/657e4e49-eb9b-494b-8bee-270bbd6d587a/og-services.jpg`,original_filename:`og-services.jpg`,size:87310,content_type:`image/jpeg`,created_at:`2026-07-28T02:50:10Z`},dm=()=>L(()=>
20import(`./faq-BGuVt4F-.js`),__vite__mapDeps([34,1,10,11,12,4,7,16])),fm=`Laser Treatment FAQ | Ammonite Laser Spa, Brooklyn NY`,pm=`Answers to the most common questions about laser hair removal, Laser Genesis, microneedling, and cryo treatments in Brooklyn â prep, comfort, sessions, and aftercare.`,mm=A(`/faq`)({component:j(dm,`component`),head:()=>({meta:[{title:fm},{name:`description`,content:pm},{property:`og:title`,content:fm},{property:`og:description`,content:pm},{property:`og:type`,content:`website`},{property:`og:url`,content:D(`/faq`)},{property:`og:image`,content:um.url},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:um.url}],links:[{rel:`canonical`,href:D(`/faq`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(Pe([{name:`Home`,path:`/`},{name:`FAQ`,path:`/faq`}]))}]})}),hm=[{title:`Laser Genesis`,path:`/laser-genesis-brooklyn-heights`,description:`Collagen-stimulating, zero-downtime facial for fine lines, tone, and glow.`},{title:`Microneedling`,path:`/microneedling-brooklyn-heights`,description:`Collagen induction for texture, pores, scars, and overall renewal.`},{title:`Laser Acne Treatment`,path:`/laser-acne-treatment-brooklyn-heights`,description:`Gentle light therapy to calm breakouts and inflammation.`},{title:`Laser Pigmentation Treatment`,path:`/laser-pigmentation-treatment-brooklyn-heights`,description:`Targeted fading of sun spots, melasma, and uneven tone.`},{title:`Buccal Face Therapy`,path:`/services/buccal-face-therapy`,description:`Intra-oral sculpting massage for jaw tension and lifted contours.`}],gm=[{q:`Which facial is right for my skin?`,a:`It depends on your goals. Laser Genesis is ideal for tone, glow, and early aging. Microneedling is best for texture, pores, and scars. We recommend a consultation to build a personalized plan.`},{q:`Is there downtime?`,a:`Laser Genesis has zero downtime. Microneedling may leave you flushed for 24â48 hours. Acne and pigmentation treatments have short, specific aftercare windows.`},{q:`How often should I get a facial?`,a:`Most clients come every 4â6 weeks, or in a series of 3â6 sessions for targeted concerns, followed by quarterly maintenance.`},{q:`Do you offer facials for sensitive skin?`,a:`Yes. We adjust every protocol, from device settings to product selection, based on your skin's tolerance and history.`}],_m=`/assets/homepage-dewy-1280-9Su6xXpc.webp`,vm=()=>L(()=>import(`./facials-brooklyn-heights-DO6-N9Aq.js`),__vite__mapDeps([35,1,10,11,12,4,7,13,3,14,15,16])),ym=`Facials in Brooklyn Heights | Laser Genesis & Microneedling | Ammonite Laser Spa`,bm=`Results-driven facials in Brooklyn Heights: Laser Genesis, microneedling, acne, pigmentation, and buccal face therapy at Ammonite Laser Spa, 1 Boerum Place.`,xm=`https://sunbeam-spacesammonitelaserspa.lovable.app/facials-brooklyn-heights`,Sm=A(`/facials-brooklyn-heights`)({component:j(vm,`component`),head:()=>({meta:[{title:ym},{name:`description`,content:bm},{property:`og:title`,content:ym},{property:`og:description`,content:bm},{property:`og:type`,content:`website`},{property:`og:url`,content:xm},{property:`og:image`,content:D(_m)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(_m)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:xm}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Facials in Brooklyn Heights, NY`,serviceType:`Facial treatments`,description:bm,areaServed:{"@type":`Neighborhood`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},hasOfferCatalog:{"@type":`OfferCatalog`,name:`Facial treatments`,itemListElement:hm.map(e=>({"@type":`Offer`,itemOffered:{"@type":`Service`,name:e.title},url:`${D(`/`)}${e.path}`}))},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,url:D(`/`)}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Facials`,item:xm}]})},{type:`application/ld+json`,children:JSON.stringify(Ne(gm,{path:new URL(xm).pathname}))}]})}),Cm=()=>L(()=>import(`./facial-laser-hair-removal-brooklyn-5tcx_yQk.js`),__vite__mapDeps([36,1,9,10,11,12,4,7,13,3,14,15,16])),wm=`Facial Laser Hair Removal in Brooklyn | Ammonite Laser Spa`,Tm=`Gentle facial laser hair removal in Brooklyn, NY for upper lip, chin, sideburns, and full face. Personalized care at Ammonite Laser Spa, 1 Boerum Place.`,Em=`https://sunbeam-spacesammonitelaserspa.lovable.app/facial-laser-hair-removal-brooklyn`,Dm=gf(`laser-hair-removal`)?.faqs??[],Om=A(`/facial-laser-hair-removal-brooklyn`)({component:j(Cm,`component`),head:()=>({meta:[{title:wm},{name:`description`,content:Tm},{property:`og:title`,content:wm},{property:`og:description`,content:Tm},{property:`og:type`,content:`website`},{property:`og:url`,content:Em},{property:`og:image`,content:D(rm.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(rm.url)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Em}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Facial Laser Hair Removal in Brooklyn, NY`,serviceType:`Laser hair removal`,description:Tm,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`95`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Em}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Facial Laser Hair Removal`,item:Em}]})},...Dm.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(Dm,{path:new URL(Em).pathname}))}]:[]]})}),km=sf.url,Am=()=>L(()=>import(`./cryo-sculpt-brooklyn-heights-V_dhIgj3.js`),__vite__mapDeps([37,1,9,10,11,12,4,7,13,3,14,15,16])),jm=`Cryo Sculpt Fat Reduction in Brooklyn Heights | Ammonite Laser Spa`,Mm=`Non-invasive cryolipolysis in Brooklyn Heights that reduces stubborn fat pockets and refines contours. Book Cryo Sculpt at Ammonite Laser Spa, 1 Boerum Place.`,Nm=`https://sunbeam-spacesammonitelaserspa.lovable.app/cryo-sculpt-brooklyn-heights`,Pm=gf(`cryo-sculpt`)?.faqs??[],Fm=A(`/cryo-sculpt-brooklyn-heights`)({component:j(Am,`component`),head:()=>({meta:[{title:jm},{name:`description`,content:Mm},{property:`og:title`,content:jm},{property:`og:description`,content:Mm},{property:`og:type`,content:`website`},{property:`og:url`,content:Nm},{property:`og:image`,content:D(km)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(km)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Nm}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Cryo Sculpt Fat Reduction in Brooklyn Heights, NY`,serviceType:`Cryolipolysis fat reduction`,description:Mm,areaServed:{"@type":`Neighborhood`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,url:D(`/`)},offers:{"@type":`Offer`,price:`325`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Nm}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Cryo Sculpt`,item:Nm}]})},...Pm.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(Pm,{path:new URL(Nm).pathname}))}]:[]]})}),Im=sf.url,Lm=()=>L(()=>import(`./cryo-sculpt-brooklyn-NaYpe0oY.js`),__vite__mapDeps([38,1,9,10,11,12,4,7,13,3,14,15,16])),Rm=`Cryo Sculpt Fat Reduction in Brooklyn, NY | Ammonite Laser Spa`,zm=`Non-invasive cryolipolysis in Brooklyn that reduces stubborn fat pockets and refines contours. Book Cryo Sculpt at Ammonite Laser Spa, 1 Boerum Place.`,Bm=`https://sunbeam-spacesammonitelaserspa.lovable.app/cryo-sculpt-brooklyn`,Vm=gf(`cryo-sculpt`)?.faqs??[],Hm=A(`/cryo-sculpt-brooklyn`)({component:j(Lm,`component`),head:()=>({meta:[{title:Rm},{name:`description`,content:zm},{property:`og:title`,content:Rm},{property:`og:description`,content:zm},{property:`og:type`,content:`website`},{property:`og:url`,content:Bm},{property:`og:image`,content:D(Im)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Im)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Bm}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Cryo Sculpt Fat Reduction in Brooklyn, NY`,serviceType:`Cryolipolysis fat reduction`,description:zm,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`325`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Bm}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Cryo Sculpt`,item:Bm}]})},...Vm.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(Vm,{path:new URL(Bm).pathname}))}]:[]]})}),Um={version:1,asset_id:`3730474f-63f8-41f5-9929-e11b0ba720d5`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/3730474f-63f8-41f5-9929-e11b0ba720d5/contact-mirror.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/3730474f-63f8-41f5-9929-e11b0ba720d5/contact-mirror.jpg`,original_filename:`contact-mirror.jpg`,size:67858,content_type:`image/jpeg`,created_at:`2026-09-23T18:22:38Z`},G;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(G||={});var Wm;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Wm||={});var K=G.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),Gm=e=>{switch(typeof e){case`undefined`:return K.undefined;case`string`:return K.string;case`number`:return Number.isNaN(e)?K.nan:K.number;case`boolean`:return K.boolean;case`function`:return K.function;case`bigint`:return K.bigint;case`symbol`:return K.symbol;case`object`:return Array.isArray(e)?K.array:e===null?K.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?K.promise:typeof Map<`u`&&e instanceof Map?K.map:typeof Set<`u`&&e instanceof Set?K.set:typeof Date<`u`&&e instanceof Date?K.date:K.object;default:return K.unknown}},q=G.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),Km=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,G.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};Km.create=e=>new Km(e);var qm=(e,t)=>
vendor: 4,225 bytes, line 20
20{let n;switch(e.code){case q.invalid_type:n=e.received===K.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case q.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,G.jsonStringifyReplacer)}`;break;case q.unrecognized_keys:n=`Unrecognized key(s) in object: ${G.joinValues(e.keys,`, `)}`;break;case q.invalid_union:n=`Invalid input`;break;case q.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${G.joinValues(e.options)}`;break;case q.invalid_enum_value:n=`Invalid enum value. Expected ${G.joinValues(e.options)}, received '${e.received}'`;break;case q.invalid_arguments:n=`Invalid function arguments`;break;case q.invalid_return_type:n=`Invalid function return type`;break;case q.invalid_date:n=`Invalid date`;break;case q.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:G.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case q.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case q.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case q.custom:n=`Invalid input`;break;case q.invalid_intersection_types:n=`Intersection results could not be merged`;break;case q.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case q.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,G.assertNever(e)}return{message:n}},Jm=qm;function Ym(){return Jm}var Xm=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function J(e,t){let n=Ym(),r=Xm({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===qm?void 0:qm].filter(e=>!!e)});e.common.issues.push(r)}var Zm=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return Y;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return Y;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},Y=Object.freeze({status:`aborted`}),Qm=e=>({status:`dirty`,value:e}),$m=e=>({status:`valid`,value:e}
vendor: 44,857 bytes, line 20
20),eh=e=>e.status===`aborted`,th=e=>e.status===`dirty`,nh=e=>e.status===`valid`,rh=e=>typeof Promise<`u`&&e instanceof Promise,X;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(X||={});var ih=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},ah=(e,t)=>{if(nh(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new Km(e.common.issues);return this._error=t,this._error}}};function Z(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var Q=class{get description(){return this._def.description}_getType(e){return Gm(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Gm(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Zm,ctx:{common:e.parent.common,data:e.data,parsedType:Gm(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(rh(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gm(e)};return ah(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gm(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return nh(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>nh(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gm(e)},r=this._parse({data:e,path:n.path,parent:n});return ah(n,await(rh(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:q.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new cg({schema:this,typeName:$.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return lg.create(this,this._def)}nullable(){return ug.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Uh.create(this)}promise(){return sg.create(this,this._def)}or(e){return Kh.create([this,e],this._def)}and(e){return Xh.create(this,e,this._def)}transform(e){return new cg({...Z(this._def),schema:this,typeName:$.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new dg({...Z(this._def),innerType:this,defaultValue:t,typeName:$.ZodDefault})}brand(){return new mg({typeName:$.ZodBranded,type:this,...Z(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new fg({...Z(this._def),innerType:this,catchValue:t,typeName:$.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return hg.create(this,e)}readonly(){return gg.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},oh=/^c[^\s-]{8,}$/i,sh=/^[0-9a-z]+$/,ch=/^[0-9A-HJKMNP-TV-Z]{26}$/i,lh=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,uh=/^[a-z0-9_-]{21}$/i,dh=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,fh=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,ph=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,mh=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,hh,gh=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_h=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,vh=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,yh=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,bh=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,xh=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Sh=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Ch=RegExp(`^${Sh}$`);function wh(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Th(e){return RegExp(`^${wh(e)}$`)}function Eh(e){let t=`${Sh}T${wh(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Dh(e,t){return!!((t===`v4`||!t)&&gh.test(e)||(t===`v6`||!t)&&vh.test(e))}function Oh(e,t){if(!dh.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function kh(e,t){return!!((t===`v4`||!t)&&_h.test(e)||(t===`v6`||!t)&&yh.test(e))}var Ah=class e extends Q{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==K.string){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.string,received:t.parsedType}),Y}let t=new Zm,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),J(n,{code:q.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),J(n,{code:q.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?J(n,{code:q.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&J(n,{code:q.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)ph.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`email`,code:q.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)hh||=new RegExp(mh,`u`),hh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`emoji`,code:q.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)lh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`uuid`,code:q.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)uh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`nanoid`,code:q.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)oh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`cuid`,code:q.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)sh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`cuid2`,code:q.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)ch.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`ulid`,code:q.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),J(n,{validation:`url`,code:q.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`regex`,code:q.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),J(n,{code:q.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),J(n,{code:q.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),J(n,{code:q.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Eh(r).test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{code:q.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Ch.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{code:q.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?Th(r).test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{code:q.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?fh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`duration`,code:q.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Dh(e.data,r.version)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`ip`,code:q.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Oh(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`jwt`,code:q.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?kh(e.data,r.version)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`cidr`,code:q.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?bh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`base64`,code:q.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?xh.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`base64url`,code:q.invalid_string,message:r.message}),t.dirty()):G.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:q.invalid_string,...X.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...X.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...X.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...X.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...X.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...X.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...X.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...X.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...X.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...X.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...X.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...X.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...X.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...X.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...X.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...X.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...X.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...X.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...X.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...X.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...X.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...X.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...X.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...X.errToObj(t)})}nonempty(e){return this.min(1,X.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Ah.create=e=>new Ah({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...Z(e)});function jh(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var Mh=class e extends Q{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==K.number){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.number,received:t.parsedType}),Y}let t,n=new Zm;for(let r of this._def.checks)r.kind===`int`?G.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),J(t,{code:q.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),J(t,{code:q.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),J(t,{code:q.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?jh(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),J(t,{code:q.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),J(t,{code:q.not_finite,message:r.message}),n.dirty()):G.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,X.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,X.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,X.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,X.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:X.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:X.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:X.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:X.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:X.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:X.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:X.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:X.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:X.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:X.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&G.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};Mh.create=e=>new Mh({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...Z(e)});var Nh=class e extends Q{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==K.bigint)return this._getInvalidInput(e);let t,n=new Zm;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),J(t,{code:q.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),J(t,{code:q.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),J(t,{code:q.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):G.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.bigint,received:t.parsedType}),Y}gte(e,t){return this.setLimit(`min`,e,!0,X.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,X.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,X.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,X.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:X.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:X.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:X.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:X.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:X.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:X.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Nh.create=e=>new Nh({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...Z(e)});var Ph=class extends Q{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==K.boolean){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.boolean,received:t.parsedType}),Y}return $m(e.data)}};Ph.create=e=>new Ph({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...Z(e)});var Fh=class e extends Q{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==K.date){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.date,received:t.parsedType}),Y}if(Number.isNaN(e.data.getTime()))return J(this._getOrReturnCtx(e),{code:q.invalid_date}),Y;let t=new Zm,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),J(n,{code:q.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),J(n,{code:q.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):G.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:X.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:X.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};Fh.create=e=>new Fh({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...Z(e)});var Ih=class extends Q{_parse(e){if(this._getType(e)!==K.symbol){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.symbol,received:t.parsedType}),Y}return $m(e.data)}};Ih.create=e=>new Ih({typeName:$.ZodSymbol,...Z(e)});var Lh=class extends Q{_parse(e){if(this._getType(e)!==K.undefined){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.undefined,received:t.parsedType}),Y}return $m(e.data)}};Lh.create=e=>new Lh({typeName:$.ZodUndefined,...Z(e)});var Rh=class extends Q{_parse(e){if(this._getType(e)!==K.null){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.null,received:t.parsedType}),Y}return $m(e.data)}};Rh.create=e=>new Rh({typeName:$.ZodNull,...Z(e)});var zh=class extends Q{constructor(){super(...arguments),this._any=!0}_parse(e){return $m(e.data)}};zh.create=e=>new zh({typeName:$.ZodAny,...Z(e)});var Bh=class extends Q{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $m(e.data)}};Bh.create=e=>new Bh({typeName:$.ZodUnknown,...Z(e)});var Vh=class extends Q{_parse(e){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.never,received:t.parsedType}),Y}};Vh.create=e=>new Vh({typeName:$.ZodNever,...Z(e)});var Hh=class extends Q{_parse(e){if(this._getType(e)!==K.undefined){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.void,received:t.parsedType}),Y}return $m(e.data)}};Hh.create=e=>new Hh({typeName:$.ZodVoid,...Z(e)});var Uh=class e extends Q{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==K.array)return J(t,{code:q.invalid_type,expected:K.array,received:t.parsedType}),Y;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(J(t,{code:e?q.too_big:q.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(J(t,{code:q.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(J(t,{code:q.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new ih(t,e,t.path,n)))).then(e=>Zm.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new ih(t,e,t.path,n)));return Zm.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:X.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:X.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:X.toString(n)}})}nonempty(e){return this.min(1,e)}};Uh.create=(e,t)=>new Uh({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...Z(t)});function Wh(e){if(e instanceof Gh){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=lg.create(Wh(r))}return new Gh({...e._def,shape:()=>t})}else if(e instanceof Uh)return new Uh({...e._def,type:Wh(e.element)});else if(e instanceof lg)return lg.create(Wh(e.unwrap()));else if(e instanceof ug)return ug.create(Wh(e.unwrap()));else if(e instanceof Zh)return Zh.create(e.items.map(e=>Wh(e)));else return e}var Gh=class e extends Q{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=G.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==K.object){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.object,received:t.parsedType}),Y}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Vh&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new ih(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Vh){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(J(n,{code:q.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new ih(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>Zm.mergeObjectSync(t,e)):Zm.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return X.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:X.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:$.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of G.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of G.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return Wh(this)}partial(t){let n={};for(let e of G.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of G.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof lg;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return ig(G.objectKeys(this.shape))}};Gh.create=(e,t)=>new Gh({shape:()=>e,unknownKeys:`strip`,catchall:Vh.create(),typeName:$.ZodObject,...Z(t)}),Gh.strictCreate=(e,t)=>new Gh({shape:()=>e,unknownKeys:`strict`,catchall:Vh.create(),typeName:$.ZodObject,...Z(t)}),Gh.lazycreate=(e,t)=>new Gh({shape:e,unknownKeys:`strip`,catchall:Vh.create(),typeName:$.ZodObject,...Z(t)});var Kh=class extends Q{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new Km(e.ctx.common.issues));return J(t,{code:q.invalid_union,unionErrors:n}),Y}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new Km(e));return J(t,{code:q.invalid_union,unionErrors:i}),Y}}get options(){return this._def.options}};Kh.create=(e,t)=>new Kh({options:e,typeName:$.ZodUnion,...Z(t)});var qh=e=>e instanceof ng?qh(e.schema):e instanceof cg?qh(e.innerType()):e instanceof rg?[e.value]:e instanceof ag?e.options:e instanceof og?G.objectValues(e.enum):e instanceof dg?qh(e._def.innerType):e instanceof Lh?[void 0]:e instanceof Rh?[null]:e instanceof lg?[void 0,...qh(e.unwrap())]:e instanceof ug?[null,...qh(e.unwrap())]:e instanceof mg||e instanceof gg?qh(e.unwrap()):e instanceof fg?qh(e._def.innerType):[],Jh=class e extends Q{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K.object)return J(t,{code:q.invalid_type,expected:K.object,received:t.parsedType}),Y;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(J(t,{code:q.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Y)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=qh(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:$.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...Z(r)})}};function Yh(e,t){let n=Gm(e),r=Gm(t);if(e===t)return{valid:!0,data:e};if(n===K.object&&r===K.object){let n=G.objectKeys(t),r=G.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=Yh(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===K.array&&r===K.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Yh(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===K.date&&r===K.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var Xh=class extends Q{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(eh(e)||eh(r))return Y;let i=Yh(e.value,r.value);return i.valid?((th(e)||th(r))&&t.dirty(),{status:t.value,value:i.data}):(J(n,{code:q.invalid_intersection_types}),Y)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Xh.create=(e,t,n)=>new Xh({left:e,right:t,typeName:$.ZodIntersection,...Z(n)});var Zh=class e extends Q{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==K.array)return J(n,{code:q.invalid_type,expected:K.array,received:n.parsedType}),Y;if(n.data.length<this._def.items.length)return J(n,{code:q.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),Y;!this._def.rest&&n.data.length>this._def.items.length&&(J(n,{code:q.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new ih(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>Zm.mergeArray(t,e)):Zm.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Zh.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new Zh({items:e,typeName:$.ZodTuple,rest:null,...Z(t)})};var Qh=class e extends Q{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==K.object)return J(n,{code:q.invalid_type,expected:K.object,received:n.parsedType}),Y;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new ih(n,e,n.path,e)),value:a._parse(new ih(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?Zm.mergeObjectAsync(t,r):Zm.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Q?new e({keyType:t,valueType:n,typeName:$.ZodRecord,...Z(r)}):new e({keyType:Ah.create(),valueType:t,typeName:$.ZodRecord,...Z(n)})}},$h=class extends Q{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==K.map)return J(n,{code:q.invalid_type,expected:K.map,received:n.parsedType}),Y;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new ih(n,e,n.path,[a,`key`])),value:i._parse(new ih(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return Y;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return Y;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};$h.create=(e,t,n)=>new $h({valueType:t,keyType:e,typeName:$.ZodMap,...Z(n)});var eg=class e extends Q{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==K.set)return J(n,{code:q.invalid_type,expected:K.set,received:n.parsedType}),Y;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(J(n,{code:q.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(J(n,{code:q.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return Y;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new ih(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:X.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:X.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};eg.create=(e,t)=>new eg({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...Z(t)});var tg=class e extends Q{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K.function)return J(t,{code:q.invalid_type,expected:K.function,received:t.parsedType}),Y;function n(e,n){return Xm({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Ym(),qm].filter(e=>!!e),issueData:{code:q.invalid_arguments,argumentsError:n}})}function r(e,n){return Xm({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Ym(),qm].filter(e=>!!e),issueData:{code:q.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof sg){let e=this;return $m(async function(...t){let o=new Km([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return $m(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new Km([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new Km([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Zh.create(t).rest(Bh.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||Zh.create([]).rest(Bh.create()),returns:n||Bh.create(),typeName:$.ZodFunction,...Z(r)})}},ng=class extends Q{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};ng.create=(e,t)=>new ng({getter:e,typeName:$.ZodLazy,...Z(t)});var rg=class extends Q{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return J(t,{received:t.data,code:q.invalid_literal,expected:this._def.value}),Y}return{status:`valid`,value:e.data}}get value(){return this._def.value}};rg.create=(e,t)=>new rg({value:e,typeName:$.ZodLiteral,...Z(t)});function ig(e,t){return new ag({values:e,typeName:$.ZodEnum,...Z(t)})}var ag=class e extends Q{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return J(t,{expected:G.joinValues(n),received:t.parsedType,code:q.invalid_type}),Y}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return J(t,{received:t.data,code:q.invalid_enum_value,options:n}),Y}return $m(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};ag.create=ig;var og=class extends Q{_parse(e){let t=G.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==K.string&&n.parsedType!==K.number){let e=G.objectValues(t);return J(n,{expected:G.joinValues(e),received:n.parsedType,code:q.invalid_type}),Y}if(this._cache||=new Set(G.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=G.objectValues(t);return J(n,{received:n.data,code:q.invalid_enum_value,options:e}),Y}return $m(e.data)}get enum(){return this._def.values}};og.create=(e,t)=>new og({values:e,typeName:$.ZodNativeEnum,...Z(t)});var sg=class extends Q{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==K.promise&&t.common.async===!1?(J(t,{code:q.invalid_type,expected:K.promise,received:t.parsedType}),Y):$m((t.parsedType===K.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};sg.create=(e,t)=>new sg({type:e,typeName:$.ZodPromise,...Z(t)});var cg=class extends Q{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{J(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return Y;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?Y:r.status===`dirty`||t.value===`dirty`?Qm(r.value):r});{if(t.value===`aborted`)return Y;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?Y:r.status===`dirty`||t.value===`dirty`?Qm(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?Y:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?Y:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!nh(e))return Y;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>nh(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):Y);G.assertNever(r)}};
vendor: 4,709 bytes, line 20
20cg.create=(e,t,n)=>new cg({schema:e,typeName:$.ZodEffects,effect:t,...Z(n)}),cg.createWithPreprocess=(e,t,n)=>new cg({schema:t,effect:{type:`preprocess`,transform:e},typeName:$.ZodEffects,...Z(n)});var lg=class extends Q{_parse(e){return this._getType(e)===K.undefined?$m(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};lg.create=(e,t)=>new lg({innerType:e,typeName:$.ZodOptional,...Z(t)});var ug=class extends Q{_parse(e){return this._getType(e)===K.null?$m(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ug.create=(e,t)=>new ug({innerType:e,typeName:$.ZodNullable,...Z(t)});var dg=class extends Q{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===K.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};dg.create=(e,t)=>new dg({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...Z(t)});var fg=class extends Q{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return rh(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new Km(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new Km(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};fg.create=(e,t)=>new fg({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...Z(t)});var pg=class extends Q{_parse(e){if(this._getType(e)!==K.nan){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.nan,received:t.parsedType}),Y}return{status:`valid`,value:e.data}}};pg.create=e=>new pg({typeName:$.ZodNaN,...Z(e)});var mg=class extends Q{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},hg=class e extends Q{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?Y:e.status===`dirty`?(t.dirty(),Qm(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?Y:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:$.ZodPipeline})}},gg=class extends Q{_parse(e){let t=this._def.innerType._parse(e),n=e=>(nh(e)&&(e.value=Object.freeze(e.value)),e);return rh(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};gg.create=(e,t)=>new gg({innerType:e,typeName:$.ZodReadonly,...Z(t)}),Gh.lazycreate;var $;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})($||={});var _g=Ah.create;Mh.create,pg.create,Nh.create,Ph.create,Fh.create,Ih.create,Lh.create,Rh.create,zh.create,Bh.create,Vh.create,Hh.create,Uh.create;var vg=Gh.create;Gh.strictCreate,Kh.create,Jh.create,Xh.create,Zh.create,Qh.create,$h.create,eg.create,tg.create,ng.create;var yg=rg.create,bg=ag.create;og.create,sg.create,cg.create,lg.create,ug.create,cg.createWithPreprocess,hg.create;var xg=()=>L(()=>import(`./contact-BFTQF5e8.js`),__vite__mapDeps([39,1,12,4,40,41,42,15,3,16])),Sg=[`Morning (9:00 â 12:00)`,`Midday (12:00 â 15:00)`,`Afternoon (15:00 â 18:00)`,`Evening (18:00 â 20:00)`],Cg=[`Laser Hair Removal`,`Laser Genesis`,`Laser Acne Treatment`,`Laser Pigmentation Treatment`,`Microneedling`,`Cryo Tone`,`Cryo Sculpt`,`Buccal Face Therapy`,`Not sure yet`],wg=()=>new Date().toISOString().split(`T`)[0];
20vg({name:_g().trim().min(2,`Please enter your full name (at least 2 characters)`).max(100,`Name must be under 100 characters`).regex(/^[\p{L}\p{M}'â\-. ]+$/u,`Name can only contain letters, spaces, hyphens and apostrophes`),email:_g().trim().min(1,`Email is required`).max(255,`Email must be under 255 characters`).email(`Please enter a valid email address, e.g. [email protected]`),phone:_g().trim().max(30,`Phone must be under 30 characters`).regex(/^[+()\d\s.-]{7,}$/,`Please enter a valid phone number (digits, spaces, + and - only)`).optional().or(yg(``)),service_interest:_g().max(100).refine(e=>e===``||Cg.includes(e),`Please choose a treatment from the list`).optional().or(yg(``)),preferred_date:_g().max(20).refine(e=>e===``||/^\d{4}-\d{2}-\d{2}$/.test(e),`Please choose a valid date`).refine(e=>e===``||e>=wg(),`Preferred date can't be in the past`).optional().or(yg(``)),preferred_time:_g().max(60).refine(e=>e===``||Sg.includes(e),`Please choose a time window from the list`).optional().or(yg(``)),message:_g().trim().min(10,`Please tell us a little more (at least 10 characters)`).max(2e3,`Message must be under 2000 characters`).refine(e=>!/https?:\/\/|<\s*script/i.test(e),`Links and code aren't allowed in the message`),skin_concerns:_g().trim().max(1500,`Please keep this under 1,500 characters`).optional().or(yg(``)),treatment_history:_g().trim().max(1500,`Please keep this under 1,500 characters`).optional().or(yg(``))});var Tg={"@context":`https://schema.org`,"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`https://sunbeam-spacesammonitelaserspa.lovable.app/#business`,name:`Ammonite Laser Spa`,description:`Advanced laser rituals rooted in sacred self-care. Brooklyn, NY.`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`,logo:D(ju.url),image:D(Um.url),telephone:`+1-718-813-2076`,email:`[email protected]`,address:{"@type":`PostalAddress`,streetAddress:`1 Boerum Place`,addressLocality:`Brooklyn`,addressRegion:`NY`,addressCountry:`US`},geo:{"@type":`GeoCoordinates`,latitude:`40.6904`,longitude:`-73.9916`},hasMap:`https://www.google.com/maps?q=1+Boerum+Place+Brooklyn+NY`,areaServed:`Brooklyn, NY`,priceRange:`$$`,openingHoursSpecification:[{"@type":`OpeningHoursSpecification`,dayOfWeek:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],opens:`09:00`,closes:`20:00`},{"@type":`OpeningHoursSpecification`,dayOfWeek:`Saturday`,opens:`10:00`,closes:`18:00`}]},Eg=A(`/contact`)({component:j(xg,`component`),head:()=>({meta:[{title:`Contact & Booking | Ammonite Laser Spa â Brooklyn, NY`},{name:`description`,content:`Book a consultation at Ammonite Laser Spa in Brooklyn, NY. Reach us by phone, email, or send a booking inquiry online.`},{property:`og:title`,content:`Contact & Booking | Ammonite Laser Spa â Brooklyn, NY`},{property:`og:description`,content:`Book a consultation at Ammonite Laser Spa in Brooklyn, NY. Reach us by phone, email, or send a booking inquiry online.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/contact`},{property:`og:image`,content:D(Um.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Um.url)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/contact`}],scripts:[{type:`application/ld+json`,children:JSON.stringify(Tg)},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Contact`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/contact`}]})}]})}),Dg=()=>L(()=>import(`./brazilian-laser-hair-removal-brooklyn-V145xXuO.js`),__vite__mapDeps([43,1,9,10,11,12,4,7,13,3,14,15,16])),Og=`Brazilian Laser Hair Removal in Brooklyn | Ammonite Laser Spa`,kg=`Expert Brazilian and bikini laser hair removal in Brooklyn, NY at Ammonite Laser Spa. Comfortable, personalized treatments in a private studio at 1 Boerum Place.`,Ag=`https://sunbeam-spacesammonitelaserspa.lovable.app/brazilian-laser-hair-removal-brooklyn`,jg=gf(`laser-hair-removal`)?.faqs??[],Mg=A(`/brazilian-laser-hair-removal-brooklyn`)({component:j(Dg,`component`),head:()=>({meta:[{title:Og},{name:`description`,content:kg},{property:`og:title`,content:Og},{property:`og:description`,content:kg},{property:`og:type`,content:`website`},{property:`og:url`,content:Ag},{property:`og:image`,content:D(rm.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(rm.url)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:Ag}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`Brazilian Laser Hair Removal in Brooklyn, NY`,serviceType:`Laser hair removal`,description:kg,areaServed:[{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`},{"@type":`City`,name:`Brooklyn`,"@id":`${D(`/`)}#brooklyn`}],provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},offers:{"@type":`Offer`,price:`95`,priceCurrency:`USD`,availability:`https://schema.org/InStock`,url:Ag}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Brazilian Laser Hair Removal`,item:Ag}]})},...jg.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(jg,{path:new URL(Ag).pathname}))}]:[]]})}),Ng=()=>L(()=>import(`./auth-Crazd59C.js`),__vite__mapDeps([44,1,10,11,12,4,7])),Pg=vg({redirect:_g().optional(),mode:bg([`signin`,`signup`]).optional()}),Fg=A(`/auth`)({validateSearch:Pg,head:()=>({meta:[{title:`Sign in â Ammonite Laser Spa`},{name:`description`,content:`Sign in or create an account to manage your Ammonite bookings and profile.`},{property:`og:title`,content:`Sign in â Ammonite Laser Spa`},{property:`og:description`,content:`Sign in or create an account to manage your Ammonite bookings and profile.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/auth`},{name:`twitter:card`,content:`summary_large_image`},{name:`robots`,content:`noindex`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/auth`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Sign in`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/auth`}]})}]}),component:j(Ng,`component`)}),Ig={version:1,asset_id:`5b09bc42-51a6-4701-b758-6930a75e73a2`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/5b09bc42-51a6-4701-b758-6930a75e73a2/og-about.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/5b09bc42-51a6-4701-b758-6930a75e73a2/og-about.jpg`,original_filename:`og-about.jpg`,size:92291,content_type:`image/jpeg`,created_at:`2026-07-28T02:50:05Z`},Lg=A(`/about`)({component:j(()=>L(()=>import(`./about-CjbgepDR.js`),__vite__mapDeps([45,1,13,3,4,16])),`component`),head:()=>({meta:[{title:`About Ammonite Laser Spa | Brooklyn Laser Sanctuary`},{name:`description`,content:`The story behind Ammonite Laser Spa in Brooklyn: a personal journey of self-nourishment, presence, and becoming the goddess.`},{property:`og:title`,content:`About Ammonite Laser Spa | Brooklyn Laser Sanctuary`},{property:`og:description`,content:`A Brooklyn laser spa built on self-nourishment, presence, and the belief that radiance is a birthright â not a performance.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/about`},{property:`og:image`,content:D(Ig.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Ig.url)}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/about`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`About`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/about`}]})}]})}),Rg=A(`/_authenticated`)({beforeLoad:async({location:e})=>{let{data:t,error:n}=await El.auth.getUser();if(n||!t.user)throw Ce({to:`/auth`,search:{redirect:e.href}});return{user:t.user}},component:j(()=>L(()=>import(`./route-DK8WoSw6.js`),__vite__mapDeps([46,1])),`component`)}),zg=A(`/`)({beforeLoad:()=>{throw Ce({to:`/services`})}}),Bg={version:1,asset_id:`7d74be8d-9a6b-4ebb-8448-8fe3a1e5068a`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/7d74be8d-9a6b-4ebb-8448-8fe3a1e5068a/treatments-skincare-closeup.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/7d74be8d-9a6b-4ebb-8448-8fe3a1e5068a/treatments-skincare-closeup.jpg`,original_filename:`treatments-skincare-closeup.jpg`,size:70577,content_type:`image/jpeg`,created_at:`2026-09-23T18:23:28Z`},Vg=A(`/services/`)({component:j(()=>L(()=>import(`./services.index-KyabiTWH.js`),__vite__mapDeps([47,1,10,11,12,4,7,13,3,15,16])),`component`),head:()=>({meta:[{title:`Laser Hair Removal & Skin Treatments in Brooklyn Heights | Ammonite Laser Spa`},{name:`description`,content:`Laser hair removal, Laser Genesis, acne, pigmentation, vein treatment, microneedling and body contouring in Brooklyn Heights, Brooklyn, NY.`},{property:`og:title`,content:`Laser Hair Removal & Skin Treatments in Brooklyn Heights | Ammonite Laser Spa`},{property:`og:description`,content:`Boutique laser and skincare studio in Brooklyn Heights, Brooklyn, NY â laser hair removal, Laser Genesis, acne, pigmentation and more.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/services`},{property:`og:image`,content:D(Bg.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Bg.url)}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/services`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Services`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/services`}]})}]})}),Hg=`/assets/hero-golden-s8hbcEzU.jpg`,Ug=()=>L(()=>import(`./locations.index-aAoyLrxK.js`),__vite__mapDeps([48,1,10,11,12,4,7,13,3,16])),Wg=`Areas We Serve in Brooklyn, NY | Ammonite Laser Spa`,Gg=`${H.name} serves Downtown Brooklyn, Brooklyn Heights, Cobble Hill, DUMBO, Park Slope, and Fort Greene from ${Wu}.`,Kg=`/locations`,qg=A(`/locations/`)({component:j(Ug,`component`),head:()=>({meta:[{title:Wg},{name:`description`,content:Gg},{property:`og:title`,content:Wg},{property:`og:description`,content:Gg},{property:`og:type`,content:`website`},{property:`og:url`,content:D(Kg)},{property:`og:image`,content:D(Hg)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Hg)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:D(Kg)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(qu({path:Kg,areaName:`Brooklyn`,description:Gg,image:Hg,services:[`Laser Hair Removal`,`Laser Genesis`,`Microneedling`,`Cryo Sculpt`]}))},{type:`application/ld+json`,children:JSON.stringify(Pe([{name:`Home`,path:`/`},{name:`Areas We Serve`,path:Kg}]))}]})});function Jg(){return(0,k.jsx)(`section`,{className:`border-t border-border`,children:(0,k.jsxs)(`div`,{className:`max-w-screen-xl mx-auto px-6 py-16 grid gap-8 md:grid-cols-3`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`h2`,{className:`font-serif text-2xl mb-3`,children:H.name}),(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed`,children:Wu}),(0,k.jsxs)(`a`,{href:H.mapUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-2 text-sm font-medium mt
20-3 underline underline-offset-4`,children:[(0,k.jsx)(Pu,{className:`w-4 h-4`,"aria-hidden":`true`}),` Get directions`]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`h3`,{className:`text-xs uppercase tracking-[0.25em] text-muted-foreground mb-3`,children:`Call`}),(0,k.jsxs)(`a`,{href:H.phoneHref,className:`inline-flex items-center gap-2 font-medium`,children:[(0,k.jsx)(Iu,{className:`w-4 h-4`,"aria-hidden":`true`}),` `,H.phoneDisplay]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`h3`,{className:`text-xs uppercase tracking-[0.25em] text-muted-foreground mb-3`,children:`Email`}),(0,k.jsxs)(`a`,{href:H.emailHref,className:`inline-flex items-center gap-2 font-medium break-all`,children:[(0,k.jsx)(Nu,{className:`w-4 h-4 shrink-0`,"aria-hidden":`true`}),` `,H.email]})]})]})})}var Yg=c({method:`GET`}).handler(o(`05f3ad5524d174c2f82816d6ee128ffd86971978f58f7a900fe6be198538c616`)),Xg=c({method:`GET`}).handler(o(`e52db0cca892a02d6f7b82e0d68083d800bb2b11c226a428786b072c420a5f12`)),Zg=c({method:`GET`}).handler(o(`a96f999f2304a49309dec7dc97f16ca26b31891dc4e2cf6471d06bb12f5327c9`)),Qg=()=>L(()=>import(`./blog.index-CcKt3fBT.js`),__vite__mapDeps([49,1,10,11,12,4,7,50])),$g=`https://sunbeam-spacesammonitelaserspa.lovable.app/blog`,e_=A(`/blog/`)({component:j(Qg,`component`),validateSearch:e=>({tag:typeof e.tag==`string`&&e.tag?e.tag:void 0}),loader:async()=>{let[e,t]=await Promise.all([Yg({data:{offset:0,limit:24}}).catch(()=>[]),Zg().catch(()=>({}))]);return{latest:e,photos:t}},head:()=>({meta:[{title:`The Ammonite Journal | Beauty, Self-Care, Skin & Body`},{name:`description`,content:`Notes on beauty, self-care, skin, body & the art of taking care of yourself â from Ammonite Laser Spa in Brooklyn.`},{property:`og:title`,content:`The Ammonite Journal | Beauty, Self-Care, Skin & Body`},{property:`og:description`,content:`Notes on beauty, self-care, skin, body & the art of taking care of yourself.`},{property:`og:type`,content:`website`},{property:`og:url`,content:$g},{property:`og:image`,content:D(ju.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(ju.url)}],links:[{rel:`canonical`,href:$g}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Journal`,item:$g}]})}]})}),t_=A(`/services/$slug`)({component:j(()=>L(()=>import(`./services._slug-W703Szvb.js`),__vite__mapDeps([51,1,10,11,12,4,7,13,3,14,15,2,16,5,6])),`component`),loader:async({params:e})=>{let t=gf(e.slug);if(!t)throw Se();let n=[];try{let e=await Kd(),r=t.title.toLowerCase(),i=[r,`laser rejuvenation`,`laser skin rejuvenation`,`laser genesis`];n=e.filter(e=>{let t=e.treatment.trim().toLowerCase();return i.includes(t)||t.includes(r)||r===`laser genesis`&&t.includes(`rejuvenation`)})}catch{n=[]}return{service:t,reviews:n}},head:({loaderData:e,params:t})=>{if(!e)return{meta:[{title:`Treatment not found | Ammonite Laser Spa`},{name:`robots`,content:`noindex`}]};let{service:n}=e,r=`/services/${n.slug}`;return{meta:[{title:n.seoTitle},{name:`description`,content:n.seoDescription},{property:`og:title`,content:n.seoTitle},{property:`og:description`,content:n.seoDescription},{property:`og:type`,content:`website`},{property:`og:url`,content:D(r)},{property:`og:image`,content:D(n.image)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(n.image)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn Heights, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:D(r)}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Service`,name:`${n.title} in Brooklyn Heights, Brooklyn NY`,serviceType:n.title,description:n.seoDescription,url:D(r),provider:{"@type":[`LocalBusiness`,`HealthAndBeautyBusiness`],"@id":`${D(`/`)}#business`,name:H.name,telephone:H.phoneSchema,email:H.email,address:Gu,geo:{"@type":`GeoCoordinates`,latitude:H.latitude,longitude:H.longitude},hasMap:H.mapUrl,url:D(`/`)},areaServed:{"@type":`Place`,name:`Brooklyn Heights, Brooklyn, NY`,"@i
20d":`${D(`/`)}#brooklyn-heights`}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Services`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/services`},{"@type":`ListItem`,position:3,name:n.title,item:D(r)}]})},...n.faqs.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(n.faqs,{path:r}))}]:[],...(()=>{let t=Me(e.reviews??[],`Ammonite Laser Spa`);return t?[{type:`application/ld+json`,children:JSON.stringify(t)}]:[]})()]}},notFoundComponent:j(()=>L(()=>import(`./services._slug-DdvPO8Jy.js`),__vite__mapDeps([52,1,10,11,12,4,7])),`notFoundComponent`),errorComponent:j(()=>L(()=>import(`./services._slug-yyDNbdQP.js`),__vite__mapDeps([53,1,10,11,12,4,7])),`errorComponent`)}),n_=[{slug:`downtown-brooklyn`,name:`Downtown Brooklyn`,shortName:`Downtown Brooklyn`,seoTitle:`Laser Hair Removal in Downtown Brooklyn | Ammonite Laser Spa`,seoDescription:`Laser hair removal, Laser Genesis, and cryo body treatments in Downtown Brooklyn. Ammonite Laser Spa is at 1 Boerum Place.`,intro:`Our studio sits in the heart of Downtown Brooklyn â a quiet room above the noise of Boerum Place, minutes from the courts, Fulton Mall, and every train you already take.`,body:[`Ammonite Laser Spa is located at 1 Boerum Place, Brooklyn, NY 11201. If you live or work in Downtown Brooklyn, you are already here: most guests arrive on foot in under ten minutes.`,`We built this space for the Downtown routine â a lunch-hour laser session, a post-work genesis ritual, a Saturday morning that belongs entirely to you. Appointments run on time because your day does too.`],travel:[`2, 3, 4, 5 at Borough Hall â 3 minute walk`,`A, C, F at Jay StâMetroTech â 5 minute walk`,`R at Court St â 3 minute walk`,`Metered street parking along Boerum Place and Livingston St`],landmarks:[`Borough Hall`,`Fulton Mall`,`Brooklyn Law School`,`City Point`],popular:[`Laser Hair Removal`,`Laser Genesis`,`Microneedling`]},{slug:`brooklyn-heights`,name:`Brooklyn Heights`,shortName:`Brooklyn Heights`,seoTitle:`Laser Hair Removal in Brooklyn Heights, NY | Ammonite Laser Spa`,seoDescription:`Laser hair removal and laser skin treatments for Brooklyn Heights, minutes from Montague Street. Ammonite Laser Spa, 1 Boerum Place, Brooklyn NY.`,intro:`A five-minute walk from the Promenade, Ammonite is the Brooklyn Heights neighbor you keep to yourself â brownstone-quiet, golden-lit, unhurried.`,body:[`Ammonite Laser Spa sits at 1 Boerum Place, Brooklyn, NY 11201, on the eastern edge of Brooklyn Heights. From Montague Street, Pierrepont, Remsen, or Joralemon you can walk here in under ten minutes, which is why so many Heights guests book a session between errands rather than setting aside a whole afternoon.`,`Brooklyn Heights clients typically come to us for a series rather than a one-off: a full laser hair removal package spread across six to eight sessions, seasonal Laser Genesis, and pigmentation care that keeps skin even through a summer of Promenade sunlight. Because the studio is small and private, you see the same practitioner each visit and your settings are adjusted as your skin responds.`,`Every treatment begins with a consultation covering your skin tone, hair type, medications, and sun exposure. Laser hair removal here uses cooling air throughout the session, which matters most on delicate areas like the face, underarms, and bikini line. Most people describe the sensation as a warm snap rather than pain, and return to normal activity the same day with SPF and gentle skincare.`],sections:[{heading:`What Brooklyn Heights guests book most`,paragraphs:[`Laser hair removal is the anchor service â underarms, bikini, Brazilian, legs, and facial areas such as the upper lip and chin. Many Heights clients start with two or three small areas and expand to a full-body plan once they see the reduction after three sessions.`,`Skin work follows close behind. Laser pigmentation treatment is especially popular after summer, when sun along the waterfront leaves uneven tone, while microneedling is booked through the colder months for texture, pores, and fine lines. Buccal face therapy rounds out the list for jaw tension and facial sculpting.`]},{heading:`Planning your visit from the Heights`,paragraphs:[`Sessions run from 15 minutes for a small facial area to about an hour for larger body areas, so a lunch-hour appointment is realistic if you are working from home or nearby in Downtown Brooklyn. Arrive with the treatment area clean-shaven and free of lotion, and avoid waxing, plucking, or threading for four weeks beforehand so the laser has a follicle to target.`,`Afterwards, skip hot yoga, saunas, and direct sun for 48 hours, and use a mineral SPF daily â particularly if your walk home takes you along the Promenade. We send written aftercare with every appointment and are reachable by phone or email between visits.`]}],travel:[`2, 3 at Clark St â 8 minute walk`,`R at Court St â 3 minute walk`,`4, 5 at Borough Hall â 3 minute walk`,`Garage parking on Cadman Plaza West`],landmarks:[`Brooklyn Heights Promenade`,`Montague Street`,`Cadman Plaza`,`Brooklyn Bridge Park`],popular:[`Laser Hair Removal`,`Laser Pigmentation Treatment`,`Buccal Face Therapy`],serviceLinks:[{label:`Laser Hair Removal in Brooklyn`,to:`/laser-hair-removal-brooklyn`,blurb:`Seventeen treatment areas, cooling air, and packages built for a multi-session plan.`},{label:`Laser Pigmentation Treatment`,to:`/laser-pigmentation-treatment-brooklyn`,blurb:`Even out sun spots and post-summer discoloration from waterfront light.`},{label:`Microneedling in Brooklyn`,to:`/microneedling-brooklyn`,blurb:`Collagen induction for texture, pores, and fine lines through the winter months.`},{label:`Facial Laser Hair Removal`,to:`/facial-laser-hair-removal-brooklyn`,blurb:`Gentle settings for upper lip, chin, jawline, and sideburns.`}],faqs:[{q:`How far is Ammonite Laser Spa from Brooklyn Heights?`,a:`We are at 1 Boerum Place, roughly a five to ten minute walk from most of Brooklyn Heights â three minutes from the R at Court St and the 4/5 at Borough Hall.`},{q:`How many laser hair removal sessions will I need?`,a:`Most people need six to eight sessions spaced four to six weeks a
20part for body areas, and eight to twelve for facial hair, because only follicles in their active growth phase respond to each treatment.`},{q:`Is laser hair removal safe for my skin tone?`,a:`Yes. We assess your skin tone and hair type at consultation and calibrate the laser accordingly, and our technology is suitable for most skin tones.`}]},{slug:`cobble-hill`,name:`Cobble Hill`,shortName:`Cobble Hill`,seoTitle:`Laser Hair Removal Near Cobble Hill | Ammonite Laser Spa`,seoDescription:`Cobble Hill's nearby laser spa. Hair removal, acne and pigmentation laser care, microneedling, and cryo tone at 1 Boerum Place, Brooklyn NY.`,intro:`Ten minutes up Court Street from Cobble Hill Park â close enough to fold into your Saturday errands, far enough to feel like leaving the day behind.`,body:[`Find us at 1 Boerum Place, Brooklyn, NY 11201, just north of the Cobble Hill border along Court Street.`,`Cobble Hill guests often begin with a consultation and leave with a season-long plan: laser acne care in the spring, pigmentation work after summer, microneedling through the winter.`],travel:[`F, G at Bergen St â 9 minute walk`,`R at Court St â 5 minute walk`,`B57, B63 bus along Court Street`,`Street parking on Atlantic Ave and Boerum Place`],landmarks:[`Cobble Hill Park`,`Court Street`,`Atlantic Avenue`,`Trader Joe's Brooklyn`],popular:[`Laser Acne Treatment`,`Microneedling`,`Cryo Tone`]},{slug:`boerum-hill`,name:`Boerum Hill`,shortName:`Boerum Hill`,seoTitle:`Laser Hair Removal in Boerum Hill, Brooklyn | Ammonite Laser Spa`,seoDescription:`Ammonite Laser Spa is Boerum Hill's neighborhood laser studio at 1 Boerum Place. Laser hair removal, Laser Genesis, microneedling, and pigment care.`,intro:`We are named for the street you already walk down. Boerum Hill is home â 1 Boerum Place, a few minutes from Smith Street and Atlantic Avenue.`,body:[`Ammonite Laser Spa sits at 1 Boerum Place, Brooklyn, NY 11201, at the northern tip of Boerum Hill. For most of the neighborhood â Smith Street, Bergen, Dean, State, Atlantic Avenue â we are a walk of ten minutes or less, which makes a multi-session laser plan genuinely easy to keep.`,`Boerum Hill guests are our most frequent regulars. Laser hair removal packages, monthly skin work, and pigment maintenance make up most of the schedule, and because the studio is private and single-practitioner, your history, settings, and preferences carry from one visit to the next rather than restarting with a new technician.`,`Every session starts with a short consultation. We look at your skin tone, hair colour and thickness, any medications that affect light sensitivity, and your recent sun exposure, then set the laser accordingly. Cooling air runs throughout treatment, so even sensitive areas like the bikini line, underarms, and face stay comfortable, and you can go
20straight back to your day afterwards.`],sections:[{heading:`A neighborhood studio, not a chain`,paragraphs:[`There is no queue, no upsell script, and no rotating staff. Appointments are spaced so the room is yours, which is why so many Boerum Hill clients book their next session before they leave.`,`Packages are built around a realistic schedule: body areas every four to six weeks, facial areas every three to four, with adjustments as hair thins out. If you travel or your schedule shifts, we reschedule rather than reset your plan.`]},{heading:`Treatments Boerum Hill books most`,paragraphs:[`Brazilian and bikini laser hair removal, underarms, legs, and full-body packages lead the list, followed by facial areas such as the upper lip, chin, and jawline.`,`On the skin side, Laser Genesis and pigmentation treatment handle tone and sun damage, microneedling addresses texture and acne scarring, and laser acne treatment helps with active breakouts along the jaw and back.`]}],travel:[`2, 3, 4, 5 at Borough Hall â 3 minute walk`,`F, G at Bergen St â 8 minute walk`,`A, C, G at HoytâSchermerhorn â 5 minute walk`,`Street and garage parking along Boerum Place and State Street`],landmarks:[`Smith Street`,`Atlantic Avenue`,`Brooklyn House of Detention`,`Boerum Place`],popular:[`Laser Hair Removal`,`Brazilian Laser Hair Removal`,`Microneedling`],serviceLinks:[{label:`Laser Hair Removal in Brooklyn`,to:`/laser-hair-removal-brooklyn`,blurb:`Our flagship service: seventeen treatment areas and package pricing.`},{label:`Brazilian Laser Hair Removal`,to:`/brazilian-laser-hair-removal-brooklyn`,blurb:`Private, cooled treatment with a practitioner you see every visit.`},{label:`Full Body Laser Hair Removal`,to:`/full-body-laser-hair-removal-brooklyn`,blurb:`A combined plan across every area, priced as a series.`},{label:`Laser Acne Treatment`,to:`/laser-acne-treatment-brooklyn`,blurb:`For active breakouts and the marks they leave behind.`}],faqs:[{q:`Where exactly in Boerum Hill are you?`,a:`1 Boerum Place, Brooklyn, NY 11201, at the corner of Boerum Place, three minutes from Borough Hall station.`},{q:`Do I need a consultation before my first laser session?`,a:`Yes, and it is part of your first appointment. We review your skin tone, hair type, medications, and sun exposure, then patch test before treating.`},{q:`How should I prepare for laser hair removal?`,a:`Shave the area the day before, skip waxing, plucking, or threading for four weeks, and avoid sun exposure and self-tanner for two weeks beforehand.`}]},{slug:`dumbo`,name:`DUMBO`,shortName:`DUMBO`,seoTitle:`Laser Hair Removal Near DUMBO, Brooklyn | Ammonite Laser Spa`,seoDescription:`DUMBO's nearby laser studio for hair removal, Laser Genesis, and microneedling. Ammonite Laser Spa, 1 Boerum Place, Brooklyn NY 11201.`,intro:`One stop or a fifteen-minute walk from the waterfront â a slower room to land in after a day of cobblestones and screens.`,body:[`Ammonite Laser Spa is at 1 Boerum Place, Brooklyn, NY 11201, a single subway stop or a fifteen-minute walk from DUMBO. The F at York Street runs to Jay StâÂÂMetroTech in one stop, and the A/C at High Street is a straightforward walk up Cadman Plaza.`,`DUMBO guests tend to work nearby, so the treatments that suit them best are the ones that fit a working week: zero-downtime Laser Genesis, quick hair removal areas that take fifteen to thirty minutes, and pigment care that leaves no visible trace afterward. We schedule early-morning and evening appointments with that in mind.`,`Because the waterfront means more sun than most Brooklyn neighborhoods, DUMBO clients often pair laser hair removal with pigmentation treatment and a proper SPF routine. We will tell you honestly when to wait â treating recently tanned skin is the fastest way to a poor result, so plans are built around your summer, not against it.`],sections:[{heading:`Treatments that fit a workday`,paragraphs:[`Underarms take about fifteen minutes, a bikini line around twenty, and facial areas less than that. Laser genesis and laser acne treatment leave only mild warmth, so you can return to a desk or a meeting straight afterward.`,`Larger commitments â full legs, full body, microneedling â are best booked at the end of the day, since we recommend avoiding heat, sweat, and direct sun for 48 hours afterward.`]},{heading:`Sun, seasons, and the waterfront`,paragraphs:[`Laser works by targeting pigment in the hair follicle, so recently tanned skin changes how the light is absorbed. If you have been out on the piers or the ferry, give it two weeks before your session.`,`Autumn and winter are the ideal window to start a series, which is why DUMBO regulars book their first sessions in September and finish before beach weather returns.`]}],travel:[`F at York St â 1 stop to Jay StâMetroTech`,`A, C at High St â 12 minute walk`,`2, 3, 4, 5 at Borough Hall â 3 minute walk from station`,`NYC Ferry to DUMBO landing, then a short walk`],landmarks:[`Brooklyn Bridge Park`,`Jane's Carousel`,`Water Street`,`Empire Stores`],popular:[`Laser Genesis`,`Laser Hair Removal`,`Microneedling`],serviceLinks:[{label:`Laser Skin Treatments in Brooklyn`,to:`/laser-skin-treatments-brooklyn`,blurb:`Zero-downtime genesis you can book between meetings.`},{label:`Laser Hair Removal in Brooklyn`,to:`/laser-hair-removal-brooklyn`,blurb:`Short sessions for small areas, packages for the whole plan.`},{label:`Laser Pigmentation Treatment`,to:`/laser-pigmentation-treatment-brooklyn`,blurb:`For sun spots and uneven tone after a summer on the waterfront.`},{label:`Microneedling in Brooklyn`,to:`/microneedling-brooklyn`,blurb:`Collagen induction for texture and fine lines, best in cooler months.`}],faqs:[{q:`How do I get to Ammonite Laser Spa from DUMBO?`,a:`Take the F from York St one stop to Jay StâÂÂMetroTech, or walk about fifteen minutes via Cadman Plaza. We are at 1 Boerum Place.`},{q:`Can I have laser hair removal if I have a tan?`,a:`We ask you to wait about two weeks after sun exposure or self-tanner so the treatment is both safe and effective for your current skin tone.`},{q:`Is there downtime after laser skin treatments?`,a:`Laser genesis and pigmentation treatment usually leave mild redness for a few hours. Microneedling can leave redness for a day or two.`}]},{slug:`park-slope`,name:`Park Slope`,shortName:`Park Slope`,seoTitle:`Laser Hair Removal Near Park Slope, Brooklyn | Ammonite Laser Spa`,seoDescription:`Park Slope's nearby laser spa for hair removal, microneedling, and cryo body contouring. Ammonite Laser Spa, 1 Boerum Place, Brooklyn NY 11201.`,intro:`A short ride up from Grand Army Plaza â the self-care stop that finally isn't squeezed between drop-off and pickup.`,body:[`Ammonite Laser Spa is at 1 Boerum Place, Brooklyn, NY 11201, roughly twelve minutes by train from Park Slope.`,`Park Slope guests tend to book the long game: full-body laser hair removal series, monthly microneedling, and cryo tone sessions that make room for their own bodies again.`],travel:[`2, 3 from Grand Army Plaza to Borough Hall â 8 minutes`,`R from Union St to Court St â 9 minutes`,`F, G from 4 Avâ9 St to Bergen St, then a short walk`,`B63 bus along Fifth Avenue and Atlantic`],landmarks:[`Grand Army Plaza`,`Prospect Park`,`Fifth Avenue`,`Barclays Center`],popular:[`Laser Hair Removal`,`Microneedling`,`Cryo Tone`]},{slug:`fort-greene`,name:`Fort Greene`,shortName:`Fort Greene`,seoTitle:`Laser Spa Near Fort Greene, Brooklyn | Ammonite Laser Spa`,seoDescription:`Fort Greene's nearby laser studio. Laser hair removal, acne and pigmentation care, buccal face therapy at 1 Boerum Place, Brooklyn NY 11201.`,intro:`Ten minutes from Fort Greene Park â a quiet, golden room for the ritual you keep promising yourself.`,body:[`We are located at 1 Boerum Place, Brooklyn, NY 11201, a straight walk down Fulton or one stop on the C.`,`Fort Greene guests come for skin that holds up to real life: laser pigmentation care, acne protocols, and buccal face therapy for tension carried in the jaw.`],travel:[`
20C at Lafayette Ave â 10 minute walk`,`G at Fulton St â 12 minute walk`,`B, Q, R at DeKalb Ave â 8 minute walk`,`B25, B26 bus along Fulton Street`],landmarks:[`Fort Greene Park`,`BAM`,`Fulton Street`,`Atlantic Terminal`],popular:[`Laser Pigmentation Treatment`,`Laser Acne Treatment`,`Buccal Face Therapy`]}],r_=e=>n_.find(t=>t.slug===e),i_=A(`/locations/$slug`)({loader:({params:e})=>{let t=r_(e.slug);if(!t)throw Se();return{location:t}},head:({params:e,loaderData:t})=>{if(!t)return{meta:[{title:`Area not found | Ammonite Laser Spa`},{name:`robots`,content:`noindex`}]};let n=t.location,r=`/locations/${e.slug}`;return{meta:[{title:n.seoTitle},{name:`description`,content:n.seoDescription},{property:`og:title`,content:n.seoTitle},{property:`og:description`,content:n.seoDescription},{property:`og:type`,content:`website`},{property:`og:url`,content:D(r)},{property:`og:image`,content:D(Hg)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(Hg)},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`${n.name}, Brooklyn, New York`},{name:`geo.position`,content:`${H.latitude};${H.longitude}`},{name:`ICBM`,content:`${H.latitude}, ${H.longitude}`}],links:[{rel:`canonical`,href:D(r)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(qu({path:r,areaName:n.name,description:n.seoDescription,image:Hg,services:n.popular}))},{type:`application/ld+json`,children:JSON.stringify(Pe([{name:`Home`,path:`/`},{name:`Areas We Serve`,path:`/locations`},{name:n.name,path:r}]))},...n.faqs?.length?[{type:`application/ld+json`,children:JSON.stringify(Ne(n.faqs,{path:r}))}]:[]]}},component:j(()=>L(()=>import(`./locations._slug-DrTz7aUe.js`),__vite__mapDeps([54,1,10,11,12,4,7,3,13,16])),`component`)}),a_=`2026-07-24`,o_=A(`/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`)({component:j(()=>L(()=>import(`./blog.seventy-two-hour-rest-after-laser-rejuvenation-microneedling-CkfG5IgA.js`),__vite__mapDeps([55,1,13,3,4,56,15])),`component`),head:()=>({meta:[{title:`72-Hour Rest After Laser Genesis & Microneedling | Ammonite`},{name:`description`,content:`Why the first 72 hours after Laser Genesis or microneedling are the most important. Learn what to skip and how to support your skin at Ammonite Laser Spa.`},{property:`og:title`,content:`72-Hour Rest After Laser Genesis & Microneedling | Ammonite`},{property:`og:description`,content:`Why the first 72 hours after Laser Genesis or microneedling are the most important. Learn what to skip and how to support your skin.`},{property:`og:type`,content:`article`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`},{property:`og:image`,content:D(ju.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(ju.url)},{name:`article:published_time`,content:a_},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:`The 72-Hour Rest Rule After Laser Genesis and Microneedling`,description:`Why the first 72 hours after Laser Genesis or microneedling are the most important. Learn what to skip and how to support your skin at Ammonite Laser Spa.`,image:D(ju.url),author:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},publisher:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},datePublished:a_,mainEntityOfPage:{"@type":`WebPage`,"@id":`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Journal`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog`},{"@type":`ListItem`,position:3,name:`72-Hour Rest After Laser Genesis & Microneedling`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`}
20]})}]})}),s_=[{question:`Can laser hair removal really help with PCOS facial hair?`,answer:`Yes. While laser hair removal does not cure PCOS, it can significantly reduce the density, coarseness, and growth rate of facial hair caused by hormonal hirsutism. Many clients experience smoother skin, fewer ingrowns, and less daily maintenance after a series of treatments.`},{question:`Why does PCOS cause facial hair growth?`,answer:`PCOS can lead to elevated androgens (male hormones), which may trigger hirsutism â dark, coarse hair growth on areas like the chin, jawline, upper lip, and neck. It is a common and often emotionally heavy symptom, but you are not alone in managing it.`},{question:`How many laser sessions are usually needed for PCOS facial hair?`,answer:`Because hormonal hair is driven by ongoing internal factors, PCOS-related facial hair often requires more sessions than typical hair removal. Most clients benefit from a series of 8â12 treatments spaced several weeks apart, followed by occasional maintenance sessions tailored to their response.`},{question:`Is laser hair removal safe for darker skin tones?`,answer:`Absolutely. At Ammonite Laser Spa, we select settings and wavelengths that honor melanin-rich skin. Your consultation includes a thorough skin assessment so we can treat you safely, effectively, and with care.`},{question:`What should I avoid before and after treatment?`,answer:`Before your session, avoid waxing, plucking, or tanning. After treatment, protect your skin from sun and heat for 48 hours, skip active products like retinoids and acids, and keep the area hydrated. We guide you through every step so your skin feels supported, not stressed.`},{question:`Will the hair grow back after laser treatment?`,answer:`Hormonal hair may regrow over time because PCOS continues to stimulate new follicles. However, many clients find that regrowth is finer, lighter, and slower â making maintenance easier and the emotional weight lighter to carry.`}],c_={version:1,asset_id:`562e67b5-5f95-455f-a7bf-4e60f1dcacc1`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/562e67b5-5f95-455f-a7bf-4e60f1dcacc1/og-pcos-guide.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/562e67b5-5f95-455f-a7bf-4e60f1dcacc1/og-pcos-guide.jpg`,original_filename:`og-pcos-guide.jpg`,size:78966,content_type:`image/jpeg`,created_at:`2026-07-28T02:50:16Z`},l_=()=>L(()=>import(`./blog.pcos-laser-hair-removal-LSGQsj32.js`),__vite__mapDeps([57,1,13,3,4,56,15])),u_=`2026-07-24`,d_=A(`/blog/pcos-laser-hair-removal`)({component:j(l_,`component`),head:()=>({meta:[{title:`PCOS Laser Hair Removal Guide | Ammonite Laser Spa`},{name:`description`,content:`A gentle guide to managing PCOS facial hair with laser hair removal in Brooklyn. Physical results and sacred self-care at Ammonite Laser Spa.`},{property:`og:title`,content:`PCOS Laser Hair Removal Guide | Ammonite Laser Spa`},{property:`og:description`,content:`A gentle guide to managing PCOS facial hair with laser hair removal in Brooklyn. Relief through sacred self-care rituals.`},{property:`og:type`,content:`article`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/pcos-laser-hair-removal`},{property:`og:image`,content:D(c_.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(c_.url)},{name:`article:published_time`,content:u_},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/pcos-laser-hair-removal`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:`PCOS Facial Hair & Laser Hair Removal: A Gentle Guide for Hormonal Hirsutism`,description:`A gentle guide to managing PCOS facial hair with laser hair removal in Brooklyn, framed through sacred self-care rituals.`,image:D(c_.url),author:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},publisher:{"@type":`Organization`,name:`Ammonite Laser Spa`,logo:{"@type":`ImageObject`,url:c_.url}},datePublished:u_,dateModified:u_,mainEntityOfPage:{"@type":`WebPage`,"@id":`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/pcos-laser-hair-removal`}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Journal`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog`},{"@type":`ListItem`,position:3,name:`PCOS Facial Hair Guide`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/pcos-laser-hair-removal`}]})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:s_.map(e=>
20({"@type":`Question`,name:e.question,acceptedAnswer:{"@type":`Answer`,text:e.answer}}))})}]})}),f_=`2026-07-24`,p_=A(`/blog/natural-sun-protection-after-laser`)({component:j(()=>L(()=>import(`./blog.natural-sun-protection-after-laser-ChVC9-r6.js`),__vite__mapDeps([58,1,13,3,4,56,15])),`component`),head:()=>({meta:[{title:`Natural Sun Protection After Laser | Ammonite Laser Spa`},{name:`description`,content:`Discover why natural sun protection is essential after laser treatments and how to shield your skin without harsh chemicals. Brooklyn aftercare guide.`},{property:`og:title`,content:`Natural Sun Protection After Laser | Ammonite Laser Spa`},{property:`og:description`,content:`Why natural sun protection matters after laser treatments and how to shield your skin with gentle, holistic habits. Brooklyn guide.`},{property:`og:type`,content:`article`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/natural-sun-protection-after-laser`},{property:`og:image`,content:D(ju.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(ju.url)},{name:`article:published_time`,content:f_},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/natural-sun-protection-after-laser`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:`Natural Sun Protection After Laser Treatments: A Gentle Brooklyn Guide`,description:`Discover why natural sun protection is essential after laser treatments and how to shield your skin with gentle, holistic habits.`,image:D(ju.url),author:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},publisher:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},datePublished:f_,mainEntityOfPage:{"@type":`WebPage`,"@id":`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/natural-sun-protection-after-laser`}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Journal`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog`},{"@type":`ListItem`,position:3,name:`Natural Sun Protection After Laser`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/natural-sun-protection-after-laser`}]})}]})}),m_=`2026-07-24`,h_=A(`/blog/keeping-cool-after-laser-hair-removal`)({component:j(()=>L(()=>import(`./blog.keeping-cool-after-laser-hair-removal-CXwIIuf6.js`),__vite__mapDeps([59,1,13,3,4,56,15])),`component`),head:()=>({meta:[{title:`Why Keeping Cool Matters After Laser Hair Removal | Ammonite`},{name:`description`,content:`Learn why keeping cool after laser hair removal protects your results and soothes your skin. Gentle aftercare tips from Ammonite Laser Spa in Brooklyn.`},{property:`og:title`,content:`Why Keeping Cool Matters After Laser Hair Removal | Ammonite`},{property:`og:description`,content:`Learn why keeping cool after laser hair removal protects your results and soothes your skin. Aftercare tips from Ammonite Laser Spa in Brooklyn.`},{property:`og:type`,content:`article`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/keeping-cool-after-laser-hair-removal`},{property:`og:image`,content:D(ju.url)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(ju.url)},{name:`article:published_time`,content:m_},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/keeping-cool-after-laser-hair-removal`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:`Why Keeping Cool After Laser Hair Removal Is the Most Important Part of Your Ritual`,description:`Learn why keeping cool after laser hair removal protects your results and soothes your skin. Aftercare tips from Ammonite Laser Spa in Brooklyn.`,image:D(ju.url),author:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},publisher:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},datePublished:m_,mainEntityOfPage:{"@type":`WebPage`,"@id":`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/keeping-cool-after-laser-hair-removal`}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Journal`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog`},{"@type":`ListItem`,position:3,name:`Keeping Cool After Laser Hair Removal`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/blog/keeping-cool-after-laser-hair-removal`}]})}]})}),g_=[{question:`Is Brazilian laser hair removal safe for intimate areas?`,answer:`Yes, when performed by a trained technician on appropriate settings. We use medical-grade lasers with precise spot sizes and cooling air, so the treatment is controlled, hygienic, and comfortable for the bikini and Brazilian zones.`},{question:`How many sessions does a Brazilian laser treatment take?`,answer:`Most clients need 8â12 sessions for long-term reduction in the Brazilian area. Hormones, hair density, and growth cycles all play a role, so a personalized plan is created during your consultation.`},{question:`Does Brazilian laser hair removal hurt?`,answer:`Most clients feel a quick, warm snap followed by immediate cooling. Our devices deliver continuous cooling air, and the bikini area is treated quickly, so discomfort is brief and manageable.`},{question:`What should I do before a Brazilian laser session?`,answer:`Shave the area 12â24 hours before. Avoid waxing, sugaring, or threading for at least 4 weeks. Skip self-tanner, heavy lotions, and sun exp
20osure for 2 weeks prior.`},{question:`Can I keep a landing strip or specific shape?`,answer:`Absolutely. Brazilian laser is customizable. You can remove all hair, leave a strip, shape a triangle, or target only the bikini line â just tell your technician during consultation.`},{question:`How long after a Brazilian session can I work out or have sex?`,answer:`Wait 48 hours before intense exercise, hot tubs, saunas, or sexual activity that creates friction in the treated area. This gives the skin time to settle and reduces irritation risk.`}],__=`/assets/og-brazilian-guide-CddArL3y.jpg`,v_=()=>L(()=>import(`./blog.brazilian-laser-hair-removal-guide-CZMPfCtR.js`),__vite__mapDeps([60,1,10,11,12,4,7,13,3,56,15])),y_=`2026-09-02`,b_=A(`/blog/brazilian-laser-hair-removal-guide`)({component:j(v_,`component`),head:()=>({meta:[{title:`Brazilian Laser Hair Removal: 14 Things to Know`},{name:`description`,content:`A complete Brooklyn guide to Brazilian laser hair removal: what to expect, how to prep, aftercare, results timeline, and 14 things you should know before your first session.`},{property:`og:title`,content:`Brazilian Laser Hair Removal: 14 Things to Know`},{property:`og:description`,content:`A complete Brooklyn guide to Brazilian laser hair removal: what to expect, how to prep, aftercare, and results.`},{property:`og:type`,content:`article`},{property:`og:url`,content:D(`/blog/brazilian-laser-hair-removal-guide`)},{property:`og:image`,content:D(__)},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:D(__)},{name:`article:published_time`,content:y_},{name:`geo.region`,content:`US-NY`},{name:`geo.placename`,content:`Brooklyn, New York`}],links:[{rel:`canonical`,href:D(`/blog/brazilian-laser-hair-removal-guide`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:`Brazilian Laser Hair Removal: 14 Things to Know Before Your First Session`,description:`A complete Brooklyn guide to Brazilian laser hair removal: what to expect, how to prep, aftercare, results timeline, and common questions.`,image:D(__),author:{"@type":`Organization`,name:`Ammonite Laser Spa`,url:D(`/`)},publisher:{"@type":`Organization`,name:`Ammonite Laser Spa`,logo:{"@type":`ImageObject`,url:D(__)}},datePublished:y_,dateModified:y_,mainEntityOfPage:{"@type":`WebPage`,"@id":D(`/blog/brazilian-laser-hair-removal-guide`)}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:D(`/`)},{"@type":`ListItem`,position:2,name:`Journal`,item:D(`/blog`)},{"@type":`ListItem`,position:3,name:`Brazilian Laser Hair Removal Guide`,item:D(`/blog/brazilian-laser-hair-removal-guide`)}]})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:g_.map(e=>({"@type":`Question`,name:e.question,acceptedAnswer:{"@type":`Answer`,text:e.answer}}))})}]})}),x_={version:1,asset_id:`a80233ff-7456-4e9c-8e61-c36ed1cdfb89`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/a80233ff-7456-4e9c-8e61-c36ed1cdfb89/journal-4.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/a80233ff-7456-4e9c-8e61-c36ed1cdfb89/journal-4.jpg`,original_filename:`journal-4.jpg`,size:106233,content_type:`image/jpeg`,created_at:`2026-09-23T18:04:58Z`},S_={version:1,asset_id:`bef67fef-425e-492f-bb26-43eb90060a14`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/bef67fef-425e-492f-bb26-43eb90060a14/journal-5.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/bef67fef-425e-492f-bb26-43eb90060a14/journal-5.jpg`,original_filename:`journal-5.jpg`,size:122216,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:03Z`},C_={version:1,asset_id:`58745bd1-0394-4553-8035-5cb9bc8e5431`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/58745bd1-0394-4553-8035-5cb9bc8e5431/journal-6.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/58745bd1-0394-4553-8035-5cb9bc8e5431/journal-6.jpg`,original_filename:`journal-6.jpg`,size:94877,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:08Z`},w_={version:1,asset_id:`6b93e7bb-67ec-4ffe-81e8-b4a406c92993`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/6b93e7bb-67ec-4ffe-81e8-b4a406c92993/journal-7.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/6b93e7bb-67ec-4ffe-81e8-b4a406c92993/journal-7.jpg`,original_filename:`journal-7.jpg`,size:138346,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:13Z`}
20,T_={version:1,asset_id:`44b6836a-59d2-40ff-9fdd-1b0a6576a4ed`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/44b6836a-59d2-40ff-9fdd-1b0a6576a4ed/journal-8.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/44b6836a-59d2-40ff-9fdd-1b0a6576a4ed/journal-8.jpg`,original_filename:`journal-8.jpg`,size:87241,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:20Z`},E_={version:1,asset_id:`b6901c1e-42c0-4e5c-a89b-1839d9008f0e`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/b6901c1e-42c0-4e5c-a89b-1839d9008f0e/journal-9.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/b6901c1e-42c0-4e5c-a89b-1839d9008f0e/journal-9.jpg`,original_filename:`journal-9.jpg`,size:73479,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:25Z`},D_={version:1,asset_id:`e33cc4ff-5f55-401c-835d-cabc950df303`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/e33cc4ff-5f55-401c-835d-cabc950df303/journal-10.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/e33cc4ff-5f55-401c-835d-cabc950df303/journal-10.jpg`,original_filename:`journal-10.jpg`,size:128768,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:30Z`},O_={version:1,asset_id:`d4c16c49-71cf-48e8-84ae-4a072ec04534`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/d4c16c49-71cf-48e8-84ae-4a072ec04534/journal-11.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/d4c16c49-71cf-48e8-84ae-4a072ec04534/journal-11.jpg`,original_filename:`journal-11.jpg`,size:70577,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:34Z`},k_={version:1,asset_id:`9b99de57-c4ef-4791-9bd1-7a7bb8f0cb7e`,project_id:`56b9e50f-5136-425e-becb-50de68ca58fa`,url:`/__l5e/assets-v1/9b99de57-c4ef-4791-9bd1-7a7bb8f0cb7e/journal-12.jpg`,r2_key:`a/v1/56b9e50f-5136-425e-becb-50de68ca58fa/9b99de57-c4ef-4791-9bd1-7a7bb8f0cb7e/journal-12.jpg`,original_filename:`journal-12.jpg`,size:48316,content_type:`image/jpeg`,created_at:`2026-09-23T18:05:39Z`},A_=[{slug:`a-little-self-maintenance`,title:`A Little Self Maintenance`,dek:`Why taking care of yourself doesn't have to feel like another thing on your to-do list.`,img:`hands`,body:[`Somewhere along the way, self-care became a project. A list of products, a schedule of appointments, a version of ourselves we are always about to become. It is no wonder it can feel like one more thing to get right.`,`## Maintenance, not makeover`,`We prefer a smaller word: maintenance. The quiet, ongoing kind â the way you water a plant or mend a hem. Nothing dramatic. Just the ordinary habit of looking after what you already have.`,`It might be ten minutes with a warm cloth on your face before bed. Moisturising your legs while the bathroom is still steamy. Booking the appointment you have been meaning to book for three months, then letting it be done.`,`## Keep it small enough to keep`,`The rituals that last are the ones that fit inside real life. Choose one thing this week. Do it slowly, and do it for you â not for the mirror, and not for anyone else's idea of finished.`,`That is all self maintenance really is: a little attention, given regularly, to the person you spend every day with.`]},{slug:`the-sunday-reset`,title:`The Sunday Reset`,dek:`A slower way to prepare your skin, body and mind for the week ahead.`,img:`bath`,body:[`Sunday has a particular light. The city goes a little quieter, the week has not quite begun, and there is room â if you protect it â for a reset.`,`## Begin with the room`,`Open a window. Change the sheets. Put fresh towels out. There is something about a clean, calm space that tells the body it is allowed to slow down.`,`## Then the body`,`A long shower or bath, water warm rather than hot. Gentle exfoliation if your skin wants it, followed by a generous layer of body lotion or oil while your skin is still damp. Take your time with the parts you usually rush â elbows, knees, heels.`,`## Then the face`,`Cleanse, then something simple and hydrating. This is not the evening for a new active or a dramatic mask. Think comfort over correction.`,`## Finally, the week`,`Lo
20ok at your calendar with a cup of tea. Write down one thing that is just for you â a walk, a treatment, an early night. Put it in the diary as seriously as you would a meeting. That is the whole reset: a clean room, cared-for skin, and one promise to yourself.`]},{slug:`the-art-of-doing-nothing`,title:`The Art of Doing Nothing`,dek:`Why rest belongs in your beauty routine too.`,img:`rest`,body:[`The Italians have a phrase for it â dolce far niente, the sweetness of doing nothing. It is not laziness. It is the rare, deliberate choice to let an afternoon be unproductive.`,`## Rest shows`,`You know the difference in the mirror after a proper night's sleep and after a run of late ones. Rest is not a luxury layered on top of a beauty routine; it is the foundation that everything else sits on.`,`## How to do nothing, well`,`Lie down somewhere with good light. Leave the phone in another room. Read three pages of a book and then stop, if you like. Let your mind wander somewhere unplanned.`,`It will feel strange at first, especially if you are used to measuring your days in tasks completed. That feeling is worth sitting with.`,`## A standing appointment`,`Try giving yourself thirty minutes of nothing, once a week. Not a nap you feel guilty about â a chosen, intentional pause. Many women find that a treatment appointment becomes exactly this: an hour when no one can reach you and nothing is expected of you but to lie still.`]},{slug:`make-your-self-care-routine-feel-luxurious`,title:`How to Make Your Self-Care Routine Feel Luxurious`,dek:`Small rituals that make an ordinary evening feel a little more special.`,img:`still`,body:[`Luxury is rarely about price. More often, it is about attention â the sense that something has been done with care, slowly, for its own sake.`,`## Set the scene`,`Dim the overhead lights and use a lamp. Light a candle. Play something without lyrics. These small signals shift an ordinary bathroom into somewhere you want to linger.`,`## Warm everything`,`A towel warmed on the radiator. Body oil warmed between your palms before it touches your skin. A cloth rinsed in warm water to press over your face after cleansing. Warmth reads as care.`,`## Use your hands`,`Massage your moisturiser in with upward strokes. Spend an extra minute on your neck and décolletage. Rub lotion into your feet and put on soft socks. The touch matters as much as the product.`,`## Decant and edit`,`Keep only what you love on the counter. A few beautiful things in view feel calmer than a crowded shelf. Luxury, it turns out, is often a matter of taking things away.`]},{slug:`a-slow-morning`,title:`A Slow Morning`,dek:`The beauty of giving yourself time before the day begins.`,img:`morning`,body:[`Most mornings begin with a small panic â the alarm, the phone, the list. A slow morning is a quiet rebellion against all of that.`,`## Wake a little earlier`,`Not dramatically. Fifteen minutes is enough to change the tone of the day. Use them for yourself before anyone else gets a claim on your attention.`,`## Light, water, warmth`,`Open the curtains first. Drink a glass of water. Make coffee or tea and actually sit down to drink it, ideally near a window.`,`## A gentle face`,`Your morning skincare can be simple: a splash of water or a mild cleanser, something hydrating, and sunscreen â always sunscreen, and especially if you are having laser or skin treatments. Let it sink in while you finish your cup.`,`## Postpone the phone`,`The messages will still be there in twenty minutes. A morning that begins on your own terms has a way of carrying you gently through the rest of the day.`]},{slug:`your-everything-shower`,title:`Your Everything Shower`,dek:`The ultimate body-care ritual from start to finish.`,img:`shower`,body:[`The everything shower is the long one â the one you plan an evening around. Hair, body, face, the works. Here is how we like to do it.`,`## Before you step in`,`Lay out a clean towel, your body oil or lotion, and something comfortable to change into. If you dry brush, do it now, with light strokes toward the heart.`,`## Hair first`,`Shampoo, then apply conditioner or a mask and clip it up while you do everything else. It gets time to work without you standing around waiting.`,`## Body`,`Use a gentle wash and, once or twice a week, a mild exfoliant. Be kind to areas that are sensitive or recently treated â if you have had laser in the last few days, skip scrubs on those areas and keep the water lukewarm.`,`## Shave, if you shave`,`Save it for the end, when hair is soft. Use a fresh blade and go with the grain. (Clients between laser sessions: shaving is the right choice â no waxing or plucking.)`,`## Afterwards`,`Pat dry, don't rub. Apply oil or lotion within a minute or two, while skin is still slightly damp. Then sit for a moment before you get dressed. That pause is part of the ritual.`]},{slug:`little-things-that-make-you-feel-like-yourself-again`,title:`The Little Things That Make You Feel Like Yourself Again`,dek:`Clean sheets, a fresh manicure, an hour alone â the small returns to self.`,img:`robe`,body:[`After a hard week, a new job, a new baby, a heartbreak, there is often a moment when you catch your reflection and think: where did I go?`,`## Start with the body`,`The way back is rarely dramatic. It is usually something small and physical. Washing and properly drying your hair. Clean, trimmed nails. Moisturised hands. Sheets that smell of nothing but clean.`,`## Wear the thing`,`The good earrings. The perfume you save. The soft sweater. Using the things you love on an ordinary day is a way of telling yourself that ordinary days count.`,`## Keep one appointment`,`For many of our clients, the appointment itself becomes the thread â a regular hour that belongs to them, no matter what else is happening.`,`None of it will fix everything. But each small act says the same thing: you are still here, and you are still worth looking after.`]},{slug:`romanticizing-your-self-care-routine`,title:`Romanticizing Your Self-Care Routine`,dek:`Treat the everyday like it's worth noticing â because it is.`,img:`towels`,body:[`To romanticise something is simply to pay attention to it â to decide that the ordinary is worth savouring.`,`## Notice the textures`,`The weight of a linen towel. Cool water on your wrists. The scent of your moisturiser. Self-care becomes richer the moment you slow down enough to feel it.`,`## Give it a time and place`,`A ritual differs from a routine mainly in intention. Choose a time â Thursday evenings, Sunday mornings â and make it yours. Same candle, same music, same order of things.`,`## Dress for it`,`A robe you love. Your hair wrapped in a soft towel. It sounds small, but it frames the moment as something separate from the rest of the day.`,`## Let it be enough`,`You do not need to photograph it, share it or perfect it. A romanticised routine is one that feels good from the inside.`]},{slug:`when-was-the-last-time-you-took-care-of-you`,title:`When Was the Last Time You Took Care of You?`,dek:`A gentle question worth asking yourself more often.`,img:`wash`,body:[`Not the last time you did your skincare on auto
20pilot. The last time you did something for yourself on purpose, with nothing else competing for your attention.`,`## If you can't remember`,`That is not a failure. It usually means you have been taking care of everything and everyone else. Work, family, friends â the list is long, and you are rarely at the top of it.`,`## Put yourself on the list`,`Not first, necessarily. Just on it. Write down one thing for this week that is only for you: a walk alone, a bath, a treatment, an early night, a coffee somewhere beautiful.`,`## Then protect it`,`Tell people you are busy. You are. Taking care of yourself is not selfish; it is how you keep having something to give.`]},{slug:`the-beauty-of-slowing-down`,title:`The Beauty of Slowing Down`,dek:`What changes when you stop rushing through your own life.`,img:`arch`,body:[`There is a particular kind of beauty that only appears when you slow down: the ease in someone's face when they are not hurrying anywhere.`,`## Rushing shows up`,`In tight shoulders, shallow breath, skipped meals, skincare done in thirty seconds with one eye on the clock. It shows up in how we feel in our own bodies.`,`## Practise slowness`,`Eat one meal a day without a screen. Walk a little slower than you need to. Apply your moisturiser as if someone were doing it for you.`,`## Slowness as a skill`,`It gets easier. The more often you give yourself unhurried moments, the more naturally they arrive. And the calm tends to follow you into the rest of the day.`]},{slug:`confidence-in-your-own-skin`,title:`Feeling Good in Your Own Skin`,dek:`Confidence isn't a finish line. It's a relationship.`,img:`bareSkin`,body:[`We hear the phrase so often it has almost lost its meaning. Comfortable in your own skin. But underneath it is something real: the ease of not constantly thinking about how you look.`,`## Care, not correction`,`The healthiest relationship with your appearance is usually one built on care rather than criticism. You look after your skin because it is yours â not because it is wrong.`,`## Choose what matters to you`,`If something bothers you â unwanted hair, uneven tone â it is completely valid to address it. The point is that the choice comes from you, not from pressure.`,`## Let good enough be good`,`Confidence tends to grow in the gaps where we stop chasing perfect. Some days your skin will glow. Some days it won't. You are allowed to feel good either way.`]},{slug:`getting-ready-as-a-ritual`,title:`Getting Ready, as a Ritual`,dek:`The half hour before you leave the house can be the best part of the evening.`,img:`ready`,body:[`Some of the best moments of a night out happen before you leave: music on, a drink on the dresser, the slow transformation in the mirror.`,`## Give it time`,`Rushed getting-ready feels stressful. Unhurried getting-ready feels like a small celebration. Start thirty minutes earlier than you think you need to.`,`## Skin first`,`A hydrated face makes everything easier. Moisturiser, a few minutes to absorb, then whatever makeup you enjoy â a little or a lot.`,`## Finish with something for you`,`Perfume on your wrists. A last look. Getting ready is not about meeting someone else's standard. It is about arriving somewhere feeling like the version of yourself you like best.`]}],j_=[{slug:`body-care-is-skin-care`,title:`Body Care Is Skin Care`,dek:`The skin below your jawline deserves the same attention as your face.`,img:`bodyOil`,body:[`We will spend twenty minutes on our faces and thirty seconds on everything else. Yet the skin on your body is the same organ â it simply gets less credit.`,`## Same principles, bigger canvas`,`Cleanse gently. Hydrate generously. Protect from the sun. Exfoliate occasionally. The rules you already follow for your face work beautifully from the neck down.`,`## Pay attention to the forgotten places`,`Hands, neck, chest, the backs of arms, knees, feet. These areas show dryness and sun exposure first, and respond quickly to a little consistent care.`,`## Make it easy`,`Keep a body lotion next to the shower and another by your bed. Body care becomes a habit when it requires no effort to remember.`]},{slug:`caring-for-your-body-between-laser-appointments`,title:`How to Care for Your Body Between Laser Appointments`,dek:`What to do â and what to skip â in the weeks between sessions.`,img:`towels`,body:[`Laser hair removal happens in a series of sessions, usually spaced several weeks apart. What you do in between makes a real difference to comfort and results.`,`## Shave, don't pluck`,`Laser targets the hair follicle, so the root needs to stay in place. Shaving is fine and encouraged; waxing, plucking, threading and epilators are not.`,`## Protect from the sun`,`Tanned or recently sun-exposed skin is more reactive to laser. Keep treated areas covered or use a broad-spectrum SPF daily, and let your provider know if you have been in the sun.`,`## Keep skin calm and hydrated`,`A fragrance-free moisturiser is your best friend. Gentle exfoliation a few days after a session can help shed treated hairs, but avoid harsh scrubs.`,`## Keep your appointments`,`Hair grows in cycles, which is why spacing matters. Booking your next session before you leave keeps the rhythm going.`]},{slug:`the-ultimate-body-care-routine`,title:`A Complete Body-Care Routine`,dek:`Daily, weekly and monthly â a calm framework for looking after your body.`,img:`shower`,body:[`Body care does not need to be complicated. It helps to think of it in three rhythms.`,`## Daily`,`A gentle wash, lukewarm water, and moisturiser on damp skin. SPF on anything the sun will see.`,`## Weekly`,`Gentle exfoliation once or twice, a longer shower or bath, and a little extra attention for rough spots like elbows, knees and heels.`,`## Monthly`,`Check in with your skin. Notice what's changed. This is a good time for professional treatments â whether that's a laser session, a facial or simply a new razor blade.`,`Consistency matters more than any single product. A simple routine you actually keep will always outperform an elaborate one you abandon.`]},{slug:`smoother-looking-skin`,title:`How to Get Smoother-Looking Skin`,dek:`Softness is mostly about consistency, not miracles.`,img:`bodyOil`,body:[`Truly smooth skin is less about a single product and more about a few habits done well.`,`## Exfoliate gently`,`A mild scrub or chemical exfoliant once or twice a week helps lift dead skin cells. More is not better â overdoing it leads to irritation, not softness.`,`## Moisturise on damp skin`,`Applying lotion or oil within a couple of minutes of showering helps lock in hydration.`,`## Rethink hair removal`,`Frequent shaving can leave bumps and roughness. Many women find that laser hair removal, over a series of sessions, leaves skin feeling noticeably smoother simply because there is less to shave.`,`## Be patient`,`Skin renews itself over several weeks. Give any new routine at least a month before deciding whether it works.`]},{slug:`ingrowns-what-your-skin-is-telling-you`,title:`Ingrowns: What Your Skin May Be Trying to Tell You`,dek:`Why ingrown hairs happen, and how to be kinder to your skin.`,img:`hands`,body:[`An ingrown hair is simply a hair that curls back or grows sideways into the skin instead of up and out. They are common, especially with curly or coarse hair, and especially after shaving or waxing.`,`## Common causes`,`Shaving against the grain, dull blades, tight clothing that rubs, and a build-up of dead skin that traps hair beneath the surface.`,`## Gentle habits`,`Exfoliate lightly a few times a week, shave with a fresh blade in the direction of growth, and choose breathable fabrics over areas prone to bumps.`,`## Don't dig`,`Picking or tweezing ingrowns can lead to irritation and marks. A warm compress is kinder. If an area becomes painful, swollen or infected, see a doctor.`,`## A longer-term option`,`Because laser reduces the hair itself, many clients find they experience fewer ingrowns over the course of their treatment. It's worth discussing at a consultation.`]},{slug:`razor-bumps-vs-ingrowns`,title:`Razor Bumps vs. Ingrowns`,dek:`They look similar, but they're not quite the same thing.`,img:`still`,body:[`Both show up as small red bumps after hair removal, which is why they're so often confused.`,`## Razor bumps`,`Razor bumps â sometimes called razor burn â are general irritation from friction. They tend to appear quickly after shaving and often feel itchy or stingy across an area.`,`## Ingrown hairs`,`An ingrown is a specific hair growing back into the skin. You may see a single raised bump, sometimes with a visible hair trapped underneath.`,`## C
20aring for both`,`Soothe with a cool compress and a fragrance-free moisturiser. Let skin rest from shaving for a few days if you can. Use a sharp blade and go with the grain next time.`,`If bumps are frequent, it's worth looking at the underlying cause â the method of hair removal itself.`]},{slug:`bikini-area-care-101`,title:`Bikini Area Care 101`,dek:`Gentle, practical care for one of your most sensitive areas.`,img:`towels`,body:[`The bikini area has thinner, more sensitive skin and coarser hair â a combination that makes it prone to irritation.`,`## Keep it simple`,`A mild, fragrance-free wash is enough. Skip heavily perfumed products on this area.`,`## Remove hair thoughtfully`,`If you shave, use a clean, sharp razor and a gentle shaving gel. Shave with the grain and rinse with cool water after.`,`## Let it breathe`,`Cotton underwear and looser clothing after hair removal reduce friction and bumps.`,`## Consider the long view`,`Bikini and Brazilian are among the most popular laser areas, largely because they are so tiresome to maintain otherwise. Our Brazilian laser guide covers what to expect in detail.`]},{slug:`how-to-care-for-your-bikini-area`,title:`How to Care for Your Bikini Area After Hair Removal`,dek:`The first few days matter most. Here's how to keep skin calm.`,img:`bath`,body:[`Whatever method you use, the skin in the bikini area needs a little extra tenderness afterwards.`,`## The first 24â48 hours`,`Avoid hot baths, saunas, intense workouts and tight clothing. Keep the area cool and clean.`,`## Soothe`,`A cool compress or a fragrance-free aloe gel can calm redness. Resist the urge to scratch.`,`## After laser specifically`,`Some redness and a feeling similar to mild sunburn are normal for a few hours. Skip exfoliation for a few days, then gently exfoliate to help shed treated hair. Follow any aftercare your provider gives you.`,`## When to call`,`If you notice blistering, significant swelling or anything that worries you, contact your provider.`]},{slug:`body-exfoliation-when-and-how`,title:`Body Exfoliation: When + How`,dek:`Smoother skin without overdoing it.`,img:`bodyOil`,body:[`Exfoliation removes the build-up of dead skin cells that can leave skin looking dull and feeling rough. Done well, it's one of the most satisfying body-care steps.`,`## Physical or chemical`,`Physical exfoliants â scrubs, mitts, dry brushes â work by gentle friction. Chemical exfoliants use mild acids to loosen dead cells. Both work; choose based on how your skin responds.`,`## How often`,`Once or twice a week is plenty for most people. Daily scrubbing tends to cause irritation.`,`## When to pause`,`Skip exfoliation on sunburned, broken or freshly treated skin. Around laser appointments, stop a few days before and resume a few days after, unless your provider advises otherwise.`,`## Always follow with moisture`,`Freshly exfoliated skin drinks up lotion. It's the perfect moment to hydrate.`]},{slug:`prep-your-skin-for-laser`,title:`The Best Way to Prep Your Skin for Laser`,dek:`A calm checklist for the days before your appointment.`,img:`room`,body:[`A little preparation helps your session go smoothly and comfortably.`,`## Shave the day before`,`Shave the area 12â24 hours ahead so the hair is below the surface but the follicle is intact.`,`## No waxing or plucking`,`Avoid any method that removes hair from the root for several weeks before treatment.`,`## Avoid the sun`,`Come in with un-tanned skin, and avoid self-tanner too. Tell us if you have had recent sun exposure.`,`## Arrive clean`,`Skip lotions, deodorant or makeup on the area the day of treatment. Wear comfortable clothing.`,`## Share your history`,`Let us know about medications, skin conditions or recent treatments. It helps us choose the right settings for your skin.`]},{slug:`post-laser-body-care`,title:`Post-Laser Body Care`,dek:`Simple aftercare to keep treated skin comfortable.`,img:`towels`,body:[`After laser hair removal, your skin has had a lot of warmth directed at it. Aftercare is mostly about keeping things cool and calm.`,`## Keep it cool`,`Lukewarm showers, no hot tubs or saunas, and gentle movement rather than
20intense workouts for a day or two.`,`## Keep it simple`,`Fragrance-free moisturiser or aloe. No scrubs, retinoids or strong acids on the area for a few days.`,`## Keep it covered`,`Daily SPF on anything exposed. Sun protection is essential throughout your series.`,`## Expect shedding`,`Over the next couple of weeks, treated hairs may appear to grow before falling out. This is normal â don't pluck them.`]},{slug:`summer-body-care-year-round`,title:`Summer Body Care, Year Round`,dek:`Why the best summer skin starts in the colder months.`,img:`arch`,body:[`It's tempting to only think about body care when the weather warms up. But the habits that give you easy summer skin are best started long before.`,`## Autumn and winter are for treatments`,`Laser hair removal works best on skin that isn't tanned, which makes the cooler months an ideal time to begin a series. Start in autumn and much of the work is done by summer.`,`## Hydrate through the cold`,`Heating dries skin. A richer body cream in winter keeps it soft.`,`## SPF isn't seasonal`,`UV reaches us all year. Keep protecting any skin that's exposed, especially during a treatment series.`]},{slug:`your-body-deserves-a-ritual-too`,title:`Your Body Deserves a Ritual Too`,dek:`Moving care beyond the face and into the whole self.`,img:`bath`,body:[`We have beautiful language for facial rituals â double cleanse, layering, glow. The body rarely gets the same poetry.`,`## Begin with touch`,`Massage oil into your shoulders, calves, feet. Notice where you hold tension. Body care can be as much about release as appearance.`,`## Make it weekly`,`Choose one evening for your body: a bath, gentle exfoliation, a slow application of oil. Put on something soft afterwards.`,`## Appreciate what it does`,`Your body carries you through everything. A ritual is a small way of saying thank you.`]}],M_=[{slug:`the-low-maintenance-beauty-routine`,title:`The Low-Maintenance Beauty Routine`,dek:`Fewer steps, better skin, more time for everything else.`,img:`bareSkin`,body:[`The most elegant women we know tend to do less, not more. A few good habits, done consistently, and a willingness to let their skin be skin.`,`## Morning`,`Cleanse or rinse, a hydrating moisturiser, and sunscreen. A touch of tinted balm or concealer where you want it. Brows brushed up. Done.`,`## Evening`,`Remove the day properly. Moisturise. If you use an active, keep it to one.`,`## Outsource the hard parts`,`Low maintenance at home often means a little professional help: laser hair removal so you're not shaving every day, or regular skin treatments so your base needs less coverage.`]},{slug:`your-skin-before-your-makeup`,title:`Your Skin Before Your Makeup`,dek:`Why the best base starts long before foundation.`,img:`ready`,body:[`Makeup artists will tell you: the secret to beautiful makeup is well-prepared skin.`,`## Hydration first`,`Dehydrated skin makes makeup cling and crease. A good moisturiser, given a few minutes to absorb, is the single best primer.`,`## Texture and tone`,`Smoother, more even skin simply needs less product. This is where consistent skincare â and treatments like Laser Genesis for tone and texture â quietly change your routine.`,`## Less, placed well`,`When the skin underneath is cared for, you can apply foundation only where you need it and let the rest show through.`]},{slug:`the-glow-routine`,title:`The Glow Routine`,dek:`Real radiance comes from hydration, rest and light â not highlighter.`,img:`wash`,body:[`Glow is the word everyone wants. But true radiance is rarely a product; it's the result of healthy, hydrated skin reflecting light evenly.`,`## Hydrate inside and out`,`Water, yes â and a moisturiser that suits your skin. Hydrated skin looks plumper and catches light.`,`## Gentle exfoliation`,`A mild exfoliant a couple of times a week helps skin look brighter by clearing dull surface cells.`,`## Sleep`,`Unglamorous and irreplaceable.`,`## Even tone`,`Uneven pigment and redness scatter light. Treatments aimed at tone, like Laser Genesis, are often what people mean when they say they want to glow.`]},{slug:`build-a-skincare-ritual-you-will-keep`,title:`How to Build a Skincare Ritual You'll Actually Keep`,dek:`The best routine is the one that fits your real life.`,img:`still`,body:[`Most skincare routines fail for the same reason: they're designed for an imaginary person with endless time.`,`## Start with three`,`Cleanser, moisturiser, sunscreen. Master these before adding anything else.`,`## Add one thing at a time`,`Introduce new products one by one, a few weeks a
20part, so you know what's working and what isn't.`,`## Put it where you'll see it`,`Keep your products visible and within reach. Out of sight really is out of mind.`,`## Attach it to something`,`Brush teeth, then skincare. Kettle on, then sunscreen. Habits stick when they piggyback on ones you already have.`]},{slug:`the-beauty-of-bare-skin`,title:`The Beauty of Bare Skin`,dek:`On freckles, texture, and letting your face breathe.`,img:`bareSkin`,body:[`There is something quietly confident about bare skin. Freckles, a few lines, natural colour â the face as it actually is.`,`## Skin has texture`,`Pores, fine lines and the occasional blemish are signs of real, living skin. Filters have distorted our sense of what's normal.`,`## Care makes bare easier`,`Going makeup-free feels easier when your skin feels good â hydrated, comfortable, even. That's where a consistent routine pays off.`,`## Try a bare day`,`Once a week, skip makeup entirely. You may find you miss it less than you expected.`]},{slug:`skin-first-makeup-second`,title:`Skin First, Makeup Second`,dek:`A philosophy, not a rule.`,img:`hands`,body:[`Makeup can be joyful, expressive and fun. But it works best as a finishing touch rather than a cover.`,`## Invest in the canvas`,`Time and money spent on skincare tends to reduce what you need to spend on coverage.`,`## Let makeup be optional`,`When your skin feels good, makeup becomes something you choose rather than something you rely on. That's a freeing shift.`,`## Keep it gentle`,`Remove makeup thoroughly every night, and give your skin time to breathe on quieter days.`]},{slug:`the-10-minute-beauty-reset`,title:`The 10-Minute Beauty Reset`,dek:`For the evenings when you have almost no time, and still want to feel put together.`,img:`morning`,body:[`Some evenings, ten minutes is all there is. That's enough.`,`## Minutes 1â3`,`Cleanse your face and press a warm cloth over it for a few breaths.`,`## Minutes 4â6`,`Moisturiser on face and neck. Hand cream. Lip balm.`,`## Minutes 7â8`,`Brush your hair. Tie it back softly.`,`## Minutes 9â10`,`Sit, breathe, drink a glass of water. You're reset.`]},{slug:`skin-before-a-big-event`,title:`What Your Skin Needs Before a Big Event`,dek:`A calm timeline for weddings, birthdays and nights that matter.`,img:`ready`,body:[`The golden rule: don't try anything new right before a big day.`,`## A few months before`,`This is the time for treatments that build gradually â a laser hair removal series, a course of Laser Genesis or microneedling. Plan so your final session is well ahead of the date.`,`## A few weeks before`,`Keep your routine steady. No new actives, no dramatic facials.`,`## The week of`,`Hydrate, sleep, go easy on salt and alcohol, and shave rather than wax any area you'd normally treat.`,`## The day`,`A gentle cleanse, a good moisturiser, and enjoy it.`]},{slug:`the-post-vacation-skin-reset`,title:`The Post-Vacation Skin Reset`,dek:`Sun, salt, flights and late nights â how to bring skin back gently.`,img:`arch`,body:[`Holidays are wonderful for the soul and sometimes less so for skin.`,`## Rehydrate`,`Flights and sun both dehydrate. Lean on a richer moisturiser for a week or two.`,`## Go gentle`,`Pause strong actives while skin recovers, especially if you caught some sun.`,`## Wait before treatments`,`If you tanned, let your provider know before any laser appointment. Tanned skin often needs time to settle before treatment can safely continue.`,`## Keep the holiday feeling`,`A slow morning, a long bath, an early night. The skin reset is also a life reset.`]}],N_=[{slug:`skin-in-its-natural-state`,title:`Skin, in Its Natural State`,dek:`Understanding what healthy skin really looks like.`,img:`bareSkin`,body:[`Healthy skin is not poreless, flawless or matte. It moves, it changes, it has texture and colour variation.`,`## What healthy looks like`,`Comfortable rather than tight. Resilient rather than reactive. Generally even, with some natural variation.`,`## Listen to it`,`Stinging, persistent redness or flaking are signals â often that you're doing too much. Healthy skin usually responds to simplicity.`,`## Work with it`,`The goal of good skincare isn't to change who you are. It's to help your skin be its most comfortable, resilient self.`]},{slug:`how-to-prep-your-skin-for-a-treatment`,title:`How to Prep Your Skin for a Treatment`,dek:`Before a facial, laser or microneedling â the calm essentials.`,img:`room`,body:[`Good preparation helps your skin get the most from any professional treatment.`,`## Pause strong actives`,`Retinoids and strong exfoliating acids can make skin more sensitive. Your provider will tell you how many days to stop beforehand.`,`## Avoid the sun`,`Protect your skin in the weeks before, and let us know if you've had recent sun exposure or a tan.`,`## Arrive with clean skin`,`No makeup on the treatment area if you can manage it.`,`## Tell us everything`,`Medications, recent treatments, skin conditions, pregnancy â all of it helps us keep you safe and comfortable.`]},{slug:`your-skin-barrier-explained`,title:`Your Skin Barrier, Explained`,dek:`The quiet layer that decides how y
20our skin feels every day.`,img:`still`,body:[`Your skin barrier is the outermost layer of skin â a structure of cells and lipids often compared to bricks and mortar. It keeps moisture in and irritants out.`,`## Signs it's struggling`,`Tightness, stinging when you apply products, redness, flaking, or skin that suddenly reacts to things it used to tolerate.`,`## What disrupts it`,`Over-exfoliating, harsh cleansers, too many actives at once, hot water, and very dry air.`,`## How to support it`,`Simplify. A gentle cleanser, a comforting moisturiser, and sunscreen. Pause exfoliation and strong actives until skin feels calm again.`]},{slug:`skincare-after-laser`,title:`Skincare After Laser`,dek:`What to use, what to skip, and when to return to your usual routine.`,img:`wash`,body:[`After a laser treatment, your skin needs gentleness above all.`,`## The first few days`,`Gentle cleanser, fragrance-free moisturiser, mineral sunscreen. That's it.`,`## Skip for now`,`Retinoids, strong acids, scrubs, and anything fragranced. Avoid hot showers, saunas and intense exercise for a day or two.`,`## Returning to normal`,`Most people can reintroduce their usual products after a few days, but follow the specific aftercare you're given â it can vary by treatment and skin type.`,`Our guides on keeping cool after laser, sun protection, and the 72-hour rest rule go into more detail.`]},{slug:`how-to-care-for-sensitive-skin`,title:`How to Care for Sensitive Skin`,dek:`Less, gentler, and with patience.`,img:`hands`,body:[`Sensitive skin reacts easily â to products, weather, stress. The good news is that it usually responds well to a calm, minimal approach.`,`## Keep the routine short`,`The fewer products you use, the fewer chances for a reaction.`,`## Patch test`,`Try new products on a small area for a few days before applying to your whole face.`,`## Avoid fragrance`,`Added fragrance is one of the most common irritants.`,`## Tell your provider`,`If you have sensitive skin and are considering treatments, let us know. We can adjust our approach and talk you through what to expect.`]},{slug:`dry-vs-dehydrated-skin`,title:`The Difference Between Dry and Dehydrated Skin`,dek:`One is a skin type. The other is a condition. They need different care.`,img:`bodyOil`,body:[`They sound the same, but they aren't.`,`## Dry skin`,`Dry skin produces less oil. It tends to feel rough or flaky and benefits from richer creams and oils.`,`## Dehydrated skin`,`Dehydrated skin lacks water, and any skin type â even oily â can be dehydrated. It often looks dull, feels tight, and shows fine lines more.`,`## How to help`,`Dehydrated skin loves humectants like glycerin and hyaluronic acid under a moisturiser. Dry skin wants those plus richer, oil-based layers.`]},{slug:`consistency-over-a-10-step-routine`,title:`Why Consistency Matters More Than a 10-Step Routine`,dek:`The quiet power of doing the basics, every day.`,img:`towels`,body:[`It's easy to believe that better skin comes from more products. Usually, it comes from doing a few things reliably.`,`## Skin renews slowly`,`It takes weeks for skin to show the effect of a change. Switching routines constantly means you never see what works.`,`## The same is true of treatments`,`Laser, Laser Genesis and microneedling are all designed as a series. Results build over consistent sessions, not a single visit.`,`## Keep it boring`,`A dependable routine is the most luxuri
20ous thing you can give your skin.`]},{slug:`your-skin-through-the-seasons`,title:`Your Skin Through the Seasons`,dek:`How to adjust your routine as the weather changes.`,img:`morning`,body:[`Your skin in January is not your skin in July. A little seasonal adjustment goes a long way.`,`## Winter`,`Richer moisturisers, lukewarm water, a humidifier if the heating is on. A lovely season to start laser treatments, when skin is less sun-exposed.`,`## Spring`,`Lighten textures gradually. Keep up the SPF as the days get brighter.`,`## Summer`,`Light, hydrating layers and diligent sun protection.`,`## Autumn`,`Repair after summer. Gentle exfoliation, rich hydration, and planning any treatments you want to complete before next summer.`]}],P_=[{slug:`your-first-laser-appointment`,title:`Your First Laser Appointment`,dek:`What actually happens, from the moment you arrive.`,img:`room`,body:[`A first appointment can feel like a big step. Here's what to expect, so it doesn't have to.`,`## Arrival`,`We'll talk through your skin, hair, medical history and what you'd like to achieve. This is the moment to ask anything.`,`## The treatment`,`The area is cleaned, and you'll wear protective eyewear. Most people describe the sensation as a quick snap or warmth. Small areas take minutes; larger ones take longer.`,`## Afterwards`,`Some redness is normal. We'll go through aftercare and book your next session at the right interval.`]},{slug:`before-your-first-laser-session`,title:`What to Expect Before Your First Laser Session`,dek:`A short, honest checklist.`,img:`towels`,body:[`Preparing well makes everything easier.`,`## Weeks before`,`Stop waxing, plucking and threading the area. Avoid tanning and self-tanner.`,`## The day before`,`Shave the area cleanly.`,`## The day of`,`Skip lotions and deodorant on the area. Wear comfortable clothing. Arrive a few minutes early so you don't feel rushed.`]},{slug:`laser-hair-removal-beginners-guide`,title:`Laser Hair Removal: The Beginner's Guide`,dek:`How it works, how many sessions, and who it suits.`,img:`laserHair`,body:[`Laser hair removal uses light energy absorbed by the pigment in hair to heat and disable the follicle, reducing future growth.`,`## Why a series`,`Hair grows in cycles, and laser is most effective on hair in its active growth phase. That's why several sessions, spaced weeks apart, are needed.`,`## What results look like`,`Most people see a significant, gradual reduction in hair. Some may need occasional maintenance sessions. Results vary by hair colour, skin tone and hormones.`,`## Is it right for you`,`A consultation is the best way to know. We'll look at your skin and hair and talk honestly about what to expect.`]},{slug:`how-to-prep-for-laser-hair-removal`,title:`How to Prep for Laser Hair Removal`,dek:`Shave, skip the sun, and come as you are.`,img:`hands`,body:[`Preparation is simple, but it matters.`,`## Shave 12â24 hours before`,`The hair should be short, with the root intact.`,`## No root removal`,`No waxing, plucking, threading or epilating in the weeks before.`,`## Protect from the sun`,`Avoid tanning and self-tanner, and tell us about any recent sun exposure.`,`## Be open`,`Let us know about medications or conditions that could affect your skin's sensitivity to light.`]},{slug:`after-laser-hair-removal`,title:`What to Do After Laser Hair Removal`,dek:`Keep it cool, calm and protected.`,img:`bath`,body:[`Aftercare is simple and makes a real difference to comfort.`,`## Cool and calm`,`Mild redness and warmth are normal. A cool compress and fragrance-free moisturiser help.`,`## Avoid heat for a day or two`,`No saunas, hot tubs, very hot showers or intense workouts.`,`## Protect from the sun`,`Use SPF daily on treated areas that are exposed.`,`## Let hairs shed`,`Treated hairs will push out over the following weeks. Don't pluck them â gentle exfoliation after a few days can help.`]},{slug:`laser-genesis-what-it-is`,title:`Laser Genesis: What It Is`,dek:`A gentle laser treatment for skin that looks more even and refined.`,img:`genesis`,body:[`Laser Genesis is a gentle, non-ablative laser treatment that gently warms the deeper layers of skin. It's often chosen for redness, uneven tone and overall texture.`,`## How it feels`,`Most people describe it as a warm, comfortable sensation. There's no downtime â you can return to your day afterwards.`,`## Results`,`Improvements are gradual and build over a series of sessions. Skin tends to look more even and refined.`,`## Who it suits`,`It's a lovely option for people who want to improve tone and texture without a dramatic treatment. We'll advise during a consultation.`]},{slug:`laser-and-ingrown-care`,title:`Laser + Ingrown Care`,dek:`How laser hair removal fits into caring for ingrown-prone skin.`,img:`bodyOil`,body:[`If you're prone to ingrown hairs, the method you use to remove hair matters.`,`## Why ingrowns happen`,`Shaving and waxing can leave hair tips sharp or trapped, encouraging them to grow back into the skin.`,`## How laser can help`,`Because laser reduces the hair itself over a series of sessions, many people find they get fewer ingrowns over time.`,`## Between sessions`,`Shave with a fresh blade, exfoliate gently a few times a week, and avoid picking. If an ingrown becomes infected or painful, see a doctor.`]},{slug:`questions-to-ask-before-laser`,title:`Questions to Ask Before Your Laser Treatment`,dek:`A good provider will be glad you asked.`,img:`ready`,body:[`Feeling informed is part of feeling comfortable. Here are questions worth asking at any consultation.`,`## About the treatment`,`How many sessions might I need? How far apart? What will it feel like?`,`## About my skin`,`Is this suitable for my skin tone and hair colour? Is there anything in my history I should mention?`,`## About safety and aftercare`,`What should I avoid before and after? What reactions are normal, and when should I call you?`,`## About cost`,`What's the price per session, and are there packages or offers? At Ammonite, first-time laser clients can ask about our new client special.`]}],F_=new Proxy({},{get:()=>``}),I_={"a-little-self-maintenance":{url:x_.url,alt:`Black-and-white photo of a woman in a robe and towel drinking coffee on a sofa`},"the-art-of-doing-nothing":{url:E_.url,alt:`A woman asleep in a bed against a worn plaster wall`},"getting-ready-as-a-ritual":{url:C_.url,alt:`A woman applying lipstick in a small vanity mirror beside dried flowers`},"how-to-prep-your-skin-for-a-treatment":{url:O_.url,alt:`Black-and-white close-up of a woman receiving a facial with cream on her skin`},"confidence-in-your-own-skin":{url:S_.url,alt:`Black-and-white portrait of a woman with short curly hair in a striped top`},"your-body-deserves-a-ritual-too":{url:T_.url,alt:`Lace lingerie and gold sandals draped over an old wooden wardrobe`},"your-everything-shower":{url:w_.url,alt:`A steamy glass shower with pink lingerie hanging on the door`},"the-sunday-reset":{url:D_.url,alt:`Linens drying on a line against a weathered European wall`},"the-beauty-of-slowing-down":{url:k_.url,alt:`A blurred woman in a pale dress walking through a dim wooden hallway`}},L_=(e,t)=>e.map(e=>({alt:I_[e.slug]?.alt??null,slug:e.slug,title:e.title,dek:e.dek,image:I_[e.slug]?.url??F_[e.img],category:t,body:e.body})),R_=[{slug:`brazilian-laser-hair-removal-guide`,title:`Brazilian Laser, Honestly`,dek:`What to expect, how to prep, and the ritual around it.`,image:``,category:`Laser`,body:[],href:`/blog/brazilian-laser-hair-removal-guide`}
20,{slug:`pcos-laser-hair-removal`,title:`PCOS, Facial Hair & Laser`,dek:`A compassionate guide to hormonal hair growth and laser.`,image:``,category:`Laser`,body:[],href:`/blog/pcos-laser-hair-removal`},{slug:`keeping-cool-after-laser-hair-removal`,title:`Keeping Cool After Laser`,dek:`Why the first 48 hours are all about calm.`,image:``,category:`Skin`,body:[],href:`/blog/keeping-cool-after-laser-hair-removal`},{slug:`natural-sun-protection-after-laser`,title:`Sun Protection After Laser`,dek:`Mineral SPF, shade and gentle habits.`,image:``,category:`Skin`,body:[],href:`/blog/natural-sun-protection-after-laser`},{slug:`seventy-two-hour-rest-after-laser-rejuvenation-microneedling`,title:`The 72-Hour Rest`,dek:`Caring for skin after Laser Genesis and microneedling.`,image:``,category:`Skin`,body:[],href:`/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`}];function z_(e){let t=[],n=Math.max(...e.map(e=>e.length));for(let r=0;r<n;r++)for(let n of e)n[r]&&t.push(n[r]);return t}var B_=L_(A_,`Self Care`),V_=L_(j_,`Body`),H_=L_(M_,`Beauty`),U_=L_(N_,`Skin`),W_=L_(P_,`Laser`),G_=z_([B_.slice(0,6),V_.slice(0,4),H_.slice(0,3),U_.slice(0,3),[...W_.slice(0,2)]]).concat(z_([B_.slice(6),V_.slice(4),H_.slice(3),[...U_.slice(3),...R_.filter(e=>e.category===`Skin`)],[...W_.slice(2),...R_.filter(e=>e.category===`Laser`)]])),K_=[`Self Care`,`Skin`,`Body`,`Beauty`,`Laser`],q_=e=>G_.find(t=>t.slug===e&&!t.href),J_=e=>e.href??`/blog/${e.slug}`,Y_=A(`/blog/$slug`)({loader:async({params:e})=>{let t=q_(e.slug);if(t){let e=await Zg().catch(()=>({})),n=e[t.slug],r=t=>e[t.slug]?{...t,image:e[t.slug].url,alt:e[t.slug].alt}:t;return{editorial:n?{...t,image:n.url,alt:n.alt}:t,more:G_.filter(e=>e.category===t.category&&e.slug!==t.slug).slice(0,3).map(r),post:null,related:[]}}return{editorial:null,more:[],...await Xg({data:{slug:e.slug}})}},head:({loaderData:e,params:t})=>{let n=e?.editorial;if(n){let e=`${Fe}/blog/${t.slug}`,r=n.image?D(n.image):void 0;return{meta:[{title:`${n.title} | The Ammonite Journal`},{name:`description`,content:n.dek},{property:`og:title`,content:n.title},{property:`og:description`,content:n.dek},{property:`og:type`,content:`article`},{property:`og:url`,content:e},{property:`article:section`,content:n.category},...r?[{property:`og:image`,content:r},{name:`twitter:image`,content:r}]:[],{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:e}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:n.title,description:n.dek,image:r?[r]:void 0,articleSection:n.category,mainEntityOfPage:e,publisher:{"@type":`Organization`,name:H.name,url:Fe}})}]}}let r=e?.post;if(!r)return{meta:[{title:`Article Not Found | ${H.name}`}]};let i=`${Fe}/blog/${t.slug}`,a=r.meta_description??(r.content_html??``).replace(/<[^>]*>/g,` `).trim().slice(0,157),o=r.hero_image_url??void 0,s=[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Article`,headline:r.title,description:a,image:o?[o]:void 0,datePublished:r.published_at??void 0,dateModified:r.updated_at??r.published_at??void 0,mainEntityOfPage:i,publisher:{"@type":`Organization`,name:H.name,url:Fe}})}];return r.faq_schema&&r.faq_schema.length>0&&s.push({type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:r.faq_schema.map(e=>({"@type":`Question`,name:e.question,acceptedAnswer:{"@type":`Answer`,text:e.answer}}))})}),{meta:[{title:`${r.title} | ${H.name}`},{name:`description`,content:a},...r.meta_keywords?[{name:`keywords`,content:r.meta_keywords}]:[],{property:`og:title`,content:r.title},{property:`og:description`,content:a},{property:`og:type`,content:`article`},{property:`og:site_name`,content:H.name},{property:`og:locale`,content:`en_US`},{property:`og:url`,content:i},...r.published_at?[{property:`article:published_time`,content:r.published_at}]:[],...r.updated_at?[{property:`article:modified_time`,content:r.updated_at}]:[],...(r.tags??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>({property:`article:tag`,content:e})),...o?[{property:`og:image`,content:o}]:[],{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:r.title},{name:`twitter:description`,content:a},...o?[{name:`twitter:image`,content:o}]:[]],links:[{rel:`canonical`,href:i}],scripts:s}},component:j(()=>L(()=>import(`./blog._slug-BLg2bxIo.js`),__vite__mapDeps([61,1,10,11,12,4,7,3,62,14,50,63])),`component`),errorComponent:j(()=>L(()=>import(`./blog._slug-BgsBvLHQ.js`),__vite__mapDeps([64,1,62,10,11,12,4,7,3])),`errorComponent`),notFoundComponent:j(()=>L(()=>import(`./blog._slug-CP8s97lc.js`),__vite__mapDeps([65,1,62,10,11,12,4,7,3])),`notFoundComponent`)}),X_=A(`/_authenticated/profile`)({head:()=>({meta:[{title:`Your profile â Ammonite Laser Spa`},{name:`description`,content:`Manage your Ammonite account and profile details.`},{property:`og:title`,content:`Your profile â Ammonite Laser Spa`},{property:`og:description`,content:`Manage your Ammonite account and profile details.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://sunbeam-spacesammonitelaserspa.lovable.app/profile`},{name:`twitter:card`,content:`summary_large_image`},{name:`robots`,content:`noindex`}],links:[{rel:`canonical`,href:`https://sunbeam-spacesammonitelaserspa.lovable.app/profile`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/`},{"@type":`ListItem`,position:2,name:`Profile`,item:`https://sunbeam-spacesammonitelaserspa.lovable.app/profile`}]})}]}),component:j(()=>L(()=>import(`./profile-BYyoP8J8.js`),__vite__mapDeps([66,1,4])),`component`)}),Z_=A(`/_authenticated/portal`)({component:j(()=>L(()=>import(`./portal-C-xdMxgF.js`),__vite__mapDeps([67,1,68,4,10,11,12,7,3])),`component`),head:()=>({meta:[{title:`Client Portal | Ammonite Laser Spa`},{name:`description`,content:`Private Ammonite Laser Spa client portal for appointments, treatment progress, and before-and-after photos.`},{property:`og:title`,content:`Client Portal | Ammonite Laser Spa`},{property:`og:description`,content:`Private access to your Ammonite appointments, treatment progress, and before-and-after photos.`},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary`},{name:`robots`,content:`noindex, nofollow`}]})}),Q_=()=>El.auth.oauth,$_=A(`/.lovable/oauth/consent`)({validateSearch:e=>
20({authorization_id:typeof e.authorization_id==`string`?e.authorization_id:``}),beforeLoad:async({search:e,location:t})=>{if(!e.authorization_id)throw Error(`Missing authorization_id`);let{data:n}=await El.auth.getSession(),r=t.pathname+t.searchStr;if(!n.session)throw Ce({to:`/auth`,search:{redirect:r}})},loader:async({location:e})=>{let t=new URLSearchParams(e.search).get(`authorization_id`),{data:n,error:r}=await Q_().getAuthorizationDetails(t);if(r)throw r;let i=n?.redirect_url??n?.redirect_to;if(i&&!n?.client)throw Ce({href:i});return n},component:j(()=>L(()=>import(`./_._lovable.oauth.consent-D6pbDuAI.js`),__vite__mapDeps([69,1,4])),`component`),errorComponent:j(()=>L(()=>import(`./_._lovable.oauth.consent-70Q3_3zC.js`),__vite__mapDeps([70,1])),`errorComponent`)}),ev=A(`/_authenticated/admin/testimonials`)({head:()=>({meta:[{title:`Admin â Testimonials | Ammonite`},{name:`robots`,content:`noindex`}]}),component:j(()=>L(()=>import(`./admin.testimonials-94EZjdn5.js`),__vite__mapDeps([71,1,6,7,4,3,2])),`component`)}),tv=A(`/_authenticated/admin/portal`)({component:j(()=>L(()=>import(`./admin.portal-BdAmC6e6.js`),__vite__mapDeps([72,1,68,4,10,11,12,7])),`component`),head:()=>({meta:[{title:`Client Care | Ammonite Admin`},{name:`description`,content:`Private Ammonite staff area for managing client appointments and treatment progress.`},{property:`og:title`,content:`Client Care | Ammonite Admin`},{property:`og:description`,content:`Private Ammonite staff area for client appointments and treatment progress.`},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary`},{name:`robots`,content:`noindex, nofollow`}]})}),nv=A(`/_authenticated/admin/journal`)({head:()=>({meta:[{title:`Admin â Journal Photos | Ammonite`},{name:`robots`,content:`noindex`}]}),component:j(()=>L(()=>import(`./admin.journal-BL7mBn_r.js`),__vite__mapDeps([73,1,4])),`component`)}),rv=A(`/_authenticated/admin/inquiries`)({head:()=>({meta:[{title:`Booking Inquiries | Ammonite Laser Spa Admin`},{name:`description`,content:`Review booking and consultation inquiries submitted through the Ammonite Laser Spa website.`},{name:`robots`,content:`noindex, nofollow`},{property:`og:title`,content:`Booking Inquiries | Ammonite Laser Spa Admin`},{property:`og:description`,content:`Review booking and consultation inquiries submitted through the website.`},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary`}]}),component:j(()=>L(()=>import(`./admin.inquiries-DZCH6lCZ.js`),__vite__mapDeps([74,1,68,4])),`component`)}),iv=Gd.update({id:`/treatment-guide`,path:`/treatment-guide`,getParentRoute:()=>W}),av=Zd.update({id:`/reviews`,path:`/reviews`,getParentRoute:()=>W}),ov=Sf.update({id:`/microneedling-brooklyn-heights`,path:`/microneedling-brooklyn-heights`,getParentRoute:()=>W}),sv=kf.update({id:`/microneedling-brooklyn`,path:`/microneedling-brooklyn`,getParentRoute:()=>W}),cv=Pf.update({id:`/local-citations`,path:`/local-citations`,getParentRoute:()=>W}),lv=Vf.update({id:`/laser-vein-treatment-brooklyn-heights`,path:`/laser-vein-treatment-brooklyn-heights`,getParentRoute:()=>W}),uv=Jf.update({id:`/laser-vein-treatment-brooklyn`,path:`/laser-vein-treatment-brooklyn`,getParentRoute:()=>W}),dv=tp.update({id:`/laser-skin-treatments-brooklyn`,path:`/laser-skin-treatments-brooklyn`,getParentRoute:()=>W}),fv=sp.update({id:`/laser-rejuvenation`,path:`/laser-rejuvenation`,getParentRoute:()=>W}),pv=mp.update({id:`/laser-pigmentation-treatment-brooklyn-heights`,path:`/laser-pigmentation-treatment-brooklyn-heights`,getParentRoute:()=>W}),mv=xp.update({id:`/laser-pigmentation-treatment-brooklyn`,path:`/laser-pigmentation-treatment-brooklyn`,getParentRoute:()=>W}),hv=Op.update({id:`/laser-hair-removal-brooklyn-heights`,path:`/laser-hair-removal-brooklyn-heights`,getParentRoute:()=>W}),gv=Pp.update({id:`/laser-hair-removal-brooklyn`,path:`/laser-hair-removal-brooklyn`,getParentRoute:()=>W}),_v=Bp.update({id:`/laser-genesis-brooklyn-heights`,path:`/laser-genesis-brooklyn-heights`,getParentRoute:()=>W}),vv=qp.update({id:`/laser-acne-treatment-brooklyn-heights`,path:`/laser-acne-treatment-brooklyn-heights`,getParentRoute:()=>W}),yv=em.update({id:`/laser-acne-treatment-brooklyn`,path:`/laser-acne-treatment-brooklyn`,getParentRoute:()=>W}),bv=nm.update({id:`/landing`,path:`/landing`,getParentRoute:()=>W}),xv=lm.update({id:`/full-body-laser-hair-removal-brooklyn`,path:`/full-body-laser-hair-removal-brooklyn`,getParentRoute:()=>W}),Sv=mm.update({id:`/faq`,path:`/faq`,getParentRoute:()=>W}),Cv=Sm.update({id:`/facials-brooklyn-heights`,path:`/facials-brooklyn-heights`,getParentRoute:()=>W}),wv=Om.update({id:`/facial-laser-hair-removal-brooklyn`,path:`/facial-laser-hair-removal-brooklyn`,getParentRoute:()=>W}),Tv=Fm.update({id:`/cryo-sculpt-brooklyn-heights`,path:`/cryo-sculpt-brooklyn-heights`,getParentRoute:()=>W}),Ev=Hm.update({id:`/cryo-sculpt-brooklyn`,path:`/cryo-sculpt-brooklyn`,getParentRoute:()=>W}),Dv=Eg.update({id:`/contact`,path:`/contact`,getParentRoute:()=>W}),Ov=Mg.update({id:`/brazilian-laser-hair-removal-brooklyn`,path:`/brazilian-laser-hair-removal-brooklyn`,getParentRoute:()=>W}),kv=Fg.update({id:`/auth`,path:`/auth`,getParentRoute:()=>W}),Av=Lg.update({id:`/about`,path:`/about`,getParentRoute:()=>W}),jv=Rg.update({id:`/_authenticated`,getParentRoute:()=>W}),Mv=zg.update({id:`/`,path:`/`,getParentRoute:()=>W}),Nv=Vg.update({id:`/services/`,path:`/services/`,getParentRoute:()=>W}),Pv=qg.update({id:`/locations/`,path:`/locations/`,getParentRoute:()=>W}),Fv=e_.update({id:`/blog/`,path:`/blog/`,getParentRoute:()=>W}),Iv=t_.update({id:`/services/$slug`,path:`/services/$slug`,getParentRoute:()=>W}),Lv=i_.update({id:`/locations/$slug`,path:`/locations/$slug`,getParentRoute:()=>W}),Rv=o_.update({id:`/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`,path:`/blog/seventy-two-hour-rest-after-laser-rejuvenation-microneedling`,getParentRoute:()=>W}),zv=d_.update({id:`/blog/pcos-laser-hair-removal`,path:`/blog/pcos-laser-hair-removal`,getParentRoute:()=>W}),Bv=p_.update({id:`/blog/natural-sun-protection-after-laser`,path:`/blog/natural-sun-protection-after-laser`,getParentRoute:()=>W}),Vv=h_.update({id:`/blog/keeping-cool-after-laser-hair-removal`,path:`/blog/keeping-cool-after-laser-hair-removal`,getParentRoute:()=>W}),Hv=b_.update({id:`/blog/brazilian-laser-hair-removal-guide`,path:`/blog/brazilian-laser-hair-removal-guide`,getParentRoute:()=>W}),Uv=Y_.update({id:`/blog/$slug`,path:`/blog/$slug`,getParentRoute:()=>W}),Wv=X_.update({id:`/profile`,path:`/profile`,getParentRoute:()=>jv}),Gv=Z_.update({id:`/portal`,path:`/portal`,getParentRoute:()=>jv}),Kv=$_.update({id:`/.lovable/oauth/consent`,path:`/.lovable/oauth/consent`,getParentRoute:()=>W}),qv=ev.update({id:`/admin/testimonials`,path:`/admin/testimonials`,getParentRoute:()=>jv}),Jv=tv.update({id:`/admin/portal`,path:`/admin/portal`,getParentRoute:()=>jv}),Yv=nv.update({id:`/admin/journal`,path:`/admin/journal`,getParentRoute:()=>jv}),Xv={AuthenticatedPortalRoute:Gv,AuthenticatedProfileRoute:Wv,AuthenticatedAdminInquiriesRoute:rv.update({id:`/admin/inquiries`,path:`/admin/inquiries`,getParentRoute:()=>jv}),AuthenticatedAdminJournalRoute:Yv,AuthenticatedAdminPortalRoute:Jv,AuthenticatedAdminTestimonialsRoute:qv},Zv={IndexRoute:Mv,AuthenticatedRouteRoute:jv._addFileChildren(Xv),AboutRoute:Av,AuthRoute:kv,BrazilianLaserHairRemovalBrooklynRoute:Ov,ContactRoute:Dv,CryoSculptBrooklynRoute:Ev,CryoSculptBrooklynHeightsR
20oute:Tv,FacialLaserHairRemovalBrooklynRoute:wv,FacialsBrooklynHeightsRoute:Cv,FaqRoute:Sv,FullBodyLaserHairRemovalBrooklynRoute:xv,LandingRoute:bv,LaserAcneTreatmentBrooklynRoute:yv,LaserAcneTreatmentBrooklynHeightsRoute:vv,LaserGenesisBrooklynHeightsRoute:_v,LaserHairRemovalBrooklynRoute:gv,LaserHairRemovalBrooklynHeightsRoute:hv,LaserPigmentationTreatmentBrooklynRoute:mv,LaserPigmentationTreatmentBrooklynHeightsRoute:pv,LaserRejuvenationRoute:fv,LaserSkinTreatmentsBrooklynRoute:dv,LaserVeinTreatmentBrooklynRoute:uv,LaserVeinTreatmentBrooklynHeightsRoute:lv,LocalCitationsRoute:cv,MicroneedlingBrooklynRoute:sv,MicroneedlingBrooklynHeightsRoute:ov,ReviewsRoute:av,TreatmentGuideRoute:iv,BlogSlugRoute:Uv,BlogBrazilianLaserHairRemovalGuideRoute:Hv,BlogKeepingCoolAfterLaserHairRemovalRoute:Vv,BlogNaturalSunProtectionAfterLaserRoute:Bv,BlogPcosLaserHairRemovalRoute:zv,BlogSeventyTwoHourRestAfterLaserRejuvenationMicroneedlingRoute:Rv,LocationsSlugRoute:Lv,ServicesSlugRoute:Iv,BlogIndexRoute:Fv,LocationsIndexRoute:Pv,ServicesIndexRoute:Nv,DotlovableOauthConsentRoute:Kv},Qv=W._addFileChildren(Zv),$v=()=>hr({routeTree:Qv,context:{queryClient:new Eu},scrollRestoration:!0,defaultPreloadStaleTime:0});async function ey(){let e=await $v(),t;if(kl){let n=await kl.getOptions();n.serializationAdapters=n.serializationAdapters??[],window.__TSS_START_OPTIONS__=n,t=n.serializationAdapters,e.options.defaultSsr=n.defaultSsr}else t=[],window.__TSS_START_OPTIONS__={serializationAdapters:t};return t.push(pn),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:``,serializationAdapters:t}),e.stores.matchesId.get().length||await gn(e),e}var ty=ey;async function ny(){let e=await ty();return window.$_TSR?.h(),e}var ry;function iy(){return ry||=ny(),(0,k.jsx)(vn,{promise:ry,children:e=>(0,k.jsx)(vr,{router:e})})}var ay=Be();(0,O.startTransition)(()=>{(0,ay.hydrateRoot)(document,(0,k.jsx)(O.StrictMode,{children:(0,k.jsx)(iy,{})}))});export{H as $,um as A,Gn as At,rp as B,_g as C,El as Ct,_m as D,yr as Dt,km as E,Nr as Et,Cp as F,hf as G,Hf as H,Sp as I,$d as J,tf as K,hp as L,Jp as M,Vp as N,hm as O,ur as Ot,kp as P,Hu as Q,cp as R,vg as S,Al as St,Im as T,jr as Tt,Ff as U,Yf as V,Cf as W,vd as X,Zd as Y,Uu as Z,e_ as _,z as _t,Y_ as a,Nu as at,Bg as b,Nl as bt,G_ as c,vu as ct,f_ as d,ru as dt,Wu as et,s_ as f,Rl as ft,t_ as g,Bl as gt,n_ as h,Vl as ht,X_ as i,Pu as it,rm as j,gm as k,Kn as kt,g_ as l,su as lt,i_ as m,Xl as mt,Q_ as n,Bu as nt,K_ as o,Mu as ot,a_ as p,Il as pt,ef as q,Z_ as r,Iu as rt,J_ as s,Ou as st,$_ as t,Ju as tt,m_ as u,iu as ut,Jg as v,tu as vt,Um as w,Ar as wt,yg as x,jl as xt,Hg as y,zl as yt,np as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.