PageSourceSearch

https://www.the3marketers.com/assets/index-DWbBPqxK.js

js the3marketers.com collected 2026-10-04 13:26:23 UTC 692,956 bytes, 12 lines download raw bytes

vendor: 16,480 bytes, lines 1-9
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/routes-Cw07sYtj.js","assets/site-DdTquS49.js","assets/check-CPmbRbYJ.js","assets/chevron-right-D8zsMA6N.js","assets/CtaBand-oYWeUD2I.js","assets/PostCard-CtxeE4Km.js","assets/SectionHeading-C21_PACg.js","assets/portfolio-CIvsTJ1c.js","assets/EstimateForm-KPO-0y5v.js","assets/formspree-BnC7QwLD.js","assets/_slug-BjIcohOu.js","assets/authors-DExf7HbO.js","assets/Breadcrumbs-BPOWoceN.js","assets/calgary-digital-marketing-agency-CFUlGCK_.js","assets/PageHero-CF8w0VLA.js","assets/FaqList-D08uXZB-.js","assets/calgary-facebook-advertising-DuHKkpbu.js","assets/ServicePage-CXVmtCY4.js","assets/calgary-google-ads-management-DUeGMPWS.js","assets/calgary-linkedin-advertising-CbO2zqTk.js","assets/calgary-microsoft-advertising-C_VzfuXD.js","assets/calgary-pay-per-click-advertising-DcINhYfY.js","assets/calgary-seo-DAUuaXgX.js","assets/contact-DWOyKpbk.js","assets/faq-Ld51vccx.js","assets/partner-with-us-CwMoNz-O.js","assets/privacy-BttqmMdN.js","assets/terms-BSfUif4h.js","assets/blog-Cx87bpfn.js","assets/author._author-BZM-ZsN6.js"])))=>i.map(i=>d[i]);
2import{A as e,B as t,C as n,D as r,E as i,F as a,G as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,O as m,P as h,Q as g,R as _,S as v,T as y,U as b,V as x,W as ee,X as te,Y as S,Z as C,_ as ne,a as w,b as re,c as ie,d as ae,f as oe,g as se,h as ce,i as le,j as E,k as D,l as ue,m as de,n as fe,o as pe,p as O,q as k,r as me,s as he,t as ge,u as _e,v as ve,w as ye,x as be,y as xe,z as Se}from"./site-DdTquS49.js";import{a as Ce,n as we,o as Te}from"./authors-DExf7HbO.js";var Ee=C((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,re());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}var ee=!1,te=-1,S=5,C=-1;function ne(){return g?!0:!(e.unstable_now()-C<S)}function w(){if(g=!1,ee){var t=e.unstable_now();C=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(te),te=-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&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?re():ee=!1}}}var re;if(typeof y==`function`)re=function(){y(w)};else if(typeof MessageChannel<`u`){var ie=new MessageChannel,ae=ie.port2;ie.port1.onmessage=w,re=function(){ae.postMessage(null)}}else re=function(){_(w,0)};function oe(t,n){te=_(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`):S=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(te),te=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,re()))),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}}}})),De=C(((e,t)=>{t.exports=Ee()})),Oe=C((e=>{var t=De(),n=te(),r=S();function i(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 a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(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 s(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 c(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 l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for(`react.element`),m=Symbol.for(`react.transitional.element`),h=Symbol.for(`react.portal`),g=Symbol.for(`react.fragment`),_=Symbol.for(`react.strict_mode`),v=Symbol.for(`react.profiler`),y=Symbol.for(`react.consumer`),b=Symbol.for(`react.context`),x=Symbol.for(`react.forward_ref`),ee=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),ne=Symbol.for(`react.memo`),w=Symbol.for(`react.lazy`),re=Symbol.for(`react.activity`),ie=Symbol.for(`react.memo_cache_sentinel`),ae=Symbol.iterator;function oe(e){return typeof e!=`object`||!e?null:(e=ae&&e[ae]||e[`@@iterator`],typeof e==`function`?e:null)}var se=Symbol.for(`react.client.reference`);function ce(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===se?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case g:return`Fragment`;case v:return`Profiler`;case _:return`StrictMode`;case ee:return`Suspense`;case C:return`SuspenseList`;case re:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case h:return`Portal`;case b:return e.displayName||`Context`;case y:return(e._context.displayName||`Context`)+`.Consumer`;case x: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?ce(e.type)||`Memo`:t;case w:t=e._payload,e=e._init;try{return ce(e(t))}catch{}}return null}var le=Array.isArray,E=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ue={pending:!1,data:null,method:null,action:null},de=[],fe=-1;function pe(e){return{current:e}}function O(e){0>fe||(e.current=de[fe],de[fe]=null,fe--)}function k(e,t){fe++,de[fe]=e.current,e.current=t}var me=pe(null),he=pe(null),ge=pe(null),_e=pe(null);function ve(e,t){switch(k(ge,t),k(he,e),k(me,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?q(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=q(t),e=Yd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}O(me),k(me,e)}function ye(){O(me),O(he),O(ge)}function be(e){e.memoizedState!==null&&k(_e,e);var t=me.current,n=Yd(t,e.type);t!==n&&(k(he,e),k(me,n))}function xe(e){he.current===e&&(O(me),O(he)),_e.current===e&&(O(_e),ep._currentValue=ue)}var Se,Ce;function we(e){if(Se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Se=t&&t[1]||``,Ce=-1<e.stack.indexOf(`
3    at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
4`+Se+e+Ce}var Te=!1;function Ee(e,t){if(!e||Te)return``;Te=!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{Te=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?we(n):``}function Oe(e,t){switch(e.tag){case 26:case 27:case 5:return we(e.type);case 16:return we(`Lazy`);case 13:return e.child!==t&&t!==null?we(`Suspense Fallback`):we(`Suspense`);case 19:return we(`SuspenseList`);case 0:case 15:return Ee(e.type,!1);case 11:return Ee(e.type.render,!1);case 1:return Ee(e.type,!0);case 31:return we(`Activity`);default:return``}}function ke(e){try{var t=``,n=null;do t+=Oe(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
8Error generating stack: `+e.message+`
9`+e.stack}}var Ae=Object.prototype.hasOwnProperty,je=t.unstable_scheduleCallback,Me=t.unstable_cancelCallback,Ne=t.unstable_shouldYield,Pe=t.unstable_requestPaint,Fe=t.unstable_now,Ie=t.unstable_getCurrentPriorityLevel,Le=t.unstable_ImmediatePriority,Re=t.unstable_UserBlockingPriority,ze=t.unstable_NormalPriority,Be=t.unstable_LowPriority,Ve=t.unstable_IdlePriority,He=t.log,Ue=t.unstable_setDisableYieldValue,We=null,Ge=null;function Ke(e){if(typeof He==`function`&&Ue(e),Ge&&typeof Ge.setStrictMode==`function`)try{Ge.setStrictMode(We,e)}catch{}}var qe=Math.clz32?Math.clz32:Xe,Je=Math.log,Ye=Math.LN2;function Xe(e){return e>>>=0,e===0?32:31-(Je(e)/Ye|0)|0}var Ze=256,Qe=262144,$e=4194304;function et(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 tt(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=et(n))):i=et(o):i=et(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=et(n))):i=et(o)):i=et(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 nt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function rt(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 it(){var e=$e;return $e<<=1,!($e&62914560)&&($e=4194304),e}function at(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ot(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function st(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-qe(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&&ct(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function ct(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-qe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function lt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-qe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function ut(e,t){var n=t&-t;return n=n&42?1:dt(n),(n&(e.suspendedLanes|t))===0?n:0}function dt(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 ft(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function pt(){var e=D.p;return e===0?(e=window.event,e===void 0?32:gp(e.type)):e}function mt(e,t){var n=D.p;try{return D.p=e,t()}finally{D.p=n}}var ht=Math.random().toString(36).slice(2),gt=`__reactFiber$`+ht,_t=`__reactProps$`+ht,vt=`__reactContainer$`+ht,yt=`__reactEvents$`+ht,bt=`__reactListeners$`+ht,xt=`__reactHandles$`+ht,St=`__reactResources$`+ht,Ct=`__reactMarker$`+ht;function wt(e){delete e[gt],delete e[_t],delete e[yt],delete e[bt],delete e[xt]}function Tt(e){var t=e[gt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[vt]||n[gt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=pf(e);e!==null;){if(n=e[gt])return n;e=pf(e)}return t}e=n,n=e.parentNode}return null}function Et(e){if(e=e[gt]||e[vt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Dt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function Ot(e){var t=e[St];return t||=e[St]={hoistableStyles:new Map,hoistableScripts:new Map},t}function kt(e){e[Ct]=!0}var At=new Set,jt={};function Mt(e,t){Nt(e,t),Nt(e+`Capture`,t)}function Nt(e,t){for(jt[e]=t,e=0;e<t.length;e++)At.add(t[e])}var Pt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u
9037D\\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]*$`),Ft={},It={};function Lt(e){return Ae.call(It,e)?!0:Ae.call(Ft,e)?!1:Pt.test(e)?It[e]=!0:(Ft[e]=!0,!1)}function Rt(e,t,n){if(Lt(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 zt(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 Bt(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 Vt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Ht(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Ut(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 Wt(e){if(!e._valueTracker){var t=Ht(e)?`checked`:`value`;e._valueTracker=Ut(e,t,``+e[t])}}function Gt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Ht(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Kt(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 qt=/[\n"\\]/g;function Jt(e){return e.replace(qt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Yt(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=``+Vt(t)):e.value!==``+Vt(t)&&(e.value=``+Vt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Zt(e,o,Vt(n)):Zt(e,o,Vt(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=``+Vt(s):e.removeAttribute(`name`)}function Xt(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)){Wt(e);return}n=n==null?``:``+Vt(n),t=t==null?n:``+Vt(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),Wt(e)}function Zt(e,t,n){t===`number`&&Kt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Qt(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=``+Vt(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 $t(e,t,n){if(t!=null&&(t=``+Vt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Vt(n)}function en(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(le(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}
vendor: 87,081 bytes, line 9
9n=Vt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Wt(e)}function tn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var nn=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 rn(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||nn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function an(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(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 a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&rn(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&rn(e,o,t[o])}function on(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 sn=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`],[`clipPath`,`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`]]),cn=/^[\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 ln(e){return cn.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function un(){}var dn=null;function fn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var pn=null,mn=null;function hn(e){var t=Et(e);if(t&&(e=t.stateNode)){var n=e[_t]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Yt(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="`+Jt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[_t]||null;if(!a)throw Error(i(90));Yt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Gt(r)}break a;case`textarea`:$t(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Qt(e,!!n.multiple,t,!1)}}}var gn=!1;function _n(e,t,n){if(gn)return e(t,n);gn=!0;try{return e(t)}finally{if(gn=!1,(pn!==null||mn!==null)&&(U(),pn&&(t=pn,e=mn,mn=pn=null,hn(t),e)))for(t=0;t<e.length;t++)hn(e[t])}}function vn(e,t){var n=e.stateNode;if(n===null)return null;var r=n[_t]||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(i(231,t,typeof n));return n}var yn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),bn=!1;if(yn)try{var xn={};Object.defineProperty(xn,"passive",{get:function(){bn=!0}}),window.addEventListener(`test`,xn,xn),window.removeEventListener(`test`,xn,xn)}catch{bn=!1}var Sn=null,Cn=null,wn=null;function Tn(){if(wn)return wn;var e,t=Cn,n=t.length,r,i=`value`in Sn?Sn.value:Sn.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 wn=i.slice(e,1<r?1-r:void 0)}function En(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 Dn(){return!0}function On(){return!1}function kn(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)?Dn:On,this.isPropagationStopped=On,this}return f(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=Dn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=Dn)},persist:function(){},isPersistent:Dn}),t}var An={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},jn=kn(An),A=f({},An,{view:0,detail:0}),Mn=kn(A),Nn,Pn,j,Fn=f({},A,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Kn,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!==j&&(j&&e.type===`mousemove`?(Nn=e.screenX-j.screenX,Pn=e.screenY-j.screenY):Pn=Nn=0,j=e),Nn)},movementY:function(e){return`movementY`in e?e.movementY:Pn}}),In=kn(Fn),Ln=kn(f({},Fn,{dataTransfer:0})),Rn=kn(f({},A,{relatedTarget:0})),zn=kn(f({},An,{animationName:0,elapsedTime:0,pseudoElement:0})),Bn=kn(f({},An,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Vn=kn(f({},An,{data:0})),Hn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Un={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`},Wn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Gn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Wn[e])?!!t[e]:!1}function Kn(){return Gn}var qn=kn(f({},A,{key:function(e){if(e.key){var t=Hn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=En(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Un[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Kn,charCode:function(e){return e.type===`keypress`?En(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?En(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Jn=kn(f({},Fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Yn=kn(f({},A,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Kn})),Xn=kn(f({},An,{propertyName:0,elapsedTime:0,pseudoElement:0})),Zn=kn(f({},Fn,{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})),Qn=kn(f({},An,{newState:0,oldState:0})),$n=[9,13,27,32],er=yn&&`CompositionEvent`in window,tr=null;yn&&`documentMode`in document&&(tr=document.documentMode);var nr=yn&&`TextEvent`in window&&!tr,rr=yn&&(!er||tr&&8<tr&&11>=tr),ir=` `,ar=!1;function or(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 sr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var cr=!1;function lr(e,t){switch(e){case`compositionend`:return sr(t);case`keypress`:return t.which===32?(ar=!0,ir):null;case`textInput`:return e=t.data,e===ir&&ar?null:e;default:return null}}function ur(e,t){if(cr)return e===`compositionend`||!er&&or(e,t)?(e=Tn(),wn=Cn=Sn=null,cr=!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 rr&&t.locale!==`ko`?null:t.data;default:return null}}var dr={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 fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!dr[e.type]:t===`textarea`}function pr(e,t,n,r){pn?mn?mn.push(r):mn=[r]:pn=r,t=Fd(t,`onChange`),0<t.length&&(n=new jn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var mr=null,hr=null;function gr(e){Od(e,0)}function _r(e){if(Gt(Dt(e)))return e}function vr(e,t){if(e===`change`)return t}var yr=!1;if(yn){var br;if(yn){var xr=`oninput`in document;if(!xr){var Sr=document.createElement(`div`);Sr.setAttribute(`oninput`,`return;`),xr=typeof Sr.oninput==`function`}br=xr}else br=!1;yr=br&&(!document.documentMode||9<document.documentMode)}function Cr(){mr&&(mr.detachEvent(`onpropertychange`,wr),hr=mr=null)}function wr(e){if(e.propertyName===`value`&&_r(hr)){var t=[];pr(t,hr,e,fn(e)),_n(gr,t)}}function Tr(e,t,n){e===`focusin`?(Cr(),mr=t,hr=n,mr.attachEvent(`onpropertychange`,wr)):e===`focusout`&&Cr()}function Er(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return _r(hr)}function Dr(e,t){if(e===`click`)return _r(t)}function Or(e,t){if(e===`input`||e===`change`)return _r(t)}function kr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Ar=typeof Object.is==`function`?Object.is:kr;function jr(e,t){if(Ar(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(!Ae.call(t,i)||!Ar(e[i],t[i]))return!1}return!0}function Mr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Nr(e,t){var n=Mr(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=Mr(n)}}function Pr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Pr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Kt(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=Kt(e.document)}return t}function Ir(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 Lr=yn&&`documentMode`in document&&11>=document.documentMode,Rr=null,zr=null,Br=null,Vr=!1;function Hr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Vr||Rr==null||Rr!==Kt(r)||(r=Rr,`selectionStart`in r&&Ir(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}),Br&&jr(Br,r)||(Br=r,r=Fd(zr,`onSelect`),0<r.length&&(t=new jn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Rr)))}function Ur(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Wr={animationend:Ur(`Animation`,`AnimationEnd`),animationiteration:Ur(`Animation`,`AnimationIteration`),animationstart:Ur(`Animation`,`AnimationStart`),transitionrun:Ur(`Transition`,`TransitionRun`),transitionstart:Ur(`Transition`,`TransitionStart`),transitioncancel:Ur(`Transition`,`TransitionCancel`),transitionend:Ur(`Transition`,`TransitionEnd`)},Gr={},Kr={};yn&&(Kr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Wr.animationend.animation,delete Wr.animationiteration.animation,delete Wr.animationstart.animation),`TransitionEvent`in window||delete Wr.transitionend.transition);function qr(e){if(Gr[e])return Gr[e];if(!Wr[e])return e;var t=Wr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Kr)return Gr[e]=t[n];return e}var Jr=qr(`animationend`),Yr=qr(`animationiteration`),Xr=qr(`animationstart`),Zr=qr(`transitionrun`),Qr=qr(`transitionstart`),$r=qr(`transitioncancel`),ei=qr(`transitionend`),ti=new Map,ni=`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(` `);ni.push(`scrollEnd`);function ri(e,t){ti.set(e,t),Mt(t,[e])}var ii=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)},ai=[],oi=0,si=0;function ci(){for(var e=oi,t=si=oi=0;t<e;){var n=ai[t];ai[t++]=null;var r=ai[t];ai[t++]=null;var i=ai[t];ai[t++]=null;var a=ai[t];if(ai[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&&fi(n,i,a)}}function li(e,t,n,r){ai[oi++]=e,ai[oi++]=t,ai[oi++]=n,ai[oi++]=r,si|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ui(e,t,n,r){return li(e,t,n,r),pi(e)}function di(e,t){return li(e,null,null,t),pi(e)}function fi(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-qe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function pi(e){if(50<xu)throw xu=0,H=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var mi={};function hi(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 gi(e,t,n,r){return new hi(e,t,n,r)}function _i(e){return e=e.prototype,!(!e||!e.isReactComponent)}function vi(e,t){var n=e.alternate;return n===null?(n=gi(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 yi(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 bi(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)_i(e)&&(s=1);else if(typeof e==`string`)s=Gf(e,n,me.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case re:return e=gi(31,n,t,a),e.elementType=re,e.lanes=o,e;case g:return xi(n.children,a,o,t);case _:s=8,a|=24;break;case v:return e=gi(12,n,t,a|2),e.elementType=v,e.lanes=o,e;case ee:return e=gi(13,n,t,a),e.elementType=ee,e.lanes=o,e;case C:return e=gi(19,n,t,a),e.elementType=C,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case b:s=10;break a;case y:s=9;break a;case x:s=11;break a;case ne:s=14;break a;case w:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=gi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function xi(e,t,n,r){return e=gi(7,e,r,t),e.lanes=n,e}function Si(e,t,n){return e=gi(6,e,null,t),e.lanes=n,e}function Ci(e){var t=gi(18,null,null,0);return t.stateNode=e,t}function wi(e,t,n){return t=gi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Ti=new WeakMap;function Ei(e,t){if(typeof e==`object`&&e){var n=Ti.get(e);return n===void 0?(t={value:e,source:t,stack:ke(t)},Ti.set(e,t),t):n}return{value:e,source:t,stack:ke(t)}}var Di=[],Oi=0,ki=null,Ai=0,ji=[],Mi=0,Ni=null,Pi=1,Fi=``;function Ii(e,t){Di[Oi++]=Ai,Di[Oi++]=ki,ki=e,Ai=t}function Li(e,t,n){ji[Mi++]=Pi,ji[Mi++]=Fi,ji[Mi++]=Ni,Ni=e;var r=Pi;e=Fi;var i=32-qe(r)-1;r&=~(1<<i),n+=1;var a=32-qe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Pi=1<<32-qe(t)+i|n<<i|r,Fi=a+e}else Pi=1<<a|n<<i|r,Fi=e}function Ri(e){e.return!==null&&(Ii(e,1),Li(e,1,0))}function zi(e){for(;e===ki;)ki=Di[--Oi],Di[Oi]=null,Ai=Di[--Oi],Di[Oi]=null;for(;e===Ni;)Ni=ji[--Mi],ji[Mi]=null,Fi=ji[--Mi],ji[Mi]=null,Pi=ji[--Mi],ji[Mi]=null}function Bi(e,t){ji[Mi++]=Pi,ji[Mi++]=Fi,ji[Mi++]=Ni,Pi=t.id,Fi=t.overflow,Ni=e}var Vi=null,Hi=null,M=!1,Ui=null,Wi=!1,Gi=Error(i(519));function Ki(e){throw Qi(Ei(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Gi}function qi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[gt]=e,t[_t]=r,n){case`dialog`:W(`cancel`,t),W(`close`,t);break;case`iframe`:case`object`:case`embed`:W(`load`,t);break;case`video`:case`audio`:for(n=0;n<Ed.length;n++)W(Ed[n],t);break;case`source`:W(`error`,t);break;case`img`:case`image`:case`link`:W(`error`,t),W(`load`,t);break;case`details`:W(`toggle`,t);break;case`input`:W(`invalid`,t),Xt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:W(`invalid`,t);break;case`textarea`:W(`invalid`,t),en(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&&(W(`beforetoggle`,t),W(`toggle`,t)),r.onScroll!=null&&W(`scroll`,t),r.onScrollEnd!=null&&W(`scrollend`,t),r.onClick!=null&&(t.onclick=un),t=!0):t=!1,t||Ki(e,!0)}function Ji(e){for(Vi=e.return;Vi;)switch(Vi.tag){case 5:case 31:case 13:Wi=!1;return;case 27:case 3:Wi=!0;return;default:Vi=Vi.return}}function Yi(e){if(e!==Vi)return!1;if(!M)return Ji(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`||Xd(e.type,e.memoizedProps)),n=!n),n&&Hi&&Ki(e),Ji(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Hi=ff(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Hi=ff(e)}else t===27?(t=Hi,nf(e.type)?(e=df,df=null,Hi=e):Hi=t):Hi=Vi?uf(e.stateNode.nextSibling):null;return!0}function Xi(){Hi=Vi=null,M=!1}function Zi(){var e=Ui;return e!==null&&(cu===null?cu=e:cu.push.apply(cu,e),Ui=null),e}function Qi(e){Ui===null?Ui=[e]:Ui.push(e)}var $i=pe(null),ea=null,ta=null;function na(e,t,n){k($i,t._currentValue),t._currentValue=n}function ra(e){e._currentValue=$i.current,O($i)}function ia(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 aa(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),ia(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),ia(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function oa(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;Ar(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===_e.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[ep]:e.push(ep))}a=a.return}e!==null&&aa(t,e,n,r),t.flags|=262144}function sa(e){for(e=e.firstContext;e!==null;){if(!Ar(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ca(e){ea=e,ta=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function la(e){return da(ea,e)}function ua(e,t){return ea===null&&ca(e),da(e,t)}function da(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},ta===null){if(e===null)throw Error(i(308));ta=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else ta=ta.next=t;return n}var fa=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()})}},pa=t.unstable_scheduleCallback,ma=t.unstable_NormalPriority,ha={$$typeof:b,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ga(){return{controller:new fa,data:new Map,refCount:0}}function _a(e){e.refCount--,e.refCount===0&&pa(ma,function(){e.controller.abort()})}var va=null,ya=0,ba=0,xa=null;function Sa(e,t){if(va===null){var n=va=[];ya=0,ba=bd(),xa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ya++,t.then(Ca,Ca),t}function Ca(){if(--ya===0&&va!==null){xa!==null&&(xa.status=`fulfilled`);var e=va;va=null,ba=0,xa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function wa(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 Ta=E.S;E.S=function(e,t){V=Fe(),typeof t==`object`&&t&&typeof t.then==`function`&&Sa(e,t),Ta!==null&&Ta(e,t)};var Ea=pe(null);function Da(){var e=Ea.current;return e===null?Yl.pooledCache:e}function Oa(e,t){t===null?k(Ea,Ea.current):k(Ea,t.pool)}function ka(){var e=Da();return e===null?null:{parent:ha._currentValue,pool:e}}var Aa=Error(i(460)),ja=Error(i(474)),Ma=Error(i(542)),Na={then:function(){}};function Pa(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Fa(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(un,un),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,za(e),e;default:if(typeof t.status==`string`)t.then(un,un);else{if(e=Yl,e!==null&&100<e.shellSuspendCounter)throw Error(i(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,za(e),e}throw La=t,Aa}}function Ia(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(La=e,Aa):e}}var La=null;function Ra(){if(La===null)throw Error(i(459));var e=La;return La=null,e}function za(e){if(e===Aa||e===Ma)throw Error(i(483))}var Ba=null,Va=0;function Ha(e){var t=Va;return Va+=1,Ba===null&&(Ba=[]),Fa(Ba,e,t)}function Ua(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Wa(e,t){throw t.$$typeof===p?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Ga(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 a(e,t){return e=vi(e,t),e.index=0,e.sibling=null,e}function o(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=Si(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===g?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===w&&Ia(i)===t.type)?(t=a(t,n.props),Ua(t,n),t.return=e,t):(t=bi(n.type,n.key,n.props,null,e.mode,r),Ua(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=wi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=xi(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=Si(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case m:return n=bi(t.type,t.key,t.props,null,e.mode,n),Ua(n,t),n.return=e,n;case h:return t=wi(t,e.mode,n),t.return=e,t;case w:return t=Ia(t),f(e,t,n)}if(le(t)||oe(t))return t=xi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Ha(t),n);if(t.$$typeof===b)return f(e,ua(e,t),n);Wa(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 m:return n.key===i?l(e,t,n,r):null;case h:return n.key===i?u(e,t,n,r):null;case w:return n=Ia(n),p(e,t,n,r)}if(le(n)||oe(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Ha(n),r);if(n.$$typeof===b)return p(e,t,ua(e,n),r);Wa(e,n)}return null}function _(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 m:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case h:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case w:return r=Ia(r),_(e,t,n,r,i)}if(le(r)||oe(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return _(e,t,n,Ha(r),i);if(r.$$typeof===b)return _(e,t,n,ua(t,r),i);Wa(t,r)}return null}function v(i,a,s,c){for(var l=null,u=null,d=a,m=a=0,h=null;d!==null&&m<s.length;m++){d.index>m?(h=d,d=null):h=d.sibling;var g=p(i,d,s[m],c);if(g===null){d===null&&(d=h);break}e&&d&&g.alternate===null&&t(i,d),a=o(g,a,m),u===null?l=g:u.sibling=g,u=g,d=h}if(m===s.length)return n(i,d),M&&Ii(i,m),l;if(d===null){for(;m<s.length;m++)d=f(i,s[m],c),d!==null&&(a=o(d,a,m),u===null?l=d:u.sibling=d,u=d);return M&&Ii(i,m),l}for(d=r(d);m<s.length;m++)h=_(d,i,m,s[m],c),h!==null&&(e&&h.alternate!==null&&d.delete(h.key===null?m:h.key),a=o(h,a,m),u===null?l=h:u.sibling=h,u=h);return e&&d.forEach(function(e){return t(i,e)}),M&&Ii(i,m),l}function y(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,m=s,h=s=0,g=null,v=c.next();m!==null&&!v.done;h++,v=c.next()){m.index>h?(g=m,m=null):g=m.sibling;var y=p(a,m,v.value,l);if(y===null){m===null&&(m=g);break}e&&m&&y.alternate===null&&t(a,m),s=o(y,s,h),d===null?u=y:d.sibling=y,d=y,m=g}if(v.done)return n(a,m),M&&Ii(a,h),u;if(m===null){for(;!v.done;h++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return M&&Ii(a,h),u}for(m=r(m);!v.done;h++,v=c.next())v=_(m,a,h,v.value,l),v!==null&&(e&&v.alternate!==null&&m.delete(v.key===null?h:v.key),s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return e&&m.forEach(function(e){return t(a,e)}),M&&Ii(a,h),u}function x(e,r,o,c){if(typeof o==`object`&&o&&o.type===g&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case m:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===g){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===w&&Ia(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ua(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===g?(c=xi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=bi(o.type,o.key,o.props,null,e.mode,c),Ua(c,o),c.return=e,e=c)}return s(e);case h:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}t(e,r),r=r.sibling}c=wi(o,e.mode,c),c.return=e,e=c}return s(e);case w:return o=Ia(o),x(e,r,o,c)}if(le(o))return v(e,r,o,c);if(oe(o)){if(l=oe(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return x(e,r,Ha(o),c);if(o.$$typeof===b)return x(e,r,ua(e,o),c);Wa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=Si(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Va=0;var i=x(e,t,n,r);return Ba=null,i}catch(t){if(t===Aa||t===Ma)throw t;var a=gi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ka=Ga(!0),qa=Ga(!1),Ja=!1;function Ya(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xa(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 Za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Qa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,L&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=pi(e),fi(e,null,n),t}return li(e,r,t,n),pi(e)}function $a(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,lt(e,n)}}function eo(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 to=!1;function no(){if(to){var e=xa;if(e!==null)throw e}}function ro(e,t,n,r){to=!1;var i=e.updateQueue;Ja=!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 p=s.lane&-536870913,m=p!==s.lane;if(m?(z&p)===p:(r&p)===p){p!==0&&p===ba&&(to=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;p=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,p);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,p=typeof h==`function`?h.call(_,d,p):h,p==null)break a;d=f({},d,p);break a;case 2:Ja=!0}}p=s.callback,p!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[p]:m.push(p))}else m={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,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),nu|=o,e.lanes=o,e.memoizedState=d}}function io(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function ao(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)io(n[e],t)}var oo=pe(null),so=pe(0);function co(e,t){e=tu,k(so,e),k(oo,t),tu=e|t.baseLanes}function lo(){k(so,tu),k(oo,oo.current)}function uo(){tu=so.current,O(oo),O(so)}var fo=pe(null),po=null;function mo(e){var t=e.alternate;k(yo,yo.current&1),k(fo,e),po===null&&(t===null||oo.current!==null||t.memoizedState!==null)&&(po=e)}function ho(e){k(yo,yo.current),k(fo,e),po===null&&(po=e)}function go(e){e.tag===22?(k(yo,yo.current),k(fo,e),po===null&&(po=e)):_o(e)}function _o(){k(yo,yo.current),k(fo,fo.current)}function vo(e){O(fo),po===e&&(po=null),O(yo)}var yo=pe(0);function bo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||lf(n)||Z(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 xo=0,N=null,So=null,Co=null,wo=!1,To=!1,Eo=!1,Do=0,Oo=0,ko=null,Ao=0;function jo(){throw Error(i(321))}function Mo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Ar(e[n],t[n]))return!1;return!0}function No(e,t,n,r,i,a){return xo=a,N=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,E.H=e===null||e.memoizedState===null?Js:Ys,Eo=!1,a=n(r,i),Eo=!1,To&&(a=Fo(t,n,r,i)),Po(e),a}function Po(e){E.H=qs;var t=So!==null&&So.next!==null;if(xo=0,Co=So=N=null,wo=!1,Oo=0,ko=null,t)throw Error(i(300));e===null||fc||(e=e.dependencies,e!==null&&sa(e)&&(fc=!0))}function Fo(e,t,n,r){N=e;var a=0;do{if(To&&(ko=null),Oo=0,To=!1,25<=a)throw Error(i(301));if(a+=1,Co=So=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}E.H=Xs,o=t(n,r)}while(To);return o}function Io(){var e=E.H,t=e.useState()[0];return t=typeof t.then==`function`?Uo(t):t,e=e.useState()[0],(So===null?null:So.memoizedState)!==e&&(N.flags|=1024),t}function Lo(){var e=Do!==0;return Do=0,e}function Ro(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function zo(e){if(wo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}wo=!1}xo=0,Co=So=N=null,To=!1,Oo=Do=0,ko=null}function Bo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Co===null?N.memoizedState=Co=e:Co=Co.next=e,Co}function Vo(){if(So===null){var e=N.alternate;e=e===null?null:e.memoizedState}else e=So.next;var t=Co===null?N.memoizedState:Co.next;if(t!==null)Co=t,So=e;else{if(e===null)throw N.alternate===null?Error(i(467)):Error(i(310));So=e,e={memoizedState:So.memoizedState,baseState:So.baseState,baseQueue:So.baseQueue,queue:So.queue,next:null},Co===null?N.memoizedState=Co=e:Co=Co.next=e}return Co}function Ho(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Uo(e){var t=Oo;return Oo+=1,ko===null&&(ko=[]),e=Fa(ko,e,t),t=N,(Co===null?t.memoizedState:Co.next)===null&&(t=t.alternate,E.H=t===null||t.memoizedState===null?Js:Ys),e}function Wo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Uo(e);if(e.$$typeof===b)return la(e)}throw Error(i(438,String(e)))}function P(e){var t=null,n=N.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=N.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=Ho(),N.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]=ie;return t.index++,n}function F(e,t){return typeof t==`function`?t(e):t}function Go(e){return Ko(Vo(),So,e)}function Ko(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(xo&f)===f:(z&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===ba&&(d=!0);else if((xo&p)===p){u=u.next,p===ba&&(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=o):l=l.next=f,N.lanes|=p,nu|=p;f=u.action,Eo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,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=o):l=l.next=p,N.lanes|=f,nu|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Ar(o,e.memoizedState)&&(fc=!0,d&&(n=xa,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function qo(e){var t=Vo(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Ar(o,t.memoizedState)||(fc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Jo(e,t,n){var r=N,a=Vo(),o=M;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Ar((So||a).memoizedState,n);if(s&&(a.memoizedState=n,fc=!0),a=a.queue,ys(Zo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||Co!==null&&Co.memoizedState.tag&1){if(r.flags|=2048,ms(9,{destroy:void 0},Xo.bind(null,r,a,n,t),null),Yl===null)throw Error(i(349));o||xo&127||Yo(r,t,n)}return n}function Yo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=N.updateQueue,t===null?(t=Ho(),N.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Xo(e,t,n,r){t.value=n,t.getSnapshot=r,Qo(t)&&$o(e)}function Zo(e,t,n){return n(function(){Qo(t)&&$o(e)})}function Qo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Ar(e,n)}catch{return!0}}function $o(e){var t=di(e,2);t!==null&&wu(t,e,2)}function es(e){var t=Bo();if(typeof e==`function`){var n=e;if(e=n(),Eo){Ke(!0);try{n()}finally{Ke(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:F,lastRenderedState:e},t}function ts(e,t,n,r){return e.baseState=n,Ko(e,So,typeof r==`function`?r:F)}function ns(e,t,n,r,a){if(Ws(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};E.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,rs(t,o)):(o.next=n.next,t.pending=n.next=o)}}function rs(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=E.T,o={};E.T=o;try{var s=n(i,r),c=E.S;c!==null&&c(o,s),is(e,t,s)}catch(n){os(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),E.T=a}}else try{a=n(i,r),is(e,t,a)}catch(n){os(e,t,n)}}function is(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){as(e,t,n)},function(n){return os(e,t,n)}):as(e,t,n)}function as(e,t,n){t.status=`fulfilled`,t.value=n,ss(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,rs(e,n)))}function os(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,ss(t),t=t.next;while(t!==r)}e.action=null}function ss(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function cs(e,t){return t}function ls(e,t){if(M){var n=Yl.formState;if(n!==null){a:{var r=N;if(M){if(Hi){b:{for(var i=Hi,a=Wi;i.nodeType!==8;){if(!a){i=null;break b}if(i=uf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Hi=uf(i.nextSibling),r=i.data===`F!`;break a}}Ki(r)}r=!1}r&&(t=n[0])}}return n=Bo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:cs,lastRenderedState:t},n.queue=r,n=Vs.bind(null,N,r),r.dispatch=n,r=es(!1),a=Us.bind(null,N,!1,r.queue),r=Bo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=ns.bind(null,N,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function us(e){return ds(Vo(),So,e)}function ds(e,t,n){if(t=Ko(e,t,cs)[0],e=Go(F)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Uo(t)}catch(e){throw e===Aa?Ma:e}else r=t;t=Vo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(N.flags|=2048,ms(9,{destroy:void 0},fs.bind(null,i,n),null)),[r,a,e]}function fs(e,t){e.action=t}function ps(e){var t=Vo(),n=So;if(n!==null)return ds(t,n,e);Vo(),t=t.memoizedState,n=Vo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ms(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=N.updateQueue,t===null&&(t=Ho(),N.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 hs(){return Vo().memoizedState}function gs(e,t,n,r){var i=Bo();N.flags|=e,i.memoizedState=ms(1|t,{destroy:void 0},n,r===void 0?null:r)}function _s(e,t,n,r){var i=Vo();r=r===void 0?null:r;var a=i.memoizedState.inst;So!==null&&r!==null&&Mo(r,So.memoizedState.deps)?i.memoizedState=ms(t,a,n,r):(N.flags|=e,i.memoizedState=ms(1|t,a,n,r))}function vs(e,t){gs(8390656,8,e,t)}function ys(e,t){_s(2048,8,e,t)}function bs(e){N.flags|=4;var t=N.updateQueue;if(t===null)t=Ho(),N.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function xs(e){var t=Vo().memoizedState;return bs({ref:t,nextImpl:e}),function(){if(L&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function Ss(e,t){return _s(4,2,e,t)}function Cs(e,t){return _s(4,4,e,t)}function ws(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 Ts(e,t,n){n=n==null?null:n.concat([e]),_s(4,4,ws.bind(null,t,e),n)}function Es(){}function Ds(e,t){var n=Vo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Mo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Os(e,t){var n=Vo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Mo(t,r[1]))return r[0];if(r=e(),Eo){Ke(!0);try{e()}finally{Ke(!1)}}return n.memoizedState=[r,t],r}function ks(e,t,n){return n===void 0||xo&1073741824&&!(z&261930)?e.memoizedState=t:(e.memoizedState=n,e=Cu(),N.lanes|=e,nu|=e,n)}function As(e,t,n,r){return Ar(n,t)?n:oo.current===null?!(xo&42)||xo&1073741824&&!(z&261930)?(fc=!0,e.memoizedState=n):(e=Cu(),N.lanes|=e,nu|=e,t):(e=ks(e,n,r),Ar(e,t)||(fc=!0),e)}function js(e,t,n,r,i){var a=D.p;D.p=a!==0&&8>a?a:8;var o=E.T,s={};E.T=s,Us(e,!1,t,n);try{var c=i(),l=E.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Hs(e,t,wa(c,r),Su(e)):Hs(e,t,r,Su(e))}catch(n){Hs(e,t,{then:function(){},status:`rejected`,reason:n},Su())}finally{D.p=a,o!==null&&s.types!==null&&(o.types=s.types),E.T=o}}function Ms(){}function Ns(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ps(e).queue;js(e,a,t,ue,n===null?Ms:function(){return Fs(e),n(r)})}function Ps(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ue,baseState:ue,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:F,lastRenderedState:ue},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:F,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Fs(e){var t=Ps(e);t.next===null&&(t=e.alternate.memoizedState),Hs(e,t.next.queue,{},Su())}function Is(){return la(ep)}function Ls(){return Vo().memoizedState}function Rs(){return Vo().memoizedState}function zs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Su();e=Za(n);var r=Qa(t,e,n);r!==null&&(wu(r,t,n),$a(r,t,n)),t={cache:ga()},e.payload=t;return}t=t.return}}function Bs(e,t,n){var r=Su();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ws(e)?Gs(t,n):(n=ui(e,t,n,r),n!==null&&(wu(n,e,r),Ks(n,t,r)))}function Vs(e,t,n){Hs(e,t,n,Su())}function Hs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ws(e))Gs(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,Ar(s,o))return li(e,t,i,0),Yl===null&&ci(),!1}catch{}if(n=ui(e,t,i,r),n!==null)return wu(n,e,r),Ks(n,t,r),!0}return!1}function Us(e,t,n,r){if(r={lane:2,revertLane:bd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ws(e)){if(t)throw Error(i(479))}else t=ui(e,n,r,2),t!==null&&wu(t,e,2)}function Ws(e){var t=e.alternate;return e===N||t!==null&&t===N}function Gs(e,t){To=wo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ks(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lt(e,n)}}var qs={readContext:la,use:Wo,useCallback:jo,useContext:jo,useEffect:jo,useImperativeHandle:jo,useLayoutEffect:jo,useInsertionEffect:jo,useMemo:jo,useReducer:jo,useRef:jo,useState:jo,useDebugValue:jo,useDeferredValue:jo,useTransition:jo,useSyncExternalStore:jo,useId:jo,useHostTransitionStatus:jo,useFormState:jo,useActionState:jo,useOptimistic:jo,useMemoCache:jo,useCacheRefresh:jo};qs.useEffectEvent=jo;var Js={readContext:la,use:Wo,useCallback:function(e,t){return Bo().memoizedState=[e,t===void 0?null:t],e},useContext:la,useEffect:vs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),gs(4194308,4,ws.bind(null,t,e),n)},useLayoutEffect:function(e,t){return gs(4194308,4,e,t)},useInsertionEffect:function(e,t){gs(4,2,e,t)},useMemo:function(e,t){var n=Bo();t=t===void 0?null:t;var r=e();if(Eo){Ke(!0);try{e()}finally{Ke(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Bo();if(n!==void 0){var i=n(t);if(Eo){Ke(!0);try{n(t)}finally{Ke(!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=Bs.bind(null,N,e),[r.memoizedState,e]},useRef:function(e){var t=Bo();return e={current:e},t.memoizedState=e},useState:function(e){e=es(e);var t=e.queue,n=Vs.bind(null,N,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Es,useDeferredValue:function(e,t){return ks(Bo(),e,t)},useTransition:function(){var e=es(!1);return e=js.bind(null,N,e.queue,!0,!1),Bo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=N,a=Bo();if(M){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Yl===null)throw Error(i(349));z&127||Yo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,vs(Zo.bind(null,r,o,e),[e]),r.flags|=2048,ms(9,{destroy:void 0},Xo.bind(null,r,o,n,t),null),n},useId:function(){var e=Bo(),t=Yl.identifierPrefix;if(M){var n=Fi,r=Pi;n=(r&~(1<<32-qe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Do++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=Ao++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Is,useFormState:ls,useActionState:ls,useOptimistic:function(e){var t=Bo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Us.bind(null,N,!0,n),n.dispatch=t,[e,t]},useMemoCache:P,useCacheRefresh:function(){return Bo().memoizedState=zs.bind(null,N)},useEffectEvent:function(e){var t=Bo(),n={impl:e};return t.memoizedState=n,function(){if(L&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Ys={readContext:la,use:Wo,useCallback:Ds,useContext:la,useEffect:ys,useImperativeHandle:Ts,useInsertionEffect:Ss,useLayoutEffect:Cs,useMemo:Os,useReducer:Go,useRef:hs,useState:function(){return Go(F)},useDebugValue:Es,useDeferredValue:function(e,t){return As(Vo(),So.memoizedState,e,t)},useTransition:function(){var e=Go(F)[0],t=Vo().memoizedState;return[typeof e==`boolean`?e:Uo(e),t]},useSyncExternalStore:Jo,useId:Ls,useHostTransitionStatus:Is,useFormState:us,useActionState:us,useOptimistic:function(e,t){return ts(Vo(),So,e,t)},useMemoCache:P,useCacheRefresh:Rs};Ys.useEffectEvent=xs;var Xs={readContext:la,use:Wo,useCallback:Ds,useContext:la,useEffect:ys,useImperativeHandle:Ts,useInsertionEffect:Ss,useLayoutEffect:Cs,useMemo:Os,useReducer:qo,useRef:hs,useState:function(){return qo(F)},useDebugValue:Es,useDeferredValue:function(e,t){var n=Vo();return So===null?ks(n,e,t):As(n,So.memoizedState,e,t)},useTransition:function(){var e=qo(F)[0],t=Vo().memoizedState;return[typeof e==`boolean`?e:Uo(e),t]},useSyncExternalStore:Jo,useId:Ls,useHostTransitionStatus:Is,useFormState:ps,useActionState:ps,useOptimistic:function(e,t){var n=Vo();return So===null?(n.baseState=e,[e,n.queue.dispatch]):ts(n,So,e,t)},useMemoCache:P,useCacheRefresh:Rs};Xs.useEffectEvent=xs;function Zs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:f({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Qs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Su(),i=Za(r);i.payload=t,n!=null&&(i.callback=n),t=Qa(e,i,r),t!==null&&(wu(t,e,r),$a(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Su(),i=Za(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Qa(e,i,r),t!==null&&(wu(t,e,r),$a(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Su(),r=Za(n);r.tag=2,t!=null&&(r.callback=t),t=Qa(e,r,n),t!==null&&(wu(t,e,n),$a(t,e,n))}};function $s(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?!jr(n,r)||!jr(i,a):!0}function ec(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&&Qs.enqueueReplaceState(t,t.state,null)}function tc(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=f({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function nc(e){ii(e)}function rc(e){console.error(e)}function ic(e){ii(e)}function ac(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function oc(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 sc(e,t,n){return n=Za(n),n.tag=3,n.payload={element:null},n.callback=function(){ac(e,t)},n}function cc(e){return e=Za(e),e.tag=3,e}function lc(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(){oc(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){oc(t,n,r),typeof i!=`function`&&(pu===null?pu=new Set([this]):pu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function uc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&oa(t,n,a,!0),n=fo.current,n!==null){switch(n.tag){case 31:case 13:return po===null?Fu():n.alternate===null&&B===0&&(B=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Na?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),ed(e,r,a)),!1;case 22:return n.flags|=65536,r===Na?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,a)),!1}throw Error(i(435,n.tag))}return ed(e,r,a),Fu(),!1}if(M)return t=fo.current,t===null?(r!==Gi&&(t=Error(i(423),{cause:r}),Qi(Ei(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=Ei(r,n),a=sc(e.stateNode,r,a),eo(e,a),B!==4&&(B=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Gi&&(e=Error(i(422),{cause:r}),Qi(Ei(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=Ei(o,n),su===null?su=[o]:su.push(o),B!==4&&(B=2),t===null)return!0;r=Ei(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=sc(n.stateNode,r,e),eo(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(pu===null||!pu.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=cc(a),lc(a,e,n,r),eo(n,a),!1}n=n.return}while(n!==null);return!1}var dc=Error(i(461)),fc=!1;function pc(e,t,n,r){t.child=e===null?qa(t,null,n,r):Ka(t,e.child,n,r)}function mc(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 ca(t),r=No(e,t,n,o,a,i),s=Lo(),e!==null&&!fc?(Ro(e,t,i),Rc(e,t,i)):(M&&s&&Ri(t),t.flags|=1,pc(e,t,r,i),t.child)}function hc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!_i(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,gc(e,t,a,r,i)):(e=bi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!zc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?jr:n,n(o,r)&&e.ref===t.ref)return Rc(e,t,i)}return t.flags|=1,e=vi(a,r),e.ref=t.ref,e.return=t,t.child=e}function gc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(jr(a,r)&&e.ref===t.ref)if(fc=!1,t.pendingProps=r=a,zc(e,i))e.flags&131072&&(fc=!0);else return t.lanes=e.lanes,Rc(e,t,i)}return wc(e,t,n,r,i)}function _c(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 yc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Oa(t,a===null?null:a.cachePool),a===null?lo():co(t,a),go(t);else return r=t.lanes=536870912,yc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&Oa(t,null),lo(),_o(t)):(Oa(t,a.cachePool),co(t,a),_o(t),t.memoizedState=null);return pc(e,t,i,n),t.child}function vc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function yc(e,t,n,r,i){var a=Da();return a=a===null?null:{parent:ha._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&Oa(t,null),lo(),go(t),e!==null&&oa(e,t,r,!0),t.childLanes=i,null}function bc(e,t){return t=Nc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function xc(e,t,n){return Ka(t,e.child,null,n),e=bc(t,t.pendingProps),e.flags|=2,vo(t),t.memoizedState=null,e}function Sc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(M){if(r.mode===`hidden`)return e=bc(t,r),t.lanes=536870912,vc(null,e);if(ho(t),(e=Hi)?(e=cf(e,Wi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ni===null?null:{id:Pi,overflow:Fi},retryLane:536870912,hydrationErrors:null},n=Ci(e),n.return=t,t.child=n,Vi=t,Hi=null)):e=null,e===null)throw Ki(t);return t.lanes=536870912,null}return bc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(ho(t),a)if(t.flags&256)t.flags&=-257,t=xc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558));else if(fc||oa(e,t,n,!1),a=(n&e.childLanes)!==0,fc||a){if(r=Yl,r!==null&&(s=ut(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,di(e,s),wu(r,e,s),dc;Fu(),t=xc(e,t,n)}else e=o.treeContext,Hi=uf(s.nextSibling),Vi=t,M=!0,Ui=null,Wi=!1,e!==null&&Bi(t,e),t=bc(t,r),t.flags|=4096;return t}return e=vi(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Cc(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(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function wc(e,t,n,r,i){return ca(t),n=No(e,t,n,r,void 0,i),r=Lo(),e!==null&&!fc?(Ro(e,t,i),Rc(e,t,i)):(M&&r&&Ri(t),t.flags|=1,pc(e,t,n,i),t.child)}function Tc(e,t,n,r,i,a){return ca(t),t.updateQueue=null,n=Fo(t,r,n,i),Po(e),r=Lo(),e!==null&&!fc?(Ro(e,t,a),Rc(e,t,a)):(M&&r&&Ri(t),t.flags|=1,pc(e,t,n,a),t.child)}function Ec(e,t,n,r,i){if(ca(t),t.stateNode===null){var a=mi,o=n.contextType;typeof o==`object`&&o&&(a=la(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Qs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ya(t),o=n.contextType,a.context=typeof o==`object`&&o?la(o):mi,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Zs(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&&Qs.enqueueReplaceState(a,a.state,null),ro(t,r,a,i),no(),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=tc(n,s);a.props=c;var l=a.context,u=n.contextType;o=mi,typeof u==`object`&&u&&(o=la(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)&&ec(t,a,r,o),Ja=!1;var f=t.memoizedState;a.state=f,ro(t,r,a,i),no(),l=t.memoizedState,s||f!==l||Ja?(typeof d==`function`&&(Zs(t,n,d,r),l=t.memoizedState),(c=Ja||$s(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,Xa(e,t),o=t.memoizedProps,u=tc(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=mi,typeof l==`object`&&l&&(c=la(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)&&ec(t,a,r,c),Ja=!1,f=t.memoizedState,a.state=f,ro(t,r,a,i),no();var p=t.memoizedState;o!==d||f!==p||Ja||e!==null&&e.dependencies!==null&&sa(e.dependencies)?(typeof s==`function`&&(Zs(t,n,s,r),p=t.memoizedState),(u=Ja||$s(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&sa(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,Cc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ka(t,e.child,null,i),t.child=Ka(t,null,n,i)):pc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Rc(e,t,i),e}function Dc(e,t,n,r){return Xi(),t.flags|=256,pc(e,t,n,r),t.child}var Oc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function kc(e){return{baseLanes:e,cachePool:ka()}}function Ac(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=au),e}function jc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(yo.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(M){if(a?mo(t):_o(t),(e=Hi)?(e=cf(e,Wi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ni===null?null:{id:Pi,overflow:Fi},retryLane:536870912,hydrationErrors:null},n=Ci(e),n.return=t,t.child=n,Vi=t,Hi=null)):e=null,e===null)throw Ki(t);return Z(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(_o(t),a=t.mode,c=Nc({mode:`hidden`,children:c},a),r=xi(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=kc(n),r.childLanes=Ac(e,s,n),t.memoizedState=Oc,vc(null,r)):(mo(t),Mc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(mo(t),t.flags&=-257,t=Pc(e,t,n)):t.memoizedState===null?(_o(t),c=r.fallback,a=t.mode,r=Nc({mode:`visible`,children:r.children},a),c=xi(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ka(t,e.child,null,n),r=t.child,r.memoizedState=kc(n),r.childLanes=Ac(e,s,n),t.memoizedState=Oc,t=vc(null,r)):(_o(t),t.child=e.child,t.flags|=128,t=null);else if(mo(t),Z(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Qi({value:r,source:null,stack:null}),t=Pc(e,t,n)}else if(fc||oa(e,t,n,!1),s=(n&e.childLanes)!==0,fc||s){if(s=Yl,s!==null&&(r=ut(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,di(e,r),wu(s,e,r),dc;lf(c)||Fu(),t=Pc(e,t,n)}else lf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Hi=uf(c.nextSibling),Vi=t,M=!0,Ui=null,Wi=!1,e!==null&&Bi(t,e),t=Mc(t,r.children),t.flags|=4096);return t}return a?(_o(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=vi(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=xi(c,a,n,null),c.flags|=2):c=vi(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,vc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=kc(n):(a=c.cachePool,a===null?a=ka():(l=ha._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=Ac(e,s,n),t.memoizedState=Oc,vc(e.child,r)):(mo(t),n=e.child,e=n.sibling,n=vi(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 Mc(e,t){return t=Nc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Nc(e,t){return e=gi(22,e,null,t),e.lanes=0,e}function Pc(e,t,n){return Ka(t,e.child,null,n),e=Mc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Fc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ia(e.return,t,n)}function Ic(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 Lc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=yo.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,k(yo,o),pc(e,t,r,n),r=M?Ai:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Fc(e,n,t);else if(e.tag===19)Fc(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&&bo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Ic(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&&bo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Ic(t,!0,n,null,a,r);break;case`together`:Ic(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Rc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),nu|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(oa(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=vi(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=vi(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function zc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&sa(e)))}function Bc(e,t,n){switch(t.tag){case 3:ve(t,t.stateNode.containerInfo),na(t,ha,e.memoizedState.cache),Xi();break;case 27:case 5:be(t);break;case 4:ve(t,t.stateNode.containerInfo);break;case 10:na(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,ho(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(mo(t),e=Rc(e,t,n),e===null?null:e.sibling):jc(e,t,n):(mo(t),t.flags|=128,null);mo(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(oa(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Lc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),k(yo,yo.current),r)break;return null;case 22:return t.lanes=0,_c(e,t,n,t.pendingProps);case 24:na(t,ha,e.memoizedState.cache)}return Rc(e,t,n)}function Vc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)fc=!0;else{if(!zc(e,n)&&!(t.flags&128))return fc=!1,Bc(e,t,n);fc=!!(e.flags&131072)}else fc=!1,M&&t.flags&1048576&&Li(t,Ai,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Ia(t.elementType),t.type=e,typeof e==`function`)_i(e)?(r=tc(e,r),t.tag=1,t=Ec(null,t,e,r,n)):(t.tag=0,t=wc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===x){t.tag=11,t=mc(null,t,e,r,n);break a}if(a===ne){t.tag=14,t=hc(null,t,e,r,n);break a}}throw t=ce(e)||e,Error(i(306,t,``))}}return t;case 0:return wc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=tc(r,t.pendingProps),Ec(e,t,r,a,n);case 3:a:{if(ve(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Xa(e,t),ro(t,r,null,n);var s=t.memoizedState;if(r=s.cache,na(t,ha,r),r!==o.cache&&aa(t,[ha],n,!0),no(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=Dc(e,t,r,n);break a}else if(r!==a){a=Ei(Error(i(424)),t),Qi(a),t=Dc(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(Hi=uf(e.firstChild),Vi=t,M=!0,Ui=null,Wi=!0,n=qa(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Xi(),r===a){t=Rc(e,t,n);break a}pc(e,t,r,n)}t=t.child}return t;case 26:return Cc(e,t),e===null?(n=jf(t.type,null,t.pendingProps,null))?t.memoizedState=n:M||(n=t.type,e=t.pendingProps,r=Jd(ge.current).createElement(n),r[gt]=t,r[_t]=e,Wd(r,n,e),kt(r),t.stateNode=r):t.memoizedState=jf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return be(t),e===null&&M&&(r=t.stateNode=mf(t.type,t.pendingProps,ge.current),Vi=t,Wi=!0,a=Hi,nf(t.type)?(df=a,Hi=uf(r.firstChild)):Hi=a),pc(e,t,t.pendingProps.children,n),Cc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&M&&((a=r=Hi)&&(r=sf(r,t.type,t.pendingProps,Wi),r===null?a=!1:(t.stateNode=r,Vi=t,Hi=uf(r.firstChild),Wi=!1,a=!0)),a||Ki(t)),be(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Xd(a,o)?r=null:s!==null&&Xd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=No(e,t,Io,null,null,n),ep._currentValue=a),Cc(e,t),pc(e,t,r,n),t.child;case 6:return e===null&&M&&((e=n=Hi)&&(n=X(n,t.pendingProps,Wi),n===null?e=!1:(t.stateNode=n,Vi=t,Hi=null,e=!0)),e||Ki(t)),null;case 13:return jc(e,t,n);case 4:return ve(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ka(t,null,r,n):pc(e,t,r,n),t.child;case 11:return mc(e,t,t.type,t.pendingProps,n);case 7:return pc(e,t,t.pendingProps,n),t.child;case 8:return pc(e,t,t.pendingProps.children,n),t.child;case 12:return pc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,na(t,t.type,r.value),pc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,ca(t),a=la(a),r=r(a),t.flags|=1,pc(e,t,r,n),t.child;case 14:return hc(e,t,t.type,t.pendingProps,n);case 15:return gc(e,t,t.type,t.pendingProps,n);case 19:return Lc(e,t,n);case 31:return Sc(e,t,n);case 22:return _c(e,t,n,t.pendingProps);case 24:return ca(t),r=la(ha),e===null?(a=Da(),a===null&&(a=Yl,o=ga(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ya(t),na(t,ha,a)):((e.lanes&n)!==0&&(Xa(e,t),ro(t,null,null,n),no()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,na(t,ha,r),r!==a.cache&&aa(t,[ha],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),na(t,ha,r))),pc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Hc(e){e.flags|=4}function Uc(e,t,n,r,i){if((t=!!(e.mode&32))&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(Mu())e.flags|=8192;else throw La=Na,ja}else e.flags&=-16777217}function Wc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Kf(t))if(Mu())e.flags|=8192;else throw La=Na,ja}function Gc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:it(),e.lanes|=t,ou|=t)}function Kc(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 I(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 qc(e,t,n){var r=t.pendingProps;switch(zi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return I(t),null;case 1:return I(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),ra(ha),ye(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Yi(t)?Hc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Zi())),I(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Hc(t),o===null?(I(t),Uc(t,a,null,r,n)):(I(t),Wc(t,o))):o?o===e.memoizedState?(I(t),t.flags&=-16777217):(Hc(t),I(t),Wc(t,o)):(e=e.memoizedProps,e!==r&&Hc(t),I(t),Uc(t,a,e,r,n)),null;case 27:if(xe(t),n=ge.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Hc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return I(t),null}e=me.current,Yi(t)?qi(t,e):(e=mf(a,r,n),t.stateNode=e,Hc(t))}return I(t),null;case 5:if(xe(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Hc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return I(t),null}if(o=me.current,Yi(t))qi(t,o);else{var s=Jd(ge.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[gt]=t,o[_t]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.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=o;a:switch(Wd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Hc(t)}}return I(t),Uc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Hc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ge.current,Yi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Vi,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[gt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Vd(e.nodeValue,n)),e||Ki(t,!0)}else e=Jd(e).createTextNode(r),e[gt]=t,t.stateNode=e}return I(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Yi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[gt]=t}else Xi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;I(t),e=!1}else n=Zi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(vo(t),t):(vo(t),null);if(t.flags&128)throw Error(i(558))}return I(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Yi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[gt]=t}else Xi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;I(t),a=!1}else a=Zi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(vo(t),t):(vo(t),null)}return vo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Gc(t,t.updateQueue),I(t),null);case 4:return ye(),e===null&&jd(t.stateNode.containerInfo),I(t),null;case 10:return ra(t.type),I(t),null;case 19:if(O(yo),r=t.memoizedState,r===null)return I(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null)if(a)Kc(r,!1);else{if(B!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=bo(e),o!==null){for(t.flags|=128,Kc(r,!1),e=o.updateQueue,t.updateQueue=e,Gc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)yi(n,e),n=n.sibling;return k(yo,yo.current&1|2),M&&Ii(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Fe()>du&&(t.flags|=128,a=!0,Kc(r,!1),t.lanes=4194304)}else{if(!a)if(e=bo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Gc(t,e),Kc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!M)return I(t),null}else 2*Fe()-r.renderingStartTime>du&&n!==536870912&&(t.flags|=128,a=!0,Kc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(I(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Fe(),e.sibling=null,n=yo.current,k(yo,a?n&1|2:n&1),M&&Ii(t,r.treeForkCount),e);case 22:case 23:return vo(t),uo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(I(t),t.subtreeFlags&6&&(t.flags|=8192)):I(t),n=t.updateQueue,n!==null&&Gc(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&&O(Ea),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ra(ha),I(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Jc(e,t){switch(zi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ra(ha),ye(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return xe(t),null;case 31:if(t.memoizedState!==null){if(vo(t),t.alternate===null)throw Error(i(340));Xi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(vo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Xi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return O(yo),null;case 4:return ye(),null;case 10:return ra(t.type),null;case 22:case 23:return vo(t),uo(),e!==null&&O(Ea),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ra(ha),null;case 25:return null;default:return null}}function Yc(e,t){switch(zi(t),t.tag){case 3:ra(ha),ye();break;case 26:case 27:case 5:xe(t);break;case 4:ye();break;case 31:t.memoizedState!==null&&vo(t);break;case 13:vo(t);break;case 19:O(yo);break;case 10:ra(t.type);break;case 22:case 23:vo(t),uo(),e!==null&&O(Ea);break;case 24:ra(ha)}}function Xc(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 Zc(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 Qc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{ao(t,n)}catch(t){$u(e,e.return,t)}}}function $c(e,t,n){n.props=tc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){$u(e,t,n)}}function el(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 tl(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 nl(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 rl(e,t,n){try{var r=e.stateNode;Gd(r,e.type,n,t),r[_t]=t}catch(t){$u(e,e.return,t)}}function il(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&nf(e.type)||e.tag===4}function al(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||il(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&&nf(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 ol(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=un));else if(r!==4&&(r===27&&nf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(ol(e,t,n),e=e.sibling;e!==null;)ol(e,t,n),e=e.sibling}function sl(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&&nf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(sl(e,t,n),e=e.sibling;e!==null;)sl(e,t,n),e=e.sibling}function cl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Wd(t,r,n),t[gt]=e,t[_t]=n}catch(t){$u(e,e.return,t)}}var ll=!1,ul=!1,dl=!1,fl=typeof WeakSet==`function`?WeakSet:Set,pl=null;function ml(e,t){if(e=e.containerInfo,qd=lp,e=Fr(e),Ir(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 a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.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||a!==0&&f.nodeType!==3||(c=s+a),f!==o||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===a&&(c=s),p===o&&++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(K={focusedElem:e,selectionRange:n},lp=!1,pl=t;pl!==null;)if(t=pl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,pl=e;else for(;pl!==null;){switch(t=pl,o=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++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=tc(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),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)of(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:of(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(i(163))}if(e=t.sibling,e!==null){e.return=t.return,pl=e;break}pl=t.return}}function hl(e,t,n){var r=n.flags;
vendor: 4,530 bytes, line 9
9switch(n.tag){case 0:case 11:case 15:Al(e,n),r&4&&Xc(5,n);break;case 1:if(Al(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){$u(n,n.return,e)}else{var i=tc(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){$u(n,n.return,e)}}r&64&&Qc(n),r&512&&el(n,n.return);break;case 3:if(Al(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{ao(e,t)}catch(e){$u(n,n.return,e)}}break;case 27:t===null&&r&4&&cl(n);case 26:case 5:Al(e,n),t===null&&r&4&&nl(n),r&512&&el(n,n.return);break;case 12:Al(e,n);break;case 31:Al(e,n),r&4&&xl(e,n);break;case 13:Al(e,n),r&4&&Sl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=rd.bind(null,n),Q(e,n))));break;case 22:if(r=n.memoizedState!==null||ll,!r){t=t!==null&&t.memoizedState!==null||ul,i=ll;var a=ul;ll=r,(ul=t)&&!a?Ml(e,n,!!(n.subtreeFlags&8772)):Al(e,n),ll=i,ul=a}break;case 30:break;default:Al(e,n)}}function gl(e){var t=e.alternate;t!==null&&(e.alternate=null,gl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&wt(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 _l=null,vl=!1;function yl(e,t,n){for(n=n.child;n!==null;)bl(e,t,n),n=n.sibling}function bl(e,t,n){if(Ge&&typeof Ge.onCommitFiberUnmount==`function`)try{Ge.onCommitFiberUnmount(We,n)}catch{}switch(n.tag){case 26:ul||tl(n,t),yl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:ul||tl(n,t);var r=_l,i=vl;nf(n.type)&&(_l=n.stateNode,vl=!1),yl(e,t,n),hf(n.stateNode),_l=r,vl=i;break;case 5:ul||tl(n,t);case 6:if(r=_l,i=vl,_l=null,yl(e,t,n),_l=r,vl=i,_l!==null)if(vl)try{(_l.nodeType===9?_l.body:_l.nodeName===`HTML`?_l.ownerDocument.body:_l).removeChild(n.stateNode)}catch(e){$u(n,t,e)}else try{_l.removeChild(n.stateNode)}catch(e){$u(n,t,e)}break;case 18:_l!==null&&(vl?(e=_l,rf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Pp(e)):rf(_l,n.stateNode));break;case 4:r=_l,i=vl,_l=n.stateNode.containerInfo,vl=!0,yl(e,t,n),_l=r,vl=i;break;case 0:case 11:case 14:case 15:Zc(2,n,t),ul||Zc(4,n,t),yl(e,t,n);break;case 1:ul||(tl(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&$c(n,t,r)),yl(e,t,n);break;case 21:yl(e,t,n);break;case 22:ul=(r=ul)||n.memoizedState!==null,yl(e,t,n),ul=r;break;default:yl(e,t,n)}}function xl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Pp(e)}catch(e){$u(t,t.return,e)}}}function Sl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Pp(e)}catch(e){$u(t,t.return,e)}}function Cl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new fl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new fl),t;default:throw Error(i(435,e.tag))}}function wl(e,t){var n=Cl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=id.bind(null,e,t);t.then(r,r)}})}function Tl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(nf(c.type)){_l=c.stateNode,vl=!1;break a}break;case 5:_l=c.stateNode,vl=!1;break a;case 3:case 4:_l=c.stateNode.containerInfo,vl=!0;break a}c=c.return}if(_l===null)throw Error(i(160));bl(o,s,a),_l=null,vl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Dl(t,e),t=t.sibling}var El=null;function Dl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Tl(t,e),Ol(e),r&4&&(Zc(3,e,e.return),Xc(3,e),Zc(5,e,e.return));break;case 1:Tl(t,e),Ol(e),r&512&&(ul||n===null||tl(n,n.return)),r&64&&ll&&(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 a=El;if(Tl(t,e),Ol(e),r&512&&(ul||n===null||tl(n,n.return)),r&4){var o=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,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[Ct]||o[gt]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head >
9 title`))),Wd(o,r,n),o[gt]=e,kt(o),r=o;break a;case`link`:var s=Uf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Wd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Uf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Wd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[gt]=e,kt(o),r=o}e.stateNode=r}else Wf(a,e.type,e.stateNode);else e.stateNode=Rf(a,r,e.memoizedProps);
vendor: 65,167 bytes, lines 9-10
9else o===r?r===null&&e.stateNode!==null&&rl(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Wf(a,e.type,e.stateNode):Rf(a,r,e.memoizedProps))}break;case 27:Tl(t,e),Ol(e),r&512&&(ul||n===null||tl(n,n.return)),n!==null&&r&4&&rl(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Tl(t,e),Ol(e),r&512&&(ul||n===null||tl(n,n.return)),e.flags&32){a=e.stateNode;try{tn(a,``)}catch(t){$u(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,rl(e,a,n===null?a:n.memoizedProps)),r&1024&&(dl=!0);break;case 6:if(Tl(t,e),Ol(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){$u(e,e.return,t)}}break;case 3:if(Hf=null,a=El,El=vf(t.containerInfo),Tl(t,e),El=a,Ol(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Pp(t.containerInfo)}catch(t){$u(e,e.return,t)}dl&&(dl=!1,kl(e));break;case 4:r=El,El=vf(e.stateNode.containerInfo),Tl(t,e),Ol(e),El=r;break;case 12:Tl(t,e),Ol(e);break;case 31:Tl(t,e),Ol(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,wl(e,r)));break;case 13:Tl(t,e),Ol(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(uu=Fe()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,wl(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=ll,d=ul;if(ll=u||a,ul=d||l,Tl(t,e),ul=d,ll=u,Ol(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||ll||ul||jl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.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=a?``:l.memoizedProps}catch(e){$u(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?af(m,!0):af(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,wl(e,n))));break;case 19:Tl(t,e),Ol(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,wl(e,r)));break;case 30:break;case 21:break;default:Tl(t,e),Ol(e)}}function Ol(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(il(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;sl(e,al(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(tn(o,``),n.flags&=-33),sl(e,al(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;ol(e,al(e),s);break;default:throw Error(i(161))}}catch(t){$u(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function kl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;kl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Al(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)hl(e,t.alternate,t),t=t.sibling}function jl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Zc(4,t,t.return),jl(t);break;case 1:tl(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&$c(t,t.return,n),jl(t);break;case 27:hf(t.stateNode);case 26:case 5:tl(t,t.return),jl(t);break;case 22:t.memoizedState===null&&jl(t);break;case 30:jl(t);break;default:jl(t)}e=e.sibling}}function Ml(e,t,n){for(n&&=!!(t.subtreeFlags&8772),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:Ml(i,a,n),Xc(4,a);break;case 1:if(Ml(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++)io(c[i],s)}catch(e){$u(r,r.return,e)}}n&&o&64&&Qc(a),el(a,a.return);break;case 27:cl(a);case 26:case 5:Ml(i,a,n),n&&r===null&&o&4&&nl(a),el(a,a.return);break;case 12:Ml(i,a,n);break;case 31:Ml(i,a,n),n&&o&4&&xl(i,a);break;case 13:Ml(i,a,n),n&&o&4&&Sl(i,a);break;case 22:a.memoizedState===null&&Ml(i,a,n),el(a,a.return);break;case 30:break;default:Ml(i,a,n)}t=t.sibling}}function Nl(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&&_a(n))}function Pl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&_a(e))}function Fl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Il(e,t,n,r),t=t.sibling}function Il(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Fl(e,t,n,r),i&2048&&Xc(9,t);break;case 1:Fl(e,t,n,r);break;case 3:Fl(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&&_a(e)));break;case 12:if(i&2048){Fl(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 Fl(e,t,n,r);break;case 31:Fl(e,t,n,r);break;case 13:Fl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Fl(e,t,n,r):(a._visibility|=2,Ll(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?Fl(e,t,n,r):Rl(e,t),i&2048&&Nl(o,t);break;case 24:Fl(e,t,n,r),i&2048&&Pl(t.alternate,t);break;default:Fl(e,t,n,r)}}function Ll(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!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:Ll(a,o,s,c,i),Xc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Ll(a,o,s,c,i)):u._visibility&2?Ll(a,o,s,c,i):Rl(a,o),i&&l&2048&&Nl(o.alternate,o);break;case 24:Ll(a,o,s,c,i),i&&l&2048&&Pl(o.alternate,o);break;default:Ll(a,o,s,c,i)}t=t.sibling}}function Rl(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:Rl(n,r),i&2048&&Nl(r.alternate,r);break;case 24:Rl(n,r),i&2048&&Pl(r.alternate,r);break;default:Rl(n,r)}t=t.sibling}}var zl=8192;function Bl(e,t,n){if(e.subtreeFlags&zl)for(e=e.child;e!==null;)Vl(e,t,n),e=e.sibling}function Vl(e,t,n){switch(e.tag){case 26:Bl(e,t,n),e.flags&zl&&e.memoizedState!==null&&qf(n,El,e.memoizedState,e.memoizedProps);break;case 5:Bl(e,t,n);break;case 3:case 4:var r=El;El=vf(e.stateNode.containerInfo),Bl(e,t,n),El=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=zl,zl=16777216,Bl(e,t,n),zl=r):Bl(e,t,n));break;default:Bl(e,t,n)}}function Hl(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 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];pl=r,Kl(r,e)}Hl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Wl(e),e=e.sibling}function Wl(e){switch(e.tag){case 0:case 11:case 15:Ul(e),e.flags&2048&&Zc(9,e,e.return);break;case 3:Ul(e);break;case 12:Ul(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Gl(e)):Ul(e);break;default:Ul(e)}}function Gl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];pl=r,Kl(r,e)}Hl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Zc(8,t,t.return),Gl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Gl(t));break;default:Gl(t)}e=e.sibling}}function Kl(e,t){for(;pl!==null;){var n=pl;switch(n.tag){case 0:case 11:case 15:Zc(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:_a(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,pl=r;else a:for(n=e;pl!==null;){r=pl;var i=r.sibling,a=r.return;if(gl(r),r===n){pl=null;break a}if(i!==null){i.return=a,pl=i;break a}pl=a}}}var ql={getCacheForType:function(e){var t=la(ha),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return la(ha).controller.signal}},Jl=typeof WeakMap==`function`?WeakMap:Map,L=0,Yl=null,R=null,z=0,Xl=0,Zl=null,Ql=!1,$l=!1,eu=!1,tu=0,B=0,nu=0,ru=0,iu=0,au=0,ou=0,su=null,cu=null,lu=!1,uu=0,V=0,du=1/0,fu=null,pu=null,mu=0,hu=null,gu=null,_u=0,vu=0,yu=null,bu=null,xu=0,H=null;function Su(){return L&2&&z!==0?z&-z:E.T===null?pt():bd()}function Cu(){if(au===0)if(!(z&536870912)||M){var e=Qe;Qe<<=1,!(Qe&3932160)&&(Qe=262144),au=e}else au=536870912;return e=fo.current,e!==null&&(e.flags|=32),au}function wu(e,t,n){(e===Yl&&(Xl===2||Xl===9)||e.cancelPendingCommit!==null)&&(Au(e,0),Ou(e,z,au,!1)),ot(e,n),(!(L&2)||e!==Yl)&&(e===Yl&&(!(L&2)&&(ru|=n),B===4&&Ou(e,z,au,!1)),fd(e))}function Tu(e,t,n){if(L&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||nt(e,t),a=r?Ru(e,t):Iu(e,t,!0),o=r;do{if(a===0){$l&&!r&&Ou(e,t,0,!1);break}if(n=e.current.alternate,o&&!Du(n)){a=Iu(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)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;a=su;var l=c.current.memoizedState.isDehydrated;if(l&&(Au(c,s).flags|=256),s=Iu(c,s,!1),s!==2){if(eu&&!l){c.errorRecoveryDisabledLanes|=o,ru|=o,a=4;break a}o=cu,cu=a,o!==null&&(cu===null?cu=o:cu.push.apply(cu,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Au(e,0),Ou(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:Ou(r,t,au,!Ql);break a;case 2:cu=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=uu+300-Fe(),10<a)){if(Ou(r,t,au,!Ql),tt(r,0,!0)!==0)break a;_u=t,r.timeoutHandle=$d(Eu.bind(null,r,n,cu,fu,lu,t,au,ru,ou,Ql,o,`Throttled`,-0,0),a);break a}Eu(r,n,cu,fu,lu,t,au,ru,ou,Ql,o,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:un},Vl(t,a,d);var m=(a&62914560)===a?uu-Fe():(a&4194048)===a?V-Fe():0;if(m=Yf(d,m),m!==null){_u=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(!Ar(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&=~iu,t&=~ru,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-qe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&ct(e,n,t)}function U(){return L&6?!0:(pd(0,!1),!1)}function ku(){if(R!==null){if(Xl===0)var e=R.return;else e=R,ta=ea=null,zo(e),Ba=null,Va=0,e=R;for(;e!==null;)Yc(e.alternate,e),e=e.return;R=null}}function Au(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,J(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),_u=0,ku(),Yl=e,R=n=vi(e.current,null),z=t,Xl=0,Zl=null,Ql=!1,$l=nt(e,t),eu=!1,ou=au=iu=ru=nu=B=0,cu=su=null,lu=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-qe(r),a=1<<i;t|=e[i],r&=~a}return tu=t,ci(),n}function ju(e,t){N=null,E.H=qs,t===Aa||t===Ma?(t=Ra(),Xl=3):t===ja?(t=Ra(),Xl=4):Xl=t===dc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Zl=t,R===null&&(B=1,ac(e,Ei(t,e.current)))}function Mu(){var e=fo.current;return e===null?!0:(z&4194048)===z?po===null:(z&62914560)===z||z&536870912?e===po:!1}function Nu(){var e=E.H;return E.H=qs,e===null?qs:e}function Pu(){var e=E.A;return E.A=ql,e}function Fu(){B=4,Ql||(z&4194048)!==z&&fo.current!==null||($l=!0),!(nu&134217727)&&!(ru&134217727)||Yl===null||Ou(Yl,z,au,!1)}function Iu(e,t,n){var r=L;L|=2;var i=Nu(),a=Pu();(Yl!==e||z!==t)&&(fu=null,Au(e,t)),t=!1;var o=B;a:do try{if(Xl!==0&&R!==null){var s=R,c=Zl;switch(Xl){case 8:ku(),o=6;break a;case 3:case 2:case 9:case 6:fo.current===null&&(t=!0);var l=Xl;if(Xl=0,Zl=null,Hu(e,s,c,l),n&&$l){o=0;break a}break;default:l=Xl,Xl=0,Zl=null,Hu(e,s,c,l)}}Lu(),o=B;break}catch(t){ju(e,t)}while(1);return t&&e.shellSuspendCounter++,ta=ea=null,L=r,E.H=i,E.A=a,R===null&&(Yl=null,z=0,ci()),o}function Lu(){for(;R!==null;)Bu(R)}function Ru(e,t){var n=L;L|=2;var r=Nu(),a=Pu();Yl!==e||z!==t?(fu=null,du=Fe()+500,Au(e,t)):$l=nt(e,t);a:do try{if(Xl!==0&&R!==null){t=R;var o=Zl;b:switch(Xl){case 1:Xl=0,Zl=null,Hu(e,t,o,1);break;case 2:case 9:if(Pa(o)){Xl=0,Zl=null,Vu(t);break}t=function(){Xl!==2&&Xl!==9||Yl!==e||(Xl=7),fd(e)},o.then(t,t);break a;case 3:Xl=7;break a;case 4:Xl=5;break a;case 7:Pa(o)?(Xl=0,Zl=null,Vu(t)):(Xl=0,Zl=null,Hu(e,t,o,7));break;case 5:var s=null;switch(R.tag){case 26:s=R.memoizedState;case 5:case 27:var c=R;if(s?Kf(s):c.stateNode.complete){Xl=0,Zl=null;var l=c.sibling;if(l!==null)R=l;else{var u=c.return;u===null?R=null:(R=u,Uu(u))}break b}}Xl=0,Zl=null,Hu(e,t,o,5);break;case 6:Xl=0,Zl=null,Hu(e,t,o,6);break;case 8:ku(),B=6;break a;default:throw Error(i(462))}}zu();break}catch(t){ju(e,t)}while(1);return ta=ea=null,E.H=r,E.A=a,L=n,R===null?(Yl=null,z=0,ci(),B):0}function zu(){for(;R!==null&&!Ne();)Bu(R)}function Bu(e){var t=Vc(e.alternate,e,tu);e.memoizedProps=e.pendingProps,t===null?Uu(e):R=t}function Vu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Tc(n,t,t.pendingProps,t.type,void 0,z);break;case 11:t=Tc(n,t,t.pendingProps,t.type.render,t.ref,z);break;case 5:zo(t);default:Yc(n,t),t=R=yi(t,tu),t=Vc(n,t,tu)}e.memoizedProps=e.pendingProps,t===null?Uu(e):R=t}function Hu(e,t,n,r){ta=ea=null,zo(t),Ba=null,Va=0;var i=t.return;try{if(uc(e,i,t,n,z)){B=1,ac(e,Ei(n,e.current)),R=null;return}}catch(t){if(i!==null)throw R=i,t;B=1,ac(e,Ei(n,e.current)),R=null;return}t.flags&32768?(M||r===1?e=!0:$l||z&536870912?e=!1:(Ql=e=!0,(r===2||r===9||r===3||r===6)&&(r=fo.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,Ql);return}e=t.return;var n=qc(t.alternate,t,tu);if(n!==null){R=n;return}if(t=t.sibling,t!==null){R=t;return}R=t=e}while(t!==null);B===0&&(B=5)}function Wu(e,t){do{var n=Jc(e.alternate,e);if(n!==null){n.flags&=32767,R=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){R=e;return}R=e=n}while(e!==null);B=6,R=null}function Gu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Xu();while(mu!==0);if(L&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=si,st(e,n,o,s,c,l),e===Yl&&(R=Yl=null,z=0),gu=t,hu=e,_u=n,vu=o,yu=a,bu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,ad(ze,function(){return Zu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=E.T,E.T=null,a=D.p,D.p=2,s=L,L|=4;try{ml(e,t,n)}finally{L=s,D.p=a,E.T=r}}mu=1,Ku(),qu(),Ju()}}function Ku(){if(mu===1){mu=0;var e=hu,t=gu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=E.T,E.T=null;var r=D.p;D.p=2;var i=L;L|=4;try{Dl(t,e);var a=K,o=Fr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Pr(s.ownerDocument.documentElement,s)){if(c!==null&&Ir(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 _=Nr(s,h),v=Nr(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}}lp=!!qd,K=qd=null}finally{L=i,D.p=r,E.T=n}}e.current=t,mu=2}}function qu(){if(mu===2){mu=0;var e=hu,t=gu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=E.T,E.T=null;var r=D.p;D.p=2;var i=L;L|=4;try{hl(e,t.alternate,t)}finally{L=i,D.p=r,E.T=n}}mu=3}}function Ju(){if(mu===4||mu===3){mu=0,Pe();var e=hu,t=gu,n=_u,r=bu;t.subtreeFlags&10256||t.flags&10256?mu=5:(mu=0,gu=hu=null,Yu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(pu=null),ft(n),t=t.stateNode,Ge&&typeof Ge.onCommitFiberRoot==`function`)try{Ge.onCommitFiberRoot(We,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=E.T,i=D.p,D.p=2,E.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{E.T=t,D.p=i}}_u&3&&Xu(),fd(e),i=e.pendingLanes,n&261930&&i&42?e===H?xu++:(xu=0,H=e):xu=0,pd(0,!1)}}function Yu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,_a(t)))}function Xu(){return Ku(),qu(),Ju(),Zu()}function Zu(){if(mu!==5)return!1;var e=hu,t=vu;vu=0;var n=ft(_u),r=E.T,a=D.p;try{D.p=32>n?32:n,E.T=null,n=yu,yu=null;var o=hu,s=_u;if(mu=0,gu=hu=null,_u=0,L&6)throw Error(i(331));var c=L;if(L|=4,Wl(o.current),Il(o,o.current,s,n),L=c,pd(0,!1),Ge&&typeof Ge.onPostCommitFiberRoot==`function`)try{Ge.onPostCommitFiberRoot(We,o)}catch{}return!0}finally{D.p=a,E.T=r,Yu(e,t)}}function Qu(e,t,n){t=Ei(n,t),t=sc(e.stateNode,t,2),e=Qa(e,t,2),e!==null&&(ot(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}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(pu===null||!pu.has(r))){e=Ei(n,e),n=cc(2),r=Qa(t,n,2),r!==null&&(lc(n,r,t,e),ot(r,2),fd(r));break}}t=t.return}}function ed(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Jl;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)||(eu=!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,Yl===e&&(z&n)===n&&(B===4||B===3&&(z&62914560)===z&&300>Fe()-uu?!(L&2)&&Au(e,0):iu|=n,ou===z&&(ou=0)),fd(e)}function nd(e,t){t===0&&(t=it()),e=di(e,t),e!==null&&(ot(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,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),nd(e,n)}function ad(e,t){return je(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-qe(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=z,a=tt(r,r===Yl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||nt(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&&Qd()&&(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}mu!==0&&mu!==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-qe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=rt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Yl,n=z,n=tt(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Xl===2||Xl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Me(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||nt(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Me(r),ft(n)){case 2:case 8:n=Re;break;case 32:n=ze;break;case 268435456:n=Ve;break;default:n=ze}return r=_d.bind(null,e),n=je(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Me(r),e.callbackPriority=2,e.callbackNode=null,2}function _d(e,t){if(mu!==0&&mu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Xu()&&e.callbackNode!==n)return null;var r=z;return r=tt(e,e===Yl?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(){Y(function(){L&6?je(Le,md):hd()})}function bd(){if(dd===0){var e=ba;e===0&&(e=Ze,Ze<<=1,!(Ze&261888)&&(Ze=256)),dd=e}return dd}function xd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:ln(``+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[_t]||null).action),o=r.submitter;o&&(t=(t=o[_t]||null)?xd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new jn(`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);Ns(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),Ns(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var wd=0;wd<ni.length;wd++){var Td=ni[wd];ri(Td.toLowerCase(),`on`+(Td[0].toUpperCase()+Td.slice(1)))}ri(Jr,`onAnimationEnd`),ri(Yr,`onAnimationIteration`),ri(Xr,`onAnimationStart`),ri(`dblclick`,`onDoubleClick`),ri(`focusin`,`onFocus`),ri(`focusout`,`onBlur`),ri(Zr,`onTransitionRun`),ri(Qr,`onTransitionStart`),ri($r,`onTransitionCancel`),ri(ei,`onTransitionEnd`),Nt(`onMouseEnter`,[`mouseout`,`mouseover`]),Nt(`onMouseLeave`,[`mouseout`,`mouseover`]),Nt(`onPointerEnter`,[`pointerout`,`pointerover`]),Nt(`onPointerLeave`,[`pointerout`,`pointerover`]),Mt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Mt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Mt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Mt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Mt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Mt(`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);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){ii(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){ii(e)}i.currentTarget=null,a=c}}}}function W(e,t){var n=t[yt];n===void 0&&(n=t[yt]=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,At.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(gp(t)){case 2:var i=up;break;case 8:i=dp;break;default:i=fp}n=i.bind(null,t,n,e),i=void 0,!bn||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 s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=Tt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}_n(function(){var r=a,i=fn(n),s=[];a:{var c=ti.get(e);if(c!==void 0){var l=jn,u=e;switch(e){case`keypress`:if(En(n)===0)break a;case`keydown`:case`keyup`:l=qn;break;case`focusin`:u=`focus`,l=Rn;break;case`focusout`:u=`blur`,l=Rn;break;case`beforeblur`:case`afterblur`:l=Rn;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=In;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Ln;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Yn;break;case Jr:case Yr:case Xr:l=zn;break;case ei:l=Xn;break;case`scroll`:case`scrollend`:l=Mn;break;case`wheel`:l=Zn;break;case`copy`:case`cut`:case`paste`:l=Bn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Jn;break;case`toggle`:case`beforetoggle`:l=Qn}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;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=vn(m,p),g!=null&&d.push(Pd(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==dn&&(u=n.relatedTarget||n.fromElement)&&(Tt(u)||u[vt]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?Tt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=In,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Jn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:Dt(l),h=u==null?c:Dt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,Tt(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(s,c,l,d,!1),u!==null&&f!==null&&Ld(s,f,u,d,!0)}}a:{if(c=r?Dt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=vr;else if(fr(c))if(yr)v=Or;else{v=Er;var y=Tr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&on(r.elementType)&&(v=vr):v=Dr;if(v&&=v(e,r)){pr(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Zt(c,`number`,c.value)}switch(y=r?Dt(r):window,e){case`focusin`:(fr(y)||y.contentEditable===`true`)&&(Rr=y,zr=r,Br=null);break;case`focusout`:Br=zr=Rr=null;break;case`mousedown`:Vr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Vr=!1,Hr(s,n,i);break;case`selectionchange`:if(Lr)break;case`keydown`:case`keyup`:Hr(s,n,i)}var b;if(er)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 cr?or(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(rr&&n.locale!==`ko`&&(cr||x!==`onCompositionStart`?x===`onCompositionEnd`&&cr&&(b=Tn()):(Sn=i,Cn=`value`in Sn?Sn.value:Sn.textContent,cr=!0)),y=Fd(r,x),0<y.length&&(x=new Vn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=sr(n),b!==null&&(x.data=b)))),(b=nr?lr(e,n):ur(e,n))&&(x=Fd(r,`onBeforeInput`),0<x.length&&(y=new Vn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),Cd(s,e,r,n,i)}Od(s,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=vn(e,n),i!=null&&r.unshift(Pd(e,i,a)),i=vn(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=vn(n,a),l!=null&&o.unshift(Pd(n,l,c))):i||(l=vn(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,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||tn(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&tn(e,``+r);break;case`className`:zt(e,`class`,r);break;case`tabIndex`:zt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:zt(e,n,r);break;case`style`:an(e,r,o);break;case`data`:if(t!==`object`){zt(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=ln(``+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}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&Hd(e,t,`name`,a.name,a,null),Hd(e,t,`formEncType`,a.formEncType,a,null),Hd(e,t,`formMethod`,a.formMethod,a,null),Hd(e,t,`formTarget`,a.formTarget,a,null)):(Hd(e,t,`encType`,a.encType,a,null),Hd(e,t,`method`,a.method,a,null),Hd(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=ln(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=un);break;case`onScroll`:r!=null&&W(`scroll`,e);break;case`onScrollEnd`:r!=null&&W(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(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=ln(``+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`:W(`beforetoggle`,e),W(`toggle`,e),Rt(e,`popover`,r);break;case`xlinkActuate`:Bt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Bt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Bt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Bt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Bt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Bt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Bt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Bt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Bt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Rt(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=sn.get(n)||n,Rt(e,n,r))}}function Ud(e,t,n,r,a,o){switch(n){case`style`:an(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?tn(e,r):(typeof r==`number`||typeof r==`bigint`)&&tn(e,``+r);break;case`onScroll`:r!=null&&W(`scroll`,e);break;case`onScrollEnd`:r!=null&&W(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=un);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!jt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[_t]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Rt(e,n,r)}}}function Wd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:W(`error`,e),W(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Hd(e,t,o,s,n,null)}}a&&Hd(e,t,`srcSet`,n.srcSet,n,null),r&&Hd(e,t,`src`,n.src,n,null);return;case`input`:W(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Hd(e,t,r,d,n,null)}}Xt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in W(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Hd(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Qt(e,!!r,n,!0):Qt(e,!!r,t,!1);return;case`textarea`:for(s in W(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Hd(e,t,s,c,n,null)}en(e,r,a,o);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`:W(`beforetoggle`,e),W(`toggle`,e),W(`cancel`,e),W(`close`,e);break;case`iframe`:case`object`:W(`load`,e);break;case`video`:case`audio`:for(r=0;r<Ed.length;r++)W(Ed[r],e);break;case`image`:W(`error`,e),W(`load`,e);break;case`details`:W(`toggle`,e);break;case`embed`:case`source`:case`link`:W(`error`,e),W(`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(i(137,t));default:Hd(e,t,u,r,n,null)}return;default:if(on(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Ud(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 Gd(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 a=null,o=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`:o=m;break;case`name`:a=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(i(137,t));break;default:m!==f&&Hd(e,t,p,m,r,f)}}Yt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Hd(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Hd(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Qt(e,!!n,n?[]:``,!1):Qt(e,!!n,t,!0)):Qt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Hd(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Hd(e,t,s,a,r,o)}$t(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(i(137,t));break;default:Hd(e,t,u,p,r,m)}return;default:if(on(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Ud(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Ud(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 Kd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function G(){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&&Kd(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&&Kd(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,K=null;function Jd(e){return e.nodeType===9?e:e.ownerDocument}function q(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 Yd(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 Xd(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 Zd=null;function Qd(){var e=window.event;return e&&e.type===`popstate`?e!==Zd&&(Zd=e,!0):(Zd=null,!1)}var $d=typeof setTimeout==`function`?setTimeout:void 0,J=typeof clearTimeout==`function`?clearTimeout:void 0,ef=typeof Promise==`function`?Promise:void 0,Y=typeof queueMicrotask==`function`?queueMicrotask:ef===void 0?$d:function(e){return ef.resolve(null).then(e).catch(tf)};function tf(e){setTimeout(function(){throw e})}function nf(e){return e===`head`}function rf(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),Pp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)hf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,hf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[Ct]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&hf(e.ownerDocument.body);n=i}while(n);Pp(t)}function af(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 of(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`:of(n),wt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function sf(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[Ct])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=uf(e.nextSibling),e===null)break}return null}function X(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=uf(e.nextSibling),e===null))return null;return e}function cf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=uf(e.nextSibling),e===null))return null;return e}function lf(e){return e.data===`$?`||e.data===`$~`}function Z(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function Q(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 uf(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 df=null;function ff(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return uf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function pf(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 mf(e,t,n){switch(t=Jd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function hf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);wt(e)}var gf=new Map,_f=new Set;function vf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var yf=D.d;D.d={f:bf,r:xf,D:wf,C:Tf,L:Ef,m:Df,X:kf,S:Of,M:Af};function bf(){var e=yf.f(),t=U();return e||t}function xf(e){var t=Et(e);t!==null&&t.tag===5&&t.type===`form`?Fs(t):yf.r(e)}var Sf=typeof document>`u`?null:document;function Cf(e,t,n){var r=Sf;if(r&&typeof t==`string`&&t){var i=Jt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),_f.has(i)||(_f.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Wd(t,`link`,e),kt(t),r.head.appendChild(t)))}}function wf(e){yf.D(e),Cf(`dns-prefetch`,e,null)}function Tf(e,t){yf.C(e,t),Cf(`preconnect`,e,t)}function Ef(e,t,n){yf.L(e,t,n);var r=Sf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Jt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Jt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Jt(n.imageSizes)+`"]`)):i+=`[href="`+Jt(e)+`"]`;var a=i;switch(t){case`style`:a=Mf(e);break;case`script`:a=If(e)}gf.has(a)||(e=f({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),gf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Nf(a))||t===`script`&&r.querySelector(Lf(a))||(t=r.createElement(`link`),Wd(t,`link`,e),kt(t),r.head.appendChild(t)))}}function Df(e,t){yf.m(e,t);var n=Sf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Jt(r)+`"][href="`+Jt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=If(e)}if(!gf.has(a)&&(e=f({rel:`modulepreload`,href:e},t),gf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Lf(a)))return}r=n.createElement(`link`),Wd(r,`link`,e),kt(r),n.head.appendChild(r)}}}function Of(e,t,n){yf.S(e,t,n);var r=Sf;if(r&&e){var i=Ot(r).hoistableStyles,a=Mf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Nf(a)))s.loading=5;else{e=f({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=gf.get(a))&&Bf(e,n);var c=o=r.createElement(`link`);kt(c),Wd(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,zf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function kf(e,t){yf.X(e,t);var n=Sf;if(n&&e){var r=Ot(n).hoistableScripts,i=If(e),a=r.get(i);a||(a=n.querySelector(Lf(i)),a||(e=f({src:e,async:!0},t),(t=gf.get(i))&&Vf(e,t),a=n.createElement(`script`),kt(a),Wd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Af(e,t){yf.M(e,t);var n=Sf;if(n&&e){var r=Ot(n).hoistableScripts,i=If(e),a=r.get(i);a||(a=n.querySelector(Lf(i)),a||(e=f({src:e,async:!0,type:`module`},t),(t=gf.get(i))&&Vf(e,t),a=n.createElement(`script`),kt(a),Wd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function jf(e,t,n,r){var a=(a=ge.current)?vf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Mf(n.href),n=Ot(a).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=Mf(n.href);var o=Ot(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Nf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),gf.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},gf.set(e,n),o||Ff(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=If(n),n=Ot(a).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(i(444,e))}}function Mf(e){return`href="`+Jt(e)+`"`}function Nf(e){return`link[rel="stylesheet"][`+e+`]`}function Pf(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function Ff(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}),Wd(t,`link`,n),kt(t),e.head.appendChild(t))}function If(e){return`[src="`+Jt(e)+`"]`}function Lf(e){return`script[async]`+e}function Rf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Jt(n.href)+`"]`);if(r)return t.instance=r,kt(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),kt(r),Wd(r,`style`,a),zf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Mf(n.href);var o=e.querySelector(Nf(a));if(o)return t.state.loading|=4,t.instance=o,kt(o),o;r=Pf(n),(a=gf.get(a))&&Bf(r,a),o=(e.ownerDocument||e).createElement(`link`),kt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Wd(o,`link`,r),t.state.loading|=4,zf(o,n.precedence,e),t.instance=o;case`script`:return o=If(n.src),(a=e.querySelector(Lf(o)))?(t.instance=a,kt(a),a):(r=n,(a=gf.get(o))&&(r=f({},n),Vf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),kt(a),Wd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,zf(r,n.precedence,e));return t.instance}function zf(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 Bf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Vf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Hf=null;function Uf(e,t,n){if(Hf===null){var r=new Map,i=Hf=new Map;i.set(n,r)}else i=Hf,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[Ct]||a[gt]||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 Wf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Gf(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 Kf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function qf(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=Mf(r.href),a=t.querySelector(Nf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Xf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,kt(a);return}a=t.ownerDocument||t,r=Pf(r),(i=gf.get(i))&&Bf(r,i),a=a.createElement(`link`),kt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Wd(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=Xf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Jf=0;function Yf(e,t){return e.stylesheets&&e.count===0&&Qf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Qf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Jf===0&&(Jf=62500*G());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Qf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Jf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Xf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Qf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Zf=null;function Qf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Zf=new Map,t.forEach($f,e),Zf=null,Xf.call(e))}function $f(e,t){if(!(t.state.loading&4)){var n=Zf.get(e);if(n)var r=n.get(null);else{n=new Map,Zf.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=Xf.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 ep={$$typeof:b,Provider:null,Consumer:null,_currentValue:ue,_currentValue2:ue,_threadCount:0};function tp(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=at(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=at(0),this.hiddenUpdates=at(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 np(e,t,n,r,i,a,o,s,c,l,u,d){return e=new tp(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=gi(3,null,null,t),e.current=a,a.stateNode=e,t=ga(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ya(a),e}function rp(e){return e?(e=mi,e):mi}function ip(e,t,n,r,i,a){i=rp(i),r.context===null?r.context=i:r.pendingContext=i,r=Za(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Qa(e,r,t),n!==null&&(wu(n,e,t),$a(n,e,t))}function ap(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function op(e,t){ap(e,t),(e=e.alternate)&&ap(e,t)}function sp(e){if(e.tag===13||e.tag===31){var t=di(e,67108864);t!==null&&wu(t,e,67108864),op(e,67108864)}}function cp(e){if(e.tag===13||e.tag===31){var t=Su();t=dt(t);var n=di(e,t);n!==null&&wu(n,e,t),op(e,t)}}var lp=!0;function up(e,t,n,r){var i=E.T;E.T=null;var a=D.p;try{D.p=2,fp(e,t,n,r)}finally{D.p=a,E.T=i}}function dp(e,t,n,r){var i=E.T;E.T=null;var a=D.p;try{D.p=8,fp(e,t,n,r)}finally{D.p=a,E.T=i}}function fp(e,t,n,r){if(lp){var i=pp(r);if(i===null)Nd(e,t,r,mp,n),wp(e,r);else if(Ep(i,e,t,n,r))r.stopPropagation();else if(wp(e,r),t&4&&-1<Cp.indexOf(e)){for(;i!==null;){var a=Et(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=et(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-qe(o);s.entanglements[1]|=c,o&=~c}fd(a),!(L&6)&&(du=Fe()+500,pd(0,!1))}}break;case 31:case 13:s=di(a,2),s!==null&&wu(s,a,2),U(),op(a,2)}if(a=pp(r),a===null&&Nd(e,t,r,mp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Nd(e,t,r,null,n)}}function pp(e){return e=fn(e),hp(e)}var mp=null;function hp(e){if(mp=null,e=Tt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(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 mp=e,null}function gp(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 Re:return 8;case ze:case Be:return 32;case Ve:return 268435456;default:return 32}default:return 32}}var _p=!1,vp=null,yp=null,bp=null,$=new Map,xp=new Map,Sp=[],Cp=`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 wp(e,t){switch(e){case`focusin`:case`focusout`:vp=null;break;case`dragenter`:case`dragleave`:yp=null;break;case`mouseover`:case`mouseout`:bp=null;break;case`pointerover`:case`pointerout`:$.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:xp.delete(t.pointerId)}}function Tp(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=Et(t),t!==null&&sp(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ep(e,t,n,r,i){switch(t){case`focusin`:return vp=Tp(vp,e,t,n,r,i),!0;case`dragenter`:return yp=Tp(yp,e,t,n,r,i),!0;case`mouseover`:return bp=Tp(bp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return $.set(a,Tp($.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,xp.set(a,Tp(xp.get(a)||null,e,t,n,r,i)),!0}return!1}function Dp(e){var t=Tt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,mt(e.priority,function(){cp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,mt(e.priority,function(){cp(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 Op(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=pp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);dn=r,n.target.dispatchEvent(r),dn=null}else return t=Et(n),t!==null&&sp(t),e.blockedOn=n,!1;t.shift()}return!0}function kp(e,t,n){Op(e)&&n.delete(t)}function Ap(){_p=!1,vp!==null&&Op(vp)&&(vp=null),yp!==null&&Op(yp)&&(yp=null),bp!==null&&Op(bp)&&(bp=null),$.forEach(kp),xp.forEach(kp)}function jp(e,n){e.blockedOn===n&&(e.blockedOn=null,_p||(_p=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Ap)))}var Mp=null;function Np(e){Mp!==e&&(Mp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Mp===e&&(Mp=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(hp(r||n)===null)continue;break}var a=Et(n);a!==null&&(e.splice(t,3),t-=3,Ns(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Pp(e){function t(t){return jp(t,e)}vp!==null&&jp(vp,e),yp!==null&&jp(yp,e),bp!==null&&jp(bp,e),$.forEach(t),xp.forEach(t);for(var n=0;n<Sp.length;n++){var r=Sp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Sp.length&&(n=Sp[0],n.blockedOn===null);)Dp(n),n.blockedOn===null&&Sp.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[_t]||null;if(typeof a==`function`)o||Np(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[_t]||null)s=o.formAction;else if(hp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Np(n)}}}function Fp(){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 Ip(e){this._internalRoot=e}Lp.prototype.render=Ip.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;ip(n,Su(),e,t,null,null)},Lp.prototype.unmount=Ip.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;
10ip(e.current,2,null,e,null,null),U(),t[vt]=null}};function Lp(e){this._internalRoot=e}Lp.prototype.unstable_scheduleHydration=function(e){if(e){var t=pt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Sp.length&&t!==0&&t<Sp[n].priority;n++);Sp.splice(n,0,e),n===0&&Dp(e)}};var Rp=n.version;if(Rp!==`19.2.8`)throw Error(i(527,Rp,`19.2.8`));D.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=u(t),e=e===null?null:d(e),e=e===null?null:e.stateNode,e};var zp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:E,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Bp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bp.isDisabled&&Bp.supportsFiber)try{We=Bp.inject(zp),Ge=Bp}catch{}}e.hydrateRoot=function(e,t,n){if(!a(e))throw Error(i(299));var r=!1,o=``,s=nc,c=rc,l=ic,u=null;return n!=null&&(!0===n.unstable_strictMode&&(r=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onUncaughtError!==void 0&&(s=n.onUncaughtError),n.onCaughtError!==void 0&&(c=n.onCaughtError),n.onRecoverableError!==void 0&&(l=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=np(e,1,!0,t,n??null,r,o,u,s,c,l,Fp),t.context=rp(null),n=t.current,r=Su(),r=dt(r),o=Za(r),o.callback=null,Qa(n,o,r),n=r,t.current.lanes=n,ot(t,n),fd(t),e[vt]=t.current,jd(e),new Lp(t)}})),ke=C(((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=Oe()})),Ae=`__TSS_CONTEXT`,je=Symbol.for(`TSS_SERVER_FUNCTION`),Me=`application/x-tss-framed`,Ne={JSON:0,CHUNK:1,END:2,ERROR:3};`${Me}`;var Pe=/;\s*v=(\d+)/;function Fe(e){let t=e.match(Pe);return t?parseInt(t[1],10):void 0}function Ie(e){let t=Fe(e);if(t!==void 0&&t!==1)throw Error(`Incompatible framed protocol version: server=${t}, client=1. Please ensure client and server are using compatible versions.`)}var Le=()=>window.__TSS_START_OPTIONS__;function Re(){try{return sessionStorage}catch{return}}var ze=`tsr-scroll-restoration-v1_3`,Be=Re();function Ve(){try{return JSON.parse(Be?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function He(){try{Be?.setItem(ze,JSON.stringify(Ue))}catch{}}var Ue=Ve(),We=`data-scroll-restoration-id`,Ge=e=>e.state.__TSR_key||e.href;function Ke(e){let t=e.getAttribute(We);if(t)return`[${We}="${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 qe=!1,Je=`window`;function Ye(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function Xe(e){let t=new Set;for(let n of e){if(n===Je)continue;let e=Ye(n);e&&t.add(e)}return t}function Ze(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||Ge,a=new Set,o=e=>{let t=Ue[e]||={};for(let e of a)e===document?t[Je]={scrollX,scrollY}:e.isConnected&&(t[Ke(e)]={scrollX:e.scrollLeft,scrollY:e.scrollTop})};n&&!r.restoration&&(r.restoration=!0,qe=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,e=>{qe||a.add(e.target)},!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(i(e.fromLocation)),a.clear()}),addEventListener(`pagehide`,()=>{o(i(e.stores.resolvedLocation.get()??e.stores.location.get())),He()})),!r.reset&&(r.reset=!0,e.subscribe(`onRendered`,t=>{let n=e.options.scrollRestorationBehavior,o=e.options.scrollToTopSelectors,s=r.next,c=r.hash,l;if(a.clear(),r.next=!0,r.hash=!1,typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let u=i(t.toLocation),d=t.fromLocation&&i(t.fromLocation);if(r.restoring&&d&&d!==u){let e=Ue[d];if(e){let t=Ue[u];for(let n in e){if(n===Je){if(s)continue}else{let e=Ye(n);if(!e||s&&o&&(l??=Xe(o),l.has(e)))continue}t||=Ue[u]={},t[n]??=e[n]}}}qe=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){!e&&o&&(l??=Xe(o));let t=e&&i&&c,s=r.restoring?Ue[u]:void 0;if(s)for(let e in s){let{scrollX:r,scrollY:i}=s[e];if(e===Je){if(t)continue;scrollTo({top:i,left:r,behavior:n}),a=!0}else{let t=Ye(e);t&&(t.scrollLeft=r,t.scrollTop=i,l?.delete(t))}}if(!e){let e={top:0,left:0,behavior:n};if(a||scrollTo(e),l)for(let t of l)t.scrollTo(e)}}!a&&e&&i&&document.getElementById(e)?.scrollIntoView(i)}finally{qe=!1}}))}function Qe(e,t=String){let n=new URLSearchParams;for(let r in e){let i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}
10function $e(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function et(e){let t=new URLSearchParams(e),n=Object.create(null);for(let[e,r]of t.entries()){let t=n[e];t==null?n[e]=$e(r):Array.isArray(t)?t.push($e(r)):n[e]=[t,$e(r)]}return n}var tt=rt(JSON.parse),nt=it(JSON.stringify,JSON.parse);function rt(e){return t=>{t[0]===`?`&&(t=t.substring(1));let n=et(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function it(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=Qe(e,r);return t?`?${t}`:``}}var at=`__root__`;function ot(e){if(e.statusCode=e.statusCode||e.code||307,!e._builtLocation&&!e.reloadDocument&&typeof e.href==`string`)try{new URL(e.href),e.reloadDocument=!0}catch{}let t=new Headers(e.headers);e.href&&t.get(`Location`)===null&&t.set(`Location`,e.href);let n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function st(e){return e instanceof Response&&!!e.options}function ct(e){if(typeof e==`object`&&e&&e.isSerializedRedirect)return ot(e)}function lt(e){return{input:({url:t})=>{for(let n of e)t=dt(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=ft(e[n],t);return t}}}function ut(e){let t=n(e.basepath),r=`/${t}`,i=e.caseSensitive?r:r.toLowerCase(),a=`${i}/`;return{input:({url:t})=>{let n=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return n===i?t.pathname=`/`:n.startsWith(a)&&(t.pathname=t.pathname.slice(r.length)),t},output:({url:e})=>(e.pathname=be([`/`,t,e.pathname]),e)}}function dt(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 ft(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 pt(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),p=n(e.isTransitioning),m=n(e.location),h=n(e.resolvedLocation),g=n(e.statusCode),_=n(e.redirect),v=n([]),y=n([]),b=n([]),x=r(()=>mt(o,v.get())),ee=r(()=>mt(s,y.get())),te=r(()=>mt(c,b.get())),S=r(()=>v.get()[0]),C=r(()=>v.get().some(e=>o.get(e)?.get().status===`pending`)),ne=r(()=>({locationHref:m.get().href,resolvedLocationHref:h.get()?.href,status:l.get()})),w=r(()=>({status:l.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:p.get(),matches:x.get(),location:m.get(),resolvedLocation:h.get(),statusCode:g.get(),redirect:_.get()})),re=f(64);function ie(e){let t=re.get(e);return t||(t=r(()=>{let t=v.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:p,location:m,resolvedLocation:h,statusCode:g,redirect:_,matchesId:v,pendingIds:y,cachedIds:b,matches:x,pendingMatches:ee,cachedMatches:te,firstId:S,hasPending:C,matchRouteDeps:ne,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:w,getRouteMatchStore:ie,setMatches:oe,setPending:se,setCached:ce};oe(e.matches),a?.(ae);function oe(e){ht(e,o,v,n,i)}function se(e){ht(e,s,y,n,i)}function ce(e){ht(e,c,b,n,i)}return ae}function mt(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function ht(e,t,n,r,i){let o=e.map(e=>e.id),s=new Set(o);i(()=>{for(let e of t.keys())s.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)}a(n.get(),o)||n.set(o)})}var gt=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},_t=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),vt=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),yt=(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);
10i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},bt=(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},xt=(e,t,n)=>{if(!(!st(n)&&!Ce(n)))throw st(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:st(n)?`redirected`:Ce(n)?`notFound`:r.status===`pending`?`success`:r.status,context:yt(e,t.index),isFetching:!1,error:n})),Ce(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),st(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},St=(e,t)=>{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},Ct=(e,t,n)=>{let r=yt(e,n);e.updateMatch(t,e=>({...e,context:r}))},wt=(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,xt(e,e.router.getMatch(r),n);try{a.options.onError?.(n)}catch(t){n=t,xt(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&&!st(n)&&!Ce(n)&&(e.serialError??=n)},Tt=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!vt(e,t)&&(n.options.loader||n.options.beforeLoad||It(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{gt(e)},i);r._nonReactive.pendingTimeout=t}},Et=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;Tt(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&xt(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},Dt=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=c(()=>{a?.resolve(),a=void 0});let{paramsError:s,searchError:l}=i;s&&wt(e,n,s),l&&wt(e,n,l),Tt(e,t,r,i);let u=new AbortController,d=!1,f=()=>{d||(d=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:u})))},p=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{f(),p()});return}i._nonReactive.beforeLoadPromise=c();let m={...yt(e,n,!1),...i.__routeContext},{search:h,params:g,cause:_}=i,v=vt(e,t),y={search:h,abortController:u,params:g,preload:v,context:m,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:v?`preload`:_,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},b=r=>{if(r===void 0){e.router.batch(()=>{f(),p()});return}(st(r)||Ce(r))&&(f(),wt(e,n,r)),e.router.batch(()=>{f(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),p()})},x;try{if(x=r.options.beforeLoad(y),o(x))return f(),x.catch(t=>{wt(e,n,t)}).then(b)}catch(t){f(),wt(e,n,t)}b(x)},Ot=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>c(),s=()=>Dt(e,n,t,i),c=()=>{if(St(e,n))return;let t=Et(e,n,i);return o(t)?t.then(s):s()};return a()},kt=(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=yt(e,r),d=vt(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}},jt=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{Ft(i);let s=i.options.loader,c=typeof s==`function`?s:s?.handler,l=c?.(At(e,t,n,r,i)),u=!!c&&o(l);if((u||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),c){let t=u?await l:l;xt(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let d=a._nonReactive.minPendingPromise;d&&await d,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:yt(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:yt(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,Ce(t)&&await i.options.notFoundComponent?.preload?.(),xt(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,xt(e,e.router.getMatch(n),t)}!st(o)&&!Ce(o)&&await Ft(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:yt(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),xt(e,r,t)}},Mt=async(e,t,n)=>{async function r(r,a,c,l,u){let f=Date.now()-a.updatedAt,p=r?u.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:u.options.staleTime??e.router.options.defaultStaleTime??0,m=u.options.shouldReload,h=typeof m==`function`?m(At(e,t,i,n,u)):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&&u.options.preload===!1||(o&&!e.sync&&d?(s=!0,(async()=>{try{await jt(e,t,i,n,u);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){st(t)&&await e.router.navigate(t.options)}})()):g!==`success`||o?await jt(e,t,i,n,u):Ct(e,i,n))}let{id:i,routeId:a}=e.matches[n],o=!1,s=!1,l=e.router.looseRoutesById[a],u=l.options.loader,d=((typeof u==`function`?void 0:u?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(St(e,i)){if(!e.router.getMatch(i))return e.matches[n];Ct(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,u=vt(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&d)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&xt(e,n,a),n.status===`pending`&&await r(u,t,s,n,l)}else{let n=u&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=c(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(u,t,s,a,l)}}let f=e.router.getMatch(i);s||(f._nonReactive.loaderPromise?.resolve(),f._nonReactive.loadPromise?.resolve(),f._nonReactive.loadPromise=void 0),clearTimeout(f._nonReactive.pendingTimeout),f._nonReactive.pendingTimeout=void 0,s||(f._nonReactive.loaderPromise=void 0),f._nonReactive.dehydrated=void 0;let p=s?f.isFetching:!1;return p!==f.isFetching||f.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:p,invalid:!1})),e.router.getMatch(i)):f};async function Nt(e){let t=e,n=[];_t(t.router)&&gt(t);let r;for(let e=0;e<t.matches.length;e++){try{let n=Ot(t,e);o(n)&&await n}catch(e){if(st(e))throw e;if(Ce(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?bt(t,r):void 0,s=r&&t.preload?0:a===void 0?i:Math.min(a+1,i),c,l;for(let e=0;e<s;e++)n.push(Mt(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(st(e))throw e;Ce(e)?c??=e:l??=e}if(l!==void 0)throw l}let u=c??(r&&!t.preload?r:void 0),d=t.firstBadMatchIndex===void 0?t.matches.length-1:t.firstBadMatchIndex;if(!u&&r&&t.preload)return t.matches;if(u){let e=bt(t,u);e===void 0&&p();let n=t.matches[e],r=t.router.looseRoutesById[n.routeId],i=t.router.options?.defaultNotFoundComponent;!r.options.notFoundComponent&&i&&(r.options.notFoundComponent=i),u.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:u},isFetching:!1})),d=e,await Ft(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 Ft(e,[`errorComponent`])}for(let e=0;e<=d;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=kt(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 f=gt(t);if(o(f)&&await f,u)throw u;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function Pt(e,t){let n=t.map(t=>
10e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function Ft(e,t=Lt){!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===Lt?(()=>{if(e._componentsPromise===void 0){let t=Pt(e,Lt);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():Pt(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function It(e){for(let t of Lt)if(e.options[t]?.preload)return!0;return!1}var Lt=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`],Rt=`__TSR_index`,zt=`popstate`,Bt=`beforeunload`;function Vt(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=Gt(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[Rt];i=Ht(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[Rt];i=Ht(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[Rt]!==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 Ht(e,t){t||={};let n=Kt();return{...t,key:n,__TSR_key:n,[Rt]:e}}function Ut(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??(()=>Gt(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Kt();t.history.replaceState({[Rt]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(te._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),te._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=Gt(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),te.notify({type:e})},x=async()=>{if(f){f=!1;return}let e=c(),n=e.state[Rt]-l.state[Rt],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),te.notify(u);return}}}l=c(),te.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=``},te=Vt({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(Bt,ee,{capture:!0}),t.removeEventListener(zt,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(Bt,ee,{capture:!0}),t.addEventListener(zt,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return te._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return te._ignoreSubscribers||b(`REPLACE`),n},te}function Wt(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function Gt(e,t){let n=Wt(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=Kt();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||{[Rt]:0,key:a,__TSR_key:a}}}function Kt(){return(Math.random()+1).toString(36).substring(7)}function qt(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function Jt(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 Yt=class{constructor(t,i){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.lightweightCache=new WeakMap,this.startTransition=e=>e(),this.update=e=>{let t=this.options,r=this.basepath??t?.basepath??`/`,i=this.basepath===void 0,a=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=xe(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history?this.options.history:Ut()),this.origin=this.options.origin,this.origin||=window?.origin&&window.origin!==`null`?window.origin:`http://localhost`,this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=f(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=pt(Qt(this.latestLocation),e),Ze(this)}let o=!1,s=this.options.basepath??`/`,c=this.options.rewrite;if(i||r!==s||a!==c){this.basepath=s;let e=[],t=n(s);t&&t!==`/`&&e.push(ut({basepath:s})),c&&e.push(c),this.rewrite=e.length===0?void 0:e.length===1?e[0]:lt(e),this.history&&this.updateLatestLocation(),o=!0}o&&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 t=E(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&e(this.options.routeMasks,t.processedTree),t},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:k(t?.search,i),hash:d(r.slice(1)).path,state:l(t?.state,a)}}let o=new URL(i,this.origin),s=dt(this.rewrite,o),c=this.options.parseSearch(s.search),u=this.options.stringifySearch(c);return s.search=u,{href:s.href.replace(s.origin,``),publicHref:i,pathname:d(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:u,search:k(t?.search,c),hash:d(s.hash.slice(1)).path,state:l(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)=>v({base:e,to:t.includes(`//`)?ve(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=>en({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,c=Object.assign(Object.create(null),r.params),u=a?.charCodeAt(0)===47?`/`:this.resolvePathWithBase(i,`.`),f=a?this.resolvePathWithBase(u,a):u,p=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?c:Object.assign(c,x(t.params,c)),m=this.routesByPath[y(f)],h;if(m)h=this.getRouteBranch(m);else if(f.includes(`$`))h=[];else{let e=this.getMatchedRoutes(f);h=e.matchedRoutes,this.options.notFoundRoute&&(!e.foundRoute||e.foundRoute.path!==`/`&&e.routeParams[`**`])&&(h=[...h,this.options.notFoundRoute])}if(h.length&&s(p))for(let e of h){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(p,t(p))}catch{}}let g=e.leaveParams?f:d(re({path:f,params:p,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,_=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};h.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,$t(t.options.validateSearch,{...e,..._}))}catch{}}),_=e}_=tn({search:_,dest:t,destRoutes:h,_includeValidateSearch:e._includeValidateSearch}),_=k(o,_);let v=this.options.stringifySearch(_),b=t.hash===!0?n.hash:t.hash?x(t.hash,n.hash):void 0,ee=b?`#${b}`:``,te=t.state===!0?n.state:t.state?x(t.state,n.state):{};te=l(n.state,te);let S=`${g}${v}${ee}`,C,ne,w=!1;if(this.rewrite){let e=new URL(S,this.origin),t=ft(this.rewrite,e);C=e.href.replace(e.origin,``),t.origin===this.origin?ne=t.pathname+t.search+t.hash:(ne=t.href,w=!0)}else C=Se(S),ne=C;return{publicHref:ne,href:C,pathname:g,search:_,searchStr:v,state:te,hash:b??``,external:w,unmaskOnReload:t.unmaskOnReload}},n=(n={},i)=>{let a=t(n),o=i?t(i):void 0;if(!o){let n=Object.create(null);if(this.options.routeMasks){let s=r(a.pathname,this.processedTree);if(s){Object.assign(n,s.rawParams);let{from:r,params:a,...c}=s.route,l=a===!1||a===null?Object.create(null):(a??!0)===!0?n:Object.assign(n,x(a,n));i={from:e.from,...c,params:l},o=t(i)}}}return o&&(a.maskedLocation=o),a};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=y(this.latestLocation.href)===y(n.href),o=this.commitLocationPromise;if(this.commitLocationPromise=c(()=>{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=Gt(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=dt(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 queueMicrotask(()=>{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(b(t,this.protocolAllowlist))return;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}i.replace?window.location.replace(t):window.location.href=t;return}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&&(this._scroll.hash=t===`PUSH`||t===`REPLACE`);let n=this.latestLocation,r=Jt(n,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...r}),this.emit({type:`onBeforeLoad`,...r}),await Nt({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){st(e)?(n=e,this.navigate({...n.options,replace:!0,ignoreBlocker:!0})):Ce(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(Jt(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&&b(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)??3e5;return t.status===`error`||e-t.updatedAt>=r}})},this.loadRouteChunk=Ft,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 Nt({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(st(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});Ce(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=D(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=i,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??`fuzzy`,stringifySearch:t.stringifySearch??nt,parseSearch:t.parseSearch??tt,protocolAllowlist:t.protocolAllowlist??h}),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=i(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[`**`]:y(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?rn(this.options.notFoundMode,a):void 0,u=Array(a.length),d=new Map;for(let e of this.stores.matchStores.values())e.routeId&&d.set(e.routeId,e.get());for(let n=0;n<a.length;n++){let r=a[n],o=u[n-1],f,p,m;{let n=o?.search??e.search,i=o?._strictSearch??void 0;try{let e=$t(r.options.validateSearch,{...n})??void 0;f={...n,...e},p={...i,...e},m=void 0}catch(e){let r=e;if(e instanceof Xt||(r=new Xt(e.message,{cause:e})),t?.throwOnError)throw r;f=n,p={},m=r}}let h=r.options.loaderDeps?.({search:f})??``,g=h?JSON.stringify(h):``,{interpolatedPath:_,usedParams:v}=re({path:r.fullPath,params:i,decoder:this.pathParamsDecoder,server:this.isServer}),y=r.id+_+g,b=this.getMatch(y),x=d.get(r.id),ee=b?._strictParams??v,te;if(!b)try{an(r,ee)}catch(e){if(te=Ce(e)||st(e)?e:new Zt(e.message,{cause:e}),t?.throwOnError)throw te}Object.assign(i,ee);let S=x?`stay`:`enter`,C;if(b)C={...b,cause:S,params:x?.params??i,_strictParams:ee,search:k(x?x.search:b.search,f),_strictSearch:p};else{let e=r.options.loader||r.options.beforeLoad||r.lazyFn||It(r)?`pending`:`success`;C={id:y,ssr:r.options.ssr,index:n,routeId:r.id,params:x?.params??i,_strictParams:ee,pathname:_,updatedAt:Date.now(),search:x?k(x.search,f):f,_strictSearch:p,searchError:void 0,status:e,isFetching:!1,error:void 0,paramsError:te,__routeContext:void 0,_nonReactive:{loadPromise:c()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:S,loaderDeps:x?l(x.loaderDeps,h):h,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=m;let ne=this.getParentContext(o);C.context={...ne,...C.__routeContext,...C.__beforeLoadContext},u[n]=C}for(let t=0;t<u.length;t++){let n=u[t],r=this.looseRoutesById[n.routeId],a=this.getMatch(n.id),o=d.get(n.routeId);if(n.params=o?k(o.params,i):i,!a){let i=u[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:u,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return u}matchRoutesLightweight(e){let t=u(this.stores.matchesId.get()),n=this.lightweightCache.get(e);if(n&&n[0]===t)return n[1];let{matchedRoutes:r,routeParams:i}=this.getMatchedRoutes(e.pathname),a=u(r),o={...e.search};for(let e of r)try{Object.assign(o,$t(e.options.validateSearch,o))}catch{}let s=t&&this.stores.matchStores.get(t)?.get(),c=s&&s.routeId===a.id&&s.pathname===e.pathname,l;if(c)l=s.params;else{let e=Object.assign(Object.create(null),i);for(let t of r)try{an(t,e)}catch{}l=e}let d={matchedRoutes:r,fullPath:a.fullPath,search:o,params:l};return this.lightweightCache.set(e,[t,d]),d}},Xt=class extends Error{},Zt=class extends Error{};function Qt(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function $t(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new Xt(`Async validation not supported`);if(n.issues)throw new Xt(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 en({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=y(e),a,o=m(i,n,!0);return o&&(a=o.route,Object.assign(r,o.rawParams)),{matchedRoutes:o?.branch||[t.__root__],routeParams:r,foundRoute:a}}function tn({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return nn(n)(e,t,r??!1)}function nn(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)=>
10t(e),t):t);return e.postSearchFilters?e.postSearchFilters.reduce((e,t)=>t(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=$t(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=x(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 rn(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 at}function an(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)}}var on=Symbol.for(`TSR_DEFERRED_PROMISE`);function sn(e,t){let n=e;return n[on]?n:(n[on]={status:`pending`},n.then(e=>{n[on].status=`success`,n[on].data=e}).catch(e=>{n[on].status=`error`,n[on].error={data:(t?.serializeError??qt)(e),__isServerError:!0}}),n)}function cn(e,t){if(e)return typeof e==`string`?e:e[t]}function ln(e){return e?.scriptFormat??`module`}function un(e,t,n){let r=dn(t),i=cn(n,`script`)??r.crossOrigin;return{...ln(e)===`iife`?{rel:`preload`,as:`script`}:{rel:`modulepreload`},href:r.href,...i?{crossOrigin:i}:{}}}function dn(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}function fn(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 pn(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}var mn=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=at:this.parentRoute||p();let r=n?at:t?.path;r&&r!==`/`&&(r=ye(r));let i=t?.id||r,a=n?at:be([this.parentRoute.id===`__root__`?``:this.parentRoute.id,i]);r===`__root__`&&(r=`/`),a!==`__root__`&&(a=be([`/`,a]));let o=a===`__root__`?`/`:be([this.parentRoute.fullPath,r]);this._path=r,this._id=a,this._fullPath=o,this._to=y(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=>ot({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.`)}},hn=class extends mn{constructor(e){super(e)}},gn=(e=>(e[e.AggregateError=1]=`AggregateError`,e[e.ArrowFunction=2]=`ArrowFunction`,e[e.ErrorPrototypeStack=4]=`ErrorPrototypeStack`,e[e.ObjectAssign=8]=`ObjectAssign`,e[e.BigIntTypedArray=16]=`BigIntTypedArray`,e[e.RegExp=32]=`RegExp`,e))(gn||{}),_n=Symbol.asyncIterator,vn=Symbol.hasInstance,yn=Symbol.isConcatSpreadable,bn=Symbol.iterator,xn=Symbol.match,Sn=Symbol.matchAll,Cn=Symbol.replace,wn=Symbol.search,Tn=Symbol.species,En=Symbol.split,Dn=Symbol.toPrimitive,On=Symbol.toStringTag,kn=Symbol.unscopables,An={[_n]:0,[vn]:1,[yn]:2,[bn]:3,[xn]:4,[Sn]:5,[Cn]:6,[wn]:7,[Tn]:8,[En]:9,[Dn]:10,[On]:11,[kn]:12},jn={0:_n,1:vn,2:yn,3:bn,4:xn,5:Sn,6:Cn,7:wn,8:Tn,9:En,10:Dn,11:On,12:kn},A=void 0,Mn={2:!0,3:!1,1:A,0:null,4:-0,5:1/0,6:-1/0,7:NaN},Nn={0:`Error`,1:`EvalError`,2:`RangeError`,3:`ReferenceError`,4:`SyntaxError`,5:`TypeError`,6:`URIError`},Pn={0:Error,1:EvalError,2:RangeError,3:ReferenceError,4:SyntaxError,5:TypeError,6:URIError};function j(e,t,n,r,i,a,o,s,c,l,u,d){return{t:e,i:t,s:n,c:r,m:i,p:a,e:o,a:s,f:c,b:l,o:u,l:d}}function Fn(e){return j(2,A,e,A,A,A,A,A,A,A,A,A)}var In=Fn(2),Ln=Fn(3),Rn=Fn(1),zn=Fn(0),Bn=Fn(4),Vn=Fn(5),Hn=Fn(6),Un=Fn(7);function Wn(e){switch(e){case`"`:return`\\"`;case`\\`:return`\\\\`;case`
11`:return`\\n`;case`\r`:return`\\r`;case`\b`:return`\\b`;case`	`:return`\\t`;case`\f`:return`\\f`;case`<`:return`\\x3C`;case`\u2028`:return`\\u2028`;case`\u2029`:return`\\u2029`;default:return A}}function Gn(e){let t=``,n=0,r;for(let i=0,a=e.length;i<a;i++)r=Wn(e[i]),r&&(t+=e.slice(n,i)+r,n=i+1);return n===0?t=e:t+=e.slice(n),t}function Kn(e){switch(e){case`\\\\`:return`\\`;case`\\"`:return`"`;case`\\n`:return`
12`;case`\\r`:return`\r`;case`\\b`:return`\b`;case`\\t`:return`	`;case`\\f`:return`\f`;case`\\x3C`:return`<`;case`\\u2028`:return`\u2028`;case`\\u2029`:return`\u2029`;default:return e}}function qn(e){return e.replace(/(\\\\|\\"|\\n|\\r|\\b|\\t|\\f|\\u2028|\\u2029|\\x3C)/g,Kn)}var Jn=`__SEROVAL_REFS__`,Yn=new Map,Xn=new Map;function Zn(e){return Yn.has(e)}function Qn(e){return Xn.has(e)}function $n(e){if(Zn(e))return Yn.get(e);throw new Vr(e)}function er(e){if(Qn(e))return Xn.get(e);throw new Hr(e)}typeof globalThis<`u`?Object.defineProperty(globalThis,Jn,{value:Xn,configurable:!0,writable:!1,enumerable:!1}):typeof window<`u`?Object.defineProperty(window,Jn,{value:Xn,configurable:!0,writable:!1,enumerable:!1}):typeof self<`u`?Object.defineProperty(self,Jn,{value:Xn,configurable:!0,writable:!1,enumerable:!1}):typeof global<`u`&&Object.defineProperty(global,Jn,{value:Xn,configurable:!0,writable:!1,enumerable:!1});function tr(e){return e instanceof EvalError?1:e instanceof RangeError?2:e instanceof ReferenceError?3:e instanceof SyntaxError?4:e instanceof TypeError?5:e instanceof URIError?6:0}function nr(e){let t=Nn[tr(e)];return e.name===t?e.constructor.name===t?{}:{name:e.constructor.name}:{name:e.name}}function rr(e,t){let n=nr(e),r=Object.getOwnPropertyNames(e);for(let i=0,a=r.length,o;i<a;i++)o=r[i],o!==`name`&&o!==`message`&&(o===`stack`?t&4&&(n||={},n[o]=e[o]):(n||={},n[o]=e[o]));return n}function ir(e){return Object.isFrozen(e)?3:Object.isSealed(e)?2:+!Object.isExtensible(e)}function ar(e){switch(e){case 1/0:return Vn;case-1/0:return Hn}return e===e?Object.is(e,-0)?Bn:j(0,A,e,A,A,A,A,A,A,A,A,A):Un}function or(e){return j(1,A,Gn(e),A,A,A,A,A,A,A,A,A)}function sr(e){return j(3,A,``+e,A,A,A,A,A,A,A,A,A)}function cr(e){return j(4,e,A,A,A,A,A,A,A,A,A,A)}function lr(e,t){let n=t.valueOf();return j(5,e,n===n?t.toISOString():``,A,A,A,A,A,A,A,A,A)}function ur(e,t){return j(6,e,A,Gn(t.source),t.flags,A,A,A,A,A,A,A)}function dr(e,t){return j(17,e,An[t],A,A,A,A,A,A,A,A,A)}function fr(e,t){return j(18,e,Gn($n(t)),A,A,A,A,A,A,A,A,A)}function pr(e,t,n){return j(25,e,n,Gn(t),A,A,A,A,A,A,A,A)}function mr(e,t,n){return j(9,e,A,A,A,A,A,n,A,A,ir(t),A)}function hr(e,t){return j(21,e,A,A,A,A,A,A,t,A,A,A)}function gr(e,t,n){return j(15,e,A,t.constructor.name,A,A,A,A,n,t.byteOffset,A,t.length)}function _r(e,t,n){return j(16,e,A,t.constructor.name,A,A,A,A,n,t.byteOffset,A,t.length)}function vr(e,t,n){return j(20,e,A,A,A,A,A,A,n,t.byteOffset,A,t.byteLength)}function yr(e,t,n){return j(13,e,tr(t),A,Gn(t.message),n,A,A,A,A,A,A)}function br(e,t,n){return j(14,e,tr(t),A,Gn(t.message),n,A,A,A,A,A,A)}function xr(e,t){return j(7,e,A,A,A,A,A,t,A,A,A,A)}function Sr(e,t){return j(28,A,A,A,A,A,A,[e,t],A,A,A,A)}function Cr(e,t){return j(30,A,A,A,A,A,A,[e,t],A,A,A,A)}function wr(e,t,n){return j(31,e,A,A,A,A,A,n,t,A,A,A)}function Tr(e,t){return j(32,e,A,A,A,A,A,A,t,A,A,A)}function Er(e,t){return j(33,e,A,A,A,A,A,A,t,A,A,A)}function Dr(e,t){return j(34,e,A,A,A,A,A,A,t,A,A,A)}function Or(e,t,n,r){return j(35,e,n,A,A,A,A,t,A,A,A,r)}var{toString:kr}
12=Object.prototype,Ar={parsing:1,serialization:2,deserialization:3};function jr(e){return`Seroval Error (step: ${Ar[e]})`}var Mr=(e,t)=>jr(e),Nr=class extends Error{constructor(e,t){super(Mr(e,t)),this.cause=t}},Pr=class extends Nr{constructor(e){super(`parsing`,e)}},Fr=class extends Nr{constructor(e){super(`deserialization`,e)}};function Ir(e){return`Seroval Error (specific: ${e})`}var Lr=class extends Error{constructor(e){super(Ir(1)),this.value=e}},Rr=class extends Error{constructor(e){super(Ir(2))}},zr=class extends Error{constructor(e){super(Ir(3))}},Br=class extends Error{constructor(e){super(Ir(4))}},Vr=class extends Error{constructor(e){super(Ir(5)),this.value=e}},Hr=class extends Error{constructor(e){super(Ir(6))}},Ur=class extends Error{constructor(e){super(Ir(7))}},Wr=class extends Error{constructor(e){super(Ir(8))}},Gr=class extends Error{constructor(e){super(Ir(9))}},Kr=class{constructor(e,t){this.value=e,this.replacement=t}},qr=()=>{let e={p:0,s:0,f:0};return e.p=new Promise((t,n)=>{e.s=t,e.f=n}),e};qr.toString(),((e,t)=>{e.s(t),e.p.s=1,e.p.v=t}).toString(),((e,t)=>{e.f(t),e.p.s=2,e.p.v=t}).toString();var Jr=()=>{let e=[],t=[],n=!0,r=!1,i=0,a=(e,n,r)=>{for(r=0;r<i;r++)t[r]&&t[r][n](e)},o=(t,i,a,o)=>{for(i=0,a=e.length;i<a;i++)o=e[i],!n&&i===a-1?t[r?`return`:`throw`](o):t.next(o)},s=(e,r)=>(n&&(r=i++,t[r]=e),o(e),()=>{n&&(t[r]=t[i],t[i--]=void 0)});return{__SEROVAL_STREAM__:!0,on:e=>s(e),next:t=>{n&&(e.push(t),a(t,`next`))},throw:i=>{n&&(e.push(i),a(i,`throw`),n=!1,r=!1,t.length=0)},return:i=>{n&&(e.push(i),a(i,`return`),n=!1,r=!0,t.length=0)}}};Jr.toString();var Yr=e=>t=>()=>{let n=0,r={[e]:()=>r,next:()=>{if(n>t.d)return{done:!0,value:void 0};let e=n++,r=t.v[e];if(e===t.t)throw r;return{done:e===t.d,value:r}}};return r};Yr.toString();var Xr=(e,t)=>n=>()=>{let r=0,i=-1,a=!1,o=[],s=[],c=(e=0,t=s.length)=>{for(;e<t;e++)s[e].s({done:!0,value:void 0})};n.on({next:e=>{let t=s.shift();t&&t.s({done:!1,value:e}),o.push(e)},throw:e=>{let t=s.shift();t&&t.f(e),c(),i=o.length,a=!0,o.push(e)},return:e=>{let t=s.shift();t&&t.s({done:!0,value:e}),c(),i=o.length,o.push(e)}});let l={[e]:()=>l,next:()=>{if(i===-1){let e=r++;if(e>=o.length){let e=t();return s.push(e),e.p}return{done:!1,value:o[e]}}if(r>i)return{done:!0,value:void 0};let e=r++,n=o[e];if(e!==i)return{done:!1,value:n};if(a)throw n;return{done:!0,value:n}}};return l};Xr.toString();var Zr=e=>{let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return r.buffer};Zr.toString();function Qr(e){return`__SEROVAL_SEQUENCE__`in e}function $r(e,t,n){return{__SEROVAL_SEQUENCE__:!0,v:e,t,d:n}}function ei(e){let t=[],n=-1,r=-1,i=e[bn]();for(;;)try{let e=i.next();if(t.push(e.value),e.done){r=t.length-1;break}}catch(e){n=t.length,t.push(e)}return $r(t,n,r)}var ti=Yr(bn);function ni(e){return ti(e)}var ri={},ii={},ai={0:{},1:{},2:{},3:{},4:{},5:{}};function oi(e){return`__SEROVAL_STREAM__`in e}function si(){return Jr()}function ci(e){let t=si(),n=e[_n]();async function r(){try{let e=await n.next();e.done?t.return(e.value):(t.next(e.value),await r())}catch(e){t.throw(e)}}return r().catch(()=>{}),t}var li=Xr(_n,qr);function ui(e){return li(e)}async function di(e){try{return[1,await e]}catch(e){return[0,e]}}function fi(e,t){return{plugins:t.plugins,mode:e,marked:new Set,features:63^(t.disabledFeatures||0),refs:t.refs||new Map,depthLimit:t.depthLimit||1e3}}function pi(e,t){e.marked.add(t)}function mi(e,t){let n=e.refs.size;return e.refs.set(t,n),n}function hi(e,t){let n=e.refs.get(t);return n==null?{type:0,value:mi(e,t)}:(pi(e,n),{type:1,value:cr(n)})}function gi(e,t){let n=hi(e,t);return n.type===1?n:Zn(t)?{type:2,value:fr(n.value,t)}:n}function _i(e,t){let n=gi(e,t);if(n.type!==0)return n.value;if(t in An)return dr(n.value,t);throw new Lr(t)}function vi(e,t){let n=hi(e,ai[t]);return n.type===1?n.value:j(26,n.value,t,A,A,A,A,A,A,A,A,A)}function yi(e){let t=hi(e,ri);return t.type===1?t.value:j(27,t.value,A,A,A,A,A,A,_i(e,bn),A,A,A)}function bi(e){let t=hi(e,ii);return t.type===1?t.value:j(29,t.value,A,A,A,A,A,[vi(e,1),_i(e,_n)],A,A,A,A)}function xi(e,t,n,r){return j(n?11:10,e,A,A,A,r,A,A,A,A,ir(t),A)}function Si(e,t,n,r){return j(8,t,A,A,A,A,{k:n,v:r},A,vi(e,0),A,A,A)}
12function Ci(e,t,n){let r=new Uint8Array(n),i=``;for(let e=0,t=r.length;e<t;e++)i+=String.fromCharCode(r[e]);return j(19,t,Gn(btoa(i)),A,A,A,A,A,vi(e,5),A,A,A)}function wi(e,t){return{base:fi(e,t),child:void 0}}var Ti=class{constructor(e,t){this._p=e,this.depth=t}parse(e){return Wi(this._p,this.depth,e)}};async function Ei(e,t,n){let r=[];for(let i=0,a=n.length;i<a;i++)i in n?r[i]=await Wi(e,t,n[i]):r[i]=0;return r}async function Di(e,t,n,r){return mr(n,r,await Ei(e,t,r))}async function Oi(e,t,n){let r=Object.entries(n),i=[],a=[];for(let n=0,o=r.length;n<o;n++)i.push(Gn(r[n][0])),a.push(await Wi(e,t,r[n][1]));return bn in n&&(i.push(_i(e.base,bn)),a.push(Sr(yi(e.base),await Wi(e,t,ei(n))))),_n in n&&(i.push(_i(e.base,_n)),a.push(Cr(bi(e.base),await Wi(e,t,ci(n))))),On in n&&(i.push(_i(e.base,On)),a.push(or(n[On]))),yn in n&&(i.push(_i(e.base,yn)),a.push(n[yn]?In:Ln)),{k:i,v:a}}async function ki(e,t,n,r,i){return xi(n,r,i,await Oi(e,t,r))}async function Ai(e,t,n,r){return hr(n,await Wi(e,t,r.valueOf()))}async function ji(e,t,n,r){return gr(n,r,await Wi(e,t,r.buffer))}async function Mi(e,t,n,r){return _r(n,r,await Wi(e,t,r.buffer))}async function Ni(e,t,n,r){return vr(n,r,await Wi(e,t,r.buffer))}async function Pi(e,t,n,r){let i=rr(r,e.base.features);return yr(n,r,i?await Oi(e,t,i):A)}async function Fi(e,t,n,r){let i=rr(r,e.base.features);return br(n,r,i?await Oi(e,t,i):A)}async function Ii(e,t,n,r){let i=[],a=[];for(let[n,o]of r.entries())i.push(await Wi(e,t,n)),a.push(await Wi(e,t,o));return Si(e.base,n,i,a)}async function Li(e,t,n,r){let i=[];for(let n of r.keys())i.push(await Wi(e,t,n));return xr(n,i)}async function Ri(e,t,n,r){let i=e.base.plugins;if(i)for(let a=0,o=i.length;a<o;a++){let o=i[a];if(o.parse.async&&o.test(r))return pr(n,o.tag,await o.parse.async(r,new Ti(e,t),{id:n}))}return A}async function zi(e,t,n,r){let[i,a]=await di(r);return j(12,n,i,A,A,A,A,A,await Wi(e,t,a),A,A,A)}function Bi(e,t,n,r,i){let a=[],o=n.on({next:n=>{pi(this.base,t),Wi(this,e,n).then(e=>{a.push(Tr(t,e))},e=>{i(e),o()})},throw:n=>{pi(this.base,t),Wi(this,e,n).then(e=>{a.push(Er(t,e)),r(a),o()},e=>{i(e),o()})},return:n=>{pi(this.base,t),Wi(this,e,n).then(e=>{a.push(Dr(t,e)),r(a),o()},e=>{i(e),o()})}})}async function Vi(e,t,n,r){return wr(n,vi(e.base,4),await new Promise(Bi.bind(e,t,n,r)))}async function Hi(e,t,n,r){let i=[];for(let n=0,a=r.v.length;n<a;n++)i[n]=await Wi(e,t,r.v[n]);return Or(n,i,r.t,r.d)}async function M(e,t,n,r){if(Array.isArray(r))return Di(e,t,n,r);if(oi(r))return Vi(e,t,n,r);if(Qr(r))return Hi(e,t,n,r);let i=r.constructor;if(i===Kr)return Wi(e,t,r.replacement);let a=await Ri(e,t,n,r);if(a)return a;switch(i){case Object:return ki(e,t,n,r,!1);case A:return ki(e,t,n,r,!0);case Date:return lr(n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return Pi(e,t,n,r);case Number:case Boolean:case String:case BigInt:return Ai(e,t,n,r);case ArrayBuffer:return Ci(e.base,n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return ji(e,t,n,r);case DataView:return Ni(e,t,n,r);case Map:return Ii(e,t,n,r);case Set:return Li(e,t,n,r)}if(i===Promise||r instanceof Promise)return zi(e,t,n,r);let o=e.base.features;if(o&32&&i===RegExp)return ur(n,r);if(o&16)switch(i){case BigInt64Array:case BigUint64Array:return Mi(e,t,n,r);default:break}if(o&1&&typeof AggregateError<`u`&&(i===AggregateError||r instanceof AggregateError))return Fi(e,t,n,r);if(r instanceof Error)return Pi(e,t,n,r);if(bn in r||_n in r)return ki(e,t,n,r,!!i);throw new Lr(r)}async function Ui(e,t,n){let r=gi(e.base,n);if(r.type!==0)return r.value;let i=await Ri(e,t,r.value,n);if(i)return i;throw new Lr(n)}async function Wi(e,t,n){if(t>=e.base.depthLimit)throw new Gr(e.base.depthLimit);switch(typeof n){case`boolean`:return n?In:Ln;case`undefined`:return Rn;case`string`:return or(n);case`number`:return ar(n);case`bigint`:return sr(n);case`object`:if(n){let r=gi(e.base,n);return r.type===0?await M(e,t+1,r.value,n):r.value}return zn;case`symbol`:return _i(e.base,n);case`function`:return Ui(e,t,n);default:throw new Lr(n)}}async function Gi(e,t){try{return await Wi(e,0,t)}catch(e){throw e instanceof Pr?e:new Pr(e)}}var Ki=(e=>(e[e.Vanilla=1]=`Vanilla`,e[e.Cross=2]=`Cross`,e))(Ki||{});function qi(e){return e}function Ji(e,t){for(let n=0,r=t.length;n<r;n++){let r=t[n];e.has(r)||(e.add(r),r.extends&&Ji(e,r.extends))}}function Yi(e){if(e){let t=new Set;return Ji(t,e),[...t]}}function Xi(e){switch(e){case`Int8Array`:return Int8Array;case`Int16Array`:return Int16Array;case`Int32Array`:return Int32Array;case`Uint8Array`:return Uint8Array;case`Uint16Array`:return Uint16Array;case`Uint32Array`:return Uint32Array;case`Uint8ClampedArray`:return Uint8ClampedArray;case`Float32Array`:return Float32Array;case`Float64Array`:return Float64Array;case`BigInt64Array`:return BigInt64Array;case`BigUint64Array`:return BigUint64Array;default:throw new Ur(e)}}function Zi(e){switch(e){case`constructor`:case`__proto__`:case`prototype`:case`__defineGetter__`:case`__defineSetter__`:case`__lookupGetter__`:case`__lookupSetter__`:return!1;default:return!0}}function Qi(e){switch(e){case _n:case yn:case On:case bn:return!0;default:return!1}}var $i=1e6,ea=1e4,ta=2e4;function na(e,t){switch(t){case 3:return Object.freeze(e);case 1:return Object.preventExtensions(e);case 2:return Object.seal(e);default:return e}}var ra=1e3;function ia(e,t){let n=t.refs||new Map;return`types`in n||Object.assign(n,{types:new Map}),{mode:e,plugins:t.plugins,refs:n,features:t.features??63^(t.disabledFeatures||0),depthLimit:t.depthLimit||ra}}
12function aa(e){return{mode:2,base:ia(2,e),child:A}}var oa=class{constructor(e,t){this._p=e,this.depth=t}deserialize(e){return Ga(this._p,this.depth,e)}};function sa(e,t){if(t<0||!Number.isFinite(t)||!Number.isInteger(t))throw new Wr({t:4,i:t});if(e.refs.has(t))throw Error(`Conflicted ref id: `+t)}function ca(e,t,n){return sa(e.base,t),e.state.marked.has(t)&&e.base.refs.set(t,n),n}function la(e,t,n){return sa(e.base,t),e.base.refs.set(t,n),n}function ua(e,t,n){return e.mode===1?ca(e,t,n):la(e,t,n)}function da(e,t,n){if(Object.hasOwn(t,n))return t[n];throw new Wr(e)}function fa(e,t){return ua(e,t.i,er(qn(t.s)))}function pa(e,t,n){let r=n.a,i=r.length,a=ua(e,n.i,Array(i));for(let n=0,o;n<i;n++)o=r[n],o&&(a[n]=Ga(e,t,o));return na(a,n.o),a}function ma(e,t,n){Zi(t)?e[t]=n:Object.defineProperty(e,t,{value:n,configurable:!0,enumerable:!0,writable:!0})}function ha(e,t,n,r,i){if(typeof r==`string`)ma(n,qn(r),Ga(e,t,i));else{let a=Ga(e,t,r);switch(typeof a){case`string`:ma(n,a,Ga(e,t,i));break;case`symbol`:Qi(a)&&(n[a]=Ga(e,t,i));break;default:throw new Wr(r)}}}function ga(e,t,n){e.base.refs.types.set(t,n)}function _a(e,t,n,r){if(e.base.refs.types.get(n)!==r)throw new Wr(t)}function va(e,t,n,r){let i=n.k;if(i.length>0)for(let a=0,o=n.v,s=i.length;a<s;a++)ha(e,t,r,i[a],o[a]);return r}function ya(e,t,n){let r=ua(e,n.i,n.t===10?{}:Object.create(null));return va(e,t,n.p,r),na(r,n.o),r}function ba(e,t){return ua(e,t.i,new Date(t.s))}function xa(e,t){if(e.base.features&32){let n=qn(t.c);if(n.length>ta)throw new Wr(t);return ua(e,t.i,new RegExp(n,t.m))}throw new Rr(t)}function Sa(e,t,n){let r=ua(e,n.i,new Set);for(let i=0,a=n.a,o=a.length;i<o;i++)r.add(Ga(e,t,a[i]));return r}function Ca(e,t,n){let r=ua(e,n.i,new Map);for(let i=0,a=n.e.k,o=n.e.v,s=a.length;i<s;i++)r.set(Ga(e,t,a[i]),Ga(e,t,o[i]));return r}function wa(e,t){if(t.s.length>$i)throw new Wr(t);return ua(e,t.i,Zr(qn(t.s)))}function Ta(e,t,n){let r=Xi(n.c),i=Ga(e,t,n.f),a=n.b??0;if(a<0||a>i.byteLength)throw new Wr(n);return ua(e,n.i,new r(i,a,n.l))}function Ea(e,t,n){let r=Ga(e,t,n.f),i=n.b??0;if(i<0||i>r.byteLength)throw new Wr(n);return ua(e,n.i,new DataView(r,i,n.l))}function Da(e,t,n,r){if(n.p){let i=va(e,t,n.p,{});Object.defineProperties(r,Object.getOwnPropertyDescriptors(i))}return r}function Oa(e,t,n){return Da(e,t,n,ua(e,n.i,AggregateError([],qn(n.m))))}function ka(e,t,n){let r=da(n,Pn,n.s);return Da(e,t,n,ua(e,n.i,new r(qn(n.m))))}function Aa(e,t,n){let r=qr(),i=ua(e,n.i,r.p),a=Ga(e,t,n.f);return n.s?r.s(a):r.f(a),i}function ja(e,t,n){return ua(e,n.i,Object(Ga(e,t,n.f)))}function Ma(e,t,n){let r=e.base.plugins;if(r){let i=qn(n.c);for(let a=0,o=r.length;a<o;a++){let o=r[a];if(o.tag===i)return ua(e,n.i,o.deserialize(n.s,new oa(e,t),{id:n.i}))}}throw new zr(n.c)}function Na(e,t){let n=ua(e,t.i,ua(e,t.s,qr()).p);return ga(e,t.s,22),n}function Pa(e,t,n){let r=e.base.refs.get(n.i);if(r)return _a(e,n,n.i,22),r.s(Ga(e,t,n.a[1])),A;throw new Br(`Promise`)}function Fa(e,t,n){let r=e.base.refs.get(n.i);if(r)return _a(e,n,n.i,22),r.f(Ga(e,t,n.a[1])),A;throw new Br(`Promise`)}function Ia(e,t,n){return Ga(e,t,n.a[0]),ni(Ga(e,t,n.a[1]))}function La(e,t,n){return Ga(e,t,n.a[0]),ui(Ga(e,t,n.a[1]))}function Ra(e,t,n){let r=ua(e,n.i,si());ga(e,n.i,31);let i=n.a,a=i.length;if(a)for(let n=0;n<a;n++)Ga(e,t,i[n]);return r}function za(e,t,n){let r=e.base.refs.get(n.i);if(r)return _a(e,n,n.i,31),r.next(Ga(e,t,n.f)),A;throw new Br(`Stream`)}function Ba(e,t,n){let r=e.base.refs.get(n.i);if(r)return _a(e,n,n.i,31),r.throw(Ga(e,t,n.f)),A;throw new Br(`Stream`)}function Va(e,t,n){let r=e.base.refs.get(n.i);if(r)return _a(e,n,n.i,31),r.return(Ga(e,t,n.f)),A;throw new Br(`Stream`)}function Ha(e,t,n){return Ga(e,t,n.f),A}function Ua(e,t,n){return Ga(e,t,n.a[1]),A}function Wa(e,t,n){let r=ua(e,n.i,$r([],n.s,n.l));for(let i=0,a=n.a.length;i<a;i++)r.v[i]=Ga(e,t,n.a[i]);return r}function Ga(e,t,n){if(t>e.base.depthLimit)throw new Gr(e.base.depthLimit);switch(t+=1,n.t){case 2:return da(n,Mn,n.s);case 0:return Number(n.s);case 1:return qn(String(n.s));case 3:if(String(n.s).length>ea)throw new Wr(n);return BigInt(n.s);case 4:return e.base.refs.get(n.i);case 18:return fa(e,n);
12case 9:return pa(e,t,n);case 10:case 11:return ya(e,t,n);case 5:return ba(e,n);case 6:return xa(e,n);case 7:return Sa(e,t,n);case 8:return Ca(e,t,n);case 19:return wa(e,n);case 16:case 15:return Ta(e,t,n);case 20:return Ea(e,t,n);case 14:return Oa(e,t,n);case 13:return ka(e,t,n);case 12:return Aa(e,t,n);case 17:return da(n,jn,n.s);case 21:return ja(e,t,n);case 25:return Ma(e,t,n);case 22:return Na(e,n);case 23:return Pa(e,t,n);case 24:return Fa(e,t,n);case 28:return Ia(e,t,n);case 30:return La(e,t,n);case 31:return Ra(e,t,n);case 32:return za(e,t,n);case 33:return Ba(e,t,n);case 34:return Va(e,t,n);case 27:return Ha(e,t,n);case 29:return Ua(e,t,n);case 35:return Wa(e,t,n);default:throw new Rr(n)}}function Ka(e,t){try{return Ga(e,0,t)}catch(e){throw new Fr(e)}}var qa=(()=>T).toString();/=>/.test(qa);function Ja(e,t){return Ka(aa({plugins:Yi(t.plugins),refs:t.refs,features:t.features,disabledFeatures:t.disabledFeatures,depthLimit:t.depthLimit}),e)}async function Ya(e,t={}){let n=wi(1,{plugins:Yi(t.plugins),disabledFeatures:t.disabledFeatures});return{t:await Gi(n,e),f:n.base.features,m:Array.from(n.base.marked)}}function Xa(e){return e}function Za(e){return qi({tag:`$TSR/t/`+e.key,test:e.test,parse:{sync(t,n,r){return{v:n.parse(e.toSerializable(t))}},async async(t,n,r){return{v:await n.parse(e.toSerializable(t))}},stream(t,n,r){return{v:n.parse(e.toSerializable(t))}}},serialize:void 0,deserialize(t,n,r){return e.fromSerializable(n.deserialize(t.v))}})}var Qa=class{constructor(e,t){this.stream=e,this.hint=t?.hint??`binary`}},$a=globalThis.Buffer,eo=!!$a&&typeof $a.from==`function`;function to(e){if(e.length===0)return``;if(eo)return $a.from(e).toString(`base64`);let t=32768,n=[];for(let r=0;r<e.length;r+=t){let i=e.subarray(r,r+t);n.push(String.fromCharCode.apply(null,i))}return btoa(n.join(``))}function no(e){if(e.length===0)return new Uint8Array;
12if(eo){let t=$a.from(e,`base64`);return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var ro=Object.create(null),io=Object.create(null),ao=e=>new ReadableStream({start(t){e.on({next(e){try{t.enqueue(no(e))}catch{}},throw(e){t.error(e)},return(){try{t.close()}catch{}}})}}),oo=new TextEncoder,so=e=>new ReadableStream({start(t){e.on({next(e){try{typeof e==`string`?t.enqueue(oo.encode(e)):t.enqueue(no(e.$b64))}catch{}},throw(e){t.error(e)},return(){try{t.close()}catch{}}})}}),co=`(s=>new ReadableStream({start(c){s.on({next(b){try{const d=atob(b),a=new Uint8Array(d.length);for(let i=0;i<d.length;i++)a[i]=d.charCodeAt(i);c.enqueue(a)}catch(_){}},throw(e){c.error(e)},return(){try{c.close()}catch(_){}}})}}))`,lo=`(s=>{const e=new TextEncoder();return new ReadableStream({start(c){s.on({next(v){try{if(typeof v==='string'){c.enqueue(e.encode(v))}else{const d=atob(v.$b64),a=new Uint8Array(d.length);for(let i=0;i<d.length;i++)a[i]=d.charCodeAt(i);c.enqueue(a)}}catch(_){}},throw(x){c.error(x)},return(){try{c.close()}catch(_){}}})}})})`;function uo(e){let t=si(),n=e.getReader();return(async()=>{try{for(;;){let{done:e,value:r}=await n.read();if(e){t.return(void 0);break}t.next(to(r))}}catch(e){t.throw(e)}finally{n.releaseLock()}})(),t}function fo(e){let t=si(),n=e.getReader(),r=new TextDecoder(`utf-8`,{fatal:!0});return(async()=>{try{for(;;){let{done:e,value:i}=await n.read();if(e){try{let e=r.decode();e.length>0&&t.next(e)}catch{}t.return(void 0);break}try{let e=r.decode(i,{stream:!0});e.length>0&&t.next(e)}catch{t.next({$b64:to(i)})}}}catch(e){t.throw(e)}finally{n.releaseLock()}})(),t}var po=qi({tag:`tss/RawStream`,extends:[qi({tag:`tss/RawStreamFactory`,test(e){return e===ro},parse:{sync(e,t,n){return{}},async async(e,t,n){return{}},stream(e,t,n){return{}}},serialize(e,t,n){return co},deserialize(e,t,n){return ro}}),qi({tag:`tss/RawStreamFactoryText`,test(e){return e===io},parse:{sync(e,t,n){return{}},async async(e,t,n){return{}},stream(e,t,n){return{}}},serialize(e,t,n){return lo},deserialize(e,t,n){return io}})],test(e){return e instanceof Qa},parse:{sync(e,t,n){let r=e.hint===`text`?io:ro;return{hint:t.parse(e.hint),factory:t.parse(r),stream:t.parse(si())}},async async(e,t,n){let r=e.hint===`text`?io:ro,i=e.hint===`text`?fo(e.stream):uo(e.stream);return{hint:await t.parse(e.hint),factory:await t.parse(r),stream:await t.parse(i)}},stream(e,t,n){let r=e.hint===`text`?io:ro,i=e.hint===`text`?fo(e.stream):uo(e.stream);return{hint:t.parse(e.hint),factory:t.parse(r),stream:t.parse(i)}}},serialize(e,t,n){return`(`+t.serialize(e.factory)+`)(`+t.serialize(e.stream)+`)`},deserialize(e,t,n){let r=t.deserialize(e.stream);return t.deserialize(e.hint)===`text`?so(r):ao(r)}});function mo(e){return qi({tag:`tss/RawStream`,test:()=>!1,parse:{},serialize(){throw Error(`RawStreamDeserializePlugin.serialize should not be called. Client only deserializes.`)},deserialize(t,n,r){return e(typeof n?.deserialize==`function`?n.deserialize(t.streamId):t.streamId)}})}var ho=qi({tag:`$TSR/Error`,test(e){return e instanceof Error},parse:{sync(e,t){return{message:t.parse(e.message)}},async async(e,t){return{message:await t.parse(e.message)}},stream(e,t){return{message:t.parse(e.message)}}},serialize(e,t){return`new Error(`+t.serialize(e.message)+`)`},deserialize(e,t){return Error(t.deserialize(e.message))}}),go={},_o=e=>new ReadableStream({start:t=>{e.on({next:e=>{try{t.enqueue(e)}catch{}},throw:e=>{t.error(e)},return:()=>{try{t.close()}catch{}}})}}),vo=qi({tag:`seroval-plugins/web/ReadableStreamFactory`,test(e){return e===go},parse:{sync(){return go},async async(){return await Promise.resolve(go)},stream(){return go}},serialize(){return _o.toString()},deserialize(){return go}});async function yo(e,t){try{let n=await t.read();n.done?(e.return(n.value),t.releaseLock()):(e.next(n.value),await yo(e,t))}catch(t){e.throw(t)}}function bo(e){e.cancel().catch(()=>{}),e.releaseLock()}function xo(e){let t=si(),n=e.getReader(),r=bo.bind(null,n);return yo(t,n).catch(r),[t,r]}var N=[ho,po,qi({tag:`seroval/plugins/web/ReadableStream`,extends:[vo],test(e){return typeof ReadableStream>`u`?!1:e instanceof ReadableStream},parse:{sync(e,t){return{factory:t.parse(go),stream:t.parse(si())}},async async(e,t){return{factory:await t.parse(go),stream:await t.parse(xo(e)[0])}},stream(e,t){let[n,r]=xo(e);return t.addCleanup(r),{factory:t.parse(go),stream:t.parse(n)}}},serialize(e,t){return`(`+t.serialize(e.factory)+`)(`+t.serialize(e.stream)+`)`},deserialize(e,t){return _o(t.deserialize(e.stream))}})];function So(){return[...(Le()?.serializationAdapters)?.map(Za)??[],...N]}var Co=new TextDecoder,wo=new Uint8Array,To=16777216,Eo=33554432,Do=1024,Oo=1e5;function ko(e){let t=new Map,n=new Map,r=new Set,i=!1,a=null,o=0,s,c=new ReadableStream({start(e){s=e},cancel(){i=!0;try{a?.cancel()}catch{}
12t.forEach(e=>{try{e.error(Error(`Framed response cancelled`))}catch{}}),t.clear(),n.clear(),r.clear()}});function l(e){let i=n.get(e);if(i)return i;if(r.has(e))return new ReadableStream({start(e){e.close()}});if(n.size>=Do)throw Error(`Too many raw streams in framed response (max ${Do})`);let a=new ReadableStream({start(n){t.set(e,n)},cancel(){r.add(e),t.delete(e),n.delete(e)}});return n.set(e,a),a}function u(e){return l(e),t.get(e)}return(async()=>{let n=e.getReader();a=n;let c=[],l=0;function d(){if(l<9)return null;let e=c[0];if(e.length>=9)return{type:e[0],streamId:(e[1]<<24|e[2]<<16|e[3]<<8|e[4])>>>0,length:(e[5]<<24|e[6]<<16|e[7]<<8|e[8])>>>0};let t=new Uint8Array(9),n=0,r=9;for(let e=0;e<c.length&&r>0;e++){let i=c[e],a=Math.min(i.length,r);t.set(i.subarray(0,a),n),n+=a,r-=a}return{type:t[0],streamId:(t[1]<<24|t[2]<<16|t[3]<<8|t[4])>>>0,length:(t[5]<<24|t[6]<<16|t[7]<<8|t[8])>>>0}}function f(e){if(e===0)return wo;let t=c[0];if(t&&t.length>=e){let n=t.subarray(0,e);return t.length===e?c.shift():c[0]=t.subarray(e),l-=e,n}let n=new Uint8Array(e),r=0,i=e;for(;i>0&&c.length>0;){let e=c[0];if(!e)break;let t=Math.min(e.length,i);n.set(e.subarray(0,t),r),r+=t,i-=t,t===e.length?c.shift():c[0]=e.subarray(t)}return l-=e,n}try{for(;;){let{done:e,value:a}=await n.read();if(i||e)break;if(a){if(l+a.length>Eo)throw Error(`Framed response buffer exceeded ${Eo} bytes`);for(c.push(a),l+=a.length;;){let e=d();if(!e)break;let{type:n,streamId:i,length:a}=e;if(n!==Ne.JSON&&n!==Ne.CHUNK&&n!==Ne.END&&n!==Ne.ERROR)throw Error(`Unknown frame type: ${n}`);if(n===Ne.JSON){if(i!==0)throw Error(`Invalid JSON frame streamId (expected 0)`)}else if(i===0)throw Error(`Invalid raw frame streamId (expected non-zero)`);if(a>To)throw Error(`Frame payload too large: ${a} bytes (max ${To})`);let c=9+a;if(l<c)break;if(++o>Oo)throw Error(`Too many frames in framed response (max ${Oo})`);f(9);let p=f(a);switch(n){case Ne.JSON:try{s.enqueue(Co.decode(p))}catch{}break;case Ne.CHUNK:{let e=u(i);e&&e.enqueue(p);break}case Ne.END:{let e=u(i);if(r.add(i),e){try{e.close()}catch{}t.delete(i)}break}case Ne.ERROR:{let e=u(i);if(r.add(i),e){let n=Co.decode(p);e.error(Error(n)),t.delete(i)}break}}}}}if(l!==0)throw Error(`Incomplete frame at end of framed response`);try{s.close()}catch{}t.forEach(e=>{try{e.close()}catch{}}),t.clear()}catch(e){try{s.error(e)}catch{}t.forEach(t=>{try{t.error(e)}catch{}}),t.clear()}finally{try{n.releaseLock()}catch{}a=null}})(),{getOrCreateStream:l,jsonChunks:c}}var Ao=null;async function jo(e){e.length>0&&await Promise.allSettled(e)}var Mo=Object.prototype.hasOwnProperty;function No(e){for(let t in e)if(Mo.call(e,t))return!0;return!1}async function Po(e,t,n){Ao||=So();let r=t[0],i=r.fetch??n,a=r.data instanceof FormData?`formData`:`payload`,o=r.headers?new Headers(r.headers):new Headers;if(o.set(`x-tsr-serverFn`,`true`),a===`payload`&&o.set(`accept`,`${Me}, application/x-ndjson, application/json`),r.method===`GET`){if(a===`formData`)throw Error(`FormData is not supported with GET requests`);let t=await Fo(r);if(t!==void 0){let n=Qe({payload:t});e.includes(`?`)?e+=`&${n}`:e+=`?${n}`}}let s;if(r.method===`POST`){let e=await Lo(r);e?.contentType&&o.set(`content-type`,e.contentType),s=e?.body}return await Ro(async()=>i(e,{method:r.method,headers:o,signal:r.signal,body:s}))}async function Fo(e){let t=!1,n={};if(e.data!==void 0&&(t=!0,n.data=e.data),e.context&&No(e.context)&&(t=!0,n.context=e.context),t)return Io(n)}async function Io(e){return JSON.stringify(await Promise.resolve(Ya(e,{plugins:Ao})))}async function Lo(e){if(e.data instanceof FormData){let t;return e.context&&No(e.context)&&(t=await Io(e.context)),t!==void 0&&e.data.set(Ae,t),{body:e.data}}let t=await Fo(e);if(t)return{body:t,contentType:`application/json`}}async function Ro(e){let t;try{t=await e()}catch(e){if(e instanceof Response)t=e;else throw console.log(e),e}if(t.headers.get(`x-tss-raw`)===`true`)return t;let n=t.headers.get(`content-type`);if(n||p(),t.headers.get(`x-tss-serialized`)){let e;if(n.includes(`application/x-tss-framed`)){if(Ie(n),!t.body)throw Error(`No response body for framed response`);
12let{getOrCreateStream:r,jsonChunks:i}=ko(t.body),a=[mo(r),...Ao||[]],o=new Map;e=await zo({jsonStream:i,onMessage:e=>Ja(e,{refs:o,plugins:a}),onError(e,t){console.error(e,t)}})}else if(n.includes(`application/json`)){let n=await t.json(),r=[];try{e=Ja(n,{plugins:Ao})}finally{}await jo(r)}if(e||p(),e instanceof Error)throw e;return e}if(n.includes(`application/json`)){let e=await t.json(),n=ct(e);if(n)throw n;if(Ce(e))throw e;return e}if(!t.ok)throw Error(await t.text());return t}async function zo({jsonStream:e,onMessage:t,onError:n}){let r=e.getReader(),{value:i,done:a}=await r.read();if(a||!i)throw Error(`Stream ended before first object`);let o=JSON.parse(i),s=!1,c=(async()=>{try{for(;;){let{value:e,done:i}=await r.read();if(i)break;if(e)try{let n=[];try{t(JSON.parse(e))}finally{}await jo(n)}catch(t){n?.(`Invalid JSON: ${e}`,t)}}}catch(e){s||n?.(`Stream processing error:`,e)}})(),l,u=[];try{l=t(o)}catch(e){throw s=!0,r.cancel().catch(()=>{}),e}return await jo(u),Promise.resolve(l).catch(()=>{s=!0,r.cancel().catch(()=>{})}),c.finally(()=>{try{r.releaseLock()}catch{}}),l}function Bo(e){let t=`/_serverFn/`+e;return Object.assign((...e)=>{let n=Le()?.serverFns?.fetch;return Po(t,e,n??fetch)},{url:t,serverFnMeta:{id:e},[je]:!0})}var Vo=Xa({key:`$TSS/serverfn`,test:e=>typeof e!=`function`||!(je in e)?!1:!!e[je],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>Bo(e)});function Ho(e){return e.replaceAll(`\0`,`/`).replaceAll(`�`,`/`)}function Uo(e,t){e.id=t.i,e.__beforeLoadContext=t.b,e.loaderData=t.l,e.status=t.s,e.ssr=t.ssr,e.updatedAt=t.u,e.error=t.e,t.g!==void 0&&(e.globalNotFound=t.g)}async function Wo(e){window.$_TSR||p();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||p();let n=window.$_TSR.router;n.matches.forEach(e=>{e.i=Ho(e.i)}),n.lastMatchId&&=Ho(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()),l=Promise.all(s.map(t=>e.loadRouteChunk(e.looseRoutesById[t.routeId])));function u(t){let n=e.looseRoutesById[t.routeId].options.pendingMinMs??e.options.defaultPendingMinMs;if(n){let r=c();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 d(t){let n=e.looseRoutesById[t.routeId];n&&(n.options.ssr=t.ssr)}let f;s.forEach(e=>{let t=n.matches.find(t=>t.i===e.id);if(!t){e._nonReactive.dehydrated=!1,e.ssr=!1,d(e);return}Uo(e,t),d(e),e._nonReactive.dehydrated=e.ssr!==!1,(e.ssr===`data-only`||e.ssr===!1)&&f===void 0&&(f=e.index,u(e))}),e.stores.setMatches(s);let m=e.stores.matches.get(),h=e.stores.location.get();await Promise.all(m.map(async t=>{try{let n=e.looseRoutesById[t.routeId],r=m[t.index-1]?.context??e.options.context;if(n.options.context){let i={deps:t.loaderDeps,params:t.params,context:r??{},location:h,navigate:t=>e.navigate({...t,_fromLocation:h}),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:m,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(Ce(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 g=s[s.length-1].id!==a;if(!s.some(e=>e.ssr===!1)&&!g)return s.forEach(e=>{e._nonReactive.dehydrated=void 0}),e.stores.resolvedLocation.set(e.stores.location.get()),l;let _=Promise.resolve().then(()=>e.load()).catch(e=>{console.error(`Error during router hydration:`,e)});if(g){let t=s[1];t||p(),u(t),t._displayPending=!0,t._nonReactive.displayPendingPromise=_,_.then(()=>{e.batch(()=>
12{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 l}var P=g(te(),1),F=de();function Go({promise:e}){if(ce)return ce(e);let t=sn(e);if(t[on].status===`pending`)throw t;if(t[on].status===`error`)throw t[on].error;return t[on].data}function Ko(e){let t=(0,F.jsx)(qo,{...e});return e.fallback?(0,F.jsx)(P.Suspense,{fallback:e.fallback,children:t}):t}function qo(e){let t=Go(e);return e.children(t)}function Jo(e){let t=e.errorComponent??Xo;return(0,F.jsx)(Yo,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?P.createElement(t,{error:n,reset:r}):e.children})}var Yo=class extends P.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 Xo({error:e}){let[t,n]=P.useState(!1);return(0,F.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,F.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,F.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,F.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,F.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,F.jsx)(`div`,{children:(0,F.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e.message?(0,F.jsx)(`code`,{children:e.message}):null})}):null]})}var Zo=P.createContext(void 0),Qo=P.createContext(void 0),$o=(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))($o||{});function es({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 ts(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 ns=[],rs=0,{link:is,unlink:as,propagate:os,checkDirty:ss,shallowPropagate:cs}=es({update(e){return e._update()},notify(e){ns[us++]=e,e.flags&=~$o.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=$o.Mutable|$o.Dirty,ms(e))}}),ls=0,us=0,ds,fs=0;function ps(e){try{++fs,e()}finally{--fs||hs()}}function ms(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=as(n,e)}function hs(){if(!(fs>0)){for(;ls<us;){let e=ns[ls];ns[ls++]=void 0,e.notify()}ls=0,us=0}}function gs(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?$o.None:$o.Mutable,get(){return ds!==void 0&&is(i,ds,rs),i._snapshot},subscribe(e){let t=ts(e),n={current:!1},r=_s(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=ds,o=t?.compare??Object.is;if(n)ds=i,++rs,i.depsTail=void 0;else if(e===void 0)return!1;
12n&&(i.flags=$o.Mutable|$o.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{ds=a,n&&(i.flags&=~$o.RecursedCheck),ms(i)}}};return n?(i.flags=$o.Mutable|$o.Dirty,i.get=function(){let e=i.flags;if(e&$o.Dirty||e&$o.Pending&&ss(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&cs(e)}}else e&$o.Pending&&(i.flags=e&~$o.Pending);return ds!==void 0&&is(i,ds,rs),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(os(e),cs(e),hs())}},i}function _s(e){let t=()=>{let t=ds;ds=n,++rs,n.depsTail=void 0,n.flags=$o.Watching|$o.RecursedCheck;try{return e()}finally{ds=t,n.flags&=~$o.RecursedCheck,ms(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:$o.Watching|$o.RecursedCheck,notify(){let e=this.flags;e&$o.Dirty||e&$o.Pending&&ss(this.deps,this)?t():this.flags=$o.Watching},stop(){this.flags=$o.None,this.depsTail=void 0,ms(this)}};return t(),n}var vs={get(){},subscribe(){return{unsubscribe(){}}}};function ys(e,t){let n=P.useRef();return r=>{let i=e?.select?e.select(r):r;return e?.structuralSharing??t.options.defaultStructuralSharing?n.current=l(n.current,i):i}}function bs(e){let t=_e(),n=P.useContext(e.from?Qo:Zo),r=e.from?t.stores.getRouteMatchStore(e.from):t.stores.matchStores.get(n),i=ys(e,t),a=ue(r??vs,e=>e?i(e):vs);if(a!==vs)return a;(e.shouldThrow??!0)&&p()}function xs(e){return bs({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Ss(e){let{select:t,...n}=e;return bs({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Cs(e){return bs({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 ws(e){return bs({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Ts(e){let t=_e();return P.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function Es(e){return bs({...e,select:t=>e.select?e.select(t.context):t.context})}var Ds=class extends mn{constructor(e){super(e),this.useMatch=e=>bs({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>Es({...e,from:this.id}),this.useSearch=e=>ws({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Cs({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Ss({...e,from:this.id}),this.useLoaderData=e=>xs({...e,from:this.id}),this.useNavigate=()=>Ts({from:this.fullPath}),this.Link=P.forwardRef((e,t)=>(0,F.jsx)(ie,{ref:t,from:this.fullPath,...e}))}};function Os(e){return new Ds(e)}function ks(){return e=>js(e)}var As=class extends hn{constructor(e){super(e),this.useMatch=e=>bs({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>Es({...e,from:this.id}),this.useSearch=e=>ws({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Cs({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Ss({...e,from:this.id}),this.useLoaderData=e=>xs({...e,from:this.id}),this.useNavigate=()=>Ts({from:this.fullPath}),this.Link=P.forwardRef((e,t)=>(0,F.jsx)(ie,{ref:t,from:this.fullPath,...e}))}};function js(e){return new As(e)}function Ms(e){return new Ns(e,{silent:!0}).createRoute}var Ns=class{constructor(e,t){this.path=e,this.createRoute=e=>{let t=Os(e);return t.isRoot=!1,t},this.silent=t?.silent}};function Ps(e,t){let n,r,i,a,o=()=>(n||=e().then(e=>{n=void 0,r=e[t??`default`]}).catch(e=>{if(i=e,ee(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(ce)ce(o());else throw o();return P.createElement(r,e)};return s.preload=o,s}function Fs(e){let t=_e(),n=`not-found-${ue(t.stores.location,e=>e.pathname)}-${ue(t.stores.status,e=>e)}`;return(0,F.jsx)(Jo,{getResetKey:()=>n,onCatch:(t,n)=>{if(Ce(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(Ce(t))return e.fallback?.(t);throw t},children:e.children})}function Is(){return(0,F.jsx)(`p`,{children:`Not Found`})}function Ls(e){return(0,F.jsx)(F.Fragment,{children:e.children})}function Rs(e,t,n){return t.options.notFoundComponent?(0,F.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,F.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,F.jsx)(Is,{})}var zs=(e,t)=>e.routeId===t.routeId&&e._displayPending===t._displayPending,Bs=(e,t)=>
12e[0]===t[0]&&e[1]===t[1],Vs=P.memo(function({matchId:e}){let t=_e(),n=t.stores.matchStores.get(e);n||p();let r=ue(t.stores.loadedAt,e=>e),i=ue(n,e=>e,zs);return(0,F.jsx)(Hs,{router:t,matchId:e,resetKey:r,matchState:P.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 Hs({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,F.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))?P.Suspense:Ls,f=s?Jo:Ls,p=l?Fs:Ls;return(0,F.jsxs)(i.isRoot?i.options.shellComponent??Ls:Ls,{children:[(0,F.jsx)(Zo.Provider,{value:t,children:(0,F.jsx)(d,{fallback:o,children:(0,F.jsx)(f,{getResetKey:()=>n,errorComponent:s||Xo,onCatch:(e,t)=>{if(Ce(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,F.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return P.createElement(l,e)},children:u||r._displayPending?(0,F.jsx)(oe,{fallback:o,children:(0,F.jsx)(Ws,{matchId:t})}):(0,F.jsx)(Ws,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(Us,{}),(e.options.scrollRestoration,null)]}):null]})}function Us(){let e=_e(),t=P.useRef();return se(()=>{let n=e.stores.resolvedLocation.get(),r=t.current;n&&(!r||r.href!==n.href)&&e.emit({type:`onRendered`,...Jt(e.stores.location.get(),r??n)}),t.current=n},[ue(e.stores.resolvedLocation,e=>e?.state.__TSR_key),e]),null}var Ws=P.memo(function({matchId:e}){let t=_e(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||p();let i=ue(r,e=>e),a=i.routeId,o=t.routesById[a],s=P.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]),l=P.useMemo(()=>{let e=o.options.component??t.options.defaultComponent;return e?(0,F.jsx)(e,{},s):(0,F.jsx)(Gs,{})},[s,o.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);if(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=c();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return Ce(i.error)||p(),Rs(t,o,i.error);if(i.status===`redirected`)throw st(i.error)||p(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return l}),Gs=P.memo(function(){let e=_e(),t=P.useContext(Zo),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=ue(a,e=>[e?.routeId,e?.globalNotFound??!1],Bs),i=ue(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,F.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||p(),Rs(e,a,void 0);if(!i)return null;let s=(0,F.jsx)(Vs,{matchId:i});return n===`__root__`?(0,F.jsx)(P.Suspense,{fallback:o,children:s}):s});function Ks(){let e=_e(),t=P.useRef({router:e,mounted:!1}),[n,r]=P.useState(!1),i=ue(e.stores.isLoading,e=>e),a=ue(e.stores.hasPending,e=>e),o=ne(i),s=i||n||a,c=ne(s),l=i||a,u=ne(l);return e.startTransition=e=>{r(!0),P.startTransition(()=>{e(),r(!1)})},P.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 y(e.latestLocation.publicHref)!==y(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),se(()=>{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]),se(()=>{o&&!i&&e.emit({type:`onLoad`,...Jt(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),se(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...Jt(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),se(()=>{if(c&&!s){let t=Jt(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),ps(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}function qs(){let e=_e(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,F.jsx)(t,{}):null,r=(0,F.jsxs)(typeof document<`u`&&e.ssr?Ls:P.Suspense,{fallback:n,children:[(0,F.jsx)(Ks,{}),(0,F.jsx)(Js,{})]});return e.options.InnerWrap?(0,F.jsx)(e.options.InnerWrap,{children:r}):r}function Js(){let e=_e(),t=ue(e.stores.firstId,e=>e),n=ue(e.stores.loadedAt,e=>e),r=t?(0,F.jsx)(Vs,{matchId:t}):null;return(0,F.jsx)(Zo.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,F.jsx)(Jo,{getResetKey:()=>n,errorComponent:Xo,onCatch:void 0,children:r})})}var Ys=e=>({createMutableStore:gs,createReadonlyStore:gs,batch:ps}),Xs=e=>new Zs(e),Zs=class extends Yt{constructor(e){super(e,Ys)}};function Qs({router:e,children:t,...n}
12){s(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,F.jsx)(ae.Provider,{value:e,children:t});return e.options.Wrap?(0,F.jsx)(e.options.Wrap,{children:r}):r}function $s({router:e,...t}){return(0,F.jsx)(Qs,{router:e,...t,children:(0,F.jsx)(qs,{})})}function ec(e){let t=_e({warn:e?.router===void 0}),n=e?.router||t;return ue(n.stores.__store,ys(e,n))}function tc(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 nc(e){let{attrs:t,children:n,nonce:r,preventScriptHoist:i}=e;switch(e.tag){case`title`:return(0,F.jsx)(`title`,{...t,suppressHydrationWarning:!0,children:n});case`meta`:return(0,F.jsx)(`meta`,{...t,suppressHydrationWarning:!0});case`link`:return(0,F.jsx)(`link`,{...t,precedence:t?.precedence??(t?.rel===`stylesheet`?`default`:void 0),nonce:r,suppressHydrationWarning:!0});case`style`:return e.inlineCss,(0,F.jsx)(`style`,{...t,dangerouslySetInnerHTML:{__html:n},nonce:r});case`script`:return(0,F.jsx)(rc,{attrs:t,preventScriptHoist:i,children:n});default:return null}}function rc({attrs:e,children:t,preventScriptHoist:n}){_e();let r=O(),i=typeof e?.type==`string`&&e.type!==``&&e.type!==`text/javascript`&&e.type!==`module`;if(P.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 tc(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,tc(i,e),document.head.appendChild(i),()=>i.remove()}}},[e,t,i]),i&&typeof t==`string`)return(0,F.jsx)(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!r){if(e?.src)return(0,F.jsx)(`script`,{...e,suppressHydrationWarning:!0});if(typeof t==`string`)return(0,F.jsx)(`script`,{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var ic=e=>{let n=_e(),r=n.options.ssr?.nonce,i=ue(n.stores.matches,e=>e.map(e=>e.meta).filter(e=>e!==void 0),_),a=P.useMemo(()=>{let e=[],n={},a;for(let o=i.length-1;o>=0;o--){let s=i[o];for(let i=s.length-1;i>=0;i--){let o=s[i];if(o)if(o.title)a||={tag:`title`,children:o.title};else if(`script:ld+json`in o)try{let n=JSON.stringify(o[`script:ld+json`]);e.push({tag:`script`,attrs:{type:`application/ld+json`},children:t(n)})}catch{}else{let t=o.name??o.property;if(t){if(n[t])continue;n[t]=!0}e.push({tag:`meta`,attrs:{...o,nonce:r}})}}}return a&&e.push(a),r&&e.push({tag:`meta`,attrs:{property:`csp-nonce`,content:r}}),e.reverse(),e},[i,r]),o=ue(n.stores.matches,e=>e.flatMap(e=>e.links??[]).filter(e=>e!==void 0).map(e=>({tag:`link`,attrs:{...e,nonce:r}})),_),s=ue(n.stores.matches,t=>{let i=n.ssr?.manifest,a=[];return i?(t.forEach(t=>{i.routes[t.routeId]?.css?.forEach(t=>{let n=pn(t);a.push({tag:`link`,attrs:{rel:`stylesheet`,...n,crossOrigin:cn(e,`stylesheet`)??n.crossOrigin,suppressHydrationWarning:!0,nonce:r}})})}),i.inlineStyle&&a.push({tag:`style`,attrs:{...i.inlineStyle.attrs,nonce:r},children:i.inlineStyle.children,inlineCss:!0}),a):a},_),c=ue(n.stores.matches,t=>{let i=[],a=n.ssr?.manifest;return a&&t.forEach(t=>{a.routes[t.routeId]?.preloads?.forEach(t=>{i.push({tag:`link`,attrs:{...un(a,t,e),nonce:r}})})}),i},_),l=ue(n.stores.matches,e=>e.flatMap(e=>e.styles??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`style`,attrs:{...t,nonce:r},children:e})),_),u=ue(n.stores.matches,e=>e.flatMap(e=>e.headScripts??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`script`,attrs:{...t,nonce:r},children:e})),_),d=[];return fn(d,a),d.push(...c),fn(d,o),d.push(...s),fn(d,l),fn(d,u),d};function ac(e){let t=ic(e.assetCrossOrigin),n=_e().options.ssr?.nonce;return(0,F.jsx)(F.Fragment,{children:t.map(e=>(0,P.createElement)(nc,{...e,key:`tsr-meta-${JSON.stringify(e)}`,nonce:n}))})}var oc=()=>{let e=_e(),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=>
12e.scripts).flat(1).filter(Boolean).map(({children:e,...n})=>({tag:`script`,attrs:{...n,suppressHydrationWarning:!0,nonce:t},children:e})),i=ue(e.stores.matches,n,_);return sc(e,ue(e.stores.matches,r,_),i)};function sc(e,t,n){let r=[...t,...n];return(0,F.jsx)(F.Fragment,{children:r.map((e,t)=>(0,P.createElement)(nc,{...e,key:`tsr-scripts-${e.tag}-${t}`}))})}var cc=(e,t)=>{let n={type:`request`,...t||e},r=e=>cc({},Object.assign(n,{validator:e,inputValidator:e}));return{options:n,middleware:e=>cc({},Object.assign(n,{middleware:e})),validator:r,inputValidator:r,client:e=>cc({},Object.assign(n,{client:e})),server:e=>cc({},Object.assign(n,{server:e}))}};function lc(e,t){for(let n=0,r=t.length;n<r;n++){let r=t[n];e.has(r)||(e.add(r),r.extends&&lc(e,r.extends))}}var uc=e=>({getOptions:async()=>{let t=await e();if(t.serializationAdapters){let e=new Set;lc(e,t.serializationAdapters),t.serializationAdapters=Array.from(e)}return t},createMiddleware:cc}),dc=cc(),fc=void 0,pc=uc(()=>({requestMiddleware:[dc,fc]})),mc=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(){}},hc=new class extends mc{#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`}},gc={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},_c=new class{#e=gc;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 vc(e){setTimeout(e,0)}var yc=typeof window>`u`||`Deno`in globalThis;function bc(){}function xc(e,t){return typeof e==`function`?e(t):e}function Sc(e){return typeof e==`number`&&e>=0&&e!==1/0}function Cc(e,t){return Math.max(e+(t||0)-Date.now(),0)}function wc(e,t){return typeof e==`function`?e(t):e}function Tc(e,t){return typeof e==`function`?e(t):e}function Ec(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==Oc(o,t.options))return!1}else if(!Ac(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 Dc(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(kc(t.options.mutationKey)!==kc(a))return!1}else if(!Ac(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Oc(e,t){return(t?.queryKeyHashFn||kc)(e)}function kc(e){return JSON.stringify(e,(e,t)=>Pc(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function Ac(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){for(let n=0;n<t.length;n++)if(!Ac(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!Ac(e[r],t[r]))return!1;return!0}return!1}var jc=Object.prototype.hasOwnProperty;function Mc(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=Nc(e)&&Nc(t);if(!r&&!(Pc(e)&&Pc(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:jc.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=Mc(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function Nc(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Pc(e){if(!Fc(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Fc(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Fc(e){return Object.prototype.toString.call(e)===`[object Object]`}function Ic(e){return new Promise(t=>{_c.setTimeout(t,e)})}function Lc(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:Mc(e,t)}function Rc(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function zc(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Bc=Symbol();function Vc(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===Bc?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Hc(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 Uc=(()=>{let e=()=>yc;return{isServer(){return e()},setIsServer(t){e=t}}})();function Wc(){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 Gc=vc;function Kc(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=Gc,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>
12{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 I=Kc(),qc=new class extends mc{#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 Jc(e){return Math.min(1e3*2**e,3e4)}function Yc(e){return(e??`online`)!==`online`||qc.isOnline()}var Xc=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function Zc(e){let t=!1,n=0,r,i=Wc(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new Xc(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>hc.isFocused()&&(e.networkMode===`always`||qc.isOnline())&&e.canRun(),u=()=>Yc(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??(Uc.isServer()?0:3),o=e.retryDelay??Jc,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),Ic(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 Qc=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Sc(this.gcTime)&&(this.#e=_c.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Uc.isServer()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(_c.clearTimeout(this.#e),this.#e=void 0)}};function $c(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=>{Hc(e,()=>t.signal,()=>n=!0)},u=Vc(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=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?zc:Rc;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?tl:el,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:el(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.fetchFn=t.options.persister?()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function el(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 tl(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var nl=class extends Qc{#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=al(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=al(this.options);e.data!==void 0&&(this.setState(il(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Lc(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;return this.#a?.cancel(e),t?t.then(bc).catch(bc):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=>Tc(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Bc||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdate
12Count>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>wc(e.options.staleTime,this)===`static`)}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:!Cc(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=Vc(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`?$c(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=Zc({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Xc&&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 Xc){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,...rl(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...il(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;return{...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),I.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function rl(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Yc(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function il(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function al(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,errorUpdate
12Count:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var ol=class extends Qc{#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||sl(),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=Zc({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,isPaused:!1,status:`error`}}};this.state=t(this.state),I.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function sl(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var cl=class extends mc{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 ol({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=ll(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=ll(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=ll(e);
12if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=ll(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){I.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=>Dc(t,e))}findAll(e={}){return this.getAll().filter(t=>Dc(e,t))}notify(e){I.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return I.batch(()=>Promise.all(e.map(e=>e.continue().catch(bc))))}};function ll(e){return e.options.scope?.id}var ul=class extends mc{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??Oc(r,t),a=this.get(i);return a||(a=new nl({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(){I.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=>Ec(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>Ec(e,t)):t}notify(e){I.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){I.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){I.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},dl=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new ul,this.#t=e.mutationCache||new cl,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=hc.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=qc.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(wc(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=xc(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return I.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;I.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return I.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=I.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(bc).catch(bc)}invalidateQueries(e,t={}){return I.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=I.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(bc)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(bc)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(wc(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(bc).catch(bc)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(bc).catch(bc)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return qc.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(kc(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{Ac(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(kc(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{Ac(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||=Oc(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===Bc&&(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()}},fl=P.createContext(void 0),pl=({client:e,children:t})=>(P.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,F.jsx)(fl.Provider,{value:e,children:t})),ml=`/assets/styles-C-XNg6IX.css`;function hl(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),r=e instanceof Error?e.stack:void 0;window.__lovableReportRuntimeError?.({message:n,...r!==void 0&&{stack:r},filename:window.location.pathname})}var gl=pe(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),_l=pe(`mail`,[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`,key:`132q7q`}
vendor: 4,205 bytes, line 12
12],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}]]),vl=pe(`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`}]]),yl=pe(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),bl=pe(`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`}]]),xl=pe(`printer`,[[`path`,{d:`M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2`,key:`143wyd`}],[`path`,{d:`M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6`,key:`1itne7`}],[`rect`,{x:`6`,y:`14`,width:`12`,height:`8`,rx:`1`,key:`1ue0tg`}]]),Sl=pe(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Cl=`/assets/threemarketers_250x52-DSPTCW1M.png`;function wl(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=wl(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Tl(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=wl(e))&&(r&&(r+=` `),r+=t);return r}var El=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},Dl=(e,t)=>({classGroupId:e,validator:t}),Ol=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),kl=`-`,Al=[],jl=`arbitrary..`,Ml=e=>{let t=Fl(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return Pl(e);let n=e.split(kl);return Nl(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?El(i,t):t:i||Al}return n[e]||Al}}},Nl=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Nl(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(kl):e.slice(t).join(kl),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},Pl=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?jl+r:void 0})(),Fl=e=>{let{theme:t,classGroups:n}=e;return Il(n,t)},Il=(e,t)=>{let n=Ol();for(let r in e){let i=e[r];Ll(i,n,r,t)}return n},Ll=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Rl(i,t,n,r)}},Rl=(e,t,n,r)=>{if(typeof e==`string`){zl(e,t,n);return}if(typeof e==`function`){Bl(e,t,n,r);return}Vl(e,t,n,r)},zl=(e,t,n)=>{let r=e===``?t:Hl(t,e);r.classGroupId=n},Bl=(e,t,n,r)=>{if(Ul(e)){Ll(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Dl(n,e))},Vl=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];Ll(o,Hl(t,a),n,r)}},Hl=(e,t)=>{let n=e,r=t.split(kl),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=Ol(),n.nextPart.set(t,i)),n=i}return n},Ul=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Wl=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},Gl=`!`,Kl=`:`,ql=[],Jl=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),L=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Kl){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(Gl)?(c=s.slice(0,-1),l=!0):s.startsWith(Gl)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return Jl(t,l,c,u)};if(t){let e=t+Kl,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):Jl(ql,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Yl=e=>{let t=new Map;
vendor: 11,966 bytes, line 12
12return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},R=e=>({cache:Wl(e.cacheSize),parseClassName:L(e),sortModifiers:Yl(e),postfixLookupClassGroupIds:z(e),...Ml(e)}),z=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},Xl=/\s+/,Zl=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(Xl),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+Gl:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},Ql=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=$l(n))&&(i&&(i+=` `),i+=r);return i},$l=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=$l(e[r]))&&(n&&(n+=` `),n+=t);return n},eu=(e,...t)=>{let n,r,i,a,o=o=>(n=R(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=Zl(e,n);return i(e,a),a};return a=o,(...e)=>a(Ql(...e))},tu=[],B=e=>{let t=t=>t[e]||tu;return t.isThemeGetter=!0,t},nu=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ru=/^\((?:(\w[\w-]*):)?(.+)\)$/i,iu=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,au=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ou=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,su=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,cu=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,lu=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,uu=e=>iu.test(e),V=e=>!!e&&!Number.isNaN(Number(e)),du=e=>!!e&&Number.isInteger(Number(e)),fu=e=>e.endsWith(`%`)&&V(e.slice(0,-1)),pu=e=>au.test(e),mu=()=>!0,hu=e=>ou.test(e)&&!su.test(e),gu=()=>!1,_u=e=>cu.test(e),vu=e=>lu.test(e),yu=e=>!H(e)&&!U(e),bu=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),xu=e=>Iu(e,Bu,gu),H=e=>nu.test(e),Su=e=>Iu(e,Vu,hu),Cu=e=>Iu(e,Hu,V),wu=e=>Iu(e,Wu,mu),Tu=e=>Iu(e,Uu,gu),Eu=e=>Iu(e,Ru,gu),Du=e=>Iu(e,zu,vu),Ou=e=>Iu(e,Gu,_u),U=e=>ru.test(e),ku=e=>Lu(e,Vu),Au=e=>Lu(e,Uu),ju=e=>Lu(e,Ru),Mu=e=>Lu(e,Bu),Nu=e=>Lu(e,zu),Pu=e=>Lu(e,Gu,!0),Fu=e=>Lu(e,Wu,!0),Iu=(e,t,n)=>{let r=nu.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Lu=(e,t,n=!1)=>{let r=ru.exec(e);return r?r[1]?t(r[1]):n:!1},Ru=e=>e===`position`||e===`percentage`,zu=e=>e===`image`||e===`url`,Bu=e=>e===`length`||e===`size`||e===`bg-size`,Vu=e=>e===`length`,Hu=e=>e===`number`,Uu=e=>e===`family-name`,Wu=e=>e===`number`||e===`weight`,Gu=e=>e===`shadow`,Ku=eu(()=>{let e=B(`color`),t=B(`font`),n=B(`text`),r=B(`font-weight`),i=B(`tracking`),a=B(`leading`),o=B(`breakpoint`),s=B(`container`),c=B(`spacing`),l=B(`radius`),u=B(`shadow`),d=B(`inset-shadow`),f=B(`text-shadow`),p=B(`drop-shadow`),m=B(`blur`),h=B(`perspective`),g=B(`aspect`),_=B(`ease`),v=B(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),U,H],ee=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],te=()=>[`auto`,`contain`,`none`],S=()=>[U,H,c],C=()=>[uu,`full`,`auto`,...S()],ne=()=>[du,`none`,`subgrid`,U,H],w=()=>[`auto`,{span:[`full`,du,U,H]},du,U,H],re=()=>[du,`auto`,U,H],ie=()=>[`auto`,`min`,`max`,`fr`,U,H],ae=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],oe=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],se=()=>[`auto`,...S()],ce=()=>[uu,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...S()],le=()=>[uu,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...S()],E=()=>[uu,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...S()],D=()=>[e,U,H],ue=()=>[...b(),ju,Eu,{position:[U,H]}],de=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],fe=()=>[`auto`,`cover`,`contain`,Mu,xu,{size:[U,H]}],pe=()=>[fu,ku,Su],O=()=>[``,`none`,`full`,l,U,H],k=()=>[``,V,ku,Su],me=()=>[`solid`,`dashed`,`dotted`,`double`],he=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],ge=()=>[V,fu,ju,Eu],_e=()=>[``,`none`,m,U,H],ve=()=>[`none`,V,U,H],ye=()=>[`none`,V,U,H],be=()=>[V,U,H],xe=()=>[uu,`full`,...S()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[pu],breakpoint:[pu],color:[mu],container:[pu],"drop-shadow":[pu],ease:[`in`,`out`,`in-out`],font:[yu],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[pu],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[pu],shadow:[pu],spacing:[`px`,V],text:[pu],"text-shadow":[pu],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,uu,H,U,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,U,H]}],"container-named":[bu],columns:[{columns:[V,H,U,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:ee()}],"overflow-x":[{"overflow-x":ee()}],"overflow-y":[{"overflow-y":ee()}],overscroll:[{overscroll:te()}],"overscroll-x":[{"overscroll-x":te()}],"overscroll-y":[{"overscroll-y":te()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{"inset-s":C(),start:C()}],end:[{"inset-e":C(),end:C()}],"inset-bs":[{"inset-bs":C()}],"inset-be":[{"inset-be":C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[du,`auto`,U,H]}],basis:[{basis:[uu,`full`,`auto`,s,...S()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[V,uu,`auto`,`initial`,`none`,H]}],grow:[{grow:[``,V,U,H]}],shrink:[{shrink:[``,V,U,H]}],order:[{order:[du,`first`,`last`,`none`,U,H]}],"grid-cols":[{"grid-cols":ne()}],"col-start-end":[{col:w()}],"col-start":[{"col-start":re()}],"col-end":[{"col-end":re()}],"grid-rows":[{"grid-rows":ne()}],"row-start-end":[{row:w()}],"row-start":[{"row-start":re()}],"row-end":[{"row-end":re()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":ie()}],"auto-rows":[{"auto-rows":ie()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...ae(),`normal`]}],"justify-items":[{"justify-items":[...oe(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...oe()]}],"align-content":[{content:[`normal`,...ae()]}],"align-items":[{items:[...oe(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...oe(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":ae()}],"place-items":[{"place-items":[...oe(),`baseline`]}],"place-self":[{"place-self":[`auto`,...oe()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:se()}],mx:[{mx:se()}],my:[{my:se()}],ms:[{ms:se()}],me:[{me:se()}],mbs:[{mbs:se()}],mbe:[{mbe:se()}],mt:[{mt:se()}],mr:[{mr:se()}],mb:[{mb:se()}],ml:[{ml:se()}],"space-x":[{"space-x":S()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":S()}],"space-y-reverse":[`space-y-reverse`],size:[{size:ce()}],"inline-size":[{inline:[`auto`,...le()]}],"min-inline-size":[{"min-inline":[`auto`,...le()]}],"max-inline-size":[{"max-inline":[`none`,...le()]}],"block-size":[{block:[`auto`,...E()]}],"min-block-size":[{"min-block":[`auto`,...E()]}],"max-block-size":[{"max-block":[`none`,...E()]}],w:[{w:[s,`screen`,...ce()]}],"min-w":[{"min-w":[s,`screen`,`none`,...ce()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...ce()]}],h:[{h:[`screen`,`lh`,...ce()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...ce()]}],"max-h":[{"max-h":[`screen`,`lh`,...ce()]}],"font-size":[{text:[`base`,n,ku,Su]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Fu,wu]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,fu,H]}],"font-family":[{font:[Au,Tu,t]}],"font-features":[{"font-features":[H]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,U,H]}],"line-clamp":[{"line-clamp":[V,`none`,U,Cu]}],leading:[{leading:[a,...S()]}],"list-image":[{"list-image":[`none`,U,H]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,U,H]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...me(),`wavy`]}],"text-decoration-thickness":[{decoration:[V,`from-font`,`auto`,U,Su]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[V,`auto`,U,H]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:S()}],"tab-size":[{tab:[du,U,H]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,U,H]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,U,H]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:ue()}],"bg-repeat":[{bg:de()}],"bg-size":[{bg:fe()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},du,U,H],radial:[``,U,H],conic:[du,U,H]},Nu,Du]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:pe()}
12],"gradient-via-pos":[{via:pe()}],"gradient-to-pos":[{to:pe()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:O()}],"rounded-s":[{"rounded-s":O()}],"rounded-e":[{"rounded-e":O()}],"rounded-t":[{"rounded-t":O()}],"rounded-r":[{"rounded-r":O()}],"rounded-b":[{"rounded-b":O()}],"rounded-l":[{"rounded-l":O()}],"rounded-ss":[{"rounded-ss":O()}],"rounded-se":[{"rounded-se":O()}],"rounded-ee":[{"rounded-ee":O()}],"rounded-es":[{"rounded-es":O()}],"rounded-tl":[{"rounded-tl":O()}],"rounded-tr":[{"rounded-tr":O()}],"rounded-br":[{"rounded-br":O()}],"rounded-bl":[{"rounded-bl":O()}],"border-w":[{border:k()}],"border-w-x":[{"border-x":k()}],"border-w-y":[{"border-y":k()}],"border-w-s":[{"border-s":k()}],"border-w-e":[{"border-e":k()}],"border-w-bs":[{"border-bs":k()}],"border-w-be":[{"border-be":k()}],"border-w-t":[{"border-t":k()}],"border-w-r":[{"border-r":k()}],"border-w-b":[{"border-b":k()}],"border-w-l":[{"border-l":k()}],"divide-x":[{"divide-x":k()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":k()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...me(),`hidden`,`none`]}],"divide-style":[{divide:[...me(),`hidden`,`none`]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-bs":[{"border-bs":D()}],"border-color-be":[{"border-be":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}
vendor: 7,516 bytes, line 12
12],"divide-color":[{divide:D()}],"outline-style":[{outline:[...me(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[V,U,H]}],"outline-w":[{outline:[``,V,ku,Su]}],"outline-color":[{outline:D()}],shadow:[{shadow:[``,`none`,u,Pu,Ou]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":[`none`,d,Pu,Ou]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:k()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[V,Su]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":k()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":[`none`,f,Pu,Ou]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[V,U,H]}],"mix-blend":[{"mix-blend":[...he(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[V]}],"mask-image-linear-from-pos":[{"mask-linear-from":ge()}],"mask-image-linear-to-pos":[{"mask-linear-to":ge()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":ge()}],"mask-image-t-to-pos":[{"mask-t-to":ge()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":ge()}],"mask-image-r-to-pos":[{"mask-r-to":ge()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":ge()}],"mask-image-b-to-pos":[{"mask-b-to":ge()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":ge()}],"mask-image-l-to-pos":[{"mask-l-to":ge()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":ge()}],"mask-image-x-to-pos":[{"mask-x-to":ge()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":ge()}],"mask-image-y-to-pos":[{"mask-y-to":ge()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[U,H]}],"mask-image-radial-from-pos":[{"mask-radial-from":ge()}],"mask-image-radial-to-pos":[{"mask-radial-to":ge()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[V]}],"mask-image-conic-from-pos":[{"mask-conic-from":ge()}],"mask-image-conic-to-pos":[{"mask-conic-to":ge()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:ue()}],"mask-repeat":[{mask:de()}],"mask-size":[{mask:fe()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,U,H]}],filter:[{filter:[``,`none`,U,H]}],blur:[{blur:_e()}],brightness:[{brightness:[V,U,H]}],contrast:[{contrast:[V,U,H]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Pu,Ou]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:[``,V,U,H]}],"hue-rotate":[{"hue-rotate":[V,U,H]}],invert:[{invert:[``,V,U,H]}],saturate:[{saturate:[V,U,H]}],sepia:[{sepia:[``,V,U,H]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,U,H]}],"backdrop-blur":[{"backdrop-blur":_e()}],"backdrop-brightness":[{"backdrop-brightness":[V,U,H]}],"backdrop-contrast":[{"backdrop-contrast":[V,U,H]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,V,U,H]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[V,U,H]}],"backdrop-invert":[{"backdrop-invert":[``,V,U,H]}],"backdrop-opacity":[{"backdrop-opacity":[V,U,H]}],"backdrop-saturate":[{"backdrop-saturate":[V,U,H]}],"backdrop-sepia":[{"backdrop-sepia":[``,V,U,H]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,U,H]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[V,`initial`,U,H]}],ease:[{ease:[`linear`,`initial`,_,U,H]}],delay:[{delay:[V,U,H]}],animate:[{animate:[`none`,v,U,H]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,U,H]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:ve()}],"rotate-x":[{"rotate-x":ve()}],"rotate-y":[{"rotate-y":ve()}],"rotate-z":[{"rotate-z":ve()}],scale:[{scale:ye()}],"scale-x":[{"scale-x":ye()}],"scale-y":[{"scale-y":ye()}],"scale-z":[{"scale-z":ye()}],"scale-3d":[`scale-3d`],skew:[{skew:be()}],"skew-x":[{"skew-x":be()}],"skew-y":[{"skew-y":be()}],transform:[{transform:[U,H,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:xe()}],"translate-x":[{"translate-x":xe()}],"translate-y":[{"translate-y":xe()}],"translate-z":[{"translate-z":xe()}],"translate-none":[`translate-none`],zoom:[{zoom:[du,U,H]}],accent:[{accent:D()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:D()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,U,H]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":D()}],"scrollbar-track-color":[{"scrollbar-track":D()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}
12],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,U,H]}],fill:[{fill:[`none`,...D()]}],"stroke-w":[{stroke:[V,ku,Su,Cu]}],stroke:[{stroke:[`none`,...D()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function qu(...e){return Ku(Tl(e))}function Ju(e){let t=ec({select:e=>e.location.pathname});(0,P.useEffect)(()=>{e()},[t])}function Yu(){let[e,t]=(0,P.useState)(!1),[n,r]=(0,P.useState)(!1),i=(0,P.useRef)(null);return Ju(()=>{t(!1),r(!1)}),(0,P.useEffect)(()=>{if(!n)return;let e=e=>{i.current?.contains(e.target)||r(!1)},t=e=>{e.key===`Escape`&&r(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[n]),(0,F.jsxs)(`header`,{className:`sticky top-0 z-50 border-b border-border/70 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/85`,children:[(0,F.jsx)(`div`,{className:`hidden border-b border-border/60 bg-ink text-ink-foreground lg:block`,children:(0,F.jsxs)(`div`,{className:`container-page flex h-9 items-center justify-between text-xs`,children:[(0,F.jsx)(`p`,{children:`Calgary online marketing since 2003`}),(0,F.jsx)(`p`,{children:`Google Partner · Microsoft Certified`})]})}),(0,F.jsxs)(`div`,{className:`container-page flex h-[4.5rem] items-center justify-between gap-4`,children:[(0,F.jsx)(ie,{to:`/`,className:`flex items-center gap-3`,"aria-label":`${w.name} home`,children:(0,F.jsx)(`img`,{src:Cl,alt:`${w.name} logo`,width:250,height:52,className:`h-9 w-auto sm:h-10`})}),(0,F.jsxs)(`nav`,{"aria-label":`Main`,className:`hidden items-center gap-1 lg:flex`,children:[(0,F.jsxs)(`div`,{className:`relative`,ref:i,children:[(0,F.jsxs)(`button`,{type:`button`,"aria-expanded":n,"aria-haspopup":`true`,onClick:()=>r(e=>!e),className:`flex items-center gap-1 rounded-md px-3 py-2 text-sm font-semibold text-foreground transition-colors hover:text-accent`,children:[`Services`,(0,F.jsx)(gl,{className:qu(`size-4 transition-transform`,n&&`rotate-180`),"aria-hidden":`true`})]}),n&&(0,F.jsx)(`div`,{className:`absolute left-0 top-full z-50 mt-2 w-[30rem] rounded-xl border border-border bg-popover p-2 shadow-lift`,children:(0,F.jsx)(`ul`,{className:`grid gap-1`,children:le.map(e=>(0,F.jsx)(`li`,{children:(0,F.jsxs)(he,{to:e.to,className:`block rounded-lg px-3 py-2 transition-colors hover:bg-secondary`,children:[(0,F.jsx)(`span`,{className:`block text-sm font-semibold text-foreground`,children:e.label}),e.description&&(0,F.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:e.description})]})},e.to))})})]}),ge.map(e=>(0,F.jsx)(he,{to:e.to,activeClassName:`text-accent`,className:`rounded-md px-3 py-2 text-sm font-semibold text-foreground transition-colors hover:text-accent`,children:e.label},e.to))]}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(ie,{to:`/contact`,className:`hidden rounded-md bg-accent px-4 py-2.5 text-sm font-bold text-accent-foreground shadow-card transition-colors hover:bg-accent/90 sm:inline-flex`,children:`Get a Free Estimate`}),(0,F.jsx)(`button`,{type:`button`,onClick:()=>t(e=>!e),"aria-expanded":e,"aria-controls":`mobile-menu`,"aria-label":e?`Close menu`:`Open menu`,className:`inline-flex size-10 items-center justify-center rounded-md border border-border text-foreground lg:hidden`,children:e?(0,F.jsx)(Sl,{className:`size-5`,"aria-hidden":`true`}):(0,F.jsx)(yl,{className:`size-5`,"aria-hidden":`true`})})]})]}),e&&(0,F.jsx)(`div`,{id:`mobile-menu`,className:`border-t border-border bg-background lg:hidden`,children:(0,F.jsxs)(`nav`,{"aria-label":`Mobile`,className:`container-page max-h-[75vh] overflow-y-auto py-4`,children:[(0,F.jsx)(`p`,{className:`eyebrow mb-2`,children:`Services`}),(0,F.jsx)(`ul`,{className:`mb-4 grid gap-0.5`,children:le.map(e=>(0,F.jsx)(`li`,{children:(0,F.jsx)(he,{to:e.to,className:`block rounded-md px-2 py-2 text-sm font-semibold text-foreground hover:bg-secondary`,children:e.label})},e.to))}),(0,F.jsx)(`p`,{className:`eyebrow mb-2`,children:`Company`}),(0,F.jsx)(`ul`,{className:`grid gap-0.5`,children:ge.map(e=>(0,F.jsx)(`li`,{children:(0,F.jsx)(he,{to:e.to,className:`block rounded-md px-2 py-2 text-sm font-semibold text-foreground hover:bg-secondary`,children:e.label})},e.to))}),(0,F.jsx)(`div`,{className:`mt-4 grid gap-2 pb-2`,children:(0,F.jsx)(ie,{to:`/contact`,className:`inline-flex items-center justify-center rounded-md bg-accent px-4 py-3 text-sm font-bold text-accent-foreground`,children:`Get a Free Estimate`})})]})})]})}var Xu={version:1,asset_id:`d83220eb-2388-4dd9-8b5f-62d7a2ae3946`,project_id:`52ea82cb-7c93-49c8-8324-5207a02bb5b0`,url:`/__l5e/assets-v1/d83220eb-2388-4dd9-8b5f-62d7a2ae3946/threemarketers-footer.png`,r2_key:`a/v1/52ea82cb-7c93-49c8-8324-5207a02bb5b0/d83220eb-2388-4dd9-8b5f-62d7a2ae3946/threemarketers-footer.png`,original_filename:`threemarketers-footer.png`,size:18430,content_type:`image/png`,created_at:`2026-09-14T17:37:57Z`},Zu={version:1,asset_id:`33d68dfb-fbdb-4b33-a9b8-aadefd469f42`,project_id:`52ea82cb-7c93-49c8-8324-5207a02bb5b0`,url:`/__l5e/assets-v1/33d68dfb-fbdb-4b33-a9b8-aadefd469f42/google-partner-badge.svg`,r2_key:`a/v1/52ea82cb-7c93-49c8-8324-5207a02bb5b0/33d68dfb-fbdb-4b33-a9b8-aadefd469f42/google-partner-badge.svg`,original_filename:`google-partner-badge.svg`,size:10397,content_type:`image/svg+xml`,created_at:`2026-09-03T23:05:53Z`},Qu=`/assets/microsoft-certification-badge-CM5yOvHd.png`;function $u(){let e=new Date().getFullYear();return(0,F.jsxs)(`footer`,{className:`mt-auto border-t border-border bg-ink text-ink-foreground`,children:[(0,F.jsxs)(`div`,{className:`container-page grid gap-10 py-14 md:grid-cols-2 lg:grid-cols-4`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`img`,{src:Xu.url,alt:`${w.name} logo`,width:250,height:52,loading:`lazy`,className:`h-auto w-[220px] max-w-full`}),(0,F.jsxs)(`p`,{className:`mt-4 max-w-xs text-sm text-ink-foreground
12/75`,children:[`A Calgary digital marketing company helping businesses grow through SEO, AI Search optimization, Google Ads, PPC and social media ads since `,w.founded,`.`]}),(0,F.jsxs)(`div`,{className:`mt-5 flex items-center gap-3`,children:[(0,F.jsx)(`a`,{href:w.partnerProfileUrl,target:`_blank`,rel:`nofollow noopener noreferrer`,"aria-label":`The Three Marketers Google Partners profile`,className:`inline-block rounded-md bg-card p-1.5`,children:(0,F.jsx)(`img`,{src:Zu.url,alt:`Google Partner badge`,width:317,height:304,loading:`lazy`,decoding:`async`,className:`h-16 w-auto`})}),(0,F.jsx)(`div`,{className:`inline-block rounded-md bg-card p-1.5`,children:(0,F.jsx)(`img`,{src:Qu,alt:`Microsoft Advertising Search Certification badge`,width:1021,height:1025,loading:`lazy`,decoding:`async`,className:`h-[60px] w-[60px] object-contain`})})]}),(0,F.jsx)(`ul`,{className:`mt-5 flex flex-wrap gap-x-4 gap-y-2 text-sm`,children:w.social.map(e=>(0,F.jsx)(`li`,{children:(0,F.jsx)(`a`,{href:e.href,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`text-ink-foreground/75 underline-offset-4 hover:text-ink-foreground hover:underline`,children:e.label})},e.href))})]}),(0,F.jsxs)(`nav`,{"aria-label":`Services`,children:[(0,F.jsx)(`h2`,{className:`text-sm font-bold uppercase tracking-wider text-ink-foreground`,children:`Services`}),(0,F.jsx)(`ul`,{className:`mt-4 grid gap-2 text-sm`,children:le.map(e=>(0,F.jsx)(`li`,{children:(0,F.jsx)(he,{to:e.to,className:`text-ink-foreground/75 underline-offset-4 hover:text-ink-foreground hover:underline`,children:e.label})},e.to))})]}),(0,F.jsxs)(`nav`,{"aria-label":`Company`,children:[(0,F.jsx)(`h2`,{className:`text-sm font-bold uppercase tracking-wider text-ink-foreground`,children:`Company`}),(0,F.jsxs)(`ul`,{className:`mt-4 grid gap-2 text-sm`,children:[[...ge,...me].map(e=>(0,F.jsx)(`li`,{children:(0,F.jsx)(he,{to:e.to,className:`text-ink-foreground/75 underline-offset-4 hover:text-ink-foreground hover:underline`,children:e.label})},e.to)),fe.map(e=>(0,F.jsx)(`li`,{children:(0,F.jsx)(he,{to:e.to,className:`text-ink-foreground/75 underline-offset-4 hover:text-ink-foreground hover:underline`,children:e.label})},e.to))]})]}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h2`,{className:`text-sm font-bold uppercase tracking-wider text-ink-foreground`,children:`Contact`}),(0,F.jsxs)(`address`,{className:`mt-4 grid gap-3 text-sm not-italic text-ink-foreground/75`,children:[(0,F.jsxs)(`p`,{className:`flex gap-3`,children:[(0,F.jsx)(vl,{className:`mt-0.5 size-4 shrink-0 text-accent`,"aria-hidden":`true`}),(0,F.jsxs)(`span`,{children:[w.address.line1,(0,F.jsx)(`br`,{}),w.address.line2,(0,F.jsx)(`br`,{}),w.address.city,`, `,w.address.region,` `,w.address.postalCode,(0,F.jsx)(`br`,{}),w.address.country]})]}),(0,F.jsxs)(`p`,{className:`flex gap-3`,children:[(0,F.jsx)(bl,{className:`mt-0.5 size-4 shrink-0 text-accent`,"aria-hidden":`true`}),(0,F.jsx)(`a`,{href:w.phoneHref,className:`hover:text-ink-foreground hover:underline`,children:w.phone})]}),(0,F.jsxs)(`p`,{className:`flex gap-3`,children:[(0,F.jsx)(xl,{className:`mt-0.5 size-4 shrink-0 text-accent`,"aria-hidden":`true`}),(0,F.jsxs)(`span`,{children:[`Fax `,w.fax]})]}),(0,F.jsxs)(`p`,{className:`flex gap-3`,children:[(0,F.jsx)(_l,{className:`mt-0.5 size-4 shrink-0 text-accent`,"aria-hidden":`true`}),(0,F.jsx)(`a`,{href:w.emailHref,className:`break-all hover:text-ink-foreground hover:underline`,children:w.email})]})]}),(0,F.jsx)(`p`,{className:`mt-4 text-sm text-ink-foreground/75`,children:w.hours})]})]}),(0,F.jsx)(`div`,{className:`border-t border-white/10`,children:(0,F.jsxs)(`div`,{className:`container-page flex flex-col gap-2 py-5 text-xs text-ink-foreground/60 sm:flex-row sm:items-center sm:justify-between`,children:[(0,F.jsxs)(`p`,{children:[`© `,e,` `,w.name,`. All rights reserved.`]}),(0,F.jsx)(`p`,{children:`Calgary, Alberta, Canada`})]})})]})}function ed({data:e}){return(0,F.jsx)(`script`,{type:`application/ld+json`,dangerouslySetInnerHTML:{__html:JSON.stringify(e).replace(/</g,`\\u003c`)}})}function td(e){let t=e===`/`?`/`:`/${e.replace(/^\/+|\/+$/g,``)}/`;return`${w.url}${t}`}
12function nd({title:e,description:t,path:n,image:r,type:i=`website`,robots:a}){let o=td(n),s=[{title:e},{name:`description`,content:t},{property:`og:title`,content:e},{property:`og:description`,content:t},{property:`og:type`,content:i},{property:`og:url`,content:o},{property:`og:site_name`,content:w.name},{property:`og:locale`,content:`en_CA`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:e},{name:`twitter:description`,content:t}];return r&&(s.push({property:`og:image`,content:r}),s.push({name:`twitter:image`,content:r})),a&&s.push({name:`robots`,content:a}),{meta:s,links:[{rel:`canonical`,href:o}]}}function rd(){return{"@context":`https://schema.org`,"@type":`ProfessionalService`,"@id":`${w.url}/#organization`,name:w.name,alternateName:w.shortName,url:w.url,telephone:w.phone,faxNumber:w.fax,email:w.email,foundingDate:w.founded,description:w.description,areaServed:[`Calgary`,`Alberta`,`Canada`],address:{"@type":`PostalAddress`,streetAddress:`${w.address.line1}, ${w.address.line2}`,addressLocality:w.address.city,addressRegion:w.address.region,postalCode:w.address.postalCode,addressCountry:`CA`},openingHoursSpecification:[{"@type":`OpeningHoursSpecification`,dayOfWeek:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],opens:`09:00`,closes:`17:00`}],sameAs:w.social.map(e=>e.href)}}function id(e){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:e.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:td(e.path)}))}}function ad(e,t,n){return{"@context":`https://schema.org`,"@type":`Service`,name:e,description:t,serviceType:e,url:td(n),provider:{"@id":`${w.url}/#organization`},areaServed:[`Calgary`,`Alberta`,`Canada`]}}function od(e){return{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:e.map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))}}function sd(e){return{"@context":`https://schema.org`,"@type":`BlogPosting`,headline:e.title,description:e.excerpt,datePublished:e.date,dateModified:e.date,image:`${w.url}${e.image}`,author:{"@type":`Person`,name:e.author},publisher:{"@id":`${w.url}/#organization`},mainEntityOfPage:td(`/${e.slug}`)}}function cd(){return(0,F.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,F.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,F.jsx)(`h1`,{className:`text-7xl font-bold text-foreground`,children:`404`}),(0,F.jsx)(`h2`,{className:`mt-4 text-xl font-semibold text-foreground`,children:`Page not found`}),(0,F.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,F.jsx)(`div`,{className:`mt-6`,children:(0,F.jsx)(ie,{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 ld({error:e,reset:t}){console.error(e);let n=_e();return(0,P.useEffect)(()=>{hl(e,{boundary:`tanstack_root_error_component`})},[e]),(0,F.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,F.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,F.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-foreground`,children:`This page didn't load`}),(0,F.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,F.jsxs)(`div`,{className:`mt-6 flex flex-wrap justify-center gap-2`,children:[(0,F.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,F.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 ud=ks()({head:()=>({meta:[{charSet:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`},{title:`Calgary Online Marketing | The Three Marketers Inc.`},{name:`description`,content:`The Three Marketers is a Calgary online marketing company helping businesses grow through SEO, Google Ads, PPC and s
12ocial media ads since 2003.`},{name:`author`,content:`The Three Marketers Inc.`},{name:`theme-color`,content:`#33346d`}],links:[{rel:`stylesheet`,href:ml},{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=Archivo:wght@500;600;700;800&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&display=swap`}]}),shellComponent:dd,component:fd,notFoundComponent:cd,errorComponent:ld});function dd({children:e}){return(0,F.jsxs)(`html`,{lang:`en-CA`,children:[(0,F.jsx)(`head`,{children:(0,F.jsx)(ac,{})}),(0,F.jsxs)(`body`,{children:[e,(0,F.jsx)(oc,{})]})]})}function fd(){let{queryClient:e}=ud.useRouteContext();return(0,F.jsxs)(pl,{client:e,children:[(0,F.jsx)(`a`,{href:`#main`,className:`sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-[100] focus:rounded-md focus:bg-primary focus:px-4 focus:py-2 focus:text-sm focus:font-bold focus:text-primary-foreground`,children:`Skip to main content`}),(0,F.jsx)(ed,{data:rd()}),(0,F.jsxs)(`div`,{className:`flex min-h-screen flex-col`,children:[(0,F.jsx)(Yu,{}),(0,F.jsx)(`main`,{id:`main`,className:`flex-1`,children:(0,F.jsx)(Gs,{})}),(0,F.jsx)($u,{})]})]})}var pd=`modulepreload`,md=function(e){return`/`+e},hd={},gd=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}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=md(t,n),t=s(t),t in hd)return;hd[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:pd,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.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)})},_d=Ms(`/`)({head:()=>nd({title:`Calgary Digital Marketing Since 2003 | The Three Marketers`,description:`The Three Marketers provides digital marketing services to Calgary businesses through SEO, AI optimization, Google Ads and social media ads.`,path:`/`}),component:Ps(()=>gd(()=>import(`./routes-Cw07sYtj.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),`component`)}),vd=[{slug:`how-ai-is-changing-the-customer-journey`,title:`How AI Is Changing the Customer Journey`,date:`2026-08-13`,author:`Karine Kugler`,excerpt:`The way customers search, compare, and make decisions has changed significantly. With the rise of AI tools and multi-channel behaviour, the traditional marketing funnel no longer applies. What used to be a step-by-step process — awareness, consideration, then purchase — is now compressed into a much`,metaDescription:`AI is changing how customers search, compare and make decisions. Learn how businesses can adapt their SEO, Google Ads, content and digital strategy.`,image:`/images/blog/how-ai-is-changing-the-customer-journey.jpg`,imageAlt:`How AI Is Changing the Customer Journey`,imageWidth:1200,imageHeight:675,categories:[`Artificial Intelligence`],body:[{type:`p`,text:`The way customers search, compare, and make decisions has changed significantly. With the rise of AI tools and multi-channel behaviour, the traditional marketing funnel no longer applies.`},{type:`p`,text:`What used to be a step-by-step process — awareness, consideration, then purchase — is now compressed into a much shorter journey. For businesses, this means one thing: you need to be visible, relevant, and convincing at the same time.`},{type:`p`,text:`This shift is already impacting how users interact with search engines, ads, websites, and content.`},{type:`h2`,text:`The Customer Journey Is No Longer Linear`},{type:`p`,text:`Today’s users move quickly between platforms. A potential customer might:`},{type:`list`,ordered:!1,items:[`Discover a service on social media`,`Search for options on Google or an AI tool`,`Watch a short video review`,`Make a decision within minutes`]},{type:`p`,text:`These actions no longer happen in sequence. They happen almost simultaneously.`},{type:`p`,text:`AI plays a major role in this change. Instead of typing short keywords, users now ask detailed questions, describe their situation, and expect direct answers.`},{type:`p`,text:`For example:`},{type:`list`,ordered:!1,items:[`“Best chiropractor in Calgary open evenings with direct billing”`,`“Furnace repair Calgary same day service affordable rates”`]},{type:`p`,text:`This means your business is no longer competing only on keywords. You are competing on how well you answer specific situations.`},{type:`h2`,text:`Visibility Is No Longer Enough — You Need to Be the Answer`},{type:`p`,text:`Ranking on Google is still important, but it is no longer the end goal.`},{type:`p`,text:`Today, your business needs to appear as the most relevant solution when a user describes their need.`},{type:`p`,text:`This applies to:`},{type:`list`,ordered:!1,items:[`SEO (organic results and AI-generated answers
12)`,`Google Ads`,`Website content`,`Reviews and reputation`]},{type:`p`,text:`If your content is too generic or unclear, AI tools and search engines will favour competitors who provide more precise and useful information.`},{type:`h2`,text:`The Role of Multi-Channel Marketing`},{type:`p`,text:`Customers now “search” everywhere, not just on Google.`},{type:`p`,text:`They look for answers on:`},{type:`list`,ordered:!1,items:[`Search engines`,`AI tools (ChatGPT, Gemini, Copilot)`,`YouTube and short videos`,`Social media`,`Review platforms`]},{type:`p`,text:`Each channel plays a role:`},{type:`list`,ordered:!1,items:[`Social media creates awareness`,`Search and AI tools help compare options`,`Video builds trust`,`Your website converts the lead`]},{type:`p`,text:`A strong strategy connects all of these channels instead of treating them separately.`},{type:`h2`,text:`Creating Demand: Focus on the Problem You Solve`},{type:`p`,text:`Marketing is no longer about listing features. It is about showing how you solve a problem.`},{type:`p`,text:`Instead of saying:`},{type:`list`,ordered:!1,items:[`“We offer dental services”`]},{type:`p`,text:`You should show:`},{type:`list`,ordered:!1,items:[`“Get fast, reliable dental care with flexible appointments and direct billing”`]},{type:`p`,text:`Clear messaging helps both users and AI tools understand your value.`},{type:`p`,text:`Content should:`},{type:`list`,ordered:!1,items:[`Address real questions`,`Show practical benefits`,`Demonstrate results`]},{type:`h2`,text:`Capturing Demand: Be Specific and Helpful`},{type:`p`,text:`Users now expect detailed and relevant answers.`},{type:`p`,text:`Your website should include:`},{type:`list`,ordered:!1,items:[`Service pages targeting specific needs`,`FAQs answering real questions`,`Clear comparisons and explanations`,`Transparent pricing and process`]},{type:`p`,text:`For example:`},{type:`list`,ordered:!1,items:[`“Best solution for small kitchens”`,`“What to expect during your first appointment”`,`“How long does installation take?”`]},{type:`p`,text:`The more specific your content is, the more likely it will appear in search results and AI responses.`},{type:`h2`,text:`Converting Demand: Remove Friction`},{type:`p`,text:`Decisions happen faster, but only if the experience is simple.`},{type:`p`,text:`Common barriers that reduce conversions:`},{type:`list`,ordered:!1,items:[`Unclear pricing`,`Complicated forms`,`Missing information`,`Slow websites`]},{type:`p`,text:`To improve conversions:`},{type:`list`,ordered:!1,items:[`Make your call-to-action clear`,`Simplify forms and booking`,`Highlight reviews and trust signals`,`Provide clear next steps`]},{type:`p`,text:`When users find what they need quickly, they are more likely to take action.`},{type:`h2`,text:`Your Brand Is Now a Trust Signal`},{type:`p`,text:`Your brand is not just your logo or ads. It is everything users see when they search for your business.`},{type:`p`,text:`This includes:`},{type:`list`,ordered:!1,items:[`Your website content`,`Google reviews`,`Listings and directories`,`Social presence`,`Consistency across platforms`]},{type:`p`,text:`AI tools and search engines analyse all of these signals to determine whether your business should be recommended.`},{type:`h2`,text:`What This Means for Your Business`},{type:`p`,text:`To stay competitive, your marketing strategy needs to evolve.`},{type:`p`,text:`A strong approach today includes:`},{type:`list`,ordered:!1,items:[`SEO optimized for both search engines and AI tools`,`Targeted Google Ads campaigns`,`Clear, solution-focused website content`,`Ongoing content creation (blogs, FAQs)`,`Multi-channel visibility`]},{type:`h2`,text:`Final Thought`},{type:`p`,text:`The customer journey has not become more complicated — it has become faster.`},{type:`p`,text:`Your potential clients are making decisions in minutes, not days.`},{type:`p`,text:`The key question is no longer:`},{type:`p`,text:`“Do you offer the right service?”`},{type:`p`,text:`It is: “Will your business appear as the best solution at the exact moment they are searching?”`}]},{slug:`are-linkedin-ads-right-for-your-business`,title:`Are LinkedIn Ads Right for Your Business?`,date:`2026-08-06`,author:`Karine Kugler`,excerpt:`Digital marketing continues to evolve, and LinkedIn remains one of the most effective advertising platforms for B2B companies. While platforms like Facebook and Instagram are excellent for reaching consumers, LinkedIn allows businesses to connect directly with professionals, decision-makers, and ind`,metaDescription:`The Linkedin Advert
12ising platform offers a number of advantages for B2B advertisers that simply cannot be found anywhere else. Learn more about Linkedin Ads.`,image:`/images/blog/are-linkedin-ads-right-for-your-business.jpg`,imageAlt:`Linkedin ads`,imageWidth:1200,imageHeight:629,categories:[`Social Media`],body:[{type:`p`,text:`Digital marketing continues to evolve, and LinkedIn remains one of the most effective advertising platforms for B2B companies. While platforms like Facebook and Instagram are excellent for reaching consumers, LinkedIn allows businesses to connect directly with professionals, decision-makers, and industry leaders.`},{type:`p`,text:`If your goal is to generate qualified leads, promote professional services, or increase brand awareness among business audiences, LinkedIn Ads can be a valuable addition to your marketing strategy.`},{type:`h2`,text:`Reach a Professional Audience`},{type:`p`,text:`Unlike many social media platforms, LinkedIn is designed for professional networking. Users visit LinkedIn to build their careers, expand their professional networks, and stay informed about industry trends. This professional mindset makes them more receptive to business-related content and advertising.`},{type:`p`,text:`Whether you are promoting consulting services, software, manufacturing, financial services, or recruitment, LinkedIn offers access to a highly qualified audience.`},{type:`h2`,text:`Precise B2B Targeting`},{type:`p`,text:`One of LinkedIn’s greatest strengths is its advanced targeting capabilities. Advertisers can target audiences based on:`},{type:`list`,ordered:!1,items:[`Job title`,`Industry`,`Company size`,`Company name`,`Job function`,`Seniority`,`Skills`,`Education`,`Geographic location`]},{type:`p`,text:`Businesses can also upload customer lists, retarget previous website visitors, and create matched audiences to reach prospects who are already familiar with their brand.`},{type:`p`,text:`This level of precision helps ensure your advertising budget is spent reaching the people most likely to become customers.`},{type:`h2`,text:`Generate High-Quality Leads`},{type:`p`,text:`LinkedIn Lead Gen Forms continue to be one of the platform’s most valuable features. When users click on a lead generation ad, the form is automatically populated with information from their LinkedIn profile, making it quick and easy to submit.`},{type:`p`,text:`Because users provide verified professional information, the resulting leads are often more qualified than those generated through traditional website forms.`},{type:`h2`,text:`Multiple Ad Formats`},{type:`p`,text:`LinkedIn now offers a variety of advertising options to support different marketing objectives, including:`},{type:`list`,ordered:!1,items:[`Sponsored Content`,`Video Ads`,`Carousel Ads`,`Document Ads`,`Conversation Ads`,`Event Ads`,`Text Ads`,`Dynamic Ads`]},{type:`p`,text:`Whether your goal is generating leads, driving website traffic, promoting webinars, or increasing brand awareness, there is an ad format designed to support your campaign.`},{type:`h2`,text:`Better Measurement and Optimisation`},{type:`p`,text:`LinkedIn provides robust reporting tools to help businesses measure campaign performance. With the LinkedIn Insight Tag and conversion tracking, advertisers can monitor actions such as:`},{type:`list`,ordered:!1,items:[`Form submissions`,`Website enquiries`,`Purchases`,`Downloads`,`Phone calls`,`Other valuable conversions`]},{type:`p`,text:`Detailed reporting allows businesses to continually optimise campaigns and improve return on investment.`},{type:`h2`,text:`Is LinkedIn Worth the Cost?`},{type:`p`,text:`LinkedIn Ads generally have higher advertising costs than platforms like Facebook or Google Ads. However, the quality of the audience often justifies the investment.`},{type:`p`,text:`For businesses targeting executives, managers, business owners, or other decision-makers, a smaller number of highly qualified leads can be far more valuable than a large volume of less qualified traffic.`},{type:`h2`,text:`Is LinkedIn Advertising Right for You?`},{type:`p`,text:`LinkedIn Ads are not the best fit for every business. Companies that primarily sell directly to consumers may achieve better results on other advertising platforms.`},{type:`p`,text:`However, if your business markets products or services to other businesses, LinkedIn offers some of the most advanced B2B targeting available. Its ability to reach professionals based on their role, industry, company, and experience makes it an excellent platform for generating qualified leads and growing brand awareness.`},{type:`p`,text:`A well-planned LinkedIn advertising campaign can help your business reach the right people, generate meaningful opportunities, and support long-term business growth.`},{type:`p`,links:[{text:`LinkedIn advertising`,href:`/calgary-linkedin-advertising`}],text:`Learn more: LinkedIn advertising.`}]},{slug:`why-online-marketing-is-not-a-lottery-ticket-for-new-businesses`,title:`Why Online Marketing Is N
12ot a Lottery Ticket for New Businesses`,date:`2026-07-13`,author:`Karine Kugler`,excerpt:`Many new businesses launch with a limited budget and high expectations. A common situation is investing $3,000 in online marketing and expecting it to quickly generate enough clients to sustain the business from the start. This approach treats online marketing like a one-time bet, but that is not ho`,metaDescription:`Online marketing is a long-term investment, not a one-time expense. Learn why SEO, Google Ads, and ongoing optimisation deliver sustainable business growth.`,image:`/images/blog/why-online-marketing-is-not-a-lottery-ticket-for-new-busines.jpg`,imageAlt:`Close-up of a hand touching a screen with colorful bar and line charts on a data dashboard.`,imageWidth:1200,imageHeight:675,categories:[`Grow Your Business`],body:[{type:`p`,text:`Many new businesses launch with a limited budget and high expectations. A common situation is investing $3,000 in online marketing and expecting it to quickly generate enough clients to sustain the business from the start. This approach treats online marketing like a one-time bet, but that is not how it works in practice.`},{type:`p`,text:`Online Marketing Is a Process, Not a One-Time Spend`},{type:`p`,text:`Online marketing requires time, consistency, and ongoing adjustments. Whether a business uses platforms like Google Ads or invests in SEO, results are built gradually. Campaigns need to be tested, refined, and improved based on actual performance data. A single campaign rarely delivers predictable outcomes, especially at the beginning.`},{type:`p`,text:`The First Investment Is About Learning`},{type:`p`,text:`In the early stages, online marketing is as much about learning as it is about generating leads. Businesses need to understand which keywords bring the right traffic, which messaging connects with their audience, and which users are most likely to convert. This learning phase is essential, and a $3,000 budget is often used collecting this data rather than producing consistent results.`},{type:`p`,text:`Competition Limits What a Small Budget Can Do`},{type:`p`,text:`Competition plays a major role in how far a budget can go. Many local and national businesses are targeting the same audience, which increases costs and limits visibility for smaller budgets. In competitive industries such as legal services, healthcare, or home services, even a modest campaign can be quickly outpaced by businesses with consistent monthly investment.`},{type:`p`,text:`Results Depend on More Than Just Ads`},{type:`p`,text:`Online marketing does not work in isolation. Campaign performance depends on the quality of the website, the clarity of the offer, and proper tracking of conversions. Even well-written ads may underperform if users land on a page that does not clearly explain the service or encourage action.`},{type:`p`,text:`It is also important to consider a multi-channel approach. Relying on a single channel, such as Google Ads, can limit results and increase risk. Businesses that combine paid ads with SEO, local listings, and remarketing are more likely to build consistent visibility and generate better-quality leads over time.`},{type:`p`,text:`A More Sustainable Way to Get Results`},{type:`p`,text:`A more effective approach is to treat online marketing as an ongoing investment rather than a one-time expense. Businesses that see consistent results usually commit to a monthly budget, focus on a specific service or audience, and allow time for optimisation. Over time, campaigns become more efficient as data is collected and used to improve performance.`},{type:`p`,text:`Final Thought`},{type:`p`,text:`Online marketing is not a lottery ticket where one investment leads to immediate success. It is a structured process that rewards consistency, testing, and informed decisions. A $3,000 budget can be a starting point, but sustainable growth comes from treating marketing as a long-term strategy rather than a single opportunity.`}]},{slug:`why-branding-matters-for-your-business`,title:`Why Branding Matters for Your Business`,date:`2026-07-01`,author:`Karine Kugler`,excerpt:`Branding nowadays is more important than ever. With the average person constantly exposed to advertisements and marketing, it’s hard to stand out among the competition. Maintaining a consistent and meaningful brand, however, is key to getting your message across and succeeding in your industry. Bran`,metaDescription:`Branding is more than just a logo. It’s how you present yourself and how people connect with you. Find out why it matters and why you need it.`,image:`/images/blog/why-branding-matters-for-your-business.jpg`,imageAlt:`Why branding matters for your business`,imageWidth:1200,imageHeight:800,categories:[`Grow Your Business`],body:[{type:`p`,text:`Branding nowadays is more important than ever. With the average person constantly exposed to advertisements and marketing, it’s hard to stand out among the competition. Maintaining a consistent and meaningful brand, however, is key to getting your message across and succeeding in your industry.`},{type:`p`,text:`Branding itself is more than just a logo or colors. It’s how you present yourself and how people connect with your product, service, or experience. Your brand gives consumers a reason to care about you. With 88% of consumers admitting that brand trust is a deal-breaker when considering a purchase, building a recognizable and reputable brand should be a top priority for any business looking to gain long-term success. So, how do you develop a meaningful and recognizable brand to connect with your audience?`},{type:`h2`,text:`How to Develop Your Brand`},{type:`p`,text:`In a nutshell, creating a strong and meaningful brand can be broken down into four elements: Existence, Purpose, Identity, and Connection. Let’s take a closer look at what each of these entails.`},{type:`p`,text:`Existence`},{type:`p`,text:`Your brand’s existence represents who you are and why consumers should care about you. It’s the first step in establishing trust with prospective customers. Define who your business is, when it was launched, and what motivated you to start it. Explain your unique take on the business and what/why you decided to do things differently to others. Every business was started for a reason, so create a story, starting from your business’s beginnings to where you are today.`},{type:`p`,text:`Purpose`},{type:`p`,text:`What do you do and why do you do it? Generating revenue aside, defining your brand’s true purpose essentially allows you to distinguish yourself from your competitors. Review and ask yourself what your brand stands for, what it is, and what it isn’t . Combine your Existence findings with your purpose to create a brand statement that accurately represents what you do, why you do it, and who you do it for.`},{type:`p`,text:`Identity`},{type:`p`,text:`Your brand’s identity is the way it looks and feels. It’s what attracts and resonates with your audience. Create a mood board based on the 3 keywords that best express your brand’s purpose. Search online and through social media to find imagery related to your keywords and aim to capture everything that inspires your brand. Find the most dominant colors on your mood board that best reflect the meaning/purpose of your business — these are your brand colors.`},{type:`p`,text:`Next, choose a typeface. Look at any existing typefaces you already use and compare them to your competitors’ and your mood board. Choose one that best reflects your brand’s personality. Finally, pick a bold and easily recognizable logo that you’ll be proud to use as an opener and throughout your creatives. Think of the most prominent logos in your field. What’s the first one you think of when you think about your industry? Combine that inspiration with the imagery on your mood board to design an attractive and unique logo.`},{type:`p`,text:`Connection`},{type:`p`,text:`Connection is the way your brand connects and builds relationships with consumers. It’s the language and tone of voice you use to reach out to them and what makes them choose you over your competitors. Is your business funny? Adventurous? All business? Whatever it is, let it shine through when connecting with consumers, but remember to keep it real. The more authentic your communications are, the more effective they’re likely to be. Whether it’s social media, your website, taglines, newsletters, or emails, be yourself and be consistent anywhere and everywhere you publish content.`},{type:`h2`,text:`How to Implement Your Brand`},{type:`p`,text:`Now that you’ve developed a unique brand, it’s time to share it with your consumers and potential customers. Consistently implement your branding across your website, social media, and any other communication tool you use. Review your ads, website, and content and update it to be consistent with your overall branding or create new ones from scratch.`},{type:`p`,text:`Think of instantly recognizable household brands like Nike, Apple, and Coca-Cola. How often do they change their branding? Do they use different logos on different media? Consistency is what will ultimately make your brand recognizable in the eyes of consumers. If you’re going to invest in branding, you need to invest in consistency, there’s no way around it.`},{type:`h2`,text:`Grow Your Brand Online with The Three Marketers`},{type:`p`,text:`Branding is only part of the battle when it comes to building a successful business. To effectively implement your brand and get the word out, you need a solid marketing plan. At the Three Marketers, we’ve been helping businesses in Calgary and across the globe grow their brand online since 2003. Contact us today to find out how effective branding combined with professional digital marketing can take your business to new heights.`}]},{slug:`google-ads-budget-guide-for-calgary-businesses`,title:`Google Ads Budget Guide for Calgary Businesses`,date:`2026-06-08`,author:`Karine Kugler`,excerpt:`How Much Should You Spend on Google Ads? A Practical Guide for Calgary Businesses Setting the right Google Ads budget depends on your industry, competition, and growth goals. While every business is different, understanding the factors that influence advertising costs can help you make a more inform`,metaDescription:`Find out how much Google Ads costs in Calgary and what budget is needed to generate leads, increase visibility, and grow your business.`,image:`/images/blog/google-ads-budget-guide-for-calgary-businesses.jpg`,imageAlt:`google ads budget`,imageWidth:1200,imageHeight:675,categories:[`Google Ads`],body:[{type:`h2`,text:`How Much Should You Spend on Google Ads? A Practical Guide for Calgary Businesses`},{type:`p`,text:`Setting the right Google Ads budget depends on your industry, competition, and growth goals. While every business is different, understanding the factors that influence advertising costs can help you make a more informed decision and maximize your return on investment.`},{type:`h2`,text:`What Determines Your Google Ads Budget?`},{type:`p`,text:`There is no one-size-fits-all Google Ads budget. The amount your business should invest depends on several factors that influence how often your ads appear, how much each click costs, and how many leads or sales you can realistically generate.`},{type:`h3`,text:`Competition Level`},{type:`p`,text:`Industries with high competition typically require larger budgets. For example, legal services, personal injury law, dentistry, and certain home services often have multiple businesses competing for the same searches, driving up advertising costs. Less competitive industries may be able to generate leads with a smaller budget.`},{type:`h3`,text:`Cost-Per-Click (CPC)`},{type:`p`,text:`Google Ads operates on an auction system. The more businesses bidding on a keyword, the higher the cost per click tends to be. Some keywords may cost only a few dollars per click, while highly competitive keywords can exceed $50 or even $100 per click in certain industries.`},{type:`h3`,text:`Value of a New Customer`},{type:`p`,text:`Businesses that generate significant revenue from a single client can typically justify a larger advertising budget. For example, a law firm, renovation contractor, or orthodontist may be willing to spend more to acquire a lead because the value of a new client is much higher than 
12in many other industries.`},{type:`h3`,text:`Geographic Targeting`},{type:`p`,text:`Advertising costs can vary depending on where you target your ads. A campaign focused on Calgary may require a different budget than one targeting all of Alberta or Canada. National campaigns generally require larger budgets because they compete across a much larger audience.`},{type:`h3`,text:`Search Demand`},{type:`p`,text:`The number of people searching for your products or services affects budget requirements. Industries with high search volume often benefit from larger budgets because there are more opportunities to generate traffic and leads. In contrast, niche industries may require a smaller budget due to lower search demand.`},{type:`h3`,text:`Conversion Rates`},{type:`p`,text:`The effectiveness of your website and landing pages plays a major role in determining how much budget is needed. A website that converts visitors into leads efficiently can often achieve better results with the same ad spend than a site with poor conversion rates.`},{type:`h3`,text:`Business Growth Goals`},{type:`p`,text:`Your budget should also align with your objectives. A business looking to maintain a steady flow of leads may require a moderate budget, while a company focused on rapid growth, expanding into new markets, or increasing market share will typically need to invest more aggressively.`},{type:`h3`,text:`Seasonality and Market Conditions`},{type:`p`,text:`Some industries experience seasonal fluctuations in demand. Home services, landscaping, HVAC, and tourism businesses often increase their budgets during peak seasons to capture more opportunities when search volume is highest.`},{type:`h2`,text:`Budget Guidelines for Local Calgary Businesses`},{type:`p`,text:`While actual budgets vary by industry and business size, the following ranges provide a useful starting point for many local businesses.`},{type:`h3`,text:`Typical Monthly Budget Ranges`},{type:`p`,text:`Starter Budget: $800 – $1,200 per month`},{type:`p`,text:`Suitable for businesses looking to test Google Ads in a smaller geographic area or promote a limited number of services.`},{type:`p`,text:`Recommended Budget: $1,500 – $3,000 per month`},{type:`p`,text:`Provides enough budget to generate meaningful data, maintain visibility throughout the month, and attract a consistent flow of leads.`},{type:`p`,text:`Growth Budget: $3,000 – $5,000+ per month`},{type:`p`,text:`Ideal for businesses looking to dominate local search results, target multiple services, or expand into additional markets.`},{type:`h2`,text:`Industry Benchmarks in Calgary`},{type:`p`,text:`The following ranges reflect typical monthly advertising budgets for established businesses seeking consistent lead generation.`},{type:`h3`,text:`Chiropractors`},{type:`p`,text:`Recommended Budget: $2,000 – $4,000/month`},{type:`h3`,text:`Dentists`},{type:`p`,text:`Recommended Budget: $2,500 – $5,000/month`},{type:`h3`,text:`Plumbers`},{type:`p`,text:`Recommended Budget: $1,500 – $4,000/month`},{type:`h3`,text:`Equipment Stores`},{type:`p`,text:`Recommended Budget: $1,000 – $3,000/month`},{type:`h3`,text:`Lawyers (Local Calgary Firms)`},{type:`p`,text:`General Legal Services: $3,000 – $7,000/month`},{type:`p`,text:`Personal Injury Law: $5,000 – $15,000+/month`},{type:`p`,text:`Family Law: $3,000 – $7,000/month`},{type:`p`,text:`Criminal Defence: $3,000 – $8,000/month`},{type:`h2`,text:`How Many Leads Can You Expect?`},{type:`p`,text:`One of the most common questions business owners ask is how many leads a particular budget will generate.`},{type:`p`,text:`While results vary based on competition, targeting, website quality, and sales processes, a properly managed campaign can generate meaningful results.`},{type:`p`,text:`For example:`},{type:`list`,ordered:!1,items:[`A chiropractor spending $2,000 per month may generate 15 to 30 inquiries.`,`A plumber spending $3,000 per month may generate 20 to 40 service calls.`,`A family law firm spending $5,000 per month may generate 10 to 25 consultation requests.`]},{type:`p`,text:`The quality of your landing pages, online reviews, and response time can significantly influence these results.`},{type:`h2`,text:`Should You Include Management Fees in Your Budget?`},{type:`p`,text:`When planning your advertising investment, it is important to separate advertising spend from campaign management costs.`},{type:`p`,text:`The advertising budget pays for clicks and impressions, while management fees cover campaign setup, keyword research, ad creation, monitoring, reporting, and ongoing optimization.`},{type:`p`,text:`Businesses often achieve better results by combining an appropriate advertising budget with professional Google Ads management . An experienced agency can improve targeting, optimize bids, refine ad copy, and reduce wasted spend, helping businesses generate more leads from the same budget.`},{type:`h2`,text:`How to Know If Your Budget Is Right`},{type:`p`,text:`A healthy Google Ads budget should allow your business to:`},{type:`list`,ordered:!1,items:[`Appear consistently for important search terms`,`Generate enough clicks to collect meaningful data`,`Maintain a steady flow of leads or inquiries`,`Test different ads and landing pages`,`Scale successful c
12ampaigns over time`]},{type:`p`,text:`If your budget is too low, your ads may only appear occasionally, competitors may capture more market share, and it may take longer to gather enough data to improve performance.`},{type:`h2`,text:`Common Google Ads Budget Mistakes`},{type:`p`,text:`Many businesses struggle to achieve their desired results because of avoidable budgeting mistakes.`},{type:`p`,text:`Common issues include:`},{type:`list`,ordered:!1,items:[`Setting budgets too low to generate sufficient traffic`,`Targeting overly broad keywords`,`Ignoring conversion tracking`,`Sending traffic to weak landing pages`,`Focusing solely on clicks instead of leads and sales`,`Making frequent budget changes before enough data has been collected`]},{type:`p`,text:`Successful campaigns require both patience and ongoing optimization.`},{type:`h2`,text:`Final Thoughts`},{type:`p`,text:`There is no perfect Google Ads budget for every business. The right amount depends on your industry, competition, target market, and growth objectives.`},{type:`p`,text:`For many Calgary businesses, a monthly budget between $1,500 and $3,000 provides a strong starting point and enough visibility to generate consistent leads. More competitive industries such as legal services, dentistry, and personal injury law often require larger investments to remain competitive.`},{type:`p`,text:`Ultimately, the most successful campaigns combine an appropriate budget with effective targeting, compelling ad copy, strong landing pages, accurate conversion tracking, and ongoing optimization. By focusing on all of these factors, businesses can maximize their return on investment and generate sustainable growth from Google Ads.`},{type:`p`,links:[{text:`Google Ads management`,href:`/calgary-google-ads-management`},{text:`Can Your Business Benefit from Google AI Max Campaigns?`,href:`/can-your-business-benefit-from-google-ai-max-campaigns`}],text:`Learn more: Google Ads management · Can Your Business Benefit from Google AI Max Campaigns?.`}]},{slug:`can-your-business-benefit-from-google-ai-max-campaigns`,title:`Can Your Business Benefit From Google AI Max Campaigns?`,date:`2026-05-04`,author:`Karine Kugler`,excerpt:`Google continues to expand automation in advertising with AI Max campaigns. These campaigns are designed to improve performance across all Google channels using machine learning, while still requiring a clear strategy to deliver consistent results. For small businesses, the key question is not just `,metaDescription:`Google AI Max campaigns can improve leads and visibility. Find out if this new campaign type is the right fit for your business.`,image:`/images/blog/can-your-business-benefit-from-google-ai-max-campaigns.jpg`,imageAlt:`Blue Google AI Max hero banner with a large white panel showing the Google logo and 'AI Max' text, surrounded by small feature tiles on a blue gradient background.`,imageWidth:1200,imageHeight:719,categories:[`Artificial Intelligence`,`Google Ads`],body:[{type:`p`,text:`Google continues to expand automation in advertising with AI Max campaigns. These campaigns are designed to improve performance across all Google channels using machine learning, while still requiring a clear strategy to deliver consistent results.`},{type:`p`,text:`For small businesses, the key question is not just what AI Max is—but whether it is the right fit.`},{type:`p`,text:`What Are Google AI Max Campaigns?`},{type:`p`,text:`AI Max campaigns use Google’s artificial intelligence to manage ads across Search, Display, YouTube, and other placements.`},{type:`p`,text:`They are built to:`},{type:`list`,ordered:!1,items:[`Match ads to user intent`,`Adjust bids automatically`,`Test multiple ad variations`,`Allocate budget based on performance`]},{type:`p`,text:`The focus is on generating results such as calls, leads, or online sales.`},{type:`p`,text:`Is AI Max a Good Fit for Your Business?`},{type:`p`,text:`AI Max campaigns are not one-size-fits-all. Below is how to evaluate if they align with your business goals.`},{type:`p`,text:`You May Benefit From AI Max If:`},{type:`p`,text:`You Generate Leads or Sales Online Businesses that rely on calls, form submissions, or online purchases tend to perform well with AI-driven campaigns.`},{type:`p`,text:`You Offer Multiple Services or Products AI Max can promote different services within one campaign, making it ideal for:`},{type:`list`,ordered:!1,items:[`Chiropractors and clinics`,`Dentists`,`Plumbers`,`Lawyers`,`Home service providers`]},{type:`p`,text:`You Want Broader Visibility Across Google AI Max helps reach users across multiple channels without needing separate campaigns.`},{type:`p`,text:`You Already Have Campaign Data If your business has run Google Ads before, AI can use that data to improve performance faster.`},{type:`p`,text:`AI Max May Not Be the Best Fit If:`},{type:`p`,text:`You Are Just Starting Out New businesses without historical data may experience a longer learning phase.`},{type:`p`,text:`Your Services Are Very Niche Highly specific services sometimes require tighter control over keywords and messaging.`},{type:`p`,text:`You Need Strict Control Over Messaging Since AI combines and tests different ad variations, messaging may require closer monitoring.`},{type:`p`,text:`What Results Can Small Businesses Expect?`},{type:`p`,text:`When properly managed, AI Max campaigns can help:`},{type:`list`,ordered:!1,items:[`Increase lead volume`,`Improve lead quality`,`Expand reach across Google platforms`,`Optimise budget allocation based on performance`]}
12,{type:`p`,text:`However, results depend on strategy, targeting, and ongoing optimisation—not just automation.`},{type:`p`,text:`How to Get the Most From AI Max`},{type:`p`,text:`To maximise performance, campaigns should be built with a strong foundation:`},{type:`list`,ordered:!1,items:[`Clear conversion goals (calls, forms, purchases)`,`Well-structured campaigns aligned with services`,`High-quality ad copy and creative assets`,`Ongoing performance monitoring and adjustments`]},{type:`p`,text:`AI handles optimisation, but direction and strategy remain critical.`},{type:`p`,text:`Final Thoughts`},{type:`p`,text:`AI Max campaigns are part of Google’s shift toward automation and performance-driven advertising. For many small businesses in Calgary and across Canada, they can provide an effective way to improve visibility and generate leads.`},{type:`p`,text:`The key is understanding whether your business is ready. When aligned with the right strategy, AI Max can support growth. Without that foundation, results may be limited.`},{type:`p`,links:[{text:`Google Ads management`,href:`/calgary-google-ads-management`},{text:`Smarter Ads, Better Results`,href:`/smarter-ads-better-results-new-ai-powered-google-ads-updates`}],text:`Learn more: Google Ads management · Smarter Ads, Better Results.`}]},{slug:`the-risks-of-copying-ai-generated-content`,title:`The Risks of Copying AI-Generated Content`,date:`2026-05-04`,author:`Karine Kugler`,excerpt:`Artificial intelligence tools like ChatGPT and Gemini make generating content fast and convenient. Many marketing teams and businesses use them as part of their content process. But there is a real danger in copying and publishing AI content without revision or strategic focus. When users recognise `,metaDescription:`Copying AI content can reduce trust, engagement, and rankings. Learn how to use AI properly to protect your SEO and conversions.`,image:`/images/blog/the-risks-of-copying-ai-generated-content.jpg`,imageAlt:`ai generated content`,imageWidth:1200,imageHeight:675,categories:[`Artificial Intelligence`,`SEO & Search`],body:[{type:`p`,text:`Artificial intelligence tools like ChatGPT and Gemini make generating content fast and convenient. Many marketing teams and businesses use them as part of their content process.`},{type:`p`,text:`But there is a real danger in copying and publishing AI content without revision or strategic focus.`},{type:`p`,text:`When users recognise content as AI-generated, engagement and trust can drop sharply. This can weaken brand credibility, harm search visibility, and reduce conversions.`},{type:`p`,text:`Below is a closer look at why content strategy matters more than ever.`},{type:`h2`,text:`Audiences Are Losing Trust in AI Content`},{type:`p`,text:`Recent research shows that many consumers adjust their behaviour when they believe content was generated by artificial intelligence.`},{type:`p`,text:`According to SmythOS research , about 62% of consumers are less likely to engage with or trust content on social media if they know it was generated using AI . This indicates significant scepticism toward AI-produced marketing content.`},{type:`p`,text:`A Raptive survey of 3,000 U.S. adults found that people’s trust drops by nearly 50% when they believe an article was generated by AI , even if it wasn’t.`},{type:`p`,text:`A US nationally representative experiment showed that explicitly labelling content as AI-generated reduced perceived accuracy and interest , meaning awareness of AI involvement can negatively affect how users view the content.`},{type:`p`,text:`These findings demonstrate a clear pattern: perceived AI authorship can reduce attention, engagement, and confidence in content.`},{type:`h2`,text:`When Engagement Drops, Conversions Suffer`},{type:`p`,text:`If a visitor disengages early or questions the authenticity of what they are reading, they are less likely to:`},{type:`list`,ordered:!1,items:[`Click deeper into the site`,`Stay on the page long enough to absorb key messages`,`Complete a form, request a quote, or make contact`]},{type:`p`,text:`Reduced engagement affects both user experience and search performance. Search engines increasingly prioritise content that appears authoritative and useful to real people, not generic or repetitive output.`},{type:`p`,text:`If many visitors bounce quickly or signal dissatisfaction, search visibility can decline over time.`},{type:`h2`,text:`Copying AI Content Weakens Brand Identity`},{type:`p`,text:`Every business has a unique audience, set of services, and value proposition. When a website is filled with AI content that lacks personality, insight, or local relevance:`},{type:`list`,ordered:!1,items:[`The brand voice becomes generic`,`Messaging sounds the same across competitors`,`Users struggle to see what sets the business apart`]},{type:`p`,text:`Content should reflect real experience, industry expertise, and customer focus. AI tools are useful for drafting or researching, but the final content must be shaped by human insight.`},{type:`h2`,text:`SEO Implications of Generic AI Text`},{type:`p`,text:`Search engines evaluate content based on its usefulness and originality. Copying or lightly editing AI content without adding new insight:`},{type:`list`,ordered:!1,items:[`Increases similarity with online content`,`Reduces chances of ranking for competitive search terms`,`Signals to algorithms that the content may be low in value`]},{type:`p`,text:`AI can generate first drafts or outlines, but high-performing content requires thoughtful strategy, keyword intent alignment, and real examples.`},{type:`h2`,text:`How to Use AI the Right Way`},{type:`p`,text:`AI can speed up parts of the process, but the following best practices help protect engagement and credibility:`},{type:`list`,ordered:!0,items:[`Start with a content strategy. Define the audience, key goals, and primary message before writing.`,`Add real business insight. Include specific examples, client stories, local data, or professional expertise.`,`Edit for tone and clarity. Adjust language to match your brand voice and avoid generic phrasing.`,`Optimise for users and search. Use proper headings, meta tags, structured content, and relevant keywords.`,`Measure engagement. Monitor time on page, bounce rate, and conversions to evaluate performance.`]},{type:`p`,text:`AI is a tool, not a strategy. Combining AI with human expertise yields stronger content that resonates with both users and search engines.`},{type:`h2`,text:`Conclusion`},{type:`p`,text:`Copying AI content without refinement may save time in the short term, but it can undermine trust, reduce engagement, and weaken search performance.`},{type:`p`,text:`When audiences detect content that feels automated or generic, they are more likely to disengage and question credibility. Providing content that reflects real expertise and purpose builds audie
12nce confidence and supports long-term growth.`},{type:`p`,text:`Using AI responsibly, alongside strategic editing and insight, allows businesses to gain efficiency without sacrificing quality.`}]},{slug:`free-advertising-for-your-non-profit`,title:`Do You Want $10,000 in Free Advertising for Your Non-Profit?`,date:`2026-04-20`,author:`Karine Kugler`,excerpt:`For many non-profit organizations, marketing is a challenge. Most of the budget is dedicated to programs and services, leaving limited resources to promote the organization, attract donors, or recruit volunteers. To help address this, Google Ad Grants offers eligible non-profits up to $10,000 USD pe`,metaDescription:`Google Grants can offer up to $10,000 per month in free advertising for non-profit organizations under certain conditions.`,image:`/images/blog/free-advertising-for-your-non-profit.jpg`,imageAlt:`non profit grants`,imageWidth:1200,imageHeight:675,categories:[`Google Ads`],body:[{type:`p`,text:`For many non-profit organizations, marketing is a challenge. Most of the budget is dedicated to programs and services, leaving limited resources to promote the organization, attract donors, or recruit volunteers.`},{type:`p`,text:`To help address this, Google Ad Grants offers eligible non-profits up to $10,000 USD per month in Google Ads credits. This allows organizations to appear in search results when people are actively looking for causes, services, or ways to get involved.`},{type:`h2`,text:`What Is Google Ad Grants?`},{type:`p`,text:`Google Ad Grants provides free advertising credits that can be used on the Google Ads platform. These ads appear in Google search results and can help drive targeted traffic to your website.`},{type:`p`,text:`Unlike traditional donations, this program gives you the ability to actively promote your mission to people who are already searching for related topics.`},{type:`p`,text:`What Your Organization Can Achieve`},{type:`p`,text:`When managed properly, Google Ad Grants can support several key goals:`},{type:`p`,text:`Increase Awareness Your organization can appear for relevant searches, helping more people discover your cause and services.`},{type:`p`,text:`Attract the Right Audience Ads target users based on what they are searching for, bringing in visitors who are more likely to engage.`},{type:`p`,text:`Grow Donations and Support With clear messaging and strong landing pages, you can encourage donations, volunteer sign-ups, and event registrations.`},{type:`p`,text:`Build Your Email List Driving traffic to dedicated pages allows you to capture emails and stay connected with supporters over time.`},{type:`h2`,text:`Are You Eligible?`},{type:`p`,text:`To qualify for Google Ad Grants, your organization must meet certain requirements, including:`},{type:`list`,ordered:!1,items:[`Hold valid charitable status in your country`,`Be registered as a non-profit (in Canada, under the Income Tax Act)`,`Have a functional website with clear and relevant content`,`Accept Google’s policies on non-discrimination and donation use`]},{type:`p`,text:`Some organizations, such as government entities, are not eligible. Eligibility for schools and healthcare organizations depends on their structure and status.`},{type:`h2`,text:`What to Expect from the Application Process`},{type:`p`,text:`The application process involves verification and approval steps. While timelines can vary, organizations that prepare properly often experience a smoother process.`},{type:`p`,text:`You will need to:`},{type:`list`,ordered:!1,items:[`Validate your non-profit status`,`Set up a compliant Google Ads account`,`Provide initial campaign structure and content`,`Important Requirements to Maintain the Grant`]},{type:`p`,text:`Google Ad Grants is not a “set it and forget it” program. Accounts must meet ongoing performance standards, such as:`},{type:`list`,ordered:!1,items:[`Maintaining a minimum click-through rate`,`Using relevant, well-structured keywords`,`Setting up and tracking conversions`,`Regularly updating and optimising campaigns`]},{type:`p`,text:`Failure to meet these requirements can result in account suspension.`},{type:`h2`,text:`Why Strategy Matters`},{type:`p`,text:`While the ad credits are valuable, results depen
12d on how campaigns are managed. Many organizations do not fully use the available budget because of:`},{type:`list`,ordered:!1,items:[`Poor keyword selection`,`Weak ad copy`,`Landing pages that do not convert`,`Lack of ongoing optimisation`]},{type:`p`,text:`A structured approach ensures that the grant supports real outcomes, not just traffic.`},{type:`h2`,text:`Making the Most of the Opportunity`},{type:`p`,text:`Google Ad Grants offers a strong opportunity for non-profits to increase visibility without increasing marketing spend. However, success requires planning, monitoring, and continuous improvement.`},{type:`p`,text:`When used effectively, it can become a reliable channel for attracting supporters, increasing donations, and growing your impact over time.`},{type:`p`,links:[{text:`Google Ads management`,href:`/calgary-google-ads-management`},{text:`Why Work with a Google Partner Agency`,href:`/why-work-with-a-google-partner-agency`}],text:`Learn more: Google Ads management · Why Work with a Google Partner Agency.`}]},{slug:`organic-and-paid-search-synergy`,title:`SEO vs Google Ads? Why You Should Use Both`,date:`2026-04-20`,author:`Karine Kugler`,excerpt:`Businesses often compare SEO and Google Ads as if they were competing strategies. In reality, they work best together. Each approach plays a different role in helping your business get found, attract the right audience, and generate leads. SEO Builds Long-Term Visibility Search Engine Optimization f`,metaDescription:`Combine SEO and Google Ads to increase visibility, drive more traffic, and generate consistent leads with a balanced online marketing strategy.`,image:`/images/blog/organic-and-paid-search-synergy.jpg`,imageAlt:`SEO vs Google Ads? Why You Should Use Both`,imageWidth:1200,imageHeight:872,categories:[`Google Ads`,`SEO & Search`],body:[{type:`p`,text:`Businesses often compare SEO and Google Ads as if they were competing strategies. In reality, they work best together. Each approach plays a different role in helping your business get found, attract the right audience, and generate leads.`},{type:`h2`,text:`SEO Builds Long-Term Visibility`},{type:`p`,text:`Search Engine Optimization focuses on improving your website so it appears in organic search results. This includes optimizing content, structure, and technical elements.`},{type:`p`,text:`SEO takes time, but it delivers consistent traffic without paying for every click. It also helps your website rank for a wide range of keywords, including more specific searches that bring highly qualified visitors.`},{type:`h2`,text:`Google Ads Drives Immediate Results`},{type:`p`,text:`Google Ads allows your business to appear at the top of search results almost instantly. This is especially useful for competitive industries or when launching new services.`},{type:`p`,text:`With Google Ads, you can:`},{type:`list`,ordered:!1,items:[`Target high-intent keywords`,`Control your budget and visibility`,`Generate leads quickly`]},{type:`p`,text:`This makes it an effective tool for short-term growth and testing what works.`},{type:`h2`,text:`Stronger Visibility When Combined`},{type:`p`,text:`When your business appears in both paid and organic results, it increases your visibility on the page. Users are more likely to notice and trust a brand they see multiple times.`},{type:`p`,text:`This combined presence can lead to:`},{type:`list`,ordered:!1,items:[`Higher click-through rates`,`Increased brand credibility`,`More opportunities to capture leads`]},{type:`h2`,text:`Better Data, Better Decisions`},{type:`p`,text:`Running Google Ads campaigns provides valuable data on which keywords and messages convert best. This insight can then be applied to your SEO strategy.`},{type:`p`,text:`At the same time, SEO helps identify content opportunities and long-term keyword targets that can support your ad campaigns.`},{type:`h2`,text:`A Balanced Strategy for Growth`},{type:`p`,text:`Relying only on one channel can limit your results. SEO provides a strong foundation for long-term traffic, while Google Ads offers speed and control.`},{type:`p`,text:`Using both allows you to:`},{type:`list`,ordered:!1,items:[`Capture immediate demand`,`Build sustainable visibility`,`Adapt to changes in search behaviour`]},{type:`h2`,text:`Conclusion`},{type:`p`,text:`SEO and Google Ads are not competing strategies. When used together, they create a more complete approach to online visibility. Businesses that invest in both are better positioned to generate consistent traffic and long-term growth.`},{type:`p`,links:[{text:`SEO services`,href:`/calgary-seo`},{text:`Google Ads management`,href:`/calgary-google-ads-management`}],text:`Learn more: SEO services · Google Ads management.`}]},{slug:`the-risks-of-copying-ai-generated-content-for-seo`,title:`The Risks of Copying AI-Generated Content for SEO`,date:`2026-04-15`,author:`Karine Kugler`,excerpt:`Artificial intelligence tools like ChatGPT and Gemini make generating content fast and convenient. Many marketing teams and businesses use them as part of their content process. But there is a real danger in copying and publishing AI content without revision or strategic focus. When users recognise `,metaDescription:`Copying AI-generated content can reduce trust, engagement, and rankings. Learn how to use AI strategically to improve SEO and conversions.`,image:`/images/blog/the-risks-of-copying-ai-generated-content-for-seo.jpg`,imageAlt:`ai generated content`,imageWidth:1200,imageHeight:675,categories:[`Artificial Intelligence`,`SEO & Search`],body:[{type:`p`,text:`Artificial intelligence tools like ChatGPT and Gemini make generating content fast and convenient. Many marketing teams and businesses use them as part of their content process.`},{type:`p`,text:`But there is a real danger in copying and publishing AI content without revision or strategic focus.`},{type:`p`,text:`When users recognise content as AI-generated, engagement and trust can drop sharply. This can weaken brand credibility, harm search visibility, and reduce conversions.`},{type:`p`,text:`Below is a closer look at why content strategy matters more than ever.`},{type:`p`,text:`Audiences Are Losing Trust in AI Content`},{type:`p`,text:`Recent research shows that many consumers adjust their behaviour when they believe content was generated by artificial intelligence.`},{type:`p`,text:`According to SmythOS research , about 62% of consumers are less likely to engage with or trust content on social media if they know it was generated using AI . This indicates significant scepticism toward AI-produced marketing content.`},{type:`p`,text:`A Raptive survey of 3,000 U.S. adults found that people’s trust drops by nearly 50% when they believe an article was generated by AI , even if it wasn’t.`},{type:`p`,text:`A US nationally representative experiment showed that explicitly labelling content as AI-generated reduced perceived accuracy and interest , meaning awareness of AI involvement can negatively affect how users view the content.`},{type:`p`,text:`These findings demonstrate a clear pattern: perceived AI authorship can reduce attention, engagement, and confidence in content.`},{type:`p`,text:`When Engagement Drops, Conversions Suffer`},{type:`p`,text:`If a visitor disengages early or questions the authenticity of what they are reading, they are less likely to:`},{type:`list`,ordered:!1,items:[`Click deeper into the site`,`Stay on the page long enough to absorb key messages`,`Complete a form, request a quote, or make contact`]},{type:`p`,text:`Reduced engagement affects both user experience and search performance. Search engines increasingly prioritise content that appears authoritative and useful to real people, not generic or repetitive output.`},{type:`p`,text:`If many visitors bounce quickly or signal dissatisfaction, search visibility can decline over time.`},{type:`p`,text:`Copying AI Content Weakens Brand Identity`},{type:`p`,text:`Every business has a unique audience, set of services, and value proposition. When a website is filled with AI content that lacks personality, insight, or local relevance:`},{type:`list`,ordered:!1,items:[`The brand voice becomes generic`,`Messaging sounds the same across competitors`,`Users struggle to see what sets the business apart`]},{type:`p`,text:`Content should reflect real experience, industry expertise, and customer focus. AI tools are useful for drafting or researching, but the final content must be shaped by human insight.`},{type:`p`,text:`SEO Implications of Generic AI Text`},{type:`p`,text:`Search engines evaluate content based on its usefulness and originality. Copying or lightly editing AI content without adding new insight:`},{type:`list`,ordered:!1,items:[`Increases similarity with online content`,`Reduces chances of ranking for competitive search terms`,`Signals to algorithms that the content may be low in value`]},{type:`p`,text:`AI can generate first drafts or outlines, but high-performing content requires thoughtful strategy, keyword intent alignment, and real examples.`},{type:`p`,text:`How to Use AI the Right Way`},{type:`p`,text:`AI can speed up parts of the process, but the following best practices help protect engagement and credibility:`},{type:`list`,ordered:!0,items:[`Start with a content strategy. Define the audience, key goals, and primary message before writing.`,`Add real business insight. Include specific examples, client stories, local data, or professional expertise.`,`Edit for tone and clarity. Adjust language to match your brand voice and avoid generic phrasing.`,`Optimise for users and search. Use proper headings, meta tags, structured content, and relevant keywords.`,`Measure engagement. Monitor time on page, bounce rate, and conversions to evaluate performance.`]},{type:`p`,text:`AI is a tool, not a strategy. Combining AI with human expertise yields stronger content that resonates with both users and search engines.`},{type:`p`,text:`Conclusion`},{type:`p`,text:`Copying AI content without refinement may save time in the short term, but it can undermine trust, reduce engagement, and weaken search performance.`},{type:`p`,text:`When audiences detect content that feels automated or generic, they are more likely to disengage and question credibility. Providing content that reflects real expertise and purpose builds audie
12nce confidence and supports long-term growth.`},{type:`p`,text:`Using AI responsibly, alongside strategic editing and insight, allows businesses to gain efficiency without sacrificing quality.`}]},{slug:`hiring-a-seo-company`,title:`Considerations when Hiring a SEO Company`,date:`2026-03-15`,author:`Karine Kugler`,excerpt:`If you have a website, you have likely heard of SEO (Search Engine Optimization). While it can seem complex, the goal is simple: improve your website’s visibility so potential customers can find you when they search online. Today, SEO is not only about ranking in traditional search results on Google`,metaDescription:`Things to take into considerations when hiring a SEO company. Find some questions to ask potential companies before making a decision.`,image:`/images/blog/hiring-a-seo-company.jpg`,imageAlt:`Digital Marketing Clients`,imageWidth:1200,imageHeight:801,categories:[`SEO & Search`],body:[{type:`p`,text:`If you have a website, you have likely heard of SEO (Search Engine Optimization). While it can seem complex, the goal is simple: improve your website’s visibility so potential customers can find you when they search online.`},{type:`p`,text:`Today, SEO is not only about ranking in traditional search results on Google . It also plays a role in how your business appears in local listings, featured results, and AI-powered search experiences. This makes choosing the right SEO partner more important than ever.`},{type:`h2`,text:`SEO Is a Long-Term Strategy, Not a Quick Fix`},{type:`p`,text:`One of the most important things to understand is that SEO takes time. Search engines use complex systems to evaluate websites based on content quality, relevance, and user experience.`},{type:`p`,text:`No company can guarantee a #1 ranking in a short period. If an agency promises immediate results, it is often a sign of risky tactics that can harm your website over time.`},{type:`p`,text:`A reliable SEO strategy focuses on steady improvements, helping your site build authority and visibility in a sustainable way.`},{type:`h2`,text:`Why “Guaranteed Rankings” Are a Red Flag`},{type:`p`,text:`Some companies claim they can quickly place your website at the top of search results. While short-term gains may happen, these are often achieved using outdated or manipulative techniques.`},{type:`p`,text:`Search engines regularly update their systems to identify and reduce the impact of these practices. When that happens, websites using these methods can lose visibility or disappear from search results altogether.`},{type:`p`,text:`A professional SEO company will focus on best practices and long-term performance, not shortcuts.`},{type:`h2`,text:`What Modern SEO Involves`},{type:`p`,text:`SEO today goes beyond keywords and rankings. A complete strategy includes:`},{type:`list`,ordered:!1,items:[`High-quality content that answers user questions`,`Technical optimisation such as site speed and mobile performance`,`Clear website structure for better navigation and indexing`,`User experience improvements to keep visitors engaged`,`Content structured for search engines and AI tools`,`Conversion tracking to measure leads and results`]},{type:`p`,text:`The goal is not just to attract traffic, but to turn that traffic into real business opportunities.`},{type:`h2`,text:`Questions to Ask Before Hiring an SEO Company`},{type:`p`,text:`Choosing the right partner can make a significant difference. Here are key questions to ask:`},{type:`list`,ordered:!1,items:[`Can you share examples of your work and results?`,`Do you follow Google’s best practices and guidelines?`,`How do you measure success (traffic, leads, conversions)?`,`What kind of results should I expect, and in what timeframe?`,`What is your experience in my industry or location?`,`What SEO strategies do you typically use?`,`How will we communicate and receive updates?`,`Will you provide clear reporting and explain your recommendations?`]},{type:`p`,text:`These questions help ensure transparency and alignment with your business goals.`},{type:`h2`,text:`Choosing a Partner That Fits Your Business`},{type:`p`,text:`Whether you are launching a new website, redesigning an existing one, or improving your online visibility, selecting the right SEO company is essential.`},{type:`p`,text:`There are many providers offering similar services, but not all approaches are equal. If something feels unclear or unrealistic, it is best to explore other options.`},{type:`p`,text:`A good SEO partner will focus on long-term growth, provide clear communication, and align their strategy with your business objectives.`},{type:`h2`,text:`Final Thought`},{type:`p`,text:`SEO is an ongoing process that requires expertise, 
12consistency, and adaptation. By choosing the right company and focusing on sustainable practices, you can build strong visibility, including in AI-driven search experiences, and generate consistent results over time.`},{type:`p`,links:[{text:`SEO services`,href:`/calgary-seo`},{text:`Google Search Still Powers Traffic and Leads`,href:`/google-search-still-powers-traffic-and-leads-even-as-ai-grows`}],text:`Learn more: SEO services · Google Search Still Powers Traffic and Leads.`}]},{slug:`how-to-optimize-your-instagram-bio-and-get-discovered`,title:`How to Optimize Your Instagram Bio and Get Discovered`,date:`2026-03-14`,author:`Manon Kugler`,excerpt:`Your Instagram bio may seem like a small detail, but it plays an important role in how people discover your business. Instagram now functions more like a search engine, with users actively searching for services, products, and creators. Because of this, the keywords in your bio can influence whether`,metaDescription:`Learn how to optimize your Instagram bio with keywords, location, and a call-to-action to help your small business get discovered more easily.`,image:`/images/blog/how-to-optimize-your-instagram-bio-and-get-discovered.jpg`,imageAlt:`How to Optimize Your Instagram Bio and Get Discovered`,imageWidth:1200,imageHeight:800,categories:[`Social Media`],body:[{type:`p`,text:`Your Instagram bio may seem like a small detail, but it plays an important role in how people discover your business. Instagram now functions more like a search engine, with users actively searching for services, products, and creators. Because of this, the keywords in your bio can influence whether your profile appears in search results.`},{type:`p`,text:`For small businesses, optimizing your Instagram bio with the right keywords can help attract the right audience, improve discoverability, and ultimately generate more leads or customers.`},{type:`h2`,text:`Why Keywords Matter on Instagram`},{type:`p`,text:`When users search for terms like “Toronto bakery,” “online fitness coach,” or “wedding photographer,” Instagram scans profile information such as the name field, username, and bio description to find relevant results. If your bio includes these keywords, your profile is more likely to appear in relevant searches .`},{type:`p`,text:`Many small businesses miss this opportunity by writing bios that are creative but not searchable . While personality is important, including clear keywords related to your service and location helps Instagram understand what your business offers.`},{type:`h2`,text:`Optimize Your Name Field`},{type:`p`,text:`One of the most important places to add keywords is the name field in your Instagram profile. This field is highly searchable and plays a major role in how Instagram categorizes and displays profiles in search results.`},{type:`p`,text:`Your name field should clearly describe what you do , and if your business serves a local market, it should also include your location . Including a city or region helps Instagram show your profile to people searching for services in that specific area.`},{type:`em`,text:`For example:`},{type:`em`,text:`Instead of: Sarah | Owner`},{type:`em`,text:`Try: Sarah | Toronto Wedding Photographer`},{type:`p`,text:`By including both your service keyword (“wedding photographer”) and location (“Toronto”), you increase your chances of appearing when users search for phrases like “Toronto wedding photographer” or “wedding photographer in Toronto.”`},{type:`p`,text:`This is especially important for businesses that rely on local customers, such as photographers, restaurants, fitness trainers, real estate agents, or salons.`},{type:`em`,text:`Here are a few more examples:`},{type:`list`,ordered:!1,items:[`Emma | Vancouver Real Estate Agent`,`Mike | NYC Personal Trainer`,`Bloom | Vegan Bakery Toronto`,`Lisa | London Hair Stylist`]},{type:`p`,text:`Adding location-based keywords helps Instagram understand where your business operates , making it easier for nearby users to discover your profile when they search for services in their area.`},{type:`em`,text:`If your business operates online or globally , you can focus more on niche or industry keywords instead of location, such as:`},{type:`list`,ordered:!1,items:[`Sarah | Instagram Marketing Coach`,`Alex | E-commerce Growth Strategist`]},{type:`p`,text:`In short, the best approach is to combine your main service keyword with your location whenever possible , especially if attracting local clients is a key part of your business strategy.`},{type:`h2`,text:`Use Keywords in Your Bio Description`},{type:`p`,text:`Your bio description should clearly explain what you do, who you help, and what makes your business unique. This is also an ideal place to include secondary keywords that support your main service.`},{type:`em`,text:`For example:`},{type:`p`,text:`Helping small businesses grow with Instagram marketing Social media strategy & content creation Serving Toronto and online clients Book a free consultation below`},{type:`p`,text:`This bio includes keywords like “Instagram marketing,” “social media strategy,” and “Toronto,” which can help improve search visibility.`}
12,{type:`h2`,text:`Add a Clear Call-to-Action`},{type:`p`,text:`An effective Instagram bio doesn’t just help people find your business, it should also encourage them to take the next step . Once someone visits your profile, they should immediately know what action you want them to take. Without a clear call-to-action (CTA), potential customers may simply view your profile and leave without engaging further.`},{type:`p`,text:`Your CTA should guide visitors toward a specific goal , such as booking a service, exploring your products, or accessing a helpful resource. Keep the wording simple, direct, and action-oriented so it’s easy for users to understand what to do next.`},{type:`em`,text:`Common call-to-action examples include:`},{type:`list`,ordered:!1,items:[`Book a free consultation`,`Shop our latest collection`,`Download the free guide below`,`Get your free quote today`,`View our portfolio`]},{type:`p`,text:`Pairing your CTA with an emoji like a downward arrow (👇) can also help visually direct users toward the link in your profile.`},{type:`p`,text:`It’s also important to include a link in your bio so visitors can easily access your offer, website, or booking page. Since Instagram allows only one clickable link in the bio section, many businesses use tools like Linktree or other link-in-bio platforms. These tools allow you to share multiple links from a single URL, such as your website, online store, blog, or booking page.`},{type:`em`,text:`For example, your bio might look like this:`},{type:`p`,text:`Helping small businesses grow with Instagram marketing 🚀 Social media strategy & content creation Serving Toronto & online clients 👇 Book a free strategy call`},{type:`p`,text:`Then, the link in your bio could lead to a Linktree page with multiple options such as:`},{type:`list`,ordered:!1,items:[`Book a consultation`,`Visit our website`,`Download a free guide`,`Follow us on other platforms`]},{type:`p`,text:`This approach makes it easier for potential customers to navigate your content and take action quickly , which can lead to more inquiries, sales, or bookings.`},{type:`p`,text:`A strong call-to-action transforms your Instagram bio from a simple description into a conversion tool that helps turn profile visitors into real customers.`},{type:`h2`,text:`Putting It All Together: An Optimized Instagram Bio Example`},{type:`p`,text:`When you combine keywords, location, a clear description, and a call-to-action, your Instagram bio becomes much more effective at helping potential customers discover and engage with your business.`},{type:`em`,text:`Example:`},{type:`p`,text:`Username @torontoweddingphotographer`},{type:`p`,text:`Name Field Sarah | Toronto Wedding Photographer`},{type:`p`,text:`Bio Description Toronto Wedding Photographer 📸 — service + location Romantic & candid wedding photography — style / niche Serving GTA couples — service area 👇 Check availability — call-to-action`},{type:`p`,text:`In this example, the profile includes a service keyword , location , clear description , and a call-to-action with a link. These elements help Instagram understand what the account offers while guiding visitors toward the next step.`},{type:`h2`,text:`Final Thoughts`},{type:`p`,text:`Optimizing your Instagram bio with keywords is a simple but powerful strategy for small businesses. By clearly describing your services, including relevant keywords, and adding a strong call-to-action, you make it easier for potential customers to discover your brand and connect with your business.`},{type:`p`,text:`Over time, these small improvements can significantly increase profile visits and help turn Instagram into a consistent source of leads.`},{type:`p`,text:`It’s now your turn! Take a few minutes to review your Instagram bio . Ask yourself: Does it clearly say what I do, who I help, and where I operate? Adding the right keywords and a clear call-to-action can make it much easier for potential customers to discover your business.`},{type:`p`,links:[{text:`How to Grow Your Account on Instagram`,href:`/how-to-grow-your-account-on-instagram`}],text:`Related reading: How to Grow Your Account on Instagram.`}]},{slug:`choosing-the-right-social-platform-for-your-small-business`,title:`Choosing The Right Social Platform For Your Small Business`,date:`2026-03-07`,author:`Manon Kugler`,excerpt:`For small businesses, social media can be one of the most powerful and cost-effective marketing channels available. But with so many platforms competing for attention TikTok, Instagram, YouTube, Facebook, LinkedIn, Pinterest, it’s easy to feel overwhelmed. The reality is simple: you don’t need to be`,metaDescription:`Learn how to choose the best social media platform for your small business. Compare TikTok, Instagram, and YouTube to find where your audience is.`,image:`/images/blog/choosing-the-right-social-platform-for-your-small-business.jpg`,imageAlt:`Small Business TikTok`,imageWidth:1200,imageHeight:675,categories:[`Social Media`],body:[{type:`p`,text:`For small businesses, social media can be one of the most powerful and cost-effective marketing channels available. But with so many platforms competing for attention TikTok, Instagram, YouTube, Facebook, LinkedIn, Pinterest, it’s easy to feel overwhelmed. The reality is simple: you don’t need to be everywhere. The key is choosing the platform where your audience spends time and where your content can perform best. In this guide, we’ll walk through how small businesses can choose the right platform, based on audie
12nce, content type, and marketing goals.`},{type:`h2`,text:`1. Start With Your Audience, Not the Platform`},{type:`p`,text:`The biggest mistake small businesses make is choosing a platform based on popularity instead of relevance.`},{type:`em`,text:`Before creating accounts, answer three key questions:`},{type:`list`,ordered:!1,items:[`Who is your ideal customer? (age, profession, interests)`,`Where do they already spend time online?`,`What type of content do they consume most?`]},{type:`em`,text:`For example:`},{type:`p`,text:`A local plumbing company, for instance, will likely see better results on Facebook than TikTok, because homeowners actively search local service providers there.`},{type:`h2`,text:`2. Understand What Each Platform Is Best For`},{type:`p`,text:`Each social platform rewards different types of content and audience behavior. Choosing the right one means aligning your business strengths with the platform’s algorithm.`},{type:`h3`,text:`TikTok: Best for Fast Growth and Discovery`},{type:`p`,text:`TikTok has become one of the most powerful platforms for organic reach. Its algorithm prioritizes engaging content over follower count, meaning small businesses can go viral quickly.`},{type:`em`,text:`Best for: brands that can create entertaining, authentic short videos.`},{type:`em`,text:`Why it works:`},{type:`list`,ordered:!1,items:[`Powerful discovery algorithm`,`High organic reach potential`,`Authentic content beats polished ads`]},{type:`em`,text:`Content types that perform well:`},{type:`list`,ordered:!1,items:[`Behind-the-scenes videos`,`Product transformations`,`Quick tips or hacks`,`Founder stories`]},{type:`p`,text:`Example: A small skincare brand might post short educational videos like “3 mistakes people make when washing their face.” View video example here .`},{type:`h3`,text:`Instagram: Best for Visual Branding`},{type:`p`,text:`Instagram remains one of the strongest platforms for building a brand identity. With a mix of Reels, Stories, and posts, businesses can create both discovery and community engagement.`},{type:`em`,text:`Best for: visual brands, lifestyle products, food, fashion, beauty, travel.`},{type:`em`,text:`Why it works:`},{type:`list`,ordered:!1,items:[`Strong visual storytelling`,`Product discovery through reels and explore`,`Built-in shopping features`]},{type:`em`,text:`Content types that perform well:`},{type:`list`,ordered:!1,items:[`Reels`,`Before/after photos`,`Product demonstrations`,`User-generated content`]},{type:`p`,text:`Example: A boutique clothing store can showcase outfits through Reels, product photos, and influencer collaborations. View video example h ere .`},{type:`h3`,text:`YouTube: Best for Long-Term Growth`},{type:`p`,text:`YouTube is more than a social platform, it’s the second largest search engine in the world. Content can continue generating traffic for months or years.`},{type:`em`,text:`Best for:`},{type:`list`,ordered:!1,items:[`Tutorials`,`Educational content`,`Product reviews`,`Thought leadership`]},{type:`em`,text:`Content that performs well:`},{type:`list`,ordered:!1,items:[`How-to tutorials and educational videos`,`Product reviews and comparisons`,`Step-by-step guides`,`“Top 10” or list-style videos`]},{type:`p`,text:`Example: A small fitness coach could post videos like “10-minute home workout for beginners.” View video example here .`},{type:`h3`,text:`Facebook: Best for Local Businesses and Communities`},{type:`p`,text:`While Facebook’s organic reach has declined over time, it still remains valuable for local marketing and community engagement.`},{type:`em`,text:`Best for: local businesses and community engagement.`},{type:`em`,text:`Why it works:`},{type:`list`,ordered:!1,items:[`Local groups drive discovery`,`Events and promotions perform well`,`Ideal for targeting older demographics`]},{type:`em`,text:`Effective uses:`},{type:`list`,ordered:!1,items:[`Local promotions`,`Community updates`,`Customer testimonials`,`Events and offers`]},{type:`p`,text:`Example: A landscaping company can post project photos, seasonal tips, and local promotions. View pictures here.`}
12,{type:`h3`,text:`Pinterest: Best for Product Discovery`},{type:`p`,text:`Pinterest functions more like a visual search engine than a traditional social platform, where users actively search for inspiration, ideas, and products.`},{type:`em`,text:`Best for: home decor, food and recipes, DIY and crafts, weddings, and lifestyle brands.`},{type:`em`,text:`Why it works:`},{type:`list`,ordered:!1,items:[`High purchase intent from users planning projects or purchases`,`Pins can generate traffic for months or years`,`Strong visual discovery through search and recommendations`]},{type:`em`,text:`Effective uses:`},{type:`list`,ordered:!1,items:[`Product inspiration boards`,`Step-by-step tutorials`,`Idea lists and guides`,`Linking pins directly to product pages`]},{type:`p`,text:`Example: A home decor brand can create pins like “Modern Living Room Ideas” featuring styled spaces that link directly to their furniture or decor products. View pin example here.`},{type:`h3`,text:`LinkedIn: Best for B2B Marketing and Professional Networking`},{type:`p`,text:`LinkedIn is the leading platform for professional networking, making it especially valuable for B2B companies and service-based businesses looking to build credibility and reach decision-makers.`},{type:`em`,text:`Best for: B2B companies, consultants, professional services, and industry experts.`},{type:`em`,text:`Why it works:`},{type:`list`,ordered:!1,items:[`Access to professionals and business decision-makers`,`Strong platform for thought leadership`,`Content can reach large audiences through professional networks`]},{type:`em`,text:`Effective uses:`},{type:`list`,ordered:!1,items:[`Industry insights and expert advice`,`Case studies and success stories`,`Company updates and milestones`,`Professional tips and educational content`]},{type:`p`,text:`Example: A marketing consultant might share short posts with industry insights, campaign results, or marketing tips to position themselves as a trusted expert and attract potential clients.`},{type:`h2`,text:`3. Final Tips for Choosing the Right Platform`},{type:`h2`,text:`Evaluate Your Resources`},{type:`p`,text:`Many small businesses fail on social media because they underestimate the time required.`},{type:`em`,text:`Before choosing a platform, ask:`},{type:`list`,ordered:!1,items:[`Can you post 3–4 times per week consistently?`,`Do you have the ability to create video content?`,`Who will manage comments and messages?`]},{type:`p`,text:`If your team is small, focusing on one primary platform and one secondary platform is usually the best strategy.`},{type:`em`,text:`Example structure:`},{type:`p`,text:`Primary platform: audience growth Secondary platform: credibility and brand presence`},{type:`h2`,text:`Consider Your Business Goals`},{type:`p`,text:`Different platforms support different marketing objectives.`},{type:`p`,text:`The best strategy is aligning platform + content + goal.`},{type:`h2`,text:`Start With One Platform First`},{type:`p`,text:`Instead of trying to manage multiple channels, start with one platform and master it.`},{type:`em`,text:`Growth strategy:`},{type:`list`,ordered:!1,items:[`Choose the platform where your audience is strongest`,`Post consistently for 90 days`,`Track engagement and follower growth`,`Double down on content that performs`,`Expand to a second platform once momentum builds`]},{type:`p`,text:`One well-managed platform often outperforms several poorly managed ones.`},{type:`p`,text:`Example:`},{type:`p`,text:`YouTube → repurpose clips to TikTok and Instagram`},{type:`p`,text:`TikTok → repurpose to Instagram Reels`},{type:`h2`,text:`Analyze Competitors`},{type:`p`,text:`Your competitors can reveal which platforms work best in your industry.`},{type:`em`,text:`Look at:`},{type:`list`,ordered:!1,items:[`Where they post most often`,`Which content gets the most engagement`,`What formats they use (video, tutorials, carousels)`]},{type:`p`,text:`These insights help identify opportunities to differentiate your brand.`},{type:`em`,text:`Note: Online traffic and engagement numbers are typically Public Estimates and may not reflect exact figures.`},{type:`p`,links:[{text:`Free Competitor Finder Tool`,href:`https://www.semrush.com/free-tools/compet
12itor-finder/`,nofollow:!0}],text:`To quickly discover competing brands in your space, you can use this Free Competitor Finder Tool from Semrush.`},{type:`h2`,text:`Final Thoughts`},{type:`p`,text:`Choosing the right social media platform isn’t about following trends, it’s about finding the channel where your audience, content style, and business goals align.`},{type:`em`,text:`For most small businesses, success comes from:`},{type:`list`,ordered:!1,items:[`Understanding their target audience`,`Choosing 1–2 core platforms`,`Creating consistent, valuable content`,`Testing and optimizing based on data`]},{type:`p`,text:`Social media growth takes time, but when the right platform is chosen, it can become one of the most powerful drivers of awareness, community, and sales for your business.`},{type:`em`,text:`Good luck!`}]},{slug:`google-reviews-matter-but-consumers-look-further`,title:`Google Reviews Matter, But Consumers Look Further`,date:`2026-03-01`,author:`Karine Kugler`,excerpt:`Most business owners understand that Google reviews are important. They influence local search visibility.They affect click-through rates.They shape first impressions. Google reviews alone are not enough. Consumers are doing more research before making decisions. They compare businesses, verify cred`,metaDescription:`Google reviews matter, but consumers check websites, social media, and AI tools before choosing a business. Learn how to build trust beyond Google.`,image:`/images/blog/google-reviews-matter-but-consumers-look-further.jpg`,imageAlt:`Google Reviews Matter, But Consumers Look Further`,imageWidth:1200,imageHeight:800,categories:[`Online Reputation`],body:[{type:`p`,text:`Most business owners understand that Google reviews are important.`},{type:`p`,text:`They influence local search visibility. They affect click-through rates. They shape first impressions.`},{type:`p`,text:`Google reviews alone are not enough.`},{type:`p`,text:`Consumers are doing more research before making decisions. They compare businesses, verify credibility, and look for consistency across multiple platforms.`},{type:`p`,text:`The Buyer Journey Has Changed`},{type:`p`,text:`Today’s typical customer will:`},{type:`list`,ordered:!0,items:[`Search on Google.`,`Check star ratings.`,`Visit the website.`,`Read recent reviews.`,`Scan social media.`,`Sometimes confirm through another platform or AI tool.`]},{type:`p`,text:`If your Google rating is strong but your website feels outdated, trust weakens.`},{type:`p`,text:`If your reviews are positive but old, prospects question whether your service quality is still the same.`},{type:`p`,text:`Consumers are not just checking reviews. They are validating credibility.`},{type:`p`,text:`Your Website Is the Conversion Point`},{type:`p`,text:`After reading reviews, most users visit your website before contacting you.`},{type:`p`,text:`This is where alignment matters.`},{type:`p`,text:`Your website should:`},{type:`list`,ordered:!1,items:[`Clearly explain your services`,`Reflect the professionalism mentioned in reviews`,`Make booking or contacting simple`,`Display consistent branding and messaging`]},{type:`p`,text:`If the experience does not match the reputation, conversions drop.`},{type:`p`,text:`Strong reviews create interest.`},{type:`p`,text:`A strong website turns that interest into revenue.`},{type:`p`,text:`Businesses Must Think Beyond Google`},{type:`p`,text:`Google remains dominant, but consumers also check:`},{type:`list`,ordered:!1,items:[`Facebook`,`Apple Maps`,`Industry directories`,`AI tools that summarize reviews`]},{type:`p`,text:`AI-generated summaries now pull themes from your reviews and present them in short recommendations. If your feedback is inconsistent or sparse, the summary reflects that.`},{type:`p`,text:`Your reputation now influences both human decision-making and automated recommendations.`},{type:`p`,text:`Recency and Consistency Matter More Than Ever`},{type:`p`,text:`Consumers often compare several businesses before choosing.`},{type:`p`,text:`They look for:`},{type:`list`,ordered:!1,items:[`4.5-star ratings or higher`,`A solid number of reviews`,`Recent feedback`,`Professional responses from the owner`]},{type:`p`,text:`Businesses that maintain a steady flow of reviews outperform those that rely on occasional bursts.`},{type:`p`,text:`The Strategic Question`},{type:`p`,text:`It is no longer:`},{type:`p`,text:`“Do we have good Google reviews?”`},{type:`p`,text:`It is:`},{type:`p`,text:`“Does our entire online presence support the trust those reviews create?”`},{type:`p`,text:`When Google visibility, review consistency, and website quality align, businesses see:`},{type:`list`,ordered:!1,items:[`Higher click-through rates`,`Stronger lead quality`,`Better conversion rates`,`More predictable growth`]},{type:`p`,text:`The Forward View`},{type:`p`,text:`Reputation management is now part of your marketing infrastru
12cture. It influences SEO, paid ads performance, and AI recommendations.`},{type:`p`,text:`Businesses that treat reviews as part of a broader digital strategy stay ahead of competitors who treat them as a passive metric.`},{type:`p`,text:`If your review profile, website, and online listings have not been reviewed recently, this is the time.`},{type:`p`,links:[{text:`How to Ask for Reviews`,href:`/how-to-ask-for-reviews-boost-your-online-reputation`},{text:`Beware of Companies Claiming to Remove Google Reviews`,href:`/beware-of-companies-claiming-to-remove-google-reviews`}],text:`Related reading: How to Ask for Reviews and Beware of Companies Claiming to Remove Google Reviews.`}]},{slug:`why-your-business-shouldnt-fear-ai-its-your-next-competitive-edge`,title:`Why Your Business Shouldn’t Fear AI. It’s Your Next Competitive Edge`,date:`2026-02-20`,author:`Karine Kugler`,excerpt:`Some roles will change, and yes, a few may disappear. But new opportunities are already emerging for those who learn how to use these tools effectively. The real story isn’t about loss, it’s about adaptation. Every major innovation, from computers to the internet, has challenged the way businesses o`,metaDescription:`Don’t fear AI, embrace it. Discover how small and medium businesses are using AI to boost efficiency and drive revenue growth.`,image:`/images/blog/why-your-business-shouldnt-fear-ai-its-your-next-competitive.jpg`,imageAlt:`do not fear ai`,imageWidth:1200,imageHeight:675,categories:[`Artificial Intelligence`],body:[{type:`p`,text:`Some roles will change, and yes, a few may disappear. But new opportunities are already emerging for those who learn how to use these tools effectively. The real story isn’t about loss, it’s about adaptation.`},{type:`p`,text:`Every major innovation, from computers to the internet, has challenged the way businesses operate. Artificial intelligence is simply the next step. Some business owners see it as too complicated or too risky. Others are already using it to save time, improve customer service, and make better decisions.`},{type:`p`,text:`The truth is that AI isn’t a threat to your business, it’s a powerful partner that can help it grow faster, smarter, and stronger.`},{type:`p`,text:`The Three Ways Businesses React to AI`},{type:`p`,text:`When faced with new technology, business leaders often fall into three mindsets:`},{type:`p`,text:`1. The Fear of Missing Out (FOMO): They rush to adopt every new tool to stay “ahead,” but without a clear strategy. They end up spending more time chasing trends than building results.`},{type:`p`,text:`2. The Fear of Messing Up (FOMU): They hold back, worried about making mistakes or wasting money. They wait for the “right time,” while competitors quietly move forward.`},{type:`p`,text:`3. The Focus on Maximizing Advantages (FOMA): They treat AI as a long-term investment, not a quick fix. They experiment, measure what works, and use it to strengthen their teams and processes. These are the businesses turning AI into a real competitive edge.`},{type:`p`,text:`AI as a Business Partner`},{type:`p`,text:`For small and medium-sized businesses, AI is less about replacing people and more about empowering them.`},{type:`p`,text:`AI can take on time-consuming or repetitive work, scheduling, data entry, inventory tracking, or ad optimization, freeing your team to focus on strategy, customer experience, and creative thinking.`},{type:`p`,text:`In manufacturing, predictive AI can spot issues before they become costly breakdowns. In retail, it can analyze buying patterns to better plan inventory. In service industries, it can help personalize customer communication and improve retention.`},{type:`p`,text:`Used wisely, AI becomes the extra teammate you didn’t know you needed.`},{type:`p`,text:`Start Small and Learn by Doing`},{type:`p`,text:`You don’t need a massive budget or a full-time data scientist to start using AI. The most successful businesses begin with small, practical steps, automating a few tasks, testing a chatbot, or using AI-powered analytics to identify sales trends.`},{type:`p`,text:`The key is to stay curious and give yourself space to learn. The more you experiment, the more you’ll understand what works for your business.`},{type:`p`,text:`Take Smart, Calculated Risks`},{type:`p`,text:`AI rewards action. The businesses that learn the fastest are those willing to test and adjust. Start with clear goals, track the impact, and expand what delivers value.`},{type:`p`,text:`According to a 2024 Google and BCG study, companies leading in AI adoption report up to 60% faster revenue growth than those still in the early stages. That difference isn’t about technology, it’s about mindset.`},{type:`p`,text:`The Real Advantage Comes From People`},{type:`p`,text:`AI can process information at lightning speed, but only humans bring creativity, empathy, and trust. The real power of AI lies in how people use it.`},{type:`p`,text:`When you combine human insight with machine intelligence, you get the best of both worlds — smarter operations and a stronger connection with your customers.`},{type:`p`,text:`Final Thought`},{type:`p`,text:`Don’t fear AI, embrace it thoughtfully. Start small, stay open, and make it work for your goals.`},{type:`p`,text:`Because the biggest risk isn’t that AI will change your business. It’s pretending that it won’t.`}]},{slug:`landing-page-conversion-tips`,title:`How to Create a Landing Page That Converts Visitors into Customers`,date:`2026-01-30`,author:`Karine Kugler`,excerpt:`A landing page is often the first impression visitors have of your business. More importantly, it is designed with one clear goal: to convert visitors into leads or customers. Unlike regular website pages, a landing page should be focused, direct, and built around a specific action. Even small impro`,metaDescription:`4 top tips to achieving the ultimate landing page and improve your website conversation rates.`,image:`/images/blog/landing-page-conversion-tips.jpg`,imageAlt:`Website checklist`,imageWidth:915,imageHeight:610,categories:[`Grow Your Business`],body:[{type:`p`,text:`A landing page is often the first impression visitors have of your business. More importantly, it is designed with one clear goal: to convert visitors into leads or customers.`},{type:`p`,text:`Unlike regular website pages, a landing page should be focused, direct, and built around a specific action. Even small improvements in conversion rate can have a significant impact on your results. Below are key strategies to help you build a more effective landing page.`},{type:`p`,text:`Your call to action is the most important element on your landing page. Whether you want users to request a quote, book an appointment, or make a purchase, the next step should be clear at all times.`},{type:`p`,text:`Use strong, action-driven language such as “Get a Quote,” “Book a Consultation,” or “Start Today.” Your call to action should be visible without scrolling and repeated throughout the page.`},{type:`p`,text:`Design also plays an important role. Buttons should stand out visually, with clear contrast and enough spacing to draw attention. The goal is to remove any hesitation and make it easy for users to take action.`},{type:`h2`,text:`Keep Your Landing Page Simple and Focused`},{type:`p`,text:`A common mistake is adding too many options or distractions. A landing page should guide users toward one specific goal, not multiple directions.`},{type:`p`,text:`Limit navigation menus, avoid unnecessary links, and keep your message clear. Eac
12h section of the page should support the main objective and lead users closer to conversion.`},{type:`p`,text:`A clean layout with clear headings, short paragraphs, and structured content improves readability and keeps visitors engaged.`},{type:`h2`,text:`Use Heat Maps to Understand User Behaviour`},{type:`p`,text:`Heat maps provide valuable insights into how visitors interact with your landing page. They show where users click, how far they scroll, and which areas attract the most attention.`},{type:`p`,text:`This data can reveal important opportunities. For example, users may click on elements they believe are buttons, or they may stop scrolling before reaching your call to action.`},{type:`p`,text:`By analysing this behaviour, you can adjust your layout, reposition key elements, and improve the overall user experience.`},{type:`h2`,text:`Build Trust with Testimonials and Social Proof`},{type:`p`,text:`Visitors are more likely to take action when they trust your business. Adding testimonials, reviews, and social proof helps reduce uncertainty and builds credibility.`},{type:`p`,text:`You can include:`},{type:`list`,ordered:!1,items:[`Customer testimonials`,`Google reviews or star ratings`,`Case studies or success stories`,`Logos of clients or partners`,`Certifications or professional affiliations`]},{type:`p`,text:`These elements reassure visitors that others have had positive experiences with your business.`},{type:`h2`,text:`Continuously Test and Improve Performance`},{type:`p`,text:`A high-performing landing page is never finished. Ongoing testing helps identify what works best and where improvements can be made.`},{type:`p`,text:`Focus on testing key elements such as:`},{type:`list`,ordered:!1,items:[`Headlines and messaging`,`Call-to-action buttons`,`Images and visuals`,`Form length and layout`]},{type:`p`,text:`Even small changes can have a measurable impact. A 1% increase in conversion rate can represent significant additional revenue over time.`},{type:`h2`,text:`Optimise for Speed and Mobile Users`},{type:`p`,text:`Many users will visit your landing page from a mobile device. If your page loads slowly or is difficult to navigate, visitors are likely to leave before taking action.`},{type:`p`,text:`Ensure your landing page:`},{type:`list`,ordered:!1,items:[`Loads quickly`,`Displays properly on all screen sizes`,`Has easy-to-click buttons and forms`]},{type:`p`,text:`A smooth user experience is essential to maintaining engagement and improving conversions.`},{type:`h2`,text:`Final Thought`},{type:`p`,text:`Creating an effective landing page requires a combination of clear messaging, strong design, and ongoing optimisation. There is no perfect version, but consistent improvements can lead to better performance over time.`},{type:`p`,text:`By focusing on user behaviour, reducing friction, and guiding visitors toward a clear action, your landing page can become a powerful tool for generating leads and growing your business.`}]},{slug:`google-search-still-powers-traffic-and-leads-even-as-ai-grows`,title:`Google Search Still Powers Traffic and Leads, Even as AI Grows`,date:`2026-01-02`,author:`Karine Kugler`,excerpt:`There is no question that AI is changing how people discover information. AI Overviews, chat-based search tools, and large language models are becoming more visible in search experiences and marketing discussions. However, visibility does not equal volume. For most businesses, Google remains the sin`,metaDescription:`AI search is growing, but Google still drives the majority of traffic and leads. Learn why SEO fundamentals and user experience continue to deliver results.`,image:`/images/blog/google-search-still-powers-traffic-and-leads-even-as-ai-grow.jpg`,imageAlt:`google search vs ai`,imageWidth:1200,imageHeight:800,categories:[`SEO & Search`],body:[{type:`p`,text:`There is no question that AI is changing how people discover information. AI Overviews, chat-based search tools, and large language models are becoming more visible in search experiences and marketing discussions.`},{type:`p`,text:`However, visibility does not equal volume.`},{type:`p`,text:`For most businesses, Google remains the single largest source of website traffic and conversions. While AI-driven discovery is growing, it currently represents a small percentage of overall sessions and leads compared to Google organic and paid search.`},{type:`p`,text:`The risk for many businesses is not ignoring AI, but shifting focus away from the channels that are still delivering consistent results today.`},{type:`h2`,text:`Google remains the dominant traffic and conversion channel`},{type:`p`,text:`Across industries, Google continues to drive the majority of qualified traffic. Whether users arrive through organic listings, paid search, local results, or Shopping ads, Google remains the primary gateway between intent and action.`},{type:`p`,text:`What we see consistently across client accounts is this:`},{type:`list`,ordered:!1,items:[`Google delivers the highest volume of high-intent traffic`,`Google traffic converts at a higher rate than most other channels`,`SEO and Google Ads continue to supp
12ort each other when aligned`]},{type:`p`,text:`AI tools are often used earlier in the research phase. Google, however, is still where users go when they are ready to compare options, book a service, request a quote, or make a purchase.`},{type:`p`,text:`That behaviour has not changed.`},{type:`h2`,text:`SEO fundamentals still produce measurable results`},{type:`p`,text:`With so much attention on AI optimisation, it is easy to overlook basic SEO improvements that still move rankings, clicks, and conversions.`},{type:`p`,text:`We continue to see strong performance gains from:`},{type:`list`,ordered:!1,items:[`Improving title tags and meta descriptions`,`Aligning page content with actual search intent`,`Fixing internal linking and crawl issues`,`Updating outdated pages instead of creating unnecessary new ones`]},{type:`p`,text:`These changes are not complex, but they are effective. In many cases, small on-page updates produce faster and more reliable results than experimental AI-focused tactics.`},{type:`p`,text:`SEO fundamentals remain one of the most cost-effective ways to improve visibility and conversion performance over time.`},{type:`h2`,text:`Content quality and authority continue to win`},{type:`p`,text:`AI has increased the volume of content online, but it has not changed what ranks well.`},{type:`p`,text:`Pages that perform best in Google still demonstrate:`},{type:`list`,ordered:!1,items:[`Clear expertise and topical focus`,`Up-to-date, well-structured content`,`Alignment with user questions and expectations`,`Authority built through consistency and relevance`]},{type:`p`,text:`Publishing stronger, more useful content on established topics continues to outperform thin or generic pages. When content is refreshed, expanded, and supported by a technically sound website, Google still rewards it with visibility.`},{type:`p`,text:`AI may influence how users discover content, but Google still decides what earns sustained traffic.`},{type:`h2`,text:`User experience is still where conversions happen`},{type:`p`,text:`No matter how users arrive at a website, conversions still happen on the site itself.`},{type:`p`,text:`A clear user journey remains essential:`},{type:`list`,ordered:!1,items:[`Fast load times`,`Mobile-friendly design`,`Simple navigation`,`Clear calls to action`,`Trust signals that reduce friction`]},{type:`p`,text:`AI does not replace these fundamentals. Even if discovery begins elsewhere, users still rely on websites to evaluate credibility and take action. Businesses that continue to invest in user experience and conversion optimisation consistently outperform those waiting for AI to replace the funnel.`},{type:`h2`,text:`Google is still the foundation, AI is the layer`},{type:`p`,text:`AI search is evolving, and it should be monitored. Understanding how AI Overviews and chat-based tools reference content is important for long-term strategy.`},{type:`p`,text:`But the data today is clear.`},{type:`p`,text:`Google remains the #1 traffic and conversion tool for most businesses. SEO fundamentals still deliver results. High-quality content still wins. User experience still drives conversions.`},{type:`p`,text:`The most effective strategy is not choosing between Google and AI. It is strengthening the foundation while preparing for what comes next.`},{type:`p`,links:[{text:`SEO services`,href:`/calgary-seo`},{text:`Making Your Content Visible in AI Search Results`,href:`/making-your-content-visible-in-ai-search-results`}],text:`Learn more: SEO services · Making Your Content Visible in AI Search Results.`}]},{slug:`online-digital-trends-to-watch`,title:`2026 Online Marketing Trends Shaping the AI-Driven Era`,date:`2025-12-17`,author:`Karine Kugler`,excerpt:`As we move into 2026, online marketing is no longer simply evolving; it is being redefined by AI. What began as automation and optimisation has now become intelligence-led strategy. With global digital ad spending continuing to grow beyond 2025 levels, the brands that succeed in 2026 will be those t`,metaDescription:`The 2026 online marketing trends shaping visibility, trust and conversions as AI becomes central to search, content and ad strategy.`,image:`/images/blog/online-digital-trends-to-watch.jpg`,imageAlt:`2026 Online Marketing Trends Shaping the AI-Driven Era`,imageWidth:1200,imageHeight:675,categories:[`Grow Your Business`],body:[{type:`p`,text:`As we move into 2026, online marketing is no longer simply evolving; it is being redefined by AI. What began as automation and optimisation has now become intelligence-led strategy. With global digital ad spending continuing to grow beyond 2025 levels, the brands that succeed in 2026 will be those that understand how AI influences visibility, trust, and decision-making across the entire customer journey.`},{type:`p`,text:`Here are the key online marketing trends shaping 2026, with AI at the centre of every strategy.`},{type:`h2`,text:`AI as the Core Marketing Engine`},{type:`p`,text:`In 2026, AI is no longer a supporting tool. It is the foundation of modern marketing strategies.`},{type:`p`,text:`AI now drives:`},{type:`list`,ordered:!1,items:[`Audience discovery and segmentation`,`Content planning and optimisation`,`Predictive performance modelling`,`Budget allocation across channels`,`Real-time optimisation of ads, landing pages, and messaging`]},{type:`p`,text:`Rather than reacting to performance data, AI enables marketers to anticipate outcomes and adjust strategies proactively. Businesses that rely solely on manual decision-making will struggle to compete with AI-informed competitors operating with greater speed and accuracy.`},{type:`h2`,text:`From Personalisation to Predictive Experiences`},{type:`p`,text:`Personalisation has matured into prediction.`},{type:`p`,text:`In 2026, AI analyses behavioural patterns, search intent, and contextual signals to anticipate what users need before they explicitly ask. Websites, emails, and ads dynamically adapt in real time based on:`},{type:`list`,ordered:!1,items:[`Stage in the buying journey`,`Past interactions across devices`,`Location and timing`,`Likelihood to convert`]},{type:`p`,text:`This shift reduces friction and shortens decision cycles. Brands that deliver relevant experiences at the right moment will see stronger engagement, higher conversion rates, and increased lifetime value.`},{type:`h2`,text:`Search Visibility Beyond Traditional Rankings`},{type:`p`,text:`Search behaviour has changed significantly. Users now rely on AI-generated summaries, conversational search, and expanded question results rather than scrolling through pages of links.`},{type:`p`,text:`In 2026, visibility depends on:`},{type:`list`,ordered:!1,items:[`Clear, structured content`,`Question-based formats such as FAQs`,`Strong topical authority`,`Trust signals and consistency across platforms`]},{type:`p`,text:`Websites that answer real questions clearly and accurately are more likely to be referenced in AI search results, including summaries and “People Also Ask” features. SEO is no longer just about rankings; it is about being selected by AI as a reliable source.`},{type:`h2`,text:`Video Content Built for AI Discovery`},{type:`p`,text:`Video remains essential, but its role has expanded.`},{type:`p`,text:`Short-form video continues to perform well for awareness, while long-form video supp
12orts credibility and education. In 2026, AI increasingly determines how video content is discovered, summarised, and surfaced across platforms.`},{type:`p`,text:`Successful video strategies focus on:`},{type:`list`,ordered:!1,items:[`Clear messaging within the first few seconds`,`Captions and transcripts for AI understanding`,`Topic-focused videos aligned with search intent`,`Authentic, real-world visuals over polished production`]},{type:`p`,text:`Video is no longer only for social platforms; it supports search visibility, conversion paths, and trust-building across the funnel.`},{type:`h2`,text:`Conversational Content as a Visibility Requirement`},{type:`p`,text:`AI-driven search and voice interfaces favour content written the way people naturally speak.`},{type:`p`,text:`In 2026, conversational content is essential for:`},{type:`list`,ordered:!1,items:[`Voice search`,`AI-generated answers`,`Chat-based discovery tools`,`On-site user engagement`]},{type:`p`,text:`This does not mean casual writing. It means clear, direct language that mirrors how customers ask questions and seek solutions. Brands that remove jargon and focus on clarity will be easier for both users and AI systems to understand.`},{type:`h2`,text:`Interactive Content That Feeds AI Insights`},{type:`p`,text:`Interactive content continues to grow, but its value now extends beyond engagement.`},{type:`p`,text:`Polls, quizzes, calculators, and guided tools provide first-party data that feeds AI models, improving future targeting and personalisation. In 2026, interactive experiences help brands:`},{type:`list`,ordered:!1,items:[`Understand intent more accurately`,`Refine messaging automatically`,`Improve c
12onversion paths without guesswork`]},{type:`p`,text:`This approach supports both performance and compliance as reliance on third-party data continues to decline.`},{type:`h2`,text:`Trust, Transparency, and AI Governance`},{type:`p`,text:`As AI becomes more influential, trust becomes a key differentiator.`},{type:`p`,text:`Consumers expect:`},{type:`list`,ordered:!1,items:[`Transparency in how data is used`,`Clear value in exchange for personal information`,`Ethical use of AI-generated content`]},{type:`p`,text:`In 2026, businesses must balance automation with accountability. Brands that communicate clearly, respect privacy, and maintain human oversight in AI-driven strategies will earn long-term trust and loyalty.`},{type:`h2`,text:`Consistency and Trust Signals in AI-Driven Marketing`},{type:`p`,text:`AI systems evaluate brand credibility by comparing content across websites, ads, listings, and third-party sources. In 2026, inconsistent claims, unsupported positioning, or vague value statements are easier for AI to detect and less likely to be surfaced in search results. Brands that align messaging with verifiable actions and consistent information send stronger trust signals, improving both visibility and conversion performance.`},{type:`h2`,text:`Final Thoughts`},{type:`p`,text:`Online marketing in 2026 is defined by intelligence, not volume. AI influences how content is created, discovered, trusted, and converted, but success still depends on strategy, clarity, and alignment with real customer needs.`},{type:`p`,text:`At The Three Marketers, we help businesses adapt to this AI-driven landscape with practical, forward-thinking strategies focused on visibility, performance, and long-term growth. The future of marketing is already here; the advantage lies in knowing how to use it effectively.`}]},{slug:`how-to-keep-your-customers-from-slipping-away`,title:`How to Keep Your Customers From Slipping Away`,date:`2025-11-03`,author:`Karine Kugler`,excerpt:`For small businesses, customers are everything. Getting someone to walk through your door (or click on your website) takes real effort—and once you have them, you don’t want to lose them. The truth is, people notice the little things, and if they spot red flags, they won’t hesitate to move on to the`,metaDescription:`Keep customers coming back with five simple habits that build trust, improve reviews, and make your small business easy to love.`,image:`/images/blog/how-to-keep-your-customers-from-slipping-away.jpg`,imageAlt:`customer slipping away`,imageWidth:1200,imageHeight:800,categories:[`Grow Your Business`],body:[{type:`p`,text:`For small businesses, customers are everything. Getting someone to walk through your door (or click on your website) takes real effort—and once you have them, you don’t want to lose them. The truth is, people notice the little things, and if they spot red flags, they won’t hesitate to move on to the next option. The good news? A few simple habits can make your business feel trustworthy, welcoming, and easy to deal with.`},{type:`p`,text:`Here are five practical ways to keep customers coming back.`},{type:`p`,text:`1. Build Trust With Transparent Pricing`},{type:`p`,text:`Nobody likes hidden costs. Listing clear prices—or at least starting prices—shows customers that you respect their time and budget. Even if your services vary, giving people an idea of what to expect helps them feel comfortable reaching out.`},{type:`p`,text:`Real-life example: A hair salon that posts “Cuts starting at $45, colour packages from $120” on their website instantly puts new customers at ease. Compare that to a salon with no prices listed—most people won’t even bother calling.`},{type:`p`,text:`2. Take Charge of Your Reviews`},{type:`p`,text:`Reviews are the new word-of-mouth. People read them, trust them, and often make decisions based on them. Responding to reviews—especially the tough ones—shows that you care. It also gives you a chance to turn a negative experience into a positive impression.`},{type:`p`,text:`Real-life example: A local restaurant gets a one-star review about slow service. Instead of ignoring it, the owner replies: “We’re sorry about your experience. We were short-staffed that night, but we’ve since added more servers. Please reach out for a complimentary appetizer on your next visit.” That kind of honesty can win back the reviewer—and impress everyone else reading it.`},{type:`p`,text:`3. Don’t Let Old Info Cost You Business`},{type:`p`,text:`Outdated info is one of the fastest ways to lose a customer. Imagine showing up at a shop that says it’s open, only to find the doors locked. Customers don’t usually give second chances after that.`},{type:`p`,text:`Real-life example: A dental clinic updates its Google Business hours before every holiday. Another clinic still lists “Open Saturdays” even though they stopped weekend hours months ago. Guess which one patients are more likely to trust?`},{type:`p`,text:`4. Clear Directions, Happy Customers`},{type:`p`,text:`If people can’t find you, they probably won’t try again. Make it as easy as possible for customers to locate you—online and in real life. Check your Google Maps pin, update signage, and share directions if you’re tucked away.`},{type:`p`,text:`Real-life example: A yoga studio in a crowded strip mall posted a quick video tour on Instagram showing exactly where their door is. They also updated their Google Maps pin. As a result, first-timers arrive relaxed, not stressed from circling the block.`},{type:`p`,text:`5. Humanize Your Online Presence`},{type:`p`,text:`The way you “sound” online matters. People can tell the difference between a genuine, human reply and a canned response. Being warm, friendly, and consistent in your messages makes customers feel like they’re dealing with real people—not a robot.`},{type:`p`,text:`Real-life example: An online shop gets a message about a delayed shipment. Instead of replying with a cold, generic line, they write: “Thanks for your patience, Sarah. We’ve checked your order—it’s on its way and should arrive Tuesday, two days earlier than expected! We’ve also added a 10% discount to your next purchase.” That personal touch builds loyalty.`},{type:`p`,text:`Keeping customers happy isn’t about grand gestures—it’s about the small, everyday details that show you care. Be upfront with your prices, respond to feedback, keep your info up to date, make yourself easy to find, and talk to people like people. Do these things, and customers won’t just stick around—they’ll recommend you to others.`}]},{slug:`social-media-strategies-small-businesses-can-easily-incorporate`,title:`Social Media Strategies Small Businesses Can Easily Incorporate`,date:`2025-10-28`,author:`Manon Kugler`,excerpt:`Everyone’s busy chasing trends and thinking they will go viral overnight, but here’s the real secret to social media success: being yourself. Authenticity and connection always go further than a hard sell. According to McKinsey, businesses with strong personalization strategies see up to 40% more re`,metaDescription:`Boost engagement and customer loyalty with simple social media strategies that help small businesses build authentic relationships and grow naturally.`,image:`/images/blog/social-media-strategies-small-businesses-can-easily-incorpor.jpg`,imageAlt:`Instagram content`,imageWidth:1200,imageHeight:800,categories:[`Social Media`],body:[{type:`p`,text:`Everyone’s busy chasing trends and thinking they will go viral overnight, but here’s the real secret to social media success: being yourself.`},{type:`p`,text:`Authenticity and connection always go further than a hard sell. According to McKinsey , businesses with strong personalization strategies see up to 40% more revenue and cut acquisition costs nearly in half, proving that being genuine and tailored in your messaging truly pays off.`},{type:`p`,text:`Here are three effective strategies that are easy to implement and can make a big difference when it comes to social media:`},{type:`h4`,text:`1. Tell Stories, Don’t Just Sell`},{type:`p`,text:`People connect with people, not products or services. Storytelling gives your brand a human touch and helps followers understand your “why.” Share how your business started, the inspiration behind your products or services, or the challenges and little wins you’ve overcome along the way.`},{type:`p`,text:`Example: Instead of posting “New candles in stock, buy now,” share the story behind how you chose each scent or highlight a customer’s experience using them to unwind after a long day. Make sure your stories feel relatable, that’s what builds emotional connections and turns casual viewers into loyal customers.`},{type:`h4`,text:`2. Show Behind-the-Scenes Moments`},{type:`p`,text:`Behind-the-scenes content builds transparency and trust, plus, it’s fun! Let followers peek into your workspace, see how products are made, or meet your team. The
12se moments make your brand feel more relatable and genuine.`},{type:`p`,text:`Example: If you run a bakery, show your early morning dough prep or your team decorating cupcakes before opening. It’s the real-life side of your business that audiences love to see.`},{type:`h4`,text:`3. Add Personal Touches`},{type:`p`,text:`You don’t always need to “sell”, sometimes, just showing up as you is enough. Personal touches remind people that there’s a real person behind the business. Engage with followers in the comments, share personal reflections, or highlight your community involvement.`},{type:`p`,text:`Example: Post a thank-you message after a busy week, introduce yourself in a story, or your life before what you are currently doing. These simple gestures foster loyalty and warmth, creating a community around your brand rather than a sales pitch.`},{type:`h4`,text:`4. Take and post your own pictures and videos`},{type:`p`,text:`When it comes to building trust online, authenticity matters more than perfection. Using real photos of your space, team, and services helps customers know exactly what to expect when they arrive. Stock images can look polished, but they create a disconnect, and in some cases, can even feel misleading. By showing your actual environment and real results, you build credibility, set clear expectations, and create a stronger emotional connection with potential clients.`},{type:`h3`,text:`Final Thoughts`},{type:`p`,text:`Social media success isn’t about posting the most polished content, it’s about building genuine relationships. By focusing on storytelling, showing your process, and adding personal touches, small businesses can grow their presence naturally while staying true to who they are.`},{type:`p`,text:`Just remember, consistency is key. Posting regularly and maintaining your brand’s voice helps you stay top of mind and build trust over time. It’s better to post simple, authentic content consistently than to aim for perfection and disappear for weeks.`}]},{slug:`is-marketing-the-issue-or-is-it-something-else`,title:`Is Marketing the Issue—Or Is It Something Else?`,date:`2025-10-06`,author:`Karine Kugler`,excerpt:`When a business isn’t getting the results it expects, marketing is often the first thing blamed. The ads must not be working. The website must need a redesign. The SEO must be off. While marketing plays a key role in business growth, it’s important to recognize that not all performance issues are ma`,metaDescription:`Not all performance issues are marketing issues. Learn how internal operations, customer experience, and demand affect business results and growth.`,image:`/images/blog/is-marketing-the-issue-or-is-it-something-else.jpg`,imageAlt:`marketing issues`,imageWidth:1200,imageHeight:802,categories:[`Grow Your Business`],body:[{type:`p`,text:`When a business isn’t getting the results it expects, marketing is often the first thing blamed. The ads must not be working. The website must need a redesign. The SEO must be off. While marketing plays a key role in business growth, it’s important to recognize that not all performance issues are marketing issues.`},{type:`p`,text:`Sometimes, the real reasons behind slow sales or lack of leads lie within the business itself.`},{type:`h2`,text:`No Demand? Marketing Can’t Create What Doesn’t Exist`},{type:`p`,text:`Marketing can amplify your message and increase visibility—but it can’t create demand where none exists. If your product or service isn’t something people need, want, or understand, even the most strategic campaign will struggle to deliver.`},{type:`p`,text:`Before investing more in advertising or SEO, ask:`},{type:`list`,ordered:!1,items:[`Is there a real need for this in the market?`,`Is your offering priced competitively?`,`Do customers understand the value you’re providing?`]},{type:`p`,text:`If the market isn’t there—or if the messaging doesn’t match what people care about—no amount of promotion can compensate.`},{type:`h2`,text:`Operational Issues Can Undermine Great Marketing`},{type:`p`,text:`Even with high-performing marketing in place, internal issues can derail your success. Consider:`},{type:`list`,ordered:!1,items:[`Long response times to inquiries`,`Poor customer service`,`Out-of-stock products or scheduling delays`,`Lack of follow-up with leads`,`Confusing checkout or booking processes`]},{type:`p`,text:`Marketing can drive traffic and leads, but it’s up to the business to convert that interest into action.`},{type:`h2`,text:`Marketing Can Expose Problems, Not Just Solve Them`},{type:`p`,text:`One of the lesser-known benefits of digital marketing is that it shines a light on what’s not working. If traffic is strong but conversions are low, that’s not a sign to pull back—it’s a chance to diagnose deeper issues:`},{type:`list`,ordered:!1,items:[`Is your product/service meeting expectations?`,`Are visitors finding what they need on your website?`,`Are you targeting the right audience?`]},{type:`p`,text:`In this sense, marketing becomes a diagnostic tool, helping identify gaps in the customer experience.`},{type:`h2`,text:`Marketing Is a Partnership—Not a Fix-All`},{type:`p`,text:`Effective marketing is built on collaboration and honesty . A strong campaign requires more than ad spend and ke
12ywords—it also needs:`},{type:`list`,ordered:!1,items:[`A product people want`,`A clear, valuable offer`,`Operational readiness to support growth`,`A commitment to tracking and testing`]},{type:`p`,text:`When businesses and marketing teams work together openly, it’s easier to understand where the real challenges lie—and how to solve them.`},{type:`p`,text:`At The Three Marketers, we believe that effective marketing doesn’t happen in isolation. Campaigns and analytics often reveal more than just performance—they expose strengths and weaknesses across the entire business. When viewed that way, marketing becomes more than a promotional tool; it becomes a way to understand what’s working, what’s not, and why. The most successful outcomes come when businesses treat marketing as an ongoing partnership—one that’s rooted in honesty, curiosity, and collaboration. Recognizing that marketing can only perform as well as the foundation it supports is the first step toward meaningful, sustainable growth`}]},{slug:`why-a-why-choose-us-section-can-give-your-business-an-edge`,title:`Why a “Why Choose Us” Section Can Give Your Business an Edge`,date:`2025-09-09`,author:`Karine Kugler`,excerpt:`When someone lands on your website, you have only seconds to show them why they should choose you over the competition. A well-thought-out “Why Choose Us” section or page can make all the difference in turning a visitor into a customer. It’s not about clever slogans or vague promises — it’s about gi`,metaDescription:`A strong “Why Choose Us” page builds trust, improves search rankings, and turns clicks into customers. Learn how to create one that works.`,image:`/images/blog/why-a-why-choose-us-section-can-give-your-business-an-edge.jpg`,imageAlt:`why choose us page`,imageWidth:1200,imageHeight:675,categories:[`Grow Your Business`,`SEO & Search`],body:[{type:`p`,text:`When someone lands on your website, you have only seconds to show them why they should choose you over the competition. A well-thought-out “Why Choose Us” section or page can make all the difference in turning a visitor into a customer.`},{type:`p`,text:`It’s not about clever slogans or vague promises — it’s about giving people clear, specific reasons to trust you, hire you, or buy from you. Whether it’s on a dedicated page or a prominent section of your homepage, a “Why Choose Us” feature is one of the simplest ways to boost your visibility, credibility and sales.`},{type:`h2`,text:`Where to Put your “Why Choose us?” feature`},{type:`p`,text:`A “Why Choose Us” feature doesn’t have to be a standalone page. While a separate page works well for linking from menus, ads, and service pages, it’s equally effective as a bold, easy-to-find section on your homepage or location pages. The goal is to make it impossible for a visitor to miss your most important selling points.`},{type:`h2`,text:`What to Include in your “Why Choose us?”`},{type:`p`,text:`The best “Why Choose Us” sections are specific. Think about what matters most to your customers and highlight it in clear, simple language. For example:`},{type:`p`,text:`What you offer – your products, services, or areas of expertise`},{type:`p`,text:`Specialisations – whether you cover everything or focus on a niche`},{type:`p`,text:`Customer reviews – real words from happy clients build instant trust`},{type:`p`,text:`Unique strengths – what makes you different, in your customers’ own words`},{type:`p`,text:`Availability – same-day service, extended hours, 24/7 support, etc.`},{type:`p`,text:`Experience – years in business or team expertise`},{type:`p`,text:`Pricing transparency – free quotes, clear rates, or upfront pricing`},{type:`p`,text:`Service area – where you work`},{type:`p`,text:`Languages spoken – if you can serve clients in multiple languages`},{type:`p`,text:`Ownership story – family-run, local, multi-generational, etc.`},{type:`p`,text:`Awards or recognition – industry or community awards`},{type:`p`,text:`Licences and certifications – proof of your qual
12ifications`},{type:`p`,text:`Special offers or discounts – any current promotions`},{type:`h2`,text:`How to Find Your Best-Selling Points`},{type:`p`,text:`Your customers are your best source of inspiration. Look at what people praise most in your reviews and testimonials — those are your strengths. You can also check competitors’ reviews to see where they fall short. If you excel in those areas, highlight them.`},{type:`p`,text:`Using customers’ own words in your section makes it more relatable, authentic, and trustworthy. It also creates content that works well for online visibility.`},{type:`h2`,text:`How a “Why Choose us?” feature Helps SEO, AI Search, and Paid Ads`},{type:`p`,text:`How It Helps SEO`},{type:`p`,text:`A strong “Why Choose Us” section gives Google more reasons to show your business whenpeople search online. By clearly stating what you offer, where you work, and what makes you different, you give search engines exactly what they need to connect you with potential customers.`},{type:`p`,text:`Example: Adding “24/7 plumbing in Calgary” means your page can show when someone searches for that exact service.`},{type:`p`,text:`Example: Mentioning “15 years of roofing experience” signals to Google that you’re an established, trustworthy choice.`},{type:`p`,text:`How It Helps AI Search`},{type:`p`,text:`AI tools like ChatGPT and Google’s AI Overviews pull from clear, detailed business information when giving recommendations. The more specific and customer-focused your “Why Choose Us” section is, the more likely you are to appear when people ask for “the best” in your field.`},{type:`p`,text:`Example: Yellowknife Outdoor Adventures appeared in AI results for “best pike fishing tour in Yellowknife” because their page clearly explained what they offer and why people love it.`},{type:`p`,text:`Example: Holloway Paving showed up for “best paving company in Calgary” thanks to a detailed, easy-to-read homepage section.`},{type:`p`,text:`How It Helps Paid Ads`},{type:`p`,text:`When people click your ads, a clear “Why Choose Us” section helps turn that click into a customer. Ad platforms also reward high-quality landing pages, which can lower your cost per click.`},{type:`p`,text:`Example: A Google Ad for a dentist linking to a page with awards, reviews, and same-day booking options will convert more visitors.`},{type:`p`,text:`Example: Your top selling points can be reused in ad headlines to grab attention before people even click.`},{type:`p`,text:`The Bottom Line`},{type:`p`,text:`A “Why Choose Us” section is a simple but powerful way to set your business apart. It builds trust, helps search engines and AI tools understand your strengths, and can improve your paid advertising results.`},{type:`p`,text:`Take 30 minutes today to outline your top 5 selling points, and add them to your homepage. Your future customers — and search engines — will thank you.`}]},{slug:`how-long-should-a-blog-post-be`,title:`How Long Should a Blog Post Be? A Guide for Business Owners`,date:`2025-08-06`,author:`Karine Kugler`,excerpt:`If you’re a business owner trying to grow your visibility online, blogging can be one of your most effective marketing tools. But one of the most common questions we hear is: “How long should my blog posts be?” The answer depends on your goals—whether you’re looking to rank higher on Google, improve`,metaDescription:`A strong “Why Choose Us” section helps your business stand out, build trust, boost SEO, and improve conversions across search and paid ads.`,image:`/images/blog/how-long-should-a-blog-post-be.jpg`,imageAlt:`blog post length`,imageWidth:1200,imageHeight:675,categories:[`SEO & Search`],body:[{type:`p`,text:`If you’re a business owner trying to grow your visibility online, blogging can be one of your most effective marketing tools. But one of the most common questions we hear is:`},{type:`p`,text:`“How long should my blog posts be?”`},{type:`p`,text:`The answer depends on your goals—whether you’re looking to rank higher on Google, improve engagement with your audience, get featured in AI-generated search results, or become a trusted source of knowledge in your field.`},{type:`p`,text:`In this guide, we break down how blog post length (and structure) affects performance—and how to write articles that actually help your readers.`},{type:`h2`,text:`Don’t Write Just for Google—Write to Help People`},{type:`p`,text:`It’s tempting to write content only to check off SEO boxes. But if your blog post doesn’t teach your audience something or offer real value, it won’t perform well—regardless of length.`},{type:`p`,text:`A good blog should help your ideal customer solve a problem, answer a question, or make a better decision.`},{type:`p`,text:`If someone reads your article and feels like they’ve learned something, they’re far more likely to trust your brand, return to your site, and take action—whether that’s booking a service, signing up for your newsletter, or making a purchase.`},{type:`p`,text:`Search engines (and AI tools) reward useful, clear, and well-structured content. So always start with your customer in mind—not the algorithm.`},{type:`h2`,text:`How Blog Post Length Affects Results`},{type:`p`,text:`Different lengths work better depending on what you want to achieve:`},{type:`h2`,text:`If You Want to Rank Higher on Google (SEO): 1,000 to 1,500 words`},{type:`p`,text:`Longer content often performs better in search results because it:`},{type:`list`,ordered:!1,items:[`Covers the topic more thoroughly`]},{type:`list`,ordered:!1,items:[`Naturally includes a variety of keywords`]},{type:`list`,ordered:!1,items:[`Attracts backlinks from other websites`]},{type:`list`,ordered:!1,items:[`Gets shared and saved more often`]}
12,{type:`p`,text:`Best for:`},{type:`list`,ordered:!1,items:[`Service pages with detailed information`]},{type:`list`,ordered:!1,items:[`“How-to” guides`]},{type:`list`,ordered:!1,items:[`Blog posts that explore a subject from multiple angles`]},{type:`h2`,text:`If You Want to Educate and Engage Readers: 600 to 900 words`},{type:`p`,text:`Shorter blogs can still offer a lot of value—especially if your readers are on the go or want a quick answer. These posts are easier to read on mobile and better for audiences with limited time.`},{type:`p`,text:`Best for:`},{type:`list`,ordered:!1,items:[`FAQs`]},{type:`list`,ordered:!1,items:[`Light educational tips`]},{type:`list`,ordered:!1,items:[`Personal insight or opinion pieces`]},{type:`h2`,text:`If You Want to Build Authority: 1,500 to 2,500+ words`},{type:`p`,text:`When you want to become a go-to source in your industry, longer content is a must. These comprehensive articles build trust and help your business show up for more related searches.`},{type:`p`,text:`Best for:`},{type:`list`,ordered:!1,items:[`Pillar content (in-depth pages that link to related articles)`]},{type:`list`,ordered:!1,items:[`Industry trend reports`]},{type:`list`,ordered:!1,items:[`Step-by-step guides or tutorials`]},{type:`h2`,text:`How AI Tools Choose Blog Content`},{type:`p`,text:`Google’s AI Overviews and other AI-driven search features are changing the game. These tools look for content that:`},{type:`list`,ordered:!1,items:[`Clearly answers questions`]},{type:`list`,ordered:!1,items:[`Is well-organized`]},{type:`list`,ordered:!1,items:[`Uses easy-to-read formatting`]},{type:`h2`,text:`To improve your chances of being included in AI-generated results:`},{type:`list`,ordered:!1,items:[`Put a direct, accurate answer near the top of the article`]},{type:`list`,ordered:!1,items:[`Use subheadings that match what people search (like “How much does ___ cost?”)`]},{type:`list`,ordered:!1,items:[`Keep the first few sentences of each section concise`]},{type:`list`,ordered:!1,items:[`Avoid filler—get to the point`]},{type:`h2`,text:`Structuring Your Blog Post for Readers and Search Engines`},{type:`p`,text:`Even if you’re not an SEO expert, how you organize your blog post matters just as much as the content itself. A good structure makes it easier for your audience to read and easier for search engines to understand.`},{type:`p`,text:`Here’s a simple, proven way to format your blog:`},{type:`list`,ordered:!1,items:[`Start with a clear headline`]},{type:`list`,ordered:!1,items:[`Use subheadings to divide your content (like mini chapters)`]},{type:`list`,ordered:!1,items:[`Keep paragraphs short — no more than 2–4 sentences`]},{type:`list`,ordered:!1,items:[`Use bullet points or numbered lists to highlight key takeaways`]},{type:`list`,ordered:!1,items:[`Answer key questions near the top of each section so busy readers get value fast`]},{type:`p`,text:`This format improves readability on mobile and helps both Google and AI tools identify the most useful parts of your article.`},{type:`h2`,text:`Best Word Count Range for Most Business Blogs: 800 to 1,200 Words`},{type:`p`,text:`For most local businesses and service providers, this is the sweet spot:`},{type:`list`,ordered:!1,items:[`It’s long enough to be informative and SEO-friendly`]},{type:`list`,ordered:!1,items:[`It’s short enough to keep readers’ attention`]},{type:`list`,ordered:!1,items:[`It works well on mobile devices and in AI-generated answers`]},{type:`h2`,text:`Final Thoughts: Focus on Value First, Length Second`},{type:`p`,text:`There’s no magic number for blog word count. The right length depends on your topic, your audience, and your goals.`},{type:`p`,text:`But one thing is always true:`},{type:`quote`,text:`If your blog post helps someone, answers a question clearly, and is easy to read—it has a much better chance of ranking, getting shared, and converting visitors into customers.`},{type:`h2`,text:`Need Help Creating Content That Ranks and Converts?`},{type:`p`,text:`At The Three Marketers, we don’t just write for search engines—we create blog content that builds trust, educates your audience, and grows your business. Contact us today to get help with your blog strategy. We’ll help you pick the right format, structure, and word count to meet your goals and stay ahead of search trends.`},{type:`p`,links:[{text:`SEO services`,href:`/calgary-seo`},{text:`Hiring a SEO Company`,href:`/hiring-a-seo-company`}],text:`Learn more: SEO services · Hiring a SEO Company.`}]},{slug:`what-are-google-ai-overviews`,title:`What Are Google’s AI Overviews—And Why Should Your Business Care?`,date:`2025-07-03`,author:`Karine Kugler`,excerpt:`Google’s new AI Overviews are changing how people search—and how businesses get found. These AI-generated summaries now appear at the top of search results, answering user questions by pulling insights from multiple sources. They’re designed to save users a click—but that also means your website may`,metaDescription:`Google’s AI Overviews appear in 13% of searches. Learn how to get your business featured and stay visible in AI-driven search results.`,image:`/images/blog/what-are-google-ai-overviews.jpg`,imageAlt:`ai driven search results`,imageWidth:1200,imageHeight:800,categories:[`Artificial Intelligence`,`SEO & Search`],body:[{type:`p`,text:`Google’s new AI Overviews are changing how people search—and how businesses get found. These AI-generated summaries now appear at the top of search results, answering user questions by pulling insights from multiple sources. They’re designed to save users a click—but that also means your website may not get visited, even if you’re the source of the answer.`},{type:`p`,text:`Key Facts:`},{type:`list`,ordered:!1,items:[`As of March 2025, over 13% of all Google searches trigger an AI Overview.`,`88% of AI Overview queries are informational (like definitions, comparisons, and how-tos).`,`Industries most impacted so far include Health, Law, Science, and Society .`,`AI Overviews tend to appear for low-competition, low-CPC keywords with educational intent.`]},{type:`p`,text:`What This Means for Your Business:`},{type:`list`,ordered:!1,items:[`SEO is no longer just about ranking— it’s about being included in the answer .`,`Your blog articles, FAQ content, and how-to guides can earn a spot in AI Overviews if written clearly, factually, and with expert authority.`,`Zero-click searches are increasing, but AI Overviews don’t always reduce clicks. The right content can still drive traffic and trust.`]},{type:`p`,text:`How to Prepare:`},{type:`list`,ordered:!1,items:[`Focus on answer-based content : Write blog posts that answer specific questions your customers are asking.`,`Use clear headings and structure so Google can easily pull from your content.`,`Aim to build authority in your industry by publishing trustworthy, well-cited information.`,`Stay visible by monitoring your keywords and competitor performance in AI search features.`]},{type:`p`,text:`Want to Be Featured in Google’s AI Answers?`},{type:`p`,text:`We help businesses like yours create optimized, helpful content that can earn visibility in the new AI-powered search results. Contact us today to start building a strategy that keeps your business visible.`},{type:`p`,text:`Reference: SEMrush AI Overview study`},{type:`p`,links:[{text:`SEO services`,href:`/calgary-seo`},{text:`Making Your Content Visible in AI Search Results`,href:`/making-your-content-visible-in-ai-search-results`}],text:`Learn more: SEO services · Making Your Content Visible in AI Search Results.`}]},{slug:`how-ai-tools-are-changing-search`,title:`How AI Tools Are Changing Search—And What It Means for Your Online Marketing Strategy`,date:`2025-06-20`,author:`Karine Kugler`,excerpt:`At The Three Marketers, we’ve recently noticed a shift in traffic patterns: Google Analytics is now showing users arriving from AI tools like ChatGPT, Google Gemini, and Microsoft Copilot—something we didn’t see just a few months ago. While Google still brings in most search traffic, this change sig`,metaDescription:`AI tools like ChatGPT and Gemini are changing how people search online. Find out what this shift means for SEO, content, and your digital marketing strategy.`,image:`/images/blog/how-ai-tools-are-changing-search.jpg`,imageAlt:`ai tools`,imageWidth:1200,imageHeight:800,categories:[`Artificial Intelligence`,`SEO & Search`],body:[{type:`p`,text:`At The Three Marketers, we’ve recently noticed a shift in traffic patterns: Google Analytics is now showing users arriving from AI tools like ChatGPT, Google Gemini, and Microsoft Copilot—something we didn’t see just a few months ago. While Google still brings in most search traffic, this change signals how quickly user behaviour is evolving. These AI tools aren’t just being used for c
12ontent creation or casual conversation—they’re now playing a growing role in how people discover and engage with information. If your digital strategy is focused only on traditional search engines, it’s time to start thinking about how these tools fit into your overall approach.`},{type:`p`,text:`1. How People Use AI Tools vs. Google`},{type:`p`,text:`Google searches are usually short and keyword-based. In contrast, AI tools encourage a more natural, conversational tone. Research from Semrush and Statista found:`},{type:`list`,ordered:!1,items:[`Prompts without web search average 23 words—often multi-step or deeply thought-out.`,`Prompts with web search average only 4.2 words, similar to Google-style queries.`]},{type:`p`,text:`This shows users turn to AI for both quick answers and more in-depth help . Your content should be structured to support both short responses and detailed explanations.`},{type:`p`,text:`2 . AI Tools Refer Traffic to Different Websites`},{type:`p`,text:`Traditional SEO focuses on queries that are informational, navigational, or transactional. But around 70% of AI tool prompts don’t fall into these categories. People use AI tools for brainstorming, planning, summarizing, and idea generation.`},{type:`p`,text:`This means your content strategy should go beyond just targeting keywords. Include:`},{type:`list`,ordered:!1,items:[`Templates, checklists, and how-to guides`,`Explainer content that helps users get started or make decisions`,`Advice-based content that feels helpful and trustworthy`]},{type:`p`,text:`3. AI Traffic Favourites: Education, Tech, and Tools`},{type:`p`,text:`AI tools are currently driving the most traffic to:`},{type:`list`,ordered:!1,items:[`Educational content and e-learning sites`,`Developer documentation and tech platforms`,`Online services and productivity tools`]},{type:`p`,text:`Industries like retail, finance, and healthcare also receive traffic—but to a lesser degree. If your business offers learning resources or online tools, now is the time to make sure that content is optimized and easy to reference.`},{type:`p`,text:`4. The AI Tool Audience: Younger and Curious`},{type:`p`,text:`AI users tend to be younger and more student-focused compared to traditional search users. If you’re trying to reach students or Gen Z:`},{type:`list`,ordered:!1,items:[`Keep the tone friendly and conversational`,`Offer content that helps solve problems or answer questions`,`Avoid being too sales-focused—helpfulness wins here`]},{type:`p`,text:`What This Means for Your Digital Marketing Strategy`},{type:`p`,text:`We’re not saying you should stop investing in SEO or PPC. But if you want to stay ahead, it’s worth adapting to how people now use AI tools to search and explore.`},{type:`p`,text:`Here are a few quick wins:`},{type:`p`,text:`✅ Structure content clearly with headings, bullet points, and summaries ✅ Use schema markup and FAQs to make your site more AI-friendly ✅ Create listicles, how-to articles, and reference-style content ✅ Track your brand mentions online—not just your rankings in Google`},{type:`p`,text:`Search behaviour is evolving—and your strategy should evolve with it.`},{type:`p`,text:`Need help adapting? Reach out to The Three Marketers . We’ll help you stay visible and competitive across both traditional and AI-powered search platforms.`},{type:`p`,text:`References:`},{type:`list`,ordered:!0,items:[`Audience Demographics – ChatGPT vs Google , Dec 2024`,`Investigating ChatGPT Search: Insights from 80 Million Clickstream Records , Feb 2025`]},{type:`p`,links:[{text:`SEO services`,href:`/calgary-seo`},{text:`What Are Google AI Overviews?`,href:`/what-are-google-ai-overviews`}],text:`Learn more: SEO services · What Are Google AI Overviews?.`}]},{slug:`smarter-ads-better-results-new-ai-powered-google-ads-updates`,title:`Smarter Ads, Better Results: New AI-Powered Google Ads Updates for Businesses`,date:`2025-05-21`,author:`Karine Kugler`,excerpt:`Every year, Google hosts Google Marketing Live, an event where they unveil the latest innovations in advertising and share how businesses can use Google Ads more effectively. The 2025 edition focused heavily on how artificial intelligence is transforming search, campaign performance, and creative pr`,metaDescription:`Google Ads updates to Performance Max, Demand Gen and the new AI Max for Search help businesses improve targeting, creatives and results.`,image:`/images/blog/smarter-ads-better-results-new-ai-powered-google-ads-updates.jpg`,imageAlt:`Google Marketing Live 2025`,imageWidth:1200,imageHeight:545,categories:[`Artificial Intelligence`,`Google Ads`],body:[{type:`p`,text:`Every year, Google hosts Google Marketing Live , an event where they unveil the latest innovations in advertising and share how businesses can use Google Ads more effectively. The 2025 edition focused heavily on how artificial intelligence is transforming search, campaign performance, and creative production across the entire Google Ads platform.`},{type:`p`,text:`At The Three Marketers, we stay ahead of these updates so you don’t have to. This year’s announcements include new campaign types like AI Max for Search , enhanced tools for Performance Max and Demand Gen , and smarter creative solutions using tools like Asset Studio , Veo , and Imagen . These updates are designed to help businesses like yours reach more qualified customers, improve the performance of your campaigns, and reduce the time and effort needed to create effective ad content.`},{type:`p`,text:`In this article, we’ll explain each of these campaign types and tools in simple terms—and show how we’ll use them to help your business grow.`},{type:`h2`,text:`AI Max for Search Campaign`},{type:`p`,text:`AI Max for Search leverages Google AI to boost search ad performance.`},{type:`p`,text:`AI Max for Search is a new Search Ads option that uses Google’s AI to supercharge your search campaigns. This campaign type introduces a suite of AI-driven targeting and creative enhancements, bringing the best of Google AI to Search advertising. In practical terms, AI Max for Search can automatically find new, relevant search queries that your ads should show for – even queries you didn’t explicitly target – and serve tailored ads to those searches. It can also help expand your reach into AI-powered search results (for example, the new AI search overviews), ensuring your ads appear in the latest search experiences. The benefit for your business is expanded reach and higher-quality clicks: you can connect with more potential customers who are searching for relevant products or services, and do so with ads that are automatically optimized to match what those customers are looking for.`},{type:`h2`,text:`Performance Max Campaigns`},{type:`p`,text:`Performance Max campaigns reach customers across multiple Google channels from one campaign.`},{type:`p`,text:`Performance Max (often called PMax ) is an all-in-one, goal-based campaign type that allows your business to advertise across all of Google’s channels via a single campaign. This means one Performance Max campaign can show your ads on Search, YouTube, Display Network websites, Discover feed, Gmail, Maps – everywhere Google Ads can appear. The advantage is a massively expanded reach: Performance Max finds potential customers wherever they are in the Google ecosystem. Importantly, it uses Google’s real-time AI to optimize for the goals you set (such as maximizing conversions or sales), so it helps you find more converting customers across all of Google’s channels . In other words, PMax will automatically allocate your budget to the best-performing channels and audiences, delivering more results by showing the right ad to the right person at the right time. Over the past year, Google has rolled out many improvements to Performance Max that increased conversion rates and gave advertisers more transparency and control. For example, there are new reports that let us see which platforms (YouTube, Search, etc.) are driving results and tools to guide the AI with negative keywords or asset preferences. What this means for you as a business owner is better performance with less manual work – Performance Max can drive more conversions and value while simplifying campaign management.`},{type:`h2`,text:`Demand Gen Campaigns`},{type:`p`,text:`Demand Gen campaigns serve eye-catching visual ads on YouTube, Shorts, Gmail, and more.`},{type:`p`,text:`Demand Gen campaigns are a new campaign type focused on generating customer interest through highly visual, immersive ads. A Google Demand Gen campaign is an AI-powered campaign ideal for serving visually appealing, multi-format ads on Google’s most prominent visual platforms – including YouTube, YouTube Shorts, Discover, and Gmail The goal here is to create and capture demand by engaging people with image and video ads in the places they spend time browsing and discovering (much like social media style advertising, but within Google’s networks). Demand Gen uses Google’s AI to optimize your video and image ads: it can automatically create the best combination of compelling visuals, ad messages, and placements to inspire users and drive them to take action. This campaign type also offers advanced audie
12nce targeting to help you grow your customer base – for example, you can use lookalike audiences (finding new people similar to your existing customers) to expand your reach efficiently. Additionally, you have control over where your ads show; new channel controls let you adjust your media mix (for instance, balancing spend between YouTube and other channels as needed). In short, Demand Gen campaigns help your business spark interest and reach new customers with engaging, visually rich ads. They are perfect for showcasing your brand or product in action and driving early-funnel engagement that can lead to conversions.`},{type:`p`,text:`AI-Powered Creative Tools: Asset Studio, Veo, and Imagen`},{type:`p`,text:`No modern ad campaign can succeed without great creative, and Google’s new creative tools are here to make producing images and videos for ads easier than ever. Asset Studio , Veo , and Imagen are three tools introduced (or enhanced) in 2025 that help marketers quickly generate high-quality visual content for their ads. Here’s a quick look at each:`},{type:`list`,ordered:!1,items:[`Asset Studio: This is a centralized creative hub within Google Ads for crafting and managing all your ad assets. Asset Studio brings together existing creative tools and new AI features in one place, streamlining your creative workflow. Using Asset Studio, we will be able to generate new image assets featuring your products (for example, placing your product into different backgrounds or “in action” lifestyle scenes) with just a few clicks. It’s essentially a one-stop shop to create, import, and preview ad visuals, which means faster production of banners, images, and even simple videos to use in campaigns. This is especially useful for small businesses that may not have in-house design teams – Asset Studio puts powerful creative capabilities at our fingertips to benefit your ads.`]},{type:`list`,ordered:!1,items:[`Veo: Veo is Google’s latest AI model for video creation. It enables image-to-video transformation , meaning we can take a static image or a few assets and turn them into a short video clip . Video ads are very engaging, and with Veo, we can quickly produce professional-looking video snippets without expensive production crews. For example, if you have a couple of product photos, Veo can help animate them or transition between them with music and effects, creating a dynamic video ad that captures attention. Google has even introduced AI features like AI outpainting in videos (which can extend or reframe video content beyond the original shot) to adapt videos to different formats. In essence, Veo gives advertisers creative video superpowers.`]},{type:`list`,ordered:!1,items:[`Imagen: Imagen is Google’s advanced AI image-generation model. It can create stunning, high-quality images from text or existing visuals . Within the Google Ads context, Imagen can help us generate custom images for your ads on demand. For instance, if we need a unique background or a lifestyle image of someone using your product but don’t have one on file, Imagen’s AI can create a realistic image to fit the need. This tool can also expand image content (similar to generative “outpainting”), which is useful if we need to adjust an image to fit different ad dimensions. The bottom line is that Imagen allows us to produce professional-grade imagery without a photoshoot – saving time and costs while still giving your ads a polished look.`]},{type:`p`,text:`Together, these tools ensure that your ads will have strong visuals and videos to attract customers. The result is ads that not only reach more but also resonate with viewers due to high-quality, relevant creative content.`},{type:`p`,text:`Conclusion`},{type:`p`,text:`The updates from Google Marketing Live 2025 mark an exciting step forward for advertisers, especially for small and medium businesses that rely on efficient tools to grow. Google is infusing its ad platform with AI at every level – from campaign optimization with AI Max for Search , Performance Max , and Demand Gen , to creative production with Asset Studio , Veo , and Imagen . The purpose of all these innovations is simple: to help businesses expand their reach , get better targeting and higher-quality clicks , and create compelling ads with less effort. As a client of The Three Marketers , you can be confident that we are already embracing these tools and campaign types to improve your results. Our team will handle the complexity – setting up the optimal campaign mix, employing Google’s AI features smartly, and producing great visuals – so that you can focus on running your business. The future of advertising is AI-driven, and with The Three Marketers as your partner, you’ll be at the forefront of these changes. We’ll ensure these new Google Ads features are used to grow your business and deliver the best possible return on your advertising investment, all in a simple and professional way that aligns with your goals.`},{type:`p`,text:`Sources: Google Marketing Live 2025 announcements and Google Ads product updates`},{type:`p`,links:[{text:`Google Ads management`,href:`/calgary-google-ads-management`},{text:`Google Ads Budget Guide`,href:`/google-ads-budget-guide-for-calgary-businesses`}],text:`Learn more: Google Ads management · Google Ads Budget Guide.`}]},{slug:`reaching-new-markets-grow-your-canadian-business-globally`,title:`Reaching New Markets: Grow Your Canadian Business Globally`,date:`2025-05-08`,author:`Karine Kugler`,excerpt:`As Canadian businesses continue to face challenges from shifting trade policies and U.S. tariffs, it’s becoming increasingly important to diversify export strategies and reduce reliance on a single market. Fortunately, online marketing provides a powerful, cost-effective way to reach new audiences a`,metaDescription:`Worried about U.S. tariffs? Use online marketing and free tools to help your Canadian business grow in new international markets.`,image:`/images/blog/reaching-new-markets-grow-your-canadian-business-globally.jpg`,imageAlt:`Multilingual websites`,imageWidth:1200,imageHeight:720,categories:[`Grow Your Business`],body:[{type:`p`,text:`As Canadian businesses continue to face challenges from shifting trade policies and U.S. tariffs, it’s becoming increasingly important to diversify export strategies and reduce reliance on a single market. Fortunately, online marketing provides a powerful, cost-effective way to reach new audiences and build customer bases in untapped regions.`},{type:`p`,text:`Whether you manufacture products, offer professional services, or run an e-commerce business, the digital space offers unprecedented opportunities to grow globally — without the need for a physical presence in every country.`},{type:`p`,text:`Why Diversifying Markets Matters`},{type:`p`,text:`U.S. tariffs can significantly impact the cost and competitiveness of Canadian goods in the American market. While the U.S. remains an important trading partner, placing all your growth potential in one market makes your business vulnerable to regulatory changes. Exploring international markets helps:`},{type:`list`,ordered:!1,items:[`Reduce risk from economic or political changes`,`Unlock new customer segments with less competition`,`Strengthen brand resilience by expanding reach`]},{type:`p`,text:`Use Google’s Market Finder to Discover New Opportunities`},{type:`p`,text:`A valuable first step in going global is identifying markets where your products or services are in demand. Google’s Market Finder is a free tool designed to help businesses explore international expansion. It enables you to:`},{type:`list`,ordered:!1,items:[`Discover new high-potential markets based on your website and industry`,`Understand local consumer behaviour and purchasing trends`,`Access information about logistics, tax regulations, and localisation requirements`]},{type:`p`,text:`By entering your website into the tool, you receive a list of suggested countries and insights that support smart decision-making as you scale.`},{type:`p`,text:`Other Tools That Can Support Global Growth`},{type:`p`,text:`Here are additional online resources to help guide your international marketing efforts:`},{type:`list`,ordered:!1,items:[`International Trade Centre (ITC) Market Access Map (free) : Run by the International Trade Centre, this free tool helps you explore customs tariffs, trade agreements, and dut
12ies by country. It’s an essential resource for understanding potential costs and barriers to entry in new markets.`,`Statista Global Consumer Survey (paid subscription) : Statista provides in-depth market research and consumer data across multiple countries. While some content is available with a basic account, full access to their Global Consumer Survey requires a paid subscription.`,`Shopify Market Reports (free with Shopify plan) : If you’re using Shopify, this dashboard gives you data on your customers, sales trends, and product performance — which can help you decide where to grow next. While it’s not a standalone free tool, it’s included with your Shopify plan.`]},{type:`p`,text:`Online Marketing Tactics to Reach Global Customers`},{type:`p`,text:`Once you’ve identified promising regions, a digital marketing strategy tailored to each market is essential. Here’s how to get started:`},{type:`p`,text:`1. Localise Your Website`},{type:`list`,ordered:!1,items:[`Translate key pages and product listings into the local language`,`Include local currencies and shipping options`,`Ensure your site complies with local privacy laws (e.g. GDPR)`]},{type:`p`,text:`2. Use International SEO`},{type:`list`,ordered:!1,items:[`Optimise your website for global and local keywords`,`Create country-specific landing pages`,`Register your site with local search engines where applicable`]},{type:`p`,text:`3. Run Targeted Google and Meta Ads`},{type:`list`,ordered:!1,items:[`Use geographic and language targeting to reach specific regions`,`Promote regionally relevant products and services`,`Track campaign performance by market to refine your strategy`]},{type:`p`,text:`4. Leverage Global Marketplaces`},{type:`list`,ordered:!1,items:[`Sell through Amazon, Etsy, or regional e-commerce platforms`,`Take advantage of their shipping and fulfilment infrastru
12cture`,`Use built-in tools to test product interest in different countries`]},{type:`p`,text:`5. Build Local Partnerships`},{type:`list`,ordered:!1,items:[`Work with local influencers or affiliate marketers`,`Sponsor regional events or collaborate with export associations`,`Network through international trade missions and virtual expos`]},{type:`p`,text:`Final Thoughts`},{type:`p`,text:`U.S. tariffs may present short-term obstacles, but they also offer a wake-up call for Canadian businesses to embrace global expansion. Digital tools and platforms make it easier than ever to test new markets and scale efficiently. With tools like Market Finder, market research platforms, and tailored online ad campaigns, you can reach customers across borders — and build a more stable, diversified business in the process.`}]},{slug:`how-to-safeguard-access-to-your-website-google-ads-social-media`,title:`How to Safeguard Access to Your Website, Google Ads & Social Media`,date:`2025-04-16`,author:`Karine Kugler`,excerpt:`At The Three Marketers, we often work with businesses that face a common challenge—key online marketing information gets lost or becomes inaccessible when staff members change. Whether it’s your website, Google Ads account, Google Business Profile, or social media pages, losing access can seriously `,metaDescription:`Ensure business continuity during staff changes. Protect access to your website, Google Ads, Analytics, and more.`,image:`/images/blog/how-to-safeguard-access-to-your-website-google-ads-social-me.jpg`,imageAlt:`login information`,imageWidth:1200,imageHeight:800,categories:[`Grow Your Business`],body:[{type:`p`,text:`At The Three Marketers, we often work with businesses that face a common challenge—key online marketing information gets lost or becomes inaccessible when staff members change. Whether it’s your website, Google Ads account, Google Business Profile, or social media pages, losing access can seriously disrupt your marketing efforts and cost you time and money. Here’s how you can avoid this situation and keep your digital presence running smoothly, no matter who’s on your team. Why Access Issues Happen Most of the time, the problem is simple: login details are saved under a personal email address or are known only to one person. When that person leaves, no one else can access the accounts. In some cases, the email address was deactivated or forgotten, and there’s no way to recover it. This leaves new team members scrambling to recover ownership or recreate accounts. How to Protect Your Business Here are some practical precautions every business should take:`},{type:`list`,ordered:!0,items:[`Use a Shared, Company-Owned Email Address Set up a central, company-owned email address (e.g. [email protected]) to register and manage all marketing accounts. Avoid using personal staff emails to create or manage business-critical platforms.`,`Store Login Information in a Secure, Shared Location Use a password manager like LastPass, 1Password, or Bitwarden to store login credentials. Ensure key staff and management have access. This reduces the risk of losing access and keeps your logins secure.`,`Maintain an Online Marketing Asset List Create a document listing all your accounts, including: • Website hosting and CMS logins • Domain registrar access • Google Business Profile • Google account (used for Business Profile, Analytics, Tag Manager, and Search Console—one login gives access to all Google tools) • Social media accounts (Facebook, Instagram, LinkedIn, etc.) • Any third-party tools (e.g. email marketing, booking systems) Update this list regularly and store it in a secure cloud location that authorized personnel can access.`,`Assign Multiple Admins Where possible, assign at least two admin users to each platform—ideally including someone in management. This ensures continuity if one admin is unavailable or leaves the company.`,`Conduct a Digital Audit During Staff Changes Make it standard practice to review access to all accounts when onboarding or offboarding team members. Revoke access for departing staff and update passwords as needed.`,`Work With a Trusted Marketing Partner If you’re working with an agency, provide them with access using proper admin or manager roles—never by sharing personal logins. Agencies like ours can also help you perform an audit and set up more secure, shared access systems.`]},{type:`p`,text:`Final Thoughts Protecting access to your online marketing platforms is just as important as protecting financial or legal documents. With a few simple steps, you can avoid unnecessary disruptions and ensure that your marketing efforts stay on track—even when your team changes.`}]},{slug:`canadian-businesses-bring-your-online-marketing-home`,title:`Canadian Businesses: Bring Your Online Marketing Home`,date:`2025-03-06`,author:`Karine Kugler`,excerpt:`Over the years, we’ve noticed a growing trend among Canadian businesses: outsourcing their online marketing to agencies in the United States. American companies have been actively prospecting Canadian businesses, convincing them to shift their online marketing efforts south of the border. While it m`,metaDescription:`Canadian businesses benefit from a local online marketing agency: cost savings, personalised 
12service and a deeper grasp of the local market.`,image:`/images/blog/canadian-businesses-bring-your-online-marketing-home.jpg`,imageAlt:`Canadian internet usage`,imageWidth:1200,imageHeight:1063,categories:[`Grow Your Business`],body:[{type:`p`,text:`Over the years, we’ve noticed a growing trend among Canadian businesses: outsourcing their online marketing to agencies in the United States. American companies have been actively prospecting Canadian businesses, convincing them to shift their online marketing efforts south of the border. While it might seem like a cost-effective choice at first, many businesses overlook the greater advantages of keeping their digital marketing local. As a Canada-based online marketing agency, we want to highlight the key benefits of working with a Canadian agency.`},{type:`list`,ordered:!0,items:[`Same Currency, Better Cost Efficiency One of the biggest financial advantages of working with a Canadian agency is dealing in Canadian dollars. With the Canadian dollar typically lower in value than the U.S. dollar, businesses paying for services in USD end up spending more than necessary. Keeping your online marketing local means predictable costs with no unexpected exchange rate fluctuations.`,`Better Understanding of the Canadian Market A Canadian agency understands the unique landscape of Canada’s digital market. From local consumer behaviour to industry regulations, we have insights that international agencies often miss. Whether it’s bilingual content for French-speaking customers in Quebec or region-specific search trends, local expertise makes a difference.`,`Proximity and Availability Working with a Canadian agency means easier communication and collaboration. Instead of dealing with time zone differences and long response times from U.S. agencies, you can meet face-to-face, schedule calls during business hours, and get faster support when you need it. For businesses that value real-time strategy adjustments and performance reviews, local proximity is a major advantage.`,`Knowledge of Canadian Laws and Advertising Standards Canadian advertising and privacy laws differ from those in the U.S. A local marketing agency is well-versed in Canadian advertising compliance, CASL (Canada’s Anti-Spam Legislation), and provincial marketing regulations. This ensures that your digital campaigns remain compliant, reducing the risk of fines or penalties .`,`Stronger Local SEO Performance For businesses targeting a Canadian audience, local SEO is crucial. A Canadian agency knows how to optimize your website, Google Ads, and Social Media Ads for searches in Canada, ensuring your business appears in the right local search results. We understand Canadian directories, business listings, and search trends that drive more relevant traffic to your website.`,`Support for the Canadian Economy By working with a Canadian agency, you’re investing in local businesses and professionals, helping to strengthen our economy. Supporting Canadian companies fosters innovation and growth within the country, creating more opportunities for businesses to thrive.`,`Faster Customer Support & Personalized Service Unlike large, international firms that often apply a one-size-fits-all approach, a Canadian agency can provide tailored strategies that align with your business goals. With a local team, you receive personalized service, dedicated account management, and faster response times. Conclusion From cost savings and market expertise to compliance and local SEO performance, keeping your digital marketing local is a smart move for Canadian businesses. If you’re looking for expert digital marketing services tailored to the Canadian market, The Three Marketers is here to help. Let’s grow your business together—right here in Canada. Get in touch with us today !`]}]},{slug:`is-meta-advertising-right-for-your-business`,title:`Is Meta Advertising Right for Your Business? Key Industries That Benefit`,date:`2025-03-04`,author:`Karine Kugler`,excerpt:`A small business owner named Sarah runs a boutique shop. And while her products are undoubtedly gorgeous, she can’t help but notice how slow and sparse traffic is. Later, she sees a competitor’s Facebook post, garnering hundreds of like
12s and comments. People are asking what time their business opens`,metaDescription:`Meta advertising offers targeted marketing on Facebook, Instagram, and more. Learn how different industries use it to boost visibility and sales.`,image:`/images/blog/is-meta-advertising-right-for-your-business.jpg`,imageAlt:`Meta advertising calgary`,imageWidth:1200,imageHeight:856,categories:[`Social Media`],body:[{type:`p`,text:`A small business owner named Sarah runs a boutique shop. And while her products are undoubtedly gorgeous, she can’t help but notice how slow and sparse traffic is. Later, she sees a competitor’s Facebook post, garnering hundreds of likes and comments. People are asking what time their business opens and tagging friends left and right. That’s when Sarah knew she had to start building her presence online. From what she saw, Facebook advertising might be the answer to boosting her business. To marketers, this isn’t news. Facebook remains the most widely used social media platform for marketing worldwide.`},{type:`p`,text:`It’s a key part of what’s called ‘Meta advertising,’ which includes Facebook, Instagram, Messenger, WhatsApp, and everything else within the Meta ecosystem. But what exactly is Meta advertising? And is it ideal for your business? Let’s break down how it works and what types of industries can benefit from it. How Does Meta Advertising Work?`},{type:`p`,text:`Meta advertising uses advanced algorithms to target users based on various factors like interests, behaviours, location, and demographics. Unlike traditional online ads that heavily rely on keyword search, Meta advertising focuses more on engagement and personalization.`},{type:`p`,text:`Businesses can choose from different ad formats, including image ads, video ads, carousel ads, and interactive story ads. These formats help brands connect with potential customers visually. Meta also provides real-time insights so businesses can easily track performance and adjust campaigns as needed.`},{type:`h2`,text:`Key Industries That Benefit from Meta Advertising`},{type:`p`,text:`If you’re a business that relies on customer engagement and driving direct sales, then it’s most likely that social media advertising is for you—and this applies to a variety of industries.`},{type:`p`,text:`Here are some sectors that see strong results.`},{type:`h2`,text:`Fashion and Retail`},{type:`p`,text:`E-commerce brands benefit a lot from visual content. Meta advertising lets them show off their products in the best way possible through visually engaging ad formats. Businesses can highlight whenever they have new collections, promote sales and promotions, and even retarget potential customers who showed interest but didn’t make a purchase.`},{type:`p`,text:`Here are some examples:`},{type:`p`,text:`● Carousel and video ads to showcase multiple products in a single ad ● Influencer collaborations to increase reach and credibility online ● Meta Shops creates a seamless in-app shopping experience`},{type:`p`,text:`Like a storefront display, Meta ads keep products in front of potential buyers, helping fashion and retail businesses build recognition and increase conversions online.`},{type:`h2`,text:`Event Promotion`},{type:`p`,text:`Event organizers, concert promoters, and businesses hosting workshops/conferences can use Meta advertising to boost attendance and ticket sales. Targeted campaigns generate buzz and reach the right audience.`},{type:`p`,text:`These are just a few ways Meta ads can boost an event:`},{type:`p`,text:`● Event response ads (with an ‘Interested’ or ‘Going’ button) to encourage RSVPs ● Geo-targeted ads to promote events at a local level ● Countdown ads for a sense of urgency and make last-minute ticket purchases ● Lookalike audiences to reach people with similar interests to past attendees.`},{type:`p`,text:`Meta’s precise targeting helps organizers get the word out and fill seats effectively.`},{type:`h2`,text:`Restaurants and Cafes`},{type:`p`,text:`Food businesses often market through visuals and word-of-mouth. Meta advertising helps restaurants and cafes attract customers, promote special deals, and encourage repeat visits.`},{type:`p`,text:`Here’s how restaurants and cafes can use Meta ads:`},{type:`p`,text:`● Mouthwatering images and videos to showcase their menu items ● Interactive polls to engage customers and gather feedback ● Limited-time offers to promote seasonal specials and happy hours`},{type:`p`,text:`By running strategic ads, restaurants can turn online engagement into real-world visits and loyal customers.`},{type:`h2`,text:`Online Courses and Digital Products`},{type:`p`,text:`E-learning platforms, coaching programs, and digital product sellers (artwork, podcasts, templates, music, apps, etc.) use Meta ads to attract students and maximize sales. Some examples include:`},{type:`p`,text:`● Lead generation ads to collect emails and nurture potential students ● Webinar promotions to introduce courses and warm up leads ● Testimonial ads to highlight student success stories ● Urgent campaigns to push limited-time course discounts`},{type:`p`,text:`Meta advertising helps online course creators expand their reach and convert interest into enrollments.`},{type:`h2`,text:`Service Providers`},{type:`p`,text:`Consultants, freelancers, home improvement professionals, and wellness coaches can use Meta advertising to attract clients and establish credibility. Targeting options make it easier to connect with potential customers based on their interests, location, and demographics. Some of them are:`},{type:`p`,text:`● Video explainer ads to highlight expertise and client success stories ● Before-and-after posts to showcase transformation results ● Community engagement campaigns to interact with audie
12nces through Q&A sessions or live videos`},{type:`p`,text:`With Meta advertising, service providers can reach the right audiences, generate leads, and grow their businesses.`},{type:`h2`,text:`Enjoy Expert Meta Advertising With The Three Marketers`},{type:`p`,text:`Meta advertising is a powerful tool for businesses looking to connect with the right audience, boost customer loyalty, and drive sales. Success with Meta advertising comes down to strategy. Running the right type of ads, fine-tuning your targeting, and analyzing performance can help you get the most out of your budget. That’s where expert guidance makes a difference.`},{type:`p`,text:`If you’re ready to take your online advertising to the next level, The Three Marketers is here to help. Based in Calgary, we specialize in social media marketing, ad campaign setup, and ongoing management. With over 15 years of experience running paid ads, we know what works for the Meta platform.`},{type:`p`,text:`Contact us today to start growing your business with strategic digital advertising.`},{type:`p`,links:[{text:`Facebook and Instagram advertising`,href:`/calgary-facebook-advertising`}],text:`Learn more: Facebook and Instagram advertising.`}]},{slug:`making-your-content-visible-in-ai-search-results`,title:`Making Your Content Visible in AI Search Results`,date:`2025-02-07`,author:`Karine Kugler`,excerpt:`A lot of people today rely on AI, and most industries are well aware of it. Around three out of ten smartphones now come with built-in AI capabilities, a statistic we only expect to grow even more in the future. From automation to providing valuable data, AI is helping businesses grow and reach thei`,metaDescription:`AI-driven search is changing how businesses get discovered. Learn how to optimize your content for AI search results with GEO and stay ahead online.`,image:`/images/blog/making-your-content-visible-in-ai-search-results.jpg`,imageAlt:`ai driven search results`,imageWidth:1200,imageHeight:800,categories:[`Artificial Intelligence`,`SEO & Search`],body:[{type:`p`,text:`A lot of people today rely on AI, and most industries are well aware of it. Around three out of ten smartphones now come with built-in AI capabilities, a statistic we only expect to grow even more in the future. From automation to providing valuable data, AI is helping businesses grow and reach their audience faster and more efficiently. Today, it’s shaping how search engines provide results. If you want to stay competitive online, you’ll need to consider AI-driven results alongside your traditional search engine optimization (SEO) strategies. We know how important it is to maintain ongoing SEO for brands, but with AI playing a bigger role in online search, businesses need to stay ahead. AI search results work differently, and we’re here to help you stay on top of the game. What does this mean for your content? Here’s everything you need to know about making your content stand out in AI-powered search results.`},{type:`h2`,text:`What Is Generative Engine Optimization (GEO)?`},{type:`p`,text:`Let’s say you’re looking for the best restaurants in Calgary. Rather than typing and scrolling through your phone, you ask Siri or Google to give you that information. That’s what an AI-driven search result is.`},{type:`p`,text:`Generative Engine Optimization (GEO) is a strategy that’s designed to make content visible to various AI search engines. What AI does is that it scans a vast pool of online data and finds the most ideal results based on the query. If your content is well-made and optimized, it has a bigger chance of being mentioned in an AI-driven search result.`},{type:`h2`,text:`How GEO Differs from Traditional SEO`},{type:`p`,text:`For modern businesses, GEO is important. Instead of just ranking on a search engine’s first page, which is what SEO is, businesses also need to make sure that they’re recognized as viable results by AI.`},{type:`p`,text:`Search engines are evolving, and so are optimization strategies. Here’s how GEO and SEO differ:`},{type:`p`,text:`● Search Result Appearance: SEO aims for first-page rankings, while GEO targets AI-generated summaries and voice search results. ● Content Approach: SEO relies on keyword optimization and backlinks, while GEO emphasizes high-quality, entity-rich (person, place, organization, or concept), conversational content that directly answers user queries. ● Keyword Strategy: SEO uses short and competitive keywords, while GEO favours long-tail keywords that align more with natural language queries. ● User Experience: SEO aims to optimize click-through rates and dwell time, while GEO focuses more on making structured content that AI can easily interpret and repurpose. ● Technical Optimization: SEO prioritizes site speed and mobile responsiveness, while GEO ensures that AI can effectively extract and understand important information.`},{type:`p`,text:`Both SEO and GEO remain essential. That said, businesses need to start integrating GEO strategies to stay relevant in AI-driven search.`},{type:`h2`,text:`How to Rank in AI-Driven Search Results`},{type:`p`,text:`By 2026, traditional search engine traffic is expected to decrease by 25% as more and more users rely on AI chatbots to get the answers they need. It marks an exciting time to optimize your content with the possibilities of AI. Here are ways for you to make the most of this opportunity.`},{type:`h2`,text:`Quality and Relevant Content`},{type:`p`,text:`AI prioritizes content that is informative and engaging. To be cited in AI-generated results, be sure that you create fresh, conversational content that incorporates different entities like people, places, and brands.`},{type:`p`,text:`For instance, with the query we mentioned earlier, “the best restaurants in Calgary,” as a restaurant, you can feature up-to-date, locally relevant information and include user reviews. This helps AI understand the context and generate accurate responses.`},{type:`h2`,text:`Long-Term Keywords`},{type:`p`,text:`Using long-tail keywords, which are four or more words long, can greatly improve your brand’s visibility in AI search. These are longer and more specific keyword phrases that directly answer user queries.`},{type:`p`,text:`So, instead of using the relevant best restaurants keyword, optimize for other phrases as well, like best family-friendly restaurants in downtown Calgary or Calgary restaurants with live music.`},{type:`h2`,text:`User Experience`},{type:`p`,text:`AI values content that engages users. A user-friendly website that’s easy to navigate and accessible for all types of users, including those with disabilities, increases dwell time and reduces bounce rates. This also drives lead generation.`},{type:`p`,text:`Visually appealing content, clear calls to action, and a personalized experience further enhance user satisfaction. These factors signal to AI that your content is valuable and worth referencing. This way, they’ll prioritize your content in the search results.`},{type:`h2`,text:`Technical Factors`},{type:`p`,text:`Don’t forget to optimize the technical side of your website. Your website should load quickly, be mobile-friendly, and follow structured data markup. AI pulls information from various sources, so having a technically reliable site increases your chances of being featured in AI-generated results.`},{type:`p`,text:`Secure your website with HTTPS encryption to rank better, as AI and traditional search engines prioritize safety. Regularly audit your website for broken links, remove any outdated content, and avoid slow-loading elements to further improve your brand’s credibility.`},{type:`h2`,text:`Get Your Website AI-Ready with The Three Marketers`},{type:`p`,text:`AI is revolutionizing the way people search for information. Traditional SEO is still necessary for gaining a strong online presence, but businesses must now embrace GEO to stay visible in the AI field. The more ways you optimize, the better prepared y
12ou will be for the future.`},{type:`p`,text:`Need help optimizing your business for SEO and GEO? The Three Marketers specializes in crafting effective digital strategies that increase visibility, drive traffic, and boost engagement. Contact us today to unlock AI-driven growth for your brand.`},{type:`p`,links:[{text:`SEO services`,href:`/calgary-seo`},{text:`What Are Google AI Overviews?`,href:`/what-are-google-ai-overviews`}],text:`Learn more: SEO services · What Are Google AI Overviews?.`}]},{slug:`trademark-scam-warning-canada`,title:`Trademark Scam Warning Targeting Canadian Businesses`,date:`2025-01-16`,author:`Karine Kugler`,excerpt:`Trademark scams are a growing concern for businesses and individuals in Canada. Fraudsters are targeting trademark holders with deceptive notices, demanding payments or requesting sensitive information. Both the College of Patent Agents and Trademark Agents (CPATA) and the Canadian Intellectual Prop`,metaDescription:`Protect your business from trademark scams in Canada. Learn to spot fraudulent notices and safeguard your intellectual property.`,image:`/images/blog/trademark-scam-warning-canada.jpg`,imageAlt:`Seo scam`,imageWidth:1200,imageHeight:828,categories:[`Online Reputation`],body:[{type:`p`,text:`Trademark scams are a growing concern for businesses and individuals in Canada. Fraudsters are targeting trademark holders with deceptive notices, demanding payments or requesting sensitive information. Both the College of Patent Agents and Trademark Agents (CPATA) and the Canadian Intellectual Property Office (CIPO) have issued warnings to alert the public about these scams. Here’s what you need to know and how to protect yourself.`},{type:`h3`,text:`How the Scam Works`},{type:`p`,text:`Scammers send notices that appear official, often referencing your trademark or patent information. These fraudulent messages might:`},{type:`list`,ordered:!1,items:[`Claim to be from trademark or intellectual property authorities.`,`Demand payments for services like renewal, registration, or additional fees.`,`Request personal or financial information.`]},{type:`p`,text:`These notices can be misleading, sometimes using official-sounding language or logos to appear legitimate.`},{type:`h3`,text:`CPATA and CIPO Warnings`},{type:`h4`,text:`CPATA Advisory`},{type:`p`,text:`The CPATA warns that scammers are targeting individuals and businesses in Canada, exploiting their lack of familiarity with trademark processes. They advise anyone receiving unexpected or suspicious communications to verify the source before taking action. For more details, visit their trademark scam advisory page .`},{type:`h4`,text:`CIPO Notice`},{type:`p`,text:`The CIPO highlights that scam notices often request payments for services unrelated to official trademark procedures. They urge recipients of such messages to disregard and report them immediately. Learn more on the CIPO scam warning page .`},{type:`h3`,text:`How to Protect Yourself`},{type:`list`,ordered:!0,items:[`Verify the Source Always check if the notice comes from an official trademark office or a trusted representative. Official communications typically come from email addresses ending in @canada.ca or recognized government websites.`,`Consult a Trademark Agent If you’re unsure about the authenticity of a notice, consult a licensed trademark agent. They can confirm whether the request is legitimate and guide you through the process.`,`Do Not Share Personal Information Avoid sharing sensitive details such as your credit card number, banking information, or trademark certificate with unverified sources.`,`Report Suspicious Notices If you receive a fraudulent notice, report it to CPATA or CIPO to help prevent others from falling victim.`]},{type:`h3`,text:`What to Do If You’ve Been Targeted`},{type:`p`,text:`If you’ve already responded to a scam notice, take the following steps:`},{type:`list`,ordered:!1,items:[`Contact your bank or financial institution immediately to stop any unauthorized payments.`,`Inform CPATA and CIPO to help them track and address these fraudulent activities.`,`Monitor your trademark or patent information for any unauthorized changes or misuse.`]},{type:`h3`,text:`Stay Informed`},{type:`p`,text:`Trademark scams can have serious consequences for your business. By staying vigilant and informed, you can safeguard your intellectual property and financial security. Regularly review updates from CPATA and CIPO to stay ahead of the latest threats.`},{type:`p`,text:`For more information, visit the CPATA advisory page and CIPO scam warning page .`}]},{slug:`why-offline-marketing-matters-for-seo`,title:`Why Offline Marketing Matters for Improving Your SEO and Building Brand Strength`,date:`2025-01-15`,author:`Karine Kugler`,excerpt:`It’s easy to think that you should focus solely on online marketing because of how digitally oriented the world is today. These digital marketing strategies might seem easier to measure and cost less upfront, but the truth is that offline marketing still has a role in building brand recognition in w`,metaDescription:`Discover the power of offline marketing and why it’s still essential in our online world. Boost your brand and SEO with these offline strategies.`,image:`/images/blog/why-offline-marketing-matters-for-seo.jpg`,imageAlt:`Why Offline Marketing Matters for Improving Your SEO and Building Brand Strength`,imageWidth:1200,imageHeight:741,categories:[`Grow Your Business`,`SEO & Search`],body:[{type:`p`,text:`It’s easy to think that you should focus solely on online marketing because of how digitally oriented the world is today. These digital marketing strategies might seem easier to measure and cost less upfront, but the truth is that offline marketing still has a role in building brand recognition in ways that you might not expect.`},{type:`p`,text:`Think of it as a chance to connect with your local community or build trust through memorable experiences. It’s a more authentic approach that, honestly, we could use a lot more of in the digital age.`},{type:`h2`,text:`What Is Offline Marketing?`},{type:`p`,text:`Offline marketing refers to any promotional activity that doesn’t rely on digital technology. This is considered the traditional approach to marketing. Call it old-fashioned, but it still works today for a reason.`},{type:`p`,text:`Some of the most popular offline advertising formats—such as print ads, television, and radio—are still the most trusted strategies for customers when making a purchase decision. Unl
12ike online marketing, which targets people on the internet, offline marketing connects with audiences where they live, work, and play.`},{type:`p`,text:`These can create memorable touchpoints that can then indirectly benefit your online presence as well. In turn, this shapes your branding and how people perceive you, making offline marketing a powerful complement to your online strategies.`},{type:`h2`,text:`Reasons Why Offline Marketing Still Matters`},{type:`p`,text:`Offline marketing shouldn’t be an afterthought. Here are just a few of the reasons why offline marketing is still essential and how it can complement your digital presence.`},{type:`p`,text:`Inspires People to Search Your Brand Online`},{type:`p`,text:`When you go to a local festival and see a product that you like, it’s almost certain that you’ll look it up online. For businesses, this means that when you take an offline approach to market your product, the branded searches your customers make online will signal to search engines that your business is relevant and credible. In turn, this boosts your SEO rankings.`},{type:`p`,text:`Builds Credibility Through Local Engagement`},{type:`p`,text:`Why not join the local community to market your brand? When people see that you’re involved in different events and other initiatives, they’re more likely to see you as trustworthy. While the reach here is admittedly smaller compared to online channels, it’s a great start to building a strong network of people who support your brand.`},{type:`p`,text:`Sparks Authentic Social Proof`},{type:`p`,text:`Social proof is the ultimate seal of validation. Businesses can ask for reviews in-store and encourage customers to share their experiences online. With 97% of people stating that online reviews influence their purchasing decisions, building on these personal experiences can definitely ripple into establishing trust.`},{type:`h2`,text:`Strategies to Build Brand Strength and Improve SEO with Offline Marketing`},{type:`p`,text:`Make offline marketing your foundation for building your brand online. Here are some effective strategies to do so:`},{type:`p`,text:`● Host or Sponsor Local Events: These events make you physically visible to your audience. This increases the chances of them writing about your brand online, which can also link back to your website.`},{type:`p`,text:`● Leverage Print Advertising : Print ads can take on many forms, including newspapers, magazines, posters, and billboards. Many people still engage with what they see on their daily commute or when they’re in public spaces.`},{type:`p`,text:`● Collaborate with Other Businesses: Teaming up with businesses that complement yours increases credibility because you align with ones that are already well-respected. You can also cross-promote, such as joint events and bundled offerings, to introduce your brand to more new customers.`},{type:`p`,text:`● Participate in Trade Shows or Expos : These events bring you face-to-face with a large crowd with common interests. They also attract media attention, which gives you the opportunity to be featured in event coverage or industry write-ups.`},{type:`p`,text:`● Create Branded Merchandise: Distribute goodies like pens, tote bags, or water bottles with your logo and website URL. Choose products that people will use regularly while also ensuring they serve as constant reminders of your brand.`},{type:`p`,text:`● Join Local Chambers or Professional Associations: Join reputable groups that enhance your credibility. These groups often feature members on their pages and websites, providing valuable backlinks to your site.`},{type:`p`,text:`By combining offline efforts with your online campaigns, you can create a more impactful marketing approach that covers all bases. Offline strategies like local engagement, print advertising, and event participation build trust and brand recognition, while online efforts amplify visibility and conversions. Together, they create a holistic marketing strategy that connects with audiences both in-person and digitally, ensuring long-term growth and success.`}]},{slug:`authenticity-the-key-to-standing-out-in-a-crowded-market`,title:`Authenticity: The Key to Standing Out in a Crowded Market`,date:`2024-12-01`,author:`Karine Kugler`,excerpt:`We can’t stress enough how much branding matters for your business. It isn’t just about making a great logo (as much as that counts, too); it’s about the story you tell and the trust you build with your audience. Trust in a brand is powerful. Nearly nine out of ten people say they’re more likely […]`,metaDescription:`Brand authenticity sets your business apart by building trust and genuine connections. Discover the website elements that create lasting engagement.`,image:`/images/blog/authenticity-the-key-to-standing-out-in-a-crowded-market.jpg`,imageAlt:`authenticity in marketing`,imageWidth:1200,imageHeight:800,categories:[`Social Media`,`Grow Your Business`],body:[{type:`p`,text:`We can’t stress enough how much branding matters for your business. It isn’t just about making a great logo (as much as that counts, too); it’s about the story you tell and the trust you build with your audience.`},{type:`p`,text:`Trust in a brand is powerful. Nearly nine out of ten people say they’re more likely to support and stick with a brand that feels authentic. When people believe in what you stand for, they’ll support you.`},{type:`p`,text:`Remember that customers are quite savvy nowadays. They can spot inauthenticity from a mile away. Being real matters – so whether you’re just starting out or trying to figure out what’s missing from your brand, authenticity should be a top priority.`},{type:`p`,text:`In this article, we’ll dive into why authenticity can make your business stand out. We’ll also cover the website elements that can help you create that genuine connection your audience craves.`},{type:`h2`,text:`Why Brand Authenticity Matters`},{type:`p`,text:`Brand authenticity means that you’re being genuine and true to your values in how you present your business. This approach creates an honest and transparent connection with your audience so they know what you stand for.`},{type:`p`,text:`You have to put yourself in the shoes of a regular customer – constantly being bombarded with options. Authenticity can set you apart by building business credibility online.`},{type:`p`,text:`Here are some of the many benefits of brand authenticity:`},{type:`p`,text:`● Builds Trust: Being transparent shows customers that you value honesty. ● Enhances Loyalty: People prefer to stick with brands that align with their values and feel relatable. ● Encourages Word-of-mouth: Authentic brands inspire customers to recommend them to friends and family. ● Attracts Like-Minded Customers: Your brand will naturally appeal to people who share your values, creating stronger connections. ● Boosts Reputation: Authenticity can position your business as a credible and trustworthy authority in the field, giving you an edge in the market. In fact, 74% of consumers say brands that prioritize honest communication are more important now than before the pandemic. Being truthful and open is clearly one of the best ways for organizations to build trust with their audience.`},{type:`h2`,text:`Essential Elements to Build Authenticity`},{type:`p`,text:`Your website is usually the first place where customers will interact with your business. To create an authentic connection, every element on your site should be able to reflect your brand.`},{type:`h2`,text:`Visuals that Showcase the Real You`},{type:`p`,text:`Don’t underestimate the power of website images. Stock photos might be convenient, but they lack personality and can make your website feel generic. What you could do instead is use real photos – showing off your team, workspace, or products and services.`}
12,{type:`p`,text:`Putting authenticity to your visuals leads to a stronger emotional connection because they instantly tell a story about your business.`},{type:`h2`,text:`Tell Your Story Through Video`},{type:`p`,text:`Stories are 22 times more memorable than just stating facts. We humans crave connection, and your brand can achieve that through effective storytelling. One effective way to do this is with your website’s videos.`},{type:`p`,text:`Use videos to tell your story – whether it’s about your journey, your team’s passion, or what goes on behind the scenes. These more personal glimpses make your business feel more approachable.`},{type:`p`,text:`Video content is also very engaging, making it easy to capture your audience’s attention and keep them engaged.`},{type:`h2`,text:`Blogging to Share Your Expertise`},{type:`p`,text:`A blog can become your tool for establishing yourself as an expert. Authentic blogs resonate with readers because they provide value while also reflecting your unique perspective.`},{type:`p`,text:`Written content on your website also draws in prospective customers who are searching for solutions or information online. This way, you can become a go-to resource. Consistent and genuine blogging builds a loyal audience.`},{type:`h2`,text:`Personal Touch with Live Chat`},{type:`p`,text:`Customers appreciate quick and personalized support. Live customer chat is the ideal way to provide real-time assistance while adding a human touch to your website. Unlike automated bots, which have also gained popularity, live chat with real team members helps customers feel seen and heard. It shows that you’re available and willing to help. This also fosters trust and improves their overall experience with your business.`},{type:`h2`,text:`Real-time Social Media Feeds`},{type:`p`,text:`Do you have active social media pages? Embedding your social media feeds on your website can add an authentic layer of interaction.`},{type:`p`,text:`Instead of forcing customers to find you on external platforms, embedding socials on your website conveniently shows visitors how active and engaged your brand is while also giving them a sense of your personality.`},{type:`p`,text:`Displaying user-generated content, such as customer photos or reviews, adds credibility as well. Social media feeds keep your website dynamic, encouraging visitors to return.`},{type:`h2`,text:`Building Trust with Testimonials`},{type:`p`,text:`Nothing builds trust quite like hearing from other customers. Genuine testimonials and case studies highlight your customers’ real experiences, and these can provide insight into the impact your business has made.`},{type:`p`,text:`There are different ways to ask for reviews, but you can start by asking customers directly. Use follow-up emails, surveys, and social media. Make it easy for them to leave feedback by providing clear instructions or links.`},{type:`p`,text:`Once you’ve gathered feedback, feature these testimonials clearly on your website to boost credibility.`},{type:`h2`,text:`Online Marketing Made Authentic with The Three Marketers`},{type:`p`,text:`The market is overflowing with choices, and authenticity is the secret ingredient to make your business rise above the noise.`},{type:`p`,text:`By incorporating genuine visuals, sharing your story, and building trust through testimonials and real-time interactions, you can create a brand that resonates deeply with your audience.`},{type:`p`,text:`Ready to step up your brand? The Three Marketers bring your business to life authentically. We offer tailored digital marketing solutions for businesses in Calgary, across Alberta, Canada, and beyond. Contact us today , and let’s start building your brand to stand out for all the right reasons.`}]},{slug:`how-to-ask-for-reviews-boost-your-online-reputation`,title:`How to Ask for Reviews: Boost Your Online Reputation`,date:`2024-11-13`,author:`Karine Kugler`,excerpt:`There’s nothing like getting the first positive online review for your business. It’s a simple nudge, a reminder that the hard work you and your team have been putting in is paying off. But it’s also more than just a feel-good moment. Reviews are one of the key strategies to build your business cred`,metaDescription:`Asking for customer reviews strengthens your online reputation. Learn proven ways to request reviews, build credibility and boost visibility.`,image:`/images/blog/how-to-ask-for-reviews-boost-your-online-reputation.jpg`,imageAlt:`Ask for reviews`,imageWidth:1200,imageHeight:800,categories:[`Online Reputation`],body:[{type:`p`,text:`There’s nothing like getting the first positive online review for your business. It’s a simple nudge, a reminder that the hard 
12work you and your team have been putting in is paying off.`},{type:`p`,text:`But it’s also more than just a feel-good moment. Reviews are one of the key strategies to build your business credibility online. In fact, over seven out of ten people trust online reviews. That’s a level of influence no business can afford to ignore.`},{type:`p`,text:`Yet many businesses still hesitate to ask for reviews. You might be unsure how to approach it without feeling pushy, but asking for reviews doesn’t have to be awkward. When done right, it’s a natural way to invite feedback and show customers that their opinions matter.`},{type:`p`,text:`If you haven’t tapped into the potential of customer reviews yet, it’s time to start. In this article, learn how to ask for reviews and the best ways to do it. Boost your online reputation and build lasting trust with your audience.`},{type:`h2`,text:`Why You Should Ask Customers for Reviews`},{type:`p`,text:`Online customer reviews are today’s version of word-of-mouth marketing. To put it simply, a review is a customer’s feedback on their experience with your business. And for many potential customers, these reviews can be the deciding factor when doing business with you.`},{type:`p`,text:`Here’s why asking for reviews is so important:`},{type:`p`,text:`● Builds Credibility and Trust: When potential customers see positive reviews, they’re more likely to trust your business. Authentic feedback gives others the confidence to choose your products or services. ● Boosts Visibility: Reviews contribute to your online presence, especially in search engines. More reviews mean higher search rankings. ● Provides Valuable Feedback: Reviews can give you insight into what’s working well and what could be improved. ● Encourages Customer Loyalty: When customers leave a review, they feel more connected to your brand.`},{type:`p`,text:`When you deliver experiences that customers love, they won’t hesitate to vouch for you. Worried about getting a poor review? Don’t be. See it as a way to improve. Always thank customers for their feedback, use it to make progress, and keep moving forward.`},{type:`h2`,text:`Best Ways to Ask for Reviews`},{type:`p`,text:`Advertising alone may not be enough to win over customers these days. Even influencer ads only influence about 23% of people. Customer reviews can boost your credibility in a more genuine way.`},{type:`p`,text:`These are the most effective ways to ask for reviews:`},{type:`h2`,text:`Ask for Reviews Through Email`},{type:`p`,text:`Email is a direct and reliable way to request reviews. After a purchase, try sending a follow-up email thanking the customer. Then, this is your chance to invite them to share their feedback.`},{type:`p`,text:`Keep your request short and friendly. Personalize the message by addressing the customer by name, and then include a link that takes them directly to the review page. It makes the process quick and easy for them.`},{type:`h2`,text:`Ask for Reviews with SMS Messaging`},{type:`p`,text:`SMS is another direct way to ask for a review. It is often more immediate than sending an email. Send a brief, polite text a day or two after the purchase, expressing your gratitude and requesting feedback.`},{type:`p`,text:`Make sure to include a shortened link to make it easy for them to leave a review. Because SMS is often read right away, it can lead to a higher response rate compared to other methods.`},{type:`h2`,text:`Ask for Reviews In-Store`},{type:`p`,text:`Asking for reviews in-store allows you to make the request at the point of sale when the experience is still fresh in the customer’s mind. Use physical signage with a QR code that they can scan, leading them directly to your review page.`},{type:`p`,text:`You can also place a physical review box with paper forms so customers can leave feedback on the spot. Another option is to ask for reviews post-purchase. Include a card with their receipt or bag with instructions on how to leave a review online.`},{type:`h2`,text:`Ask for Reviews Online`},{type:`p`,text:`Online channels can provide you with several ways to request reviews. Social media, for instance, is an excellent platform for this. Facebook alone holds 19% of all customer reviews.`},{type:`p`,text:`You could occasionally post a reminder for your customers to leave reviews or run a dedicated campaign to encourage feedback. And don’t forget about your website. Your business website is a great place to ask for reviews.`},{type:`p`,text:`Include a CTA (call-to-action) button that leads to your review page or pop-up reminders that invite visitors to share their experiences.`}
12,{type:`h2`,text:`Best Practices When Asking for Reviews`},{type:`p`,text:`Asking for reviews can be a tricky process, but with the right approach, it’s effective and beneficial for everyone. Keep these best practices in mind:`},{type:`p`,text:`● Be Timely: Reach out soon after the purchase or service. When the experience is recent, customers are more likely to leave an accurate and positive review.`},{type:`p`,text:`● Keep It Simple: Make it easy for customers to leave feedback. Include a direct link to the review page or provide clear instructions on how to submit a review.`},{type:`p`,text:`● Reply to All Reviews: Responding to reviews shows that you value feedback. Reply to positive reviews but also politely acknowledge the negative ones, offering solutions where possible.`},{type:`p`,text:`● Stay Professional: Always maintain a professional and friendly tone, even when responding to criticism. Show that you take feedback seriously and that you’re committed to improving.`},{type:`p`,text:`● Express Appreciation: Let customers know how much you value their opinion and time. A simple thank-you can go a long way to showing genuine appreciation.`},{type:`p`,text:`These best practices help build trust and show customers that their feedback is important to you.`},{type:`h2`,text:`Get Your Online Business Ahead with The Three Marketers`},{type:`p`,text:`There is great power in words. Knowing how to ask for reviews is a quick but powerful way to boost your online reputation and connect with your customers. It works because you’re showcasing real feedback from satisfied clients.`},{type:`p`,text:`And with every new review, your business gains credibility, becomes more visible, and strengthens its online presence. To maximize this potential, partner with experts who understand the digital landscape. The Three Marketers has been helping businesses like yours succeed online since 2003.`},{type:`p`,text:`As one of Canada’s original digital marketing agencies, we’ve been part of the internet marketing evolution from the start. Contact us today, and let’s take your online marketing a step further.`},{type:`p`,links:[{text:`Google Reviews Matter, But Consumers Look Further`,href:`/google-reviews-matter-but-consumers-look-further`},{text:`Beware of Companies Claiming to Remove Google Reviews`,href:`/beware-of-companies-claim
12ing-to-remove-google-reviews`}],text:`Related reading: Google Reviews Matter, But Consumers Look Further and Beware of Companies Claiming to Remove Google Reviews.`}]},{slug:`drops-in-clicks-and-leads-do-not-panic`,title:`Drops in Clicks and Leads? Do Not Panic! Focus on the Bigger Picture`,date:`2024-10-10`,author:`Karine Kugler`,excerpt:`Most small businesses rely on their online presence to capture leads and grow. With around 71% of brands owning a website, the competition to stand out is fierce, and there’s constant pressure to perform well online. You might see your website thriving on most days, but occasionally, you may notice `,metaDescription:`Drops in clicks and leads are normal. Learn how to manage traffic dips, stay focused on long-term growth and keep your digital strategy on track.`,image:`/images/blog/drops-in-clicks-and-leads-do-not-panic.jpg`,imageAlt:`Google Analytics 4`,imageWidth:1200,imageHeight:749,categories:[`Grow Your Business`],body:[{type:`p`,text:`Most small businesses rely on their online presence to capture leads and grow. With around 71% of brands owning a website, the competition to stand out is fierce, and there’s constant pressure to perform well online. You might see your website thriving on most days, but occasionally, you may notice a sudden drop in performance. While that can be concerning, don’t panic—website fluctuations are normal. It’s important not to jump to conclusions or make rash decisions. Instead, take a step back and look at the bigger picture. We’re here to help you manage these ups and downs effectively.`},{type:`h2`,text:`Think of Website Traffic Like the Stock Market: Trust the Process`},{type:`p`,text:`We’d like to picture website traffic like the stock market. It’s unpredictable at times. Some days, things are up, but on other days, you might see dips—and that’s okay. The key here is to avoid panicking, as stress can cloud your decision-making and negatively impact your business.`},{type:`p`,text:`Digital marketing strategies require patience and long-term thinking, and that includes being willing to ride out the fluctuations. Just as you wouldn’t sell off your stocks on every market dip, you shouldn’t abandon your digital strategy when traffic decreases. Gradual growth comes from consistent effort and making smart decisions based on trends. A steady marketing approach will pay off.`},{type:`h2`,text:`Understanding Web Traffic Fluctuations`},{type:`p`,text:`A sudden drop in traffic might make you anxious, but in most cases, it’s temporary. These dips don’t necessarily mean a permanent decline in interest or market relevance.`},{type:`p`,text:`Here are five common reasons for drops in website traffic:`},{type:`list`,ordered:!1,items:[`Algorithm Updates : Search engines like Google constantly update their algorithms. If your rankings drop a bit, it could be due to these changes. It doesn’t mean your content has failed; you just have to re-strategize.`,`Seasonal Trends : Traffic can fluctuate during the holidays or certain seasons. For instance, e-commerce sites might see dips in sales after a major shopping season like Black Friday.`,`New Competitors : If a new player in your niche is optimizing their website better or running an aggressive marketing campaign, it can momentarily affect your site as well.`,`Technical Issues : Customers hate slow websites. There might be errors, slow load times, or broken links that are going unnoticed on your end.`,`Changes in User Behavior : There can also be changes in how people search for or consume content. New platforms or shifts in trends can direct website traffic elsewhere.`]},{type:`p`,text:`Don’t let these fluctuations derail your strategy. Keep focusing on a well-rounded digital marketing plan, and regularly track key analytics metrics so you always know how you’re doing.`},{type:`h2`,text:`How To Get Around Temporary Website Traffic Drops`},{type:`p`,text:`Some websites continue to do well , even if they don’t seem to be overly technical. Their secret? They focus on building a long-term strategy.`},{type:`p`,text:`SEO, high-quality content , and digital marketing are all ongoing processes. Results won’t be immediate, but consistent efforts will eventually pay off when done right.`},{type:`p`,text:`There are ways to manage drops in website traffic. Take these proactive steps to get around these temporary di
12ps and keep the momentum:`},{type:`list`,ordered:!1,items:[`Audit Your Website : Check for any technical issues that might hurt your traffic and get them fixed as soon as you can.`,`Revise and Update Content : New content for search engines means that your website is still active. If you have older posts that aren’t performing as well, you can also update them with relevant information to boost your rankings.`,`Run Promotional Campaigns : If your traffic is dropping, try running a targeted promotion or ad campaign to drive visitors back to your site. Social media and email marketing are effective ways to re-engage your audience.`,`Stay Consistent with SEO : As mentioned, SEO is an ongoing process. Continue optimizing your website for search engines by focusing on keyword placement, meta descriptions, and high-quality backlinks. Long-term SEO improvements will keep you competitive.`,`Monitor Analytics Closely : Keep a close eye on your website analytics to see what’s working and what’s not. Analyze your visitors’ behaviours, find the top pages, and how they convert to make informed decisions.`]},{type:`p`,text:`Traffic dips are just part of the natural cycle of running a website. Stay focused on the long-term, and you’ll be able to deal with these temporary challenges with more confidence.`},{type:`h2`,text:`Focus on Your Business and Let The Three Marketers Grow It`},{type:`p`,text:`Website traffic fluctuations are normal – just be aware of what to monitor so you don’t get off track. What truly matters is long-term growth. With a steady approach and the right adjustments, you’ll see progress over time.`},{type:`p`,text:`Success takes time and consistency. And if you want to ensure that your website’s on the right path, you can count on The Three Marketers.`},{type:`p`,text:`As one of Canada’s original digital marketing agencies, we’ve been around since 2003, helping businesses succeed online. Contact us today so you can focus on what you do best while we take care of the rest.`},{type:`p`,links:[{text:`talk to our team`,href:`/contact`}],text:`Worried about a recent dip? Feel free to talk to our team.`}]}
12,{slug:`beware-of-companies-claiming-to-remove-google-reviews`,title:`Beware of Companies Claiming to Remove Google Reviews`,date:`2024-09-19`,author:`Karine Kugler`,excerpt:`In the current competitive digital landscape, a company’s reputation is greatly impacted by its online reviews. However, not all reviews are positive, and some businesses may be tempted to seek out services that promise to remove negative Google reviews. Unfortunately, many of these companies offer `,metaDescription:`Avoid services that promise to remove Google reviews. Learn the legitimate ways to handle negative reviews and protect your business reputation.`,image:`/images/blog/beware-of-companies-claiming-to-remove-google-reviews.jpg`,imageAlt:`online reviews`,imageWidth:1147,imageHeight:642,categories:[`Online Reputation`],body:[{type:`p`,text:`In the current competitive digital landscape, a company’s reputation is greatly impacted by its online reviews. However, not all reviews are positive, and some businesses may be tempted to seek out services that promise to remove negative Google reviews. Unfortunately, many of these companies offer misleading services that do not follow Google’s policies, and relying on them could harm your business in the long run.`},{type:`p`,text:`How Do These Companies Claim to Remove Reviews?`},{type:`p`,text:`These companies often claim to use special methods or inside connections to remove negative reviews from your Google Business Profile. They might advertise fast, guaranteed removals, using tactics that include:`},{type:`list`,ordered:!1,items:[`False promises of ‘legal’ review removal services that violate Google’s terms.`,`Manipulating Google’s algorithm by attempting to generate multiple fake reports against a review.`,`Fake legal threats sent to Google or the reviewer in an attempt to intimidate.`]},{type:`p`,text:`These services often fail to mention that using such tactics could result in penalties against your business or a loss of trust with your customer base.`},{type:`p`,text:`How Can Reviews Actually Be Removed?`},{type:`p`,text:`Google has strict policies in place for the removal of reviews, and businesses should follow legitimate processes. Here are the authentic methods to remove reviews from your profile`},{type:`list`,ordered:!0,items:[`Flagging a review : The business owner or any user can flag a review that violates Google’s policies. If the review contains inappropriate content, spam, or false information, it can be reported through your Google Business Profile.`,`Appealing through the Review Tool : If you believe a review violates Google’s guidelines, you can appeal using Google’s Review Tool. This tool allows you to submit cases for review directly to Google.`,`Escalations on the Google Business Profile (GBP) Help Community : In cases where initial attempts don’t resolve the issue, you can ask for help from the Google Business Profile Help Community, where experts or Google staff can provide additional support.`,`The reviewer removed it themselves : Sometimes, after direct communication with the reviewer, they may choose to take down the review on their own.`,`Suspension of the reviewer’s account : If the reviewer’s account is found to be in violation of Google’s terms, such as posting fake reviews or engaging in malicious activities, their account may be suspended, and their reviews will automatically disappear.`,`Algorithm updates : Occasionally, Google’s automated systems may identify reviews that violate policies, removing them during a general algorithm update or sweep.`]},{type:`p`,text:`Why Businesses Should Avoid These Services`},{type:`p`,text:`Engaging with companies that claim they can remove reviews outside of Google’s official processes can lead to several problems:`},{type:`list`,ordered:!1,items:[`Google penalties : Using unethical methods to remove reviews can result in penalties against your business profile, including suspension.`,`Loss of credibility : If your customers discover that you’ve used unscrupulous methods to remove negative feedback, it can harm your reputation and trustworthiness.`,`Wasted money : Many of these services charge high fees without actually delivering on their promises, leading to wasted resources that could have been spent on improving your business.`]},{type:`p`,text:`The Right Approach to Managing Reviews`},{type:`p`,text:`Instead of trying to remove negative reviews, businesses should focus on managing their online reputation by:`},{type:`list`,ordered:!1,items:[`Responding professionally : Show customers that you care by responding to negative reviews in a polite, helpful manner.`,`Encouraging positive feedback : Actively encourage satisfied customers to leave reviews to build a balanced and authentic review profile.`,`Improving your service : Use negative reviews as an opportunity to improve your services and products, demonstrating to customers that you value their feedback.`]},{type:`p`,text:`By following these strategies, businesses can build a strong, authentic online presence without risking penalties or losing customer trust.`},{type:`p`,links:[{text:`How to Ask for Reviews`,href:`/how-to-ask-for-reviews-boost-your-online-reputation`}
12,{text:`Google Reviews Matter, But Consumers Look Further`,href:`/google-reviews-matter-but-consumers-look-further`}],text:`Related reading: How to Ask for Reviews and Google Reviews Matter, But Consumers Look Further.`}]},{slug:`lead-generation-strategies`,title:`Easy Navigation and Clear Design: Key Strategies to Boost Your Website’s Lead Generation`,date:`2024-09-14`,author:`Karine Kugler`,excerpt:`Nothing’s worse than visiting a brand you’re interested in only to find a confusing website. It looks outdated and feels so slow to navigate. And that frustration is enough for you to click away. It’s not just you. Half of consumers say that their opinion of a business can be shaped by its website. `,metaDescription:`Practical lead generation strategies to attract more qualified enquiries and turn website visitors into customers for your business.`,image:`/images/blog/lead-generation-strategies.jpg`,imageAlt:`Easy Navigation and Clear Design: Key Strategies to Boost Your Website’s Lead Generation`,imageWidth:1200,imageHeight:800,categories:[`Grow Your Business`],body:[{type:`p`,text:`Nothing’s worse than visiting a brand you’re interested in only to find a confusing website. It looks outdated and feels so slow to navigate. And that frustration is enough for you to click away.`},{type:`p`,text:`It’s not just you. Half of consumers say that their opinion of a business can be shaped by its website. So, designing a website isn’t just to look cool. It can drive your lead generation efforts and is worth investing in.`},{type:`p`,text:`You might feel the pressure to make your website perfect, but the truth is that over-optimizing can sometimes do more harm than good. Your site doesn’t need to be flawless . What matters is making it easy to navigate with a clear design.`},{type:`p`,text:`When visitors can find what they need without hassle, they’re definitely more likely to stick around and take action. If you’re ready to make your website work harder for you, we’ve got you covered.`},{type:`p`,text:`Here’s our guide to boosting lead generation with great website design. Let’s jump right in.`},{type:`h2`,text:`User-Friendly Website Design to Drive Lead Generation`},{type:`p`,text:`Websites need to be easy to navigate. That’s a non-negotiable. Around nine out of ten online users , so basically everyone, say that easy navigation is the most important feature of a website.`},{type:`p`,text:`Easy navigation here means that your website is simple to use. Visitors should be able to find what they need without getting confused. You should structure your website so everything is intuitive. This makes the browsing experience better, and a great navigation experience is what keeps visitors engaged long enough to turn into leads.`},{type:`p`,text:`Because on the flip side, poor navigation can drive visitors away. People will lose patience and leave if they see that your menus are cluttered and when links are broken. It looks amateur and can seriously affect your brand .`},{type:`p`,text:`In such a competitive online market, your website is your storefront. Having a user-friendly interface is key to retaining visitors. Guide them toward taking the action that you prefer – make a purchase, sign up for a newsletter, or contact you for more information. That’s the power of a well-structured website.`},{type:`h2`,text:`Creating an Intuitive Navigation Experience`},{type:`p`,text:`The way visitors experience your website can really affect your brand image. A clunky navigation system reflects poorly on your business. Providing a smooth experience, on the other hand, gives users confidence in your brand.`},{type:`p`,text:`Here’s how you can make your website’s navigation experience go as smooth as butter:`},{type:`h3`,text:`Simplify the Menu Structure`},{type:`p`,text:`“Why’d you have to go and make things so complicated?” goes that Avril Lavigne song. A cluttered menu is a big navigation turn-off. As tempting as it is to put everything, keep your menu simple.`},{type:`p`,text:`Limit the number of categories and organize them neatly. Use clear and concise labels for each menu item, so visitors know what to expect just by the name.`},{type:`h3`,text:`Implement a Search Function`},{type:`p`,text:`Some visitors prefer to search directly for what they need. Make that an option, too. A search bar is a great addition to your website especially if you have lots to offer. Make sure the search function delivers accurate results. Place it somewhere easy to see to increase the chances of them looking around longer.`},{type:`h3`,text:`Optimize for Mobile`},{type:`p`,text:`Don’t forget about the phone users. More than half of all web traffic is done on mobile. Lots of people are browsing on their phones, and you don’t want to miss out on that potential. Remember that a navigation system that works well on a desktop might not translate to a smaller screen. Be sure that your website is optimized for all devices.`},{type:`h2`,text:`How to Organize Your Website Content Effectively`},{type:`p`,text:`Organizing your content makes it easier for visitors to follow your website and find what they need. Here are some tips:`},{type:`list`,ordered:!1,items:[`Highlight Key Information : Important content needs to be easy to find. Place it on a high-traffic page like your homepage.`,`Use Clear Headings : Break down your content into sections. Provide clear headings and subheadings so it’s easier for visitors to scan and find what interests them.`,`Shorten Paragraphs : Keep paragraphs short and sweet. People don’t like reading long blocks of text.`,`Guide Visitors Through a Logical Flow : Think of yourself as a guide. Lead users through your content in a logical order. Don’t leave them guessing where to go next.`,`Use Visual Elements : Your website images are just as important as your design. Use icons and buttons to break up text and draw the user’s attention to what’s important.`]},{type:`p`,text:`With these, you’ll make sure your content is 
12well-organized and easy to digest. This keeps visitors engaged and gets them to convert.`},{type:`h2`,text:`Power Up Conversions with Strategic Calls-to-Action`},{type:`p`,text:`A call-to-action (CTA) tells visitors what to do next. It’s one of the most effective ways for turning visitors into leads.`},{type:`p`,text:`But not all CTAs are created equal. An effective CTA needs to be compelling and placed in the right spot. Think of ways to stand out, like bold colours, larger fonts, or a unique button to draw attention. Just don’t go overboard. You don’t want your CTA to look out of place and tacky. Don’t forget to use words that give a sense of urgency. It’s a call for them to take action, after all.`},{type:`p`,text:`Your landing pages, which highlight customer pain points , should always feature strong CTAs. After your customer reads about your product or service, they should easily see a button that says something like “Get a Free Quote” or “Contact Us Today.” It gives them that clear next step.`},{type:`p`,text:`Putting CTAs on your website increases your chances of converting visitors into customers.`},{type:`h2`,text:`Boost Leads with Top-Notch Website Design`},{type:`p`,text:`To stay competitive, your website needs easy navigation and a clear design. They can shape how visitors experience your website. This plays a huge role in converting them into leads.`},{type:`p`,text:`Your website doesn’t need to be perfect – but it does need to be intuitive. This way, visitors can find what they’re looking for quickly and are more likely to take action.`},{type:`p`,text:`Take your website up a notch with The Three Marketers. Established in Calgary in 2003, we offer top-notch online marketing services to businesses big and small.`},{type:`p`,text:`Contact us today for more info. Let’s grow your business with a strong website.`}]},{slug:`why-work-with-a-google-partner-agency`,title:`Why Work with a Google Partner Agency?`,date:`2025-01-15`,author:`Karine Kugler`,excerpt:`Looking to start your first Google Ads campaign or get more out of an existing one? Here is what a Google Partner agency is, how it differs from other agencies, and how working with one benefits your business.`,metaDescription:`Google Partners are vetted by Google for performance and expertise. Learn what that means for your Google Ads results, budget and support.`,image:`/images/blog/why-work-with-a-google-partner-agency.jpg`,imageAlt:`Laptop showing a Google Ads performance dashboard next to a magnifying glass with a star`,imageWidth:1200,imageHeight:675,categories:[`Google Ads`],body:[{type:`p`,text:`Looking to start your first Google Ads campaign or need help getting more out of an existing one? Then look no further than a Google Partner agency. In this article, we explain what a Google Partner is, why certified partners are different from other agencies, and most importantly, how your business benefits from working with one.`},{type:`h2`,text:`What Is a Google Partner?`},{type:`p`,text:`The Google Partner program is made up of advertising agencies, digital marketing professionals and consultants that have successfully completed Google Ads certifications, met the spending requirements across their managed accounts and demonstrated strong company and client growth performance.`},{type:`p`,text:`Google Partners are required to stay up to date with the latest changes and advancements in Google Ads, and to maintain certifications across areas such as Search, Display, Shopping and Video. Partners are recognized for managing a substantial portfolio of Google advertising campaigns and consistently delivering results for their clients. The Three Marketers is proud to be a Google Partner agency.`},{type:`h2`,text:`How Does Working With a Google Partner Agency Benefit Your Business?`},{type:`h3`,text:`Save Time and Money`},{type:`p`,text:`Google makes its tools accessible to the general public, so anyone can sign up to Google Ads and launch a first campaign. Saves money, right? Not exactly. Setting up and launching campaigns may seem easy, but there are many different ways to spend your budget in Google Ads. Not knowing where they are and how to best use them is a classic example of being penny-wise but dollar foolish.`},{type:`p`,text:`Part of the reason agencies earn Google Partner status is the experienced, professional and knowledgeable staff handling their clients’ campaigns. By working with a Google Partner like The Three Marketers, you can rest easy knowing your campaigns are managed in the most cost-effective, efficient way possible. Our staff are Google certified, meaning they are specially trained to analyze the campaigns they manage and use the information gathered to make the best, informed decisions for your advertising budget.`},{type:`h3`,text:`Faster, Higher-Level Support`},{type:`p`,text:`One of the perks of working with a Google Partner agency is access to dedicated Google support. Managing your campaign on your own, a support issue could take days or even weeks to be resolved — meaning more wasted t
12ime and money. Working with The Three Marketers ensures any unforeseen problems with your Google Ads campaign are taken care of as quickly as possible.`},{type:`h3`,text:`Early Access to New Google Tools and Features`},{type:`p`,text:`Because Partner agencies are in regular contact with Google representatives, they are among the first to be granted access to test Google’s new tools and products. The Three Marketers receives insider access to things like new ad formats, campaign types and the latest Google Ads platform updates. These new tools and features can be essential to boosting campaign performance and conversions — giving you an edge over your competitors.`},{type:`h3`,text:`Benefit from Insider Knowledge`},{type:`p`,text:`As a Google Partner, The Three Marketers team is regularly invited to Google events for exclusive workshops, seminars and training sessions, and we attend the Google Partner summits and conferences year after year. We share this insider knowledge with our clients when working on their campaigns.`},{type:`h3`,text:`Gain an Edge on Your Competition`},{type:`p`,text:`Working with a Google Partner agency helps you stay ahead of your competition and achieve your revenue goals faster. Google runs regular programs and challenges for its Partners with one goal in mind: helping their clients grow.`},{type:`h3`,text:`Take Your Business Global`},{type:`p`,text:`Neglecting the large, non-English speaking demographic can mean lost revenue. The Three Marketers recognizes this and offers multilingual services for your advertising keywords, ad copy and even your website if necessary — ensuring your company’s message reaches as far as you need it to go.`},{type:`p`,text:`Ready to take your business to the next level? Get in touch today and start reaping the rewards of working with a Google Partner agency.`},{type:`p`,links:[{text:`Google Ads management`,href:`/calgary-google-ads-management`},{text:`Google Ads Budget Guide`,href:`/google-ads-budget-guide-for-calgary-businesses`}],text:`Learn more: Google Ads management · Google Ads Budget Guide.`}]},{slug:`how-to-grow-your-account-on-instagram`,title:`How to Grow Your Account on Instagram`,date:`2022-11-01`,author:`Manon Kugler`,excerpt:`When growing your Instagram account, the first thing you need to focus on is creating a strong, engaged, and loyal community of followers. Learn how.`,metaDescription:`When growing your Instagram account, the first thing you need to focus on is creating a strong, engaged, and loyal community of followers. Learn how.`,image:`/images/blog/instagram-content.jpg`,imageAlt:`Instagram content`,imageWidth:1200,imageHeight:800,categories:[`Social Media`],body:[{type:`p`,text:`Acquired by Facebook in 2012, Instagram is the world’s most popular photo and video-sharing social media platform. With over 500 million active daily users, the platform’s main purpose is to allow its users to share and engage with photos and videos of their daily lives. Instagram currently hosts over 40 billion photos and videos, which have received over 4.2 billion likes since it was founded in 2010.`},{type:`p`,text:`From local, family-run businesses to large, global brands, everyone is focused on growing their Instagram account. Business-wise, Instagram hosts over 25 million business accounts, who use the platform to market their offerings to their target audience. Instagram business accounts benefit from a whole host of features, including in-depth audience insights, audience analytics, and easier retargeting – making the platform a wise choice for any forward-thinking businesses and brands looking to gain exposure.`},{type:`p`,text:`When growing your Instagram account, the first thing you need to focus on is creating a strong, engaged, and loyal community of followers. The most obvious way of growing your follower base would be to post high-quality content on a regular basis, though there’s a bit more to it than just that. So, what more can you do the grow your Instagram fan base:`},{type:`h2`,text:`Create an appealing profile`},{type:`p`,text:`First of all, you need to build that initial momentum to get followers on Instagram. However, if you already have a business or a brand with a somewhat established community, then building up your initial following should not too difficult. One of the first things you should be doing to attract more fans is to create or modify your existing account profile to appeal to your target audience. Use vivid colors and make sure you stay consistent with the overall color scheme. You can even establish a “theme” for your profile by doing things such as adding the same filter to each post or using the same colors. Be sure to make it very clear of what kind of business you are representing and add links to your website or other social media profiles to allow users to learn more about your business.`},{type:`h2`,text:`Self-promotion is the easiest way to get noticed quickly`},{type:`p`,text:`Self-promotion is all about reaching out to other accounts and introducing yourself. Even though some users find this annoying, it’s the best way to get noticed on Instagram. All you need to do is post comments on content shared by other accounts. Say something positive about their post and ask them if they’re interested in a “Like for Like” (LFL) or a “Follow for Follow” (FFF). They will usually respond positively and as a result, your likes and followers will increase. The main idea behind this is to reach out to other accounts and not simply wait around expecting followers to naturally find your account; which will happen, just not in huge quantities at the beginning.`},{type:`h2`,text:`The right hashtags can get you noticed`},{type:`p`,text:`It’s no use spending half an hour figuring out what you want to write in y
12our post caption and then neglecting to add hashtags! Hashtags generate great visibility for your campaign and make it easier for you to reach out to any members in your target audience interested in a particular topic. Instagram community hashtags connect like-minded users across the globe interested in a specific subject. When using them on your business account, hashtags help you accomplish things like connecting with others, gaining followers, improving your post’s searchability, and much, much more.`},{type:`h2`,text:`Always be active on Instagram!`},{type:`p`,text:`Even though we all have busy schedules, we always seem to be able to set aside some time to browse social media. Therefore, it’s important to stay active and post between one and three times a day. Major brands posts on average 1.5 times a day. Remember to post at the same time every day, since your loyal followers will be ready and waiting to see your post at that specific time.`},{type:`h2`,text:`Collaborate with influencers`},{type:`p`,text:`If you want to grow your Instagram account quickly, it’s a good idea to reach out to a few influencers who have lots of followers. If you get featured on their page, there’s a chance that their fans will start following you too! Another great way to grow your fan base is to work with influencers and offer to send them out a few samples of your products. If they like them then there’s a good chance they’ll be motivated to post about them and share them with their followers.`},{type:`p`,text:`In conclusion, to gain more visibility on Instagram it’s important to create attractive posts and use the right hashtags. Collaborate with influencers or with other accounts, post often, and stay active. Growing and maintaining a fan base on Instagram requires lots of time and patience, and results might not show up right away – but they will eventually. Work hard and don’t give up!`},{type:`p`,links:[{text:`How to Optimize Your Instagram Bio`,href:`/how-to-optimize-your-instagram-bio-and-get-discovered`}],text:`Related reading: How to Optimize Your Instagram Bio.`}]},{slug:`5-best-practices-when-posting-on-facebook`,title:`5 Best Practices When Posting on Facebook`,date:`2022-09-01`,author:`Manon Kugler`,excerpt:`If you’re determined to beat the competition, it’s important to follow best practices when posting on Facebook. Here's our top 5 to get you started.`,metaDescription:`If you’re determined to beat the competition, it’s important to follow best practices when posting on Facebook. Here's our top 5 to get you started.`,image:`/images/blog/facebook-post.jpg`,imageAlt:`5 best practices when posting on Facebook`,imageWidth:1200,imageHeight:800,categories:[`Social Media`],body:[{type:`p`,text:`Despite social media playing such a crucial role in communications nowadays, many businesses still have trouble understanding it and struggle to use it effectively. This doesn’t mean that it’s impossible to find success on Facebook, however, and if you’re determined to get a leg up over the competition, it’s important to follow best practices when posting to ensure you make the best use of this incredible platform. To help you get a head start, we’ve listed 5 of our top best practices when posting on Facebook.`},{type:`h2`,text:`Post Frequently`},{type:`p`,text:`Posting frequently tells both Facebook and your audience alike that your business is active and that you’re invested in your customers. With Facebook showing fewer business posts to users, posting regularly and consistently is key, and posting a couple of times a week just doesn’t cut it anymore. This doesn’t mean you have to flood your page with hourly posts, however, and you’ll ultimately need to figure out the right number of posts you share each day based on what works best for your business.`},{type:`p`,text:`Remember to vary your posts, too, and post a variety of different content to maximize your reach and keep your audience interested. Use a mix of photos, videos, and stories to keep your audience engaged.`},{type:`h2`,text:`Post Content Followers Care About`},{type:`p`,text:`The more relatable your posts are, the more likely your target audience is to connect with you. Alternate between promotional and creative posts to avoid brand fatigue and understand your audience for the best chances of connecting with them.`},{type:`p`,text:`Pay close attention to the number of likes, comments, or shares each type of post gets to figure out what content your followers care about, and make a note to post more of it. Just don’t overdo it. If you notice your audience reacts better to images, make sure you still post the occasional story or video too to avoid audience fatigue.`},{type:`h2`,text:`Post Engaging Content`},{type:`p`,text:`Does your content resonate with the people you’re trying to reach? How are they reacting? Taking advantage of post insights will give you a better idea of the type of posts your audiences enjoy liking, commenting on, and sharing.`},{type:`p`,text:`Keep your audience in mind when creating posts and make sure you post fresh content they can share with others having the same interests. This may be trickier than 
12it seems, however, and you’ll need to conduct a fair bit of research before you’re able to post truly engaging content – but it’s definitely worth it once you get it down.`},{type:`h2`,text:`Actively Manage and Moderate Your Posts`},{type:`p`,text:`Managing and moderating your posts serves several purposes, including audience engagement, addressing customer matters directly, and hiding or deleting inappropriate comments. Engaging with your audience through posts shows that you really care about them, and addressing their concerns directly proves that you’re willing to do what it takes to help them out.`},{type:`p`,text:`Naturally, it’s always important to delete any inappropriate comments on your posts to maintain professionalism and show your audience that you take your posts, page, and business seriously.`},{type:`h2`,text:`Assign Page Roles if You Need Help`},{type:`p`,text:`If you’re too busy to constantly post to your page, manage, and monitor your posts, assigning page roles to other team members or even agencies is always a good idea. Page roles give others permission to maintain your page, and the degree of control you give each user can be customized to ensure your best interests are protected.`},{type:`h2`,text:`Calgary Social Media Experts`},{type:`p`,text:`As one of Calgary’s original online marketing agencies, the Three Marketers has over 15 years of experience managing and maintaining social media accounts for our clients. Dedicated to helping you meet your business goals and objectives, our expert, multilingual team will strive to create a strategy that meets both your goals and your budget. Reach out to us online to find out how our social media services can help grow your business online.`}]},{slug:`google-changed-your-business-profile-heres-why`,title:`Google Changed Your Business Profile? Here's Why`,date:`2026-09-23`,author:`Karine Kugler`,excerpt:`Google can change your Business Profile information without your approval. Learn why regular monitoring helps keep your listing accurate.`,metaDescription:`Google can change your Business Profile information without your approval. Learn why regular monitoring helps keep your listing accurate.`,image:`/images/blog/google-business-profile-changes.png`,imageAlt:`Google Business Profile listing on a laptop with a refresh icon`,imageWidth:1536,imageHeight:1024,categories:[`SEO & Search`],body:[{type:`p`,text:`You set up your Google Business Profile with the correct business name, address, phone number and hours. Everything looks good, so you assume it will stay that way unless you make a change.`},{type:`p`,text:`Unfortunately, that isn't always the case.`},{type:`p`,text:`Google can update information on your Business Profile even when you haven't requested the change. According to Google, it gathers business information from multiple sources and may update a profile when its systems receive information suggesting that existing details are incorrect or outdated.`},{type:`p`,text:`For a local business that relies on Google Search and Google Maps to generate calls, website visits and customers, these changes are worth monitoring.`},{type:`h2`,text:`Where Does Google Get Your Business Information?`},{type:`p`,text:`The information displayed on a Google Business Profile doesn't come exclusively from the business owner.`},{type:`p`,text:`Google says it compiles Business Profile information from several sources, including:`},{type:`list`,ordered:!1,items:[`Information provided by the business owner`,`Public information found online, including content from your website`,`Licensed third-party data`,`Information contributed by Google users`,`Google's own interactions with businesses and locations`]},{type:`p`,text:`This is one reason consistency across your online presence is so important.`},{type:`p`,text:`If your website shows one phone number, an online directory shows another and your Google Business Profile contains something different, Google has conflicting information to process.`},{type:`h2`,text:`What Information Can Google Change?`},{type:`p`,text:`Google may update information when it receives reports or other information indicating that your existing details may be inaccurate.`},{type:`p`,text:`Changes can potentially affect important information customers use to find and contact your business, including:`},{type:`list`,ordered:!1,items:[`Business name`,`Address`,`Phone number`,`Bu
12siness hours`,`Categories`,`Other profile information`]},{type:`p`,text:`Google also allows users to suggest edits to businesses they don't own.`},{type:`p`,text:`This doesn't mean every suggested edit will automatically become part of your profile. But it does mean the information displayed on your listing isn't entirely under your direct control.`},{type:`h3`,text:`Google May Use Information From Your Own Website`},{type:`p`,text:`One particularly important source is your website.`},{type:`p`,text:`Google can use publicly available information from a business's official website when determining Business Profile information.`},{type:`p`,text:`For this reason, make sure your website clearly displays accurate and consistent information about your business.`},{type:`p`,text:`If you move, change your phone number or update your hours, don't update only your Google Business Profile. Review your website and other important online listings as well.`},{type:`p`,text:`Consistency helps Google understand which information is current.`},{type:`h3`,text:`Even a Verified Business Profile Can Be Updated`},{type:`p`,text:`Verification gives you the ability to manage your Google Business Profile, but it doesn't mean Google will never modify the information.`},{type:`p`,text:`This is an important distinction.`},{type:`em`,text:`Owning and verifying your Google Business Profile doesn't mean you should set it up once and never look at it again.`},{type:`p`,text:`Google continues to receive information about your business from different sources, and changes can occur after your listing has been verified.`},{type:`h3`,text:`How Do You Know if Google Changed Something?`},{type:`p`,text:`When Google receives a suggested change to your Business Profile, you may receive an email or an in-product notification asking you to review it. Changes made by Google may also be highlighted in the Business Profile editor.`},{type:`p`,text:`Don't assume every notification requires action, but don't ignore them either. Some suggested edits require a response within four days.`},{type:`p`,text:`The important thing is to review what changed and determine whether the new information is accurate.`},{type:`h3`,text:`You May Have Only Four Days to Reject a Suggested Edit`},{type:`p`,text:`Google Business Profile Help now provides specific guidance about how long businesses have to respond to certain user-suggested edits.`},{type:`p`,text:`According to Google:`},{type:`quote`,text:`Once notified, you have 4 days to accept or reject the suggestion.`},{type:`p`,text:`Google also explains that if you don't respond within four days, it may automatically publish the suggested change when it is supported by other publicly available information, such as information found on your business website.`},{type:`p`,text:`This makes the accuracy of your website even more important. Google may use the information it finds there to help determine whether a suggested change should be published.`},{type:`p`,text:`There is another important point business owners should be aware of. Google also states:`},{type:`quote`,text:`Google may apply suggested user edits to your business information without prior review.`},{type:`p`,text:`In other words, not every suggested edit will necessarily give you four days to respond. Some changes may be applied without prior review.`},{type:`p`,text:`For business owners, this makes regular monitoring of your Google Business Profile more important. A suggested change could potentially affect important business information within a matter of days.`},{type:`h3`,text:`Why Incorrect Changes Can Be a Serious Problem`},{type:`p`,text:`Consider something as simple as a wrong phone number.`},{type:`p`,text:`A potential customer searches for your business, finds your Google Business Profile and calls the number displayed. If that number is incorrect, you may never know that you lost the enquiry.`},{type:`p`,text:`The same applies to your address. An incorrect location could send customers to the wrong place. Incorrect hours could tell potential customers that you're closed when you're actually open.`},{type:`p`,text:`Even a change to your website address could send potential customers to the wrong page.`},{type:`p`,text:`For businesses that receive a significant number of calls, directions and website visits directly from Google Search and Maps, small inaccuracies can have a real impact.`},{type:`h2`,text:`Don't Forget Your Business Categories`},{type:`p`,text:`Your primary and secondary business categories are also important parts of your profile.`},{type:`p`,text:`Categories help Google understand what your business does and can influence the types of local searches for which your business may be relevant.`},{type:`p`,text:`An incorrect category could therefore affect more than how your profile looks. It could affect the searches where Google considers your business relevant.`},{type:`p`,text:`Review your categories periodically and make sure they continue to accurately represent your primary business and services.`},{type:`h2`,text:`What Should Business Owners Do?`},{type:`p`,text:`The key is not to assume that your Google Business Profile will remain unchanged once it has been set up and verified.`},{type:`p`,text:`We recommend:`},{type:`list`,ordered:!1,items:[`Monitoring the email account associated with your Google Business Profile`,`Reviewing Google Business Profile notifications promptly`,`Checking your business name, address, phone number and hours regularly`,`Reviewing your website URL and business categories`,`Keeping the information on your website accurate and consistent`,`Checking important online directories for outdated business information`,`Responding promptly when Google asks you to review a suggested edit`]},{type:`p`,text:`With Google's four-day window for certain suggested edits, checking your profile regularly is more important than ever.`},{type:`h2`,text:`Google Business Profile Monitoring Should Be Part of Local SEO`},{type:`p`,text:`A Google Business Profile isn't something you optimize once and forget.`},{type:`p`,text:`It is an active part of your local search presence and should be monitored along with your website, reviews, rankings and other online listings.`},{type:`p`,links:[{text:`local SEO services`,href:`/calgary-seo`}],text:`At The Three Marketers, we monitor our clients' Google Business Profiles as part of our local SEO services. This helps us identify unexpected changes, maintain accurate business information and take action when necessary.`},{type:`p`,text:`The goal isn't simply to have a Google Business Profile. It's to make sure the information potential customers see when they find your business on Google is accurate.`},{type:`p`,links:[{text:`Google Business Profile Help`,href:`https://support.google.com/business/answer/7091`,nofollow:!0}],text:`Source: Google Business Profile Help, Understand what happens to your Business Profile edits.`}]}].sort((e,t)=>
12t.date.localeCompare(e.date));new Set(vd.map(e=>e.slug));function yd(e){return vd.find(t=>t.slug===e)}function bd(e){return e.toLowerCase().replace(/&/g,`and`).replace(/[^a-z0-9]+/g,`-`).replace(/(^-|-$)/g,``)}function xd(){let e=new Map;for(let t of vd)for(let n of t.categories)e.set(n,(e.get(n)??0)+1);return[...e.entries()].map(([e,t])=>({name:e,slug:bd(e),count:t})).sort((e,t)=>t.count-e.count||e.name.localeCompare(t.name))}function Sd(e,t=3){return vd.filter(t=>t.slug!==e.slug).map(t=>({post:t,score:t.categories.filter(t=>e.categories.includes(t)).length})).sort((e,t)=>t.score-e.score||t.post.date.localeCompare(e.post.date)).slice(0,t).map(e=>e.post)}function Cd(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(Date.UTC(t??1970,(n??1)-1,r??1)).toLocaleDateString(`en-CA`,{year:`numeric`,month:`long`,day:`numeric`,timeZone:`UTC`})}function wd(e){let t=e.body.reduce((e,t)=>e+(t.type===`list`?t.items.join(` `):t.text).split(/\s+/).length,0);return Math.max(2,Math.round(t/220))}var Td=Ms(`/$slug`)({loader:({params:e})=>{let t=yd(e.slug);if(!t)throw Te();return t},head:({loaderData:e})=>{let t=e;return t?nd({title:t.title,description:t.metaDescription??t.excerpt.slice(0,157).trim(),path:`/${t.slug}`,image:`${w.url}${t.image}`,type:`article`}):{}},component:Ps(()=>gd(()=>import(`./_slug-BjIcohOu.js`),__vite__mapDeps([10,1,11,4,5,12,3])),`component`)}),Ed=Ms(`/calgary-bing-advertising`)({loader:()=>{throw ot({to:`/calgary-microsoft-advertising`,statusCode:301})}}),Dd=Ms(`/calgary-digital-marketing-agency`)({head:()=>nd({title:`Calgary Digital Marketing Agency | The Three Marketers`,description:`The Three Marketers is a Calgary digital marketing agency helping businesses grow online through SEO, Google Ads, social media ads and more.`,path:`/calgary-digital-marketing-agency`}),component:Ps(()=>gd(()=>import(`./calgary-digital-marketing-agency-CFUlGCK_.js`),__vite__mapDeps([13,1,4,14,12,3,15,6,7])),`component`)}),Od=[{slug:`/calgary-seo`,nav:`SEO & AI Optimization`,h1:`SEO & AI Optimization`,subtitle:`Increase your visibility on Google and AI search`,metaTitle:`Calgary SEO Services Since 2003 | Google and AI Optimization`,metaDescription:`The Three Marketers offers SEO services to Calgary businesses looking to attract more customers through Google Search and AI-powered search results.`,lead:`Get found on Google and in the AI answers your customers are already asking.`,intro:[`The Three Marketers has been providing SEO services to Calgary businesses since 2003 — long enough to have lived through every major Google update, and to have learned what actually moves rankings versus what just sounds good in a sales pitch.`,`We deliver ethical, white-hat SEO for businesses that want to be found locally, nationally or internationally — not just in traditional Google and Bing results, but increasingly in AI-generated answers from tools like ChatGPT, Gemini and Copilot.`],whatIs:{heading:`What is SEO?`,paragraphs:[`SEO (Search Engine Optimization) is the process of improving your website — its content, structure, speed and technical setup — so it ranks higher in unpaid search results for the terms your customers are actually searching.`,`Done well, it also improves your odds of being cited in AI-generated answers, since AI search tools draw heavily on the same signals of relevance, authority and clarity that traditional SEO builds.`,`For a city like Calgary, where local competition is dense across industries from oil and gas services to home renovation to healthcare, ranking for local intent searches is often the difference between a steady lead pipeline and an invisible website.`]},benefits:[{title:`Increase brand exposure and awareness`,text:`Make future customers aware of the services or products your company offers. SEO works on a local, national or international scale.`},{title:`Ongoing traffic from search and AI results`,text:`Once your site ranks well for relevant keyword phrases, it can generate consistent clicks from Google and other platforms over a long period.`},{title:`Trust that ads cannot buy`,text:`Organic rankings read as earned rather than paid, which carries weight with people comparing their options.`},{title:`A better website overall`,text:`The technical and content work behind SEO — speed, structure, clarity — improves the experience for every visitor, not just search engines.`}],deliverables:[`Technical SEO audit: crawlability, indexing, site speed, mobile usability and structured data`,`Keyword and search intent research based on your market and competition`,`On-page optimization: titles, meta descriptions, headings, internal links and content`,`Local SEO, including Google Business Profile optimization and local citations`,`Content recommendations that support AI search visibility`,`Ethical, white-hat link and authority development`,`Transparent monthly reporting on rankings, organic traffic, clicks and conversions`],faqs:[{q:`How long does SEO take to work?`,a:`SEO is a long-term strategy. Depending on your market, competition and the current state of your website, meaningful movement typically takes several months. We report monthly so you can see progress as it happens.`},{q:`Do you guarantee first-page rankings?`,a:`No reputable agency can guarantee specific Google rankings. We use proven strategies, monitor performance and adjust based on results, changes in search platforms and your business goals.`},{q:`Does SEO still matter now that people use AI tools?`,a:`Yes. AI search tools draw heavily on the same signals of relevance, authority and clarity that traditional SEO builds, so good SEO improves your odds of being cited in AI answers as well.`}
12,{q:`Do I need SEO if I already run Google Ads?`,a:`They work well together. Ads deliver immediate traffic while SEO builds durable visibility, and data from each can inform the other.`}],related:[`/calgary-pay-per-click-advertising`,`/calgary-seo`]},{slug:`/calgary-pay-per-click-advertising`,nav:`Paid Ad Management`,h1:`Pay-Per-Click Advertising (PPC)`,subtitle:`Drive qualified traffic to your website with professionally managed PPC campaigns.`,metaTitle:`Calgary Pay-Per-Click Advertising | Google Ads & More`,metaDescription:`The Three Marketers provides Pay-Per-Click Advertising (PPC) services in Calgary across Google, Microsoft, Meta and LinkedIn.`,lead:`Reach prospective customers with targeted ads across Google, Microsoft, Meta and LinkedIn.`,intro:[`The Three Marketers Inc. delivers high-quality, performance-driven Pay-Per-Click (PPC) campaigns for businesses that want immediate, targeted results.`,`We plan, build, manage and report on campaigns across Google, Microsoft Advertising, Meta and LinkedIn — matched to where your customers actually are.`],whatIs:{heading:`What is Pay-Per-Click advertising?`,paragraphs:[`Pay-Per-Click advertising is the process of promoting a website or an app through paid ads on search engines or social media channels. Paid ads can take the form of text ads, banner ads or video ads.`,`Your campaign can be customized to target a particular location, language or set of keyword phrases.`,`Your ad's position is determined in an auction based on the ad's relevance and the amount competing advertisers are willing to bid for the space. Fees are only incurred when an ad is clicked.`]},benefits:[{title:`Reach people at the right moment`,text:`Your ads appear at the precise moment someone is searching for what you offer.`},{title:`Work within budget`,text:`You decide how much you want to spend monthly, and you will never be charged more than that amount.`},{title:`Measure results in real time`,text:`Conversion tracking on your key pages shows which clicks turn into calls, forms and sales.`},{title:`Test quickly`,text:`Ad copy, landing pages, audiences and keywords can all be tested and refined without waiting months for results.`}],deliverables:[`Account structure, campaign and ad group build`,`Keyword, audience and negative keyword research`,`Ad copy and creative recommendations`,`Conversion tracking setup for calls, forms and purchases`,`Landing page and quality score recommendations`,`Ongoing bid, budget and audience management`,`Transparent monthly reporting on spend, clicks, conversions and cost per lead`],faqs:[{q:`Which platforms do you manage?`,a:`Google Ads, Microsoft Advertising (Bing), Facebook and Instagram, and LinkedIn. We recommend the mix that fits your audience and budget.`},{q:`What budget do I need to start?`,a:`It depends on your industry, location and competition. We will review your goals and recommend a realistic monthly ad budget in your estimate.`},{q:`Who pays the advertising platforms?`,a:`Ad accounts can be billed directly to you or through The Three Marketers, depending on the setup we agree on. Management fees are billed separately.`},{q:`Can I stop or change my campaigns?`,a:`Yes. Budgets and campaigns can be adjusted with written approval, and our ongoing services are month-to-month.`}],related:[`/calgary-google-ads-management`,`/calgary-microsoft-advertising`,`/calgary-seo`]},{slug:`/calgary-google-ads-management`,nav:`Google Ads`,h1:`Google Ads`,subtitle:`Google ad campaign set-up and management`,metaTitle:`Calgary Google Ads Management | Google Partner Agency`,metaDescription:`The Three Marketers provides Google Ads management in Calgary with Google Partner expertise, campaign optimization and conversion tracking.`,lead:`Display your ads at the exact time prospective customers are searching for the products and services you offer.`,intro:[`As a Certified Google Partner, The Three Marketers Inc. delivers high-value Google Ads campaigns — whether it is to increase brand exposure, get your phone ringing, boost your online orders or drive foot traffic to your door.`,`We have been managing Google Ads campaigns for more than 20 years, and our team maintains current Google Ads certifications.`],whatIs:{heading:`What is Google Ads?`,paragraphs:[`Google Ads is Google's Pay-Per-Click advertising platform that lets businesses dis
12play ads on Google Search, YouTube, Google Play, Google Shopping, Gmail and the Google Display Network, an extensive network of partner sites.`,`Paid ads can take the form of text ads, banner ads, product ads or video ads, and appear on every device your potential customers use — desktops, laptops, tablets and smartphones.`,`Campaigns can target a particular language and specific countries, regions or cities, or a set distance from your business. You can choose which days and times your ads run, and target users by keywords, audience type, interests or online behaviours.`]},benefits:[{title:`Show up for high-intent searches`,text:`Capture people who are actively looking for your products or services right now.`},{title:`Only pay for engagement`,text:`Costs are incurred when an ad is clicked, an app is installed, or a video is watched.`},{title:`Precise targeting`,text:`Target by location, language, schedule, keywords, audiences, interests and online behaviours.`},{title:`Full campaign coverage`,text:`Search, Shopping, Display, Video, App and Performance Max campaigns, chosen to match your goals.`}],deliverables:[`Google Ads account audit or new account build`,`Search, Shopping, Display, Video and Performance Max campaign setup`,`Keyword, audience and negative keyword research`,`Ad copy, extensions and creative recommendations`,`Conversion tracking and Google Analytics alignment`,`Ongoing optimization of bids, budgets, audiences and placements`,`Transparent monthly reporting`],faqs:[{q:`Are you a Google Partner?`,a:`Yes. The Three Marketers is a Google Partner and has been managing Google Ads campaigns for more than 20 years.`},{q:`How is my ad position decided?`,a:`Positioning is determined in an auction based on the relevance of your ad and what competing advertisers are willing to pay.`},{q:`Can you work with my existing account?`,a:`Yes. We can audit and take over an existing Google Ads account, or build a new one if that is a better starting point.`},{q:`Will I be able to see what is working?`,a:`Yes. We set up conversion tracking and provide monthly reporting on clicks, conversions and costs.`}],related:[`/calgary-pay-per-click-advertising`,`/calgary-microsoft-advertising`,`/calgary-seo`]},{slug:`/calgary-microsoft-advertising`,nav:`Microsoft Advertising`,h1:`Microsoft Advertising`,subtitle:`Microsoft Advertising Campaign Setup and Management`,metaTitle:`Calgary Microsoft Ads Management | Microsoft Partner`,metaDescription:`The Three Marketers provides Microsoft Advertising management in Calgary, backed by Microsoft Advertising Partner expertise.`,lead:`Reach prospective customers across Microsoft’s advertising network, including Bing and Microsoft Copilot.`,intro:[`As a certified Microsoft Advertising Partner, The Three Marketers sets up and manages Microsoft Advertising campaigns, formerly known as Bing Ads, for Calgary businesses.`,`Microsoft Advertising can help diversify your paid traffic beyond Google and reach additional search audiences across Microsoft’s network.`],whatIs:{heading:`What Is Microsoft Advertising?`,paragraphs:[`Microsoft Advertising is Microsoft’s paid advertising platform, allowing businesses to reach prospective customers through Bing search results and across Microsoft’s advertising network and AI experiences such as Copilot.`,`Campaigns work much like Google Ads: you bid on keywords, ads are ranked based on factors such as relevance and bid, and you pay when someone clicks.`,`Existing Google Ads campaigns can often be imported into Microsoft Advertising and then optimized specifically for the Microsoft audience.`]},benefits:[{title:`Diversify Your Paid Traffic`,text:`Reduce reliance on a single advertising platform by reaching additional search audiences through Microsoft Advertising.`},{title:`Often Lower Competition`,text:`Less advertiser competition for some keywords can result in a lower cost per click.`},{title:`Reach Microsoft Audiences`,text:`Expand your visibility across Microsoft’s search and advertising ecosystem, including Bing and Copilot experiences.`},{title:`Quick to Launch`,text:`Google Ads campaigns can be imported into Microsoft Advertising and then optimized for the platform.`}],deliverables:[`Microsoft Advertising account setup or import from Google Ads`,`Keyword, audience and negative keyword research`,`Ad copy and extension setup`,`Universal Event Tracking and conversion goal configuration`,`Ongoing bid, budget and audience management`,`Transparent monthly reporting`],faqs:[{q:`Is Microsoft Advertising worth using?`,a:`Microsoft Advertising can complement Google Ads by reaching additional audiences, including people searching on Bing and using Microsoft products. It may al
12so have less advertiser competition for some keywords.`},{q:`Can you copy my Google Ads campaigns?`,a:`Yes. Existing Google Ads campaigns can often be imported directly into Microsoft Advertising. We then review and optimize the campaigns for the Microsoft platform rather than simply running an identical copy.`},{q:`Do you manage Google Ads and Microsoft Advertising together?`,a:`Yes. Most clients run Google Ads and Microsoft Advertising side by side, with one combined report.`}],related:[`/calgary-google-ads-management`,`/calgary-pay-per-click-advertising`]},{slug:`/calgary-facebook-advertising`,nav:`Meta Ads`,h1:`Meta Ads (Facebook and Instagram)`,subtitle:`Meta ad campaign set-up and management`,metaTitle:`Calgary Meta Ads Management | Facebook & Instagram Ads`,metaDescription:`The Three Marketers provides Meta Ads management in Calgary, including Facebook and Instagram ad campaigns to reach and engage potential customers.`,lead:`Reach buyers where they scroll, with ads built around a clear offer.`,intro:[`The Three Marketers delivers Facebook and Instagram ad campaign set-up and management for Calgary businesses that want to increase their exposure on social media.`,`Meta's advertising platform reaches an enormous audience and offers some of the most detailed targeting and remarketing options available.`],whatIs:{heading:`What are Meta ads?`,paragraphs:[`Meta ads run across Facebook, Instagram, Messenger and the Audience Network, using image, carousel, story, reel and video formats.`,`You can target people by location, age, gender, language, interests and behaviours, or upload your own customer list to build lookalike audiences.`,`Remarketing lets you show ads to people who have already visited your website, watched your video or engaged with your page.`]},benefits:[{title:`Very large reach`,text:`Access a broad audience across Facebook and Instagram in Calgary, Alberta or anywhere you sell.`},{title:`Detailed targeting`,text:`Combine location, demographics, interests and behaviours to reach a well-defined audience.`},{title:`Effective remarketing`,text:`Bring back people who visited your website but did not enquire the first time.`},{title:`Flexible budgets`,text:`Start modestly, measure results and scale what performs.`}],deliverables:[`Meta Business Manager and ad account setup`,`Meta pixel and conversions API installation`,`Campaign, audience and budget structure`,`Ad creative and copy recommendations across formats`,`Custom, lookalike and remarketing audiences`,`Ongoing optimization and testing`,`Transparent monthly reporting`],faqs:[{q:`Do I need a Facebook page and an Instagram account?`,a:`Yes. Ads run from a Facebook page, and linking an Instagram account lets your ads appear there too.`},{q:`What kind of results can I expect?`,a:`That depends on your offer, market and budget. We set up conversion tracking so results are measured rather than assumed.`},{q:`Who owns the ad account?`,a:`You do. We work within your Business Manager so your data and assets stay with you.`}],related:[`/calgary-linkedin-advertising`,`/calgary-google-ads-management`]},{slug:`/calgary-linkedin-advertising`,nav:`LinkedIn Ads`,h1:`LinkedIn Ads`,subtitle:`LinkedIn ad campaign set-up and management`,metaTitle:`Calgary LinkedIn Ads Management | The Three Marketers`,metaDescription:`The Three Marketers provides LinkedIn Ads management in Calgary to help businesses reach decision-makers by job title, industry and company.`,lead:`Reach decision makers by job title, industry, seniority and company.`,intro:[`The Three Marketers delivers LinkedIn ad campaign set-up and management for Calgary businesses selling to other businesses.`,`LinkedIn is the one platform where you can target people by their professional profile, which makes it a strong fit for B2B lead generation, recruitment and high-value services.`],whatIs:{heading:`What are LinkedIn Ads?`,paragraphs:[`LinkedIn Ads include sponsored content in the feed, message ads, text ads and dynamic ads.`,`Targeting options include job title, job function, seniority, industry, company size, company name, skills and education.`,`Lead gen forms let people submit their details without leaving LinkedIn, which usually improves conversion rates on mobile.`]}
12,benefits:[{title:`Professional targeting`,text:`Reach the specific roles and industries that make buying decisions.`},{title:`Better fit for B2B`,text:`Well suited to considered purchases with longer sales cycles and higher deal values.`},{title:`Lead gen forms`,text:`Capture enquiries directly in LinkedIn with pre-filled profile data.`},{title:`Account-based reach`,text:`Target named companies or upload your own account list.`}],deliverables:[`LinkedIn Campaign Manager setup`,`Audience definition by role, industry, seniority and company`,`Sponsored content, message and text ad builds`,`Insight Tag and conversion tracking`,`Lead gen form setup and lead routing`,`Ongoing optimization and testing`,`Transparent monthly reporting`],faqs:[{q:`Is LinkedIn more expensive than other platforms?`,a:`Cost per click is typically higher than Facebook or Instagram, but for B2B the audience quality often justifies it. We watch cost per qualified lead, not cost per click alone.`},{q:`Do I need a company page?`,a:`Yes. Sponsored content runs from a LinkedIn company page.`},{q:`Can LinkedIn Ads help with hiring?`,a:`Yes. The same targeting that reaches buyers can reach candidates by role, skills and location.`}],related:[`/calgary-facebook-advertising`,`/calgary-seo`]}];function W(e){return Od.find(t=>t.slug===e)}var kd=[{step:`01`,title:`Discovery`,text:`We learn your business, goals, market and competition, and review what is already in place.`},{step:`02`,title:`Proposal`,text:`You receive a free estimate with clear recommendations, deliverables and fees — no long-term contract.`},{step:`03`,title:`Build`,text:`We set up the work: audits, tracking, campaign structure, on-page changes and creative.`},{step:`04`,title:`Manage and report`,text:`We optimize continuously and send transparent monthly reporting so you always know what you are paying for.`}],Ad=W(`/calgary-facebook-advertising`),jd=Ms(`/calgary-facebook-advertising`)({head:()=>nd({title:Ad.metaTitle,description:Ad.metaDescription,path:Ad.slug}),component:Ps(()=>gd(()=>import(`./calgary-facebook-advertising-DuHKkpbu.js`),__vite__mapDeps([16,1,17,2,4,14,12,3,15,8,9])),`component`)}),Md=W(`/calgary-google-ads-management`),Nd=Ms(`/calgary-google-ads-management`)({head:()=>nd({title:Md.metaTitle,description:Md.metaDescription,path:Md.slug}),component:Ps(()=>gd(()=>import(`./calgary-google-ads-management-DUeGMPWS.js`),__vite__mapDeps([18,1,17,2,4,14,12,3,15,8,9])),`component`)}),Pd=W(`/calgary-linkedin-advertising`),Fd=Ms(`/calgary-linkedin-advertising`)({head:()=>nd({title:Pd.metaTitle,description:Pd.metaDescription,path:Pd.slug}),component:Ps(()=>gd(()=>import(`./calgary-linkedin-advertising-CbO2zqTk.js`),__vite__mapDeps([19,1,17,2,4,14,12,3,15,8,9])),`component`)}),Id=W(`/calgary-microsoft-advertising`),Ld=Ms(`/calgary-microsoft-advertising`)({head:()=>nd({title:Id?.metaTitle??`Microsoft Advertising | The Three Marketers`,description:Id?.metaDescription??`Microsoft Advertising management in Calgary.`,path:`/calgary-microsoft-advertising`}),component:Ps(()=>gd(()=>import(`./calgary-microsoft-advertising-C_VzfuXD.js`),__vite__mapDeps([20,1,17,2,4,14,12,3,15,8,9])),`component`)}),Rd=W(`/calgary-pay-per-click-advertising`),zd=Ms(`/calgary-pay-per-click-advertising`)({head:()=>nd({title:Rd.metaTitle,description:Rd.metaDescription,path:Rd.slug}),component:Ps(()=>gd(()=>import(`./calgary-pay-per-click-advertising-DcINhYfY.js`),__vite__mapDeps([21,1,17,2,4,14,12,3,15,8,9])),`component`)}),Bd=W(`/calgary-seo`),Vd=Ms(`/calgary-seo`)({head:()=>nd({title:Bd.metaTitle,description:Bd.metaDescription,path:Bd.slug}),component:Ps(()=>gd(()=>import(`./calgary-seo-DAUuaXgX.js`),__vite__mapDeps([22,1,17,2,4,14,12,3,15,8,9])),`component`)}),Hd=Ms(`/contact`)({head:()=>nd({title:`Calgary Digital Marketing Estimate | The Three Marketers`,description:`The Three Marketers provides free digital marketing estimates for Calgary businesses looking for SEO, Google Ads, PPC and social media ad services.`,path:`/contact`}),component:Ps(()=>gd(()=>import(`./contact-DWOyKpbk.js`),__vite__mapDeps([23,1,14,12,3,8,9])),`component`)}),Ud=Ms(`/faq`)({head:()=>nd({title:`Online Marketing FAQ for Business Owners | The Three Marketers`,description:`Straight answers for business owners on SEO, AI search optimization, paid ads, blogging, Google reviews and everything else that helps a business grow online.`,path:`/faq`}),component:Ps(()=>gd(()=>
vendor: 9,538 bytes, line 12
12import(`./faq-Ld51vccx.js`),__vite__mapDeps([24,1,4,14,12,3,15])),`component`)}),Wd=Ms(`/partner-with-us`)({head:()=>nd({title:`Partner With Us | Marketing Partner Network | The Three Marketers`,description:`Join The Three Marketers partner network and apply to receive qualified digital marketing referrals from businesses looking for professional support.`,path:`/partner-with-us`}),component:Ps(()=>gd(()=>import(`./partner-with-us-CwMoNz-O.js`),__vite__mapDeps([25,1,9,4,14,12,3,6])),`component`)}),Gd=Ms(`/privacy`)({head:()=>nd({title:`Privacy Policy | The Three Marketers`,description:`The Three Marketers' privacy policy describes the way we collect, hold, use and share information about individuals who visit this website or use our services.`,path:`/privacy`}),component:Ps(()=>gd(()=>import(`./privacy-BttqmMdN.js`),__vite__mapDeps([26,1,14,12,3])),`component`)}),Kd=Ms(`/terms`)({head:()=>nd({title:`Terms and Conditions for Using Our Services | The Three Marketers`,description:`The terms and conditions for using The Three Marketers Inc. services.`,path:`/terms`}),component:Ps(()=>gd(()=>import(`./terms-BSfUif4h.js`),__vite__mapDeps([27,1,14,12,3])),`component`)}),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 qd;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(qd||={});var K=G.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),Jd=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`]),Yd=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()}};Yd.create=e=>new Yd(e);var Xd=(e,t)=>{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}},Zd=Xd;function Qd(){return Zd}var $d=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=Qd(),r=$d({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Xd?void 0:Xd].filter(e=>!!e)});e.common.issues.push(r)}var ef=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`}),tf=e=>({status:`dirty`,value:e}),nf=e=>({status:`valid`,value:e}),rf=e=>e.status===`aborted`,af=e=>e.status===`dirty`,of=e=>e.status===`valid`,sf=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 cf=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}},lf=(e,t)=>{if(of(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 Yd(e.common.issues);return this._error=t,this._error}}};function Z(e){if(!e)return{};
vendor: 23,354 bytes, line 12
12let{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 Jd(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Jd(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ef,ctx:{common:e.parent.common,data:e.data,parsedType:Jd(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(sf(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:Jd(e)};return lf(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:Jd(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return of(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=>of(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:Jd(e)},r=this._parse({data:e,path:n.path,parent:n});return lf(n,await(sf(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 fp({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 pp.create(this,this._def)}nullable(){return mp.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qf.create(this)}promise(){return dp.create(this,this._def)}or(e){return Xf.create([this,e],this._def)}and(e){return ep.create(this,e,this._def)}transform(e){return new fp({...Z(this._def),schema:this,typeName:$.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new hp({...Z(this._def),innerType:this,defaultValue:t,typeName:$.ZodDefault})}brand(){return new vp({typeName:$.ZodBranded,type:this,...Z(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new gp({...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 yp.create(this,e)}readonly(){return bp.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},uf=/^c[^\s-]{8,}$/i,df=/^[0-9a-z]+$/,ff=/^[0-9A-HJKMNP-TV-Z]{26}$/i,pf=/^[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,mf=/^[a-z0-9_-]{21}$/i,hf=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,gf=/^[-+]?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)?)??$/,_f=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,vf=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,yf,bf=/^(?:(?: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])$/,xf=/^(?:(?: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])$/,Sf=/^(([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]))$/,Cf=/^(([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])$/,wf=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Tf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Ef=`((\\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])))`,Df=RegExp(`^${Ef}$`);function Of(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 kf(e){return RegExp(`^${Of(e)}$`)}function Af(e){let t=`${Ef}T${Of(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function jf(e,t){return!!((t===`v4`||!t)&&bf.test(e)||(t===`v6`||!t)&&Sf.test(e))}function Mf(e,t){if(!hf.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 Nf(e,t){return!!((t===`v4`||!t)&&xf.test(e)||(t===`v6`||!t)&&Cf.test(e))}var Pf=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 ef,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`)_f.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`)yf||=new RegExp(vf,`u`),yf.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`)pf.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`)mf.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`)uf.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`)df.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`)ff.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`?Af(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`?Df.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{code:q.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?kf(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`?gf.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`duration`,code:q.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?jf(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`?Mf(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`?Nf(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`?wf.test(e.data)||(n=this._getOrReturnCtx(e,n),J(n,{validation:`base64`,code:q.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Tf.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}};Pf.create=e=>new Pf({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...Z(e)});function Ff(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 If=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 ef;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`?Ff(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)}};If.create=e=>new If({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...Z(e)});var Lf=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 ef;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}};Lf.create=e=>new Lf({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...Z(e)});var Rf=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 nf(e.data)}};Rf.create=e=>new Rf({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...Z(e)});var zf=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 ef,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)})}
vendor: 16,310 bytes, line 12
12get 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)}};zf.create=e=>new zf({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...Z(e)});var Bf=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 nf(e.data)}};Bf.create=e=>new Bf({typeName:$.ZodSymbol,...Z(e)});var Vf=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 nf(e.data)}};Vf.create=e=>new Vf({typeName:$.ZodUndefined,...Z(e)});var Hf=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 nf(e.data)}};Hf.create=e=>new Hf({typeName:$.ZodNull,...Z(e)});var Uf=class extends Q{constructor(){super(...arguments),this._any=!0}_parse(e){return nf(e.data)}};Uf.create=e=>new Uf({typeName:$.ZodAny,...Z(e)});var Wf=class extends Q{constructor(){super(...arguments),this._unknown=!0}_parse(e){return nf(e.data)}};Wf.create=e=>new Wf({typeName:$.ZodUnknown,...Z(e)});var Gf=class extends Q{_parse(e){let t=this._getOrReturnCtx(e);return J(t,{code:q.invalid_type,expected:K.never,received:t.parsedType}),Y}};Gf.create=e=>new Gf({typeName:$.ZodNever,...Z(e)});var Kf=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 nf(e.data)}};Kf.create=e=>new Kf({typeName:$.ZodVoid,...Z(e)});var qf=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 cf(t,e,t.path,n)))).then(e=>ef.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new cf(t,e,t.path,n)));return ef.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)}};qf.create=(e,t)=>new qf({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...Z(t)});function Jf(e){if(e instanceof Yf){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=pp.create(Jf(r))}return new Yf({...e._def,shape:()=>t})}return e instanceof qf?new qf({...e._def,type:Jf(e.element)}):e instanceof pp?pp.create(Jf(e.unwrap())):e instanceof mp?mp.create(Jf(e.unwrap())):e instanceof tp?tp.create(e.items.map(e=>Jf(e))):e}var Yf=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 Gf&&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 cf(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Gf){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 cf(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=>ef.mergeObjectSync(t,e)):ef.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 Jf(this)}partial(t){let n={};for(let e of G.objectKeys(this.shape)){let r=this.shape[e];n[e]=t&&!t[e]?r: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 pp;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return cp(G.objectKeys(this.shape))}};Yf.create=(e,t)=>new Yf({shape:()=>e,unknownKeys:`strip`,catchall:Gf.create(),typeName:$.ZodObject,...Z(t)}),Yf.strictCreate=(e,t)=>new Yf({shape:()=>e,unknownKeys:`strict`,catchall:Gf.create(),typeName:$.ZodObject,...Z(t)}),Yf.lazycreate=(e,t)=>new Yf({shape:e,unknownKeys:`strip`,catchall:Gf.create(),typeName:$.ZodObject,...Z(t)});var Xf=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 Yd(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 Yd(e));return J(t,{code:q.invalid_union,unionErrors:i}),Y}}get options(){return this._def.options}};Xf.create=(e,t)=>new Xf({options:e,typeName:$.ZodUnion,...Z(t)});var Zf=e=>e instanceof op?Zf(e.schema):e instanceof fp?Zf(e.innerType()):e instanceof sp?[e.value]:e instanceof lp?e.options:e instanceof up?G.objectValues(e.enum):e instanceof hp?Zf(e._def.innerType):e instanceof Vf?[void 0]:e instanceof Hf?[null]:e instanceof pp?[void 0,...Zf(e.unwrap())]:e instanceof mp?[null,...Zf(e.unwrap())]:e instanceof vp||e instanceof bp?Zf(e.unwrap()):e instanceof gp?Zf(e._def.innerType):[],Qf=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=Zf(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 $f(e,t){let n=Jd(e),r=Jd(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=$f(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}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=$f(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}return n===K.date&&r===K.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var ep=class extends Q{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(rf(e)||rf(r))return Y;let i=$f(e.value,r.value);return i.valid?((af(e)||af(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}))}};ep.create=(e,t,n)=>new ep({left:e,right:t,typeName:$.ZodIntersection,...Z(n)});var tp=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 cf(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>ef.mergeArray(t,e)):ef.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};tp.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new tp({items:e,typeName:$.ZodTuple,rest:null,...Z(t)})};var np=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 cf(n,e,n.path,e)),value:a._parse(new cf(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?ef.mergeObjectAsync(t,r):ef.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:Pf.create(),valueType:t,typeName:$.ZodRecord,...Z(n)})}},rp=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 cf(n,e,n.path,[a,`key`])),value:i._parse(new cf(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}})}{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}}}};rp.create=(e,t,n)=>new rp({valueType:t,keyType:e,typeName:$.ZodMap,...Z(n)});var ip=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 cf(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)}};ip.create=(e,t)=>new ip({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...Z(t)});var ap=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 $d({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Qd(),Xd].filter(e=>!!e),issueData:{code:q.invalid_arguments,argumentsError:n}})}function r(e,n){return $d({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Qd(),Xd].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 dp){let e=this;return nf(async function(...t){let o=new Yd([]),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})})}{let e=this;return nf(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new Yd([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new Yd([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:tp.create(t).rest(Wf.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||tp.create([]).rest(Wf.create()),returns:n||Wf.create(),typeName:$.ZodFunction,...Z(r)})}},op=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})}};op.create=(e,t)=>
vendor: 4,253 bytes, line 12
12new op({getter:e,typeName:$.ZodLazy,...Z(t)});var sp=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}};sp.create=(e,t)=>new sp({value:e,typeName:$.ZodLiteral,...Z(t)});function cp(e,t){return new lp({values:e,typeName:$.ZodEnum,...Z(t)})}var lp=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 nf(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})}};lp.create=cp;var up=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 nf(e.data)}get enum(){return this._def.values}};up.create=(e,t)=>new up({values:e,typeName:$.ZodNativeEnum,...Z(t)});var dp=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):nf((t.parsedType===K.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};dp.create=(e,t)=>new dp({type:e,typeName:$.ZodPromise,...Z(t)});var fp=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`?tf(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`?tf(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})}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(!of(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=>of(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):Y);G.assertNever(r)}};
vendor: 4,563 bytes, line 12
12fp.create=(e,t,n)=>new fp({schema:e,typeName:$.ZodEffects,effect:t,...Z(n)}),fp.createWithPreprocess=(e,t,n)=>new fp({schema:t,effect:{type:`preprocess`,transform:e},typeName:$.ZodEffects,...Z(n)});var pp=class extends Q{_parse(e){return this._getType(e)===K.undefined?nf(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pp.create=(e,t)=>new pp({innerType:e,typeName:$.ZodOptional,...Z(t)});var mp=class extends Q{_parse(e){return this._getType(e)===K.null?nf(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};mp.create=(e,t)=>new mp({innerType:e,typeName:$.ZodNullable,...Z(t)});var hp=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}};hp.create=(e,t)=>new hp({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...Z(t)});var gp=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 sf(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new Yd(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new Yd(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};gp.create=(e,t)=>new gp({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...Z(t)});var _p=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}}};_p.create=e=>new _p({typeName:$.ZodNaN,...Z(e)});var vp=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}},yp=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(),tf(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})}},bp=class extends Q{_parse(e){let t=this._def.innerType._parse(e),n=e=>(of(e)&&(e.value=Object.freeze(e.value)),e);return sf(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};bp.create=(e,t)=>new bp({innerType:e,typeName:$.ZodReadonly,...Z(t)}),Yf.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 xp=Pf.create;If.create,_p.create,Lf.create,Rf.create,zf.create,Bf.create,Vf.create,Hf.create,Uf.create,Wf.create,Gf.create,Kf.create,qf.create;var Sp=Yf.create;Yf.strictCreate,Xf.create,Qf.create,ep.create,tp.create,np.create,rp.create,ip.create,ap.create,op.create,sp.create,lp.create,up.create,dp.create,fp.create,pp.create,mp.create,fp.createWithPreprocess,yp.create;var Cp=()=>gd(()=>import(`./blog-Cx87bpfn.js`),__vite__mapDeps([28,1,4,5,14,12,3])),wp=Sp({category:xp().optional()}),Tp=Ms(`/blog/`)({validateSearch:wp,head:()=>nd({title:`Online Marketing Blog | The Three Marketers Calgary`,description:`Practical articles on SEO, AI search, Google Ads, PPC and s
12ocial media marketing from The Three Marketers, a Calgary online marketing company.`,path:`/blog`}),component:Ps(Cp,`component`)}),Ep=Ms(`/blog/author/$author`)({loader:({params:e})=>{let t=we(e.author);if(!t)throw Te();return t},head:({loaderData:e})=>{let t=e;return t?nd({title:`${t.name} | The Three Marketers`,description:`Articles on SEO, Google Ads and social media marketing written by ${t.name}, ${t.role} at The Three Marketers in Calgary.`,path:`/blog/author/${t.slug}`}):{}},component:Ps(()=>gd(()=>import(`./author._author-BZM-ZsN6.js`),__vite__mapDeps([29,1,4,5,14,12,3])),`component`)}),Dp={IndexRoute:_d.update({id:`/`,path:`/`,getParentRoute:()=>ud}),SlugRoute:Td.update({id:`/$slug`,path:`/$slug`,getParentRoute:()=>ud}),CalgaryBingAdvertisingRoute:Ed.update({id:`/calgary-bing-advertising`,path:`/calgary-bing-advertising`,getParentRoute:()=>ud}),CalgaryDigitalMarketingAgencyRoute:Dd.update({id:`/calgary-digital-marketing-agency`,path:`/calgary-digital-marketing-agency`,getParentRoute:()=>ud}),CalgaryFacebookAdvertisingRoute:jd.update({id:`/calgary-facebook-advertising`,path:`/calgary-facebook-advertising`,getParentRoute:()=>ud}),CalgaryGoogleAdsManagementRoute:Nd.update({id:`/calgary-google-ads-management`,path:`/calgary-google-ads-management`,getParentRoute:()=>ud}),CalgaryLinkedinAdvertisingRoute:Fd.update({id:`/calgary-linkedin-advertising`,path:`/calgary-linkedin-advertising`,getParentRoute:()=>ud}),CalgaryMicrosoftAdvertisingRoute:Ld.update({id:`/calgary-microsoft-advertising`,path:`/calgary-microsoft-advertising`,getParentRoute:()=>ud}),CalgaryPayPerClickAdvertisingRoute:zd.update({id:`/calgary-pay-per-click-advertising`,path:`/calgary-pay-per-click-advertising`,getParentRoute:()=>ud}),CalgarySeoRoute:Vd.update({id:`/calgary-seo`,path:`/calgary-seo`,getParentRoute:()=>ud}),ContactRoute:Hd.update({id:`/contact`,path:`/contact`,getParentRoute:()=>ud}),FaqRoute:Ud.update({id:`/faq`,path:`/faq`,getParentRoute:()=>ud}),PartnerWithUsRoute:Wd.update({id:`/partner-with-us`,path:`/partner-with-us`,getParentRoute:()=>ud}),PrivacyRoute:Gd.update({id:`/privacy`,path:`/privacy`,getParentRoute:()=>ud}),TermsRoute:Kd.update({id:`/terms`,path:`/terms`,getParentRoute:()=>ud}),BlogIndexRoute:Tp.update({id:`/blog/`,path:`/blog/`,getParentRoute:()=>ud}),BlogAuthorAuthorRoute:Ep.update({id:`/blog/author/$author`,path:`/blog/author/$author`,getParentRoute:()=>ud})},Op=ud._addFileChildren(Dp),kp=()=>Xs({routeTree:Op,context:{queryClient:new dl},scrollRestoration:!0,defaultPreloadStaleTime:0});async function Ap(){let e=await kp(),t;if(pc){let n=await pc.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(Vo),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:``,serializationAdapters:t}),e.stores.matchesId.get().length||await Wo(e),e}var jp=Ap;async function Mp(){let e=await jp();return window.$_TSR?.h(),e}var Np;function Pp(){return Np||=Mp(),(0,F.jsx)(Ko,{promise:Np,children:e=>(0,F.jsx)($s,{router:e})})}var Fp=ke();(0,P.startTransition)(()=>{(0,Fp.hydrateRoot)(document,(0,F.jsx)(P.StrictMode,{children:(0,F.jsx)(Pp,{})}))});export{ed as C,_l as D,vl as E,Ts as O,ad as S,bl as T,wd as _,Id as a,id as b,Ad as c,Od as d,Td as f,Cd as g,bd as h,Rd as i,kd as l,vd as m,Tp as n,Pd as o,xd as p,Bd as r,Md as s,Ep as t,W as u,Sd as v,qu as w,od as x,sd as y};

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.