PageSourceSearch

https://goeldhub.com/assets/index-DbJx4_xt.js

js goeldhub.com collected 2026-10-07 04:16:26 UTC 1,357,648 bytes, 41 lines download raw bytes

vendor: 13,674 bytes, lines 1-2
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-C2faC4Gq.js","assets/lock-CWRGkAlN.js","assets/trending-up-CWT19iLF.js","assets/calculator-CzcVZusn.js","assets/badge-check-QtXRInMo.js","assets/best-eld-small-fleets-BiOUu_VH.js","assets/BuyerGuideLinks-wrDHTUhh.js","assets/contact-DRPA1Gjz.js","assets/useServerFn-DGl72Lg0.js","assets/cost-per-mile-calculator-DuEV4PCP.js","assets/eld-cab-card-wDxnuc3T.js","assets/smartphone-DKwQ5Auv.js","assets/download-obOrA-j8.js","assets/eld-hub-facts-DtZJthBQ.js","assets/eld-login-CeOQPY9X.js","assets/eld-market-report-BOGDeeLa.js","assets/chart-column-CtsGrHgh.js","assets/eld-pricing-2gCmeUHS.js","assets/fmcsa-registered-eld-list-Dyj4AcTp.js","assets/free-eld-compliance-calculator-ei8FHekX.js","assets/compliance-calc-t2T82WXX.js","assets/ifta-reporting-software-qRhImU2l.js","assets/press-BBQnRnIZ.js","assets/switch-savings-calculator-DChOyGzK.js","assets/trucking-startup-cost-calculator-BKzWokW0.js","assets/blog.index-BtYEK_VF.js","assets/useSuspenseQuery-B6f4cE1H.js","assets/useBaseQuery-bHv499As.js","assets/blog._slug-BcL8aE6B.js","assets/calendar-CXp2a2DW.js","assets/blog.how-much-does-it-cost-to-start-trucking-company-Cn_PW7or.js","assets/blog.new-authority-first-90-days-CFMhFJm9.js","assets/categories._category-C407JTD_.js","assets/embed.eld-compliance-calculator-Uc4QyR_y.js","assets/admin.leads-CZEobw_-.js"])))=>i.map(i=>d[i]);
2function mD(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ch={exports:{}},Yi={};var Nb;function gD(){if(Nb)return Yi;Nb=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(o,s,u){var d=null;if(u!==void 0&&(d=""+u),s.key!==void 0&&(d=""+s.key),"key"in s){u={};for(var p in s)p!=="key"&&(u[p]=s[p])}else u=s;return s=u.ref,{$$typeof:e,type:o,key:d,ref:s!==void 0?s:null,props:u}}return Yi.Fragment=t,Yi.jsx=n,Yi.jsxs=n,Yi}var Hb;function yD(){return Hb||(Hb=1,Ch.exports=gD()),Ch.exports}var c=yD(),Rh={exports:{}},xe={};var Pb;function bD(){if(Pb)return xe;Pb=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),d=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),w=Symbol.iterator;function x($){return $===null||typeof $!="object"?null:($=w&&$[w]||$["@@iterator"],typeof $=="function"?$:null)}var k={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,D={};function L($,X,ee){this.props=$,this.context=X,this.refs=D,this.updater=ee||k}L.prototype.isReactComponent={},L.prototype.setState=function($,X){if(typeof $!="object"&&typeof $!="function"&&$!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,$,X,"setState")},L.prototype.forceUpdate=function($){this.updater.enqueueForceUpdate(this,$,"forceUpdate")};function O(){}O.prototype=L.prototype;function N($,X,ee){this.props=$,this.context=X,this.refs=D,this.updater=ee||k}var V=N.prototype=new O;V.constructor=N,E(V,L.prototype),V.isPureReactComponent=!0;var Z=Array.isArray;function B(){}var P={H:null,A:null,T:null,S:null},J=Object.prototype.hasOwnProperty;function oe($,X,ee){var se=ee.ref;return{$$typeof:e,type:$,key:X,ref:se!==void 0?se:null,props:ee}}function he($,X){return oe($.type,X,$.props)}function K($){return typeof $=="object"&&$!==null&&$.$$typeof===e}function Q($){var X={"=":"=0",":":"=2"};return"$"+$.replace(/[=:]/g,function(ee){return X[ee]})}var ne=/\/+/g;function ve($,X){return typeof $=="object"&&$!==null&&$.key!=null?Q(""+$.key):X.toString(36)}function ue($){switch($.status){case"fulfilled":return $.value;case"rejected":throw $.reason;default:switch(typeof $.status=="string"?$.then(B,B):($.status="pending",$.then(function(X){$.status==="pending"&&($.status="fulfilled",$.value=X)},function(X){$.status==="pending"&&($.status="rejected",$.reason=X)})),$.status){case"fulfilled":return $.value;case"rejected":throw $.reason}}throw $}function F($,X,ee,se,we){var De=typeof $;(De==="undefined"||De==="boolean")&&($=null);var ye=!1;if($===null)ye=!0;else switch(De){case"bigint":case"string":case"number":ye=!0;break;case"object":switch($.$$typeof){case e:case t:ye=!0;break;case b:return ye=$._init,F(ye($._payload),X,ee,se,we)}}if(ye)return we=we($),ye=se===""?"."+ve($,0):se,Z(we)?(ee="",ye!=null&&(ee=ye.replace(ne,"$&/")+"/"),F(we,X,ee,"",function(Sr){return Sr})):we!=null&&(K(we)&&(we=he(we,ee+(we.key==null||$&&$.key===we.key?"":(""+we.key).replace(ne,"$&/")+"/")+ye)),X.push(we)),1;ye=0;var Pe=se===""?".":se+":";if(Z($))for(var We=0;We<$.length;We++)se=$[We],De=Pe+ve(se,We),ye+=F(se,X,ee,De,we);else if(We=x($),typeof We=="function")for($=We.call($),We=0;!(se=$.next()).done;)se=se.value,De=Pe+ve(se,We++),ye+=F(se,X,ee,De,we);else if(De==="object"){if(typeof $.then=="function")return F(ue($),X,ee,se,we);throw X=String($),Error("Objects are not valid as a React child (found: "+(X==="[object Object]"?"object with keys {"+Object.keys($).join(", ")+"}":X)+"). If you meant to render a collection of children, use an array instead.")}return ye}function te($,X,ee){if($==null)return $;var se=[],we=0;return F($,se,"","",function(De){return X.call(ee,De,we++)}),se}function fe($){if($._status===-1){var X=$._result;X=X(),X.then(function(ee){($._status===0||$._status===-1)&&($._status=1,$._result=ee)},function(ee){($._status===0||$._status===-1)&&($._status=2,$._result=ee)}),$._status===-1&&($._status=0,$._result=X)}if($._status===1)return $._result.default;throw $._result}var He=typeof reportError=="function"?reportError:function($){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var X=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof $=="object"&&$!==null&&typeof $.message=="string"?String($.message):String($),error:$});if(!window.dispatchEvent(X))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",$);return}console.error($)},_e={map:te,forEach:function($,X,ee){te($,function(){X.apply(this,arguments)},ee)},count:function($){var X=0;return te($,function(){X++}),X},toArray:function($){return te($,function(X){return X})||[]},only:function($){if(!K($))throw Error("React.Children.only expected to receive a single React element child.");return $}};return xe.Activity=y,xe.Children=_e,xe.Component=L,xe.Fragment=n,xe.Profiler=s,xe.PureComponent=N,xe.StrictMode=o,xe.Suspense=m,xe.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=P,xe.__COMPILER_RUNTIME={__proto__:null,c:function($){return P.H.useMemoCache($)}},xe.cache=function($){return function(){return $.apply(null,arguments)}},xe.cacheSignal=function(){return null},xe.cloneElement=function($,X,ee){if($==null)throw Error("The argument must be a React element, but you passed "+$+".");var se=E({},$.props),we=$.key;if(X!=null)for(De in X.key!==void 0&&(we=""+X.key),X)!J.call(X,De)||De==="key"||De==="__self"||De==="__source"||De==="ref"&&X.ref===void 0||(se[De]=X[De]);var De=arguments.length-2;if(De===1)se.children=ee;else if(1<De){for(var ye=Array(De),Pe=0;Pe<De;Pe++)ye[Pe]=arguments[Pe+2];se.children=ye}return oe($.type,we,se)},xe.createContext=function($){return $={$$typeof:d,_currentValue:$,_currentValue2:$,_threadCount:0,Provider:null,Consumer:null},$.Provider=$,$.Consumer={$$typeof:u,_context:$},$},xe.createElement=function($,X,ee){var se,we={},De=null;if(X!=null)for(se in X.key!==void 0&&(De=""+X.key),X)J.call(X,se)&&se!=="key"&&se!=="__self"&&se!=="__source"&&(we[se]=X[se]);var ye=arguments.length-2;if(ye===1)we.children=ee;else if(1<ye){for(var Pe=Array(ye),We=0;We<ye;We++)Pe[We]=arguments[We+2];we.children=Pe}if($&&$.defaultProps)for(se in ye=$.defaultProps,ye)we[se]===void 0&&(we[se]=ye[se]);return oe($,De,we)},xe.createRef=function(){return{current:null}},xe.forwardRef=function($){return{$$typeof:p,render:$}},xe.isValidElement=K,xe.lazy=function($){return{$$typeof:b,_payload:{_status:-1,_result:$},_init:fe}},xe.memo=function($,X){return{$$typeof:g,type:$,compare:X===void 0?null:X}},xe.startTransition=function($){var X=P.T,ee={};P.T=ee;try{var se=$(),we=P.S;we!==null&&we(ee,se),typeof se=="object"&&se!==null&&typeof se.then=="function"&&se.then(B,He)}catch(De){He(De)}finally{X!==null&&ee.types!==null&&(X.types=ee.types),P.T=X}},xe.unstable_useCacheRefresh=function(){return P.H.useCacheRefresh()},xe.use=function($){return P.H.use($)},xe.useActionState=function($,X,ee){return P.H.useActionState($,X,ee)},xe.useCallback=function($,X){return P.H.useCallback($,X)},xe.useContext=function($){return P.H.useContext($)},xe.useDebugValue=function(){},xe.useDeferredValue=function($,X){return P.H.useDeferredValue($,X)},xe.useEffect=function($,X){return P.H.useEffect($,X)},xe.useEffectEvent=function($){return P.H.useEffectEvent($)},xe.useId=function(){return P.H.useId()},xe.useImperativeHandle=function($,X,ee){return P.H.useImperativeHandle($,X,ee)},xe.useInsertionEffect=function($,X){return P.H.useInsertionEffect($,X)},xe.useLayoutEffect=function($,X){return P.H.useLayoutEffect($,X)},xe.useMemo=function($,X){return P.H.useMemo($,X)},xe.useOptimistic=function($,X){return P.H.useOptimistic($,X)},xe.useReducer=function($,X,ee){return P.H.useReducer($,X,ee)},xe.useRef=function($){return P.H.useRef($)},xe.useState=function($){return P.H.useState($)},xe.useSyncExternalStore=function($,X,ee){return P.H.useSyncExternalStore($,X,ee)},xe.useTransition=function(){return P.H.useTransition()},xe.version="19.2.5",xe}var jb;function Ls(){return jb||(jb=1,Rh.exports=bD()),Rh.exports}var ae=Ls();const Qc=mD(ae);var Ih={exports:{}},Ki={},Oh={exports:{}},$h={};var qb;function vD(){return qb||(qb=1,(function(e){function t(F,te){var fe=F.length;F.push(te);e:for(;0<fe;){var He=fe-1>>>1,_e=F[He];if(0<s(_e,te))F[He]=te,F[fe]=_e,fe=He;else break e}}function n(F){return F.length===0?null:F[0]}function o(F){if(F.length===0)return null;var te=F[0],fe=F.pop();if(fe!==te){F[0]=fe;e:for(var He=0,_e=F.length,$=_e>>>1;He<$;){var X=2*(He+1)-1,ee=F[X],se=X+1,we=F[se];if(0>s(ee,fe))se<_e&&0>s(we,ee)?(F[He]=we,F[se]=fe,He=se):(F[He]=ee,F[X]=fe,He=X);else if(se<_e&&0>s(we,fe))F[He]=we,F[se]=fe,He=se;else break e}}return te}function s(F,te){var fe=F.sortIndex-te.sortIndex;return fe!==0?fe:F.id-te.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var d=Date,p=d.now();e.unstable_now=function(){return d.now()-p}}var m=[],g=[],b=1,y=null,w=3,x=!1,k=!1,E=!1,D=!1,L=typeof setTimeout=="function"?setTimeout:null,O=typeof clearTimeout=="function"?clearTimeout:null,N=typeof setImmediate<"u"?setImmediate:null;function V(F){for(var te=n(g);te!==null;){if(te.callback===null)o(g);else if(te.startTime<=F)o(g),te.sortIndex=te.expirationTime,t(m,te);else break;te=n(g)}}function Z(F){if(E=!1,V(F),!k)if(n(m)!==null)k=!0,B||(B=!0,Q());else{var te=n(g);te!==null&&ue(Z,te.startTime-F)}}var B=!1,P=-1,J=5,oe=-1;function he(){return D?!0:!(e.unstable_now()-oe<J)}function K(){if(D=!1,B){var F=e.unstable_now();oe=F;var te=!0;try{e:{k=!1,E&&(E=!1,O(P),P=-1),x=!0;var fe=w;try{t:{for(V(F),y=n(m);y!==null&&!(y.expirationTime>F&&he());){var He=y.callback;if(typeof He=="function"){y.callback=null,w=y.priorityLevel;var _e=He(y.expirationTime<=F);if(F=e.unstable_now(),typeof _e=="function"){y.callback=_e,V(F),te=!0;break t}y===n(m)&&o(m),V(F)}else o(m);y=n(m)}if(y!==null)te=!0;else{var $=n(g);$!==null&&ue(Z,$.startTime-F),te=!1}}break e}finally{y=null,w=fe,x=!1}te=void 0}}finally{te?Q():B=!1}}}var Q;if(typeof N=="function")Q=function(){N(K)};else if(typeof MessageChannel<"u"){var ne=new MessageChannel,ve=ne.port2;ne.port1.onmessage=K,Q=function(){ve.postMessage(null)}}else Q=function(){L(K,0)};function ue(F,te){P=L(function(){F(e.unstable_now())},te)}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(F){F.callback=null},e.unstable_forceFrameRate=function(F){0>F||125<F?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):J=0<F?Math.floor(1e3/F):5},e.unstable_getCurrentPriorityLevel=function(){return w},e.unstable_next=function(F){switch(w){case 1:case 2:case 3:var te=3;break;default:te=w}var fe=w;w=te;try{return F()}finally{w=fe}},e.unstable_requestPaint=function(){D=!0},e.unstable_runWithPriority=function(F,te){switch(F){case 1:case 2:case 3:case 4:case 5:break;default:F=3}var fe=w;w=F;try{return te()}finally{w=fe}},e.unstable_scheduleCallback=function(F,te,fe){var He=e.unstable_now();switch(typeof fe=="object"&&fe!==null?(fe=fe.delay,fe=typeof fe=="number"&&0<fe?He+fe:He):fe=He,F){case 1:var _e=-1;break;case 2:_e=250;break;case 5:_e=1073741823;break;case 4:_e=1e4;break;default:_e=5e3}return _e=fe+_e,F={id:b++,callback:te,priorityLevel:F,startTime:fe,expirationTime:_e,sortIndex:-1},fe>He?(F.sortIndex=fe,t(g,F),n(m)===null&&F===n(g)&&(E?(O(P),P=-1):E=!0,ue(Z,fe-He))):(F.sortIndex=_e,t(m,F),k||x||(k=!0,B||(B=!0,Q()))),F},e.unstable_shouldYield=he,e.unstable_wrapCallback=function(F){var te=w;return function(){var fe=w;w=te;try{return F.apply(this,arguments)}finally{w=fe}}}})($h)),$h}var Mb;function wD(){return Mb||(Mb=1,Oh.exports=vD()),Oh.exports}
vendor: 4,132 bytes, line 2
2var Nh={exports:{}},St={};var Fb;function xD(){if(Fb)return St;Fb=1;var e=Ls();function t(m){var g="https://react.dev/errors/"+m;if(1<arguments.length){g+="?args[]="+encodeURIComponent(arguments[1]);for(var b=2;b<arguments.length;b++)g+="&args[]="+encodeURIComponent(arguments[b])}return"Minified React error #"+m+"; visit "+g+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var o={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},s=Symbol.for("react.portal");function u(m,g,b){var y=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:s,key:y==null?null:""+y,children:m,containerInfo:g,implementation:b}}var d=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function p(m,g){if(m==="font")return"";if(typeof g=="string")return g==="use-credentials"?g:""}return St.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=o,St.createPortal=function(m,g){var b=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!g||g.nodeType!==1&&g.nodeType!==9&&g.nodeType!==11)throw Error(t(299));return u(m,g,null,b)},St.flushSync=function(m){var g=d.T,b=o.p;try{if(d.T=null,o.p=2,m)return m()}finally{d.T=g,o.p=b,o.d.f()}},St.preconnect=function(m,g){typeof m=="string"&&(g?(g=g.crossOrigin,g=typeof g=="string"?g==="use-credentials"?g:"":void 0):g=null,o.d.C(m,g))},St.prefetchDNS=function(m){typeof m=="string"&&o.d.D(m)},St.preinit=function(m,g){if(typeof m=="string"&&g&&typeof g.as=="string"){var b=g.as,y=p(b,g.crossOrigin),w=typeof g.integrity=="string"?g.integrity:void 0,x=typeof g.fetchPriority=="string"?g.fetchPriority:void 0;b==="style"?o.d.S(m,typeof g.precedence=="string"?g.precedence:void 0,{crossOrigin:y,integrity:w,fetchPriority:x}):b==="script"&&o.d.X(m,{crossOrigin:y,integrity:w,fetchPriority:x,nonce:typeof g.nonce=="string"?g.nonce:void 0})}},St.preinitModule=function(m,g){if(typeof m=="string")if(typeof g=="object"&&g!==null){if(g.as==null||g.as==="script"){var b=p(g.as,g.crossOrigin);o.d.M(m,{crossOrigin:b,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0})}}else g==null&&o.d.M(m)},St.preload=function(m,g){if(typeof m=="string"&&typeof g=="object"&&g!==null&&typeof g.as=="string"){var b=g.as,y=p(b,g.crossOrigin);o.d.L(m,b,{crossOrigin:y,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0,type:typeof g.type=="string"?g.type:void 0,fetchPriority:typeof g.fetchPriority=="string"?g.fetchPriority:void 0,referrerPolicy:typeof g.referrerPolicy=="string"?g.referrerPolicy:void 0,imageSrcSet:typeof g.imageSrcSet=="string"?g.imageSrcSet:void 0,imageSizes:typeof g.imageSizes=="string"?g.imageSizes:void 0,media:typeof g.media=="string"?g.media:void 0})}},St.preloadModule=function(m,g){if(typeof m=="string")if(g){var b=p(g.as,g.crossOrigin);o.d.m(m,{as:typeof g.as=="string"&&g.as!=="script"?g.as:void 0,crossOrigin:b,integrity:typeof g.integrity=="string"?g.integrity:void 0})}else o.d.m(m)},St.requestFormReset=function(m){o.d.r(m)},St.unstable_batchedUpdates=function(m,g){return m(g)},St.useFormState=function(m,g,b){return d.H.useFormState(m,g,b)},St.useFormStatus=function(){return d.H.useHostTransitionStatus()},St.version="19.2.5",St}var Ub;function ED(){if(Ub)return Nh.exports;Ub=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Nh.exports=xD(),Nh.exports}var Bb;function SD(){if(Bb)return Ki;Bb=1;var e=wD(),t=Ls(),n=ED();function o(r){var a="https://react.dev/errors/"+r;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)a+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+r+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11)}
vendor: 16,605 bytes, lines 2-9
2function u(r){var a=r,i=r;if(r.alternate)for(;a.return;)a=a.return;else{r=a;do a=r,(a.flags&4098)!==0&&(i=a.return),r=a.return;while(r)}return a.tag===3?i:null}function d(r){if(r.tag===13){var a=r.memoizedState;if(a===null&&(r=r.alternate,r!==null&&(a=r.memoizedState)),a!==null)return a.dehydrated}return null}function p(r){if(r.tag===31){var a=r.memoizedState;if(a===null&&(r=r.alternate,r!==null&&(a=r.memoizedState)),a!==null)return a.dehydrated}return null}function m(r){if(u(r)!==r)throw Error(o(188))}function g(r){var a=r.alternate;if(!a){if(a=u(r),a===null)throw Error(o(188));return a!==r?null:r}for(var i=r,l=a;;){var h=i.return;if(h===null)break;var f=h.alternate;if(f===null){if(l=h.return,l!==null){i=l;continue}break}if(h.child===f.child){for(f=h.child;f;){if(f===i)return m(h),r;if(f===l)return m(h),a;f=f.sibling}throw Error(o(188))}if(i.return!==l.return)i=h,l=f;else{for(var v=!1,S=h.child;S;){if(S===i){v=!0,i=h,l=f;break}if(S===l){v=!0,l=h,i=f;break}S=S.sibling}if(!v){for(S=f.child;S;){if(S===i){v=!0,i=f,l=h;break}if(S===l){v=!0,l=f,i=h;break}S=S.sibling}if(!v)throw Error(o(189))}}if(i.alternate!==l)throw Error(o(190))}if(i.tag!==3)throw Error(o(188));return i.stateNode.current===i?r:a}function b(r){var a=r.tag;if(a===5||a===26||a===27||a===6)return r;for(r=r.child;r!==null;){if(a=b(r),a!==null)return a;r=r.sibling}return null}var y=Object.assign,w=Symbol.for("react.element"),x=Symbol.for("react.transitional.element"),k=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),D=Symbol.for("react.strict_mode"),L=Symbol.for("react.profiler"),O=Symbol.for("react.consumer"),N=Symbol.for("react.context"),V=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),B=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),oe=Symbol.for("react.activity"),he=Symbol.for("react.memo_cache_sentinel"),K=Symbol.iterator;function Q(r){return r===null||typeof r!="object"?null:(r=K&&r[K]||r["@@iterator"],typeof r=="function"?r:null)}var ne=Symbol.for("react.client.reference");function ve(r){if(r==null)return null;if(typeof r=="function")return r.$$typeof===ne?null:r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case E:return"Fragment";case L:return"Profiler";case D:return"StrictMode";case Z:return"Suspense";case B:return"SuspenseList";case oe:return"Activity"}if(typeof r=="object")switch(r.$$typeof){case k:return"Portal";case N:return r.displayName||"Context";case O:return(r._context.displayName||"Context")+".Consumer";case V:var a=r.render;return r=r.displayName,r||(r=a.displayName||a.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case P:return a=r.displayName||null,a!==null?a:ve(r.type)||"Memo";case J:a=r._payload,r=r._init;try{return ve(r(a))}catch{}}return null}var ue=Array.isArray,F=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,fe={pending:!1,data:null,method:null,action:null},He=[],_e=-1;function $(r){return{current:r}}function X(r){0>_e||(r.current=He[_e],He[_e]=null,_e--)}function ee(r,a){_e++,He[_e]=r.current,r.current=a}var se=$(null),we=$(null),De=$(null),ye=$(null);function Pe(r,a){switch(ee(De,a),ee(we,r),ee(se,null),a.nodeType){case 9:case 11:r=(r=a.documentElement)&&(r=r.namespaceURI)?ab(r):0;break;default:if(r=a.tagName,a=a.namespaceURI)a=ab(a),r=ob(a,r);else switch(r){case"svg":r=1;break;case"math":r=2;break;default:r=0}}X(se),ee(se,r)}function We(){X(se),X(we),X(De)}function Sr(r){r.memoizedState!==null&&ee(ye,r);var a=se.current,i=ob(a,r.type);a!==i&&(ee(we,r),ee(se,i))}function pa(r){we.current===r&&(X(se),X(we)),ye.current===r&&(X(ye),Vi._currentValue=fe)}var qr,$f;function fa(r){if(qr===void 0)try{throw Error()}catch(i){var a=i.stack.trim().match(/\n( *(at )?)/);qr=a&&a[1]||"",$f=-1<i.stack.indexOf(`
3    at`)?" (<anonymous>)":-1<i.stack.indexOf("@")?"@unknown:0:0":""}return`
4`+qr+r+$f}var pu=!1;function fu(r,a){if(!r||pu)return"";pu=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(a){var Y=function(){throw Error()};if(Object.defineProperty(Y.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Y,[])}catch(U){var M=U}Reflect.construct(r,[],Y)}else{try{Y.call()}catch(U){M=U}r.call(Y.prototype)}}else{try{throw Error()}catch(U){M=U}(Y=r())&&typeof Y.catch=="function"&&Y.catch(function(){})}}catch(U){if(U&&M&&typeof U.stack=="string")return[U.stack,M.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var h=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");h&&h.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var f=l.DetermineComponentFrameRoot(),v=f[0],S=f[1];if(v&&S){var T=v.split(`
5`),q=S.split(`
6`);for(h=l=0;l<T.length&&!T[l].includes("DetermineComponentFrameRoot");)l++;for(;h<q.length&&!q[h].includes("DetermineComponentFrameRoot");)h++;if(l===T.length||h===q.length)for(l=T.length-1,h=q.length-1;1<=l&&0<=h&&T[l]!==q[h];)h--;for(;1<=l&&0<=h;l--,h--)if(T[l]!==q[h]){if(l!==1||h!==1)do if(l--,h--,0>h||T[l]!==q[h]){var z=`
7`+T[l].replace(" at new "," at ");return r.displayName&&z.includes("<anonymous>")&&(z=z.replace("<anonymous>",r.displayName)),z}while(1<=l&&0<=h);break}}}finally{pu=!1,Error.prepareStackTrace=i}return(i=r?r.displayName||r.name:"")?fa(i):""}function GE(r,a){switch(r.tag){case 26:case 27:case 5:return fa(r.type);case 16:return fa("Lazy");case 13:return r.child!==a&&a!==null?fa("Suspense Fallback"):fa("Suspense");case 19:return fa("SuspenseList");case 0:case 15:return fu(r.type,!1);case 11:return fu(r.type.render,!1);case 1:return fu(r.type,!0);case 31:return fa("Activity");default:return""}}function Nf(r){try{var a="",i=null;do a+=GE(r,i),i=r,r=r.return;while(r);return a}catch(l){return`
8Error generating stack: `+l.message+`
9`+l.stack}}var mu=Object.prototype.hasOwnProperty,gu=e.unstable_scheduleCallback,yu=e.unstable_cancelCallback,WE=e.unstable_shouldYield,XE=e.unstable_requestPaint,Ut=e.unstable_now,YE=e.unstable_getCurrentPriorityLevel,Hf=e.unstable_ImmediatePriority,Pf=e.unstable_UserBlockingPriority,Fs=e.unstable_NormalPriority,KE=e.unstable_LowPriority,jf=e.unstable_IdlePriority,QE=e.log,JE=e.unstable_setDisableYieldValue,ni=null,Bt=null;function vn(r){if(typeof QE=="function"&&JE(r),Bt&&typeof Bt.setStrictMode=="function")try{Bt.setStrictMode(ni,r)}catch{}}var zt=Math.clz32?Math.clz32:tS,ZE=Math.log,eS=Math.LN2;function tS(r){return r>>>=0,r===0?32:31-(ZE(r)/eS|0)|0}var Us=256,Bs=262144,zs=4194304;function ma(r){var a=r&42;if(a!==0)return a;switch(r&-r){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 r&261888;case 262144:case 524288:case 1048576:case 2097152:return r&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return r&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function Vs(r,a,i){var l=r.pendingLanes;if(l===0)return 0;var h=0,f=r.suspendedLanes,v=r.pingedLanes;r=r.warmLanes;var S=l&134217727;return S!==0?(l=S&~f,l!==0?h=ma(l):(v&=S,v!==0?h=ma(v):i||(i=S&~r,i!==0&&(h=ma(i))))):(S=l&~f,S!==0?h=ma(S):v!==0?h=ma(v):i||(i=l&~r,i!==0&&(h=ma(i)))),h===0?0:a!==0&&a!==h&&(a&f)===0&&(f=h&-h,i=a&-a,f>=i||f===32&&(i&4194048)!==0)?a:h}function ai(r,a){return(r.pendingLanes&~(r.suspendedLanes&~r.pingedLanes)&a)===0}function rS(r,a){switch(r){case 1:case 2:case 4:case 8:case 64:return a+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 a+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 qf(){var r=zs;return zs<<=1,(zs&62914560)===0&&(zs=4194304),r}function bu(r){for(var a=[],i=0;31>i;i++)a.push(r);return a}function oi(r,a){r.pendingLanes|=a,a!==268435456&&(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function nS(r,a,i,l,h,f){var v=r.pendingLanes;r.pendingLanes=i,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&=i,r.entangledLanes&=i,r.errorRecoveryDisabledLanes&=i,r.shellSuspendCounter=0;var S=r.entanglements,T=r.expirationTimes,q=r.hiddenUpdates;for(i=v&~i;0<i;){var z=31-zt(i),Y=1<<z;S[z]=0,T[z]=-1;var M=q[z];if(M!==null)for(q[z]=null,z=0;z<M.length;z++){var U=M[z];U!==null&&(U.lane&=-536870913)}i&=~Y}l!==0&&Mf(r,l,0),f!==0&&h===0&&r.tag!==0&&(r.suspendedLanes|=f&~(v&~a))}function Mf(r,a,i){r.pendingLanes|=a,r.suspendedLanes&=~a;var l=31-zt(a);r.entangledLanes|=a,r.entanglements[l]=r.entanglements[l]|1073741824|i&261930}function Ff(r,a){var i=r.entangledLanes|=a;for(r=r.entanglements;i;){var l=31-zt(i),h=1<<l;h&a|r[l]&a&&(r[l]|=a),i&=~h}}function Uf(r,a){var i=a&-a;return i=(i&42)!==0?1:vu(i),(i&(r.suspendedLanes|a))!==0?0:i}function vu(r){switch(r){case 2:r=1;break;case 8:r=4;break;case 32:r=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:r=128;break;case 268435456:r=134217728;break;default:r=0}return r}function wu(r){return r&=-r,2<r?8<r?(r&134217727)!==0?32:268435456:8:2}function Bf(){var r=te.p;return r!==0?r:(r=window.event,r===void 0?32:Ab(r.type))}function zf(r,a){var i=te.p;try{return te.p=r,a()}finally{te.p=i}}var wn=Math.random().toString(36).slice(2),bt="__reactFiber$"+wn,Ct="__reactProps$"+wn,Ya="__reactContainer$"+wn,xu="__reactEvents$"+wn,aS="__reactListeners$"+wn,oS="__reactHandles$"+wn,Vf="__reactResources$"+wn,ii="__reactMarker$"+wn;function Eu(r){delete r[bt],delete r[Ct],delete r[xu],delete r[aS],delete r[oS]}function Ka(r){var a=r[bt];if(a)return a;for(var i=r.parentNode;i;){if(a=i[Ya]||i[bt]){if(i=a.alternate,a.child!==null||i!==null&&i.child!==null)for(r=hb(r);r!==null;){if(i=r[bt])return i;r=hb(r)}return a}r=i,i=r.parentNode}return null}function Qa(r){if(r=r[bt]||r[Ya]){var a=r.tag;if(a===5||a===6||a===13||a===31||a===26||a===27||a===3)return r}return null}function si(r){var a=r.tag;if(a===5||a===26||a===27||a===6)return r.stateNode;throw Error(o(33))}function Ja(r){var a=r[Vf];return a||(a=r[Vf]={hoistableStyles:new Map,hoistableScripts:new Map}),a}function ft(r){r[ii]=!0}var Gf=new Set,Wf={};function ga(r,a){Za(r,a),Za(r+"Capture",a)}function Za(r,a){for(Wf[r]=a,r=0;r<a.length;r++)Gf.add(a[r])}var iS=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Xf={},Yf={};function sS(r){return mu.call(Yf,r)?!0:mu.call(Xf,r)?!1:iS.test(r)?Yf[r]=!0:(Xf[r]=!0,!1)}function Gs(r,a,i){if(sS(a))if(i===null)r.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":r.removeAttribute(a);return;case"boolean":var l=a.toLowerCase().slice(0,5);if(l!=="data-"&&l!=="aria-"){r.removeAttribute(a);return}}r.setAttribute(a,""+i)}}function Ws(r,a,i){if(i===null)r.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":r.removeAttribute(a);return}r.setAttribute(a,""+i)}}function Mr(r,a,i,l){if(l===null)r.removeAttribute(i);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":r.removeAttribute(i);return}r.setAttributeNS(a,i,""+l)}}function Zt(r){switch(typeof r){case"bigint":case"boolean":case"number":case"string":case"undefined":return r;case"object":return r;default:return""}}function Kf(r){var a=r.type;return(r=r.nodeName)&&r.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function lS(r,a,i){var l=Object.getOwnPropertyDescriptor(r.constructor.prototype,a);if(!r.hasOwnProperty(a)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var h=l.get,f=l.set;return Object.defineProperty(r,a,{configurable:!0,get:function(){return h.call(this)},set:function(v){i=""+v,f.call(this,v)}}),Object.defineProperty(r,a,{enumerable:l.enumerable}),{getValue:function(){return i},setValue:function(v){i=""+v},stopTracking:function(){r._valueTracker=null,delete r[a]}}}}function Su(r){if(!r._valueTracker){var a=Kf(r)?"checked":"value";r._valueTracker=lS(r,a,""+r[a])}}function Qf(r){if(!r)return!1;var a=r._valueTracker;if(!a)return!0;var i=a.getValue(),l="";return r&&(l=Kf(r)?r.checked?"true":"false":r.value),r=l,r!==i?(a.setValue(r),!0):!1}function Xs(r){if(r=r||(typeof document<"u"?document:void 0),typeof r>"u")return null;try{return r.activeElement||r.body}catch{return r.body}}var cS=/[\n"\\]/g;function er(r){return r.replace(cS,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function ku(r,a,i,l,h,f,v,S){r.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?r.type=v:r.removeAttribute("type"),a!=null?v==="number"?(a===0&&r.value===""||r.value!=a)&&(r.value=""+Zt(a)):r.value!==""+Zt(a)&&(r.value=""+Zt(a)):v!=="submit"&&v!=="reset"||r.removeAttribute("value"),a!=null?Du(r,v,Zt(a)):i!=null?Du(r,v,Zt(i)):l!=null&&r.removeAttribute("value"),h==null&&f!=null&&(r.defaultChecked=!!f),h!=null&&(r.checked=h&&typeof h!="function"&&typeof h!="symbol"),S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?r.name=""+Zt(S):r.removeAttribute("name")}function Jf(r,a,i,l,h,f,v,S){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(r.type=f),a!=null||i!=null){if(!(f!=="submit"&&f!=="reset"||a!=null)){Su(r);return}i=i!=null?""+Zt(i):"",a=a!=null?""+Zt(a):i,S||a===r.value||(r.value=a),r.defaultValue=a}l=l??h,l=typeof l!="function"&&typeof l!="symbol"&&!!l,r.checked=S?r.checked:!!l,r.defaultChecked=!!l,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(r.name=v),Su(r)}function Du(r,a,i){a==="number"&&Xs(r.ownerDocument)===r||r.defaultValue===""+i||(r.defaultValue=""+i)}function eo(r,a,i,l){if(r=r.options,a){a={};for(var h=0;h<i.length;h++)a["$"+i[h]]=!0;for(i=0;i<r.length;i++)h=a.hasOwnProperty("$"+r[i].value),r[i].selected!==h&&(r[i].selected=h),h&&l&&(r[i].defaultSelected=!0)}else{for(i=""+Zt(i),a=null,h=0;h<r.length;h++){if(r[h].value===i){r[h].selected=!0,l&&(r[h].defaultSelected=!0);return}a!==null||r[h].disabled||(a=r[h])}a!==null&&(a.selected=!0)}}function Zf(r,a,i){if(a!=null&&(a=""+Zt(a),a!==r.value&&(r.value=a),i==null)){r.defaultValue!==a&&(r.defaultValue=a);return}r.defaultValue=i!=null?""+Zt(i):""}function em(r,a,i,l){if(a==null){if(l!=null){if(i!=null)throw Error(o(92));if(ue(l)){if(1<l.length)throw Error(o(93));l=l[0]}i=l}i==null&&(i=""),a=i}i=Zt(a),r.defaultValue=i,l=r.textContent,l===i&&l!==""&&l!==null&&(r.value=l),Su(r)}function to(r,a){if(a){var i=r.firstChild;if(i&&i===r.lastChild&&i.nodeType===3){i.nodeValue=a;return}}r.textContent=a}var uS=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 tm(r,a,i){var l=a.indexOf("--")===0;i==null||typeof i=="boolean"||i===""?l?r.setProperty(a,""):a==="float"?r.cssFloat="":r[a]="":l?r.setProperty(a,i):typeof i!="number"||i===0||uS.has(a)?a==="float"?r.cssFloat=i:r[a]=(""+i).trim():r[a]=i+"px"}
vendor: 4,435 bytes, line 9
9function rm(r,a,i){if(a!=null&&typeof a!="object")throw Error(o(62));if(r=r.style,i!=null){for(var l in i)!i.hasOwnProperty(l)||a!=null&&a.hasOwnProperty(l)||(l.indexOf("--")===0?r.setProperty(l,""):l==="float"?r.cssFloat="":r[l]="");for(var h in a)l=a[h],a.hasOwnProperty(h)&&i[h]!==l&&tm(r,h,l)}else for(var f in a)a.hasOwnProperty(f)&&tm(r,f,a[f])}function Tu(r){if(r.indexOf("-")===-1)return!1;switch(r){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 dS=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"]]),hS=/^[\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 Ys(r){return hS.test(""+r)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":r}function Fr(){}var Lu=null;function Au(r){return r=r.target||r.srcElement||window,r.correspondingUseElement&&(r=r.correspondingUseElement),r.nodeType===3?r.parentNode:r}var ro=null,no=null;function nm(r){var a=Qa(r);if(a&&(r=a.stateNode)){var i=r[Ct]||null;e:switch(r=a.stateNode,a.type){case"input":if(ku(r,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name),a=i.name,i.type==="radio"&&a!=null){for(i=r;i.parentNode;)i=i.parentNode;for(i=i.querySelectorAll('input[name="'+er(""+a)+'"][type="radio"]'),a=0;a<i.length;a++){var l=i[a];if(l!==r&&l.form===r.form){var h=l[Ct]||null;if(!h)throw Error(o(90));ku(l,h.value,h.defaultValue,h.defaultValue,h.checked,h.defaultChecked,h.type,h.name)}}for(a=0;a<i.length;a++)l=i[a],l.form===r.form&&Qf(l)}break e;case"textarea":Zf(r,i.value,i.defaultValue);break e;case"select":a=i.value,a!=null&&eo(r,!!i.multiple,a,!1)}}}var _u=!1;
vendor: 1,279 bytes, line 9
9function am(r,a,i){if(_u)return r(a,i);_u=!0;try{var l=r(a);return l}finally{if(_u=!1,(ro!==null||no!==null)&&(Hl(),ro&&(a=ro,r=no,no=ro=null,nm(a),r)))for(a=0;a<r.length;a++)nm(r[a])}}function li(r,a){var i=r.stateNode;if(i===null)return null;var l=i[Ct]||null;if(l===null)return null;i=l[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(r=r.type,l=!(r==="button"||r==="input"||r==="select"||r==="textarea")),r=!l;break e;default:r=!1}if(r)return null;if(i&&typeof i!="function")throw Error(o(231,a,typeof i));return i}var Ur=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Cu=!1;if(Ur)try{var ci={};Object.defineProperty(ci,"passive",{get:function(){Cu=!0}}),window.addEventListener("test",ci,ci),window.removeEventListener("test",ci,ci)}catch{Cu=!1}var xn=null,Ru=null,Ks=null;function om(){if(Ks)return Ks;var r,a=Ru,i=a.length,l,h="value"in xn?xn.value:xn.textContent,f=h.length;for(r=0;r<i&&a[r]===h[r];r++);var v=i-r;for(l=1;l<=v&&a[i-l]===h[f-l];l++);return Ks=h.slice(r,1<l?1-l:void 0)}function Qs(r){var a=r.keyCode;
vendor: 5,232 bytes, line 9
9return"charCode"in r?(r=r.charCode,r===0&&a===13&&(r=13)):r=a,r===10&&(r=13),32<=r||r===13?r:0}function Js(){return!0}function im(){return!1}function Rt(r){function a(i,l,h,f,v){this._reactName=i,this._targetInst=h,this.type=l,this.nativeEvent=f,this.target=v,this.currentTarget=null;for(var S in r)r.hasOwnProperty(S)&&(i=r[S],this[S]=i?i(f):f[S]);return this.isDefaultPrevented=(f.defaultPrevented!=null?f.defaultPrevented:f.returnValue===!1)?Js:im,this.isPropagationStopped=im,this}return y(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():typeof i.returnValue!="unknown"&&(i.returnValue=!1),this.isDefaultPrevented=Js)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=Js)},persist:function(){},isPersistent:Js}),a}var ya={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(r){return r.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Zs=Rt(ya),ui=y({},ya,{view:0,detail:0}),pS=Rt(ui),Iu,Ou,di,el=y({},ui,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Nu,button:0,buttons:0,relatedTarget:function(r){return r.relatedTarget===void 0?r.fromElement===r.srcElement?r.toElement:r.fromElement:r.relatedTarget},movementX:function(r){return"movementX"in r?r.movementX:(r!==di&&(di&&r.type==="mousemove"?(Iu=r.screenX-di.screenX,Ou=r.screenY-di.screenY):Ou=Iu=0,di=r),Iu)},movementY:function(r){return"movementY"in r?r.movementY:Ou}}),sm=Rt(el),fS=y({},el,{dataTransfer:0}),mS=Rt(fS),gS=y({},ui,{relatedTarget:0}),$u=Rt(gS),yS=y({},ya,{animationName:0,elapsedTime:0,pseudoElement:0}),bS=Rt(yS),vS=y({},ya,{clipboardData:function(r){return"clipboardData"in r?r.clipboardData:window.clipboardData}}),wS=Rt(vS),xS=y({},ya,{data:0}),lm=Rt(xS),ES={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},SS={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"},kS={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function DS(r){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(r):(r=kS[r])?!!a[r]:!1}function Nu(){return DS}var TS=y({},ui,{key:function(r){if(r.key){var a=ES[r.key]||r.key;if(a!=="Unidentified")return a}return r.type==="keypress"?(r=Qs(r),r===13?"Enter":String.fromCharCode(r)):r.type==="keydown"||r.type==="keyup"?SS[r.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Nu,charCode:function(r){return r.type==="keypress"?Qs(r):0},keyCode:function(r){return r.type==="keydown"||r.type==="keyup"?r.keyCode:0},which:function(r){return r.type==="keypress"?Qs(r):r.type==="keydown"||r.type==="keyup"?r.keyCode:0}}),LS=Rt(TS),AS=y({},el,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),cm=Rt(AS),_S=y({},ui,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Nu}),CS=Rt(_S),RS=y({},ya,{propertyName:0,elapsedTime:0,pseudoElement:0}),IS=Rt(RS),OS=y({},el,{deltaX:function(r){return"deltaX"in r?r.deltaX:"wheelDeltaX"in r?-r.wheelDeltaX:0},deltaY:function(r){return"deltaY"in r?r.deltaY:"wheelDeltaY"in r?-r.wheelDeltaY:"wheelDelta"in r?-r.wheelDelta:0},deltaZ:0,deltaMode:0}),$S=Rt(OS),NS=y({},ya,{newState:0,oldState:0}),HS=Rt(NS),PS=[9,13,27,32],Hu=Ur&&"CompositionEvent"in window,hi=null;Ur&&"documentMode"in document&&(hi=document.documentMode);var jS=Ur&&"TextEvent"in window&&!hi,um=Ur&&(!Hu||hi&&8<hi&&11>=hi),dm=" ",hm=!1;function pm(r,a){switch(r){case"keyup":return PS.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function fm(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var ao=!1;function qS(r,a){switch(r){case"compositionend":return fm(a);case"keypress":return a.which!==32?null:(hm=!0,dm);case"textInput":return r=a.data,r===dm&&hm?null:r;default:return null}}function MS(r,a){if(ao)return r==="compositionend"||!Hu&&pm(r,a)?(r=om(),Ks=Ru=xn=null,ao=!1,r):null;switch(r){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return um&&a.locale!=="ko"?null:a.data;default:return null}}var FS={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 mm(r){var a=r&&r.nodeName&&r.nodeName.toLowerCase();return a==="input"?!!FS[r.type]:a==="textarea"}
vendor: 5,364 bytes, line 9
9function gm(r,a,i,l){ro?no?no.push(l):no=[l]:ro=l,a=Bl(a,"onChange"),0<a.length&&(i=new Zs("onChange","change",null,i,l),r.push({event:i,listeners:a}))}var pi=null,fi=null;function US(r){Jy(r,0)}function tl(r){var a=si(r);if(Qf(a))return r}function ym(r,a){if(r==="change")return a}var bm=!1;if(Ur){var Pu;if(Ur){var ju="oninput"in document;if(!ju){var vm=document.createElement("div");vm.setAttribute("oninput","return;"),ju=typeof vm.oninput=="function"}Pu=ju}else Pu=!1;bm=Pu&&(!document.documentMode||9<document.documentMode)}function wm(){pi&&(pi.detachEvent("onpropertychange",xm),fi=pi=null)}function xm(r){if(r.propertyName==="value"&&tl(fi)){var a=[];gm(a,fi,r,Au(r)),am(US,a)}}function BS(r,a,i){r==="focusin"?(wm(),pi=a,fi=i,pi.attachEvent("onpropertychange",xm)):r==="focusout"&&wm()}function zS(r){if(r==="selectionchange"||r==="keyup"||r==="keydown")return tl(fi)}function VS(r,a){if(r==="click")return tl(a)}function GS(r,a){if(r==="input"||r==="change")return tl(a)}function WS(r,a){return r===a&&(r!==0||1/r===1/a)||r!==r&&a!==a}var Vt=typeof Object.is=="function"?Object.is:WS;function mi(r,a){if(Vt(r,a))return!0;if(typeof r!="object"||r===null||typeof a!="object"||a===null)return!1;var i=Object.keys(r),l=Object.keys(a);if(i.length!==l.length)return!1;for(l=0;l<i.length;l++){var h=i[l];if(!mu.call(a,h)||!Vt(r[h],a[h]))return!1}return!0}function Em(r){for(;r&&r.firstChild;)r=r.firstChild;return r}function Sm(r,a){var i=Em(r);r=0;for(var l;i;){if(i.nodeType===3){if(l=r+i.textContent.length,r<=a&&l>=a)return{node:i,offset:a-r};r=l}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=Em(i)}}function km(r,a){return r&&a?r===a?!0:r&&r.nodeType===3?!1:a&&a.nodeType===3?km(r,a.parentNode):"contains"in r?r.contains(a):r.compareDocumentPosition?!!(r.compareDocumentPosition(a)&16):!1:!1}function Dm(r){r=r!=null&&r.ownerDocument!=null&&r.ownerDocument.defaultView!=null?r.ownerDocument.defaultView:window;for(var a=Xs(r.document);a instanceof r.HTMLIFrameElement;){try{var i=typeof a.contentWindow.location.href=="string"}catch{i=!1}if(i)r=a.contentWindow;else break;a=Xs(r.document)}return a}function qu(r){var a=r&&r.nodeName&&r.nodeName.toLowerCase();return a&&(a==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||a==="textarea"||r.contentEditable==="true")}var XS=Ur&&"documentMode"in document&&11>=document.documentMode,oo=null,Mu=null,gi=null,Fu=!1;function Tm(r,a,i){var l=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;Fu||oo==null||oo!==Xs(l)||(l=oo,"selectionStart"in l&&qu(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),gi&&mi(gi,l)||(gi=l,l=Bl(Mu,"onSelect"),0<l.length&&(a=new Zs("onSelect","select",null,a,i),r.push({event:a,listeners:l}),a.target=oo)))}function ba(r,a){var i={};return i[r.toLowerCase()]=a.toLowerCase(),i["Webkit"+r]="webkit"+a,i["Moz"+r]="moz"+a,i}var io={animationend:ba("Animation","AnimationEnd"),animationiteration:ba("Animation","AnimationIteration"),animationstart:ba("Animation","AnimationStart"),transitionrun:ba("Transition","TransitionRun"),transitionstart:ba("Transition","TransitionStart"),transitioncancel:ba("Transition","TransitionCancel"),transitionend:ba("Transition","TransitionEnd")},Uu={},Lm={};Ur&&(Lm=document.createElement("div").style,"AnimationEvent"in window||(delete io.animationend.animation,delete io.animationiteration.animation,delete io.animationstart.animation),"TransitionEvent"in window||delete io.transitionend.transition);function va(r){if(Uu[r])return Uu[r];if(!io[r])return r;var a=io[r],i;for(i in a)if(a.hasOwnProperty(i)&&i in Lm)return Uu[r]=a[i];return r}var Am=va("animationend"),_m=va("animationiteration"),Cm=va("animationstart"),YS=va("transitionrun"),KS=va("transitionstart"),QS=va("transitioncancel"),Rm=va("transitionend"),Im=new Map,Bu="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(" ");Bu.push("scrollEnd");function dr(r,a){Im.set(r,a),ga(a,[r])}var rl=typeof reportError=="function"?reportError:function(r){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var a=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof r=="object"&&r!==null&&typeof r.message=="string"?String(r.message):String(r),error:r});if(!window.dispatchEvent(a))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",r);return}console.error(r)},tr=[],so=0,zu=0;function nl(){for(var r=so,a=zu=so=0;a<r;){var i=tr[a];tr[a++]=null;var l=tr[a];tr[a++]=null;var h=tr[a];tr[a++]=null;var f=tr[a];if(tr[a++]=null,l!==null&&h!==null){var v=l.pending;
vendor: 15,516 bytes, line 9
9v===null?h.next=h:(h.next=v.next,v.next=h),l.pending=h}f!==0&&Om(i,h,f)}}function al(r,a,i,l){tr[so++]=r,tr[so++]=a,tr[so++]=i,tr[so++]=l,zu|=l,r.lanes|=l,r=r.alternate,r!==null&&(r.lanes|=l)}function Vu(r,a,i,l){return al(r,a,i,l),ol(r)}function wa(r,a){return al(r,null,null,a),ol(r)}function Om(r,a,i){r.lanes|=i;var l=r.alternate;l!==null&&(l.lanes|=i);for(var h=!1,f=r.return;f!==null;)f.childLanes|=i,l=f.alternate,l!==null&&(l.childLanes|=i),f.tag===22&&(r=f.stateNode,r===null||r._visibility&1||(h=!0)),r=f,f=f.return;return r.tag===3?(f=r.stateNode,h&&a!==null&&(h=31-zt(i),r=f.hiddenUpdates,l=r[h],l===null?r[h]=[a]:l.push(a),a.lane=i|536870912),f):null}function ol(r){if(50<ji)throw ji=0,eh=null,Error(o(185));for(var a=r.return;a!==null;)r=a,a=r.return;return r.tag===3?r.stateNode:null}var lo={};function JS(r,a,i,l){this.tag=r,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Gt(r,a,i,l){return new JS(r,a,i,l)}function Gu(r){return r=r.prototype,!(!r||!r.isReactComponent)}function Br(r,a){var i=r.alternate;return i===null?(i=Gt(r.tag,a,r.key,r.mode),i.elementType=r.elementType,i.type=r.type,i.stateNode=r.stateNode,i.alternate=r,r.alternate=i):(i.pendingProps=a,i.type=r.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=r.flags&65011712,i.childLanes=r.childLanes,i.lanes=r.lanes,i.child=r.child,i.memoizedProps=r.memoizedProps,i.memoizedState=r.memoizedState,i.updateQueue=r.updateQueue,a=r.dependencies,i.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},i.sibling=r.sibling,i.index=r.index,i.ref=r.ref,i.refCleanup=r.refCleanup,i}function $m(r,a){r.flags&=65011714;var i=r.alternate;return i===null?(r.childLanes=0,r.lanes=a,r.child=null,r.subtreeFlags=0,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null,r.stateNode=null):(r.childLanes=i.childLanes,r.lanes=i.lanes,r.child=i.child,r.subtreeFlags=0,r.deletions=null,r.memoizedProps=i.memoizedProps,r.memoizedState=i.memoizedState,r.updateQueue=i.updateQueue,r.type=i.type,a=i.dependencies,r.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext}),r}function il(r,a,i,l,h,f){var v=0;if(l=r,typeof r=="function")Gu(r)&&(v=1);else if(typeof r=="string")v=nD(r,i,se.current)?26:r==="html"||r==="head"||r==="body"?27:5;else e:switch(r){case oe:return r=Gt(31,i,a,h),r.elementType=oe,r.lanes=f,r;case E:return xa(i.children,h,f,a);case D:v=8,h|=24;break;case L:return r=Gt(12,i,a,h|2),r.elementType=L,r.lanes=f,r;case Z:return r=Gt(13,i,a,h),r.elementType=Z,r.lanes=f,r;case B:return r=Gt(19,i,a,h),r.elementType=B,r.lanes=f,r;default:if(typeof r=="object"&&r!==null)switch(r.$$typeof){case N:v=10;break e;case O:v=9;break e;case V:v=11;break e;case P:v=14;break e;case J:v=16,l=null;break e}v=29,i=Error(o(130,r===null?"null":typeof r,"")),l=null}return a=Gt(v,i,a,h),a.elementType=r,a.type=l,a.lanes=f,a}function xa(r,a,i,l){return r=Gt(7,r,l,a),r.lanes=i,r}function Wu(r,a,i){return r=Gt(6,r,null,a),r.lanes=i,r}function Nm(r){var a=Gt(18,null,null,0);return a.stateNode=r,a}function Xu(r,a,i){return a=Gt(4,r.children!==null?r.children:[],r.key,a),a.lanes=i,a.stateNode={containerInfo:r.containerInfo,pendingChildren:null,implementation:r.implementation},a}var Hm=new WeakMap;function rr(r,a){if(typeof r=="object"&&r!==null){var i=Hm.get(r);return i!==void 0?i:(a={value:r,source:a,stack:Nf(a)},Hm.set(r,a),a)}return{value:r,source:a,stack:Nf(a)}}var co=[],uo=0,sl=null,yi=0,nr=[],ar=0,En=null,kr=1,Dr="";function zr(r,a){co[uo++]=yi,co[uo++]=sl,sl=r,yi=a}function Pm(r,a,i){nr[ar++]=kr,nr[ar++]=Dr,nr[ar++]=En,En=r;var l=kr;r=Dr;var h=32-zt(l)-1;l&=~(1<<h),i+=1;var f=32-zt(a)+h;if(30<f){var v=h-h%5;f=(l&(1<<v)-1).toString(32),l>>=v,h-=v,kr=1<<32-zt(a)+h|i<<h|l,Dr=f+r}else kr=1<<f|i<<h|l,Dr=r}function Yu(r){r.return!==null&&(zr(r,1),Pm(r,1,0))}function Ku(r){for(;r===sl;)sl=co[--uo],co[uo]=null,yi=co[--uo],co[uo]=null;for(;r===En;)En=nr[--ar],nr[ar]=null,Dr=nr[--ar],nr[ar]=null,kr=nr[--ar],nr[ar]=null}function jm(r,a){nr[ar++]=kr,nr[ar++]=Dr,nr[ar++]=En,kr=a.id,Dr=a.overflow,En=r}var vt=null,Ye=null,Ie=!1,Sn=null,or=!1,Qu=Error(o(519));function kn(r){var a=Error(o(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw bi(rr(a,r)),Qu}function qm(r){var a=r.stateNode,i=r.type,l=r.memoizedProps;switch(a[bt]=r,a[Ct]=l,i){case"dialog":Ae("cancel",a),Ae("close",a);break;case"iframe":case"object":case"embed":Ae("load",a);break;case"video":case"audio":for(i=0;i<Mi.length;i++)Ae(Mi[i],a);break;case"source":Ae("error",a);break;case"img":case"image":case"link":Ae("error",a),Ae("load",a);break;case"details":Ae("toggle",a);break;case"input":Ae("invalid",a),Jf(a,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":Ae("invalid",a);break;case"textarea":Ae("invalid",a),em(a,l.value,l.defaultValue,l.children)}i=l.children,typeof i!="string"&&typeof i!="number"&&typeof i!="bigint"||a.textContent===""+i||l.suppressHydrationWarning===!0||rb(a.textContent,i)?(l.popover!=null&&(Ae("beforetoggle",a),Ae("toggle",a)),l.onScroll!=null&&Ae("scroll",a),l.onScrollEnd!=null&&Ae("scrollend",a),l.onClick!=null&&(a.onclick=Fr),a=!0):a=!1,a||kn(r,!0)}function Mm(r){for(vt=r.return;vt;)switch(vt.tag){case 5:case 31:case 13:or=!1;return;case 27:case 3:or=!0;return;default:vt=vt.return}}function ho(r){if(r!==vt)return!1;if(!Ie)return Mm(r),Ie=!0,!1;var a=r.tag,i;if((i=a!==3&&a!==27)&&((i=a===5)&&(i=r.type,i=!(i!=="form"&&i!=="button")||mh(r.type,r.memoizedProps)),i=!i),i&&Ye&&kn(r),Mm(r),a===13){if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(o(317));Ye=db(r)}else if(a===31){if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(o(317));Ye=db(r)}else a===27?(a=Ye,jn(r.type)?(r=wh,wh=null,Ye=r):Ye=a):Ye=vt?sr(r.stateNode.nextSibling):null;return!0}function Ea(){Ye=vt=null,Ie=!1}function Ju(){var r=Sn;return r!==null&&(Nt===null?Nt=r:Nt.push.apply(Nt,r),Sn=null),r}function bi(r){Sn===null?Sn=[r]:Sn.push(r)}var Zu=$(null),Sa=null,Vr=null;function Dn(r,a,i){ee(Zu,a._currentValue),a._currentValue=i}function Gr(r){r._currentValue=Zu.current,X(Zu)}function ed(r,a,i){for(;r!==null;){var l=r.alternate;if((r.childLanes&a)!==a?(r.childLanes|=a,l!==null&&(l.childLanes|=a)):l!==null&&(l.childLanes&a)!==a&&(l.childLanes|=a),r===i)break;r=r.return}}function td(r,a,i,l){var h=r.child;for(h!==null&&(h.return=r);h!==null;){var f=h.dependencies;if(f!==null){var v=h.child;f=f.firstContext;e:for(;f!==null;){var S=f;f=h;for(var T=0;T<a.length;T++)if(S.context===a[T]){f.lanes|=i,S=f.alternate,S!==null&&(S.lanes|=i),ed(f.return,i,r),l||(v=null);break e}f=S.next}}else if(h.tag===18){if(v=h.return,v===null)throw Error(o(341));v.lanes|=i,f=v.alternate,f!==null&&(f.lanes|=i),ed(v,i,r),v=null}else v=h.child;if(v!==null)v.return=h;else for(v=h;v!==null;){if(v===r){v=null;break}if(h=v.sibling,h!==null){h.return=v.return,v=h;break}v=v.return}h=v}}function po(r,a,i,l){r=null;for(var h=a,f=!1;h!==null;){if(!f){if((h.flags&524288)!==0)f=!0;else if((h.flags&262144)!==0)break}if(h.tag===10){var v=h.alternate;if(v===null)throw Error(o(387));if(v=v.memoizedProps,v!==null){var S=h.type;Vt(h.pendingProps.value,v.value)||(r!==null?r.push(S):r=[S])}}else if(h===ye.current){if(v=h.alternate,v===null)throw Error(o(387));v.memoizedState.memoizedState!==h.memoizedState.memoizedState&&(r!==null?r.push(Vi):r=[Vi])}h=h.return}r!==null&&td(a,r,i,l),a.flags|=262144}function ll(r){for(r=r.firstContext;r!==null;){if(!Vt(r.context._currentValue,r.memoizedValue))return!0;r=r.next}return!1}function ka(r){Sa=r,Vr=null,r=r.dependencies,r!==null&&(r.firstContext=null)}function wt(r){return Fm(Sa,r)}function cl(r,a){return Sa===null&&ka(r),Fm(r,a)}function Fm(r,a){var i=a._currentValue;if(a={context:a,memoizedValue:i,next:null},Vr===null){if(r===null)throw Error(o(308));Vr=a,r.dependencies={lanes:0,firstContext:a},r.flags|=524288}else Vr=Vr.next=a;return i}var ZS=typeof AbortController<"u"?AbortController:function(){var r=[],a=this.signal={aborted:!1,addEventListener:function(i,l){r.push(l)}};this.abort=function(){a.aborted=!0,r.forEach(function(i){return i()})}},ek=e.unstable_scheduleCallback,tk=e.unstable_NormalPriority,ot={$$typeof:N,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function rd(){return{controller:new ZS,data:new Map,refCount:0}}function vi(r){r.refCount--,r.refCount===0&&ek(tk,function(){r.controller.abort()})}var wi=null,nd=0,fo=0,mo=null;function rk(r,a){if(wi===null){var i=wi=[];nd=0,fo=ih(),mo={status:"pending",value:void 0,then:function(l){i.push(l)}}}return nd++,a.then(Um,Um),a}function Um(){if(--nd===0&&wi!==null){mo!==null&&(mo.status="fulfilled");var r=wi;wi=null,fo=0,mo=null;for(var a=0;a<r.length;a++)(0,r[a])()}}function nk(r,a){var i=[],l={status:"pending",value:null,reason:null,then:function(h){i.push(h)}};return r.then(function(){l.status="fulfilled",l.value=a;for(var h=0;h<i.length;h++)(0,i[h])(a)},function(h){for(l.status="rejected",l.reason=h,h=0;h<i.length;h++)(0,i[h])(void 0)}),l}var Bm=F.S;F.S=function(r,a){Ty=Ut(),typeof a=="object"&&a!==null&&typeof a.then=="function"&&rk(r,a),Bm!==null&&Bm(r,a)};var Da=$(null);function ad(){var r=Da.current;return r!==null?r:Ve.pooledCache}function ul(r,a){a===null?ee(Da,Da.current):ee(Da,a.pool)}function zm(){var r=ad();return r===null?null:{parent:ot._currentValue,pool:r}}var go=Error(o(460)),od=Error(o(474)),dl=Error(o(542)),hl={then:function(){}};function Vm(r){return r=r.status,r==="fulfilled"||r==="rejected"}function Gm(r,a,i){switch(i=r[i],i===void 0?r.push(a):i!==a&&(a.then(Fr,Fr),a=i),a.status){case"fulfilled":return a.value;case"rejected":throw r=a.reason,Xm(r),r;default:if(typeof a.status=="string")a.then(Fr,Fr);else{if(r=Ve,r!==null&&100<r.shellSuspendCounter)throw Error(o(482));r=a,r.status="pending",r.then(function(l){if(a.status==="pending"){var h=a;h.status="fulfilled",h.value=l}},function(l){if(a.status==="pending"){var h=a;h.status="rejected",h.reason=l}})}switch(a.status){case"fulfilled":return a.value;case"rejected":throw r=a.reason,Xm(r),r}throw La=a,go}}function Ta(r){try{var a=r._init;return a(r._payload)}catch(i){throw i!==null&&typeof i=="object"&&typeof i.then=="function"?(La=i,go):i}}var La=null;function Wm(){if(La===null)throw Error(o(459));var r=La;return La=null,r}function Xm(r){if(r===go||r===dl)throw Error(o(483))}var yo=null,xi=0;function pl(r){var a=xi;return xi+=1,yo===null&&(yo=[]),Gm(yo,r,a)}function Ei(r,a){a=a.props.ref,r.ref=a!==void 0?a:null}function fl(r,a){throw a.$$typeof===w?Error(o(525)):(r=Object.prototype.toString.call(a),Error(o(31,r==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":r)))}function Ym(r){function a(H,I){if(r){var j=H.deletions;j===null?(H.deletions=[I],H.flags|=16):j.push(I)}}function i(H,I){if(!r)return null;for(;I!==null;)a(H,I),I=I.sibling;return null}function l(H){for(var I=new Map;H!==null;)H.key!==null?I.set(H.key,H):I.set(H.index,H),H=H.sibling;return I}function h(H,I){return H=Br(H,I),H.index=0,H.sibling=null,H}function f(H,I,j){return H.index=j,r?(j=H.alternate,j!==null?(j=j.index,j<I?(H.flags|=67108866,I):j):(H.flags|=67108866,I)):(H.flags|=1048576,I)}function v(H){return r&&H.alternate===null&&(H.flags|=67108866),H}function S(H,I,j,G){return I===null||I.tag!==6?(I=Wu(j,H.mode,G),I.return=H,I):(I=h(I,j),I.return=H,I)}function T(H,I,j,G){var pe=j.type;return pe===E?z(H,I,j.props.children,G,j.key):I!==null&&(I.elementType===pe||typeof pe=="object"&&pe!==null&&pe.$$typeof===J&&Ta(pe)===I.type)?(I=h(I,j.props),Ei(I,j),I.return=H,I):(I=il(j.type,j.key,j.props,null,H.mode,G),Ei(I,j),I.return=H,I)}function q(H,I,j,G){return I===null||I.tag!==4||I.stateNode.containerInfo!==j.containerInfo||I.stateNode.implementation!==j.implementation?(I=Xu(j,H.mode,G),I.return=H,I):(I=h(I,j.children||[]),I.return=H,I)}function z(H,I,j,G,pe){return I===null||I.tag!==7?(I=xa(j,H.mode,G,pe),I.return=H,I):(I=h(I,j),I.return=H,I)}function Y(H,I,j){if(typeof I=="string"&&I!==""||typeof I=="number"||typeof I=="bigint")return I=Wu(""+I,H.mode,j),I.return=H,I;if(typeof I=="object"&&I!==null){switch(I.$$typeof){case x:return j=il(I.type,I.key,I.props,null,H.mode,j),Ei(j,I),j.return=H,j;case k:return I=Xu(I,H.mode,j),I.return=H,I;case J:return I=Ta(I),Y(H,I,j)}if(ue(I)||Q(I))return I=xa(I,H.mode,j,null),I.return=H,I;if(typeof I.then=="function")return Y(H,pl(I),j);if(I.$$typeof===N)return Y(H,cl(H,I),j);fl(H,I)}return null}function M(H,I,j,G){var pe=I!==null?I.key:null;if(typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint")return pe!==null?null:S(H,I,""+j,G);if(typeof j=="object"&&j!==null){switch(j.$$typeof){case x:return j.key===pe?T(H,I,j,G):null;case k:return j.key===pe?q(H,I,j,G):null;case J:return j=Ta(j),M(H,I,j,G)}if(ue(j)||Q(j))return pe!==null?null:z(H,I,j,G,null);if(typeof j.then=="function")return M(H,I,pl(j),G);if(j.$$typeof===N)return M(H,I,cl(H,j),G);fl(H,j)}return null}function U(H,I,j,G,pe){if(typeof G=="string"&&G!==""||typeof G=="number"||typeof G=="bigint")return H=H.get(j)||null,S(I,H,""+G,pe);if(typeof G=="object"&&G!==null){switch(G.$$typeof){case x:return H=H.get(G.key===null?j:G.key)||null,T(I,H,G,pe);case k:return H=H.get(G.key===null?j:G.key)||null,q(I,H,G,pe);case J:return G=Ta(G),U(H,I,j,G,pe)}if(ue(G)||Q(G))return H=H.get(j)||null,z(I,H,G,pe,null);if(typeof G.then=="function")return U(H,I,j,pl(G),pe);if(G.$$typeof===N)return U(H,I,j,cl(I,G),pe);fl(I,G)}return null}function ie(H,I,j,G){for(var pe=null,$e=null,ce=I,ke=I=0,Re=null;ce!==null&&ke<j.length;ke++){ce.index>ke?(Re=ce,ce=null):Re=ce.sibling;var Ne=M(H,ce,j[ke],G);if(Ne===null){ce===null&&(ce=Re);break}r&&ce&&Ne.alternate===null&&a(H,ce),I=f(Ne,I,ke),$e===null?pe=Ne:$e.sibling=Ne,$e=Ne,ce=Re}if(ke===j.length)return i(H,ce),Ie&&zr(H,ke),pe;if(ce===null){for(;ke<j.length;ke++)ce=Y(H,j[ke],G),ce!==null&&(I=f(ce,I,ke),$e===null?pe=ce:$e.sibling=ce,$e=ce);return Ie&&zr(H,ke),pe}for(ce=l(ce);ke<j.length;ke++)Re=U(ce,H,ke,j[ke],G),Re!==null&&(r&&Re.alternate!==null&&ce.delete(Re.key===null?ke:Re.key),I=f(Re,I,ke),$e===null?pe=Re:$e.sibling=Re,$e=Re);return r&&ce.forEach(function(Bn){return a(H,Bn)}),Ie&&zr(H,ke),pe}function be(H,I,j,G){if(j==null)throw Error(o(151));for(var pe=null,$e=null,ce=I,ke=I=0,Re=null,Ne=j.next();ce!==null&&!Ne.done;ke++,Ne=j.next()){ce.index>ke?(Re=ce,ce=null):Re=ce.sibling;var Bn=M(H,ce,Ne.value,G);if(Bn===null){ce===null&&(ce=Re);break}r&&ce&&Bn.alternate===null&&a(H,ce),I=f(Bn,I,ke),$e===null?pe=Bn:$e.sibling=Bn,$e=Bn,ce=Re}if(Ne.done)return i(H,ce),Ie&&zr(H,ke),pe;if(ce===null){for(;!Ne.done;ke++,Ne=j.next())Ne=Y(H,Ne.value,G),Ne!==null&&(I=f(Ne,I,ke),$e===null?pe=Ne:$e.sibling=Ne,$e=Ne);return Ie&&zr(H,ke),pe}for(ce=l(ce);!Ne.done;ke++,Ne=j.next())Ne=U(ce,H,ke,Ne.value,G),Ne!==null&&(r&&Ne.alternate!==null&&ce.delete(Ne.key===null?ke:Ne.key),I=f(Ne,I,ke),$e===null?pe=Ne:$e.sibling=Ne,$e=Ne);return r&&ce.forEach(function(fD){return a(H,fD)}),Ie&&zr(H,ke),pe}function ze(H,I,j,G){if(typeof j=="object"&&j!==null&&j.type===E&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case x:e:{for(var pe=j.key;I!==null;){if(I.key===pe){if(pe=j.type,pe===E){if(I.tag===7){i(H,I.sibling),G=h(I,j.props.children),G.return=H,H=G;break e}}
vendor: 5,890 bytes, line 9
9else if(I.elementType===pe||typeof pe=="object"&&pe!==null&&pe.$$typeof===J&&Ta(pe)===I.type){i(H,I.sibling),G=h(I,j.props),Ei(G,j),G.return=H,H=G;break e}i(H,I);break}else a(H,I);I=I.sibling}j.type===E?(G=xa(j.props.children,H.mode,G,j.key),G.return=H,H=G):(G=il(j.type,j.key,j.props,null,H.mode,G),Ei(G,j),G.return=H,H=G)}return v(H);case k:e:{for(pe=j.key;I!==null;){if(I.key===pe)if(I.tag===4&&I.stateNode.containerInfo===j.containerInfo&&I.stateNode.implementation===j.implementation){i(H,I.sibling),G=h(I,j.children||[]),G.return=H,H=G;break e}else{i(H,I);break}else a(H,I);I=I.sibling}G=Xu(j,H.mode,G),G.return=H,H=G}return v(H);case J:return j=Ta(j),ze(H,I,j,G)}if(ue(j))return ie(H,I,j,G);if(Q(j)){if(pe=Q(j),typeof pe!="function")throw Error(o(150));return j=pe.call(j),be(H,I,j,G)}if(typeof j.then=="function")return ze(H,I,pl(j),G);if(j.$$typeof===N)return ze(H,I,cl(H,j),G);fl(H,j)}return typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint"?(j=""+j,I!==null&&I.tag===6?(i(H,I.sibling),G=h(I,j),G.return=H,H=G):(i(H,I),G=Wu(j,H.mode,G),G.return=H,H=G),v(H)):i(H,I)}return function(H,I,j,G){try{xi=0;var pe=ze(H,I,j,G);return yo=null,pe}catch(ce){if(ce===go||ce===dl)throw ce;var $e=Gt(29,ce,null,H.mode);return $e.lanes=G,$e.return=H,$e}}}var Aa=Ym(!0),Km=Ym(!1),Tn=!1;function id(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function sd(r,a){r=r.updateQueue,a.updateQueue===r&&(a.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,callbacks:null})}function Ln(r){return{lane:r,tag:0,payload:null,callback:null,next:null}}function An(r,a,i){var l=r.updateQueue;if(l===null)return null;if(l=l.shared,(je&2)!==0){var h=l.pending;return h===null?a.next=a:(a.next=h.next,h.next=a),l.pending=a,a=ol(r),Om(r,null,i),a}return al(r,l,a,i),ol(r)}function Si(r,a,i){if(a=a.updateQueue,a!==null&&(a=a.shared,(i&4194048)!==0)){var l=a.lanes;l&=r.pendingLanes,i|=l,a.lanes=i,Ff(r,i)}}function ld(r,a){var i=r.updateQueue,l=r.alternate;if(l!==null&&(l=l.updateQueue,i===l)){var h=null,f=null;if(i=i.firstBaseUpdate,i!==null){do{var v={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};f===null?h=f=v:f=f.next=v,i=i.next}while(i!==null);f===null?h=f=a:f=f.next=a}else h=f=a;i={baseState:l.baseState,firstBaseUpdate:h,lastBaseUpdate:f,shared:l.shared,callbacks:l.callbacks},r.updateQueue=i;return}r=i.lastBaseUpdate,r===null?i.firstBaseUpdate=a:r.next=a,i.lastBaseUpdate=a}var cd=!1;function ki(){if(cd){var r=mo;if(r!==null)throw r}}function Di(r,a,i,l){cd=!1;var h=r.updateQueue;Tn=!1;var f=h.firstBaseUpdate,v=h.lastBaseUpdate,S=h.shared.pending;if(S!==null){h.shared.pending=null;var T=S,q=T.next;T.next=null,v===null?f=q:v.next=q,v=T;var z=r.alternate;z!==null&&(z=z.updateQueue,S=z.lastBaseUpdate,S!==v&&(S===null?z.firstBaseUpdate=q:S.next=q,z.lastBaseUpdate=T))}if(f!==null){var Y=h.baseState;v=0,z=q=T=null,S=f;do{var M=S.lane&-536870913,U=M!==S.lane;if(U?(Ce&M)===M:(l&M)===M){M!==0&&M===fo&&(cd=!0),z!==null&&(z=z.next={lane:0,tag:S.tag,payload:S.payload,callback:null,next:null});e:{var ie=r,be=S;M=a;var ze=i;switch(be.tag){case 1:if(ie=be.payload,typeof ie=="function"){Y=ie.call(ze,Y,M);break e}Y=ie;break e;case 3:ie.flags=ie.flags&-65537|128;case 0:if(ie=be.payload,M=typeof ie=="function"?ie.call(ze,Y,M):ie,M==null)break e;Y=y({},Y,M);break e;case 2:Tn=!0}}M=S.callback,M!==null&&(r.flags|=64,U&&(r.flags|=8192),U=h.callbacks,U===null?h.callbacks=[M]:U.push(M))}else U={lane:M,tag:S.tag,payload:S.payload,callback:S.callback,next:null},z===null?(q=z=U,T=Y):z=z.next=U,v|=M;if(S=S.next,S===null){if(S=h.shared.pending,S===null)break;U=S,S=U.next,U.next=null,h.lastBaseUpdate=U,h.shared.pending=null}}while(!0);z===null&&(T=Y),h.baseState=T,h.firstBaseUpdate=q,h.lastBaseUpdate=z,f===null&&(h.shared.lanes=0),On|=v,r.lanes=v,r.memoizedState=Y}}function Qm(r,a){if(typeof r!="function")throw Error(o(191,r));r.call(a)}function Jm(r,a){var i=r.callbacks;if(i!==null)for(r.callbacks=null,r=0;r<i.length;r++)Qm(i[r],a)}var bo=$(null),ml=$(0);function Zm(r,a){r=tn,ee(ml,r),ee(bo,a),tn=r|a.baseLanes}function ud(){ee(ml,tn),ee(bo,bo.current)}function dd(){tn=ml.current,X(bo),X(ml)}var Wt=$(null),ir=null;function _n(r){var a=r.alternate;ee(tt,tt.current&1),ee(Wt,r),ir===null&&(a===null||bo.current!==null||a.memoizedState!==null)&&(ir=r)}function hd(r){ee(tt,tt.current),ee(Wt,r),ir===null&&(ir=r)}function eg(r){r.tag===22?(ee(tt,tt.current),ee(Wt,r),ir===null&&(ir=r)):Cn()}function Cn(){ee(tt,tt.current),ee(Wt,Wt.current)}function Xt(r){X(Wt),ir===r&&(ir=null),X(tt)}var tt=$(0);function gl(r){for(var a=r;a!==null;){if(a.tag===13){var i=a.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||bh(i)||vh(i)))return a}else if(a.tag===19&&(a.memoizedProps.revealOrder==="forwards"||a.memoizedProps.revealOrder==="backwards"||a.memoizedProps.revealOrder==="unstable_legacy-backwards"||a.memoizedProps.revealOrder==="together")){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===r)break;for(;a.sibling===null;){if(a.return===null||a.return===r)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var Wr=0,Se=null,Ue=null,it=null,yl=!1,vo=!1,_a=!1,bl=0,Ti=0,wo=null,ak=0;function Je(){throw Error(o(321))}function pd(r,a){if(a===null)return!1;for(var i=0;i<a.length&&i<r.length;i++)if(!Vt(r[i],a[i]))return!1;return!0}function fd(r,a,i,l,h,f){return Wr=f,Se=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,F.H=r===null||r.memoizedState===null?Pg:_d,_a=!1,f=i(l,h),_a=!1,vo&&(f=rg(a,i,l,h)),tg(r),f}function tg(r){F.H=_i;var a=Ue!==null&&Ue.next!==null;if(Wr=0,it=Ue=Se=null,yl=!1,Ti=0,wo=null,a)throw Error(o(300));r===null||st||(r=r.dependencies,r!==null&&ll(r)&&(st=!0))}function rg(r,a,i,l){Se=r;var h=0;
vendor: 6,688 bytes, line 9
9do{if(vo&&(wo=null),Ti=0,vo=!1,25<=h)throw Error(o(301));if(h+=1,it=Ue=null,r.updateQueue!=null){var f=r.updateQueue;f.lastEffect=null,f.events=null,f.stores=null,f.memoCache!=null&&(f.memoCache.index=0)}F.H=jg,f=a(i,l)}while(vo);return f}function ok(){var r=F.H,a=r.useState()[0];return a=typeof a.then=="function"?Li(a):a,r=r.useState()[0],(Ue!==null?Ue.memoizedState:null)!==r&&(Se.flags|=1024),a}function md(){var r=bl!==0;return bl=0,r}function gd(r,a,i){a.updateQueue=r.updateQueue,a.flags&=-2053,r.lanes&=~i}function yd(r){if(yl){for(r=r.memoizedState;r!==null;){var a=r.queue;a!==null&&(a.pending=null),r=r.next}yl=!1}Wr=0,it=Ue=Se=null,vo=!1,Ti=bl=0,wo=null}function Lt(){var r={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return it===null?Se.memoizedState=it=r:it=it.next=r,it}function rt(){if(Ue===null){var r=Se.alternate;r=r!==null?r.memoizedState:null}else r=Ue.next;var a=it===null?Se.memoizedState:it.next;if(a!==null)it=a,Ue=r;else{if(r===null)throw Se.alternate===null?Error(o(467)):Error(o(310));Ue=r,r={memoizedState:Ue.memoizedState,baseState:Ue.baseState,baseQueue:Ue.baseQueue,queue:Ue.queue,next:null},it===null?Se.memoizedState=it=r:it=it.next=r}return it}function vl(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Li(r){var a=Ti;return Ti+=1,wo===null&&(wo=[]),r=Gm(wo,r,a),a=Se,(it===null?a.memoizedState:it.next)===null&&(a=a.alternate,F.H=a===null||a.memoizedState===null?Pg:_d),r}function wl(r){if(r!==null&&typeof r=="object"){if(typeof r.then=="function")return Li(r);if(r.$$typeof===N)return wt(r)}throw Error(o(438,String(r)))}function bd(r){var a=null,i=Se.updateQueue;if(i!==null&&(a=i.memoCache),a==null){var l=Se.alternate;l!==null&&(l=l.updateQueue,l!==null&&(l=l.memoCache,l!=null&&(a={data:l.data.map(function(h){return h.slice()}),index:0})))}if(a==null&&(a={data:[],index:0}),i===null&&(i=vl(),Se.updateQueue=i),i.memoCache=a,i=a.data[a.index],i===void 0)for(i=a.data[a.index]=Array(r),l=0;l<r;l++)i[l]=he;return a.index++,i}function Xr(r,a){return typeof a=="function"?a(r):a}function xl(r){var a=rt();return vd(a,Ue,r)}function vd(r,a,i){var l=r.queue;if(l===null)throw Error(o(311));l.lastRenderedReducer=i;var h=r.baseQueue,f=l.pending;if(f!==null){if(h!==null){var v=h.next;h.next=f.next,f.next=v}a.baseQueue=h=f,l.pending=null}if(f=r.baseState,h===null)r.memoizedState=f;else{a=h.next;var S=v=null,T=null,q=a,z=!1;do{var Y=q.lane&-536870913;if(Y!==q.lane?(Ce&Y)===Y:(Wr&Y)===Y){var M=q.revertLane;if(M===0)T!==null&&(T=T.next={lane:0,revertLane:0,gesture:null,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null}),Y===fo&&(z=!0);else if((Wr&M)===M){q=q.next,M===fo&&(z=!0);continue}else Y={lane:0,revertLane:q.revertLane,gesture:null,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null},T===null?(S=T=Y,v=f):T=T.next=Y,Se.lanes|=M,On|=M;Y=q.action,_a&&i(f,Y),f=q.hasEagerState?q.eagerState:i(f,Y)}else M={lane:Y,revertLane:q.revertLane,gesture:q.gesture,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null},T===null?(S=T=M,v=f):T=T.next=M,Se.lanes|=Y,On|=Y;q=q.next}while(q!==null&&q!==a);if(T===null?v=f:T.next=S,!Vt(f,r.memoizedState)&&(st=!0,z&&(i=mo,i!==null)))throw i;r.memoizedState=f,r.baseState=v,r.baseQueue=T,l.lastRenderedState=f}return h===null&&(l.lanes=0),[r.memoizedState,l.dispatch]}function wd(r){var a=rt(),i=a.queue;if(i===null)throw Error(o(311));i.lastRenderedReducer=r;var l=i.dispatch,h=i.pending,f=a.memoizedState;if(h!==null){i.pending=null;var v=h=h.next;do f=r(f,v.action),v=v.next;while(v!==h);Vt(f,a.memoizedState)||(st=!0),a.memoizedState=f,a.baseQueue===null&&(a.baseState=f),i.lastRenderedState=f}return[f,l]}function ng(r,a,i){var l=Se,h=rt(),f=Ie;if(f){if(i===void 0)throw Error(o(407));i=i()}else i=a();var v=!Vt((Ue||h).memoizedState,i);if(v&&(h.memoizedState=i,st=!0),h=h.queue,Sd(ig.bind(null,l,h,r),[r]),h.getSnapshot!==a||v||it!==null&&it.memoizedState.tag&1){if(l.flags|=2048,xo(9,{destroy:void 0},og.bind(null,l,h,i,a),null),Ve===null)throw Error(o(349));f||(Wr&127)!==0||ag(l,a,i)}return i}function ag(r,a,i){r.flags|=16384,r={getSnapshot:a,value:i},a=Se.updateQueue,a===null?(a=vl(),Se.updateQueue=a,a.stores=[r]):(i=a.stores,i===null?a.stores=[r]:i.push(r))}function og(r,a,i,l){a.value=i,a.getSnapshot=l,sg(a)&&lg(r)}function ig(r,a,i){return i(function(){sg(a)&&lg(r)})}function sg(r){var a=r.getSnapshot;r=r.value;try{var i=a();return!Vt(r,i)}catch{return!0}}function lg(r){var a=wa(r,2);a!==null&&Ht(a,r,2)}function xd(r){var a=Lt();if(typeof r=="function"){var i=r;if(r=i(),_a){vn(!0);try{i()}finally{vn(!1)}}}return a.memoizedState=a.baseState=r,a.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xr,lastRenderedState:r},a}function cg(r,a,i,l){return r.baseState=i,vd(r,Ue,typeof l=="function"?l:Xr)}function ik(r,a,i,l,h){if(kl(r))throw Error(o(485));if(r=a.action,r!==null){var f={payload:h,action:r,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(v){f.listeners.push(v)}};F.T!==null?i(!0):f.isTransition=!1,l(f),i=a.pending,i===null?(f.next=a.pending=f,ug(a,f)):(f.next=i.next,a.pending=i.next=f)}}function ug(r,a){var i=a.action,l=a.payload,h=r.state;if(a.isTransition){var f=F.T,v={};F.T=v;try{var S=i(h,l),T=F.S;T!==null&&T(v,S),dg(r,a,S)}catch(q){Ed(r,a,q)}finally{f!==null&&v.types!==null&&(f.types=v.types),F.T=f}}else try{f=i(h,l),dg(r,a,f)}catch(q){Ed(r,a,q)}}function dg(r,a,i){i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(function(l){hg(r,a,l)},function(l){return Ed(r,a,l)}):hg(r,a,i)}function hg(r,a,i){a.status="fulfilled",a.value=i,pg(a),r.state=i,a=r.pending,a!==null&&(i=a.next,i===a?r.pending=null:(i=i.next,a.next=i,ug(r,i)))}function Ed(r,a,i){var l=r.pending;if(r.pending=null,l!==null){l=l.next;do a.status="rejected",a.reason=i,pg(a),a=a.next;while(a!==l)}r.action=null}function pg(r){r=r.listeners;for(var a=0;a<r.length;a++)(0,r[a])()}function fg(r,a){return a}function mg(r,a){if(Ie){var i=Ve.formState;if(i!==null){e:{var l=Se;if(Ie){if(Ye){t:{for(var h=Ye,f=or;h.nodeType!==8;){if(!f){h=null;break t}if(h=sr(h.nextSibling),h===null){h=null;break t}}f=h.data,h=f==="F!"||f==="F"?h:null}if(h){Ye=sr(h.nextSibling),l=h.data==="F!";break e}}kn(l)}l=!1}l&&(a=i[0])}}return i=Lt(),i.memoizedState=i.baseState=a,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:fg,lastRenderedState:a},i.queue=l,i=$g.bind(null,Se,l),l.dispatch=i,l=xd(!1),f=Ad.bind(null,Se,!1,l.queue),l=Lt(),h={state:a,dispatch:null,action:r,pending:null},l.queue=h,i=ik.bind(null,Se,h,f,i),h.dispatch=i,l.memoizedState=r,[a,i,!1]}function gg(r){var a=rt();return yg(a,Ue,r)}
vendor: 4,714 bytes, line 9
9function yg(r,a,i){if(a=vd(r,a,fg)[0],r=xl(Xr)[0],typeof a=="object"&&a!==null&&typeof a.then=="function")try{var l=Li(a)}catch(v){throw v===go?dl:v}else l=a;a=rt();var h=a.queue,f=h.dispatch;return i!==a.memoizedState&&(Se.flags|=2048,xo(9,{destroy:void 0},sk.bind(null,h,i),null)),[l,f,r]}function sk(r,a){r.action=a}function bg(r){var a=rt(),i=Ue;if(i!==null)return yg(a,i,r);rt(),a=a.memoizedState,i=rt();var l=i.queue.dispatch;return i.memoizedState=r,[a,l,!1]}function xo(r,a,i,l){return r={tag:r,create:i,deps:l,inst:a,next:null},a=Se.updateQueue,a===null&&(a=vl(),Se.updateQueue=a),i=a.lastEffect,i===null?a.lastEffect=r.next=r:(l=i.next,i.next=r,r.next=l,a.lastEffect=r),r}function vg(){return rt().memoizedState}function El(r,a,i,l){var h=Lt();Se.flags|=r,h.memoizedState=xo(1|a,{destroy:void 0},i,l===void 0?null:l)}function Sl(r,a,i,l){var h=rt();l=l===void 0?null:l;var f=h.memoizedState.inst;Ue!==null&&l!==null&&pd(l,Ue.memoizedState.deps)?h.memoizedState=xo(a,f,i,l):(Se.flags|=r,h.memoizedState=xo(1|a,f,i,l))}function wg(r,a){El(8390656,8,r,a)}function Sd(r,a){Sl(2048,8,r,a)}function lk(r){Se.flags|=4;var a=Se.updateQueue;if(a===null)a=vl(),Se.updateQueue=a,a.events=[r];else{var i=a.events;i===null?a.events=[r]:i.push(r)}}function xg(r){var a=rt().memoizedState;return lk({ref:a,nextImpl:r}),function(){if((je&2)!==0)throw Error(o(440));return a.impl.apply(void 0,arguments)}}function Eg(r,a){return Sl(4,2,r,a)}function Sg(r,a){return Sl(4,4,r,a)}function kg(r,a){if(typeof a=="function"){r=r();var i=a(r);return function(){typeof i=="function"?i():a(null)}}if(a!=null)return r=r(),a.current=r,function(){a.current=null}}function Dg(r,a,i){i=i!=null?i.concat([r]):null,Sl(4,4,kg.bind(null,a,r),i)}function kd(){}function Tg(r,a){var i=rt();a=a===void 0?null:a;var l=i.memoizedState;return a!==null&&pd(a,l[1])?l[0]:(i.memoizedState=[r,a],r)}function Lg(r,a){var i=rt();a=a===void 0?null:a;var l=i.memoizedState;if(a!==null&&pd(a,l[1]))return l[0];if(l=r(),_a){vn(!0);try{r()}finally{vn(!1)}}return i.memoizedState=[l,a],l}function Dd(r,a,i){return i===void 0||(Wr&1073741824)!==0&&(Ce&261930)===0?r.memoizedState=a:(r.memoizedState=i,r=Ay(),Se.lanes|=r,On|=r,i)}function Ag(r,a,i,l){return Vt(i,a)?i:bo.current!==null?(r=Dd(r,i,l),Vt(r,a)||(st=!0),r):(Wr&42)===0||(Wr&1073741824)!==0&&(Ce&261930)===0?(st=!0,r.memoizedState=i):(r=Ay(),Se.lanes|=r,On|=r,a)}function _g(r,a,i,l,h){var f=te.p;te.p=f!==0&&8>f?f:8;var v=F.T,S={};F.T=S,Ad(r,!1,a,i);try{var T=h(),q=F.S;if(q!==null&&q(S,T),T!==null&&typeof T=="object"&&typeof T.then=="function"){var z=nk(T,l);Ai(r,a,z,Qt(r))}else Ai(r,a,l,Qt(r))}catch(Y){Ai(r,a,{then:function(){},status:"rejected",reason:Y},Qt())}finally{te.p=f,v!==null&&S.types!==null&&(v.types=S.types),F.T=v}}function ck(){}function Td(r,a,i,l){if(r.tag!==5)throw Error(o(476));var h=Cg(r).queue;_g(r,h,a,fe,i===null?ck:function(){return Rg(r),i(l)})}function Cg(r){var a=r.memoizedState;if(a!==null)return a;a={memoizedState:fe,baseState:fe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xr,lastRenderedState:fe},next:null};var i={};return a.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xr,lastRenderedState:i},next:null},r.memoizedState=a,r=r.alternate,r!==null&&(r.memoizedState=a),a}function Rg(r){var a=Cg(r);a.next===null&&(a=r.alternate.memoizedState),Ai(r,a.next.queue,{},Qt())}function Ld(){return wt(Vi)}function Ig(){return rt().memoizedState}function Og(){return rt().memoizedState}function uk(r){for(var a=r.return;a!==null;){switch(a.tag){case 24:case 3:var i=Qt();r=Ln(i);var l=An(a,r,i);l!==null&&(Ht(l,a,i),Si(l,a,i)),a={cache:rd()},r.payload=a;return}a=a.return}}function dk(r,a,i){var l=Qt();i={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},kl(r)?Ng(a,i):(i=Vu(r,a,i,l),i!==null&&(Ht(i,r,l),Hg(i,a,l)))}function $g(r,a,i){var l=Qt();Ai(r,a,i,l)}function Ai(r,a,i,l){var h={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(kl(r))Ng(a,h);else{var f=r.alternate;if(r.lanes===0&&(f===null||f.lanes===0)&&(f=a.lastRenderedReducer,f!==null))try{var v=a.lastRenderedState,S=f(v,i);if(h.hasEagerState=!0,h.eagerState=S,Vt(S,v))return al(r,a,h,0),Ve===null&&nl(),!1}catch{}if(i=Vu(r,a,h,l),i!==null)return Ht(i,r,l),Hg(i,a,l),!0}return!1}function Ad(r,a,i,l){if(l={lane:2,revertLane:ih(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},kl(r)){if(a)throw Error(o(479))}else a=Vu(r,i,l,2),a!==null&&Ht(a,r,2)}function kl(r){var a=r.alternate;return r===Se||a!==null&&a===Se}function Ng(r,a){vo=yl=!0;var i=r.pending;i===null?a.next=a:(a.next=i.next,i.next=a),r.pending=a}
vendor: 5,078 bytes, line 9
9function Hg(r,a,i){if((i&4194048)!==0){var l=a.lanes;l&=r.pendingLanes,i|=l,a.lanes=i,Ff(r,i)}}var _i={readContext:wt,use:wl,useCallback:Je,useContext:Je,useEffect:Je,useImperativeHandle:Je,useLayoutEffect:Je,useInsertionEffect:Je,useMemo:Je,useReducer:Je,useRef:Je,useState:Je,useDebugValue:Je,useDeferredValue:Je,useTransition:Je,useSyncExternalStore:Je,useId:Je,useHostTransitionStatus:Je,useFormState:Je,useActionState:Je,useOptimistic:Je,useMemoCache:Je,useCacheRefresh:Je};_i.useEffectEvent=Je;var Pg={readContext:wt,use:wl,useCallback:function(r,a){return Lt().memoizedState=[r,a===void 0?null:a],r},useContext:wt,useEffect:wg,useImperativeHandle:function(r,a,i){i=i!=null?i.concat([r]):null,El(4194308,4,kg.bind(null,a,r),i)},useLayoutEffect:function(r,a){return El(4194308,4,r,a)},useInsertionEffect:function(r,a){El(4,2,r,a)},useMemo:function(r,a){var i=Lt();a=a===void 0?null:a;var l=r();if(_a){vn(!0);try{r()}finally{vn(!1)}}return i.memoizedState=[l,a],l},useReducer:function(r,a,i){var l=Lt();if(i!==void 0){var h=i(a);if(_a){vn(!0);try{i(a)}finally{vn(!1)}}}else h=a;return l.memoizedState=l.baseState=h,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:h},l.queue=r,r=r.dispatch=dk.bind(null,Se,r),[l.memoizedState,r]},useRef:function(r){var a=Lt();return r={current:r},a.memoizedState=r},useState:function(r){r=xd(r);var a=r.queue,i=$g.bind(null,Se,a);return a.dispatch=i,[r.memoizedState,i]},useDebugValue:kd,useDeferredValue:function(r,a){var i=Lt();return Dd(i,r,a)},useTransition:function(){var r=xd(!1);return r=_g.bind(null,Se,r.queue,!0,!1),Lt().memoizedState=r,[!1,r]},useSyncExternalStore:function(r,a,i){var l=Se,h=Lt();if(Ie){if(i===void 0)throw Error(o(407));i=i()}else{if(i=a(),Ve===null)throw Error(o(349));(Ce&127)!==0||ag(l,a,i)}h.memoizedState=i;var f={value:i,getSnapshot:a};return h.queue=f,wg(ig.bind(null,l,f,r),[r]),l.flags|=2048,xo(9,{destroy:void 0},og.bind(null,l,f,i,a),null),i},useId:function(){var r=Lt(),a=Ve.identifierPrefix;if(Ie){var i=Dr,l=kr;i=(l&~(1<<32-zt(l)-1)).toString(32)+i,a="_"+a+"R_"+i,i=bl++,0<i&&(a+="H"+i.toString(32)),a+="_"}else i=ak++,a="_"+a+"r_"+i.toString(32)+"_";return r.memoizedState=a},useHostTransitionStatus:Ld,useFormState:mg,useActionState:mg,useOptimistic:function(r){var a=Lt();a.memoizedState=a.baseState=r;var i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return a.queue=i,a=Ad.bind(null,Se,!0,i),i.dispatch=a,[r,a]},useMemoCache:bd,useCacheRefresh:function(){return Lt().memoizedState=uk.bind(null,Se)},useEffectEvent:function(r){var a=Lt(),i={impl:r};return a.memoizedState=i,function(){if((je&2)!==0)throw Error(o(440));return i.impl.apply(void 0,arguments)}}},_d={readContext:wt,use:wl,useCallback:Tg,useContext:wt,useEffect:Sd,useImperativeHandle:Dg,useInsertionEffect:Eg,useLayoutEffect:Sg,useMemo:Lg,useReducer:xl,useRef:vg,useState:function(){return xl(Xr)},useDebugValue:kd,useDeferredValue:function(r,a){var i=rt();return Ag(i,Ue.memoizedState,r,a)},useTransition:function(){var r=xl(Xr)[0],a=rt().memoizedState;return[typeof r=="boolean"?r:Li(r),a]},useSyncExternalStore:ng,useId:Ig,useHostTransitionStatus:Ld,useFormState:gg,useActionState:gg,useOptimistic:function(r,a){var i=rt();return cg(i,Ue,r,a)},useMemoCache:bd,useCacheRefresh:Og};_d.useEffectEvent=xg;var jg={readContext:wt,use:wl,useCallback:Tg,useContext:wt,useEffect:Sd,useImperativeHandle:Dg,useInsertionEffect:Eg,useLayoutEffect:Sg,useMemo:Lg,useReducer:wd,useRef:vg,useState:function(){return wd(Xr)},useDebugValue:kd,useDeferredValue:function(r,a){var i=rt();return Ue===null?Dd(i,r,a):Ag(i,Ue.memoizedState,r,a)},useTransition:function(){var r=wd(Xr)[0],a=rt().memoizedState;return[typeof r=="boolean"?r:Li(r),a]},useSyncExternalStore:ng,useId:Ig,useHostTransitionStatus:Ld,useFormState:bg,useActionState:bg,useOptimistic:function(r,a){var i=rt();return Ue!==null?cg(i,Ue,r,a):(i.baseState=r,[r,i.queue.dispatch])},useMemoCache:bd,useCacheRefresh:Og};jg.useEffectEvent=xg;function Cd(r,a,i,l){a=r.memoizedState,i=i(l,a),i=i==null?a:y({},a,i),r.memoizedState=i,r.lanes===0&&(r.updateQueue.baseState=i)}var Rd={enqueueSetState:function(r,a,i){r=r._reactInternals;var l=Qt(),h=Ln(l);h.payload=a,i!=null&&(h.callback=i),a=An(r,h,l),a!==null&&(Ht(a,r,l),Si(a,r,l))},enqueueReplaceState:function(r,a,i){r=r._reactInternals;var l=Qt(),h=Ln(l);h.tag=1,h.payload=a,i!=null&&(h.callback=i),a=An(r,h,l),a!==null&&(Ht(a,r,l),Si(a,r,l))},enqueueForceUpdate:function(r,a){r=r._reactInternals;var i=Qt(),l=Ln(i);l.tag=2,a!=null&&(l.callback=a),a=An(r,l,i),a!==null&&(Ht(a,r,i),Si(a,r,i))}};function qg(r,a,i,l,h,f,v){return r=r.stateNode,typeof r.shouldComponentUpdate=="function"?r.shouldComponentUpdate(l,f,v):a.prototype&&a.prototype.isPureReactComponent?!mi(i,l)||!mi(h,f):!0}function Mg(r,a,i,l){r=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(i,l),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(i,l),a.state!==r&&Rd.enqueueReplaceState(a,a.state,null)}function Ca(r,a){var i=a;
vendor: 12,793 bytes, line 9
9if("ref"in a){i={};for(var l in a)l!=="ref"&&(i[l]=a[l])}if(r=r.defaultProps){i===a&&(i=y({},i));for(var h in r)i[h]===void 0&&(i[h]=r[h])}return i}function Fg(r){rl(r)}function Ug(r){console.error(r)}function Bg(r){rl(r)}function Dl(r,a){try{var i=r.onUncaughtError;i(a.value,{componentStack:a.stack})}catch(l){setTimeout(function(){throw l})}}function zg(r,a,i){try{var l=r.onCaughtError;l(i.value,{componentStack:i.stack,errorBoundary:a.tag===1?a.stateNode:null})}catch(h){setTimeout(function(){throw h})}}function Id(r,a,i){return i=Ln(i),i.tag=3,i.payload={element:null},i.callback=function(){Dl(r,a)},i}function Vg(r){return r=Ln(r),r.tag=3,r}function Gg(r,a,i,l){var h=i.type.getDerivedStateFromError;if(typeof h=="function"){var f=l.value;r.payload=function(){return h(f)},r.callback=function(){zg(a,i,l)}}var v=i.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(r.callback=function(){zg(a,i,l),typeof h!="function"&&($n===null?$n=new Set([this]):$n.add(this));var S=l.stack;this.componentDidCatch(l.value,{componentStack:S!==null?S:""})})}function hk(r,a,i,l,h){if(i.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(a=i.alternate,a!==null&&po(a,i,h,!0),i=Wt.current,i!==null){switch(i.tag){case 31:case 13:return ir===null?Pl():i.alternate===null&&Ze===0&&(Ze=3),i.flags&=-257,i.flags|=65536,i.lanes=h,l===hl?i.flags|=16384:(a=i.updateQueue,a===null?i.updateQueue=new Set([l]):a.add(l),nh(r,l,h)),!1;case 22:return i.flags|=65536,l===hl?i.flags|=16384:(a=i.updateQueue,a===null?(a={transitions:null,markerInstances:null,retryQueue:new Set([l])},i.updateQueue=a):(i=a.retryQueue,i===null?a.retryQueue=new Set([l]):i.add(l)),nh(r,l,h)),!1}throw Error(o(435,i.tag))}return nh(r,l,h),Pl(),!1}if(Ie)return a=Wt.current,a!==null?((a.flags&65536)===0&&(a.flags|=256),a.flags|=65536,a.lanes=h,l!==Qu&&(r=Error(o(422),{cause:l}),bi(rr(r,i)))):(l!==Qu&&(a=Error(o(423),{cause:l}),bi(rr(a,i))),r=r.current.alternate,r.flags|=65536,h&=-h,r.lanes|=h,l=rr(l,i),h=Id(r.stateNode,l,h),ld(r,h),Ze!==4&&(Ze=2)),!1;var f=Error(o(520),{cause:l});if(f=rr(f,i),Pi===null?Pi=[f]:Pi.push(f),Ze!==4&&(Ze=2),a===null)return!0;l=rr(l,i),i=a;do{switch(i.tag){case 3:return i.flags|=65536,r=h&-h,i.lanes|=r,r=Id(i.stateNode,l,r),ld(i,r),!1;case 1:if(a=i.type,f=i.stateNode,(i.flags&128)===0&&(typeof a.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&($n===null||!$n.has(f))))return i.flags|=65536,h&=-h,i.lanes|=h,h=Vg(h),Gg(h,r,i,l),ld(i,h),!1}i=i.return}while(i!==null);return!1}var Od=Error(o(461)),st=!1;function xt(r,a,i,l){a.child=r===null?Km(a,null,i,l):Aa(a,r.child,i,l)}function Wg(r,a,i,l,h){i=i.render;var f=a.ref;if("ref"in l){var v={};for(var S in l)S!=="ref"&&(v[S]=l[S])}else v=l;return ka(a),l=fd(r,a,i,v,f,h),S=md(),r!==null&&!st?(gd(r,a,h),Yr(r,a,h)):(Ie&&S&&Yu(a),a.flags|=1,xt(r,a,l,h),a.child)}function Xg(r,a,i,l,h){if(r===null){var f=i.type;return typeof f=="function"&&!Gu(f)&&f.defaultProps===void 0&&i.compare===null?(a.tag=15,a.type=f,Yg(r,a,f,l,h)):(r=il(i.type,null,l,a,a.mode,h),r.ref=a.ref,r.return=a,a.child=r)}if(f=r.child,!Fd(r,h)){var v=f.memoizedProps;if(i=i.compare,i=i!==null?i:mi,i(v,l)&&r.ref===a.ref)return Yr(r,a,h)}return a.flags|=1,r=Br(f,l),r.ref=a.ref,r.return=a,a.child=r}function Yg(r,a,i,l,h){if(r!==null){var f=r.memoizedProps;if(mi(f,l)&&r.ref===a.ref)if(st=!1,a.pendingProps=l=f,Fd(r,h))(r.flags&131072)!==0&&(st=!0);else return a.lanes=r.lanes,Yr(r,a,h)}return $d(r,a,i,l,h)}function Kg(r,a,i,l){var h=l.children,f=r!==null?r.memoizedState:null;if(r===null&&a.stateNode===null&&(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),l.mode==="hidden"){if((a.flags&128)!==0){if(f=f!==null?f.baseLanes|i:i,r!==null){for(l=a.child=r.child,h=0;l!==null;)h=h|l.lanes|l.childLanes,l=l.sibling;l=h&~f}else l=0,a.child=null;return Qg(r,a,f,i,l)}if((i&536870912)!==0)a.memoizedState={baseLanes:0,cachePool:null},r!==null&&ul(a,f!==null?f.cachePool:null),f!==null?Zm(a,f):ud(),eg(a);else return l=a.lanes=536870912,Qg(r,a,f!==null?f.baseLanes|i:i,i,l)}else f!==null?(ul(a,f.cachePool),Zm(a,f),Cn(),a.memoizedState=null):(r!==null&&ul(a,null),ud(),Cn());return xt(r,a,h,i),a.child}function Ci(r,a){return r!==null&&r.tag===22||a.stateNode!==null||(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.sibling}function Qg(r,a,i,l,h){var f=ad();return f=f===null?null:{parent:ot._currentValue,pool:f},a.memoizedState={baseLanes:i,cachePool:f},r!==null&&ul(a,null),ud(),eg(a),r!==null&&po(r,a,l,!0),a.childLanes=h,null}function Tl(r,a){return a=Al({mode:a.mode,children:a.children},r.mode),a.ref=r.ref,r.child=a,a.return=r,a}function Jg(r,a,i){return Aa(a,r.child,null,i),r=Tl(a,a.pendingProps),r.flags|=2,Xt(a),a.memoizedState=null,r}function pk(r,a,i){var l=a.pendingProps,h=(a.flags&128)!==0;if(a.flags&=-129,r===null){if(Ie){if(l.mode==="hidden")return r=Tl(a,l),a.lanes=536870912,Ci(null,r);if(hd(a),(r=Ye)?(r=ub(r,or),r=r!==null&&r.data==="&"?r:null,r!==null&&(a.memoizedState={dehydrated:r,treeContext:En!==null?{id:kr,overflow:Dr}:null,retryLane:536870912,hydrationErrors:null},i=Nm(r),i.return=a,a.child=i,vt=a,Ye=null)):r=null,r===null)throw kn(a);return a.lanes=536870912,null}return Tl(a,l)}var f=r.memoizedState;if(f!==null){var v=f.dehydrated;if(hd(a),h)if(a.flags&256)a.flags&=-257,a=Jg(r,a,i);else if(a.memoizedState!==null)a.child=r.child,a.flags|=128,a=null;else throw Error(o(558));else if(st||po(r,a,i,!1),h=(i&r.childLanes)!==0,st||h){if(l=Ve,l!==null&&(v=Uf(l,i),v!==0&&v!==f.retryLane))throw f.retryLane=v,wa(r,v),Ht(l,r,v),Od;Pl(),a=Jg(r,a,i)}else r=f.treeContext,Ye=sr(v.nextSibling),vt=a,Ie=!0,Sn=null,or=!1,r!==null&&jm(a,r),a=Tl(a,l),a.flags|=4096;return a}return r=Br(r.child,{mode:l.mode,children:l.children}),r.ref=a.ref,a.child=r,r.return=a,r}function Ll(r,a){var i=a.ref;if(i===null)r!==null&&r.ref!==null&&(a.flags|=4194816);else{if(typeof i!="function"&&typeof i!="object")throw Error(o(284));(r===null||r.ref!==i)&&(a.flags|=4194816)}}function $d(r,a,i,l,h){return ka(a),i=fd(r,a,i,l,void 0,h),l=md(),r!==null&&!st?(gd(r,a,h),Yr(r,a,h)):(Ie&&l&&Yu(a),a.flags|=1,xt(r,a,i,h),a.child)}function Zg(r,a,i,l,h,f){return ka(a),a.updateQueue=null,i=rg(a,l,i,h),tg(r),l=md(),r!==null&&!st?(gd(r,a,f),Yr(r,a,f)):(Ie&&l&&Yu(a),a.flags|=1,xt(r,a,i,f),a.child)}function ey(r,a,i,l,h){if(ka(a),a.stateNode===null){var f=lo,v=i.contextType;typeof v=="object"&&v!==null&&(f=wt(v)),f=new i(l,f),a.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Rd,a.stateNode=f,f._reactInternals=a,f=a.stateNode,f.props=l,f.state=a.memoizedState,f.refs={},id(a),v=i.contextType,f.context=typeof v=="object"&&v!==null?wt(v):lo,f.state=a.memoizedState,v=i.getDerivedStateFromProps,typeof v=="function"&&(Cd(a,i,v,l),f.state=a.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(v=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),v!==f.state&&Rd.enqueueReplaceState(f,f.state,null),Di(a,l,f,h),ki(),f.state=a.memoizedState),typeof f.componentDidMount=="function"&&(a.flags|=4194308),l=!0}else if(r===null){f=a.stateNode;var S=a.memoizedProps,T=Ca(i,S);f.props=T;var q=f.context,z=i.contextType;v=lo,typeof z=="object"&&z!==null&&(v=wt(z));var Y=i.getDerivedStateFromProps;z=typeof Y=="function"||typeof f.getSnapshotBeforeUpdate=="function",S=a.pendingProps!==S,z||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(S||q!==v)&&Mg(a,f,l,v),Tn=!1;var M=a.memoizedState;f.state=M,Di(a,l,f,h),ki(),q=a.memoizedState,S||M!==q||Tn?(typeof Y=="function"&&(Cd(a,i,Y,l),q=a.memoizedState),(T=Tn||qg(a,i,T,l,M,q,v))?(z||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount()),typeof f.componentDidMount=="function"&&(a.flags|=4194308)):(typeof f.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=l,a.memoizedState=q),f.props=l,f.state=q,f.context=v,l=T):(typeof f.componentDidMount=="function"&&(a.flags|=4194308),l=!1)}else{f=a.stateNode,sd(r,a),v=a.memoizedProps,z=Ca(i,v),f.props=z,Y=a.pendingProps,M=f.context,q=i.contextType,T=lo,typeof q=="object"&&q!==null&&(T=wt(q)),S=i.getDerivedStateFromProps,(q=typeof S=="function"||typeof f.getSnapshotBeforeUpdate=="function")||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(v!==Y||M!==T)&&Mg(a,f,l,T),Tn=!1,M=a.memoizedState,f.state=M,Di(a,l,f,h),ki();var U=a.memoizedState;v!==Y||M!==U||Tn||r!==null&&r.dependencies!==null&&ll(r.dependencies)?(typeof S=="function"&&(Cd(a,i,S,l),U=a.memoizedState),(z=Tn||qg(a,i,z,l,M,U,T)||r!==null&&r.dependencies!==null&&ll(r.dependencies))?(q||typeof f.UNSAFE_componentWillUpdate!="function"&&typeof f.componentWillUpdate!="function"||(typeof f.componentWillUpdate=="function"&&f.componentWillUpdate(l,U,T),typeof f.UNSAFE_componentWillUpdate=="function"&&f.UNSAFE_componentWillUpdate(l,U,T)),typeof f.componentDidUpdate=="function"&&(a.flags|=4),typeof f.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof f.componentDidUpdate!="function"||v===r.memoizedProps&&M===r.memoizedState||(a.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===r.memoizedProps&&M===r.memoizedState||(a.flags|=1024),a.memoizedProps=l,a.memoizedState=U),f.props=l,f.state=U,f.context=T,l=z):(typeof f.componentDidUpdate!="function"||v===r.memoizedProps&&M===r.memoizedState||(a.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===r.memoizedProps&&M===r.memoizedState||(a.flags|=1024),l=!1)}return f=l,Ll(r,a),l=(a.flags&128)!==0,f||l?(f=a.stateNode,i=l&&typeof i.getDerivedStateFromError!="function"?null:f.render(),a.flags|=1,r!==null&&l?(a.child=Aa(a,r.child,null,h),a.child=Aa(a,null,i,h)):xt(r,a,i,h),a.memoizedState=f.state,r=a.child):r=Yr(r,a,h),r}function ty(r,a,i,l){return Ea(),a.flags|=256,xt(r,a,i,l),a.child}var Nd={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Hd(r){return{baseLanes:r,cachePool:zm()}}function Pd(r,a,i){return r=r!==null?r.childLanes&~i:0,a&&(r|=Kt),r}function ry(r,a,i){var l=a.pendingProps,h=!1,f=(a.flags&128)!==0,v;if((v=f)||(v=r!==null&&r.memoizedState===null?!1:(tt.current&2)!==0),v&&(h=!0,a.flags&=-129),v=(a.flags&32)!==0,a.flags&=-33,r===null){if(Ie){if(h?_n(a):Cn(),(r=Ye)?(r=ub(r,or),r=r!==null&&r.data!=="&"?r:null,r!==null&&(a.memoizedState={dehydrated:r,treeContext:En!==null?{id:kr,overflow:Dr}:null,retryLane:536870912,hydrationErrors:null},i=Nm(r),i.return=a,a.child=i,vt=a,Ye=null)):r=null,r===null)throw kn(a);return vh(r)?a.lanes=32:a.lanes=536870912,null}var S=l.children;return l=l.fallback,h?(Cn(),h=a.mode,S=Al({mode:"hidden",children:S},h),l=xa(l,h,i,null),S.return=a,l.return=a,S.sibling=l,a.child=S,l=a.child,l.memoizedState=Hd(i),l.childLanes=Pd(r,v,i),a.memoizedState=Nd,Ci(null,l)):(_n(a),jd(a,S))}var T=r.memoizedState;if(T!==null&&(S=T.dehydrated,S!==null)){if(f)a.flags&256?(_n(a),a.flags&=-257,a=qd(r,a,i)):a.memoizedState!==null?(Cn(),a.child=r.child,a.flags|=128,a=null):(Cn(),S=l.fallback,h=a.mode,l=Al({mode:"visible",children:l.children},h),S=xa(S,h,i,null),S.flags|=2,l.return=a,S.return=a,l.sibling=S,a.child=l,Aa(a,r.child,null,i),l=a.child,l.memoizedState=Hd(i),l.childLanes=Pd(r,v,i),a.memoizedState=Nd,a=Ci(null,l));else if(_n(a),vh(S)){if(v=S.nextSibling&&S.nextSibling.dataset,v)var q=v.dgst;v=q,l=Error(o(419)),l.stack="",l.digest=v,bi({value:l,source:null,stack:null}),a=qd(r,a,i)}else if(st||po(r,a,i,!1),v=(i&r.childLanes)!==0,st||v){if(v=Ve,v!==null&&(l=Uf(v,i),l!==0&&l!==T.retryLane))throw T.retryLane=l,wa(r,l),Ht(v,r,l),Od;bh(S)||Pl(),a=qd(r,a,i)}else bh(S)?(a.flags|=192,a.child=r.child,a=null):(r=T.treeContext,Ye=sr(S.nextSibling),vt=a,Ie=!0,Sn=null,or=!1,r!==null&&jm(a,r),a=jd(a,l.children),a.flags|=4096);return a}return h?(Cn(),S=l.fallback,h=a.mode,T=r.child,q=T.sibling,l=Br(T,{mode:"hidden",children:l.children}),l.subtreeFlags=T.subtreeFlags&65011712,q!==null?S=Br(q,S):(S=xa(S,h,i,null),S.flags|=2),S.return=a,l.return=a,l.sibling=S,a.child=l,Ci(null,l),l=a.child,S=r.child.memoizedState,S===null?S=Hd(i):(h=S.cachePool,h!==null?(T=ot._currentValue,h=h.parent!==T?{parent:T,pool:T}:h):h=zm(),S={baseLanes:S.baseLanes|i,cachePool:h}),l.memoizedState=S,l.childLanes=Pd(r,v,i),a.memoizedState=Nd,Ci(r.child,l)):(_n(a),i=r.child,r=i.sibling,i=Br(i,{mode:"visible",children:l.children}),i.return=a,i.sibling=null,r!==null&&(v=a.deletions,v===null?(a.deleti
vendor: 4,717 bytes, line 9
9ons=[r],a.flags|=16):v.push(r)),a.child=i,a.memoizedState=null,i)}function jd(r,a){return a=Al({mode:"visible",children:a},r.mode),a.return=r,r.child=a}function Al(r,a){return r=Gt(22,r,null,a),r.lanes=0,r}function qd(r,a,i){return Aa(a,r.child,null,i),r=jd(a,a.pendingProps.children),r.flags|=2,a.memoizedState=null,r}function ny(r,a,i){r.lanes|=a;var l=r.alternate;l!==null&&(l.lanes|=a),ed(r.return,a,i)}function Md(r,a,i,l,h,f){var v=r.memoizedState;v===null?r.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:l,tail:i,tailMode:h,treeForkCount:f}:(v.isBackwards=a,v.rendering=null,v.renderingStartTime=0,v.last=l,v.tail=i,v.tailMode=h,v.treeForkCount=f)}function ay(r,a,i){var l=a.pendingProps,h=l.revealOrder,f=l.tail;l=l.children;var v=tt.current,S=(v&2)!==0;if(S?(v=v&1|2,a.flags|=128):v&=1,ee(tt,v),xt(r,a,l,i),l=Ie?yi:0,!S&&r!==null&&(r.flags&128)!==0)e:for(r=a.child;r!==null;){if(r.tag===13)r.memoizedState!==null&&ny(r,i,a);else if(r.tag===19)ny(r,i,a);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===a)break e;for(;r.sibling===null;){if(r.return===null||r.return===a)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}switch(h){case"forwards":for(i=a.child,h=null;i!==null;)r=i.alternate,r!==null&&gl(r)===null&&(h=i),i=i.sibling;i=h,i===null?(h=a.child,a.child=null):(h=i.sibling,i.sibling=null),Md(a,!1,h,i,f,l);break;case"backwards":case"unstable_legacy-backwards":for(i=null,h=a.child,a.child=null;h!==null;){if(r=h.alternate,r!==null&&gl(r)===null){a.child=h;break}r=h.sibling,h.sibling=i,i=h,h=r}Md(a,!0,i,null,f,l);break;case"together":Md(a,!1,null,null,void 0,l);break;default:a.memoizedState=null}return a.child}function Yr(r,a,i){if(r!==null&&(a.dependencies=r.dependencies),On|=a.lanes,(i&a.childLanes)===0)if(r!==null){if(po(r,a,i,!1),(i&a.childLanes)===0)return null}else return null;if(r!==null&&a.child!==r.child)throw Error(o(153));if(a.child!==null){for(r=a.child,i=Br(r,r.pendingProps),a.child=i,i.return=a;r.sibling!==null;)r=r.sibling,i=i.sibling=Br(r,r.pendingProps),i.return=a;i.sibling=null}return a.child}function Fd(r,a){return(r.lanes&a)!==0?!0:(r=r.dependencies,!!(r!==null&&ll(r)))}function fk(r,a,i){switch(a.tag){case 3:Pe(a,a.stateNode.containerInfo),Dn(a,ot,r.memoizedState.cache),Ea();break;case 27:case 5:Sr(a);break;case 4:Pe(a,a.stateNode.containerInfo);break;case 10:Dn(a,a.type,a.memoizedProps.value);break;case 31:if(a.memoizedState!==null)return a.flags|=128,hd(a),null;break;case 13:var l=a.memoizedState;if(l!==null)return l.dehydrated!==null?(_n(a),a.flags|=128,null):(i&a.child.childLanes)!==0?ry(r,a,i):(_n(a),r=Yr(r,a,i),r!==null?r.sibling:null);_n(a);break;case 19:var h=(r.flags&128)!==0;if(l=(i&a.childLanes)!==0,l||(po(r,a,i,!1),l=(i&a.childLanes)!==0),h){if(l)return ay(r,a,i);a.flags|=128}if(h=a.memoizedState,h!==null&&(h.rendering=null,h.tail=null,h.lastEffect=null),ee(tt,tt.current),l)break;return null;case 22:return a.lanes=0,Kg(r,a,i,a.pendingProps);case 24:Dn(a,ot,r.memoizedState.cache)}return Yr(r,a,i)}function oy(r,a,i){if(r!==null)if(r.memoizedProps!==a.pendingProps)st=!0;else{if(!Fd(r,i)&&(a.flags&128)===0)return st=!1,fk(r,a,i);st=(r.flags&131072)!==0}else st=!1,Ie&&(a.flags&1048576)!==0&&Pm(a,yi,a.index);switch(a.lanes=0,a.tag){case 16:e:{var l=a.pendingProps;if(r=Ta(a.elementType),a.type=r,typeof r=="function")Gu(r)?(l=Ca(r,l),a.tag=1,a=ey(null,a,r,l,i)):(a.tag=0,a=$d(null,a,r,l,i));else{if(r!=null){var h=r.$$typeof;if(h===V){a.tag=11,a=Wg(null,a,r,l,i);break e}else if(h===P){a.tag=14,a=Xg(null,a,r,l,i);break e}}throw a=ve(r)||r,Error(o(306,a,""))}}return a;case 0:return $d(r,a,a.type,a.pendingProps,i);case 1:return l=a.type,h=Ca(l,a.pendingProps),ey(r,a,l,h,i);case 3:e:{if(Pe(a,a.stateNode.containerInfo),r===null)throw Error(o(387));l=a.pendingProps;var f=a.memoizedState;h=f.element,sd(r,a),Di(a,l,null,i);var v=a.memoizedState;if(l=v.cache,Dn(a,ot,l),l!==f.cache&&td(a,[ot],i,!0),ki(),l=v.element,f.isDehydrated)if(f={element:l,isDehydrated:!1,cache:v.cache},a.updateQueue.baseState=f,a.memoizedState=f,a.flags&256){a=ty(r,a,l,i);break e}else if(l!==h){h=rr(Error(o(424)),a),bi(h),a=ty(r,a,l,i);break e}else for(r=a.stateNode.containerInfo,r.nodeType===9?r=r.body:r=r.nodeName==="HTML"?r.ownerDocument.body:r,Ye=sr(r.firstChild),vt=a,Ie=!0,Sn=null,or=!0,i=Km(a,null,l,i),a.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling;else{if(Ea(),l===h){a=Yr(r,a,i);break e}xt(r,a,l,i)}a=a.child}return a;case 26:return Ll(r,a),r===null?(i=gb(a.type,null,a.pendingProps,null))?a.memoizedState=i:Ie||(i=a.type,r=a.pendingProps,l=zl(De.current).createElement(i),l[bt]=a,l[Ct]=r,Et(l,i,r),ft(l),a.stateNode=l):a.memoizedState=gb(a.type,r.memoizedProps,a.pendingProps,r.memoizedState),null;
vendor: 4,749 bytes, line 9
9case 27:return Sr(a),r===null&&Ie&&(l=a.stateNode=pb(a.type,a.pendingProps,De.current),vt=a,or=!0,h=Ye,jn(a.type)?(wh=h,Ye=sr(l.firstChild)):Ye=h),xt(r,a,a.pendingProps.children,i),Ll(r,a),r===null&&(a.flags|=4194304),a.child;case 5:return r===null&&Ie&&((h=l=Ye)&&(l=zk(l,a.type,a.pendingProps,or),l!==null?(a.stateNode=l,vt=a,Ye=sr(l.firstChild),or=!1,h=!0):h=!1),h||kn(a)),Sr(a),h=a.type,f=a.pendingProps,v=r!==null?r.memoizedProps:null,l=f.children,mh(h,f)?l=null:v!==null&&mh(h,v)&&(a.flags|=32),a.memoizedState!==null&&(h=fd(r,a,ok,null,null,i),Vi._currentValue=h),Ll(r,a),xt(r,a,l,i),a.child;case 6:return r===null&&Ie&&((r=i=Ye)&&(i=Vk(i,a.pendingProps,or),i!==null?(a.stateNode=i,vt=a,Ye=null,r=!0):r=!1),r||kn(a)),null;case 13:return ry(r,a,i);case 4:return Pe(a,a.stateNode.containerInfo),l=a.pendingProps,r===null?a.child=Aa(a,null,l,i):xt(r,a,l,i),a.child;case 11:return Wg(r,a,a.type,a.pendingProps,i);case 7:return xt(r,a,a.pendingProps,i),a.child;case 8:return xt(r,a,a.pendingProps.children,i),a.child;case 12:return xt(r,a,a.pendingProps.children,i),a.child;case 10:return l=a.pendingProps,Dn(a,a.type,l.value),xt(r,a,l.children,i),a.child;case 9:return h=a.type._context,l=a.pendingProps.children,ka(a),h=wt(h),l=l(h),a.flags|=1,xt(r,a,l,i),a.child;case 14:return Xg(r,a,a.type,a.pendingProps,i);case 15:return Yg(r,a,a.type,a.pendingProps,i);case 19:return ay(r,a,i);case 31:return pk(r,a,i);case 22:return Kg(r,a,i,a.pendingProps);case 24:return ka(a),l=wt(ot),r===null?(h=ad(),h===null&&(h=Ve,f=rd(),h.pooledCache=f,f.refCount++,f!==null&&(h.pooledCacheLanes|=i),h=f),a.memoizedState={parent:l,cache:h},id(a),Dn(a,ot,h)):((r.lanes&i)!==0&&(sd(r,a),Di(a,null,null,i),ki()),h=r.memoizedState,f=a.memoizedState,h.parent!==l?(h={parent:l,cache:l},a.memoizedState=h,a.lanes===0&&(a.memoizedState=a.updateQueue.baseState=h),Dn(a,ot,l)):(l=f.cache,Dn(a,ot,l),l!==h.cache&&td(a,[ot],i,!0))),xt(r,a,a.pendingProps.children,i),a.child;case 29:throw a.pendingProps}throw Error(o(156,a.tag))}function Kr(r){r.flags|=4}function Ud(r,a,i,l,h){if((a=(r.mode&32)!==0)&&(a=!1),a){if(r.flags|=16777216,(h&335544128)===h)if(r.stateNode.complete)r.flags|=8192;else if(Iy())r.flags|=8192;else throw La=hl,od}else r.flags&=-16777217}function iy(r,a){if(a.type!=="stylesheet"||(a.state.loading&4)!==0)r.flags&=-16777217;else if(r.flags|=16777216,!xb(a))if(Iy())r.flags|=8192;else throw La=hl,od}function _l(r,a){a!==null&&(r.flags|=4),r.flags&16384&&(a=r.tag!==22?qf():536870912,r.lanes|=a,Do|=a)}function Ri(r,a){if(!Ie)switch(r.tailMode){case"hidden":a=r.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?r.tail=null:i.sibling=null;break;case"collapsed":i=r.tail;for(var l=null;i!==null;)i.alternate!==null&&(l=i),i=i.sibling;l===null?a||r.tail===null?r.tail=null:r.tail.sibling=null:l.sibling=null}}function Ke(r){var a=r.alternate!==null&&r.alternate.child===r.child,i=0,l=0;if(a)for(var h=r.child;h!==null;)i|=h.lanes|h.childLanes,l|=h.subtreeFlags&65011712,l|=h.flags&65011712,h.return=r,h=h.sibling;else for(h=r.child;h!==null;)i|=h.lanes|h.childLanes,l|=h.subtreeFlags,l|=h.flags,h.return=r,h=h.sibling;return r.subtreeFlags|=l,r.childLanes=i,a}function mk(r,a,i){var l=a.pendingProps;switch(Ku(a),a.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ke(a),null;case 1:return Ke(a),null;case 3:return i=a.stateNode,l=null,r!==null&&(l=r.memoizedState.cache),a.memoizedState.cache!==l&&(a.flags|=2048),Gr(ot),We(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(r===null||r.child===null)&&(ho(a)?Kr(a):r===null||r.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,Ju())),Ke(a),null;case 26:var h=a.type,f=a.memoizedState;return r===null?(Kr(a),f!==null?(Ke(a),iy(a,f)):(Ke(a),Ud(a,h,null,l,i))):f?f!==r.memoizedState?(Kr(a),Ke(a),iy(a,f)):(Ke(a),a.flags&=-16777217):(r=r.memoizedProps,r!==l&&Kr(a),Ke(a),Ud(a,h,r,l,i)),null;case 27:if(pa(a),i=De.current,h=a.type,r!==null&&a.stateNode!=null)r.memoizedProps!==l&&Kr(a);else{if(!l){if(a.stateNode===null)throw Error(o(166));return Ke(a),null}r=se.current,ho(a)?qm(a):(r=pb(h,l,i),a.stateNode=r,Kr(a))}return Ke(a),null;case 5:if(pa(a),h=a.type,r!==null&&a.stateNode!=null)r.memoizedProps!==l&&Kr(a);else{if(!l){if(a.stateNode===null)throw Error(o(166));return Ke(a),null}if(f=se.current,ho(a))qm(a);else{var v=zl(De.current);switch(f){case 1:f=v.createElementNS("http://www.w3.org/2000/svg",h);break;case 2:f=v.createElementNS("http://www.w3.org/1998/Math/MathML",h);break;default:switch(h){case"svg":f=v.createElementNS("http://www.w3.org/2000/svg",h);break;case"math":f=v.createElementNS("http://www.w3.org/1998/Math/MathML",h);break;case"script":f=v.createElement("div"),f.innerHTML="<script><\/script>
9",f=f.removeChild(f.firstChild);break;case"select":f=typeof l.is=="string"?v.createElement("select",{is:l.is}):v.createElement("select"),l.multiple?f.multiple=!0:l.size&&(f.size=l.size);break;default:f=typeof l.is=="string"?v.createElement(h,{is:l.is}):v.createElement(h)}}f[bt]=a,f[Ct]=l;e:for(v=a.child;v!==null;){if(v.tag===5||v.tag===6)f.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===a)break e;for(;v.sibling===null;){if(v.return===null||v.return===a)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}a.stateNode=f;e:switch(Et(f,h,l),h){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Kr(a)}}return Ke(a),Ud(a,a.type,r===null?null:r.memoizedProps,a.pendingProps,i),null;case 6:if(r&&a.stateNode!=null)r.memoizedProps!==l&&Kr(a);else{if(typeof l!="string"&&a.stateNode===null)throw Error(o(166));if(r=De.current,ho(a)){if(r=a.stateNode,i=a.memoizedProps,l=null,h=vt,h!==null)switch(h.tag){case 27:case 5:l=h.memoizedProps}r[bt]=a,r=!!(r.nodeValue===i||l!==null&&l.suppressHydrationWarning===!0||rb(r.nodeValue,i)),r||kn(a,!0)}else r=zl(r).createTextNode(l),r[bt]=a,a.stateNode=r}return Ke(a),null;case 31:if(i=a.memoizedState,r===null||r.memoizedState!==null){if(l=ho(a),i!==null){if(r===null){if(!l)throw Error(o(318));if(r=a.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(o(557));r[bt]=a}else Ea(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;Ke(a),r=!1}else i=Ju(),r!==null&&r.memoizedState!==null&&(r.memoizedState.hydrationErrors=i),r=!0;if(!r)return a.flags&256?(Xt(a),a):(Xt(a),null);if((a.flags&128)!==0)throw Error(o(558))}return Ke(a),null;case 13:if(l=a.memoizedState,r===null||r.memoizedState!==null&&r.memoizedState.dehydrated!==null){if(h=ho(a),l!==null&&l.dehydrated!==null){if(r===null){if(!h)throw Error(o(318));if(h=a.memoizedState,h=h!==null?h.dehydrated:null,!h)throw Error(o(317));h[bt]=a}else Ea(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;Ke(a),h=!1}else h=Ju(),r!==null&&r.memoizedState!==null&&(r.memoizedState.hydrationErrors=h),h=!0;if(!h)return a.flags&256?(Xt(a),a):(Xt(a),null)}return Xt(a),(a.flags&128)!==0?(a.lanes=i,a):(i=l!==null,r=r!==null&&r.memoizedState!==null,i&&(l=a.child,h=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(h=l.alternate.memoizedState.cachePool.pool),f=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(f=l.memoizedState.cachePool.pool),f!==h&&(l.flags|=2048)),i!==r&&i&&(a.child.flags|=8192),_l(a,a.updateQueue),Ke(a),null);case 4:return We(),r===null&&uh(a.stateNode.containerInfo),Ke(a),null;case 10:return Gr(a.type),Ke(a),null;case 19:if(X(tt),l=a.memoizedState,l===null)return Ke(a),null;if(h=(a.flags&128)!==0,f=l.rendering,f===null)if(h)Ri(l,!1);else{if(Ze!==0||r!==null&&(r.flags&128)!==0)for(r=a.child;r!==null;){if(f=gl(r),f!==null){for(a.flags|=128,Ri(l,!1),r=f.updateQueue,a.updateQueue=r,_l(a,r),a.subtreeFlags=0,r=i,i=a.child;i!==null;)$m(i,r),i=i.sibling;return ee(tt,tt.current&1|2),Ie&&zr(a,l.treeForkCount),a.child}r=r.sibling}l.tail!==null&&Ut()>$l&&(a.flags|=128,h=!0,Ri(l,!1),a.lanes=4194304)}else{if(!h)if(r=gl(f),r!==null){if(a.flags|=128,h=!0,r=r.updateQueue,a.updateQueue=r,_l(a,r),Ri(l,!0),l.tail===null&&l.tailMode==="hidden"&&!f.alternate&&!Ie)return Ke(a),null}else 2*Ut()-l.renderingStartTime>$l&&i!==536870912&&(a.flags|=128,h=!0,Ri(l,!1),a.lanes=4194304);l.isBackwards?(f.sibling=a.child,a.child=f):(r=l.last,r!==null?r.sibling=f:a.child=f,l.last=f)}return l.tail!==null?(r=l.tail,l.rendering=r,l.tail=r.sibling,l.renderingStartTime=Ut(),r.sibling=null,i=tt.current,ee(tt,h?i&1|2:i&1),Ie&&zr(a,l.treeForkCount),r):(Ke(a),null);case 22:case 23:return Xt(a),dd(),l=a.memoizedState!==null,r!==null?r.memoizedState!==null!==l&&(a.flags|=8192):l&&(a.flags|=8192),l?(i&536870912)!==0&&(a.flags&128)===0&&(Ke(a),a.subtreeFlags&6&&(a.flags|=8192)):Ke(a),i=a.updateQueue,i!==null&&_l(a,i.retryQueue),i=null,r!==null&&r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(i=r.memoizedState.cachePool.pool),l=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(l=a.memoizedState.cachePool.pool),l!==i&&(a.flags|=2048),r!==null&&X(Da),null;case 24:return i=null,r!==null&&(i=r.memoizedState.cache),a.memoizedState.cache!==i&&(a.flags|=2048),Gr(ot),Ke(a),null;case 25:return null;case 30:return null}throw Error(o(156,a.tag))}function gk(r,a){switch(Ku(a),a.tag){case 1:return r=a.flags,r&65536?(a.flags=r&-65537|128,a):null;case 3:return Gr(ot),We(),r=a.flags,(r&65536)!==0&&(r&128)===0?(a.flags=r&-65537|128,a):null;case 26:case 27:case 5:return pa(a),null;case 31:if(a.memoizedState!==null){if(Xt(a),a.alternate===null)throw Error(o(340));Ea()}return r=a.flags,r&65536?(a.flags=r&-65537|128,a):null;case 13:if(Xt(a),r=a.memoizedState,r!==null&&r.dehydrated!==null){if(a.alternate===null)throw Error(o(340));Ea()}return r=a.flags,r&65536?(a.flags=r&-65537|128,a):null;case 19:return X(tt),null;case 4:return We(),null;case 10:return Gr(a.type),null;case 22:case 23:return Xt(a),dd(),r!==null&&X(Da),r=a.flags,r&65536?(a.flags=r&-65537|128,a):null;case 24:return Gr(ot),null;case 25:return null;default:return null}}function sy(r,a){switch(Ku(a),a.tag){case 3:Gr(ot),We();break;case 26:case 27:case 5:pa(a);break;case 4:We();break;case 31:a.memoizedState!==null&&Xt(a);break;case 13:Xt(a);break;case 19:X(tt);break;case 10:Gr(a.type);break;case 22:case 23:Xt(a),dd(),r!==null&&X(Da);break;case 24:Gr(ot)}}function Ii(r,a){try{var i=a.updateQueue,l=i!==null?i.lastEffect:null;if(l!==null){var h=l.next;i=h;do{if((i.tag&r)===r){l=void 0;var f=i.create,v=i.inst;l=f(),v.destroy=l}i=i.next}while(i!==h)}}catch(S){Fe(a,a.return,S)}}function Rn(r,a,i){try{var l=a.updateQueue,h=l!==null?l.lastEffect:null;if(h!==null){var f=h.next;l=f;do{if((l.tag&r)===r){var v=l.inst,S=v.destroy;if(S!==void 0){v.destroy=void 0,h=a;var T=i,q=S;try{q()}catch(z){Fe(h,T,z)}}}l=l.next}while(l!==f)}}catch(z){Fe(a,a.return,z)}}function ly(r){var a=r.updateQueue;if(a!==null){var i=r.stateNode;try{Jm(a,i)}catch(l){Fe(r,r.return,l)}}}function cy(r,a,i){i.props=Ca(r.type,r.memoizedProps),i.state=r.memoizedState;
vendor: 16,179 bytes, line 9
9try{i.componentWillUnmount()}catch(l){Fe(r,a,l)}}function Oi(r,a){try{var i=r.ref;if(i!==null){switch(r.tag){case 26:case 27:case 5:var l=r.stateNode;break;case 30:l=r.stateNode;break;default:l=r.stateNode}typeof i=="function"?r.refCleanup=i(l):i.current=l}}catch(h){Fe(r,a,h)}}function Tr(r,a){var i=r.ref,l=r.refCleanup;if(i!==null)if(typeof l=="function")try{l()}catch(h){Fe(r,a,h)}finally{r.refCleanup=null,r=r.alternate,r!=null&&(r.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(h){Fe(r,a,h)}else i.current=null}function uy(r){var a=r.type,i=r.memoizedProps,l=r.stateNode;try{e:switch(a){case"button":case"input":case"select":case"textarea":i.autoFocus&&l.focus();break e;case"img":i.src?l.src=i.src:i.srcSet&&(l.srcset=i.srcSet)}}catch(h){Fe(r,r.return,h)}}function Bd(r,a,i){try{var l=r.stateNode;jk(l,r.type,i,a),l[Ct]=a}catch(h){Fe(r,r.return,h)}}function dy(r){return r.tag===5||r.tag===3||r.tag===26||r.tag===27&&jn(r.type)||r.tag===4}function zd(r){e:for(;;){for(;r.sibling===null;){if(r.return===null||dy(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.tag===27&&jn(r.type)||r.flags&2||r.child===null||r.tag===4)continue e;r.child.return=r,r=r.child}if(!(r.flags&2))return r.stateNode}}function Vd(r,a,i){var l=r.tag;if(l===5||l===6)r=r.stateNode,a?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(r,a):(a=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,a.appendChild(r),i=i._reactRootContainer,i!=null||a.onclick!==null||(a.onclick=Fr));else if(l!==4&&(l===27&&jn(r.type)&&(i=r.stateNode,a=null),r=r.child,r!==null))for(Vd(r,a,i),r=r.sibling;r!==null;)Vd(r,a,i),r=r.sibling}function Cl(r,a,i){var l=r.tag;if(l===5||l===6)r=r.stateNode,a?i.insertBefore(r,a):i.appendChild(r);else if(l!==4&&(l===27&&jn(r.type)&&(i=r.stateNode),r=r.child,r!==null))for(Cl(r,a,i),r=r.sibling;r!==null;)Cl(r,a,i),r=r.sibling}function hy(r){var a=r.stateNode,i=r.memoizedProps;try{for(var l=r.type,h=a.attributes;h.length;)a.removeAttributeNode(h[0]);Et(a,l,i),a[bt]=r,a[Ct]=i}catch(f){Fe(r,r.return,f)}}var Qr=!1,lt=!1,Gd=!1,py=typeof WeakSet=="function"?WeakSet:Set,mt=null;function yk(r,a){if(r=r.containerInfo,ph=Ql,r=Dm(r),qu(r)){if("selectionStart"in r)var i={start:r.selectionStart,end:r.selectionEnd};else e:{i=(i=r.ownerDocument)&&i.defaultView||window;var l=i.getSelection&&i.getSelection();if(l&&l.rangeCount!==0){i=l.anchorNode;var h=l.anchorOffset,f=l.focusNode;l=l.focusOffset;try{i.nodeType,f.nodeType}catch{i=null;break e}var v=0,S=-1,T=-1,q=0,z=0,Y=r,M=null;t:for(;;){for(var U;Y!==i||h!==0&&Y.nodeType!==3||(S=v+h),Y!==f||l!==0&&Y.nodeType!==3||(T=v+l),Y.nodeType===3&&(v+=Y.nodeValue.length),(U=Y.firstChild)!==null;)M=Y,Y=U;for(;;){if(Y===r)break t;if(M===i&&++q===h&&(S=v),M===f&&++z===l&&(T=v),(U=Y.nextSibling)!==null)break;Y=M,M=Y.parentNode}Y=U}i=S===-1||T===-1?null:{start:S,end:T}}else i=null}i=i||{start:0,end:0}}else i=null;for(fh={focusedElem:r,selectionRange:i},Ql=!1,mt=a;mt!==null;)if(a=mt,r=a.child,(a.subtreeFlags&1028)!==0&&r!==null)r.return=a,mt=r;else for(;mt!==null;){switch(a=mt,f=a.alternate,r=a.flags,a.tag){case 0:if((r&4)!==0&&(r=a.updateQueue,r=r!==null?r.events:null,r!==null))for(i=0;i<r.length;i++)h=r[i],h.ref.impl=h.nextImpl;break;case 11:case 15:break;case 1:if((r&1024)!==0&&f!==null){r=void 0,i=a,h=f.memoizedProps,f=f.memoizedState,l=i.stateNode;try{var ie=Ca(i.type,h);r=l.getSnapshotBeforeUpdate(ie,f),l.__reactInternalSnapshotBeforeUpdate=r}catch(be){Fe(i,i.return,be)}}break;case 3:if((r&1024)!==0){if(r=a.stateNode.containerInfo,i=r.nodeType,i===9)yh(r);else if(i===1)switch(r.nodeName){case"HEAD":case"HTML":case"BODY":yh(r);break;default:r.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((r&1024)!==0)throw Error(o(163))}if(r=a.sibling,r!==null){r.return=a.return,mt=r;break}mt=a.return}}function fy(r,a,i){var l=i.flags;switch(i.tag){case 0:case 11:case 15:Zr(r,i),l&4&&Ii(5,i);break;case 1:if(Zr(r,i),l&4)if(r=i.stateNode,a===null)try{r.componentDidMount()}catch(v){Fe(i,i.return,v)}else{var h=Ca(i.type,a.memoizedProps);a=a.memoizedState;try{r.componentDidUpdate(h,a,r.__reactInternalSnapshotBeforeUpdate)}catch(v){Fe(i,i.return,v)}}l&64&&ly(i),l&512&&Oi(i,i.return);break;case 3:if(Zr(r,i),l&64&&(r=i.updateQueue,r!==null)){if(a=null,i.child!==null)switch(i.child.tag){case 27:case 5:a=i.child.stateNode;break;case 1:a=i.child.stateNode}try{Jm(r,a)}catch(v){Fe(i,i.return,v)}}break;case 27:a===null&&l&4&&hy(i);case 26:case 5:Zr(r,i),a===null&&l&4&&uy(i),l&512&&Oi(i,i.return);break;case 12:Zr(r,i);break;case 31:Zr(r,i),l&4&&yy(r,i);break;case 13:Zr(r,i),l&4&&by(r,i),l&64&&(r=i.memoizedState,r!==null&&(r=r.dehydrated,r!==null&&(i=Tk.bind(null,i),Gk(r,i))));break;case 22:if(l=i.memoizedState!==null||Qr,!l){a=a!==null&&a.memoizedState!==null||lt,h=Qr;var f=lt;Qr=l,(lt=a)&&!f?en(r,i,(i.subtreeFlags&8772)!==0):Zr(r,i),Qr=h,lt=f}break;case 30:break;default:Zr(r,i)}}function my(r){var a=r.alternate;a!==null&&(r.alternate=null,my(a)),r.child=null,r.deletions=null,r.sibling=null,r.tag===5&&(a=r.stateNode,a!==null&&Eu(a)),r.stateNode=null,r.return=null,r.dependencies=null,r.memoizedProps=null,r.memoizedState=null,r.pendingProps=null,r.stateNode=null,r.updateQueue=null}var Qe=null,It=!1;function Jr(r,a,i){for(i=i.child;i!==null;)gy(r,a,i),i=i.sibling}function gy(r,a,i){if(Bt&&typeof Bt.onCommitFiberUnmount=="function")try{Bt.onCommitFiberUnmount(ni,i)}catch{}switch(i.tag){case 26:lt||Tr(i,a),Jr(r,a,i),i.memoizedState?i.memoizedState.count--:i.stateNode&&(i=i.stateNode,i.parentNode.removeChild(i));break;case 27:lt||Tr(i,a);var l=Qe,h=It;jn(i.type)&&(Qe=i.stateNode,It=!1),Jr(r,a,i),Ui(i.stateNode),Qe=l,It=h;break;case 5:lt||Tr(i,a);case 6:if(l=Qe,h=It,Qe=null,Jr(r,a,i),Qe=l,It=h,Qe!==null)if(It)try{(Qe.nodeType===9?Qe.body:Qe.nodeName==="HTML"?Qe.ownerDocument.body:Qe).removeChild(i.stateNode)}catch(f){Fe(i,a,f)}else try{Qe.removeChild(i.stateNode)}catch(f){Fe(i,a,f)}break;case 18:Qe!==null&&(It?(r=Qe,lb(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,i.stateNode),Oo(r)):lb(Qe,i.stateNode));break;case 4:l=Qe,h=It,Qe=i.stateNode.containerInfo,It=!0,Jr(r,a,i),Qe=l,It=h;break;case 0:case 11:case 14:case 15:Rn(2,i,a),lt||Rn(4,i,a),Jr(r,a,i);break;case 1:lt||(Tr(i,a),l=i.stateNode,typeof l.componentWillUnmount=="function"&&cy(i,a,l)),Jr(r,a,i);break;case 21:Jr(r,a,i);break;case 22:lt=(l=lt)||i.memoizedState!==null,Jr(r,a,i),lt=l;break;default:Jr(r,a,i)}}function yy(r,a){if(a.memoizedState===null&&(r=a.alternate,r!==null&&(r=r.memoizedState,r!==null))){r=r.dehydrated;try{Oo(r)}catch(i){Fe(a,a.return,i)}}}function by(r,a){if(a.memoizedState===null&&(r=a.alternate,r!==null&&(r=r.memoizedState,r!==null&&(r=r.dehydrated,r!==null))))try{Oo(r)}catch(i){Fe(a,a.return,i)}}function bk(r){switch(r.tag){case 31:case 13:case 19:var a=r.stateNode;return a===null&&(a=r.stateNode=new py),a;case 22:return r=r.stateNode,a=r._retryCache,a===null&&(a=r._retryCache=new py),a;default:throw Error(o(435,r.tag))}}function Rl(r,a){var i=bk(r);a.forEach(function(l){if(!i.has(l)){i.add(l);var h=Lk.bind(null,r,l);l.then(h,h)}})}function Ot(r,a){var i=a.deletions;if(i!==null)for(var l=0;l<i.length;l++){var h=i[l],f=r,v=a,S=v;e:for(;S!==null;){switch(S.tag){case 27:if(jn(S.type)){Qe=S.stateNode,It=!1;break e}break;case 5:Qe=S.stateNode,It=!1;break e;case 3:case 4:Qe=S.stateNode.containerInfo,It=!0;break e}S=S.return}if(Qe===null)throw Error(o(160));gy(f,v,h),Qe=null,It=!1,f=h.alternate,f!==null&&(f.return=null),h.return=null}if(a.subtreeFlags&13886)for(a=a.child;a!==null;)vy(a,r),a=a.sibling}var hr=null;function vy(r,a){var i=r.alternate,l=r.flags;switch(r.tag){case 0:case 11:case 14:case 15:Ot(a,r),$t(r),l&4&&(Rn(3,r,r.return),Ii(3,r),Rn(5,r,r.return));break;case 1:Ot(a,r),$t(r),l&512&&(lt||i===null||Tr(i,i.return)),l&64&&Qr&&(r=r.updateQueue,r!==null&&(l=r.callbacks,l!==null&&(i=r.shared.hiddenCallbacks,r.shared.hiddenCallbacks=i===null?l:i.concat(l))));break;case 26:var h=hr;if(Ot(a,r),$t(r),l&512&&(lt||i===null||Tr(i,i.return)),l&4){var f=i!==null?i.memoizedState:null;if(l=r.memoizedState,i===null)if(l===null)if(r.stateNode===null){e:{l=r.type,i=r.memoizedProps,h=h.ownerDocument||h;t:switch(l){case"title":f=h.getElementsByTagName("title")[0],(!f||f[ii]||f[bt]||f.namespaceURI==="http://www.w3.org/2000/svg"||f.hasAttribute("itemprop"))&&(f=h.createElement(l),h.head.insertBefore(f,h.querySelector("head > title"))),Et(f,l,i),f[bt]=r,ft(f),l=f;break e;case"link":var v=vb("link","href",h).get(l+(i.href||""));if(v){for(var S=0;S<v.length;S++)if(f=v[S],f.getAttribute("href")===(i.href==null||i.href===""?null:i.href)&&f.getAttribute("rel")===(i.rel==null?null:i.rel)&&f.getAttribute("title")===(i.title==null?null:i.title)&&f.getAttribute("crossorigin")===(i.crossOrigin==null?null:i.crossOrigin)){v.splice(S,1);break t}}f=h.createElement(l),Et(f,l,i),h.head.appendChild(f);break;case"meta":if(v=vb("meta","content",h).get(l+(i.content||""))){for(S=0;S<v.length;S++)if(f=v[S],f.getAttribute("content")===(i.content==null?null:""+i.content)&&f.getAttribute("name")===(i.name==null?null:i.name)&&f.getAttribute("property")===(i.property==null?null:i.property)&&f.getAttribute("http-equiv")===(i.httpEquiv==null?null:i.httpEquiv)&&f.getAttribute("charset")===(i.charSet==null?null:i.charSet)){v.splice(S,1);break t}}f=h.createElement(l),Et(f,l,i),h.head.appendChild(f);break;default:throw Error(o(468,l))}f[bt]=r,ft(f),l=f}r.stateNode=l}else wb(h,r.type,r.stateNode);else r.stateNode=bb(h,l,r.memoizedProps);else f!==l?(f===null?i.stateNode!==null&&(i=i.stateNode,i.parentNode.removeChild(i)):f.count--,l===null?wb(h,r.type,r.stateNode):bb(h,l,r.memoizedProps)):l===null&&r.stateNode!==null&&Bd(r,r.memoizedProps,i.memoizedProps)}break;case 27:Ot(a,r),$t(r),l&512&&(lt||i===null||Tr(i,i.return)),i!==null&&l&4&&Bd(r,r.memoizedProps,i.memoizedProps);break;case 5:if(Ot(a,r),$t(r),l&512&&(lt||i===null||Tr(i,i.return)),r.flags&32){h=r.stateNode;try{to(h,"")}catch(ie){Fe(r,r.return,ie)}}l&4&&r.stateNode!=null&&(h=r.memoizedProps,Bd(r,h,i!==null?i.memoizedProps:h)),l&1024&&(Gd=!0);break;case 6:if(Ot(a,r),$t(r),l&4){if(r.stateNode===null)throw Error(o(162));l=r.memoizedProps,i=r.stateNode;try{i.nodeValue=l}catch(ie){Fe(r,r.return,ie)}}break;case 3:if(Wl=null,h=hr,hr=Vl(a.containerInfo),Ot(a,r),hr=h,$t(r),l&4&&i!==null&&i.memoizedState.isDehydrated)try{Oo(a.containerInfo)}catch(ie){Fe(r,r.return,ie)}Gd&&(Gd=!1,wy(r));break;case 4:l=hr,hr=Vl(r.stateNode.containerInfo),Ot(a,r),$t(r),hr=l;break;case 12:Ot(a,r),$t(r);break;case 31:Ot(a,r),$t(r),l&4&&(l=r.updateQueue,l!==null&&(r.updateQueue=null,Rl(r,l)));break;case 13:Ot(a,r),$t(r),r.child.flags&8192&&r.memoizedState!==null!=(i!==null&&i.memoizedState!==null)&&(Ol=Ut()),l&4&&(l=r.updateQueue,l!==null&&(r.updateQueue=null,Rl(r,l)));break;case 22:h=r.memoizedState!==null;var T=i!==null&&i.memoizedState!==null,q=Qr,z=lt;if(Qr=q||h,lt=z||T,Ot(a,r),lt=z,Qr=q,$t(r),l&8192)e:for(a=r.stateNode,a._visibility=h?a._visibility&-2:a._visibility|1,h&&(i===null||T||Qr||lt||Ra(r)),i=null,a=r;;){if(a.tag===5||a.tag===26){if(i===null){T=i=a;try{if(f=T.stateNode,h)v=f.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{S=T.stateNode;var Y=T.memoizedProps.style,M=Y!=null&&Y.hasOwnProperty("display")?Y.display:null;S.style.display=M==null||typeof M=="boolean"?"":(""+M).trim()}}catch(ie){Fe(T,T.return,ie)}}}else if(a.tag===6){if(i===null){T=a;try{T.stateNode.nodeValue=h?"":T.memoizedProps}catch(ie){Fe(T,T.return,ie)}}}else if(a.tag===18){if(i===null){T=a;try{var U=T.stateNode;h?cb(U,!0):cb(T.stateNode,!1)}catch(ie){Fe(T,T.return,ie)}}}else if((a.tag!==22&&a.tag!==23||a.memoizedState===null||a===r)&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===r)break e;for(;a.sibling===null;){if(a.return===null||a.return===r)break e;i===a&&(i=null),a=a.return}i===a&&(i=null),a.sibling.return=a.return,a=a.sibling}l&4&&(l=r.updateQueue,l!==null&&(i=l.retryQueue,i!==null&&(l.retryQueue=null,Rl(r,i))));break;case 19:Ot(a,r),$t(r),l&4&&(l=r.updateQueue,l!==null&&(r.updateQueue=null,Rl(r,l)));break;case 30:break;case 21:break;default:Ot(a,r),$t(r)}}function $t(r){var a=r.flags;if(a&2){try{for(var i,l=r.return;l!==null;){if(dy(l)){i=l;break}l=l.return}if(i==null)throw Error(o(160));switch(i.tag){case 27:var h=i.stateNode,f=zd(r);Cl(r,f,h);break;case 5:var v=i.stateNode;i.flags&32&&(to(v,""),i.flags&=-33);var S=zd(r);Cl(r,S,v);break;case 3:case 4:var T=i.stateNode.containerInfo,q=zd(r);Vd(r,q,T);break;default:throw Error(o(161))}}catch(z){Fe(r,r.return,z)}r.flags&=-3}a&4096&&(r.flags&=-4097)}function wy(r){if(r.subtreeFlags&1024)for(r=r.child;r!==null;){var a=r;wy(a),a.tag===5&&a.flags&1024&&a.stateNode.reset(),r=r.sibling}}function Zr(r,a){if(a.subtreeFlags&8772)for(a=a.child;a!==null;)fy(r,a.alternate,a),a=a.sibling}function Ra(r){for(r=r.child;r!==null;){var a=r;switch(a.tag){case 0:case 11:case 14:case 15:Rn(4,a,a.return),Ra(a);break;case 1:Tr(a,a.return);var i=a.stateNode;typeof i.componentWillUnmount=="function"&&cy(a,a.return,i),Ra(a);break;case 27:Ui(a.stateNode);case 26:case 5:Tr(a,a.return),Ra(a);break;case 22:a.memoizedState===null&&Ra(a);break;case 30:Ra(a);break;default:Ra(a)}r=r.sibling}}function en(r,a,i){for(i=i&&(a.subtreeFlags&8772)!==0,a=a.child;a!==null;){var l=a.alternate,h=r,f=a,v=f.flags;switch(f.tag){case 0:case 11:case 15:en(h,f,i),Ii(4,f);break;case 1:if(en(h,f,i),l=f,h=l.stateNode,typeof h.componentDidMount=="function")try{h.componentDidMount()}catch(q){Fe(l,l.return,q)}if(l=f,h=l.updateQueue,h!==null){var S=l.stateNode;try{var T=h.shared.hiddenCallbacks;if(T!==null)for(h.shared.hiddenCallbacks=null,h=0;h<T.length;h++)Qm(T[h],S)}catch(q){Fe(l,l.return,q)}}i&&v&64&&ly(f),Oi(f,f.return);break;case 27:hy(f);case 26:case 5:en(h,f,i),i&&l===null&&v&4&&uy(f),Oi(f,f.return);break;case 12:en(h,f,i);break;case 31:en(h,f,i),i&&v&4&&yy(h,f);break;case 13:en(h,f,i),i&&v&4&&by(h,f);break;case 22:f.memoizedState===null&&en(h,f,i),Oi(f,f.return);break;case 30:break;default:en(h,f,i)}a=a.sibling}}function Wd(r,a){var i=null;r!==null&&r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(i=r.memoizedState.cachePool.pool),r=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(r=a.memoizedState.cachePool.pool),r!==i&&(r!=null&&r.refCount++,i!=null&&vi(i))}function Xd(r,a){r=null,a.alternate!==null&&(r=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==r&&(a.refCount++,r!=null&&vi(r))}function pr(r,a,i,l){if(a.subtreeFlags&10256)for(a=a.child;a!==null;)xy(r,a,i,l),a=a.sibling}function xy(r,a,i,l){var h=a.flags;switch(a.tag){case 0:case 11:case 15:pr(r,a,i,l),h&2048&&Ii(9,a);break;case 1:pr(r,a,i,l);break;case 3:pr(r,a,i,l),h&2048&&(r=null,a.alternate!==null&&(r=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==r&&(a.refCount++,r!=null&&vi(r)));break;case 12:if(h&2048){pr(r,a,i,l),r=a.stateNode;try{var f=a.memoizedProps,v=f.id,S=f.onPostCommit;typeof S=="function"&&S(v,a.alternate===null?"mount":"update",r.passiveEffectDuration,-0)}catch(T){Fe(a,a.return,T)}}else pr(r,a,i,l);break;case 31:pr(r,a,i,l);break;case 13:pr(r,a,i,l);break;case 23:break;case 22:f=a.stateNode,v=a.alternate,a.memoizedState!==null?f._visibility&2?pr(r,a,i,l):$i(r,a):f._visibility&2?pr(r,a,i,l):(f._visibility|=2,Eo(r,a,i,l,(a.subtreeFlags&10256)!==0||!1)),h&2048&&Wd(v,a);break;case 24:pr(r,a,i,l),h&2048&&Xd(a.alternate,a);break;default:pr(r,a,i,l)}}function Eo(r,a,i,l,h){for(h=h&&((a.subtreeFlags&10256)!==0||!1),a=a.child;a!==null;){var f=r,v=a,S=i,T=l,q=v.flags;switch(v.tag){case 0:case 11:case 15:Eo(f,v,S,T,h),Ii(8,v);break;case 23:break;case 22:var z=v.stateNode;v.memoizedState!==null?z._visibility&2?Eo(f,v,S,T,h):$i(f,v):(z._visibility|=2,Eo(f,v,S,T,h)),h&&q&2048&&Wd(v.alternate,v);break;case 24:Eo(f,v,S,T,h),h&&q&2048&&Xd(v.alternate,v);break;default:Eo(f,v,S,T,h)}a=a.sibling}}function $i(r,a){if(a.subtreeFlags&10256)for(a=a.child;a!==null;){var i=r,l=a,h=l.flags;switch(l.tag){case 22:$i(i,l),h&2048&&Wd(l.alternate,l);break;case 24:$i(i,l),h&2048&&Xd(l.alternate,l);break;default:$i(i,l)}a=a.sibling}}var Ni=8192;
vendor: 16,864 bytes, line 9
9function So(r,a,i){if(r.subtreeFlags&Ni)for(r=r.child;r!==null;)Ey(r,a,i),r=r.sibling}function Ey(r,a,i){switch(r.tag){case 26:So(r,a,i),r.flags&Ni&&r.memoizedState!==null&&aD(i,hr,r.memoizedState,r.memoizedProps);break;case 5:So(r,a,i);break;case 3:case 4:var l=hr;hr=Vl(r.stateNode.containerInfo),So(r,a,i),hr=l;break;case 22:r.memoizedState===null&&(l=r.alternate,l!==null&&l.memoizedState!==null?(l=Ni,Ni=16777216,So(r,a,i),Ni=l):So(r,a,i));break;default:So(r,a,i)}}function Sy(r){var a=r.alternate;if(a!==null&&(r=a.child,r!==null)){a.child=null;do a=r.sibling,r.sibling=null,r=a;while(r!==null)}}function Hi(r){var a=r.deletions;if((r.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var l=a[i];mt=l,Dy(l,r)}Sy(r)}if(r.subtreeFlags&10256)for(r=r.child;r!==null;)ky(r),r=r.sibling}function ky(r){switch(r.tag){case 0:case 11:case 15:Hi(r),r.flags&2048&&Rn(9,r,r.return);break;case 3:Hi(r);break;case 12:Hi(r);break;case 22:var a=r.stateNode;r.memoizedState!==null&&a._visibility&2&&(r.return===null||r.return.tag!==13)?(a._visibility&=-3,Il(r)):Hi(r);break;default:Hi(r)}}function Il(r){var a=r.deletions;if((r.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var l=a[i];mt=l,Dy(l,r)}Sy(r)}for(r=r.child;r!==null;){switch(a=r,a.tag){case 0:case 11:case 15:Rn(8,a,a.return),Il(a);break;case 22:i=a.stateNode,i._visibility&2&&(i._visibility&=-3,Il(a));break;default:Il(a)}r=r.sibling}}function Dy(r,a){for(;mt!==null;){var i=mt;switch(i.tag){case 0:case 11:case 15:Rn(8,i,a);break;case 23:case 22:if(i.memoizedState!==null&&i.memoizedState.cachePool!==null){var l=i.memoizedState.cachePool.pool;l!=null&&l.refCount++}break;case 24:vi(i.memoizedState.cache)}if(l=i.child,l!==null)l.return=i,mt=l;else e:for(i=r;mt!==null;){l=mt;var h=l.sibling,f=l.return;if(my(l),l===i){mt=null;break e}if(h!==null){h.return=f,mt=h;break e}mt=f}}}var vk={getCacheForType:function(r){var a=wt(ot),i=a.data.get(r);return i===void 0&&(i=r(),a.data.set(r,i)),i},cacheSignal:function(){return wt(ot).controller.signal}},wk=typeof WeakMap=="function"?WeakMap:Map,je=0,Ve=null,Le=null,Ce=0,Me=0,Yt=null,In=!1,ko=!1,Yd=!1,tn=0,Ze=0,On=0,Ia=0,Kd=0,Kt=0,Do=0,Pi=null,Nt=null,Qd=!1,Ol=0,Ty=0,$l=1/0,Nl=null,$n=null,ht=0,Nn=null,To=null,rn=0,Jd=0,Zd=null,Ly=null,ji=0,eh=null;function Qt(){return(je&2)!==0&&Ce!==0?Ce&-Ce:F.T!==null?ih():Bf()}function Ay(){if(Kt===0)if((Ce&536870912)===0||Ie){var r=Bs;Bs<<=1,(Bs&3932160)===0&&(Bs=262144),Kt=r}else Kt=536870912;return r=Wt.current,r!==null&&(r.flags|=32),Kt}function Ht(r,a,i){(r===Ve&&(Me===2||Me===9)||r.cancelPendingCommit!==null)&&(Lo(r,0),Hn(r,Ce,Kt,!1)),oi(r,i),((je&2)===0||r!==Ve)&&(r===Ve&&((je&2)===0&&(Ia|=i),Ze===4&&Hn(r,Ce,Kt,!1)),Lr(r))}function _y(r,a,i){if((je&6)!==0)throw Error(o(327));var l=!i&&(a&127)===0&&(a&r.expiredLanes)===0||ai(r,a),h=l?Sk(r,a):rh(r,a,!0),f=l;do{if(h===0){ko&&!l&&Hn(r,a,0,!1);break}else{if(i=r.current.alternate,f&&!xk(i)){h=rh(r,a,!1),f=!1;continue}if(h===2){if(f=a,r.errorRecoveryDisabledLanes&f)var v=0;else v=r.pendingLanes&-536870913,v=v!==0?v:v&536870912?536870912:0;if(v!==0){a=v;e:{var S=r;h=Pi;var T=S.current.memoizedState.isDehydrated;if(T&&(Lo(S,v).flags|=256),v=rh(S,v,!1),v!==2){if(Yd&&!T){S.errorRecoveryDisabledLanes|=f,Ia|=f,h=4;break e}f=Nt,Nt=h,f!==null&&(Nt===null?Nt=f:Nt.push.apply(Nt,f))}h=v}if(f=!1,h!==2)continue}}if(h===1){Lo(r,0),Hn(r,a,0,!0);break}e:{switch(l=r,f=h,f){case 0:case 1:throw Error(o(345));case 4:if((a&4194048)!==a)break;case 6:Hn(l,a,Kt,!In);break e;case 2:Nt=null;break;case 3:case 5:break;default:throw Error(o(329))}if((a&62914560)===a&&(h=Ol+300-Ut(),10<h)){if(Hn(l,a,Kt,!In),Vs(l,0,!0)!==0)break e;rn=a,l.timeoutHandle=ib(Cy.bind(null,l,i,Nt,Nl,Qd,a,Kt,Ia,Do,In,f,"Throttled",-0,0),h);break e}Cy(l,i,Nt,Nl,Qd,a,Kt,Ia,Do,In,f,null,-0,0)}}break}while(!0);Lr(r)}function Cy(r,a,i,l,h,f,v,S,T,q,z,Y,M,U){if(r.timeoutHandle=-1,Y=a.subtreeFlags,Y&8192||(Y&16785408)===16785408){Y={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Fr},Ey(a,f,Y);var ie=(f&62914560)===f?Ol-Ut():(f&4194048)===f?Ty-Ut():0;if(ie=oD(Y,ie),ie!==null){rn=f,r.cancelPendingCommit=ie(jy.bind(null,r,a,f,i,l,h,v,S,T,z,Y,null,M,U)),Hn(r,f,v,!q);return}}jy(r,a,f,i,l,h,v,S,T)}function xk(r){for(var a=r;;){var i=a.tag;if((i===0||i===11||i===15)&&a.flags&16384&&(i=a.updateQueue,i!==null&&(i=i.stores,i!==null)))for(var l=0;l<i.length;l++){var h=i[l],f=h.getSnapshot;h=h.value;try{if(!Vt(f(),h))return!1}catch{return!1}}if(i=a.child,a.subtreeFlags&16384&&i!==null)i.return=a,a=i;else{if(a===r)break;for(;a.sibling===null;){if(a.return===null||a.return===r)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function Hn(r,a,i,l){a&=~Kd,a&=~Ia,r.suspendedLanes|=a,r.pingedLanes&=~a,l&&(r.warmLanes|=a),l=r.expirationTimes;for(var h=a;0<h;){var f=31-zt(h),v=1<<f;l[f]=-1,h&=~v}i!==0&&Mf(r,i,a)}function Hl(){return(je&6)===0?(qi(0),!1):!0}function th(){if(Le!==null){if(Me===0)var r=Le.return;else r=Le,Vr=Sa=null,yd(r),yo=null,xi=0,r=Le;for(;r!==null;)sy(r.alternate,r),r=r.return;Le=null}}function Lo(r,a){var i=r.timeoutHandle;i!==-1&&(r.timeoutHandle=-1,Fk(i)),i=r.cancelPendingCommit,i!==null&&(r.cancelPendingCommit=null,i()),rn=0,th(),Ve=r,Le=i=Br(r.current,null),Ce=a,Me=0,Yt=null,In=!1,ko=ai(r,a),Yd=!1,Do=Kt=Kd=Ia=On=Ze=0,Nt=Pi=null,Qd=!1,(a&8)!==0&&(a|=a&32);var l=r.entangledLanes;if(l!==0)for(r=r.entanglements,l&=a;0<l;){var h=31-zt(l),f=1<<h;a|=r[h],l&=~f}return tn=a,nl(),i}function Ry(r,a){Se=null,F.H=_i,a===go||a===dl?(a=Wm(),Me=3):a===od?(a=Wm(),Me=4):Me=a===Od?8:a!==null&&typeof a=="object"&&typeof a.then=="function"?6:1,Yt=a,Le===null&&(Ze=1,Dl(r,rr(a,r.current)))}function Iy(){var r=Wt.current;return r===null?!0:(Ce&4194048)===Ce?ir===null:(Ce&62914560)===Ce||(Ce&536870912)!==0?r===ir:!1}function Oy(){var r=F.H;return F.H=_i,r===null?_i:r}function $y(){var r=F.A;return F.A=vk,r}function Pl(){Ze=4,In||(Ce&4194048)!==Ce&&Wt.current!==null||(ko=!0),(On&134217727)===0&&(Ia&134217727)===0||Ve===null||Hn(Ve,Ce,Kt,!1)}function rh(r,a,i){var l=je;je|=2;var h=Oy(),f=$y();(Ve!==r||Ce!==a)&&(Nl=null,Lo(r,a)),a=!1;var v=Ze;e:do try{if(Me!==0&&Le!==null){var S=Le,T=Yt;switch(Me){case 8:th(),v=6;break e;case 3:case 2:case 9:case 6:Wt.current===null&&(a=!0);var q=Me;if(Me=0,Yt=null,Ao(r,S,T,q),i&&ko){v=0;break e}break;default:q=Me,Me=0,Yt=null,Ao(r,S,T,q)}}Ek(),v=Ze;break}catch(z){Ry(r,z)}while(!0);return a&&r.shellSuspendCounter++,Vr=Sa=null,je=l,F.H=h,F.A=f,Le===null&&(Ve=null,Ce=0,nl()),v}function Ek(){for(;Le!==null;)Ny(Le)}function Sk(r,a){var i=je;je|=2;var l=Oy(),h=$y();Ve!==r||Ce!==a?(Nl=null,$l=Ut()+500,Lo(r,a)):ko=ai(r,a);e:do try{if(Me!==0&&Le!==null){a=Le;var f=Yt;t:switch(Me){case 1:Me=0,Yt=null,Ao(r,a,f,1);break;case 2:case 9:if(Vm(f)){Me=0,Yt=null,Hy(a);break}a=function(){Me!==2&&Me!==9||Ve!==r||(Me=7),Lr(r)},f.then(a,a);break e;case 3:Me=7;break e;case 4:Me=5;break e;case 7:Vm(f)?(Me=0,Yt=null,Hy(a)):(Me=0,Yt=null,Ao(r,a,f,7));break;case 5:var v=null;switch(Le.tag){case 26:v=Le.memoizedState;case 5:case 27:var S=Le;if(v?xb(v):S.stateNode.complete){Me=0,Yt=null;var T=S.sibling;if(T!==null)Le=T;else{var q=S.return;q!==null?(Le=q,jl(q)):Le=null}break t}}Me=0,Yt=null,Ao(r,a,f,5);break;case 6:Me=0,Yt=null,Ao(r,a,f,6);break;case 8:th(),Ze=6;break e;default:throw Error(o(462))}}kk();break}catch(z){Ry(r,z)}while(!0);return Vr=Sa=null,F.H=l,F.A=h,je=i,Le!==null?0:(Ve=null,Ce=0,nl(),Ze)}function kk(){for(;Le!==null&&!WE();)Ny(Le)}function Ny(r){var a=oy(r.alternate,r,tn);r.memoizedProps=r.pendingProps,a===null?jl(r):Le=a}function Hy(r){var a=r,i=a.alternate;switch(a.tag){case 15:case 0:a=Zg(i,a,a.pendingProps,a.type,void 0,Ce);break;case 11:a=Zg(i,a,a.pendingProps,a.type.render,a.ref,Ce);break;case 5:yd(a);default:sy(i,a),a=Le=$m(a,tn),a=oy(i,a,tn)}r.memoizedProps=r.pendingProps,a===null?jl(r):Le=a}function Ao(r,a,i,l){Vr=Sa=null,yd(a),yo=null,xi=0;var h=a.return;try{if(hk(r,h,a,i,Ce)){Ze=1,Dl(r,rr(i,r.current)),Le=null;return}}catch(f){if(h!==null)throw Le=h,f;Ze=1,Dl(r,rr(i,r.current)),Le=null;return}a.flags&32768?(Ie||l===1?r=!0:ko||(Ce&536870912)!==0?r=!1:(In=r=!0,(l===2||l===9||l===3||l===6)&&(l=Wt.current,l!==null&&l.tag===13&&(l.flags|=16384))),Py(a,r)):jl(a)}function jl(r){var a=r;do{if((a.flags&32768)!==0){Py(a,In);return}r=a.return;var i=mk(a.alternate,a,tn);if(i!==null){Le=i;return}if(a=a.sibling,a!==null){Le=a;return}Le=a=r}while(a!==null);Ze===0&&(Ze=5)}function Py(r,a){do{var i=gk(r.alternate,r);if(i!==null){i.flags&=32767,Le=i;return}if(i=r.return,i!==null&&(i.flags|=32768,i.subtreeFlags=0,i.deletions=null),!a&&(r=r.sibling,r!==null)){Le=r;return}Le=r=i}while(r!==null);Ze=6,Le=null}function jy(r,a,i,l,h,f,v,S,T){r.cancelPendingCommit=null;do ql();while(ht!==0);if((je&6)!==0)throw Error(o(327));if(a!==null){if(a===r.current)throw Error(o(177));if(f=a.lanes|a.childLanes,f|=zu,nS(r,i,f,v,S,T),r===Ve&&(Le=Ve=null,Ce=0),To=a,Nn=r,rn=i,Jd=f,Zd=h,Ly=l,(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?(r.callbackNode=null,r.callbackPriority=0,Ak(Fs,function(){return By(),null})):(r.callbackNode=null,r.callbackPriority=0),l=(a.flags&13878)!==0,(a.subtreeFlags&13878)!==0||l){l=F.T,F.T=null,h=te.p,te.p=2,v=je,je|=4;try{yk(r,a,i)}finally{je=v,te.p=h,F.T=l}}ht=1,qy(),My(),Fy()}}function qy(){if(ht===1){ht=0;var r=Nn,a=To,i=(a.flags&13878)!==0;if((a.subtreeFlags&13878)!==0||i){i=F.T,F.T=null;var l=te.p;te.p=2;var h=je;je|=4;try{vy(a,r);var f=fh,v=Dm(r.containerInfo),S=f.focusedElem,T=f.selectionRange;if(v!==S&&S&&S.ownerDocument&&km(S.ownerDocument.documentElement,S)){if(T!==null&&qu(S)){var q=T.start,z=T.end;if(z===void 0&&(z=q),"selectionStart"in S)S.selectionStart=q,S.selectionEnd=Math.min(z,S.value.length);else{var Y=S.ownerDocument||document,M=Y&&Y.defaultView||window;if(M.getSelection){var U=M.getSelection(),ie=S.textContent.length,be=Math.min(T.start,ie),ze=T.end===void 0?be:Math.min(T.end,ie);!U.extend&&be>ze&&(v=ze,ze=be,be=v);var H=Sm(S,be),I=Sm(S,ze);if(H&&I&&(U.rangeCount!==1||U.anchorNode!==H.node||U.anchorOffset!==H.offset||U.focusNode!==I.node||U.focusOffset!==I.offset)){var j=Y.createRange();j.setStart(H.node,H.offset),U.removeAllRanges(),be>ze?(U.addRange(j),U.extend(I.node,I.offset)):(j.setEnd(I.node,I.offset),U.addRange(j))}}}}for(Y=[],U=S;U=U.parentNode;)U.nodeType===1&&Y.push({element:U,left:U.scrollLeft,top:U.scrollTop});for(typeof S.focus=="function"&&S.focus(),S=0;S<Y.length;S++){var G=Y[S];G.element.scrollLeft=G.left,G.element.scrollTop=G.top}}Ql=!!ph,fh=ph=null}finally{je=h,te.p=l,F.T=i}}r.current=a,ht=2}}function My(){if(ht===2){ht=0;var r=Nn,a=To,i=(a.flags&8772)!==0;if((a.subtreeFlags&8772)!==0||i){i=F.T,F.T=null;var l=te.p;te.p=2;var h=je;je|=4;try{fy(r,a.alternate,a)}finally{je=h,te.p=l,F.T=i}}ht=3}}function Fy(){if(ht===4||ht===3){ht=0,XE();var r=Nn,a=To,i=rn,l=Ly;(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?ht=5:(ht=0,To=Nn=null,Uy(r,r.pendingLanes));var h=r.pendingLanes;if(h===0&&($n=null),wu(i),a=a.stateNode,Bt&&typeof Bt.onCommitFiberRoot=="function")try{Bt.onCommitFiberRoot(ni,a,void 0,(a.current.flags&128)===128)}catch{}if(l!==null){a=F.T,h=te.p,te.p=2,F.T=null;try{for(var f=r.onRecoverableError,v=0;v<l.length;v++){var S=l[v];f(S.value,{componentStack:S.stack})}}finally{F.T=a,te.p=h}}(rn&3)!==0&&ql(),Lr(r),h=r.pendingLanes,(i&261930)!==0&&(h&42)!==0?r===eh?ji++:(ji=0,eh=r):ji=0,qi(0)}}function Uy(r,a){(r.pooledCacheLanes&=a)===0&&(a=r.pooledCache,a!=null&&(r.pooledCache=null,vi(a)))}function ql(){return qy(),My(),Fy(),By()}function By(){if(ht!==5)return!1;var r=Nn,a=Jd;Jd=0;var i=wu(rn),l=F.T,h=te.p;try{te.p=32>i?32:i,F.T=null,i=Zd,Zd=null;var f=Nn,v=rn;if(ht=0,To=Nn=null,rn=0,(je&6)!==0)throw Error(o(331));var S=je;if(je|=4,ky(f.current),xy(f,f.current,v,i),je=S,qi(0,!1),Bt&&typeof Bt.onPostCommitFiberRoot=="function")try{Bt.onPostCommitFiberRoot(ni,f)}catch{}return!0}finally{te.p=h,F.T=l,Uy(r,a)}}function zy(r,a,i){a=rr(i,a),a=Id(r.stateNode,a,2),r=An(r,a,2),r!==null&&(oi(r,2),Lr(r))}function Fe(r,a,i){if(r.tag===3)zy(r,r,i);else for(;a!==null;){if(a.tag===3){zy(a,r,i);break}else if(a.tag===1){var l=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&($n===null||!$n.has(l))){r=rr(i,r),i=Vg(2),l=An(a,i,2),l!==null&&(Gg(i,l,a,r),oi(l,2),Lr(l));break}}a=a.return}}function nh(r,a,i){var l=r.pingCache;if(l===null){l=r.pingCache=new wk;var h=new Set;l.set(a,h)}else h=l.get(a),h===void 0&&(h=new Set,l.set(a,h));h.has(i)||(Yd=!0,h.add(i),r=Dk.bind(null,r,a,i),a.then(r,r))}function Dk(r,a,i){var l=r.pingCache;l!==null&&l.delete(a),r.pingedLanes|=r.suspendedLanes&i,r.warmLanes&=~i,Ve===r&&(Ce&i)===i&&(Ze===4||Ze===3&&(Ce&62914560)===Ce&&300>Ut()-Ol?(je&2)===0&&Lo(r,0):Kd|=i,Do===Ce&&(Do=0)),Lr(r)}function Vy(r,a){a===0&&(a=qf()),r=wa(r,a),r!==null&&(oi(r,a),Lr(r))}function Tk(r){var a=r.memoizedState,i=0;a!==null&&(i=a.retryLane),Vy(r,i)}function Lk(r,a){var i=0;switch(r.tag){case 31:case 13:var l=r.stateNode,h=r.memoizedState;h!==null&&(i=h.retryLane);break;case 19:l=r.stateNode;break;case 22:l=r.stateNode._retryCache;break;default:throw Error(o(314))}l!==null&&l.delete(a),Vy(r,i)}function Ak(r,a){return gu(r,a)}var Ml=null,_o=null,ah=!1,Fl=!1,oh=!1,Pn=0;function Lr(r){r!==_o&&r.next===null&&(_o===null?Ml=_o=r:_o=_o.next=r),Fl=!0,ah||(ah=!0,Ck())}function qi(r,a){if(!oh&&Fl){oh=!0;do for(var i=!1,l=Ml;l!==null;){if(r!==0){var h=l.pendingLanes;if(h===0)var f=0;else{var v=l.suspendedLanes,S=l.pingedLanes;f=(1<<31-zt(42|r)+1)-1,f&=h&~(v&~S),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(i=!0,Yy(l,f))}else f=Ce,f=Vs(l,l===Ve?f:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(f&3)===0||ai(l,f)||(i=!0,Yy(l,f));l=l.next}while(i);oh=!1}}function _k(){Gy()}function Gy(){Fl=ah=!1;var r=0;Pn!==0&&Mk()&&(r=Pn);for(var a=Ut(),i=null,l=Ml;l!==null;){var h=l.next,f=Wy(l,a);f===0?(l.next=null,i===null?Ml=h:i.next=h,h===null&&(_o=i)):(i=l,(r!==0||(f&3)!==0)&&(Fl=!0)),l=h}ht!==0&&ht!==5||qi(r),Pn!==0&&(Pn=0)}function Wy(r,a){for(var i=r.suspendedLanes,l=r.pingedLanes,h=r.expirationTimes,f=r.pendingLanes&-62914561;0<f;){var v=31-zt(f),S=1<<v,T=h[v];T===-1?((S&i)===0||(S&l)!==0)&&(h[v]=rS(S,a)):T<=a&&(r.expiredLanes|=S),f&=~S}if(a=Ve,i=Ce,i=Vs(r,r===a?i:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),l=r.callbackNode,i===0||r===a&&(Me===2||Me===9)||r.cancelPendingCommit!==null)return l!==null&&l!==null&&yu(l),r.callbackNode=null,r.callbackPriority=0;if((i&3)===0||ai(r,i)){if(a=i&-i,a===r.callbackPriority)return a;switch(l!==null&&yu(l),wu(i)){case 2:case 8:i=Pf;break;case 32:i=Fs;break;case 268435456:i=jf;break;default:i=Fs}return l=Xy.bind(null,r),i=gu(i,l),r.callbackPriority=a,r.callbackNode=i,a}return l!==null&&l!==null&&yu(l),r.callbackPriority=2,r.callbackNode=null,2}function Xy(r,a){if(ht!==0&&ht!==5)return r.callbackNode=null,r.callbackPriority=0,null;var i=r.callbackNode;if(ql()&&r.callbackNode!==i)return null;var l=Ce;return l=Vs(r,r===Ve?l:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),l===0?null:(_y(r,l,a),Wy(r,Ut()),r.callbackNode!=null&&r.callbackNode===i?Xy.bind(null,r):null)}function Yy(r,a){if(ql())return null;_y(r,a,!0)}function Ck(){Uk(function(){(je&6)!==0?gu(Hf,_k):Gy()})}function ih(){if(Pn===0){var r=fo;r===0&&(r=Us,Us<<=1,(Us&261888)===0&&(Us=256)),Pn=r}return Pn}function Ky(r){return r==null||typeof r=="symbol"||typeof r=="boolean"?null:typeof r=="function"?r:Ys(""+r)}function Qy(r,a){var i=a.ownerDocument.createElement("input");return i.name=a.name,i.value=a.value,r.id&&i.setAttribute("form",r.id),a.parentNode.insertBefore(i,a),r=new FormData(r),i.parentNode.removeChild(i),r}function Rk(r,a,i,l,h){if(a==="submit"&&i&&i.stateNode===h){var f=Ky((h[Ct]||null).action),v=l.submitter;v&&(a=(a=v[Ct]||null)?Ky(a.formAction):v.getAttribute("formAction"),a!==null&&(f=a,v=null));var S=new Zs("action","action",null,l,h);r.push({event:S,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(Pn!==0){var T=v?Qy(h,v):new FormData(h);Td(i,{pending:!0,data:T,method:h.method,action:f},null,T)}}else typeof f=="function"&&(S.preventDefault(),T=v?Qy(h,v):new FormData(h),Td(i,{pending:!0,data:T,method:h.method,action:f},f,T))},currentTarget:h}]})}}for(var sh=0;sh<Bu.length;sh++){var lh=Bu[sh],Ik=lh.toLowerCase(),Ok=lh[0].toUpperCase()+lh.slice(1);dr(Ik,"on"+Ok)}dr(Am,"onAnimationEnd"),dr(_m,"onAnimationIteration"),dr(Cm,"onAnimationStart"),dr("dblclick","onDoubleClick"),dr("focusin","onFocus"),dr("focusout","onBlur"),dr(YS,"onTransitionRun"),dr(KS,"onTransitionStart"),dr(QS,"onTransitionCancel"),dr(Rm,"onTransitionEnd"),Za("onMouseEnter",["mouseout","mouseover"]),Za("onMouseLeave",["mouseout","mouseover"]),Za("onPointerEnter",["pointerout","pointerover"]),Za("onPointerLeave",["pointerout","pointerover"]),ga("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ga("onSelect","focusout contextmenu dragend focu
9sin keydown keyup mousedown mouseup selectionchange".split(" ")),ga("onBeforeInput",["compositionend","keypress","textInput","paste"]),ga("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ga("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ga("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Mi="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(" "),$k=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Mi));function Jy(r,a){a=(a&4)!==0;for(var i=0;i<r.length;i++){var l=r[i],h=l.event;l=l.listeners;e:{var f=void 0;if(a)for(var v=l.length-1;0<=v;v--){var S=l[v],T=S.instance,q=S.currentTarget;if(S=S.listener,T!==f&&h.isPropagationStopped())break e;f=S,h.currentTarget=q;try{f(h)}catch(z){rl(z)}h.currentTarget=null,f=T}else for(v=0;v<l.length;v++){if(S=l[v],T=S.instance,q=S.currentTarget,S=S.listener,T!==f&&h.isPropagationStopped())break e;f=S,h.currentTarget=q;try{f(h)}catch(z){rl(z)}h.currentTarget=null,f=T}}}}function Ae(r,a){var i=a[xu];i===void 0&&(i=a[xu]=new Set);var l=r+"__bubble";i.has(l)||(Zy(a,r,2,!1),i.add(l))}function ch(r,a,i){var l=0;a&&(l|=4),Zy(i,r,l,a)}var Ul="_reactListening"+Math.random().toString(36).slice(2);function uh(r){if(!r[Ul]){r[Ul]=!0,Gf.forEach(function(i){i!=="selectionchange"&&($k.has(i)||ch(i,!1,r),ch(i,!0,r))});var a=r.nodeType===9?r:r.ownerDocument;a===null||a[Ul]||(a[Ul]=!0,ch("selectionchange",!1,a))}}function Zy(r,a,i,l){switch(Ab(a)){case 2:var h=lD;break;case 8:h=cD;break;default:h=Dh}i=h.bind(null,a,i,r),h=void 0,!Cu||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(h=!0),l?h!==void 0?r.addEventListener(a,i,{capture:!0,passive:h}):r.addEventListener(a,i,!0):h!==void 0?r.addEventListener(a,i,{passive:h}):r.addEventListener(a,i,!1)}function dh(r,a,i,l,h){var f=l;if((a&1)===0&&(a&2)===0&&l!==null)e:for(;;){if(l===null)return;var v=l.tag;if(v===3||v===4){var S=l.stateNode.containerInfo;if(S===h)break;if(v===4)for(v=l.return;v!==null;){var T=v.tag;if((T===3||T===4)&&v.stateNode.containerInfo===h)return;v=v.return}for(;S!==null;){if(v=Ka(S),v===null)return;if(T=v.tag,T===5||T===6||T===26||T===27){l=f=v;continue e}S=S.parentNode}}l=l.return}am(function(){var q=f,z=Au(i),Y=[];e:{var M=Im.get(r);if(M!==void 0){var U=Zs,ie=r;switch(r){case"keypress":if(Qs(i)===0)break e;case"keydown":case"keyup":U=LS;break;case"focusin":ie="focus",U=$u;break;case"focusout":ie="blur",U=$u;break;case"beforeblur":case"afterblur":U=$u;break;case"click":if(i.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":U=sm;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":U=mS;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":U=CS;break;case Am:case _m:case Cm:U=bS;break;case Rm:U=IS;break;case"scroll":case"scrollend":U=pS;break;case"wheel":U=$S;break;case"copy":case"cut":case"paste":U=wS;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":U=cm;break;case"toggle":case"beforetoggle":U=HS}var be=(a&4)!==0,ze=!be&&(r==="scroll"||r==="scrollend"),H=be?M!==null?M+"Capture":null:M;be=[];for(var I=q,j;I!==null;){var G=I;if(j=G.stateNode,G=G.tag,G!==5&&G!==26&&G!==27||j===null||H===null||(G=li(I,H),G!=null&&be.push(Fi(I,G,j))),ze)break;I=I.return}0<be.length&&(M=new U(M,ie,null,i,z),Y.push({event:M,listeners:be}))}}if((a&7)===0){e:{if(M=r==="mouseover"||r==="pointerover",U=r==="mouseout"||r==="pointerout",M&&i!==Lu&&(ie=i.relatedTarget||i.fromElement)&&(Ka(ie)||ie[Ya]))break e;if((U||M)&&(M=z.window===z?z:(M=z.ownerDocument)?M.defaultView||M.parentWindow:window,U?(ie=i.relatedTarget||i.toElement,U=q,ie=ie?Ka(ie):null,ie!==null&&(ze=u(ie),be=ie.tag,ie!==ze||be!==5&&be!==27&&be!==6)&&(ie=null)):(U=null,ie=q),U!==ie)){if(be=sm,G="onMouseLeave",H="onMouseEnter",I="mouse",(r==="pointerout"||r==="pointerover")&&(be=cm,G="onPointerLeave",H="onPointerEnter",I="pointer"),ze=U==null?M:si(U),j=ie==null?M:si(ie),M=new be(G,I+"leave",U,i,z),M.target=ze,M.relatedTarget=j,G=null,Ka(z)===q&&(be=new be(H,I+"enter",ie,i,z),be.target=j,be.relatedTarget=ze,G=be),ze=G,U&&ie)t:{for(be=Nk,H=U,I=ie,j=0,G=H;G;G=be(G))j++;G=0;for(var pe=I;pe;pe=be(pe))G++;for(;0<j-G;)H=be(H),j--;for(;0<G-j;)I=be(I),G--;for(;j--;){if(H===I||I!==null&&H===I.alternate){be=H;break t}H=be(H),I=be(I)}be=null}else be=null;U!==null&&eb(Y,M,U,be,!1),ie!==null&&ze!==null&&eb(Y,ze,ie,be,!0)}}
vendor: 5,189 bytes, lines 9-10
9e:{if(M=q?si(q):window,U=M.nodeName&&M.nodeName.toLowerCase(),U==="select"||U==="input"&&M.type==="file")var $e=ym;else if(mm(M))if(bm)$e=GS;else{$e=zS;var ce=BS}else U=M.nodeName,!U||U.toLowerCase()!=="input"||M.type!=="checkbox"&&M.type!=="radio"?q&&Tu(q.elementType)&&($e=ym):$e=VS;if($e&&($e=$e(r,q))){gm(Y,$e,i,z);break e}ce&&ce(r,M,q),r==="focusout"&&q&&M.type==="number"&&q.memoizedProps.value!=null&&Du(M,"number",M.value)}switch(ce=q?si(q):window,r){case"focusin":(mm(ce)||ce.contentEditable==="true")&&(oo=ce,Mu=q,gi=null);break;case"focusout":gi=Mu=oo=null;break;case"mousedown":Fu=!0;break;case"contextmenu":case"mouseup":case"dragend":Fu=!1,Tm(Y,i,z);break;case"selectionchange":if(XS)break;case"keydown":case"keyup":Tm(Y,i,z)}var ke;if(Hu)e:{switch(r){case"compositionstart":var Re="onCompositionStart";break e;case"compositionend":Re="onCompositionEnd";break e;case"compositionupdate":Re="onCompositionUpdate";break e}Re=void 0}else ao?pm(r,i)&&(Re="onCompositionEnd"):r==="keydown"&&i.keyCode===229&&(Re="onCompositionStart");Re&&(um&&i.locale!=="ko"&&(ao||Re!=="onCompositionStart"?Re==="onCompositionEnd"&&ao&&(ke=om()):(xn=z,Ru="value"in xn?xn.value:xn.textContent,ao=!0)),ce=Bl(q,Re),0<ce.length&&(Re=new lm(Re,r,null,i,z),Y.push({event:Re,listeners:ce}),ke?Re.data=ke:(ke=fm(i),ke!==null&&(Re.data=ke)))),(ke=jS?qS(r,i):MS(r,i))&&(Re=Bl(q,"onBeforeInput"),0<Re.length&&(ce=new lm("onBeforeInput","beforeinput",null,i,z),Y.push({event:ce,listeners:Re}),ce.data=ke)),Rk(Y,r,q,i,z)}Jy(Y,a)})}function Fi(r,a,i){return{instance:r,listener:a,currentTarget:i}}function Bl(r,a){for(var i=a+"Capture",l=[];r!==null;){var h=r,f=h.stateNode;if(h=h.tag,h!==5&&h!==26&&h!==27||f===null||(h=li(r,i),h!=null&&l.unshift(Fi(r,h,f)),h=li(r,a),h!=null&&l.push(Fi(r,h,f))),r.tag===3)return l;r=r.return}return[]}function Nk(r){if(r===null)return null;do r=r.return;while(r&&r.tag!==5&&r.tag!==27);return r||null}function eb(r,a,i,l,h){for(var f=a._reactName,v=[];i!==null&&i!==l;){var S=i,T=S.alternate,q=S.stateNode;if(S=S.tag,T!==null&&T===l)break;S!==5&&S!==26&&S!==27||q===null||(T=q,h?(q=li(i,f),q!=null&&v.unshift(Fi(i,q,T))):h||(q=li(i,f),q!=null&&v.push(Fi(i,q,T)))),i=i.return}v.length!==0&&r.push({event:a,listeners:v})}var Hk=/\r\n?/g,Pk=/\u0000|\uFFFD/g;function tb(r){return(typeof r=="string"?r:""+r).replace(Hk,`
10`).replace(Pk,"")}function rb(r,a){return a=tb(a),tb(r)===a}function Be(r,a,i,l,h,f){switch(i){case"children":typeof l=="string"?a==="body"||a==="textarea"&&l===""||to(r,l):(typeof l=="number"||typeof l=="bigint")&&a!=="body"&&to(r,""+l);break;case"className":Ws(r,"class",l);break;case"tabIndex":Ws(r,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":Ws(r,i,l);break;case"style":rm(r,l,f);break;case"data":if(a!=="object"){Ws(r,"data",l);break}case"src":case"href":if(l===""&&(a!=="a"||i!=="href")){r.removeAttribute(i);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){r.removeAttribute(i);break}l=Ys(""+l),r.setAttribute(i,l);break;case"action":case"formAction":if(typeof l=="function"){r.setAttribute(i,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof f=="function"&&(i==="formAction"?(a!=="input"&&Be(r,a,"name",h.name,h,null),Be(r,a,"formEncType",h.formEncType,h,null),Be(r,a,"formMethod",h.formMethod,h,null),Be(r,a,"formTarget",h.formTarget,h,null)):(Be(r,a,"encType",h.encType,h,null),Be(r,a,"method",h.method,h,null),Be(r,a,"target",h.target,h,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){r.removeAttribute(i);break}l=Ys(""+l),r.setAttribute(i,l);break;case"onClick":l!=null&&(r.onclick=Fr);break;case"onScroll":l!=null&&Ae("scroll",r);break;case"onScrollEnd":l!=null&&Ae("scrollend",r);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(o(61));if(i=l.__html,i!=null){if(h.children!=null)throw Error(o(60));r.innerHTML=i}}break;case"multiple":r.multiple=l&&typeof l!="function"&&typeof l!="symbol";break;case"muted":r.muted=l&&typeof l!="function"&&typeof l!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(l==null||typeof l=="function"||typeof l=="boolean"||typeof l=="symbol"){r.removeAttribute("xlink:href");break}i=Ys(""+l),r.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":l!=null&&typeof l!="function"&&typeof l!="symbol"?r.setAttribute(i,""+l):r.removeAttribute(i);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"playsInl
10ine":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":l&&typeof l!="function"&&typeof l!="symbol"?r.setAttribute(i,""):r.removeAttribute(i);break;case"capture":case"download":l===!0?r.setAttribute(i,""):l!==!1&&l!=null&&typeof l!="function"&&typeof l!="symbol"?r.setAttribute(i,l):r.removeAttribute(i);break;case"cols":case"rows":case"size":case"span":l!=null&&typeof l!="function"&&typeof l!="symbol"&&!isNaN(l)&&1<=l?r.setAttribute(i,l):r.removeAttribute(i);break;case"rowSpan":case"start":l==null||typeof l=="function"||typeof l=="symbol"||isNaN(l)?r.removeAttribute(i):r.setAttribute(i,l);break;case"popover":Ae("beforetoggle",r),Ae("toggle",r),Gs(r,"popover",l);break;case"xlinkActuate":Mr(r,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":Mr(r,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":Mr(r,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":Mr(r,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":Mr(r,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":Mr(r,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":Mr(r,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":Mr(r,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":Mr(r,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":Gs(r,"is",l);break;case"innerText":case"textContent":break;default:(!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(i=dS.get(i)||i,Gs(r,i,l))}}function hh(r,a,i,l,h,f){switch(i){case"style":rm(r,l,f);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(o(61));if(i=l.__html,i!=null){if(h.children!=null)throw Error(o(60));r.innerHTML=i}}break;case"children":typeof l=="string"?to(r,l):(typeof l=="number"||typeof l=="bigint")&&to(r,""+l);break;case"onScroll":l!=null&&Ae("scroll",r);break;case"onScrollEnd":l!=null&&Ae("scrollend",r);break;case"onClick":l!=null&&(r.onclick=Fr);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Wf.hasOwnProperty(i))e:{if(i[0]==="o"&&i[1]==="n"&&(h=i.endsWith("Capture"),a=i.slice(2,h?i.length-7:void 0),f=r[Ct]||null,f=f!=null?f[i]:null,typeof f=="function"&&r.removeEventListener(a,f,h),typeof l=="function")){typeof f!="function"&&f!==null&&(i in r?r[i]=null:r.hasAttribute(i)&&r.removeAttribute(i)),r.addEventListener(a,l,h);break e}i in r?r[i]=l:l===!0?r.setAttribute(i,""):Gs(r,i,l)}}}function Et(r,a,i){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ae("error",r),Ae("load",r);var l=!1,h=!1,f;for(f in i)if(i.hasOwnProperty(f)){var v=i[f];if(v!=null)switch(f){case"src":l=!0;break;case"srcSet":h=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(o(137,a));default:Be(r,a,f,v,i,null)}}h&&Be(r,a,"srcSet",i.srcSet,i,null),l&&Be(r,a,"src",i.src,i,null);return;case"input":Ae("invalid",r);var S=f=v=h=null,T=null,q=null;for(l in i)if(i.hasOwnProperty(l)){var z=i[l];if(z!=null)switch(l){case"name":h=z;break;case"type":v=z;break;case"checked":T=z;break;case"defaultChecked":q=z;break;case"value":f=z;break;case"defaultValue":S=z;break;case"children":case"dangerouslySetInnerHTML":if(z!=null)throw Error(o(137,a));break;default:Be(r,a,l,z,i,null)}}Jf(r,f,S,T,q,v,h,!1);return;case"select":Ae("invalid",r),l=v=f=null;for(h in i)if(i.hasOwnProperty(h)&&(S=i[h],S!=null))switch(h){case"value":f=S;break;case"defaultValue":v=S;break;case"multiple":l=S;default:Be(r,a,h,S,i,null)}a=f,i=v,r.multiple=!!l,a!=null?eo(r,!!l,a,!1):i!=null&&eo(r,!!l,i,!0);return;case"textarea":Ae("invalid",r),f=h=l=null;for(v in i)if(i.hasOwnProperty(v)&&(S=i[v],S!=null))switch(v){case"value":l=S;break;case"defaultValue":h=S;break;case"children":f=S;break;case"dangerouslySetInnerHTML":if(S!=null)throw Error(o(91));break;default:Be(r,a,v,S,i,null)}em(r,l,h,f);return;case"option":for(T in i)i.hasOwnProperty(T)&&(l=i[T],l!=null)&&(T==="selected"?r.selected=l&&typeof l!="function"&&typeof l!="symbol":Be(r,a,T,l,i,null));return;case"dialog":Ae("beforetoggle",r),Ae("toggle",r),Ae("cancel",r),Ae("close",r);break;case"iframe":case"object":Ae("load",r);break;case"video":case"audio":for(l=0;l<Mi.length;l++)Ae(Mi[l],r);break;case"image":Ae("error",r),Ae("load",r);break;case"details":Ae("toggle",r);break;case"embed":case"source":case"link":Ae("error",r),Ae("load",r);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(q in i)if(i.hasOwnProperty(q)&&(l=i[q],l!=null))switch(q){case"children":case"dangerouslySetInnerHTML":throw Error(o(137,a));default:Be(r,a,q,l,i,null)}return;default:if(Tu(a)){for(z in i)i.hasOwnProperty(z)&&(l=i[z],l!==void 0&&hh(r,a,z,l,i,void 0));return}}for(S in i)i.hasOwnProperty(S)&&(l=i[S],l!=null&&Be(r,a,S,l,i,null))}function jk(r,a,i,l){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var h=null,f=null,v=null,S=null,T=null,q=null,z=null;for(U in i){var Y=i[U];if(i.hasOwnProperty(U)&&Y!=null)switch(U){case"checked":break;case"value":break;case"defaultValue":T=Y;default:l.hasOwnProperty(U)||Be(r,a,U,null,l,Y)}}
vendor: 2,575 bytes, line 10
10for(var M in l){var U=l[M];if(Y=i[M],l.hasOwnProperty(M)&&(U!=null||Y!=null))switch(M){case"type":f=U;break;case"name":h=U;break;case"checked":q=U;break;case"defaultChecked":z=U;break;case"value":v=U;break;case"defaultValue":S=U;break;case"children":case"dangerouslySetInnerHTML":if(U!=null)throw Error(o(137,a));break;default:U!==Y&&Be(r,a,M,U,l,Y)}}ku(r,v,S,T,q,z,f,h);return;case"select":U=v=S=M=null;for(f in i)if(T=i[f],i.hasOwnProperty(f)&&T!=null)switch(f){case"value":break;case"multiple":U=T;default:l.hasOwnProperty(f)||Be(r,a,f,null,l,T)}for(h in l)if(f=l[h],T=i[h],l.hasOwnProperty(h)&&(f!=null||T!=null))switch(h){case"value":M=f;break;case"defaultValue":S=f;break;case"multiple":v=f;default:f!==T&&Be(r,a,h,f,l,T)}a=S,i=v,l=U,M!=null?eo(r,!!i,M,!1):!!l!=!!i&&(a!=null?eo(r,!!i,a,!0):eo(r,!!i,i?[]:"",!1));return;case"textarea":U=M=null;for(S in i)if(h=i[S],i.hasOwnProperty(S)&&h!=null&&!l.hasOwnProperty(S))switch(S){case"value":break;case"children":break;default:Be(r,a,S,null,l,h)}for(v in l)if(h=l[v],f=i[v],l.hasOwnProperty(v)&&(h!=null||f!=null))switch(v){case"value":M=h;break;case"defaultValue":U=h;break;case"children":break;case"dangerouslySetInnerHTML":if(h!=null)throw Error(o(91));break;default:h!==f&&Be(r,a,v,h,l,f)}Zf(r,M,U);return;case"option":for(var ie in i)M=i[ie],i.hasOwnProperty(ie)&&M!=null&&!l.hasOwnProperty(ie)&&(ie==="selected"?r.selected=!1:Be(r,a,ie,null,l,M));for(T in l)M=l[T],U=i[T],l.hasOwnProperty(T)&&M!==U&&(M!=null||U!=null)&&(T==="selected"?r.selected=M&&typeof M!="function"&&typeof M!="symbol":Be(r,a,T,M,l,U));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 be in i)M=i[be],i.hasOwnProperty(be)&&M!=null&&!l.hasOwnProperty(be)&&Be(r,a,be,null,l,M);for(q in l)if(M=l[q],U=i[q],l.hasOwnProperty(q)&&M!==U&&(M!=null||U!=null))switch(q){case"children":case"dangerouslySetInnerHTML":if(M!=null)throw Error(o(137,a));break;default:Be(r,a,q,M,l,U)}return;default:if(Tu(a)){for(var ze in i)M=i[ze],i.hasOwnProperty(ze)&&M!==void 0&&!l.hasOwnProperty(ze)&&hh(r,a,ze,void 0,l,M);for(z in l)M=l[z],U=i[z],!l.hasOwnProperty(z)||M===U||M===void 0&&U===void 0||hh(r,a,z,M,l,U);return}}for(var H in i)M=i[H],i.hasOwnProperty(H)&&M!=null&&!l.hasOwnProperty(H)&&Be(r,a,H,null,l,M);for(Y in l)M=l[Y],U=i[Y],!l.hasOwnProperty(Y)||M===U||M==null&&U==null||Be(r,a,Y,M,l,U)}function nb(r){switch(r){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}
vendor: 13,050 bytes, line 10
10function qk(){if(typeof performance.getEntriesByType=="function"){for(var r=0,a=0,i=performance.getEntriesByType("resource"),l=0;l<i.length;l++){var h=i[l],f=h.transferSize,v=h.initiatorType,S=h.duration;if(f&&S&&nb(v)){for(v=0,S=h.responseEnd,l+=1;l<i.length;l++){var T=i[l],q=T.startTime;if(q>S)break;var z=T.transferSize,Y=T.initiatorType;z&&nb(Y)&&(T=T.responseEnd,v+=z*(T<S?1:(S-q)/(T-q)))}if(--l,a+=8*(f+v)/(h.duration/1e3),r++,10<r)break}}if(0<r)return a/r/1e6}return navigator.connection&&(r=navigator.connection.downlink,typeof r=="number")?r:5}var ph=null,fh=null;function zl(r){return r.nodeType===9?r:r.ownerDocument}function ab(r){switch(r){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function ob(r,a){if(r===0)switch(a){case"svg":return 1;case"math":return 2;default:return 0}return r===1&&a==="foreignObject"?0:r}function mh(r,a){return r==="textarea"||r==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.children=="bigint"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var gh=null;function Mk(){var r=window.event;return r&&r.type==="popstate"?r===gh?!1:(gh=r,!0):(gh=null,!1)}var ib=typeof setTimeout=="function"?setTimeout:void 0,Fk=typeof clearTimeout=="function"?clearTimeout:void 0,sb=typeof Promise=="function"?Promise:void 0,Uk=typeof queueMicrotask=="function"?queueMicrotask:typeof sb<"u"?function(r){return sb.resolve(null).then(r).catch(Bk)}:ib;function Bk(r){setTimeout(function(){throw r})}function jn(r){return r==="head"}function lb(r,a){var i=a,l=0;do{var h=i.nextSibling;if(r.removeChild(i),h&&h.nodeType===8)if(i=h.data,i==="/$"||i==="/&"){if(l===0){r.removeChild(h),Oo(a);return}l--}else if(i==="$"||i==="$?"||i==="$~"||i==="$!"||i==="&")l++;else if(i==="html")Ui(r.ownerDocument.documentElement);else if(i==="head"){i=r.ownerDocument.head,Ui(i);for(var f=i.firstChild;f;){var v=f.nextSibling,S=f.nodeName;f[ii]||S==="SCRIPT"||S==="STYLE"||S==="LINK"&&f.rel.toLowerCase()==="stylesheet"||i.removeChild(f),f=v}}else i==="body"&&Ui(r.ownerDocument.body);i=h}while(i);Oo(a)}function cb(r,a){var i=r;r=0;do{var l=i.nextSibling;if(i.nodeType===1?a?(i._stashedDisplay=i.style.display,i.style.display="none"):(i.style.display=i._stashedDisplay||"",i.getAttribute("style")===""&&i.removeAttribute("style")):i.nodeType===3&&(a?(i._stashedText=i.nodeValue,i.nodeValue=""):i.nodeValue=i._stashedText||""),l&&l.nodeType===8)if(i=l.data,i==="/$"){if(r===0)break;r--}else i!=="$"&&i!=="$?"&&i!=="$~"&&i!=="$!"||r++;i=l}while(i)}function yh(r){var a=r.firstChild;for(a&&a.nodeType===10&&(a=a.nextSibling);a;){var i=a;switch(a=a.nextSibling,i.nodeName){case"HTML":case"HEAD":case"BODY":yh(i),Eu(i);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(i.rel.toLowerCase()==="stylesheet")continue}r.removeChild(i)}}function zk(r,a,i,l){for(;r.nodeType===1;){var h=i;if(r.nodeName.toLowerCase()!==a.toLowerCase()){if(!l&&(r.nodeName!=="INPUT"||r.type!=="hidden"))break}else if(l){if(!r[ii])switch(a){case"meta":if(!r.hasAttribute("itemprop"))break;return r;case"link":if(f=r.getAttribute("rel"),f==="stylesheet"&&r.hasAttribute("data-precedence"))break;if(f!==h.rel||r.getAttribute("href")!==(h.href==null||h.href===""?null:h.href)||r.getAttribute("crossorigin")!==(h.crossOrigin==null?null:h.crossOrigin)||r.getAttribute("title")!==(h.title==null?null:h.title))break;return r;case"style":if(r.hasAttribute("data-precedence"))break;return r;case"script":if(f=r.getAttribute("src"),(f!==(h.src==null?null:h.src)||r.getAttribute("type")!==(h.type==null?null:h.type)||r.getAttribute("crossorigin")!==(h.crossOrigin==null?null:h.crossOrigin))&&f&&r.hasAttribute("async")&&!r.hasAttribute("itemprop"))break;return r;default:return r}}else if(a==="input"&&r.type==="hidden"){var f=h.name==null?null:""+h.name;if(h.type==="hidden"&&r.getAttribute("name")===f)return r}else return r;if(r=sr(r.nextSibling),r===null)break}return null}function Vk(r,a,i){if(a==="")return null;for(;r.nodeType!==3;)if((r.nodeType!==1||r.nodeName!=="INPUT"||r.type!=="hidden")&&!i||(r=sr(r.nextSibling),r===null))return null;return r}function ub(r,a){for(;r.nodeType!==8;)if((r.nodeType!==1||r.nodeName!=="INPUT"||r.type!=="hidden")&&!a||(r=sr(r.nextSibling),r===null))return null;return r}function bh(r){return r.data==="$?"||r.data==="$~"}function vh(r){return r.data==="$!"||r.data==="$?"&&r.ownerDocument.readyState!=="loading"}function Gk(r,a){var i=r.ownerDocument;if(r.data==="$~")r._reactRetry=a;else if(r.data!=="$?"||i.readyState!=="loading")a();else{var l=function(){a(),i.removeEventListener("DOMContentLoaded",l)};i.addEventListener("DOMContentLoaded",l),r._reactRetry=l}}function sr(r){for(;r!=null;r=r.nextSibling){var a=r.nodeType;if(a===1||a===3)break;if(a===8){if(a=r.data,a==="$"||a==="$!"||a==="$?"||a==="$~"||a==="&"||a==="F!"||a==="F")break;if(a==="/$"||a==="/&")return null}}return r}var wh=null;function db(r){r=r.nextSibling;for(var a=0;r;){if(r.nodeType===8){var i=r.data;if(i==="/$"||i==="/&"){if(a===0)return sr(r.nextSibling);a--}else i!=="$"&&i!=="$!"&&i!=="$?"&&i!=="$~"&&i!=="&"||a++}r=r.nextSibling}return null}function hb(r){r=r.previousSibling;for(var a=0;r;){if(r.nodeType===8){var i=r.data;if(i==="$"||i==="$!"||i==="$?"||i==="$~"||i==="&"){if(a===0)return r;a--}else i!=="/$"&&i!=="/&"||a++}r=r.previousSibling}return null}function pb(r,a,i){switch(a=zl(i),r){case"html":if(r=a.documentElement,!r)throw Error(o(452));return r;case"head":if(r=a.head,!r)throw Error(o(453));return r;case"body":if(r=a.body,!r)throw Error(o(454));return r;default:throw Error(o(451))}}function Ui(r){for(var a=r.attributes;a.length;)r.removeAttributeNode(a[0]);Eu(r)}var lr=new Map,fb=new Set;function Vl(r){return typeof r.getRootNode=="function"?r.getRootNode():r.nodeType===9?r:r.ownerDocument}var nn=te.d;te.d={f:Wk,r:Xk,D:Yk,C:Kk,L:Qk,m:Jk,X:eD,S:Zk,M:tD};function Wk(){var r=nn.f(),a=Hl();return r||a}function Xk(r){var a=Qa(r);a!==null&&a.tag===5&&a.type==="form"?Rg(a):nn.r(r)}var Co=typeof document>"u"?null:document;function mb(r,a,i){var l=Co;if(l&&typeof a=="string"&&a){var h=er(a);h='link[rel="'+r+'"][href="'+h+'"]',typeof i=="string"&&(h+='[crossorigin="'+i+'"]'),fb.has(h)||(fb.add(h),r={rel:r,crossOrigin:i,href:a},l.querySelector(h)===null&&(a=l.createElement("link"),Et(a,"link",r),ft(a),l.head.appendChild(a)))}}function Yk(r){nn.D(r),mb("dns-prefetch",r,null)}function Kk(r,a){nn.C(r,a),mb("preconnect",r,a)}function Qk(r,a,i){nn.L(r,a,i);var l=Co;if(l&&r&&a){var h='link[rel="preload"][as="'+er(a)+'"]';a==="image"&&i&&i.imageSrcSet?(h+='[imagesrcset="'+er(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(h+='[imagesizes="'+er(i.imageSizes)+'"]')):h+='[href="'+er(r)+'"]';var f=h;switch(a){case"style":f=Ro(r);break;case"script":f=Io(r)}lr.has(f)||(r=y({rel:"preload",href:a==="image"&&i&&i.imageSrcSet?void 0:r,as:a},i),lr.set(f,r),l.querySelector(h)!==null||a==="style"&&l.querySelector(Bi(f))||a==="script"&&l.querySelector(zi(f))||(a=l.createElement("link"),Et(a,"link",r),ft(a),l.head.appendChild(a)))}}function Jk(r,a){nn.m(r,a);var i=Co;if(i&&r){var l=a&&typeof a.as=="string"?a.as:"script",h='link[rel="modulepreload"][as="'+er(l)+'"][href="'+er(r)+'"]',f=h;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=Io(r)}if(!lr.has(f)&&(r=y({rel:"modulepreload",href:r},a),lr.set(f,r),i.querySelector(h)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(zi(f)))return}l=i.createElement("link"),Et(l,"link",r),ft(l),i.head.appendChild(l)}}}function Zk(r,a,i){nn.S(r,a,i);var l=Co;if(l&&r){var h=Ja(l).hoistableStyles,f=Ro(r);a=a||"default";var v=h.get(f);if(!v){var S={loading:0,preload:null};if(v=l.querySelector(Bi(f)))S.loading=5;else{r=y({rel:"stylesheet",href:r,"data-precedence":a},i),(i=lr.get(f))&&xh(r,i);var T=v=l.createElement("link");ft(T),Et(T,"link",r),T._p=new Promise(function(q,z){T.onload=q,T.onerror=z}),T.addEventListener("load",function(){S.loading|=1}),T.addEventListener("error",function(){S.loading|=2}),S.loading|=4,Gl(v,a,l)}v={type:"stylesheet",instance:v,count:1,state:S},h.set(f,v)}}}function eD(r,a){nn.X(r,a);var i=Co;if(i&&r){var l=Ja(i).hoistableScripts,h=Io(r),f=l.get(h);f||(f=i.querySelector(zi(h)),f||(r=y({src:r,async:!0},a),(a=lr.get(h))&&Eh(r,a),f=i.createElement("script"),ft(f),Et(f,"link",r),i.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(h,f))}}function tD(r,a){nn.M(r,a);var i=Co;if(i&&r){var l=Ja(i).hoistableScripts,h=Io(r),f=l.get(h);f||(f=i.querySelector(zi(h)),f||(r=y({src:r,async:!0,type:"module"},a),(a=lr.get(h))&&Eh(r,a),f=i.createElement("script"),ft(f),Et(f,"link",r),i.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(h,f))}}function gb(r,a,i,l){var h=(h=De.current)?Vl(h):null;if(!h)throw Error(o(446));switch(r){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(a=Ro(i.href),i=Ja(h).hoistableStyles,l=i.get(a),l||(l={type:"style",instance:null,count:0,state:null},i.set(a,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){r=Ro(i.href);var f=Ja(h).hoistableStyles,v=f.get(r);if(v||(h=h.ownerDocument||h,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(r,v),(f=h.querySelector(Bi(r)))&&!f._p&&(v.instance=f,v.state.loading=5),lr.has(r)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},lr.set(r,i),f||rD(h,r,i,v.state))),a&&l===null)throw Error(o(528,""));return v}if(a&&l!==null)throw Error(o(529,""));return null;case"script":return a=i.async,i=i.src,typeof i=="string"&&a&&typeof a!="function"&&typeof a!="symbol"?(a=Io(i),i=Ja(h).hoistableScripts,l=i.get(a),l||(l={type:"script",instance:null,count:0,state:null},i.set(a,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,r))}}function Ro(r){return'href="'+er(r)+'"'}function Bi(r){return'link[rel="stylesheet"]['+r+"]"}function yb(r){return y({},r,{"data-precedence":r.precedence,precedence:null})}function rD(r,a,i,l){r.querySelector('link[rel="preload"][as="style"]['+a+"]")?l.loading=1:(a=r.createElement("link"),l.preload=a,a.addEventListener("load",function(){return l.loading|=1}),a.addEventListener("error",function(){return l.loading|=2}),Et(a,"link",i),ft(a),r.head.appendChild(a))}function Io(r){return'[src="'+er(r)+'"]'}function zi(r){return"script[async]"+r}function bb(r,a,i){if(a.count++,a.instance===null)switch(a.type){case"style":var l=r.querySelector('style[data-href~="'+er(i.href)+'"]');if(l)return a.instance=l,ft(l),l;var h=y({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return l=(r.ownerDocument||r).createElement("style"),ft(l),Et(l,"style",h),Gl(l,i.precedence,r),a.instance=l;case"stylesheet":h=Ro(i.href);var f=r.querySelector(Bi(h));if(f)return a.state.loading|=4,a.instance=f,ft(f),f;l=yb(i),(h=lr.get(h))&&xh(l,h),f=(r.ownerDocument||r).createElement("link"),ft(f);var v=f;return v._p=new Promise(function(S,T){v.onload=S,v.onerror=T}),Et(f,"link",l),a.state.loading|=4,Gl(f,i.precedence,r),a.instance=f;case"script":return f=Io(i.src),(h=r.querySelector(zi(f)))?(a.instance=h,ft(h),h):(l=i,(h=lr.get(f))&&(l=y({},i),Eh(l,h)),r=r.ownerDocument||r,h=r.createElement("script"),ft(h),Et(h,"link",l),r.head.appendChild(h),a.instance=h);case"void":return null;default:throw Error(o(443,a.type))}else a.type==="stylesheet"&&(a.state.loading&4)===0&&(l=a.instance,a.state.loading|=4,Gl(l,i.precedence,r));return a.instance}function Gl(r,a,i){for(var l=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),h=l.length?l[l.length-1]:null,f=h,v=0;v<l.length;v++){var S=l[v];if(S.dataset.precedence===a)f=S;else if(f!==h)break}f?f.parentNode.insertBefore(r,f.nextSibling):(a=i.nodeType===9?i.head:i,a.insertBefore(r,a.firstChild))}function xh(r,a){r.crossOrigin==null&&(r.crossOrigin=a.crossOrigin),r.referrerPolicy==null&&(r.referrerPolicy=a.referrerPolicy),r.title==null&&(r.title=a.title)}function Eh(r,a){r.crossOrigin==null&&(r.crossOrigin=a.crossOrigin),r.referrerPolicy==null&&(r.referrerPolicy=a.referrerPolicy),r.integrity==null&&(r.integrity=a.integrity)}var Wl=null;function vb(r,a,i){if(Wl===null){var l=new Map,h=Wl=new Map;h.set(i,l)}else h=Wl,l=h.get(i),l||(l=new Map,h.set(i,l));if(l.has(r))return l;for(l.set(r,null),i=i.getElementsByTagName(r),h=0;h<i.length;h++){var f=i[h];if(!(f[ii]||f[bt]||r==="link"&&f.getAttribute("rel")==="stylesheet")&&f.namespaceURI!=="http://www.w3.org/2000/svg"){var v=f.getAttribute(a)||"";v=r+v;var S=l.get(v);S?S.push(f):l.set(v,[f])}}return l}function wb(r,a,i){r=r.ownerDocument||r,r.head.insertBefore(i,a==="title"?r.querySelector("head > title"):null)}
vendor: 4,397 bytes, line 10
10function nD(r,a,i){if(i===1||a.itemProp!=null)return!1;switch(r){case"meta":case"title":return!0;case"style":if(typeof a.precedence!="string"||typeof a.href!="string"||a.href==="")break;return!0;case"link":if(typeof a.rel!="string"||typeof a.href!="string"||a.href===""||a.onLoad||a.onError)break;return a.rel==="stylesheet"?(r=a.disabled,typeof a.precedence=="string"&&r==null):!0;case"script":if(a.async&&typeof a.async!="function"&&typeof a.async!="symbol"&&!a.onLoad&&!a.onError&&a.src&&typeof a.src=="string")return!0}return!1}function xb(r){return!(r.type==="stylesheet"&&(r.state.loading&3)===0)}function aD(r,a,i,l){if(i.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var h=Ro(l.href),f=a.querySelector(Bi(h));if(f){a=f._p,a!==null&&typeof a=="object"&&typeof a.then=="function"&&(r.count++,r=Xl.bind(r),a.then(r,r)),i.state.loading|=4,i.instance=f,ft(f);return}f=a.ownerDocument||a,l=yb(l),(h=lr.get(h))&&xh(l,h),f=f.createElement("link"),ft(f);var v=f;v._p=new Promise(function(S,T){v.onload=S,v.onerror=T}),Et(f,"link",l),i.instance=f}r.stylesheets===null&&(r.stylesheets=new Map),r.stylesheets.set(i,a),(a=i.state.preload)&&(i.state.loading&3)===0&&(r.count++,i=Xl.bind(r),a.addEventListener("load",i),a.addEventListener("error",i))}}var Sh=0;function oD(r,a){return r.stylesheets&&r.count===0&&Kl(r,r.stylesheets),0<r.count||0<r.imgCount?function(i){var l=setTimeout(function(){if(r.stylesheets&&Kl(r,r.stylesheets),r.unsuspend){var f=r.unsuspend;r.unsuspend=null,f()}},6e4+a);0<r.imgBytes&&Sh===0&&(Sh=62500*qk());var h=setTimeout(function(){if(r.waitingForImages=!1,r.count===0&&(r.stylesheets&&Kl(r,r.stylesheets),r.unsuspend)){var f=r.unsuspend;r.unsuspend=null,f()}},(r.imgBytes>Sh?50:800)+a);return r.unsuspend=i,function(){r.unsuspend=null,clearTimeout(l),clearTimeout(h)}}:null}function Xl(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Kl(this,this.stylesheets);else if(this.unsuspend){var r=this.unsuspend;this.unsuspend=null,r()}}}var Yl=null;function Kl(r,a){r.stylesheets=null,r.unsuspend!==null&&(r.count++,Yl=new Map,a.forEach(iD,r),Yl=null,Xl.call(r))}function iD(r,a){if(!(a.state.loading&4)){var i=Yl.get(r);if(i)var l=i.get(null);else{i=new Map,Yl.set(r,i);for(var h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f<h.length;f++){var v=h[f];(v.nodeName==="LINK"||v.getAttribute("media")!=="not all")&&(i.set(v.dataset.precedence,v),l=v)}l&&i.set(null,l)}h=a.instance,v=h.getAttribute("data-precedence"),f=i.get(v)||l,f===l&&i.set(null,h),i.set(v,h),this.count++,l=Xl.bind(this),h.addEventListener("load",l),h.addEventListener("error",l),f?f.parentNode.insertBefore(h,f.nextSibling):(r=r.nodeType===9?r.head:r,r.insertBefore(h,r.firstChild)),a.state.loading|=4}}var Vi={$$typeof:N,Provider:null,Consumer:null,_currentValue:fe,_currentValue2:fe,_threadCount:0};function sD(r,a,i,l,h,f,v,S,T){this.tag=1,this.containerInfo=r,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=bu(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=bu(0),this.hiddenUpdates=bu(null),this.identifierPrefix=l,this.onUncaughtError=h,this.onCaughtError=f,this.onRecoverableError=v,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=T,this.incompleteTransitions=new Map}function Eb(r,a,i,l,h,f,v,S,T,q,z,Y){return r=new sD(r,a,i,v,T,q,z,Y,S),a=1,f===!0&&(a|=24),f=Gt(3,null,null,a),r.current=f,f.stateNode=r,a=rd(),a.refCount++,r.pooledCache=a,a.refCount++,f.memoizedState={element:l,isDehydrated:i,cache:a},id(f),r}function Sb(r){return r?(r=lo,r):lo}function kb(r,a,i,l,h,f){h=Sb(h),l.context===null?l.context=h:l.pendingContext=h,l=Ln(a),l.payload={element:i},f=f===void 0?null:f,f!==null&&(l.callback=f),i=An(r,l,a),i!==null&&(Ht(i,r,a),Si(i,r,a))}function Db(r,a){if(r=r.memoizedState,r!==null&&r.dehydrated!==null){var i=r.retryLane;r.retryLane=i!==0&&i<a?i:a}}function kh(r,a){Db(r,a),(r=r.alternate)&&Db(r,a)}function Tb(r){if(r.tag===13||r.tag===31){var a=wa(r,67108864);a!==null&&Ht(a,r,67108864),kh(r,67108864)}}
vendor: 8,841 bytes, line 10
10function Lb(r){if(r.tag===13||r.tag===31){var a=Qt();a=vu(a);var i=wa(r,a);i!==null&&Ht(i,r,a),kh(r,a)}}var Ql=!0;function lD(r,a,i,l){var h=F.T;F.T=null;var f=te.p;try{te.p=2,Dh(r,a,i,l)}finally{te.p=f,F.T=h}}function cD(r,a,i,l){var h=F.T;F.T=null;var f=te.p;try{te.p=8,Dh(r,a,i,l)}finally{te.p=f,F.T=h}}function Dh(r,a,i,l){if(Ql){var h=Th(l);if(h===null)dh(r,a,l,Jl,i),_b(r,l);else if(dD(h,r,a,i,l))l.stopPropagation();else if(_b(r,l),a&4&&-1<uD.indexOf(r)){for(;h!==null;){var f=Qa(h);if(f!==null)switch(f.tag){case 3:if(f=f.stateNode,f.current.memoizedState.isDehydrated){var v=ma(f.pendingLanes);if(v!==0){var S=f;for(S.pendingLanes|=2,S.entangledLanes|=2;v;){var T=1<<31-zt(v);S.entanglements[1]|=T,v&=~T}Lr(f),(je&6)===0&&($l=Ut()+500,qi(0))}}break;case 31:case 13:S=wa(f,2),S!==null&&Ht(S,f,2),Hl(),kh(f,2)}if(f=Th(l),f===null&&dh(r,a,l,Jl,i),f===h)break;h=f}h!==null&&l.stopPropagation()}else dh(r,a,l,null,i)}}function Th(r){return r=Au(r),Lh(r)}var Jl=null;function Lh(r){if(Jl=null,r=Ka(r),r!==null){var a=u(r);if(a===null)r=null;else{var i=a.tag;if(i===13){if(r=d(a),r!==null)return r;r=null}else if(i===31){if(r=p(a),r!==null)return r;r=null}else if(i===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;r=null}else a!==r&&(r=null)}}return Jl=r,null}function Ab(r){switch(r){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(YE()){case Hf:return 2;case Pf:return 8;case Fs:case KE:return 32;case jf:return 268435456;default:return 32}default:return 32}}var Ah=!1,qn=null,Mn=null,Fn=null,Gi=new Map,Wi=new Map,Un=[],uD="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 _b(r,a){switch(r){case"focusin":case"focusout":qn=null;break;case"dragenter":case"dragleave":Mn=null;break;case"mouseover":case"mouseout":Fn=null;break;case"pointerover":case"pointerout":Gi.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":Wi.delete(a.pointerId)}}function Xi(r,a,i,l,h,f){return r===null||r.nativeEvent!==f?(r={blockedOn:a,domEventName:i,eventSystemFlags:l,nativeEvent:f,targetContainers:[h]},a!==null&&(a=Qa(a),a!==null&&Tb(a)),r):(r.eventSystemFlags|=l,a=r.targetContainers,h!==null&&a.indexOf(h)===-1&&a.push(h),r)}function dD(r,a,i,l,h){switch(a){case"focusin":return qn=Xi(qn,r,a,i,l,h),!0;case"dragenter":return Mn=Xi(Mn,r,a,i,l,h),!0;case"mouseover":return Fn=Xi(Fn,r,a,i,l,h),!0;case"pointerover":var f=h.pointerId;return Gi.set(f,Xi(Gi.get(f)||null,r,a,i,l,h)),!0;case"gotpointercapture":return f=h.pointerId,Wi.set(f,Xi(Wi.get(f)||null,r,a,i,l,h)),!0}return!1}function Cb(r){var a=Ka(r.target);if(a!==null){var i=u(a);if(i!==null){if(a=i.tag,a===13){if(a=d(i),a!==null){r.blockedOn=a,zf(r.priority,function(){Lb(i)});return}}else if(a===31){if(a=p(i),a!==null){r.blockedOn=a,zf(r.priority,function(){Lb(i)});return}}else if(a===3&&i.stateNode.current.memoizedState.isDehydrated){r.blockedOn=i.tag===3?i.stateNode.containerInfo:null;return}}}r.blockedOn=null}function Zl(r){if(r.blockedOn!==null)return!1;for(var a=r.targetContainers;0<a.length;){var i=Th(r.nativeEvent);if(i===null){i=r.nativeEvent;var l=new i.constructor(i.type,i);Lu=l,i.target.dispatchEvent(l),Lu=null}else return a=Qa(i),a!==null&&Tb(a),r.blockedOn=i,!1;a.shift()}return!0}function Rb(r,a,i){Zl(r)&&i.delete(a)}function hD(){Ah=!1,qn!==null&&Zl(qn)&&(qn=null),Mn!==null&&Zl(Mn)&&(Mn=null),Fn!==null&&Zl(Fn)&&(Fn=null),Gi.forEach(Rb),Wi.forEach(Rb)}function ec(r,a){r.blockedOn===a&&(r.blockedOn=null,Ah||(Ah=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,hD)))}var tc=null;function Ib(r){tc!==r&&(tc=r,e.unstable_scheduleCallback(e.unstable_NormalPriority,function(){tc===r&&(tc=null);for(var a=0;a<r.length;a+=3){var i=r[a],l=r[a+1],h=r[a+2];if(typeof l!="function"){if(Lh(l||i)===null)continue;break}var f=Qa(i);f!==null&&(r.splice(a,3),a-=3,Td(f,{pending:!0,data:h,method:i.method,action:l},l,h))}}))}function Oo(r){function a(T){return ec(T,r)}qn!==null&&ec(qn,r),Mn!==null&&ec(Mn,r),Fn!==null&&ec(Fn,r),Gi.forEach(a),Wi.forEach(a);for(var i=0;i<Un.length;i++){var l=Un[i];l.blockedOn===r&&(l.blockedOn=null)}for(;0<Un.length&&(i=Un[0],i.blockedOn===null);)Cb(i),i.blockedOn===null&&Un.shift();if(i=(r.ownerDocument||r).$$reactFormReplay,i!=null)for(l=0;l<i.length;l+=3){var h=i[l],f=i[l+1],v=h[Ct]||null;if(typeof f=="function")v||Ib(i);else if(v){var S=null;if(f&&f.hasAttribute("formAction")){if(h=f,v=f[Ct]||null)S=v.formAction;else if(Lh(h)!==null)continue}else S=v.action;typeof S=="function"?i[l+1]=S:(i.splice(l,3),l-=3),Ib(i)}}}function Ob(){function r(f){f.canIntercept&&f.info==="react-transition"&&f.intercept({handler:function(){return new Promise(function(v){return h=v})},focusReset:"manual",scroll:"manual"})}function a(){h!==null&&(h(),h=null),l||setTimeout(i,20)}function i(){if(!l&&!navigation.transition){var f=navigation.currentEntry;f&&f.url!=null&&navigation.navigate(f.url,{state:f.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var l=!1,h=null;return navigation.addEventListener("navigate",r),navigation.addEventListener("navigatesuccess",a),navigation.addEventListener("navigateerror",a),setTimeout(i,100),function(){l=!0,navigation.removeEventListener("navigate",r),navigation.removeEventListener("navigatesuccess",a),navigation.removeEventListener("navigateerror",a),h!==null&&(h(),h=null)}}}function _h(r){this._internalRoot=r}rc.prototype.render=_h.prototype.render=function(r){var a=this._internalRoot;if(a===null)throw Error(o(409));var i=a.current,l=Qt();kb(i,l,r,a,null,null)},rc.prototype.unmount=_h.prototype.unmount=function(){var r=this._internalRoot;if(r!==null){this._internalRoot=null;var a=r.containerInfo;kb(r.current,2,null,r,null,null),Hl(),a[Ya]=null}};function rc(r){this._internalRoot=r}rc.prototype.unstable_scheduleHydration=function(r){if(r){var a=Bf();r={blockedOn:null,target:r,priority:a};for(var i=0;i<Un.length&&a!==0&&a<Un[i].priority;i++);Un.splice(i,0,r),i===0&&Cb(r)}};var $b=t.version;if($b!=="19.2.5")throw Error(o(527,$b,"19.2.5"));te.findDOMNode=function(r){var a=r._reactInternals;if(a===void 0)throw typeof r.render=="function"?Error(o(188)):(r=Object.keys(r).join(","),Error(o(268,r)));return r=g(a),r=r!==null?b(r):null,r=r===null?null:r.stateNode,r};var pD={bundleType:0,version:"19.2.5",rendererPackageName:"react-dom",currentDispatcherRef:F,reconcilerVersion:"19.2.5"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var nc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!nc.isDisabled&&nc.supportsFiber)try{ni=nc.inject(pD),Bt=nc}catch{}}return Ki.createRoot=function(r,a){if(!s(r))throw Error(o(299));var i=!1,l="",h=Fg,f=Ug,v=Bg;return a!=null&&(a.unstable_strictMode===!0&&(i=!0),a.identifierPrefix!==void 0&&(l=a.identifierPrefix),a.onUncaughtError!==void 0&&(h=a.onUncaughtError),a.onCaughtError!==void 0&&(f=a.onCaughtError),a.onRecoverableError!==void 0&&(v=a.onRecoverableError)),a=Eb(r,1,!1,null,null,i,l,null,h,f,v,Ob),r[Ya]=a.current,uh(r),new _h(a)},Ki.hydrateRoot=function(r,a,i){if(!s(r))throw Error(o(299));var l=!1,h="",f=Fg,v=Ug,S=Bg,T=null;return i!=null&&(i.unstable_strictMode===!0&&(l=!0),i.identifierPrefix!==void 0&&(h=i.identifierPrefix),i.onUncaughtError!==void 0&&(f=i.onUncaughtError),i.onCaughtError!==void 0&&(v=i.onCaughtError),i.onRecoverableError!==void 0&&(S=i.onRecoverableError),i.formState!==void 0&&(T=i.formState)),a=Eb(r,1,!0,a,i??null,l,h,T,f,v,S,Ob),a.context=Sb(null),i=a.current,l=Qt(),l=vu(l),h=Ln(l),h.callback=null,An(i,h,l),i=l,a.current.lanes=i,oi(a,i),Lr(a),r[Ya]=a.current,uh(r),new rc(a)},Ki.version="19.2.5",Ki}var zb;
10function kD(){if(zb)return Ih.exports;zb=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Ih.exports=SD(),Ih.exports}var DD=kD(),TD="__TSS_CONTEXT",Ep=Symbol.for("TSS_SERVER_FUNCTION"),Vb=Symbol.for("TSS_SERVER_FUNCTION_FACTORY"),LD="application/x-tss-framed",Jp=()=>window.__TSS_START_OPTIONS__;function AD(e={}){if(e.isNotFound=!0,e.throw)throw e;return e}function Wa(e){return e?.isNotFound===!0}function ea(e){e.statusCode=e.statusCode||e.code||307;const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Zp(e){return e instanceof Response&&!!e.options}function d0(e){if(e!==null&&typeof e=="object"&&e.isSerializedRedirect)return ea(e)}function _D(e){return e.replaceAll("\0","/").replaceAll("�","/").replace(/~([~0r])/g,(t,n)=>n==="0"?"\0":n==="r"?"�":n)}const Gb=!1;function aa(e){return e[e.length-1]}function h0(e,t){return typeof e=="function"?e(t):e}const ef=Object.prototype.hasOwnProperty;function p0(e){for(const t in e)if(ef.call(e,t))return!0;return!1}const Sc=()=>Object.create(null),$o=(e,t)=>ta(e,t,!0);function ta(e,t,n,o=0){if(e===t)return e;if(o++>500)return t;const s=Array.isArray(e)&&Array.isArray(t);if(!s&&!(Ic(e)&&Ic(t)))return t;const u=Object.keys(e),d=u.length,p=Object.keys(t),m=p.length;if(s?d!==e.length||m!==t.length||d&&aa(u)!==`${d-1}`||m&&aa(p)!==`${m-1}`:d!==Object.getOwnPropertyNames(e).length||m!==Object.getOwnPropertyNames(t).length||Object.getOwnPropertySymbols(t).length)return t;let g=0,b,y,w;if(s){for(;g<m&&(w=g,y=e[w],b=t[w],b=y===b?y:typeof y=="object"?ta(y,b,n,o):b,b===y);g++);if(g===m&&d===m)return e}else{let k=d===m,E=!0;for(;g<m;g++){w=p[g],y=e[w];const D=t[w];b=y===D?y:typeof y=="object"?ta(y,D,n,o):D,k&&=b===y&&(u[g]===w||ef.call(e,w)),E&&=Object.is(b,D),u[g]=b}if(k)return Object.getOwnPropertySymbols(e).length?t:e;if(E)return t}const x=s?p.fill(0):n?Sc():{};for(let k=0;k<m;k++)w=s?k:p[k],s?(y=e[w],k>g&&(b=t[w],b=y===b?y:typeof y=="object"?ta(y,b,n,o):b),x[w]=k<g?y:b):x[w]=u[k];return x}function Ic(e){return!e||typeof e!="object"?!1:(Object.getPrototypeOf(e)?.constructor??Object)===Object}function xr(e,t,n,o){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let s=0,u=e.length;s<u;s++){const d=e[s],p=t[s];if(d!==p&&!xr(d,p,n,o))return!1}return!0}if(Ic(e)&&Ic(t)){if(n){for(const u in t)if((o||t[u]!==void 0)&&!xr(e[u],t[u],n,o))return!1;return!0}let s=0;if(o)s=Object.keys(e).length;else for(const u in e)e[u]!==void 0&&s++;for(const u in t)if((o||t[u]!==void 0)&&(s--===0||!xr(e[u],t[u],n,o)))return!1;return s===0}return!1}function CD(e){return typeof e?.message!="string"?!1:e.message.startsWith("Failed to fetch dynamically imported module")||e.message.startsWith("error loading dynamically imported module")||e.message.startsWith("Importing a module script failed")}const RD=/[\x00-\x1f\x7f"<>`{}]/g;function ID(e){return e.replace(RD,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0"))}function Wb(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,n=>{try{return decodeURI(n)}catch{return n}})}return ID(t)}const OD=["http:","https:","mailto:","tel:"];function us(e){if(e[0]!=="/"&&e.includes(":"))return/^[\x00-\x20]*([a-z][a-z\d+.\t\n\r-]*:)/i.exec(e)?.[1]?.replace(/[\t\n\r]/g,"").toLowerCase()}const f0=/^[\x00-\x20]*[\\/][\t\n\r]*[\\/]/;function m0(e,t){if(!e)return!1;if(f0.test(e))return!0;const n=us(e);return n?!t.has(n):!1}const $D={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ND=/[&><\u2028\u2029]/g;function HD(e){return e.replace(ND,t=>$D[t])}function Qi(e){if(!e)return e;let t=e;if(/[%\\\x00-\x1f\x7f]/.test(e)){const n=/%25|%5C/gi;let o=0,s;for(t="";(s=n.exec(e))!==null;)t+=Wb(e.slice(o,s.index))+s[0],o=n.lastIndex;t+=Wb(o?e.slice(o):e)}return t}function PD(e){return/[\s\u0080-\uFFFF]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function jD(e,t){if(e===t)return!0;
10if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Wo(e){return e.replace(/\/{2,}/g,"/")}function g0(e){return e==="/"?e:e.replace(/^\/+/,"")}function Ir(e){const t=e.length;return t>1&&e[t-1]==="/"?e.replace(/\/+$/,""):e}function y0(e){return Ir(g0(e))}function Xb(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function Yb(e,t,n="never",o){if(t.includes("//")&&(t=Wo(t)),t.startsWith("/"))return t.length===1||n==="preserve"?t:n==="always"?t.endsWith("/")?t:`${t}/`:t.endsWith("/")?t.slice(0,-1):t;const s=t===".";let u;if(o){u=s?e:e+"\0"+t;const g=o.get(u);if(g)return g}let d;if(s)d=e.split("/");else{for(e.includes("//")&&(e=Wo(e)),d=e.split("/");d.length>1&&aa(d)==="";)d.pop();const g=t.split("/");for(let b=0,y=g.length;b<y;b++){const w=g[b];w===""?b?b===y-1&&d.push(w):d=[w]:w===".."?d.length>1?d.pop():d=[""]:w==="."||d.push(w)}}d.length>1&&(aa(d)===""?n==="never"&&d.pop():n==="always"&&d.push(""));const p=d.join("/"),m=(s?Wo(p):p)||"/";return u&&o&&o.set(u,m),m}function qD(e){const t=new Map(e.map(o=>[encodeURIComponent(o),o])),n=new RegExp([...t.keys()].join("|").replace(/[.*()]/g,"\\$&"),"g");return o=>o.replace(n,s=>t.get(s)??s)}function MD(e){return e==null||e===""}function FD(e,t,n){if(typeof t!="string")return""+(t??void 0);const o=e==="_splat";if(o&&(!t||/^[a-zA-Z0-9\-._~!/]*$/.test(t)))return t;let s=encodeURIComponent(t);return o&&(s=s.replaceAll("%2F","/")),n?n(s):s}function Kb(e,t,n,o,s){const u=e.endsWith("/")?"/":"";let d="";for(const p of t){if(typeof p=="string"){d+=p;continue}const[m,g,b,y]=p,w=m===2,x=w&&y!==void 0?y+u:y;let k=n[g];if(!(m===3&&k==null)){if(s&&(s[g]=k,w&&(s["*"]=k)),w&&MD(k)){if(b==="/"&&!x)continue;k=""}d+=b+FD(g,k,o)+(x||"")}}return d+u||"/"}function Oc(e){const t=new Map;let n,o;return{get(s){const u=t.get(s);if(u)return u.visited=!0,u.value},set(s,u){const d=t.get(s);if(d){d.value=u;return}if(t.size>=e){let m=n?.next().value;for(;!m||m.visited;)m?m.visited=!1:n=t.values(),m=n.next().value;m===o&&(n=void 0),t.delete(m.key)}const p={key:s,value:u,visited:!1};o=p,t.set(s,p)},clear(){t.clear(),n=void 0,o=void 0}}}function ds(){throw new Error("Invariant failed")}const Zn=4,b0=5;function UD(e){const t=e.names;if(t)return t;const n=[];for(const o of e)typeof o!="string"&&n.push(o[1]);return e.names=n}function BD(e,t,n){const o=e.substring(t,n);
10if(o.charCodeAt(0)===36)return o.length===1?[2,"_splat","",void 0]:[1,o.substring(1),"",""];const s=o.indexOf("{");if(s>=0){const u=o.indexOf("}",s),d=o.charCodeAt(s+1)===45,p=s+(d?3:2);if(u>=0&&o.charCodeAt(p-1)===36&&(!d||p<u)){const m=o.substring(p,u);return[d?3:m?1:2,m||"_splat",o.substring(0,s),e.substring(t+u+1,m?n:e.length)]}}return o}function hs(e,t,n,o,s,u){let d=n;const p=t.fullPath??t.from,m=t.options,g=p.length,b=p.endsWith("/")?g-1:g,y=m?.caseSensitive??e,w=m?.params?.parse??m?.parseParams;let x,k=u?n-1:0;if(!o||p.includes("$")){x=u?.slice()??[];const L=aa(x);L&&typeof L!="string"&&L[0]===2&&(x[x.length-1]=[L[0],L[1],L[2],L[3]===void 0?void 0:L[3]+p.substring(n-(p[n-2]==="/"?2:1),b)],k=g)}for(;d<g;){const L=d,O=p.indexOf("/",L);let N=O===-1?g:O;const V=BD(p,L,N);d=N+1;let Z;if(typeof V=="string"){if(!o)continue;let B=V,P;y?P=o.static??=new Map:(B=V.toLowerCase(),P=o.staticInsensitive??=new Map);const J=P.get(B);if(J)Z=J;else{const oe=Fa(o);Z=oe,P.set(B,oe)}}else{const B=V[0];let P=V[2],J=V[3]??"";if(B===2&&(N=g,d=N+1),x&&k<N&&(k<L-1&&x.push(p.substring(k,L-1)),V[2]="/"+P,B===2&&V[3]!==void 0&&b<g&&(V[3]=J.slice(0,-1)),x.push(V),k=N),!o)continue;const oe=y&&!!(P||J);y||(P=P.toLowerCase(),J=J.toLowerCase());const he=B===1?o.dynamic??=[]:B===3?o.optional??=[]:o.wildcard??=[],K=B!==2&&!w&&he.find(Q=>!Q.parse&&Q.caseSensitive===oe&&Q.prefix===P&&Q.suffix===J);if(K)Z=K;else{const Q=Fa(o,B,oe,P,J);Z=Q,he.push(Q),he.length===2&&s?.push(he)}}o=Z}x&&k<b&&x.push(p.substring(k,b));const E=x?.slice();if(!o)return E;
10if(w&&t.children&&!t.isRoot&&t.id&&t.id.charCodeAt(t.id.lastIndexOf("/")+1)===95){const L=Fa(o,b0);(o.pathless??=[]).push(L),o=L}const D=(t.path||!t.children)&&!t.isRoot;if(D&&b<g){const L=Fa(o,Zn);o.index=L,o=L}return o.parse=w??null,o.priority=m?.params?.priority??0,o.route||(o.data=E,D&&(o.route=t)),[o,d,E]}function v0(e,t){if(e.parse&&!t.parse)return-1;if(!e.parse&&t.parse)return 1;if(e.parse&&t.parse&&(e.priority||t.priority))return t.priority-e.priority;if(e.prefix&&t.prefix&&e.prefix!==t.prefix){if(e.prefix.startsWith(t.prefix))return-1;if(t.prefix.startsWith(e.prefix))return 1}if(e.suffix&&t.suffix&&e.suffix!==t.suffix){if(e.suffix.endsWith(t.suffix))return-1;if(t.suffix.endsWith(e.suffix))return 1}return e.prefix&&!t.prefix?-1:!e.prefix&&t.prefix?1:e.suffix&&!t.suffix?-1:!e.suffix&&t.suffix?1:e.caseSensitive&&!t.caseSensitive?-1:!e.caseSensitive&&t.caseSensitive?1:0}function Fa(e,t=0,n,o,s){return{kind:t,depth:e?e.depth+1:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,data:void 0,parent:e,parse:null,priority:0,caseSensitive:n,prefix:o,suffix:s}}function zD(e,t){const n=Fa(),o=[];function s(u,d,p,m){const[g,b,y]=hs(!1,u,d,p,o,m);if(u.children)for(const w of u.children)s(w,b,g,y)}for(const u of e)s(u,1,n);for(const u of o)u.sort(v0);t.masksTree=n,t.flatCache=Oc(1e3)}function VD(e,t){e||="/";const n=t.flatCache.get(e);if(n!==void 0)return n;const o=tf(e,t.masksTree);return t.flatCache.set(e,o),o}function GD(e,t,n,o,s){e||="/",o||="/";const u=t?`case\0${e}`:e;let d=s.singleCache.get(u);return d||(d=Fa(),hs(t,{from:e},1,d),s.singleCache.set(u,d)),tf(o,d,n)}function WD(e,t,n=!1){const o=n?e:`nofuzz\0${e}`,s=t.matchCache.get(o);if(s!==void 0)return s;e||="/";let u;try{u=tf(e,t.segmentTree,n)}catch(d){if(d instanceof URIError)u=null;else throw d}return u&&(u.branch=x0(u.route)),t.matchCache.set(o,u),u}function XD(e,t=!1){const n=Fa(),o=[],s={},u={};let d=0;function p(m,g,b,y){if(m.init(d),m.id in s&&ds(),s[m.id]=m,d!==0&&m.path){const E=Ir(m.fullPath);(!u[E]||m.fullPath.endsWith("/"))&&(u[E]=m)}d++;const[w,x,k]=hs(t,m,g,b,o,y);if(m._interpolation=k,m.children)for(const E of m.children)p(E,x,w,k)}p(e,1,n);for(const m of o)m.sort(v0);return{processedTree:{segmentTree:n,singleCache:Oc(1e3),matchCache:Oc(1e3),flatCache:null,masksTree:null},routesById:s,routesByPath:u}}function tf(e,t,n=!1){const o=e.split("/"),s=KD(e,o,t,n);if(!s)return null;const[u]=w0(e,o,s);return{route:s.node.route,rawParams:u}}function w0(e,t,n){const o=YD(n.node),s=n.node.data&&UD(n.node.data),u=Object.create(null);let d=n.extract?.part??0,p=n.extract?.node??0,m=n.extract?.path??0,g=n.extract?.param??0;for(;p<o.length;d++,p++,m++){const b=o[p];if(b.kind===Zn)break;if(b.kind===b0){d--,m--;continue}const y=t[d],w=m;if(y&&(m+=y.length),b.kind===1||b.kind===3){const x=s[g++];if(b.kind===3&&n.skipped&1<<p){d--,m=w-1;continue}const k=b.suffix||b.prefix?y.substring(b.prefix.length,y.length-b.suffix.length):y;(k||b.kind===1)&&(u[x]=decodeURIComponent(k))}else if(b.kind===2){const x=b,k=e.substring(w+x.prefix.length,e.length-x.suffix.length),E=decodeURIComponent(k);u["*"]=E,u._splat=E;break}}return n.rawParams&&Object.assign(u,n.rawParams),[u,{part:d,node:p,path:m,param:g}]}function x0(e){const t=[e];for(;e.parentRoute;)e=e.parentRoute,t.push(e);return t.reverse(),t}function YD(e){const t=Array(e.depth+1);do t[e.depth]=e,e=e.parent;while(e);return t}function KD(e,t,n,o){if(e==="/"&&n.index)return{node:n.index,skipped:0};const s=!aa(t),u=s&&e!=="/",d=t.length-(s?1:0),p=[{node:n,index:1,skipped:0,statics:0,dynamics:0,optionals:0}];let m=null,g=null;for(;p.length;){const b=p.pop(),{node:y,index:w,skipped:x,statics:k,dynamics:E,optionals:D}=b;let{extract:L,rawParams:O}=b;if(y.kind===2&&y.route&&!oc(g,b))continue;if(y.parse){if(!Qb(e,t,b))continue;O=b.rawParams,L=b.extract}o&&y.route&&y.kind!==Zn&&oc(m,b)&&(m=b);const N=w===d;if(N&&(y.route&&(!u||y.kind===Zn||y.kind===2)&&oc(g,b)&&(g=b),!y.optional&&!y.wildcard&&!y.index&&!y.pathless))continue;const V=N?void 0:t[w];let Z;if(N&&y.index){const B={node:y.index,index:w,skipped:x,statics:k,dynamics:E,optionals:D,extract:L,rawParams:O};let P=!0;if(y.index.parse&&(Qb(e,t,B)||(P=!1)),P){if(!E&&!D&&!x&&QD(k,d))return B;oc(g,B)&&(g=B)}}if(y.wildcard)for(let B=y.wildcard.length-1;B>=0;B--){const P=y.wildcard[B],{prefix:J,suffix:oe}=P;if(!(J&&(N||!(P.caseSensitive?V:Z??=V.toLowerCase()).startsWith(J)))){if(oe){if(N)continue;const he=t.slice(w).join("/"),K=he.slice(-oe.length);if((P.caseSensitive?K:K.toLowerCase())!==oe||he.length-oe.length<J.length)continue}p.push({node:P,index:d,skipped:x,statics:k,dynamics:E,optionals:D,extract:L,rawParams:O})}}if(y.optional){const B=x|1<<y.depth+1;for(let P=y.optional.length-1;P>=0;P--){const J=y.optional[P];p.push({node:J,index:w,skipped:B,statics:k,dynamics:E,optionals:D,extract:L,rawParams:O})}if(!N)for(let P=y.optional.length-1;P>=0;P--){const J=y.optional[P],{prefix:oe,suffix:he}=J;if(oe||he){const K=J.caseSensitive?V:Z??=V.toLowerCase();if(oe&&!K.startsWith(oe)||he&&K.indexOf(he,K.length-he.length)<oe.length)continue}p.push({node:J,index:w+1,skipped:x,statics:k,dynamics:E,optionals:D+ac(d,w),extract:L,rawParams:O})}}if(!N&&y.dynamic&&V)for(let B=y.dynamic.length-1;B>=0;B--){const P=y.dynamic[B],{prefix:J,suffix:oe}=P;if(J||oe){const he=P.caseSensitive?V:Z??=V.toLowerCase();if(J&&!he.startsWith(J)||oe&&he.indexOf(oe,he.length-oe.length)<J.length)continue}p.push({node:P,index:w+1,skipped:x,statics:k,dynamics:E+ac(d,w),optionals:D,extract:L,rawParams:O})}if(!N&&y.staticInsensitive){const B=y.staticInsensitive.get(Z??=V.toLowerCase());B&&p.push({node:B,index:w+1,skipped:x,statics:k+ac(d,w),dynamics:E,optionals:D,extract:L,rawParams:O})}if(!N&&y.static){const B=y.static.get(V);B&&p.push({node:B,index:w+1,skipped:x,statics:k+ac(d,w),dynamics:E,optionals:D,extract:L,rawParams:O})}if(y.pathless)for(let B=y.pathless.length-1;B>=0;B--){const P=y.pathless[B];p.push({node:P,index:w,skipped:x,statics:k,dynamics:E,optionals:D,extract:L,rawParams:O})}}if(g)return g;if(o&&m){let b=m.index;for(let w=0;w<m.index;w++)b+=t[w].length;const y=b===e.length?"/":e.slice(b);return m.rawParams??=Object.create(null),m.rawParams["**"]=decodeURIComponent(y),m}return null}function ac(e,t){return 2**(e-t-1)}function QD(e,t){return e===2**(t-1)-1}function Qb(e,t,n){let o,s;try{[o,s]=w0(e,t,n)}catch{return null}if(n.rawParams=o,n.extract=s,!n.node.parse)return!0;try{if(n.node.parse(o)===!1)return null}catch{}return!0}function oc(e,t){return e?t.statics>e.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===Zn)>(e.node.kind===Zn)||t.node.kind===Zn==(e.node.kind===Zn)&&t.node.depth>e.node.depth))):!0}function JD(){try{return sessionStorage}catch{return}}const ZD="tsr-scroll-restoration-v1_3",E0=JD();function e1(){try{return JSON.parse(E0?.getItem("tsr-scroll-restoration-v1_3")||"{}")}catch{return{}}}const No=e1(),Jb="data-scroll-restoration-id",t1=e=>e.state.__TSR_key||e.href;function r1(e){const t=e.getAttribute(Jb);if(t)return`[${Jb}="${t}"]`;let n="",o=e,s;for(;s=o.parentNode;){let u=1,d=o;for(;d=d.previousElementSibling;)u++;const p=`${o.localName}:nth-child(${u})`;n=n?`${p} > ${n}`:p,o=s}return n}let ic=!1;const kc="window";function Sp(e){try{return typeof e=="function"?e():document.querySelector(e)}catch{}}function Zb(e){const t=new Set;for(const n of e){if(n===kc)continue;const o=Sp(n);o&&t.add(o)}return t}function n1(e,t){const n=e.options.scrollRestoration,o=e._scroll;n&&(o.e=!0);const s=e.options.getScrollRestorationKey||t1,u=new Set,d=p=>{const m=No[p]||={};for(const g of u)g===document?m[kc]={scrollX,scrollY}:g.isConnected&&(m[r1(g)]={scrollX:g.scrollLeft,scrollY:g.scrollTop})};n&&!o.s&&(o.s=!0,ic=!1,history.scrollRestoration="manual",document.addEventListener("scroll",p=>{ic||u.add(p.target)},!0),e.subscribe("onBeforeLoad",p=>{p.fromLocation&&d(s(p.fromLocation)),u.clear()}),addEventListener("pagehide",()=>{history.scrollRestoration="auto",d(s(e.stores.resolvedLocation.get()??e.stores.location.get()));try{E0?.setItem(ZD,JSON.stringify(No))}catch{}}),addEventListener("pageshow",p=>{p.persisted&&(history.scrollRestoration="manual")})),!o.r&&(o.r=!0,e.subscribe("onRendered",p=>{const m=e.options.scrollRestorationBehavior,g=e.options.scrollToTopSelectors,b=o.n,y=o.h;let w;
10if(u.clear(),o.n=!0,o.h=!1,typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return;const x=s(p.toLocation),k=p.fromLocation&&s(p.fromLocation);if(o.e&&k&&k!==x){const E=No[k];if(E){let D=No[x];for(const L in E){if(L===kc){if(b)continue}else{const O=Sp(L);if(!O||b&&g&&(w??=Zb(g),w.has(O)))continue}D||(D=No[x]={}),D[L]??=E[L]}}}ic=!0;try{const E=p.toLocation.hash,D=p.toLocation.state.__hashScrollIntoViewOptions??!0;let L=!1;if(b){!E&&g&&(w??=Zb(g));const O=E&&D&&y,N=o.e?No[x]:void 0;if(N)for(const V in N){const{scrollX:Z,scrollY:B}=N[V];if(V===kc){if(O)continue;scrollTo({top:B,left:Z,behavior:m}),L=!0}else{const P=Sp(V);P&&(P.scrollLeft=Z,P.scrollTop=B,w?.delete(P))}}if(!E){const V={top:0,left:0,behavior:m};if(L||scrollTo(V),w)for(const Z of w)Z.scrollTo(V)}}!L&&E&&D&&document.getElementById(E)?.scrollIntoView(D)}finally{ic=!1}}))}function S0(e,t=String){let n;for(const o in e){const s=e[o];s!==void 0&&(n||=new URLSearchParams).set(o,t(s))}return n?n.toString():""}function Hh(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function a1(e){const t=new URLSearchParams(e),n=Object.create(null);for(const[o,s]of t.entries()){const u=n[o];u==null?n[o]=Hh(s):Array.isArray(u)?u.push(Hh(s)):n[o]=[u,Hh(s)]}return n}const k0=/^(?:\s|["[{\d-]|fa|nu|tr)/,o1=s1(JSON.parse),i1=l1(JSON.stringify,JSON.parse);function s1(e){const t=e===JSON.parse;return n=>{n[0]==="?"&&(n=n.substring(1));const o=a1(n);for(const s in o){const u=o[s];if(typeof u=="string"){if(t&&!k0.test(u))continue;try{o[s]=e(u)}catch{}}}return o}}function l1(e,t){const n=t===JSON.parse;function o(s){if(s&&typeof s=="object")try{return e(s)}catch{}else if(t&&typeof s=="string"){if(n&&!k0.test(s))return s;try{return t(s),e(s)}catch{}}return s}return s=>{const u=S0(s,o);return u?`?${u}`:""}}const Xo="__root__";function c1(e,t,n){const o=y0(e),s=`/${o}`,u=t?s:s.toLowerCase(),d=`${u}/`,p={input:({url:m})=>{const g=t?m.pathname:m.pathname.toLowerCase();return g===u?m.pathname="/":g.startsWith(d)&&(m.pathname=m.pathname.slice(s.length)),m},output:({url:m})=>(m.pathname=Wo(`/${o}${m.pathname}`),m)};return n?{input:({url:m})=>kp(n,p.input({url:m})),output:({url:m})=>p.output({url:D0(n,m)})}:p}function kp(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function D0(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function u1(e,t){const{createMutableStore:n,createReadonlyStore:o,batch:s}=t,u=new Map,d=n("idle"),p=n(e),m=n(void 0),g=n([]),b=o(()=>g.get().map(E=>u.get(E).get())),y=o(()=>({status:d.get(),isLoading:d.get()==="pending",matches:b.get(),location:p.get(),resolvedLocation:m.get()}));function w(E){let D=u.get(E);return D||(D=n(void 0),u.set(E,D)),D}const x={status:d,location:p,resolvedLocation:m,ids:g,matches:b,byRoute:u,__store:y,getMatchStore:w,setMatches:k};function k(E){const D=g.get(),L=E.map(O=>O.routeId);s(()=>{jD(D,L)||g.set(L);for(const O of D)L.includes(O)||u.get(O).set(()=>{});for(const O of E){const N=w(O.routeId);N.get()!==O&&N.set(O)}})}return x}var ra="__TSR_index",ev="popstate",tv="beforeunload",d1=/^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;function Dc(e){const t=d1.exec(e);return t?"/"+e.slice(t[0].length):e}function T0(e){return/[\x00-\x1f\x7f]/.test(e)&&(e=e.replace(/[\x00-\x1f\x7f]/g,t=>`	
11\r`.includes(t)?"":encodeURIComponent(t))),Dc(e)}function h1(e){let t=e.getLocation();const n=new Set,o=d=>{t=e.getLocation(),n.forEach(p=>p({location:t,action:d}))},s=d=>{e.notifyOnIndexChange??!0?o(d):t=e.getLocation()},u=async({task:d,navigateOpts:p,...m})=>{if(p?.ignoreBlocker??!1){d();return}const g=e.getBlockers?.()??[],b=m.type==="PUSH"||m.type==="REPLACE";if(typeof document<"u"&&g.length&&b)for(const y of g){const w=$c(m.path,m.state);if(await y.blockerFn({currentLocation:t,nextLocation:w,action:m.type})){e.onBlocked?.();return}}d()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:d=>(n.add(d),()=>{n.delete(d)}),push:(d,p,m)=>{const g=t.state[ra];p=rv(g+1,p),u({task:()=>{e.pushState(d,p),o({type:"PUSH"})},navigateOpts:m,type:"PUSH",path:d,state:p})},replace:(d,p,m)=>{const g=t.state[ra];p=rv(g,p),u({task:()=>{e.replaceState(d,p),o({type:"REPLACE"})},navigateOpts:m,type:"REPLACE",path:d,state:p})},go:(d,p)=>{u({task:()=>{e.go(d,p?.ignoreBlocker??!1),s({type:"GO",index:d})},navigateOpts:p,type:"GO"})},back:d=>{u({task:()=>{e.back(d?.ignoreBlocker??!1),s({type:"BACK"})},navigateOpts:d,type:"BACK"})},forward:d=>{u({task:()=>{e.forward(d?.ignoreBlocker??!1),s({type:"FORWARD"})},navigateOpts:d,type:"FORWARD"})},canGoBack:()=>t.state[ra]!==0,createHref:d=>e.createHref(d),block:d=>{if(!e.setBlockers)return()=>{};const p=e.getBlockers?.()??[];return e.setBlockers([...p,d]),()=>{const m=e.getBlockers?.()??[];e.setBlockers?.(m.filter(g=>g!==d))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:o,_getBlockers:()=>e.getBlockers?.()??[]}}function rv(e,t){const n=rf();return{...t,key:n,__TSR_key:n,[ra]:e}}function p1(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,o=t.history.replaceState;let s=[];const u=()=>s,d=P=>s=P,p=P=>T0(P),m=(()=>$c(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const P=rf();t.history.replaceState({[ra]:0,key:P,__TSR_key:P},"")}let g=m(),b,y=!1,w=!1,x=!1,k=!1;const E=()=>g;let D;const L=()=>{D&&(B._ignoreSubscribers=!0,(D[2]?t.history.pushState:t.history.replaceState)(D[1],"",D[0]),B._ignoreSubscribers=!1,D=void 0,b=void 0)},O=(P,J,oe)=>{const he=!!D;he||(b=g),g=$c(J,oe),D=[g.href,oe,D?.[2]||P],he||queueMicrotask(()=>L())},N=P=>{g=m(),B.notify({type:P})},V=async()=>
11{if(k=!1,w){w=!1;return}const P=m(),J=P.state[ra]-g.state[ra],oe=J===1,he=J===-1,K=!oe&&!he||y;y=!1;const Q=K?"GO":he?"BACK":"FORWARD",ne=K?{type:"GO",index:J}:{type:he?"BACK":"FORWARD"};if(x)x=!1;else{const ve=u();if(typeof document<"u"&&ve.length){for(const ue of ve)if(await ue.blockerFn({currentLocation:g,nextLocation:P,action:Q})){w=!0,t.history.go(-J),B.notify(ne);return}}}g=m(),B.notify(ne)},Z=P=>{if(k){k=!1;return}let J=!1;const oe=u();if(typeof document<"u"&&oe.length)for(const he of oe){const K=he.enableBeforeUnload??!0;if(K===!0){J=!0;break}if(typeof K=="function"&&K()===!0){J=!0;break}}if(J)return P.preventDefault(),P.returnValue=""},B=h1({getLocation:E,getLength:()=>t.history.length,pushState:(P,J)=>O(!0,P,J),replaceState:(P,J)=>O(!1,P,J),back:P=>(P&&(x=!0,k=!0),t.history.back()),forward:P=>{P&&(x=!0,k=!0),t.history.forward()},go:(P,J)=>{y=!0,J&&(x=!0,k=!0),t.history.go(P)},createHref:P=>p(P),flush:L,destroy:()=>{t.history.pushState=n,t.history.replaceState=o,t.removeEventListener(tv,Z,{capture:!0}),t.removeEventListener(ev,V)},onBlocked:()=>{b&&g!==b&&(g=b)},getBlockers:u,setBlockers:d,notifyOnIndexChange:!1});return B._ignoreNextBeforeUnload=P=>{k=!1;try{P=new URL(P,t.document.baseURI).href,k=/^https?:/.test(P)&&(!P.includes("#")||P.split("#")[0]!==t.location.href.split("#")[0])}catch{}},t.addEventListener(tv,Z,{capture:!0}),t.addEventListener(ev,V),t.history.pushState=function(...P){const J=n.apply(t.history,P);return B._ignoreSubscribers||N("PUSH"),J},t.history.replaceState=function(...P){const J=o.apply(t.history,P);return B._ignoreSubscribers||N("REPLACE"),J},B}function $c(e,t){const n=T0(e),o=n.indexOf("#"),s=n.indexOf("?");if(!t){const u=rf();t={[ra]:0,key:u,__TSR_key:u}}return{href:n,pathname:n.substring(0,o>0?s>0?Math.min(o,s):o:s>0?s:n.length),hash:o>-1?n.substring(o):"",search:s>-1?n.slice(s,o===-1?void 0:o):"",state:t}}function rf(){return(Math.random()+1).toString(36).substring(7)}function Ph(e,t){return e.protocol!=="http:"&&e.protocol!=="https:"||e.origin!==t||!!e.username||!!e.password}function jh(e){return e.pathname+e.search+e.hash}function nv(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function f1(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function Jc(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function av({key:e,__TSR_key:t,__TSR_index:n,__hashScrollIntoViewOptions:o,...s}){return s}function L0(e){return e.findIndex(t=>t.status==="error"||t.status==="notFound"||t._notFound)+1}function m1(e,t,n,o,s,u){o&&(t=t.slice(0,o)),s&&(n=n.slice(0,s));for(const d of t){if(u&&e._tx!==u)return;n.some(p=>p.routeId===d.routeId)||e.routesById[d.routeId].options.onLeave?.(d)}for(const d of n){if(u&&e._tx!==u)return;e.routesById[d.routeId].options[t.some(p=>p.routeId===d.routeId)?"onStay":"onEnter"]?.(d)}}var g1=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={n:!0},this.subscribers=new Set,this._cache=new Map,this._committed=[],this.startTransition=async n=>(n(),!1),this.update=n=>{const o=this.options;this.options={...o,...n},this.isServer=this.options.isServer??Gb??typeof document>"u",this.staticLocations=new WeakMap,this.protocolAllowlist=new Set(this.options.protocolAllowlist),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=p1()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost");const s=this.options.basepath??"/",u=this.options.rewrite,d=this.basepath!==s||o?.rewrite!==u||o?.caseSensitive!==this.options.caseSensitive;if(d&&(this.basepath=s,this.rewrite=s!=="/"&&y0(s)?c1(s,this.options.caseSensitive,u):u),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree||Gb){this.routeTree=this.options.routeTree;let p;p=this.buildRouteTree(),this.setRoutes(p)}if(this.stores)d&&this.stores.location.set(this.latestLocation);else if(this.latestLocation){const p=this.getStoreConfig(this);this.batch=p.batch,this.stores=u1(this.latestLocation,p),n1(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const n=XD(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&zD(this.options.routeMasks,n.processedTree),{...n,resolvePathCache:Oc(1e3)}},this.subscribe=(n,o)=>{const s={eventType:n,fn:o};return this.subscribers.add(s),()=>{this.subscribers.delete(s)}},this.emit=n=>{for(const o of this.subscribers)if(o.eventType===n.type)try{o.fn(n)}catch(s){console.error(s)}},this.parseLocation=(n,o)=>{const s=({pathname:m,search:g,hash:b,href:y},w)=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(m)){const D=this.options.parseSearch(g),L=this.options.stringifySearch(D);return{href:m+L+b,publicHref:m+L+b,pathname:Qi(m),external:!1,searchStr:L,search:$o(o?.search,D),hash:Qi(b.slice(1)),state:ta(o?.state,w)}}const x=kp(this.rewrite,new URL(y,this.origin)),k=this.options.parseSearch(x.search),E=this.options.stringifySearch(k);return x.search=E,{href:x.href.replace(x.origin,""),publicHref:y,pathname:Qi(Dc(x.pathname)),external:!!this.rewrite&&Ph(x,this.origin),searchStr:E,search:$o(o?.search,k),hash:Qi(x.hash.slice(1)),state:ta(o?.state,w)}},u=s(n,n.state),{__tempLocation:d,__tempKey:p}=u.state;if(d&&(!p||p===this.tempLocationKey)){const m=s(d,{...d.state,__tempLocation:void 0,key:u.state.key,__TSR_key:u.state.__TSR_key});return m.maskedLocation=u,m}return u},this.matchRoutes=(n,o,s)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:o},s):this.matchRoutesInternal(n,o),this.getMatchedRoutes=n=>{const o=Object.create(null),s=WD(Ir(n),this.processedTree,!0);return s&&Object.assign(o,s.rawParams),[s?.branch||[this.routesById.__root__],o,s?.route]},this.buildLocation=n=>{{const d=this.staticLocations.get(n);if(d)return d}let o=!1;const s=(d={})=>
11{if(d.href){const ve=$c(d.href,{});d={...d,to:kp(this.rewrite,new URL(ve.pathname,this.origin)).pathname,search:this.options.parseSearch(ve.search),hash:ve.hash.slice(1)}}const p=d._fromLocation||this._pendingLocation||this.latestLocation;let m;const g=()=>(o=!0,p),b=()=>(o=!0,m??=this.matchRoutesLightweight(p)),y=d.to?`${d.to}`:".",w=Yb(y[0]==="/"?"":d.unsafeRelative==="path"?g().pathname:d.from??b()[1],y,this.options.trailingSlash,this.resolvePathCache),x=this.routesByPath[Ir(w)],k=w.includes("$");let E;if(x)E=x._branch??=x0(x);else if(k)E=[];else{const[ve,ue,F]=this.getMatchedRoutes(w);E=ve,this.options.notFoundRoute&&(!F||F.path!=="/"&&ue["**"])&&(E=[...E,this.options.notFoundRoute])}const D=k?x?._interpolation??hs(!1,{fullPath:w},0):void 0;let L;for(const ve of E){const ue=ve.options.params?.stringify??ve.options.stringifyParams;if(ue){const F=b()[3];if(L??=qh(d.params,F),!p0(L))break;L===F&&(L=Object.assign(Sc(),L));try{Object.assign(L,ue(L))}catch{}}}L??=qh(d.params,b1(d.params,D)?b()[3]:Mh);const O=n.leaveParams?w:Dc(Qi(D?Kb(w,D,L,this.pathParamsDecoder):w)),N=v1(E,n._includeValidateSearch),V=()=>{let ve=b()[2];if(n._includeValidateSearch&&this.options.search?.strict){const ue={};E.forEach(F=>{if(F.options.validateSearch)try{Object.assign(ue,Tc(F.options.validateSearch,{...ue,...ve}))}catch{}}),ve=ue}return ve},Z=N.length?w1(N,V(),d):d.search===!0?V():typeof d.search=="function"?d.search(V()):d.search||Mh,B=this.options.stringifySearch(Z),P=d.hash===!0?g().hash:typeof d.hash=="function"?d.hash(g().hash):d.hash||void 0,J=P?`#${P}`:"",oe=d.state?d.state===!0?g().state:typeof d.state=="function"?d.state(g().state):d.state:Mh,he=`${O}${B}${J}`;let K,Q,ne=!1;if(this.rewrite){const ve=new URL(he,this.origin),ue=ve.origin,F=D0(this.rewrite,ve);K=jh(ve),Ph(F,ue)?(Q=F.href,ne=!0):Q=Dc(jh(F))}else K=PD(he),Q=K;return{publicHref:Q,href:K,pathname:O,search:Z,searchStr:B,state:oe,hash:P??"",external:ne,unmaskOnReload:d.unmaskOnReload}},u=s(n);if(n.mask)u.maskedLocation=s({from:n.from,...n.mask});else if(this.options.routeMasks){const d=VD(u.pathname,this.processedTree);if(d){const p=Object.assign(Sc(),d.rawParams),{from:m,params:g,...b}=d.route,y=qh(g,p);u.maskedLocation=s({from:n.from,...b,params:y})}}return!o&&n._fromLocation&&!u.maskedLocation&&this.staticLocations.set(n,u),u},this.commitLocation=async({viewTransition:n,ignoreBlocker:o,...s})=>{const u=s.maskedLocation??s;if(u.external)return ov(this,u.publicHref,{replace:s.replace,ignoreBlocker:o});let d;const p=Ir(this.latestLocation.href)===Ir(s.href)&&xr(av(s.state),av(this.latestLocation.state)),m=this._commitPromise;let g;const b=new Promise(y=>{g=y});if(b.resolve=()=>{g(),m?.resolve()},this._commitPromise=b,p)this.load();else{let{maskedLocation:y,hashScrollIntoView:w,...x}=s;y&&(x={...y,state:{...y.state,__tempKey:void 0,__tempLocation:{...x,search:x.searchStr,state:{...x.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(x.unmaskOnReload??this.options.unmaskOnReload??!1)&&(x.state.__tempKey=this.tempLocationKey)),x.state={...x.state,__hashScrollIntoViewOptions:w??this.options.defaultHashScrollIntoView??!0},this.shouldViewTransition=n,d=s.replace?"REPLACE":"PUSH",this.history[d==="REPLACE"?"replace":"push"](x.publicHref,x.state,{ignoreBlocker:o}),this.history.subscribers.size||this.load({action:{type:d}})}return this._scroll.n=s.resetScroll??!0,this._commitPromise},this.buildAndCommitLocation=({replace:n,resetScroll:o,hashScrollIntoView:s,viewTransition:u,ignoreBlocker:d,...p}={})=>{const m=this.buildLocation({...p,_includeValidateSearch:!0});this._pendingLocation=m;const g=this.commitLocation({...m,viewTransition:u,replace:n,resetScroll:o,hashScrollIntoView:s,ignoreBlocker:d});return queueMicrotask(()=>{this._pendingLocation===m&&(this._pendingLocation=void 0)}),g},this.navigate=async({to:n,reloadDocument:o,href:s,publicHref:u,...d})=>{const p=s?us(s):void 0;if(p||o){if(n!==void 0||!s){const g=this.buildLocation({to:n,...d}),b=g.maskedLocation??g;s??=b.publicHref,u??=b.publicHref}return ov(this,!p&&u?u:s,d)}return this.buildAndCommitLocation({...d,href:s,to:n,_isNavigate:!0})},this.load=async n=>{this.updateLatestLocation(),n?.action&&(this._scroll.h=n.action.type==="PUSH"||n.action.type==="REPLACE"),await A1(this,n)},this.startViewTransition=n=>
11{const o=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,o&&typeof document.startViewTransition=="function"){let s;if(typeof o=="object"&&window.CSS?.supports?.("selector(:active-view-transition-type(a))")){const u=this.latestLocation,d=this.stores.resolvedLocation.get(),p=typeof o.types=="function"?o.types(Jc(u,d)):o.types;if(p===!1)return n();s={update:n,types:p}}else s=n;return document.startViewTransition(s).updateCallbackDone}return n()},this.invalidate=n=>{const o=this._committed,s=n?.filter,u=this._preloads,d=new Set,p=b=>{(!s||s(b))&&d.add(b.id)};o.forEach(p),this._cache.forEach(p),u?.forEach(b=>b.forEach(p)),this._tx?.[3].forEach(p);const m=[];for(const[b,y]of u??[])y.some(w=>d.has(w.id))&&(u.delete(b),m.push(b));const g=b=>{if(d.has(b.id)){const y=this.routesById[b.routeId],w={...b,invalid:!0,...(n?.forcePending||b.status==="error"||b.status==="notFound")&&nv(y)?{status:"pending",error:void 0}:void 0};return b._flight=void 0,w}return b};this._committed=o.map(g);for(const[b,y]of this._cache)d.has(b)&&(y.invalid=!0,n?.forcePending&&(y.status="pending"));for(const b of d){const y=this._flights?.get(b);this._flights?.delete(b),y&&!y[2]&&m.push(y[1])}for(const b of m)b.abort();return this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{const o=n.options;let s=n.headers.get("Location")||o.href;if(!s){const d=this.buildLocation(o);s=(d.maskedLocation??d).publicHref||"/"}let u;if(f0.test(s)||(u=us(s))&&!this.protocolAllowlist.has(u))throw new Error("Redirect blocked: unsafe protocol");if(u==="http:"||u==="https:"){const d=new URL(s);d.pathname.startsWith("//")?s=d.href:Ph(d,this.origin)||(s=jh(d),u=void 0)}return u&&(o.reloadDocument=!0),o.href=s,n.headers.set("Location",s),n},this.clearCache=n=>{const o=this._cache,s=this._preloads,u=n?.filter,d=[],p=[];for(const[g,b]of o)(!u||u(b))&&(p.push(g),d.push(b));const m=[];for(const[g,b]of s??[])(!u||b.some(u))&&(m.push(g),d.push(...b));for(const g of p)o.delete(g);for(const g of m)s.delete(g);for(const g of d){const b=g._flight;g._flight=void 0,b&&!--b[2]&&(this._flights?.get(g.id)===b&&this._flights.delete(g.id),m.push(b[1]))}for(const g of m)g.abort()},this.loadRouteChunk=un,this.preloadRoute=n=>_1(this,n),this.matchRoute=(n,o)=>{const s={...n,to:n.to?Yb(n.from||"",n.to,this.options.trailingSlash,this.resolvePathCache):void 0,params:n.params||{},leaveParams:!0},u=this.buildLocation(s),d=this.stores.status.get()==="pending";if(o?.pending&&!d)return!1;const p=o?.pending??!d?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),m=GD(u.pathname,o?.caseSensitive??!1,o?.fuzzy??!1,p.pathname,this.processedTree);return!m||n.params&&!xr(m.rawParams,n.params,!0)?!1:o?.includeSearch??!0?xr(p.search,u.search,!0)?m.rawParams:!1:m.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=qD(e.pathParamsAllowedCharacters)),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??"fuzzy",stringifySearch:e.stringifySearch??i1,parseSearch:e.parseSearch??o1,protocolAllowlist:e.protocolAllowlist??OD}),self.__TSR_ROUTER__=this}isShell(){return!!this.options.isShell}get state(){return this.stores.__store.get()}setRoutes(e){Object.assign(this,e),this.lightweightCache=new WeakMap,this.staticLocations=new WeakMap;const t=this.options.notFoundRoute;t&&(t.init(99999999999),this.routesById[t.id]!==t&&(t._interpolation=hs(!1,t,0)),this.routesById[t.id]=t)}matchRoutesInternal(e,t){const[n,o,s]=this.getMatchedRoutes(e.pathname);let u=n,d=!1;(s?s.path!=="/"&&o["**"]:Ir(e.pathname))&&(this.options.notFoundRoute?u=[...u,this.options.notFoundRoute]:d=!0);const p=d?x1(this.options.notFoundMode,u):void 0,m=new Array(u.length),g=this._committed,b=(w,x)=>{const k=g[x];return k?.routeId===w.id?k:w===this.options.notFoundRoute?g.find(E=>E.routeId===w.id):void 0};let y;for(let w=0;w<u.length;w++){const x=u[w],k=m[w-1];let E,D,L;{const ne=k?.search??e.search,ve=k?._strictSearch??void 0;try{const ue=Tc(x.options.validateSearch,{...ne})??void 0;E={...ne,...ue},D={...ve,...ue}}catch(ue){let F=ue;if(ue instanceof Nc||(F=new Nc(ue.message,{cause:ue})),t?.throwOnError)throw F;E=ne,D={},L=F}}let O="",N="";try{O=x.options.loaderDeps?.({search:E})??"",N=O&&JSON.stringify(O)||""}catch(ne){if(t?.throwOnError)throw ne;L??=ne}const V=Sc(),Z=x._interpolation?Kb(x.fullPath,x._interpolation,o,this.pathParamsDecoder,V):x.fullPath,B=x.id+Z+N,P=b(x,w),J=this._cache.get(B)??(P?.id===B?P:void 0);y=J?._strictParams??Object.assign(V,y);let oe;if(!J)try{iv(x,y)}catch(ne){if(Wa(ne)||Zp(ne)?oe=ne:oe=new y1(ne.message,{cause:ne}),t?.throwOnError)throw oe}const he=P?"stay":"enter";let K;if(J)K={...J,cause:he,search:$o(P?P.search:J.search,E),_strictSearch:D,searchError:L};else{const ne=nv(x)?"pending":"success";K={id:B,ssr:x.options.ssr,index:w,routeId:x.id,params:P?.params??y,_str
11ictParams:y,pathname:Z,updatedAt:Date.now(),search:P?$o(P.search,E):E,_strictSearch:D,searchError:L,status:ne,isFetching:!1,error:void 0,paramsError:oe,context:{},abortController:t?._controller??new AbortController,cause:he,loaderDeps:P?ta(P.loaderDeps,O):O,invalid:!1,preload:!1,staticData:x.options.staticData||{},fullPath:x.fullPath}}const Q=p===x.id;K._notFound&&!Q&&(K.error=void 0),K._notFound=Q,m[w]=K}for(let w=0;w<m.length;w++){const x=m[w];x.params=x.cause==="stay"?$o(x.params,y):y,t?._controller&&(x.context={})}return m}matchRoutesLightweight(e){const t=aa(this.stores.ids.get()),n=t?this.stores.byRoute.get(t).get():void 0,o=n?.id,s=this.lightweightCache.get(e);if(s&&s[0]===o)return s[1];const[u,d]=this.getMatchedRoutes(e.pathname),p=aa(u),m={...e.search};for(const w of u)try{Object.assign(m,Tc(w.options.validateSearch,m))}catch{}const g=n&&n.routeId===p.id&&n.pathname===e.pathname;let b;if(g)b=n.params;else{const w=d;for(const x of u)try{iv(x,w)}catch{}b=w}const y=[u,p.fullPath,m,b];return this.lightweightCache.set(e,[o,y]),y}};async function ov(e,t,{replace:n,ignoreBlocker:o}){if(!m0(t,e.protocolAllowlist)){if(!o){const s=e.history._getBlockers();for(const u of s)if(u?.blockerFn&&await u.blockerFn({currentLocation:e.history.location,nextLocation:e.history.location,action:n?"REPLACE":"PUSH"}))return}e.history._ignoreNextBeforeUnload?.(t),n?window.location.replace(t):window.location.href=t}}var Nc=class extends Error{},y1=class extends Error{};function Tc(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new Nc("Async validation not supported");if(n.issues)throw new Nc(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 qh(e,t){if(e===void 0||e===!0)return t;const n=Object.create(null);return e===!1||e===null?n:typeof e=="function"?(Object.assign(n,t),Object.assign(n,e(n))):Object.assign(n,t,e)}function b1(e,t){return typeof e=="function"?!0:!t||e===!1||e===null?!1:e===void 0||e===!0||t.some(n=>typeof n!="string"&&!ef.call(e,n[1]))}const Mh=Object.freeze({});function v1(e,t){const n=[];for(let o=0;o<e.length;o++){const s=e[o].options;if("search"in s)s.search?.middlewares&&n.push(...s.search.middlewares);else if(s.preSearchFilters||s.postSearchFilters){const d=({search:p,next:m})=>{const g=m(s.preSearchFilters?s.preSearchFilters.reduce((b,y)=>y(b),p):p);return s.postSearchFilters?s.postSearchFilters.reduce((b,y)=>y(b),g):g};n.push(d)}const u=s.validateSearch;if(t&&u){const d=({search:p,next:m,meta:g})=>{const b=m(p);try{const y=Tc(u,b);if(g&&y)for(const w in y)w in b||(g.defaulted||=new Map).set(w,y[w]);return{...b,...y}}catch{}return b};n.push(d)}}return n}function w1(e,t,n){const o=(s,u,d)=>{if(s>=e.length){if(!n.search)return{};if(n.search===!0)return u;const m=h0(n.search,u);return d&&(d.explicit=m),m}const p=(m,g)=>{if(g){const b=d||{};return{search:o(s+1,m,b),meta:b}}return o(s+1,m,d)};return e[s]({search:u,next:p,meta:d})};return o(0,t)}function x1(e,t){if(e!=="root"){let n;for(let o=t.length-1;o>=0;o--){const s=t[o];if(s.options.notFoundComponent)return s.id;n||=s.children&&s.id}if(n)return n}return Xo}function iv(e,t){const n=e.options.params?.parse??e.options.parseParams;n&&Object.assign(t,n(t))}function Dp(e,t){return e.options[t]?.preload?.()}function E1(e,t){const n=Dp(e,"component");let o=Dp(e,"pendingComponent");return t&&(o?o=o.then(t):t()),n&&o?Promise.all([n,o]).then(()=>{}):n??o}function un(e,t,n){const o=()=>t===!1?void 0:t?Dp(e,t):E1(e,n),s=e._lazy;if(s)return s===!0?o():s.then(o);if(!e.lazyFn)return o();const u=e.lazyFn().then(d=>{{const{id:p,...m}=d.options;Object.assign(e.options,m),e._lazy=!0}},d=>{throw e._lazy=void 0,d});return e._lazy=u,u.then(o)}function nf(e){const t=e.findIndex(n=>n.status!=="success"||n._notFound)+1;return t&&t<e.length?e.slice(0,t):e}function A0(e){let t=e.length;for(let n=0;n<t;n++){const o=e[n];if(o._assetEnd!==void 0){t=Math.min(t,Math.max(n+1,o._assetEnd));continue}if(o.status!=="success"||o._notFound){t=n+1;break}}return t<e.length?e.slice(0,t):e}const Or=0,dn=1,Zc=2,_t=3,oa=[4];function ps(e){return typeof e[0]=="number"}function hn(e,t){return t.aborted?Promise.race([Promise.reject(t),e]):new Promise((n,o)=>{const s=()=>o(t);t.addEventListener("abort",s,{once:!0}),Promise.resolve(e).then(n,o).then(()=>t.removeEventListener("abort",s))})}function wr(e,t){return e.routesById[t.routeId]}function fs(e,t,n){return Zp(e)?[_t,e]:Wa(e)?(e.routeId||=n,[Zc,e]):t?(typeof e?.then=="function"&&(e=new Error("A Promise was thrown",{c
11ause:e})),[dn,e]):[Or,e]}function af(e,t){let n=fs(t,!0,e.id);if(n[0]!==dn)return n;try{e.options.onError?.(n[1])}catch(o){n=fs(o,!0,e.id)}return n}function os(e,t,n,o,s){return s[0].signal.aborted?oa:lf(e,t,n,af(n,o),s)}async function S1(e,t,n,o,s,u){const[d,p]=t,m=n[0].signal,g=!!n[3];for(let b=n[6]??0;b<o;b++){const y=p[b],w=wr(e,y);y.abortController=n[0];const x=p[b-1]?.context??e.options.context??{},k={params:y.params,location:d,navigate:O=>e.navigate({...O,_fromLocation:d}),buildLocation:e.buildLocation,cause:g?"preload":y.cause,abortController:n[0],preload:g,matches:p,routeId:w.id};try{const O=y._ctx||=w.options.context?w.options.context({...k,deps:y.loaderDeps,context:x})||{}:void 0;y.context={...x,...O}}catch(O){return cn(e,y),[b,os(e,t,w,O,n)]}if(m.aborted)return[b,oa];const E=y.paramsError??y.searchError;if(E!==void 0)return cn(e,y),[b,os(e,t,w,E,n)];const D=w.options.beforeLoad;if(!D)continue;const L=y.status;b>=u&&(y.status="pending",n[7]?.());try{ms(e,y,"beforeLoad",n[0]);const O=D({...k,search:y.search,context:y.context,...e.options.additionalContext}),N=await(typeof O?.then=="function"?hn(O,m):O);if(m.aborted)return[b,oa];const V=lf(e,t,w,fs(N,!1,w.id),n);if(V[0]!==Or)return cn(e,y),[b,V];y.context={...y.context,...N}}catch(O){return cn(e,y),[b,os(e,t,w,O,n)]}finally{y.status=L,ms(e,y,!1,n[0])}}s()}function of(e,t,n){if(!(!n||--n[2])){if(e._flights?.get(t.id)===n){const o=e._tx;if(o&&!o[0].signal.aborted&&!o[3].includes(t)&&o[3].some(s=>s.id===t.id)&&o[3].some(s=>s.isFetching==="beforeLoad"))return;e._flights.delete(t.id)}return n[1]}}function cn(e,t){const n=t._flight;t._flight=void 0,of(e,t,n)?.abort()}function Dt(e,t,n,o){const s=[];for(const u of t)if(!n?.includes(u)){const d=u._flight;if(u._flight=void 0,o&&d?.[2]===1&&e._flights?.get(u.id)===d&&n?.some(p=>p.id===u.id))d[2]=0;else{const p=of(e,u,d);p&&s.push(p)}}for(const u of s)u.abort()}function sf(e){for(const t of e){const n=t._flight;n&&n[2]++}}function ms(e,t,n,o){if(t.isFetching=n,o&&e._tx?.[0]!==o)return;const s=e.stores.byRoute.get(t.routeId),u=s?.get();u?.id===t.id&&s.set({...u,isFetching:n})}function _0(e,t,n,o,s,u,d){const p=t[0];return{params:n.params,location:p,navigate:m=>e.navigate({...m,_fromLocation:p}),cause:d?"preload":n.cause,abortController:s,preload:d,deps:n.loaderDeps,parentMatchPromise:u,context:n.context,route:o,...e.options.additionalContext}}async function sv(e,t,n,o,s,u,d){const p=d[0],m=p.signal;if(m.aborted)return oa;if(!s)return[Or,void 0];let g=n._flight;ms(e,n,"loader",p);try{if(!g){const b=new AbortController;g=[Promise.resolve().then(()=>s(_0(e,t,n,o,b,u,!!d[3]))).then(y=>fs(y,!1,o.id),y=>fs(y,!0,o.id)).then(y=>(y[0]!==Or&&e._flights?.get(n.id)===g&&(e._flights.delete(n.id),g[2]||b.abort()),y[0]===dn&&g[2]?af(o,y[1]):y)),b,1],(e._flights??=new Map).set(n.id,g)}return n._flight=g,n.abortController=g[1],lf(e,t,o,await hn(g[0],m),d)}catch(b){if(b!==m||!m.aborted)throw b;return cn(e,n),oa}finally{ms(e,n,!1,p)}}function lv(e,t,n){t[0]!==_t&&(e.status="success",e.error=void 0,t[0]===Or?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=n):e.invalid=!0)}function C0(e,t,n){const o=e._cache.get(t.id);if(o!==n||e._committed.some(u=>u.id===t.id&&u._flight===t._flight))return;const s={...t,_notFound:void 0,context:{}};s._flight&&s._flight[2]++,e._cache.set(t.id,s),o&&cn(e,o)}function cv(e,t){return t[0]===dn||t[0]===Zc?{...e,status:t[0]===dn?"error":"notFound",error:t[1],_flight:void 0}:e}function k1(e,t,n,o,s,u,d){const p=t[1][n],m=wr(e,p),g=!!u[3],b=e._cache.get(p.id);let y,w=!1,x;try{if(p.status==="success"&&(y=m.options.shouldReload,typeof y=="function"&&(y=y(_0(e,t,p,m,u[0],s,g))),u[0].signal.aborted&&(x=oa)),!x)if(p.status!=="success")w=!0;else{const Q=g||p.preload?m.options.preloadStaleTime??e.options.defaultPreloadStaleTime??3e4:m.options.staleTime??e.options.defaultStaleTime??0;w=!!(p.invalid||y||y===void 0&&Date.now()-p.updatedAt>=Q&&(u[5]||p.cause==="enter"||u[2].some(ne=>ne.routeId===p.routeId&&ne.id!==p.id)))}}catch(Q){p.invalid=!0,cn(e,p),x=os(e,t,m,Q,u)}const k=m.options.loader,E=typeof k=="function",D=E?k:k?.handler,L=!g||m.options.preload!==!1;let O=L&&k?e._flights?.get(p.id):void 0;O===p._flight||x?O=void 0:O&&!w&&!g&&y===void 0?w=!0:w||(O=void 0);const N=!!(k&&w&&p.status==="success"&&!g&&!u[4]&&((E?void 0:k.staleReloadMode)??e.options.defaultStaleReloadMode)!=="blocking"),V=w&&L,Z=V&&!N&&(p.status!=="success"||!!k),B=n>=d?u[7]:void 0,P=m.lazyFn&&m._lazy!==!0?B:void 0;if(V&&!k&&(p.invalid=!1,p.updatedAt=Date.now()),O&&O[2]++,Z){const Q=p._flight;p._flight=O,of(e,p,Q)?.abort(),n>=d&&(p.status="pending"),B?.()}V||(p.isFetching=!1);const J=!x&&Z?sv(e,t,p,m,D,s,u).then(Q=>(lv(p,Q,g),Q[0]===Or&&(k&&!u[0].signal.aborted&&C0(e,p,b),n>=d&&(p.status="pending")),Q)):Promise.resolve(x??[Or,p.loaderData]),oe=(async()=>{try{const ne=un(m,void 0,P);ne&&await hn(ne,u[0].signal)}catch(ne){if(!t[1].some((ve,ue)=>ue<=n&&(ve.status==="error"||ve.status==="notFound"||ve._notFound)))return[n,os(e,t,m,ne,u)]}const Q=await J;Z&&Q[0]===Or&&p.status==="pending"&&!u[0].signal.aborted&&(p.status="success",B?.())})();if(o.push([n,J,oe]),!N)return J.then(Q=>cv(p,Q));const he={...p,status:"pending",preload:!1,_flight:O};p.invalid=!1,p.isFetching="loader";const K=sv(e,t,he,m,D,s,u).then(Q=>(p.isFetching=!1,lv(he,Q,!1),Q));return(t[2]??=[]).push([n,K,oe,he]),K.then(Q=>cv(he,Q))}async function Tp(e,t,n,o,s=0){const u=n?.[1][1];let d=u?.routeId?t.findIndex(p=>p.routeId===u.routeId):n?.[0]??t.length-1;d<0&&(d=0);for(let p=d;p>=0;p--){const m=wr(e,t[p]);try{const g=un(m,!1);g&&await hn(g,o)}catch(g){if(g===o&&o.aborted)throw g}if(m.options.notFoundComponent)return p}return u?.routeId?d:s}function Va(e,t){t[2]&&(Dt(e,t[2].map(n=>n[3])),t[2]=void 0)}async function uv(e,t,n,o){let s;try{await Promise.all(e.map(u=>u[1].then(async d=>{const p=u[0];if(!(o&&p>=await o)){if(d[0]>=_t)throw[p,d];!s&&d[0]!==Or&&(s=[p,d],await Promise.all((n??[]).map(m=>{if(!(m[0]<=p))return m[1].then(g=>{if(g[0]===_t)throw[m[0],g]})})))}})))}catch(u){return u}return t??s}function lf(e,t,n,o,s,u){for(;o[0]===_t;){const d=o[1],p=d.options;try{if((p.href||d.headers.has("Location"))&&(e.resolveRedirect(d),p.reloadDocument)||(p.reloadDocument?s[3]:s[1]>=20))return o;const m=e.buildLocation({...p,_fromLocation:t[0],_includeValidateSearch:!0}),g=m.maskedLocation??m;if(g.external){const b=d.clone();return b.options={...p},b.headers.set("Location",g.publicHref),e.resolveRedirect(b),s[3]?[_t,b]:[_t,b,g]}
11return[_t,d,m]}catch(m){o=u?[dn,m]:af(n,m),u=!0}}return o}async function R0(e,t,n,o,s,u){const d=t[1];let p=await s,m=!1;const g=d.findIndex(x=>x._notFound),b=x=>x[1][0]===Zc?Tp(e,d,x,o.signal):x[0];let y=g<0?d.length:g;if((p?.[1][0]??0)>=_t)y=0;else if(p){y=p[2]??=await b(p);for(const x of n){if(x[0]>=y)break;const k=await x[1];if(k[0]!==Or&&k[0]<_t&&!("loaderData"in d[x[0]])){p=[x[0],k],y=p[2]=await b(p);break}}}for(const x of n){if(x[0]>=y)break;const k=await x[2];if(k){p=k;break}}if((p?.[1][0]??0)>=_t){const x=p[1];if(x[0]!==_t||x[1].options.reloadDocument||x[2])return Va(e,t),x;m=!0,p=[0,[dn,new Error("Too many redirects")]]}const w=p?p[2]??await b(p):g;if(w>=0){const x=p?.[1],k=x?.[0],E=d[w],D=x?.[1],L=()=>{x&&(E._notFound=void 0,k===dn?E.status="error":(D.routeId=E.routeId,E.routeId===e.routeTree.id?(E.status="success",E._notFound=!0):E.status="notFound"),E.error=D,E.isFetching=!1)};L(),x||u?.();const O=wr(e,E);try{await hn(x?Promise.resolve().then(()=>un(O,k===dn?"errorComponent":"notFoundComponent")):Promise.all([un(O),un(O,"notFoundComponent")]),o.signal)}catch(N){if(N===o.signal&&o.signal.aborted)return Va(e,t),oa}x?m&&(o.abort(),await Promise.all([...n.map(N=>N[1]),...n.map(N=>N[2]),...(t[2]??[]).map(N=>N[1])]),Va(e,t),Dt(e,d),L()):E.status="success"}return t}async function cf(e,t,n,o=0,s=t[1].length){const u=t[1];for(let d=o;d<s;d++){const p=u[d],m=wr(e,p).options;if(m.head||m.scripts)try{const g={ssr:e.options.ssr,matches:u,match:p,params:p.params,loaderData:p.loaderData},[b,y]=await hn(Promise.all([m.head?.(g),m.scripts?.(g)]),n);p.meta=b?.meta,p.links=b?.links,p.headScripts=b?.scripts,p.styles=b?.styles,p.scripts=y}catch(g){if(g===n&&n.aborted)break;console.error(g)}if(p.status!=="success"||p._notFound)break}return t}async function I0(e,t,n,o){const s=[t,n],u=o[0].signal;let d;try{const p=e.stores.matches.get();let m=n.findIndex(L=>L._notFound);if(e.options.notFoundMode!=="root"&&m>=0){const L=await Tp(e,n,void 0,u,m);n[m]._notFound=void 0,n[L]._notFound=!0,m=L}let g=m<0?n.length:m+1,b=0;for(;b<g&&b!==m;){const L=n[b],O=o[2][b],N=p[b];if(O?.id!==L.id||O.status!=="success"||L.preload||N?.id!==L.id||N.status!=="success"||(b++,O._notFound||N._notFound))break}const y=[],w=o[6]??0;let x=w?Promise.resolve(n[w-1]):void 0;const k=()=>{for(let L=w;L<g&&!u.aborted;L++)x=k1(e,s,L,y,x,o,b)},E=await S1(e,s,o,g,k,b);if(E){if(o[4]=!0,g=E[0],E[1][0]===Zc){const L=await Tp(e,n,E,u);E[2]=L,g=Math.min(g,L+1)}else E[1][0]>=_t&&(g=0);k()}if(!u.aborted&&!o[3]){const L=[];for(const[O,N]of e._flights??[])N[2]||(e._flights.delete(O),L.push(N[1]));for(const O of L)O.abort()}const D=R0(e,s,y,o[0],uv(y,E,s[2]),o[7]);s[2]?.length&&(s[3]=uv(s[2],void 0,void 0,D.then(L=>ps(L)?0:nf(n).length,()=>0))),d=await D}catch(p){if(Va(e,s),p===u&&u.aborted)return oa;throw p}return ps(d)?d:cf(e,d,u,o[6]===n.length?o[6]:0)}function Lp(e,t){if(e._tx!==t)return;const n=t[3],o=e.stores.matches.get();let s=e._pending;for(let u=0;u<n.length;u++){const d=n[u],p=d.status==="success"&&!d._notFound,m=o[u]?.id===d.id&&o[u]?.status==="pending";if(p&&!m)continue;const g=wr(e,d),b=p||d.invalid?0:g.options.pendingMs??e.options.defaultPendingMs,y=g.options.pendingComponent??e.options.defaultPendingComponent;if(!y||typeof b!="number"||b===1/0){s&&(s[0]=t,s[2]=0,s[4]=!0);return}const w=g.options.pendingMinMs??e.options.defaultPendingMinMs??0;let x=!1;if(s?.[1]===d.id?(x=s[0]!==t,s[0]=t):(clearTimeout(s?.[3]),e._pending=s=void 0),s||(e._pending=s=[t,d.id,m?Date.now()+w:t[4]+b,void 0,m||void 0,y]),s[4]&&!x&&s[5]===y)return;if(s[5]=y,!s[4]){clearTimeout(s[3]);const D=s[2]-Date.now();if(D>0){s[3]=setTimeout(()=>Lp(e,t),D);return}s[2]=0}const k=n.map(D=>({...D,_flight:void 0}));k[u].status="pending";const E=s[4]=e.startTransition(()=>e.stores.setMatches(k),k).then(D=>(D&&e._pending===s&&s[4]===E&&!s[2]&&(s[2]=Date.now()+w),D));return}}function Ji(e,t){const n=e._pending;(e._tx===t||!e._tx?.[3].some(o=>o.id===n?.[1]))&&(clearTimeout(n?.[3]),e._pending=void 0)}async function dv(e,t){const n=e._pending;if(!n)return;clearTimeout(n[3]);const o=n[2]-Date.now();if(!n[4]||o<=0||!nf(t[3]).some(u=>u.id===n[1]))return;let s;try{await hn(new Promise(u=>{s=setTimeout(u,o)}),t[0].signal)}catch{}clearTimeout(s)}function O0(e,t){e._committed=t,e.stores.setMatches(t)}function D1(e,t,n,o){const s=e._committed,u=e._lifecycleEnd,d=e._cache;for(const b of n)b.preload=!1,o&&(b._assetEnd=void 0);const p=nf(n).length,m=new Map;{const b=Date.now(),y=new Set;for(let w=0;w<n.length;w++){const x=n[w];(w<p||x.status==="success")&&y.add(x.id)}for(const w of[...s,...d.values()]){if(w.status!=="success"||y.has(w.id))continue;const x=wr(e,w);!x.options.loader||b-w.updatedAt>=(w.preload?x.options.preloadGcTime??e.options.defaultPreloadGcTime??3e5:x.options.gcTime??e.options.defaultGcTime??3e5)||m.set(w.id,d.get(w.id)===w?w:{...w,_flight:void 0,isFetching:!1,context:{}})}}t[3]=[],e._cache=m;const g=e._lifecycleEnd=L0(n);O0(e,n),Dt(e,[...d.values(),...s].filter(b=>b._flight&&m.get(b.id)!==b),n),m1(e,s,n,u,g,t)}async function sc(e,t){let n=e._tx;for(;n&&n!==t;)t=n,await n[5],n=e._tx}
11function $0(e,t,n){const o=n[1].options,s=n[2];if(!s)return e.navigate({...o,replace:!0,ignoreBlocker:!0});if(o.reloadDocument)return e.navigate({href:(s.maskedLocation??s).publicHref,reloadDocument:!0,replace:!0,ignoreBlocker:!0});s._redirects=t[1]+1,e._pendingLocation=s;const u=e.commitLocation({...s,viewTransition:o.viewTransition,replace:!0,resetScroll:o.resetScroll,hashScrollIntoView:o.hashScrollIntoView,ignoreBlocker:!0});return queueMicrotask(()=>{e._pendingLocation===s&&(e._pendingLocation=void 0)}),u}async function T1(e,t,n,o,s){const u=n.map(m=>({...m}));sf(u);for(const m of o)cn(e,u[m[0]]),u[m[0]]=m[3];const d=[t[2],u];let p;try{p=await R0(e,d,o,t[0],s)}catch(m){throw Dt(e,u),m}if(ps(p)){Dt(e,u),p[0]===_t&&e._tx===t&&e._committed===n&&await $0(e,t,p);return}if(await cf(e,p,t[0].signal),e._tx!==t||e._committed!==n){Dt(e,u);return}for(const m of u){const g=e._cache.get(m.id);g?._flight&&g._flight===m._flight&&(e._cache.delete(m.id),cn(e,g))}O0(e,u),Dt(e,n,u)}async function L1(e,t,n,o,s,u){const d=await I0(e,t[2],t[3],[t[0],t[1],e._committed,void 0,s,n,u,o]);if(ps(d)){const y=d[0]===_t&&e._tx===t;if((!y||d[1].options.reloadDocument)&&Ji(e,t),Dt(e,t[3]),t[3]=[],!y)return;if(e._tx!==t){Ji(e,t);return}await $0(e,t,d);return}const p=d[1];if(e._tx===t&&await dv(e,t),e._tx!==t){Ji(e,t),Dt(e,p),Va(e,d);return}const m=t[2],g=Jc(m,e.stores.resolvedLocation.get()),b=d[2];await e.startViewTransition(async()=>{if(e._tx===t&&await dv(e,t),e._tx!==t){Ji(e,t),Dt(e,p),Va(e,d);return}const y=()=>{Ji(e,t),D1(e,t,p,u),e._tx===t&&(e.emit({type:"onLoad",...g}),e._tx===t&&e.emit({type:"onBeforeRouteMount",...g}))},w=await e.startTransition(y,p);if(e._tx!==t){Va(e,d);return}b?.length&&T1(e,t,p,b,d[3]).catch(console.error),e.batch(()=>{e.stores.resolvedLocation.set(m),e.stores.status.set("idle"),e._tx===t&&e.emit({type:"onResolved",...g}),w&&e._tx===t&&e.emit({type:"onRendered",...g})}),e._tx===t&&(e._commitPromise?.resolve(),e._commitPromise=void 0)})}async function A1(e,t){const n=e._tx,o=e.stores.resolvedLocation.get(),s=o??e.stores.location.get(),u=e.latestLocation,d=e._pendingLocation,p=d?.href===u.href?d._redirects??0:0,m=e._handoff,g=m?.[0](),b=new AbortController,y=e._preflight;if(e._preflight=b,g||m?.[1](),y?.abort(),!b.signal.aborted){const V=Jc(u,o);e.emit({type:"onBeforeNavigate",...V}),b.signal.aborted||e.emit({type:"onBeforeLoad",...V})}if(b.signal.aborted){await sc(e,n);return}const w=s.href===u.href;let x=b;const k=e.matchRoutes(u,{_controller:b});sf(k);const E=g?m[1](k):void 0;if(E?x=g:g?.abort(),b.signal.aborted){Dt(e,k),await sc(e,n);return}e._preflight=void 0;let D;const L=()=>L1(e,N,w,()=>Lp(e,N),t?.sync,E),O=t?.sync?new Promise(V=>D=V):Promise.resolve().then(L),N=[x,p,u,k,Date.now(),O.then(()=>sc(e,N))];if(e._tx=N,n){for(const V of e.stores.matches.get()){if(e._tx!==N)break;V.isFetching&&ms(e,V,!1)}n[0].abort(),Dt(e,n[3],N[3],!0)}if(e._tx!==N){Dt(e,N[3]),N[3]=[],D?.(),await sc(e,N);return}e.batch(()=>{e.stores.status.set("pending"),e.stores.location.set(u)}),(E||!e._committed.length&&k[0]?.status!=="success"&&!k.some(V=>V._notFound))&&Lp(e,N),D?.(L()),await N[5]}async function _1(e,t){let n=e.buildLocation(t);for(let o=0;;o++){const s=e._committed,u=new AbortController;let d,p,m;try{try{d=e.matchRoutes(n,{_controller:u}),sf(d),p=(e._preloads??=new Map).set(u,d),m=await I0(e,n,d,[u,o,s,!0])}finally{p&&(p=p.delete(u),Dt(e,d)),u.abort()}if(!ps(m))return m[1];if(!p||m.length<3)return;n=m[2]}catch(g){Wa(g)||console.error(g);return}}}async function C1(e){const t=window.$_TSR,n=e.options.serializationAdapters;n?.length&&(t.t=new Map(n.map(K=>[K.key,K.fromSerializable])),t.buffer.forEach(K=>K())),t.initialized=!0;const o=t.router;e.ssr={manifest:o.manifest},e.options.ssr={nonce:document.querySelector('meta[property="csp-nonce"]')?.content};const s=o.matches,u=new AbortController,d=e._preflight;e._preflight=u,d?.abort();const p=()=>e._preflight===u;let m,g,b,y;try{if(await hn(e.options.hydrate?.(o.dehydratedData),u.signal),!p())return;const K=e.history.location;b=K.href,y=K.state,e.updateLatestLocation(),m=e.latestLocation,e.stores.location.set(m),g=e.matchRoutes(m,{_controller:u})}catch(K){if(p()&&(e._preflight=void 0),u.abort(K),K!==u.signal)throw K}if(!p())return;const w=[];let x,k=0;const E=K=>{k=Math.min(k,K+1);const Q=w.splice(K);for(const ne of Q)wr(e,ne).options.loader&&(ne.status==="success"||!ne.invalid&&"loaderData"in ne)&&C0(e,{...ne,status:"success",error:void 0,preload:!0},e._cache.get(ne.id));Dt(e,Q)},D=s.length>g.length?g.findIndex(K=>
11K._notFound)+1:s.length;let L=!1;for(let K=0;K<D;K++){const Q=g[K],ne=s[K];if(typeof ne.i!="string"||_D(ne.i)!==Q.id){x??=K;break}k=K+1;const ve=wr(e,Q);if(("l"in ne||ne.s==="success"&&ne.e===void 0&&ve.options.loader)&&(Q.loaderData=ne.l),Q.status=ne.s,Q.ssr=ne.ssr,ve.options.ssr=Q.ssr,Q.updatedAt=ne.u,Q.error=ne.e,Q._notFound||=ne.g,Q.status==="error"||Q.status==="notFound"||Q._notFound){L=!0,w.push(Q),(Q.ssr===!1||Q.ssr==="data-only")&&(x??=K);break}if(Q.status==="pending"){x??=K;break}w.push(Q),Q.ssr==="data-only"&&(x??=K)}!L&&w.length===D&&D<g.length&&(x=D);const O=w.map(async K=>{try{const Q=wr(e,K);return await(K._notFound?Promise.all([un(Q),un(Q,"notFoundComponent")]):un(Q,K.status==="error"?"errorComponent":K.status==="notFound"?"notFoundComponent":void 0)),!0}catch{return!1}});let N=0;try{for(;N<O.length&&await hn(O[N],u.signal);)N++}catch{return}if(!p())return;N<w.length&&E(N);const V=Math.max(x===w.length?w.length+1:w.length,N<O.length?N:k);for(let K=0;K<V;K++){const Q=g[K],ne=wr(e,Q),ve=g[K-1]?.context??e.options.context??{};let ue;if(ne.options.context){try{ue=Q._ctx=ne.options.context({deps:Q.loaderDeps,params:Q.params,context:ve,location:m,navigate:F=>e.navigate({...F,_fromLocation:m}),buildLocation:e.buildLocation,cause:Q.cause,abortController:u,preload:!1,matches:g,routeId:ne.id})||{}}catch{if(!p())return;if(Q.status!=="error"&&Q.status!=="notFound"&&!Q._notFound){x=Math.min(x??K,K),E(K);break}}if(!p())return}Q.context={...ve,...ue,...w[K]&&s[K].b}}if(await cf(e,[m,g],u.signal,0,k),!p())return;const Z=x!==void 0||w.length<D,B=L&&w.length===D?g:w;let P=Z?g:B,J;if(Z&&x!==void 0){const K=P[x];J=K.ssr==="data-only"&&k>x+1?k:void 0,P=P.slice(),P[x]={...K,status:"pending",ssr:K.ssr==="data-only"?"data-only":!1,_assetEnd:J}}const oe=()=>{const K=e.history.location;return Z&&!e._tx&&K.href===b&&K.state===y&&e._committed===B&&B.length&&!u.signal.aborted?u:void 0},he=[oe,K=>{if(e._handoff!==he)return;e._handoff=void 0;const Q=B.length;if(!K||!oe()||B.some((ue,F)=>ue.id!==K[F]?.id)){u.abort();return}let ne=J;if(ne!==void 0){for(let ue=Q;ue<ne;ue++)if(g[ue]?.id!==K[ue]?.id){ne=ue>x+1?ue:void 0;break}}const ve=B.map(ue=>({...ue}));ne!==void 0&&(ve[x]._assetEnd=ne),Dt(e,K.splice(0,Q,...ve));for(let ue=Q;ue<K.length;ue++){const F=K[ue],te=g[ue];te?.id===F.id&&te._ctx&&(F._ctx=te._ctx),F.abortController=u}return Q}];e._committed=B,e._lifecycleEnd=L0(B),e._handoff=he,e._preflight=void 0,e.batch(()=>{e.stores.setMatches(P),e.stores.status.set("idle"),Z||e.stores.resolvedLocation.set(e.stores.location.get())})}const pn=Symbol.asyncIterator,N0=Symbol.hasInstance,Yo=Symbol.isConcatSpreadable,fn=Symbol.iterator,H0=Symbol.match,P0=Symbol.matchAll,j0=Symbol.replace,q0=Symbol.search,M0=Symbol.species,F0=Symbol.split,U0=Symbol.toPrimitive,Ko=Symbol.toStringTag,B0=Symbol.unscopables,z0={[pn]:0,[N0]:1,[Yo]:2,[fn]:3,[H0]:4,[P0]:5,[j0]:6,[q0]:7,[M0]:8,[F0]:9,[U0]:10,[Ko]:11,[B0]:12},R1={0:pn,1:N0,2:Yo,3:fn,4:H0,5:P0,6:j0,7:q0,8:M0,9:F0,10:U0,11:Ko,12:B0},I1={2:!0,3:!1,1:void 0,0:null,4:-0,5:Number.POSITIVE_INFINITY,6:Number.NEGATIVE_INFINITY,7:NaN},O1={0:"Error",1:"EvalError",2:"RangeError",3:"ReferenceError",4:"SyntaxError",5:"TypeError",6:"URIError"},$1={0:Error,1:EvalError,2:RangeError,3:ReferenceError,4:SyntaxError,5:TypeError,6:URIError};function Oe(e,t,n,o,s,u,d,p,m,g,b,y){return{t:e,i:t,s:n,c:o,m:s,p:u,e:d,a:p,f:m,b:g,o:b,l:y}}function la(e){return Oe(2,void 0,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}const V0=la(2),G0=la(3),N1=la(1),H1=la(0),P1=la(4),j1=la(5),q1=la(6),M1=la(7);function F1(e){switch(e){case'"':return'\\"';case"\\":return"\\\\";case`
12`: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}}function ca(e){let t="",n=0,o;for(let s=0,u=e.length;s<u;s++)o=F1(e[s]),o&&(t+=e.slice(n,s)+o,n=s+1);return n===0?t=e:t+=e.slice(n),t}function U1(e){switch(e){case"\\\\":return"\\";case'\\"':return'"';case"\\n":return`
13`;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 ua(e){return e.replace(/(\\\\|\\"|\\n|\\r|\\b|\\t|\\f|\\u2028|\\u2029|\\x3C)/g,U1)}const lc="__SEROVAL_REFS__",W0=new Map,Vo=new Map;function X0(e){return W0.has(e)}function B1(e){return Vo.has(e)}function z1(e){if(X0(e))return W0.get(e);throw new xT(e)}function V1(e){if(B1(e))return Vo.get(e);throw new ET(e)}typeof globalThis<"u"?Object.defineProperty(globalThis,lc,{value:Vo,configurable:!0,writable:!1,enumerable:!1}):typeof window<"u"?Object.defineProperty(window,lc,{value:Vo,configurable:!0,writable:!1,enumerable:!1}):typeof self<"u"?Object.defineProperty(self,lc,{value:Vo,configurable:!0,writable:!1,enumerable:!1}):typeof global<"u"&&Object.defineProperty(global,lc,{value:Vo,configurable:!0,writable:!1,enumerable:!1});function uf(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 G1(e){const t=O1[uf(e)];return e.name!==t?{name:e.name}:e.constructor.name!==t?{name:e.constructor.name}:{}}function Y0(e,t){let n=G1(e);const o=Object.getOwnPropertyNames(e);for(let s=0,u=o.length,d;s<u;s++)d=o[s],d!=="name"&&d!=="message"&&(d==="stack"?t&4&&(n=n||{},n[d]=e[d]):(n=n||{},n[d]=e[d]));return n}function K0(e){return Object.isFrozen(e)?3:Object.isSealed(e)?2:Object.isExtensible(e)?0:1}
13function W1(e){switch(e){case Number.POSITIVE_INFINITY:return j1;case Number.NEGATIVE_INFINITY:return q1}return e!==e?M1:Object.is(e,-0)?P1:Oe(0,void 0,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function Q0(e){return Oe(1,void 0,ca(e),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function X1(e){return Oe(3,void 0,""+e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function Y1(e){return Oe(4,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function K1(e,t){const n=t.valueOf();return Oe(5,e,n!==n?"":t.toISOString(),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function zn(e,t,n){return Oe(36,e,n.toString(),t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function Q1(e,t){return Oe(6,e,void 0,ca(t.source),t.flags,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function J1(e,t){return Oe(17,e,z0[t],void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function Z1(e,t){return Oe(18,e,ca(z1(t)),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function eT(e,t,n){return Oe(25,e,n,ca(t),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function tT(e,t,n){return Oe(9,e,void 0,void 0,void 0,void 0,void 0,n,void 0,void 0,K0(t),void 0)}function rT(e,t){return Oe(21,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function nT(e,t,n){return Oe(15,e,void 0,t.constructor.name,void 0,void 0,void 0,void 0,n,t.byteOffset,void 0,t.length)}function aT(e,t,n){return Oe(16,e,void 0,t.constructor.name,void 0,void 0,void 0,void 0,n,t.byteOffset,void 0,t.length)}function oT(e,t,n){return Oe(20,e,void 0,void 0,void 0,void 0,void 0,void 0,n,t.byteOffset,void 0,t.byteLength)}function iT(e,t,n){return Oe(13,e,uf(t),void 0,ca(t.message),n,void 0,void 0,void 0,void 0,void 0,void 0)}function sT(e,t,n){return Oe(14,e,uf(t),void 0,ca(t.message),n,void 0,void 0,void 0,void 0,void 0,void 0)}function lT(e,t){return Oe(7,e,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0,void 0)}function cT(e,t){return Oe(28,void 0,void 0,void 0,void 0,void 0,void 0,[e,t],void 0,void 0,void 0,void 0)}function uT(e,t){return Oe(30,void 0,void 0,void 0,void 0,void 0,void 0,[e,t],void 0,void 0,void 0,void 0)}function dT(e,t,n){return Oe(31,e,void 0,void 0,void 0,void 0,void 0,n,t,void 0,void 0,void 0)}function hT(e,t){return Oe(32,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function pT(e,t){return Oe(33,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function fT(e,t){return Oe(34,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function mT(e,t,n,o){return Oe(35,e,n,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0,o)}const gT={parsing:1,serialization:2,deserialization:3};function yT(e){return`Seroval Error (step: ${gT[e]})`}const bT=(e,t)=>yT(e);var J0=class extends Error{constructor(e,t){super(bT(e)),this.cause=t}},hv=class extends J0{constructor(e){super("parsing",e)}},vT=class extends J0{constructor(e){super("deserialization",e)}};function gn(e){return`Seroval Error (specific: ${e})`}var eu=class extends Error{constructor(e){super(gn(1)),this.value=e}},df=class extends Error{constructor(e){super(gn(2))}},wT=class extends Error{constructor(e){super(gn(3))}},As=class extends Error{constructor(e){super(gn(4))}},xT=class extends Error{constructor(e){super(gn(5)),this.value=e}},ET=class extends Error{constructor(e){super(gn(6))}},ST=class extends Error{constructor(e){super(gn(7))}},$r=class extends Error{constructor(e){super(gn(8))}},Z0=class extends Error{constructor(e){super(gn(9))}},kT=class{constructor(e,t){this.value=e,this.replacement=t}};const hf=()=>{const e={p:0,s:0,f:0};return e.p=new Promise((t,n)=>{e.s=t,e.f=n}),e},DT=()=>{const e=[],t=[];let n=!0,o=!1,s=0;const u={flush(d,p,m){for(m=0;m<s;m++)t[m]&&t[m][p](d)},up(d,p,m,g){for(p=0,m=e.length;p<m;p++)g=e[p],!n&&p===m-1?d[o?"return":"throw"](g):d.next(g)},on(d,p){return n&&(p=s++,t[p]=d),u.up(d),()=>{n&&(t[p]=t[s],t[s--]=void 0)}}};return{__SEROVAL_STREAM__:!0,on(d){return u.on(d)},next(d){n&&(e.push(d),u.flush(d,"next"))},throw(d){n&&(e.push(d),u.flush(d,"throw"),n=!1,o=!1,t.length=0)},return(d){n&&(e.push(d),u.flush(d,"return"),n=!1,o=!0,t.length=0)}}},TT=e=>t=>()=>{let n=0;const o={[e](){return o},next(){if(n>t.d)return{done:!0,value:void 0};const s=n++,u=t.v[s];if(s===t.t)throw u;return{done:s===t.d,value:u}}};return o},LT=(e,t)=>n=>()=>{let o=0,s=-1,u=!1;const d=[],p=[],m={finalize(b=0,y=p.length){for(;b<y;b++)p[b].s({done:!0,value:void 0})}};n.on({next(b){const y=p.shift();y&&y.s({done:!1,value:b}),d.push(b)},throw(b){const y=p.shift();y&&y.f(b),m.finalize(),s=d.length,u=!0,d.push(b)},return(b){const y=p.shift();y&&y.s({done:!0,value:b}),m.finalize(),s=d.length,d.push(b)}});const g={[e](){return g},next(){if(s===-1){const w=o++;if(w>=d.length){const x=t();return p.push(x),x.p}return{done:!1,value:d[w]}}if(o>s)return{done:!0,value:void 0};const b=o++,y=d[b];if(b!==s)return{done:!1,value:y};if(u)throw y;return{done:!0,value:y}}};return g},AT=e=>{const t=atob(e),n=t.length,o=new Uint8Array(n);for(let s=0;s<n;s++)o[s]=t.charCodeAt(s);return o.buffer};
13function _T(e){return"__SEROVAL_SEQUENCE__"in e}function ex(e,t,n){return{__SEROVAL_SEQUENCE__:!0,v:e,t,d:n}}function CT(e){const t=[];let n=-1,o=-1;const s=e[fn]();for(;;)try{const u=s.next();if(t.push(u.value),u.done){o=t.length-1;break}}catch(u){n=t.length,t.push(u)}return ex(t,n,o)}const RT=TT(fn);function IT(e){return RT(e)}const OT={},$T={},NT={0:{},1:{},2:{},3:{},4:{},5:{}};function HT(e){return"__SEROVAL_STREAM__"in e}function _s(){return DT()}function PT(e){const t=_s(),n=e[pn]();async function o(){try{const s=await n.next();s.done?t.return(s.value):(t.next(s.value),await o())}catch(s){t.throw(s)}}return o().catch(()=>{}),t}const jT=LT(pn,hf);function qT(e){return jT(e)}async function MT(e){try{return[1,await e]}catch(t){return[0,t]}}function FT(e,t){return{plugins:t.plugins,mode:e,marked:new Set,features:127^(t.disabledFeatures||0),refs:t.refs||new Map,depthLimit:t.depthLimit||1e3}}function Lc(e,t){e.marked.add(t)}function UT(e,t){const n=e.refs.size;return e.refs.set(t,n),n}function tu(e,t){const n=e.refs.get(t);return n!=null?(Lc(e,n),{type:1,value:Y1(n)}):{type:0,value:UT(e,t)}}function pf(e,t){const n=tu(e,t);return n.type===1?n:X0(t)?{type:2,value:Z1(n.value,t)}:n}function Ua(e,t){const n=pf(e,t);if(n.type!==0)return n.value;if(t in z0)return J1(n.value,t);throw new eu(t)}function ru(e,t){const n=tu(e,NT[t]);return n.type===1?n.value:Oe(26,n.value,t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function BT(e){const t=tu(e,OT);return t.type===1?t.value:Oe(27,t.value,void 0,void 0,void 0,void 0,void 0,void 0,Ua(e,fn),void 0,void 0,void 0)}function zT(e){const t=tu(e,$T);return t.type===1?t.value:Oe(29,t.value,void 0,void 0,void 0,void 0,void 0,[ru(e,1),Ua(e,pn)],void 0,void 0,void 0,void 0)}function VT(e,t,n,o){return Oe(n?11:10,e,void 0,void 0,void 0,o,void 0,void 0,void 0,void 0,K0(t),void 0)}function GT(e,t,n,o){return Oe(8,t,void 0,void 0,void 0,void 0,{k:n,v:o},void 0,ru(e,0),void 0,void 0,void 0)}function WT(e,t,n){const o=new Uint8Array(n);let s="";for(let u=0,d=o.length;u<d;u++)s+=String.fromCharCode(o[u]);return Oe(19,t,ca(btoa(s)),void 0,void 0,void 0,void 0,void 0,ru(e,5),void 0,void 0,void 0)}function XT(e,t){return{base:FT(e,t),child:void 0}}var YT=class{constructor(e,t){this._p=e,this.depth=t}parse(e){return pt(this._p,this.depth,e)}};async function KT(e,t,n){const o=[];for(let s=0,u=n.length;s<u;s++)s in n?o[s]=await pt(e,t,n[s]):o[s]=0;return o}async function QT(e,t,n,o){return tT(n,o,await KT(e,t,o))}async function ff(e,t,n){const o=Object.entries(n),s=[],u=[];for(let d=0,p=o.length;d<p;d++)s.push(ca(o[d][0])),u.push(await pt(e,t,o[d][1]));return fn in n&&(s.push(Ua(e.base,fn)),u.push(cT(BT(e.base),await pt(e,t,CT(n))))),pn in n&&(s.push(Ua(e.base,pn)),u.push(uT(zT(e.base),await pt(e,t,PT(n))))),Ko in n&&(s.push(Ua(e.base,Ko)),u.push(Q0(n[Ko]))),Yo in n&&(s.push(Ua(e.base,Yo)),u.push(n[Yo]?V0:G0)),{k:s,v:u}}async function Fh(e,t,n,o,s){return VT(n,o,s,await ff(e,t,o))}async function JT(e,t,n,o){return rT(n,await pt(e,t,o.valueOf()))}async function ZT(e,t,n,o){return nT(n,o,await pt(e,t,o.buffer))}async function eL(e,t,n,o){return aT(n,o,await pt(e,t,o.buffer))}async function tL(e,t,n,o){return oT(n,o,await pt(e,t,o.buffer))}async function pv(e,t,n,o){const s=Y0(o,e.base.features);return iT(n,o,s?await ff(e,t,s):void 0)}async function rL(e,t,n,o){const s=Y0(o,e.base.features);return sT(n,o,s?await ff(e,t,s):void 0)}async function nL(e,t,n,o){const s=[],u=[];for(const[d,p]of o.entries())s.push(await pt(e,t,d)),u.push(await pt(e,t,p));return GT(e.base,n,s,u)}async function aL(e,t,n,o){const s=[];for(const u of o.keys())s.push(await pt(e,t,u));return lT(n,s)}async function tx(e,t,n,o){const s=e.base.plugins;if(s)for(let u=0,d=s.length;u<d;u++){const p=s[u];if(p.parse.async&&p.test(o))return eT(n,p.tag,await p.parse.async(o,new YT(e,t),{id:n}))}}async function oL(e,t,n,o){const[s,u]=await MT(o);return Oe(12,n,s,void 0,void 0,void 0,void 0,void 0,await pt(e,t,u),void 0,void 0,void 0)}function iL(e,t,n,o,s){const u=[],d=n.on({next:p=>{Lc(this.base,t),pt(this,e,p).then(m=>{u.push(hT(t,m))},m=>{s(m),d()})},throw:p=>{Lc(this.base,t),pt(this,e,p).then(m=>{u.push(pT(t,m)),o(u),d()},m=>{s(m),d()})},return:p=>{Lc(this.base,t),pt(this,e,p).then(m=>{u.push(fT(t,m)),o(u),d()},m=>{s(m),d()})}})}async function sL(e,t,n,o){return dT(n,ru(e.base,4),await new Promise(iL.bind(e,t,n,o)))}async function lL(e,t,n,o){const s=[];for(let u=0,d=o.v.length;u<d;u++)s[u]=await pt(e,t,o.v[u]);return mT(n,s,o.t,o.d)}async function cL(e,t,n,o){if(Array.isArray(o))return QT(e,t,n,o);if(HT(o))return sL(e,t,n,o);if(_T(o))return lL(e,t,n,o);let s=o.constructor;if(s!==void 0&&typeof s!="function"){const p=Object.getPrototypeOf(o
13);s=p===null?void 0:p.constructor}if(s===kT)return pt(e,t,o.replacement);const u=await tx(e,t,n,o);if(u)return u;switch(s){case Object:return Fh(e,t,n,o,!1);case void 0:return Fh(e,t,n,o,!0);case Date:return K1(n,o);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return pv(e,t,n,o);case Number:case Boolean:case String:case BigInt:return JT(e,t,n,o);case ArrayBuffer:return WT(e.base,n,o);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return ZT(e,t,n,o);case DataView:return tL(e,t,n,o);case Map:return nL(e,t,n,o);case Set:return aL(e,t,n,o)}if(s===Promise||o instanceof Promise)return oL(e,t,n,o);const d=e.base.features;if(d&32&&s===RegExp)return Q1(n,o);if(d&16)switch(s){case BigInt64Array:case BigUint64Array:return eL(e,t,n,o)}if(d&1&&typeof AggregateError<"u"&&(s===AggregateError||o instanceof AggregateError))return rL(e,t,n,o);if(d&64&&typeof Temporal<"u")switch(s){case Temporal.Instant:return zn(n,0,o);case Temporal.Duration:return zn(n,1,o);case Temporal.PlainDate:return zn(n,2,o);case Temporal.PlainDateTime:return zn(n,3,o);case Temporal.PlainMonthDay:return zn(n,4,o);case Temporal.PlainTime:return zn(n,5,o);case Temporal.PlainYearMonth:return zn(n,6,o);case Temporal.ZonedDateTime:return zn(n,7,o)}if(o instanceof Error)return pv(e,t,n,o);if(fn in o||pn in o)return Fh(e,t,n,o,!!s);throw new eu(o)}async function uL(e,t,n){const o=pf(e.base,n);if(o.type!==0)return o.value;const s=await tx(e,t,o.value,n);if(s)return s;throw new eu(n)}async function pt(e,t,n){if(t>=e.base.depthLimit)throw new Z0(e.base.depthLimit);switch(typeof n){case"boolean":return n?V0:G0;case"undefined":return N1;case"string":return Q0(n);case"number":return W1(n);case"bigint":return X1(n);case"object":if(n){const o=pf(e.base,n);
13return o.type===0?await cL(e,t+1,o.value,n):o.value}return H1;case"symbol":return Ua(e.base,n);case"function":return uL(e,t,n);default:throw new eu(n)}}async function dL(e,t){try{return await pt(e,0,t)}catch(n){throw n instanceof hv?n:new hv(n)}}function rx(e,t){for(let n=0,o=t.length;n<o;n++){const s=t[n];e.has(s)||(e.add(s),s.extends&&rx(e,s.extends))}}function nx(e){if(e){const t=new Set;return rx(t,e),[...t]}}function hL(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 ST(e)}}function pL(e){switch(e){case"constructor":case"__proto__":case"prototype":case"__defineGetter__":case"__defineSetter__":case"__lookupGetter__":case"__lookupSetter__":return!1;default:return!0}}function fL(e){switch(e){case pn:case Yo:case Ko:case fn:return!0;default:return!1}}const mL=1e6,gL=1e4,yL=2e4;function ax(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}}const bL=1e3;function vL(e,t){var n;const o=t.refs||new Map;return"types"in o||Object.assign(o,{types:new Map}),{mode:e,plugins:t.plugins,refs:o,features:(n=t.features)!==null&&n!==void 0?n:127^(t.disabledFeatures||0),depthLimit:t.depthLimit||bL}}function wL(e){return{mode:2,base:vL(2,e),child:void 0}}var xL=class{constructor(e,t){this._p=e,this.depth=t}deserialize(e){return Ge(this._p,this.depth,e)}};function ox(e,t){if(t<0||!Number.isFinite(t)||!Number.isInteger(t))throw new $r({t:4,i:t});if(e.refs.has(t))throw new Error("Conflicted ref id: "+t)}function EL(e,t,n){return ox(e.base,t),e.state.marked.has(t)&&e.base.refs.set(t,n),n}function SL(e,t,n){return ox(e.base,t),e.base.refs.set(t,n),n}function dt(e,t,n){return e.mode===1?EL(e,t,n):SL(e,t,n)}function Ap(e,t,n){if(Object.hasOwn(t,n))return t[n];throw new $r(e)}function kL(e,t){return dt(e,t.i,V1(ua(t.s)))}function DL(e,t,n){const o=n.a,s=o.length,u=dt(e,n.i,new Array(s));for(let d=0,p;d<s;d++)p=o[d],p&&(u[d]=Ge(e,t,p));return ax(u,n.o),u}function fv(e,t,n){pL(t)?e[t]=n:Object.defineProperty(e,t,{value:n,configurable:!0,enumerable:!0,writable:!0})}function TL(e,t,n,o,s){if(typeof o=="string")fv(n,ua(o),Ge(e,t,s));else{const u=Ge(e,t,o);switch(typeof u){case"string":fv(n,u,Ge(e,t,s));break;case"symbol":fL(u)&&(n[u]=Ge(e,t,s));break;default:throw new $r(o)}}}function ix(e,t,n){e.base.refs.types.set(t,n)}function Cs(e,t,n,o){if(e.base.refs.types.get(n)!==o)throw new $r(t)}function sx(e,t,n,o){const s=n.k;if(s.length>0)for(let u=0,d=n.v,p=s.length;u<p;u++)TL(e,t,o,s[u],d[u]);return o}function LL(e,t,n){const o=dt(e,n.i,n.t===10?{}:Object.create(null));return sx(e,t,n.p,o),ax(o,n.o),o}function AL(e,t){return dt(e,t.i,new Date(t.s))}function _L(e,t){if(!(e.base.features&64))throw new df(t);let n;switch(t.c){case 0:n=Temporal.Instant.from(t.s);break;case 1:n=Temporal.Duration.from(t.s);break;case 2:n=Temporal.PlainDate.from(t.s);break;case 3:n=Temporal.PlainDateTime.from(t.s);break;case 4:n=Temporal.PlainMonthDay.from(t.s);break;case 5:n=Temporal.PlainTime.from(t.s);break;case 6:n=Temporal.PlainYearMonth.from(t.s);break;case 7:n=Temporal.ZonedDateTime.from(t.s);break;default:throw new $r(t)}return dt(e,t.i,n)}function CL(e,t){if(e.base.features&32){const n=ua(t.c);if(n.length>yL)throw new $r(t);return dt(e,t.i,new RegExp(n,t.m))}throw new df(t)}function RL(e,t,n){const o=dt(e,n.i,new Set);for(let s=0,u=n.a,d=u.length;s<d;s++)o.add(Ge(e,t,u[s]));return o}function IL(e,t,n){const o=dt(e,n.i,new Map);for(let s=0,u=n.e.k,d=n.e.v,p=u.length;s<p;s++)o.set(Ge(e,t,u[s]),Ge(e,t,d[s]));return o}function OL(e,t){if(t.s.length>mL)throw new $r(t);return dt(e,t.i,AT(ua(t.s)))}function $L(e,t,n){var o;const s=hL(n.c),u=Ge(e,t,n.f),d=(o=n.b)!==null&&o!==void 0?o:0;if(d<0||d>u.byteLength)throw new $r(n);return dt(e,n.i,new s(u,d,n.l))}function NL(e,t,n){var o;const s=Ge(e,t,n.f),u=(o=n.b)!==null&&o!==void 0?o:0;if(u<0||u>s.byteLength)throw new $r(n);return dt(e,n.i,new DataView(s,u,n.l))}function lx(e,t,n,o){if(n.p){const s=sx(e,t,n.p,{});
13Object.defineProperties(o,Object.getOwnPropertyDescriptors(s))}return o}function HL(e,t,n){return lx(e,t,n,dt(e,n.i,new AggregateError([],ua(n.m))))}function PL(e,t,n){const o=Ap(n,$1,n.s);return lx(e,t,n,dt(e,n.i,new o(ua(n.m))))}function jL(e,t,n){const o=hf(),s=dt(e,n.i,o.p),u=Ge(e,t,n.f);return n.s?o.s(u):o.f(u),s}function qL(e,t,n){return dt(e,n.i,Object(Ge(e,t,n.f)))}function ML(e,t,n){const o=e.base.plugins;if(o){const s=ua(n.c);for(let u=0,d=o.length;u<d;u++){const p=o[u];if(p.tag===s)return dt(e,n.i,p.deserialize(n.s,new xL(e,t),{id:n.i}))}}throw new wT(n.c)}function FL(e,t){const n=dt(e,t.i,dt(e,t.s,hf()).p);return ix(e,t.s,22),n}function UL(e,t,n){const o=e.base.refs.get(n.i);if(o){Cs(e,n,n.i,22),o.s(Ge(e,t,n.a[1]));return}throw new As("Promise")}function BL(e,t,n){const o=e.base.refs.get(n.i);if(o){Cs(e,n,n.i,22),o.f(Ge(e,t,n.a[1]));return}throw new As("Promise")}function zL(e,t,n){return Ge(e,t,n.a[0]),IT(Ge(e,t,n.a[1]))}function VL(e,t,n){return Ge(e,t,n.a[0]),qT(Ge(e,t,n.a[1]))}function GL(e,t,n){const o=dt(e,n.i,_s());ix(e,n.i,31);const s=n.a,u=s.length;if(u)for(let d=0;d<u;d++)Ge(e,t,s[d]);return o}function WL(e,t,n){const o=e.base.refs.get(n.i);if(o){Cs(e,n,n.i,31),o.next(Ge(e,t,n.f));return}throw new As("Stream")}function XL(e,t,n){const o=e.base.refs.get(n.i);if(o){Cs(e,n,n.i,31),o.throw(Ge(e,t,n.f));return}throw new As("Stream")}function YL(e,t,n){const o=e.base.refs.get(n.i);if(o){Cs(e,n,n.i,31),o.return(Ge(e,t,n.f));return}throw new As("Stream")}function KL(e,t,n){Ge(e,t,n.f)}function QL(e,t,n){Ge(e,t,n.a[1])}function JL(e,t,n){const o=dt(e,n.i,ex([],n.s,n.l));for(let s=0,u=n.a.length;s<u;s++)o.v[s]=Ge(e,t,n.a[s]);return o}function Ge(e,t,n){if(t>e.base.depthLimit)throw new Z0(e.base.depthLimit);switch(t+=1,n.t){case 2:return Ap(n,I1,n.s);case 0:return Number(n.s);case 1:return ua(String(n.s));case 3:if(String(n.s).length>gL)throw new $r(n);return BigInt(n.s);case 4:return e.base.refs.get(n.i);case 18:return kL(e,n);case 9:return DL(e,t,n);case 10:case 11:return LL(e,t,n);case 5:return AL(e,n);case 6:return CL(e,n);case 7:return RL(e,t,n);case 8:return IL(e,t,n);case 19:return OL(e,n);case 16:case 15:return $L(e,t,n);case 20:return NL(e,t,n);case 14:return HL(e,t,n);case 13:return PL(e,t,n);case 12:return jL(e,t,n);case 17:return Ap(n,R1,n.s);case 21:return qL(e,t,n);case 25:return ML(e,t,n);case 22:return FL(e,n);case 23:return UL(e,t,n);case 24:return BL(e,t,n);case 28:return zL(e,t,n);case 30:return VL(e,t,n);case 31:return GL(e,t,n);case 32:return WL(e,t,n);case 33:return XL(e,t,n);case 34:return YL(e,t,n);case 27:return KL(e,t,n);case 29:return QL(e,t,n);case 35:return JL(e,t,n);case 36:return _L(e,n);default:throw new df(n)}}function ZL(e,t){try{return Ge(e,0,t)}catch(n){throw new vT(n)}}function eA(e,t){return ZL(wL({plugins:nx(t.plugins),refs:t.refs,features:t.features,disabledFeatures:t.disabledFeatures,depthLimit:t.depthLimit}),e)}async function tA(e,t={}){const n=XT(1,{plugins:nx(t.plugins),disabledFeatures:t.disabledFeatures});return{t:await dL(n,e),f:n.base.features,m:Array.from(n.base.marked)}}function rA(e){return{tag:"$TSR/t/"+e.key,test:e.test,parse:{sync(t,n){return{v:n.parse(e.toSerializable(t))}},async async(t,n){return{v:await n.parse(e.toSerializable(t))}},stream(t,n){return{v:n.parse(e.toSerializable(t))}}},serialize:void 0,deserialize(t,n){return e.fromSerializable(n.deserialize(t.v))}}}function cx(e){if(Array.isArray(e))return e.flatMap(b=>cx(b));if(typeof e!="string")return[];const t=[];let n=0,o,s,u,d,p;const m=()=>{for(;n<e.length&&/\s/.test(e.charAt(n));)n+=1;return n<e.length},g=()=>(s=e.charAt(n),s!=="="&&s!==";"&&s!==",");for(;n<e.length;){for(o=n,p=!1;m();)if(s=e.charAt(n),s===","){for(u=n,n+=1,m(),d=n;n<e.length&&g();)n+=1;n<e.length&&e.charAt(n)==="="?(p=!0,n=d,t.push(e.slice(o,u)),o=n):n=u+1}else n+=1;(!p||n>=e.length)&&t.push(e.slice(o))}return t}function nA(e){return e instanceof Headers?e:Array.isArray(e)?new Headers(e):typeof e=="object"?new Headers(e):null}function aA(...e){return e.reduce((t,n)=>{const o=nA(n);if(!o)return t;for(const[s,u]of o.entries())s==="set-cookie"?cx(u).forEach(d=>t.append("set-cookie",d)):t.set(s,u);return t},new Headers)}const oA={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 new Error(t.deserialize(e.message))}};var iA=class{constructor(e,t){this.stream=e,this.hint=t?.hint??"binary"}};function ux(e){const t=[];for(let n=0;n<e.length;n+=32768)t.push(String.fromCharCode.apply(null,e.subarray(n,n+32768)));return btoa(t.join(""))}function dx(e){const t=atob(e),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n}const sA=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});function lA(e){try{return"t"+sA.decode(e)}catch{return"b"+ux(e)}}const cA=new TextEncoder;function uA(e){const t=e.slice(1);return e[0]==="t"?cA.encode(t):dx(t)}function dA(e,t,n){n?.throwIfAborted();const o=_s(),s=e.getReader();let u=!0;const d=()=>{u=!1,n?.removeEventListener("abort",m),s.releaseLock()},p=g=>u?(s.cancel(g).catch(()=>{}),d(),!0):!1,m=()=>{p(n.reason)&&o.throw(n.reason)};return n?.addEventListener("abort",m),(async()=>{try{for(;u;){const{done:g,value:b}=await s.read();if(!u)return;if(g){d(),o.return(void 0);return}o.next(t(b))}}catch(g){p(g)&&o.throw(g)}})(),[o,p]}function hA(e,t){let n,o=!1;return new ReadableStream({start(s){const u=e.on({next(d){if(!o)try{s.enqueue(t(d))}catch(p){o=!0;const m=n;n=void 0,m?.(),s.error(p)}},throw(d){o||(o=!0,n=void 0,s.error(d))},return(){o||(o=!0,n=void 0,s.close())}});o?u():n=u},cancel(){const s=n;n=void 0,s?.()}})}function hx(e){return{tag:"tss/RawStream",test:t=>t instanceof iA,parse:{async:async(t,n)=>{const o=await n.parse(t.hint==="text"),[s]=dA(t.stream,t.hint==="text"?lA:ux,e);return{text:o,stream:await n.parse(s)}}},serialize:void 0,deserialize:void 0}}const pA=hx(),fA={tag:"tss/RawStream",test:()=>!1,parse:{},serialize:void 0,deserialize(e,t){return hA(t.deserialize(e.stream),t.deserialize(e.text)?uA:dx)}},Kn={},px=e=>new ReadableStream({start(t){e.on({next(n){try{t.enqueue(n)}catch{}},throw(n){t.error(n)},return(){try{t.close()}catch{}}})}}),mA={tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===Kn},parse:{sync(){return Kn},async async(){return await Promise.resolve(Kn)},stream(){return Kn}},serialize(){return px.toString()},deserialize(){return Kn}};async function fx(e,t){try{const n=await t.read();n.done?(e.return(n.value),t.releaseLock()):(e.next(n.value),await fx(e,t))}catch(n){e.throw(n)}}function gA(e){e.cancel().catch(()=>{}),e.releaseLock()}function mv(e){const t=_s(),n=e.getReader(),o=gA.bind(null,n);return fx(t,n).catch(o),[t,o]}const yA={tag:"seroval/plugins/web/ReadableStream",extends:[mA],test(e){return typeof ReadableStream>"u"?!1:e instanceof ReadableStream},parse:{sync(e,t){return{factory:t.parse(Kn),stream:t.parse(_s())}},async async(e,t){return{factory:await t.parse(Kn),stream:await t.parse(mv(e)[0])}},stream(e,t){const[n,o]=mv(e);return t.addCleanup(o),{factory:t.parse(Kn),stream:t.parse(n)}}},serialize(e,t){return"("+t.serialize(e.factory)+")("+t.serialize(e.stream)+")"},deserialize(e,t){const n=t.deserialize(e.stream);return px(n)}};function mx(e){return[oA,e?hx(e):pA,yA]}const bA=mx();[...bA];function vA(e){return{tag:"tss/RawStream",test:()=>!1,parse:{},serialize:void 0,deserialize(t,n){return e(n.deserialize(t.streamId))}}}function wA(e){return[...Jp()?.serializationAdapters?.map(rA)??[],...e]}function gx(e){return wA(mx(e))}var gv=new TextDecoder,Ar=new Uint8Array,xA=new ByteLengthQueuingStrategy({highWaterMark:0});function EA(e){const t=e.getReader(),n=new Map;let o=0,s,u;const d=()=>{s?.(),s=void 0},p=(y,w)=>{const x=y[1];y[1]=!1,x&&(w===1?x.close():x.error(w[0]))},m=new ReadableStream({start(y){u=y},pull:d,cancel(y){const w=[y===void 0?new Error("Framed response cancelled"):y];o=w,d(),t.cancel(y).catch(()=>{});for(const x of n.values())p(x,w)}});function g(y){const w=n.get(y);if(w)return w;if(n.size>=1024)throw new Error("Too many raw streams");let x;const k=[new ReadableStream({start(E){x=E},cancel(){k[1]!==!1&&(k[1]=null)}},xA),x];return n.set(y,k),o!==0&&p(k,o),k}function b(y){if(y===0||y>>>0!==y)throw new RangeError("Invalid raw stream ID");return g(y)[0]}return(async()=>{let y=Ar,w=0;async function x(){for(;w===y.byteLength;){y=Ar,w=0;const E=await t.read();if(o!==0||E.done)return!1;y=E.value}return!0}async function k(E,D){if(E===0)return Ar;
13if(!await x()){if(D)return;throw new Error("Incomplete frame")}if(y.byteLength-w>=E){const N=y.subarray(w,w+E);return w+=E,w===y.byteLength&&(y=Ar,w=0),N}const L=new Uint8Array(E);let O=0;for(;O<E;){if(!await x())throw new Error("Incomplete frame");const N=Math.min(E-O,y.byteLength-w);L.set(y.subarray(w,w+N),O),w+=N,O+=N}return w===y.byteLength&&(y=Ar,w=0),L}try{for(;o===0;){let E=await k(9,!0);if(o!==0)return;if(!E){for(const Z of n.values())if(Z[1])throw new Error("Incomplete raw stream");o=1,u.close();return}const D=E[0],L=(E[1]<<24|E[2]<<16|E[3]<<8|E[4])>>>0,O=(E[5]<<24|E[6]<<16|E[7]<<8|E[8])>>>0;if(E=Ar,D>3||D===0!=(L===0)||O>16777216||D===2&&O!==0)throw new Error("Invalid frame");const N=D===0?void 0:g(L);if(N?.[1]===!1)throw new Error("Raw stream already ended");let V=await k(O);if(o!==0)return;if(!N){const Z=gv.decode(V);for(V=Ar,u.enqueue(Z);o===0&&u.desiredSize<=0;)await new Promise(B=>{s=B});continue}if(D===1){const Z=N[1];if(Z){if(-Z.desiredSize>134217728){Z.error(new Error(`Raw stream ${L} has too many unread bytes`)),N[1]=null,V=Ar;continue}const B=V.byteLength*4<V.buffer.byteLength?V.slice():V;V=Ar,Z.enqueue(B)}}else p(N,D===2?1:[new Error(gv.decode(V))])}}catch(E){if(o===0){const D=[E];o=D,t.cancel(E).catch(()=>{}),u.error(E);for(const L of n.values())p(L,D)}}finally{y=Ar,t.releaseLock()}})(),[m,b]}const Cr=Symbol.for("TSR_DEFERRED_PROMISE");function SA(e,t){const n=e;return n[Cr]||(n[Cr]={status:"pending"},n.then(o=>{n[Cr].status="success",n[Cr].data=o}).catch(o=>{n[Cr].status="error",n[Cr].error={data:f1(o),__isServerError:!0}})),n}const kA="Error preloading route! ☝️";function yx(e,t){if(e)return typeof e=="string"?e:e[t]}function DA(e){return e?.scriptFormat??"module"}function TA(e,t,n){const o=LA(t),s=yx(n,"script")??o.crossOrigin;return{...DA(e)==="iife"?{rel:"preload",as:"script"}:{rel:"modulepreload"},href:o.href,...s?{crossOrigin:s}:{}}}function LA(e){return typeof e=="string"?{href:e,crossOrigin:void 0}:e}function cc(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}const n=new Set;for(const o of t){const s=JSON.stringify(o);n.has(s)||(n.add(s),e.push(o))}}function AA(e){return typeof e=="string"?{href:e,crossOrigin:void 0}:e}function _A(e,t,n,o){const s=A0(e),u=[],d=[];for(const p of s)for(const m of Array.isArray(p.scripts)?p.scripts:[]){if(!m)continue;const{children:g,...b}=m;u.push({tag:"script",attrs:{...b,...o,nonce:n},children:g})}if(t)for(const p of s)for(const m of t.routes[p.routeId]?.scripts??[])d.push({tag:"script",attrs:{...m.attrs,nonce:n},children:m.children});return[u,d]}function CA([e,t],n){return[...e,...t]}var bx=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=t=>{this.originalIndex=t,this._branch=void 0;const n=this.options,o=!n?.path&&!n?.id;this.parentRoute=this.options.getParentRoute?.(),o?this._path=Xo:this.parentRoute||ds();let s=o?Xo:n?.path;s&&s!=="/"&&(s=g0(s));const u=n?.id||s,d=o?Xo:Wo((this.parentRoute.id==="__root__"?"":this.parentRoute.id)+"/"+(u??""));s==="__root__"&&(s="/");const p=d==="__root__"?"/":s===void 0?this.parentRoute.fullPath:Wo(this.parentRoute.fullPath+"/"+s);this._path=s,this._id=d,this._fullPath=p,this._to=Ir(p)},this.addChildren=t=>this._addFileChildren(t),this._addFileChildren=t=>(Array.isArray(t)&&(this.children=t),typeof t=="object"&&t!==null&&(this.children=Object.values(t)),this),this._addFileTypes=()=>this,this.updateLoader=t=>(Object.assign(this.options,t),this),this.update=t=>(Object.assign(this.options,t),this),this.lazy=t=>(this.lazyFn=t,this),this.redirect=t=>ea({from:this.fullPath,...t}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}},RA=class extends bx{constructor(e){super(e)}};var gs;function _p(e,t,n){try{return eA(e,t)}catch(o){throw wx(n),o}}async function vx(e){e.length>0&&(await Promise.allSettled(e),e.length=0)}function wx(e){for(const t of e)t.catch(()=>{});e.length=0}var IA=Object.prototype.hasOwnProperty;function xx(e){for(const t in e)if(IA.call(e,t))return!0;return!1}async function OA(e,t,n){gs||(gs=gx());const o=t[0],s=o.fetch??n,u=o.data instanceof FormData,d=new Headers(o.headers);if(d.set("x-tsr-serverFn","true"),u||d.set("accept",`${LD}, application/x-ndjson, application/json`),o.method==="GET"){if(u)throw new Error("FormData is not supported with GET requests");const m=await Ex(o);if(m!==void 0){const g=S0({payload:m});e.includes("?")?e+=`&${g}`:e+=`?${g}`}}let p;return o.method==="POST"&&(p=await $A(o),typeof p=="string"&&d.set("content-type","application/json")),NA(()=>s(e,{method:o.method,headers:d,signal:o.signal,body:p}
13))}async function Ex(e){let t;return e.data!==void 0&&(t={data:e.data}),e.context&&xx(e.context)&&((t??={}).context=e.context),t?Sx(t,e.signal):void 0}async function Sx(e,t){t?.throwIfAborted();let n;try{n=await tA(e,{plugins:t?gx(t):gs})}finally{t?.throwIfAborted()}return JSON.stringify(n)}async function $A(e){if(e.data instanceof FormData){let t;return e.context&&xx(e.context)&&(t=await Sx(e.context,e.signal)),t!==void 0&&e.data.set(TD,t),e.data}return Ex(e)}async function NA(e){let t;try{t=await e()}catch(o){if(o instanceof Response)t=o;else throw o}if(t.headers.get("x-tss-raw")==="true")return t;const n=t.headers.get("content-type");if(n||ds(),t.headers.get("x-tss-serialized")){let o;if(n.includes("application/x-tss-framed")){const s=/;\s*v=(\d+)/.exec(n)?.[1];if(s&&+s!=1)throw new Error(`Unsupported framed protocol version ${s}`);if(!t.body)throw new Error("No response body for framed response");const[u,d]=EA(t.body);o=await HA(u,[vA(d),...gs])}else if(n.includes("application/json")){const s=await t.json(),u=[];o=_p(s,{plugins:gs},u),await vx(u)}
13if(o||ds(),o instanceof Error)throw o;return o}if(n.includes("application/json")){const o=await t.json(),s=d0(o);if(s)throw s;if(Wa(o))throw o;return o}if(!t.ok)throw new Error(await t.text());return t}async function HA(e,t){const n=e.getReader(),o={refs:new Map,plugins:t},s=p=>{n.cancel(p).catch(()=>{})};let u;const d=[];try{const p=await n.read();if(p.done)throw new Error("Stream ended before first object");u=_p(JSON.parse(p.value),o,d)}catch(p){throw s(p),n.releaseLock(),p}return(async()=>{const p=[];try{for(;;){const m=await n.read();if(m.done)return;_p(JSON.parse(m.value),o,p),wx(p)}}catch(m){s(m),console.error("Stream processing error:",m)}finally{n.releaseLock()}})(),await vx(d),u}function Rs(e){const t="/_serverFn/"+e;return Object.assign((...s)=>{const u=Jp()?.serverFns?.fetch;return OA(t,s,u??fetch)},{url:t,serverFnMeta:{id:e},[Ep]:!0})}var PA={key:"$TSS/serverfn",test:e=>typeof e!="function"||!(Ep in e)?!1:!!e[Ep],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>Rs(e)},Hc=ae.use,kx=ae.useLayoutEffect;function jA({promise:e}){if(Hc)return Hc(e);const t=SA(e);if(t[Cr].status==="pending")throw t;if(t[Cr].status==="error")throw t[Cr].error;return t[Cr].data}function qA(e){const t=c.jsx(MA,{...e});return e.fallback?c.jsx(ae.Suspense,{fallback:e.fallback,children:t}):t}function MA(e){const t=jA(e);return e.children(t)}var mf=class extends ae.Component{constructor(...e){super(...e),this.state={error:0},this.reset=()=>{this.setState({error:0})}}static getDerivedStateFromProps(e,t){const n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:0}:{resetKey:n}}static getDerivedStateFromError(e){return{error:[e]}}componentDidCatch(e,t){this.props.onCatch?.(e,t)}render(){const e=this.state.error;return e?ae.createElement(this.props.errorComponent??FA,{error:e[0],reset:this.reset}):this.props.children}};function FA({error:e}){const[t,n]=ae.useState(!1);return c.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[c.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),c.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(o=>!o),children:t?"Hide Error":"Show Error"})]}),c.jsx("div",{style:{height:".25rem"}}),t?c.jsx("div",{children:c.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e?.message?c.jsx("code",{children:e.message}):null})}):null]})}var yv=()=>!0,UA=()=>!1;function BA({children:e,fallback:t=null}){return c.jsx(Qc.Fragment,{children:gf()?e:t})}function gf(e=!0){return Qc.useSyncExternalStore(zA,yv,e?UA:yv)}function zA(){return()=>{}}var Dx=ae.createContext(null);function Tt(e){return ae.useContext(Dx)}var yf=ae.createContext(void 0),VA=ae.createContext(void 0);function GA({update:e,notify:t,unwatched:n}){return{link:o,unlink:s,propagate:u,checkDirty:d,shallowPropagate:p};function o(g,b,y){const w=b.depsTail;if(w!==void 0&&w.dep===g)return;const x=w!==void 0?w.nextDep:b.deps;if(x!==void 0&&x.dep===g){x.version=y,b.depsTail=x;return}const k=g.subsTail;if(k!==void 0&&k.version===y&&k.sub===b)return;const E=b.depsTail=g.subsTail={version:y,dep:g,sub:b,prevDep:w,nextDep:x,prevSub:k,nextSub:void 0};x!==void 0&&(x.prevDep=E),w!==void 0?w.nextDep=E:b.deps=E,k!==void 0?k.nextSub=E:g.subs=E}function s(g,b=g.sub){const y=g.dep,w=g.prevDep,x=g.nextDep,k=g.nextSub,E=g.prevSub;return x!==void 0?x.prevDep=w:b.depsTail=w,w!==void 0?w.nextDep=x:b.deps=x,k!==void 0?k.prevSub=E:y.subsTail=E,E!==void 0?E.nextSub=k:(y.subs=k)===void 0&&n(y),x}function u(g){let b=g.nextSub,y;e:do{const w=g.sub;let x=w.flags;if(x&60?x&12?x&4?!(x&48)&&m(g,w)?(w.flags=x|40,x&=1):x=0:w.flags=x&-9|32:x=0:w.flags=x|32,x&2&&t(w),x&1){const k=w.subs;if(k!==void 0){const E=(g=k).nextSub;E!==void 0&&(y={value:b,prev:y},b=E);continue}}if((g=b)!==void 0){b=g.nextSub;continue}for(;y!==void 0;)if(g=y.value,y=y.prev,g!==void 0){b=g.nextSub;continue e}break}while(!0)}function d(g,b){let y,w=0,x=!1;e:do{const k=g.dep,E=k.flags;if(b.flags&16)x=!0;else if((E&17)===17){if(e(k)){const D=k.subs;D.nextSub!==void 0&&p(D),x=!0}}else if((E&33)===33){(g.nextSub!==void 0||g.prevSub!==void 0)&&(y={value:g,prev:y}),g=k.deps,b=k,++w;continue}if(!x){const D=g.nextDep;if(D!==void 0){g=D;continue}}for(;w--;){const D=b.subs,L=D.nextSub!==void 0;if(L?(g=y.value,y=y.prev):g=D,x){if(e(b)){L&&p(D),b=g.sub;continue}x=!1}else b.flags&=-33;b=g.sub;const O=g.nextDep;if(O!==void 0){g=O;continue e}}return x}while(!0)}
13function p(g){do{const b=g.sub,y=b.flags;(y&48)===32&&(b.flags=y|16,(y&6)===2&&t(b))}while((g=g.nextSub)!==void 0)}function m(g,b){let y=b.depsTail;for(;y!==void 0;){if(y===g)return!0;y=y.prevDep}return!1}}function WA(e,t,n){const o=typeof e=="object",s=o?e:void 0;return{next:(o?e.next:e)?.bind(s),error:(o?e.error:t)?.bind(s),complete:(o?e.complete:n)?.bind(s)}}const Cp=[];let Ac=0;const{link:bv,unlink:XA,propagate:YA,checkDirty:Tx,shallowPropagate:vv}=GA({update(e){return e._update()},notify(e){Cp[Rp++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,Pc(e))}});let uc=0,Rp=0,gr,Ip=0;function KA(e){try{++Ip,e()}finally{--Ip||Lx()}}function Pc(e){const t=e.depsTail;let n=t!==void 0?t.nextDep:e.deps;for(;n!==void 0;)n=XA(n,e)}function Lx(){if(!(Ip>0)){for(;uc<Rp;){const e=Cp[uc];Cp[uc++]=void 0,e.notify()}uc=0,Rp=0}}function wv(e,t){const n=typeof e=="function",o=e,s={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?0:1,get(){return gr!==void 0&&bv(s,gr,Ac),s._snapshot},subscribe(u){const d=WA(u),p={current:!1},m=QA(()=>{s.get(),p.current?(gr=void 0,d.next?.(s._snapshot)):p.current=!0});return{unsubscribe:()=>{m.stop()}}},_update(u){const d=gr,p=t?.compare??Object.is;if(n)gr=s,++Ac,s.depsTail=void 0;else if(u===void 0)return!1;n&&(s.flags=5);try{const m=s._snapshot,g=typeof u=="function"?u(m):u===void 0&&n?o(m):u;return m===void 0||!p(m,g)?(s._snapshot=g,!0):!1}finally{gr=d,n&&(s.flags&=-5),Pc(s)}}};return n?(s.flags=17,s.get=function(){const u=s.flags;if(u&16||u&32&&Tx(s.deps,s)){if(s._update()){const d=s.subs;d!==void 0&&vv(d)}}else u&32&&(s.flags=u&-33);return gr!==void 0&&bv(s,gr,Ac),s._snapshot}):s.set=function(u){if(s._update(u)){const d=s.subs;d!==void 0&&(YA(d),vv(d),Lx())}},s}function QA(e){const t=()=>{const o=gr;gr=n,++Ac,n.depsTail=void 0,n.flags=6;try{return e()}finally{gr=o,n.flags&=-5,Pc(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){const o=this.flags;o&16||o&32&&Tx(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,Pc(this)}};return t(),n}var Uh={exports:{}},Bh={},zh={exports:{}},Vh={};var xv;function JA(){if(xv)return Vh;xv=1;var e=Ls();function t(y,w){return y===w&&(y!==0||1/y===1/w)||y!==y&&w!==w}var n=typeof Object.is=="function"?Object.is:t,o=e.useState,s=e.useEffect,u=e.useLayoutEffect,d=e.useDebugValue;function p(y,w){var x=w(),k=o({inst:{value:x,getSnapshot:w}}),E=k[0].inst,D=k[1];return u(function(){E.value=x,E.getSnapshot=w,m(E)&&D({inst:E})},[y,x,w]),s(function(){return m(E)&&D({inst:E}),y(function(){m(E)&&D({inst:E})})},[y]),d(x),x}function m(y){var w=y.getSnapshot;y=y.value;try{var x=w();return!n(y,x)}catch{return!0}}function g(y,w){return w()}var b=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:p;return Vh.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:b,Vh}var Ev;function ZA(){return Ev||(Ev=1,zh.exports=JA()),zh.exports}var Sv;function e_(){if(Sv)return Bh;Sv=1;var e=Ls(),t=ZA();function n(g,b){return g===b&&(g!==0||1/g===1/b)||g!==g&&b!==b}var o=typeof Object.is=="function"?Object.is:n,s=t.useSyncExternalStore,u=e.useRef,d=e.useEffect,p=e.useMemo,m=e.useDebugValue;return Bh.useSyncExternalStoreWithSelector=function(g,b,y,w,x){var k=u(null);if(k.current===null){var E={hasValue:!1,value:null};k.current=E}else E=k.current;k=p(function(){function L(B){if(!O){if(O=!0,N=B,B=w(B),x!==void 0&&E.hasValue){var P=E.value;if(x(P,B))return V=P}return V=B}if(P=V,o(N,B))return P;var J=w(B);return x!==void 0&&x(P,J)?(N=B,P):(N=B,V=J)}var O=!1,N,V,Z=y===void 0?null:y;return[function(){return L(b())},Z===null?void 0:function(){return L(Z())}]},[b,y,w,x]);var D=s(g,k[0],k[1]);return d(function(){E.hasValue=!0,E.value=D},[D]),m(D),D},Bh}var kv;function t_(){return kv||(kv=1,Uh.exports=e_()),Uh.exports}var r_=t_();function n_(e,t){return e===t}function Er(e,t=o=>o,n){const o=n?.compare??n_,s=ae.useCallback(d=>{const{unsubscribe:p}=e.subscribe(d);return p},[e]),u=ae.useCallback(()=>e.get(),[e]);return r_.useSyncExternalStoreWithSelector(s,u,u,t,o)}var Dv={};function Ax(e,t){const n=ae.useRef();return o=>{const s=e?.select?e.select(o):o;return e?.structuralSharing??t.options.defaultStructuralSharing?n.current=ta(n.current,s):s}}function Xa(e){const t=Tt(),n=ae.useContext(e.from?VA:yf),o=e.from??n,s=t.stores.getMatchStore(o),u=Ax(e,t),d=Er(s,p=>p?u(p):Dv);if(d!==Dv)return d;(e.shouldThrow??!0)&&ds()}function _x(e){return Xa({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Cx(e){const{select:t,...n}=e;return Xa({...n,select:o=>t?t(o.loaderDeps):o.loaderDeps})}function Rx(e){return Xa({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function Ix(e){return Xa({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Ox(e){const t=Tt();return ae.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function $x(e){return Xa({...e,select:t=>e.select?e.select(t.context):t.context})}function a_(...e){const t=ae.useRef(e),n=t.current;return e.forEach((o,s)=>{xr(n[s],o,!1,!0)||(n[s]=o)}),t.current}function dc(e,t){e.preloadRoute(t).catch(n=>{console.warn(n),console.warn(kA)})}var o_={compare:(e,t)=>
13e[0]===t[0]&&e[1]===t[1]};function i_(e,t){const n=typeof e=="string"&&us(e);if(n)return t.has(n)?e:null}function s_(e,t,n,o,s){const u=Xb(e.pathname,o),d=Xb(t.pathname,o);return(n?.exact?u!==d:!(u.startsWith(d)&&(u.length===d.length||u[d.length]==="/")))||(n?.includeSearch??!0)&&!xr(e.search,t.search,!n?.exact,n?.explicitUndefined)?!1:n?.includeHash?s&&e.hash===t.hash:!0}function l_(e,t,n){const o=Tt(),s=ae.useRef(null),u=ae.useCallback(ye=>{if(s.current=ye,typeof t=="function")return t(ye);t&&(t.current=ye)},[t]),{activeOptions:d,to:p,preload:m,preloadDelay:g,hashScrollIntoView:b,replace:y,startTransition:w,resetScroll:x,viewTransition:k,ignoreBlocker:E,disabled:D,target:L,onClick:O,onBlur:N,onFocus:V,onMouseEnter:Z,onMouseLeave:B,onTouchStart:P}=e,J=gf(!!d?.includeHash),[oe,he,K]=a_(e.search,e.params,d),[Q,ne]=ae.useMemo(()=>[e,{...e}],[o,e.from,e._fromLocation,e.hash,e.to,oe,he,e.state,e.mask,e.unsafeRelative]),ve=ae.useMemo(()=>{const ye=i_(p,o.protocolAllowlist);if(ye!==void 0){const Sr=[ye??void 0];return()=>Sr}let Pe,We;return Sr=>{Q._fromLocation||(ne._fromLocation=Sr);const pa=o.buildLocation(ne),qr=p_(pa,o,D);return(!Pe||Pe[0]!==qr)&&(Pe=[qr,!(D||qr&&!us(qr))&&void 0],We=[qr,!0]),Pe[1]!==void 0&&s_(Sr,pa,K,o.basepath,J)?We:Pe}},[K,D,J,Q,ne,o,p]),[ue,F]=Er(o.stores.location,ve,o_),te=F===void 0&&ue,fe=D||ue===void 0,He=ae.useRef(!1),_e=e.reloadDocument||te||fe?!1:m??o.options.defaultPreload,$=g??o.options.defaultPreloadDelay??0,X=ae.useCallback(ye=>{const Pe=ye?.isIntersecting;if(!(Pe??_e==="intent")){Pe===!1&&Gh(s);return}if(!$){dc(o,Q);return}is.has(s)||is.set(s,setTimeout(()=>{is.delete(s),dc(o,Q)},$))},[o,Q,s,_e,$]);ae.useEffect(()=>{if(!_e)return;_e==="render"&&!He.current&&(He.current=!0,dc(o,Q));let ye=!0,Pe;return _e==="viewport"&&s.current&&typeof IntersectionObserver=="function"&&(Pe=new IntersectionObserver(We=>{ye&&X(We.pop())},{rootMargin:"100px"}),Pe.observe(s.current)),()=>{ye=!1,Pe?.disconnect(),Gh(s)}},[o,Q,_e,X,s]);const ee=d_(e,n);if(ee.ref=t?u:s,te)return ee.href=te,ee;const se=ye=>{const Pe=L??ye.currentTarget.getAttribute("target");!fe&&!(ye.metaKey||ye.altKey||ye.ctrlKey||ye.shiftKey)&&!ye.defaultPrevented&&(!Pe||Pe==="_self")&&ye.button===0&&(ye.preventDefault(),o.navigate({...Q,replace:y,resetScroll:x,hashScrollIntoView:b,startTransition:w,viewTransition:k,ignoreBlocker:E}))},we=()=>{_e==="intent"&&dc(o,Q)},De=()=>{_e==="intent"&&Gh(s)};
13return ee.onClick=Ho(O,se),ee.onBlur=Ho(N,De),ee.onFocus=Ho(V,X),ee.onMouseEnter=Ho(Z,X),ee.onMouseLeave=Ho(B,De),ee.onTouchStart=Ho(P,we),h_(ee,e,F,ue,fe,n)}var c_={},u_={className:"active"},Nx=new Set(["to","params","search","hash","state","mask","from","unsafeRelative","_fromLocation","reloadDocument","preload","preloadDelay","preloadIntentProximity","hashScrollIntoView","replace","startTransition","resetScroll","viewTransition","ignoreBlocker","activeProps","inactiveProps","activeOptions","_asChild"]);function d_(e,t){const n={};for(const o in e)Nx.has(o)||o==="type"&&t!==void 0||o==="disabled"&&t==="a"||(n[o]=e[o]);return n}function h_(e,t,n,o,s,u){const{activeProps:d,inactiveProps:p,className:m,style:g,target:b}=t,y=h0(n?d:p,{})??(n?u_:c_);Object.assign(e,y),e.href=o,u!=="a"&&(e.disabled=s),e.target=b;const w=y.style;(g||w)&&(e.style=g&&w?{...g,...w}:g||w);const x=y.className;return(m||x)&&(e.className=m?x?`${m} ${x}`:m:x),s&&(e.role="link",e["aria-disabled"]=!0),n&&(e["data-status"]="active",e["aria-current"]="page"),e}var is=new WeakMap,Gh=e=>{clearTimeout(is.get(e)),is.delete(e)},Ho=(e,t)=>e?n=>n.defaultPrevented||(e(n),n.defaultPrevented||t(n)):t;function p_(e,t,n){if(n)return;const o=e.maskedLocation??e,s=o.external?o.publicHref:t.history.createHref(o.publicHref)||"/";if(!((o.external||s!==o.publicHref)&&m0(s,t.protocolAllowlist)))return s}var W=ae.memo(ae.forwardRef((e,t)=>{const n=e._asChild||"a",o=l_(e,t,n),s=typeof e.children=="function"?e.children({isActive:o["data-status"]==="active"}):e.children;return ae.createElement(n,o,s)}),f_);function f_(e,t){let n=0;for(const o in t)if(n++,e[o]!==t[o]&&(!Nx.has(o)||!xr(e[o],t[o],!1,!0)))return!1;for(const o in e)n--;return n===0}var m_=class extends bx{constructor(t){super(t),this.useMatch=n=>Xa({...n,from:this.id}),this.useRouteContext=n=>$x({...n,from:this.id}),this.useSearch=n=>Ix({...n,from:this.id}),this.useParams=n=>Rx({...n,from:this.id}),this.useLoaderDeps=n=>Cx({...n,from:this.id}),this.useLoaderData=n=>_x({...n,from:this.id}),this.useNavigate=()=>Ox({from:this.fullPath}),this.Link=Qc.forwardRef((n,o)=>c.jsx(W,{ref:o,from:this.fullPath,...n}))}};function g_(e){return new m_(e)}function y_(){return e=>v_(e)}var b_=class extends RA{constructor(e){super(e),this.useMatch=t=>Xa({...t,from:this.id}),this.useRouteContext=t=>$x({...t,from:this.id}),this.useSearch=t=>Ix({...t,from:this.id}),this.useParams=t=>Rx({...t,from:this.id}),this.useLoaderDeps=t=>Cx({...t,from:this.id}),this.useLoaderData=t=>_x({...t,from:this.id}),this.useNavigate=()=>Ox({from:this.fullPath}),this.Link=Qc.forwardRef((t,n)=>c.jsx(W,{ref:n,from:this.fullPath,...t}))}};function v_(e){return new b_(e)}function R(e){return t=>{const n=g_(t);return n.isRoot=!1,n}}function A(e,t){let n,o,s;const u=()=>(n||(s=void 0,n=e().then(p=>{n=void 0,d.preload=void 0,o=p[t??"default"]}).catch(p=>{n=void 0,s=p})),n),d=function(m){if(s){if(CD(s)&&typeof sessionStorage<"u"){const g=`tanstack_router_reload:${s.message}`;if(!sessionStorage.getItem(g))throw sessionStorage.setItem(g,"1"),window.location.reload(),new Promise(()=>{})}throw s}if(!o)if(Hc)Hc(u());else throw u();return ae.createElement(o,m)};return d.preload=u,d}function w_(e){const t=Tt(),n=`not-found-${Er(t.stores.location,o=>o.pathname)}-${Er(t.stores.status)}`;return c.jsx(mf,{getResetKey:()=>n,onCatch:(o,s)=>{if(Wa(o))e.onCatch?.(o,s);else throw o},errorComponent:({error:o})=>{if(Wa(o))return e.fallback?.(o);throw o},children:e.children})}function x_(){return c.jsx("p",{children:"Not Found"})}function Hx(e,t,n){return t.options.notFoundComponent?c.jsx(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?c.jsx(e.options.defaultNotFoundComponent,{...n}):c.jsx(x_,{})}function nu(e,t){const n=t?.options.pendingComponent??e.options.defaultPendingComponent;return n?c.jsx(n,{}):null}var E_=(e,t)=>e[0]===t[0]&&e[1]===t[1],Px=(e,t,n)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||n===!1||n==="data-only"||!e.ssr,jx=ae.memo(function({routeId:t}){const n=Tt();return c.jsx(S_,{router:n,match:Er(n.stores.getMatchStore(t))})});function S_({router:e,match:t}){const n=e.routesById[t.routeId],o=nu(e,n),s=n.options.errorComponent??e.options.defaultErrorComponent,u=n.options.onCatch??e.options.defaultOnCatch,d=n.isRoot?n.options.notFoundComponent??e.options.notFoundRoute?.options.component:n.options.notFoundComponent,p=t.ssr===!1||t.ssr==="data-only",m=Px(e,n,t.ssr)&&(n.options.wrapInSuspense??o??(n.options.errorComponent?.preload||p));let g=c.jsx(k_,{match:t});p&&(g=c.jsx(BA,{fallback:o,children:g})),d&&(g=c.jsx(w_,{fallback:w=>{if(w.routeId??=t.routeId,w.routeId!==t.routeId)throw w;return ae.createElement(d,w)},children:g})),s&&(g=c.jsx(mf,{getResetKey:()=>t,errorComponent:s,onCatch:(w,x)=>
13{if(Wa(w))throw w.routeId??=t.routeId,w;u?.(w,x)},children:g})),m&&(g=c.jsx(ae.Suspense,{fallback:o,children:g}));const b=null,y=n.isRoot?n.options.shellComponent:void 0;return c.jsx(yf.Provider,{value:t.routeId,children:y?c.jsxs(y,{children:[g,b]}):c.jsxs(c.Fragment,{children:[g,b]})})}var k_=ae.memo(function({match:t}){const n=Tt(),o=t.routeId,s=n.routesById[o],u=ae.useMemo(()=>{const p=(s.options.remountDeps??n.options.defaultRemountDeps)?.({routeId:o,loaderDeps:t.loaderDeps,params:t._strictParams,search:t._strictSearch});return p?JSON.stringify(p):void 0},[o,t.loaderDeps,t._strictParams,t._strictSearch,s.options.remountDeps,n.options.defaultRemountDeps]),d=ae.useMemo(()=>{const p=s.options.component??n.options.defaultComponent;return p?c.jsx(p,{},u):c.jsx(qx,{})},[u,s.options.component,n.options.defaultComponent]);if(t.status==="pending"){if(n.ssr&&!Px(n,s,t.ssr))return d;if(n._tx)throw n._tx[5];return nu(n,s)}if(t.status==="notFound")return Hx(n,s,t.error);if(t.status==="error")throw t.error;return d}),qx=ae.memo(function(){const t=Tt(),n=ae.useContext(yf);let o,s,u;{const p=t.stores.getMatchStore(n);[o,s]=Er(p,m=>[!!m._notFound,m.error],{compare:E_}),u=Er(t.stores.ids,m=>m[m.indexOf(n)+1])}if(o)return Hx(t,t.routesById[n],s);if(!u)return null;const d=c.jsx(jx,{routeId:u});return n===Xo?c.jsx(ae.Suspense,{fallback:nu(t),children:d}):d});function Mx(e,t){const n=e[1];e.length=0,n?.(t)}function D_({t:e}){const t=Tt(),n=t._rendered??=[];return t.startTransition=(o,s)=>new Promise(u=>{Mx(n,!1),n.push(s,u),e(t),ae.startTransition(o)}),kx(()=>{const o=t.history.subscribe(t.load);t.updateLatestLocation();const s=t.latestLocation,u=t.buildLocation({to:s.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});if(Ir(s.publicHref)!==Ir(u.publicHref))return t.commitLocation({...u,replace:!0,ignoreBlocker:!0}),o;const d=t.stores.resolvedLocation.get();return d?.href===s.href&&d.state.__TSR_key===s.state.__TSR_key?n.push(t.stores.matches.get(),p=>{p&&t.emit({type:"onRendered",...Jc(d,d)})}):t._tx||t.load({sync:!0}).catch(console.error),o},[t,t.history]),null}function T_(){const e=Tt(),t=e.routesById[Xo],n=nu(e,t),o=c.jsxs(c.Fragment,{children:[c.jsx(D_,{t:ae.useState()[1]}),e.ssr?c.jsx(Tv,{}):c.jsx(ae.Suspense,{fallback:n,children:c.jsx(Tv,{})})]});return e.options.InnerWrap?c.jsx(e.options.InnerWrap,{children:o}):o}function Tv(){const e=Tt(),t=e._rendered,n=Er(e.stores.matches,d=>t[0]??d),o=n[0],s=o?.routeId;kx(()=>{t[0]===n&&Mx(t,!0)},[t,n]);const u=s?c.jsx(jx,{routeId:s}):null;return e.options.disableGlobalCatchBoundary?u:c.jsx(mf,{getResetKey:()=>o,onCatch:void 0,children:u})}var L_=e=>({createMutableStore:wv,createReadonlyStore:wv,batch:KA}),A_=e=>new __(e),__=class extends g1{constructor(e){super(e,L_)}};function C_({router:e,children:t,...n}
13){p0(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const o=c.jsx(Dx.Provider,{value:e,children:t});return e.options.Wrap?c.jsx(e.options.Wrap,{children:o}):o}function R_({router:e,...t}){return c.jsx(C_,{router:e,...t,children:c.jsx(T_,{})})}function I_(e){const t=Tt({warn:e?.router===void 0}),n=e?.router||t;return Er(n.stores.__store,Ax(e,n))}function Lv(e,t){if(t)for(const[n,o]of Object.entries(t))n!=="suppressHydrationWarning"&&o!==void 0&&o!==!1&&e.setAttribute(n,typeof o=="boolean"?"":String(o))}function Fx(e){const{attrs:t,children:n,nonce:o,preventScriptHoist:s}=e,u=ae.useMemo(()=>n===void 0?void 0:{__html:n},[n]);switch(e.tag){case"title":return c.jsx("title",{...t,suppressHydrationWarning:!0,children:n});case"meta":return c.jsx("meta",{...t,suppressHydrationWarning:!0});case"link":return c.jsx("link",{...t,precedence:t?.precedence??(t?.rel==="stylesheet"?"default":void 0),nonce:o,suppressHydrationWarning:!0});case"style":return e.inlineCss,c.jsx("style",{...t,dangerouslySetInnerHTML:u,nonce:o});case"script":return c.jsx(O_,{attrs:t,preventScriptHoist:s,children:n});default:return null}}function O_({attrs:e,children:t,preventScriptHoist:n}){Tt();const o=gf(),s=ae.useMemo(()=>t===void 0?void 0:{__html:t},[t]),u=typeof e?.type=="string"&&e.type!==""&&e.type!=="text/javascript"&&e.type!=="module";if(ae.useEffect(()=>{if(!u){if(e?.src){const d=document.createElement("a");d.href=e.src;const p=d.href;for(const g of document.scripts)if(g.src===p)return;const m=document.createElement("script");return Lv(m,e),document.head.appendChild(m),()=>m.remove()}if(typeof t=="string"){const d=typeof e?.type=="string"?e.type:"text/javascript",p=typeof e?.nonce=="string"?e.nonce:void 0;for(const g of document.scripts){if(g.hasAttribute("src"))continue;const b=g.getAttribute("type")??"text/javascript",y=g.getAttribute("nonce")??void 0;if(g.textContent===t&&b===d&&y===p)return}
13const m=document.createElement("script");return m.textContent=t,Lv(m,e),document.head.appendChild(m),()=>m.remove()}}},[e,t,u]),u&&typeof t=="string")return c.jsx("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:s});if(!o){if(e?.src)return c.jsx("script",{...e,suppressHydrationWarning:!0});if(typeof t=="string")return c.jsx("script",{...e,dangerouslySetInnerHTML:s,suppressHydrationWarning:!0})}return null}function $_(e,t,n,o){n=A0(n);const s=n.map(E=>E.meta).filter(E=>E!==void 0),u=[],d={};let p;for(let E=s.length-1;E>=0;E--){const D=s[E];for(let L=D.length-1;L>=0;L--){const O=D[L];if(O)if(O.title)p||(p={tag:"title",children:O.title});else if("script:ld+json"in O)try{const N=JSON.stringify(O["script:ld+json"]);u.push({tag:"script",attrs:{type:"application/ld+json"},children:HD(N)})}catch{}else{const N=O.name??O.property;if(N){if(d[N])continue;d[N]=!0}u.push({tag:"meta",attrs:{...O,nonce:t}})}}}p&&u.push(p),t&&u.push({tag:"meta",attrs:{property:"csp-nonce",content:t}}),u.reverse();const m=n.flatMap(E=>E.links??[]).filter(E=>E!==void 0).map(E=>({tag:"link",attrs:{...E,nonce:t}})),g=e.ssr?.manifest,b=[];g&&(n.forEach(E=>{g.routes[E.routeId]?.css?.forEach(D=>{const L=AA(D);b.push({tag:"link",attrs:{rel:"stylesheet",...L,crossOrigin:yx(o,"stylesheet")??L.crossOrigin,suppressHydrationWarning:!0,nonce:t}})})}),g.inlineStyle&&b.push({tag:"style",attrs:{...g.inlineStyle.attrs,nonce:t},children:g.inlineStyle.children,inlineCss:!0}));const y=[];g&&n.forEach(E=>{g.routes[E.routeId]?.preloads?.forEach(D=>{y.push({tag:"link",attrs:{...TA(g,D,o),nonce:t}})})});const w=n.flatMap(E=>E.styles??[]).filter(E=>E!==void 0).map(({children:E,...D})=>({tag:"style",attrs:{...D,nonce:t},children:E})),x=n.flatMap(E=>E.headScripts??[]).filter(E=>E!==void 0).map(({children:E,...D})=>({tag:"script",attrs:{...D,nonce:t},children:E})),k=[];return cc(k,u),k.push(...y),cc(k,m),k.push(...b),cc(k,w),cc(k,x),k}var N_=e=>{const t=Tt(),n=t.options.ssr?.nonce,o=ae.useCallback(s=>$_(t,n,s,e),[e,n,t]);return Er(t.stores.matches,o,{compare:xr})};function H_(e){const t=N_(e.assetCrossOrigin),n=Tt().options.ssr?.nonce;return c.jsx(c.Fragment,{children:t.map(o=>ae.createElement(Fx,{...o,key:`tsr-meta-${JSON.stringify(o)}`,nonce:n}))})}var P_={suppressHydrationWarning:!0},j_=()=>{const e=Tt(),t=e.options.ssr?.nonce,n=s=>{const u=_A(s,e.ssr?.manifest,t,P_);for(const d of u[1])if(typeof d.attrs?.src=="string"){const p=d;p.preventScriptHoist=!0}return u},o=s=>CA(n(s));return q_(Er(e.stores.matches,o,{compare:xr}))};function q_(e){return c.jsx(c.Fragment,{children:e.map((t,n)=>ae.createElement(Fx,{...t,key:`tsr-scripts-${t.tag}-${n}`}))})}function Av(e){return e!=="__proto__"&&e!=="constructor"&&e!=="prototype"}function Op(e,t){const n=Object.create(null);if(e)for(const o of Object.keys(e))Av(o)&&(n[o]=e[o]);if(t&&typeof t=="object")for(const o of Object.keys(t))Av(o)&&(n[o]=t[o]);return n}function Ux(e){return Object.create(null)}var Bx=()=>{throw new Error("createServerOnlyFn() functions can only be called on the server!")},Ga=(e,t)=>{const n=t||e||{};typeof n.method>"u"&&(n.method="GET");const o=d=>Ga(void 0,{...n,validator:d,inputValidator:d});return Object.assign(d=>Ga(void 0,{...n,...d}),{options:n,middleware:d=>{const p=[...n.middleware||[]];d.forEach(g=>{Vb in g?g.options.middleware&&p.push(...g.options.middleware):p.push(g)});const m=Ga(void 0,{...n,middleware:p});return m[Vb]=!0,m},validator:o,inputValidator:o,handler:(...d)=>{const[p,m]=d,g={...n,extractedFn:p,serverFn:m},b=[...g.middleware||[],U_(g)];return p.method=n.method,Object.assign(async y=>{const w=await _v(b,"client",{...p,...g,data:y?.data,headers:y?.headers,signal:y?.signal,fetch:y?.fetch,context:Ux()}),x=d0(w.error);if(x)throw x;if(w.error)throw w.error;return w.result},{...p,method:n.method,__executeServer:async y=>{const w=Bx(),x=w.contextAfterGlobalMiddlewares;return await _v(b,"server",{...p,data:y.data,method:y.method??n.method,serverFnMeta:p.serverFnMeta,context:Op(y.context,x),request:w.request}).then(k=>({result:k.result,error:k.error,context:k.sendContext}))}})}})};async function _v(e,t,n){let o=M_([...Jp()?.functionMiddleware||[],...e]);if(t==="server"){const u=Bx();u?.executedRequestMiddlewares&&(o=o.filter(d=>!u.executedRequestMiddlewares.has(d)))}const s=async u=>{const d=o.shift();if(!d)return u;try{let p="validator"in d.options?d.options.validator:void 0;!p&&"inputValidator"in d.options&&(p=d.options.inputValidator),p&&t==="server"&&(u.data=await F_(p,u.data));let m;if(t==="client"?"client"in d.options&&(m=d.options.client):"server"in d.options&&(m=d.options.server),m){const b=await m({...u,next:async(y={})=>{const w=await s({...u,...y,context:Op(u.context,y.context),sendContext:Op(u.sendContext,y.sendContext),headers:aA(u.headers,y.headers),_callSiteFetch:u._callSiteFetch,fetch:u._callSiteFetch??y.fetch??u.fetch,result:y.result!==void 0?y.result:y instanceof Response?y:u.result,error:y.error??u.error});if(w.error)throw w.error;return w}});if(Zp(b))return{...u,error:b};if(b instanceof Response)return{...u,result:b};if(!b)throw new Error("User middleware returned undefined. You must call next() or return a result in your middlewares.");return b}return s(u)}catch(p){return{...u,error:p}}};return s({...n,headers:n.headers||{},sendContext:n.sendContext||{},context:n.context||Ux(),_callSiteFetch:n.fetch})}function M_(e,t=100){const n=new Set,o=[],s=(u,d)=>{if(d>t)throw new Error(`Middleware nesting depth exceeded maximum of ${t}. Check for circular references.`);u.forEach(p=>
13{p.options.middleware&&s(p.options.middleware,d+1),n.has(p)||(n.add(p),o.push(p))})};return s(e,0),o}async function F_(e,t){if(e==null)return{};if("~standard"in e){const n=await e["~standard"].validate(t);if(n.issues)throw new Error(JSON.stringify(n.issues,void 0,2));return n.value}if("parse"in e)return e.parse(t);if(typeof e=="function")return e(t);throw new Error("Invalid validator type!")}function U_(e){return{"~types":void 0,options:{inputValidator:e.validator??e.inputValidator,client:async({next:t,sendContext:n,fetch:o,...s})=>{const u={...s,context:n,fetch:o};return t(await e.extractedFn?.(u))},server:async({next:t,...n})=>{const o=await e.serverFn?.(n);return t({...n,result:o})}}}}var Ba=(e,t)=>{const n={type:"request",...t||e},o=s=>Ba({},Object.assign(n,{validator:s,inputValidator:s}));return{options:n,middleware:s=>Ba({},Object.assign(n,{middleware:s})),validator:o,inputValidator:o,client:s=>Ba({},Object.assign(n,{client:s})),server:s=>Ba({},Object.assign(n,{server:s}))}};function zx(e,t){for(let n=0,o=t.length;n<o;n++){const s=t[n];e.has(s)||(e.add(s),s.extends&&zx(e,s.extends))}}var B_=e=>({getOptions:async()=>{const t=await e();if(t.serializationAdapters){const n=new Set;zx(n,t.serializationAdapters),t.serializationAdapters=Array.from(n)}return t},createMiddleware:Ba});function au(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(n[o[s]]=e[o[s]]);return n}function z_(e,t,n,o){function s(u){return u instanceof n?u:new n(function(d){d(u)})}return new(n||(n=Promise))(function(u,d){function p(b){try{g(o.next(b))}catch(y){d(y)}}function m(b){try{g(o.throw(b))}catch(y){d(y)}}function g(b){b.done?u(b.value):s(b.value).then(p,m)}g((o=o.apply(e,t||[])).next())})}const V_=e=>e?(...t)=>e(...t):(...t)=>fetch(...t);class bf extends Error{constructor(t,n="FunctionsError",o){super(t),this.name=n,this.context=o}toJSON(){return{name:this.name,message:this.message,context:this.context}}}class G_ extends bf{constructor(t){super("Failed to send a request to the Edge Function","FunctionsFetchError",t)}}class Cv extends bf{constructor(t){super("Relay Error invoking the Edge Function","FunctionsRelayError",t)}}class Rv extends bf{constructor(t){super("Edge Function returned a non-2xx status code","FunctionsHttpError",t)}}var $p;(function(e){e.Any="any",e.ApNortheast1="ap-northeast-1",e.ApNortheast2="ap-northeast-2",e.ApSouth1="ap-south-1",e.ApSoutheast1="ap-southeast-1",e.ApSoutheast2="ap-southeast-2",e.CaCentral1="ca-central-1",e.EuCentral1="eu-central-1",e.EuWest1="eu-west-1",e.EuWest2="eu-west-2",e.EuWest3="eu-west-3",e.SaEast1="sa-east-1",e.UsEast1="us-east-1",e.UsWest1="us-west-1",e.UsWest2="us-west-2"})($p||($p={}));class W_{constructor(t,{headers:n={},customFetch:o,region:s=$p.Any}={}){this.url=t,this.headers=n,this.region=s,this.fetch=V_(o)}setAuth(t){this.headers.Authorization=`Bearer ${t}`}invoke(t){return z_(this,arguments,void 0,function*(n,o={}){var s;let u,d;try{const{headers:p,method:m,body:g,signal:b,timeout:y}=o;let w={},{region:x}=o;x||(x=this.region);const k=new URL(`${this.url}/${n}`);x&&x!=="any"&&(w["x-region"]=x,k.searchParams.set("forceFunctionRegion",x));let E;const D=!!p&&Object.keys(p).some(B=>B.toLowerCase()==="content-type");g&&!D?typeof Blob<"u"&&g instanceof Blob||g instanceof ArrayBuffer?(w["Content-Type"]="application/octet-stream",E=g):typeof g=="string"?(w["Content-Type"]="text/plain",E=g):typeof FormData<"u"&&g instanceof FormData?E=g:(w["Content-Type"]="application/json",E=JSON.stringify(g)):g&&typeof g!="string"&&!(typeof Blob<"u"&&g instanceof Blob)&&!(g instanceof ArrayBuffer)&&!(typeof FormData<"u"&&g instanceof FormData)?E=JSON.stringify(g):E=g;let L=b;y&&(d=new AbortController,u=setTimeout(()=>d.abort(),y),b?(L=d.signal,b.addEventListener("abort",()=>d.abort())):L=d.signal);const O=yield this.fetch(k.toString(),{method:m||"POST",headers:Object.assign(Object.assign(Object.assign({},w),this.headers),p),body:E,signal:L}).catch(B=>{throw new G_(B)}),N=O.headers.get("x-relay-error");
13if(N&&N==="true")throw new Cv(O);if(!O.ok)throw new Rv(O);let V=((s=O.headers.get("Content-Type"))!==null&&s!==void 0?s:"text/plain").split(";")[0].trim(),Z;return V==="application/json"?Z=yield O.json():V==="application/octet-stream"||V==="application/pdf"?Z=yield O.blob():V==="text/event-stream"?Z=O:V==="multipart/form-data"?Z=yield O.formData():Z=yield O.text(),{data:Z,error:null,response:O}}catch(p){return{data:null,error:p,response:p instanceof Rv||p instanceof Cv?p.context:void 0}}finally{u&&clearTimeout(u)}})}}const Vx=3,Iv=e=>Math.min(1e3*2**e,3e4),X_=[520,503],Gx=["GET","HEAD","OPTIONS"];var Ov=class extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.code=e.code}toJSON(){return{name:this.name,message:this.message,details:this.details,hint:this.hint,code:this.code}}};function $v(e,t){return new Promise(n=>{if(t?.aborted){n();return}const o=setTimeout(()=>{t?.removeEventListener("abort",s),n()},e);function s(){clearTimeout(o),n()}t?.addEventListener("abort",s)})}function Y_(e,t,n,o){return!(!o||n>=Vx||!Gx.includes(e)||!X_.includes(t))}var K_=class{constructor(e){var t,n,o,s,u;this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=(t=e.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=e.signal,this.isMaybeSingle=(n=e.isMaybeSingle)!==null&&n!==void 0?n:!1,this.shouldStripNulls=(o=e.shouldStripNulls)!==null&&o!==void 0?o:!1,this.urlLengthLimit=(s=e.urlLengthLimit)!==null&&s!==void 0?s:8e3,this.retryEnabled=(u
13=e.retry)!==null&&u!==void 0?u:!0,e.fetch?this.fetch=e.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get("Accept")==="text/csv")throw new Error("stripNulls() cannot be used with csv()");return this.shouldStripNulls=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}retry(e){return this.retryEnabled=e,this}then(e,t){var n=this;if(this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json"),this.shouldStripNulls){const d=this.headers.get("Accept");d==="application/vnd.pgrst.object+json"?this.headers.set("Accept","application/vnd.pgrst.object+json;nulls=stripped"):(!d||d==="application/json")&&this.headers.set("Accept","application/vnd.pgrst.array+json;nulls=stripped")}const o=this.fetch;let u=(async()=>{let d=0;for(;;){const g={};n.headers.forEach((y,w)=>{g[w]=y}),d>0&&(g["X-Retry-Count"]=String(d));let b;try{b=await o(n.url.toString(),{method:n.method,headers:g,body:JSON.stringify(n.body,(y,w)=>typeof w=="bigint"?w.toString():w),signal:n.signal})}catch(y){if(y?.name==="AbortError"||y?.code==="ABORT_ERR"||!Gx.includes(n.method))throw y;if(n.retryEnabled&&d<Vx){const w=Iv(d);d++,await $v(w,n.signal);continue}throw y}if(Y_(n.method,b.status,d,n.retryEnabled)){var p,m;const y=(p=(m=b.headers)===null||m===void 0?void 0:m.get("Retry-After"))!==null&&p!==void 0?p:null,w=y!==null?Math.max(0,parseInt(y,10)||0)*1e3:Iv(d);await b.text(),d++,await $v(w,n.signal);continue}return await n.processResponse(b)}})();return this.shouldThrowOnError||(u=u.catch(d=>{var p;let m="",g="",b="";const y=d?.cause;if(y){var w,x,k,E;const O=(w=y?.message)!==null&&w!==void 0?w:"",N=(x=y?.code)!==null&&x!==void 0?x:"";m=`${(k=d?.name)!==null&&k!==void 0?k:"FetchError"}: ${d?.message}`,m+=`
14
15Caused by: ${(E=y?.name)!==null&&E!==void 0?E:"Error"}: ${O}`,N&&(m+=` (${N})`),y?.stack&&(m+=`
16${y.stack}`)}else{var D;m=(D=d?.stack)!==null&&D!==void 0?D:""}const L=this.url.toString().length;return d?.name==="AbortError"||d?.code==="ABORT_ERR"?(b="",g="Request was aborted (timeout or manual cancellation)",L>this.urlLengthLimit&&(g+=`. Note: Your request URL is ${L} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(y?.name==="HeadersOverflowError"||y?.code==="UND_ERR_HEADERS_OVERFLOW")&&(b="",g="HTTP headers exceeded server limits (typically 16KB)",L>this.urlLengthLimit&&(g+=`. Your request URL is ${L} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{success:!1,error:{message:`${(p=d?.name)!==null&&p!==void 0?p:"FetchError"}: ${d?.message}`,details:m,hint:g,code:b},data:null,count:null,status:0,statusText:""}})),u.then(e,t)}async processResponse(e){var t=this;let n=null,o=null,s=null,u=e.status,d=e.statusText;if(e.ok){var p,m;if(t.method!=="HEAD"){var g;const w=await e.text();if(w!=="")if(t.headers.get("Accept")==="text/csv")o=w;else if(t.headers.get("Accept")&&(!((g=t.headers.get("Accept"))===null||g===void 0)&&g.includes("application/vnd.pgrst.plan+text")))o=w;else try{o=JSON.parse(w)}catch{if(n={message:w},o=null,t.shouldThrowOnError)throw new Ov({message:w,details:"",hint:"",code:""})}}const b=(p=t.headers.get("Prefer"))===null||p===void 0?void 0:p.match(/count=(exact|planned|estimated)/),y=(m=e.headers.get("content-range"))===null||m===void 0?void 0:m.split("/");b&&y&&y.length>1&&(s=parseInt(y[1])),t.isMaybeSingle&&Array.isArray(o)&&(o.length>1?(n={code:"PGRST116",details:`Results contain ${o.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},o=null,s=null,u=406,d="Not Acceptable"):o.length===1?o=o[0]:o=null)}else{const b=await e.text();try{n=JSON.parse(b),Array.isArray(n)&&e.status===404&&(o=[],n=null,u=200,d="OK")}catch{e.status===404&&b===""?(u=204,d="No Content"):n={message:b}}if(n&&t.shouldThrowOnError)throw new Ov(n)}return{success:n===null,error:n,data:o,count:s,status:u,statusText:d}}returns(){return this}overrideTypes(){return this}},Q_=class extends K_{throwOnError(){return super.throwOnError()}select(e){let t=!1;const n=(e??"*").split("").map(o=>/\s/.test(o)&&!t?"":(o==='"'&&(t=!t),o)).join("");return this.url.searchParams.set("select",n),this.headers.append("Prefer","return=representation"),this}order(e,{ascending:t=!0,nullsFirst:n,foreignTable:o,referencedTable:s=o}={}){const u=s?`${s}.order`:"order",d=this.url.searchParams.get(u);return this.url.searchParams.set(u,`${d?`${d},`:""}${e}.${t?"asc":"desc"}${n===void 0?"":n?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:t,referencedTable:n=t}={}){const o=typeof n>"u"?"limit":`${n}.limit`;return this.url.searchParams.set(o,`${e}`),this}range(e,t,{foreignTable:n,referencedTable:o=n}={}){const s=typeof o>"u"?"offset":`${o}.offset`,u=typeof o>"u"?"limit":`${o}.limit`;return this.url.searchParams.set(s,`${e}`),this.url.searchParams.set(u,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}
16explain({analyze:e=!1,verbose:t=!1,settings:n=!1,buffers:o=!1,wal:s=!1,format:u="text"}={}){var d;const p=[e?"analyze":null,t?"verbose":null,n?"settings":null,o?"buffers":null,s?"wal":null].filter(Boolean).join("|"),m=(d=this.headers.get("Accept"))!==null&&d!==void 0?d:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${u}; for="${m}"; options=${p};`),u==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(e){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${e}`),this}};const Nv=new RegExp("[,()]");var Uo=class extends Q_{throwOnError(){return super.throwOnError()}eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(",")}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(",")}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(",")}}`),this}regexMatch(e,t){return this.url.searchParams.append(e,`match.${t}`),this}regexIMatch(e,t){return this.url.searchParams.append(e,`imatch.${t}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}isDistinct(e,t){return this.url.searchParams.append(e,`isdistinct.${t}`),this}in(e,t){const n=Array.from(new Set(t)).map(o=>typeof o=="string"&&Nv.test(o)?`"${o}"`:`${o}`).join(",");return this.url.searchParams.append(e,`in.(${n})`),this}notIn(e,t){const n=Array.from(new Set(t)).map(o=>typeof o=="string"&&Nv.test(o)?`"${o}"`:`${o}`).join(",");return this.url.searchParams.append(e,`not.in.(${n})`),this}contains(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t=="string"?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:n,type:o}={}){let s="";o==="plain"?s="pl":o==="phrase"?s="ph":o==="websearch"&&(s="w");const u=n===void 0?"":`(${n})`;return this.url.searchParams.append(e,`${s}fts${u}.${t}`),this}match(e){return Object.entries(e).filter(([t,n])=>n!==void 0).forEach(([t,n])=>{this.url.searchParams.append(t,`eq.${n}`)}),this}not(e,t,n){return this.url.searchParams.append(e,`not.${t}.${n}`),this}or(e,{foreignTable:t,referencedTable:n=t}={}){const o=n?`${n}.or`:"or";return this.url.searchParams.append(o,`(${e})`),this}filter(e,t,n){return this.url.searchParams.append(e,`${t}.${n}`),this}},J_=class{constructor(e,{headers:t={},schema:n,fetch:o,urlLengthLimit:s=8e3,retry:u}){this.url=e,this.headers=new Headers(t),this.schema=n,this.fetch=o,this.urlLengthLimit=s,this.retry=u}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(e,t){const{head:n=!1,count:o}=t??{},s=n?"HEAD":"GET";let u=!1;const d=(e??"*").split("").map(g=>/\s/.test(g)&&!u?"":(g==='"'&&(u=!u),g)).join(""),{url:p,headers:m}=this.cloneRequestState();return p.searchParams.set("select",d),o&&m.append("Prefer",`count=${o}`),new Uo({method:s,url:p,headers:m,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}insert(e,{count:t,defaultToNull:n=!0}={}){var o;const s="POST",{url:u,headers:d}=this.cloneRequestState();if(t&&d.append("Prefer",`count=${t}`),n||d.append("Prefer","missing=default"),Array.isArray(e)){const p=e.reduce((m,g)=>m.concat(Object.keys(g)),[]);if(p.length>0){const m=[...new Set(p)].map(g=>`"${g}"`);u.searchParams.set("columns",m.join(","))}}return new Uo({method:s,url:u,headers:d,schema:this.schema,body:e,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}upsert(e,{onConflict:t,ignoreDuplicates:n=!1,count:o,defaultToNull:s=!0}={}){var u;const d="POST",{url:p,headers:m}=this.cloneRequestState();if(m.append("Prefer",`resolution=${n?"ignore":"merge"}-duplicates`),t!==void 0&&p.searchParams.set("on_conflict",t),o&&m.append("Prefer",`count=${o}`),s||m.append("Prefer","missing=default"),Array.isArray(e)){const g=e.reduce((b,y)=>b.concat(Object.keys(y)),[]);if(g.length>0){const b=[...new Set(g)].map(y=>`"${y}"`);p.searchParams.set("columns",b.join(","))}}return new Uo({method:d,url:p,headers:m,schema:this.schema,body:e,fetch:(u=this.fetch)!==null&&u!==void 0?u:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}update(e,{count:t}={}){var n;const o="PATCH",{url:s,headers:u}=this.cloneRequestState();return t&&u.append("Prefer",`count=${t}`),new Uo({method:o,url:s,headers:u,schema:this.schema,body:e,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}delete({count:e}={}){var t;const n="DELETE",{url:o,headers:s}=this.cloneRequestState();return e&&s.append("Prefer",`count=${e}`),new Uo({method:n,url:o,headers:s,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};function ys(e){"@babel/helpers - typeof";return ys=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ys(e)}function Z_(e,t){if(ys(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t);if(ys(o)!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function eC(e){var t=Z_(e,"string");return ys(t)=="symbol"?t:t+""}
16function tC(e,t,n){return(t=eC(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Hv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,o)}return n}function hc(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Hv(Object(n),!0).forEach(function(o){tC(e,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hv(Object(n)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})}return e}var rC=class Wx{constructor(t,{headers:n={},schema:o,fetch:s,timeout:u,urlLengthLimit:d=8e3,retry:p}={}){this.url=t,this.headers=new Headers(n),this.schemaName=o,this.urlLengthLimit=d;const m=s??globalThis.fetch;u!==void 0&&u>0?this.fetch=(g,b)=>{const y=new AbortController,w=setTimeout(()=>y.abort(),u),x=b?.signal;if(x){if(x.aborted)return clearTimeout(w),m(g,b);const k=()=>{clearTimeout(w),y.abort()};return x.addEventListener("abort",k,{once:!0}),m(g,hc(hc({},b),{},{signal:y.signal})).finally(()=>{clearTimeout(w),x.removeEventListener("abort",k)})}return m(g,hc(hc({},b),{},{signal:y.signal})).finally(()=>clearTimeout(w))}:this.fetch=m,this.retry=p}from(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new J_(new URL(`${this.url}/${t}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}schema(t){return new Wx(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}rpc(t,n={},{head:o=!1,get:s=!1,count:u}={}){var d;let p;const m=new URL(`${this.url}/rpc/${t}`);let g;const b=x=>x!==null&&typeof x=="object"&&(!Array.isArray(x)||x.some(b)),y=o&&Object.values(n).some(b);y?(p="POST",g=n):o||s?(p=o?"HEAD":"GET",Object.entries(n).filter(([x,k])=>k!==void 0).map(([x,k])=>[x,Array.isArray(k)?`{${k.join(",")}}`:`${k}`]).forEach(([x,k])=>{m.searchParams.append(x,k)})):(p="POST",g=n);const w=new Headers(this.headers);return y?w.set("Prefer",u?`count=${u},return=minimal`:"return=minimal"):u&&w.set("Prefer",`count=${u}`),new Uo({method:p,url:m,headers:w,schema:this.schemaName,body:g,fetch:(d=this.fetch)!==null&&d!==void 0?d:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};class nC{constructor(){}static detectEnvironment(){var t;if(typeof WebSocket<"u")return{type:"native",wsConstructor:WebSocket};const n=globalThis;if(typeof globalThis<"u"&&typeof n.WebSocket<"u")return{type:"native",wsConstructor:n.WebSocket};const o=typeof global<"u"?global:void 0;if(o&&typeof o.WebSocket<"u")return{type:"native",wsConstructor:o.WebSocket};if(typeof globalThis<"u"&&typeof n.WebSocketPair<"u"&&typeof globalThis.WebSocket>"u")return{type:"cloudflare",error:"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",workaround:"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."};if(typeof globalThis<"u"&&n.EdgeRuntime||typeof navigator<"u"&&(!((t=navigator.userAgent)===null||t===void 0)&&t.includes("Vercel-Edge")))return{type:"unsupported",error:"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",workaround:"Use serverless functions or a different deployment target for WebSocket functionality."};const s=globalThis.process;if(s){const u=s.versions;if(u&&u.node)return{type:"unsupported",error:"Node.js detected but native WebSocket not found.",workaround:"Ensure you are running Node.js 22+ or provide a WebSocket implementation via the transport option."}}return{type:"unsupported",error:"Unknown JavaScript runtime without WebSocket support.",workaround:"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation."}}static getWebSocketConstructor(){const t=this.detectEnvironment();if(t.wsConstructor)return t.wsConstructor;let n=t.error||"WebSocket not supported in this environment.";throw t.workaround&&(n+=`
17
18Suggested solution: ${t.workaround}`),new Error(n)}static isWebSocketSupported(){try{return this.detectEnvironment().type==="native"}catch{return!1}}}const aC="2.110.0",oC=`realtime-js/${aC}`,iC="1.0.0",Xx="2.0.0",sC=Xx,lC=1e4,cC=100,Qn={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},Yx={close:"phx_close",error:"phx_error",join:"phx_join",leave:"phx_leave",access_token:"access_token"},Np={connecting:"connecting",closing:"closing",closed:"closed"};class uC{constructor(t){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT="broadcast",this.allowedMetadataKeys=[],this.allowedMetadataKeys=t??[]}encode(t,n){if(t.event===this.BROADCAST_EVENT&&!(t.payload instanceof ArrayBuffer)&&typeof t.payload.event=="string")return n(this._binaryEncodeUserBroadcastPush(t));let o=[t.join_ref,t.ref,t.topic,t.event,t.payload];return n(JSON.stringify(o))}_binaryEncodeUserBroadcastPush(t){var n;return this._isArrayBuffer((n=t.payload)===null||n===void 0?void 0:n.payload)?this._encodeBinaryUserBroadcastPush(t):this._encodeJsonUserBroadcastPush(t)}_encodeBinaryUserBroadcastPush(t){var n,o;const s=(o=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&o!==void 0?o:new ArrayBuffer(0);return this._encodeUserBroadcastPush(t,this.BINARY_ENCODING,s)}_encodeJsonUserBroadcastPush(t){var n,o;const s=(o=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&o!==void 0?o:{},d=new TextEncoder().encode(JSON.stringify(s)).buffer;return this._encodeUserBroadcastPush(t,this.JSON_ENCODING,d)}_encodeUserBroadcastPush(t,n,o){var s,u;const d=t.topic,p=(s=t.ref)!==null&&s!==void 0?s:"",m=(u=t.join_ref)!==null&&u!==void 0?u:"",g=t.payload.event,b=this.allowedMetadataKeys?this._pick(t.payload,this.allowedMetadataKeys):{},y=Object.keys(b).length===0?"":JSON.stringify(b);if(m.length>255)throw new Error(`joinRef length ${m.length} exceeds maximum of 255`);if(p.length>255)throw new Error(`ref length ${p.length} exceeds maximum of 255`);if(d.length>255)throw new Error(`topic length ${d.length} exceeds maximum of 255`);if(g.length>255)throw new Error(`userEvent length ${g.length} exceeds maximum of 255`);if(y.length>255)throw new Error(`metadata length ${y.length} exceeds maximum of 255`);const w=this.USER_BROADCAST_PUSH_META_LENGTH+m.length+p.length+d.length+g.length+y.length,x=new ArrayBuffer(this.HEADER_LENGTH+w);let k=new DataView(x),E=0;k.setUint8(E++,this.KINDS.userBroadcastPush),k.setUint8(E++,m.length),k.setUint8(E++,p.length),k.setUint8(E++,d.length),k.setUint8(E++,g.length),k.setUint8(E++,y.length),k.setUint8(E++,n),Array.from(m,L=>
18k.setUint8(E++,L.charCodeAt(0))),Array.from(p,L=>k.setUint8(E++,L.charCodeAt(0))),Array.from(d,L=>k.setUint8(E++,L.charCodeAt(0))),Array.from(g,L=>k.setUint8(E++,L.charCodeAt(0))),Array.from(y,L=>k.setUint8(E++,L.charCodeAt(0)));var D=new Uint8Array(x.byteLength+o.byteLength);return D.set(new Uint8Array(x),0),D.set(new Uint8Array(o),x.byteLength),D.buffer}decode(t,n){if(this._isArrayBuffer(t)){let o=this._binaryDecode(t);return n(o)}if(typeof t=="string"){const o=JSON.parse(t),[s,u,d,p,m]=o;return n({join_ref:s,ref:u,topic:d,event:p,payload:m})}return n({})}_binaryDecode(t){const n=new DataView(t),o=n.getUint8(0),s=new TextDecoder;if(o===this.KINDS.userBroadcast)return this._decodeUserBroadcast(t,n,s)}_decodeUserBroadcast(t,n,o){const s=n.getUint8(1),u=n.getUint8(2),d=n.getUint8(3),p=n.getUint8(4);let m=this.HEADER_LENGTH+4;const g=o.decode(t.slice(m,m+s));m=m+s;const b=o.decode(t.slice(m,m+u));m=m+u;const y=o.decode(t.slice(m,m+d));m=m+d;const w=t.slice(m,t.byteLength),x=p===this.JSON_ENCODING?JSON.parse(o.decode(w)):w,k={type:this.BROADCAST_EVENT,event:b,payload:x};return d>0&&(k.meta=JSON.parse(y)),{join_ref:null,ref:null,topic:g,event:this.BROADCAST_EVENT,payload:k}}_isArrayBuffer(t){var n;return t instanceof ArrayBuffer||((n=t?.constructor)===null||n===void 0?void 0:n.name)==="ArrayBuffer"}_pick(t,n){return!t||typeof t!="object"?{}:Object.fromEntries(Object.entries(t).filter(([o])=>n.includes(o)))}}var Xe;(function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"})(Xe||(Xe={}));const Pv=(e,t,n={})=>{var o;const s=(o=n.skipTypes)!==null&&o!==void 0?o:[];return t?Object.keys(t).reduce((u,d)=>(u[d]=dC(d,e,t,s),u),{}):{}},dC=(e,t,n,o)=>{const s=t.find(p=>p.name===e),u=s?.type,d=n[e];return u&&!o.includes(u)?Kx(u,d):Hp(d)},Kx=(e,t)=>{if(e.charAt(0)==="_"){const n=e.slice(1,e.length);return mC(t,n)}switch(e){case Xe.bool:return hC(t);case Xe.float4:case Xe.float8:case Xe.int2:case Xe.int4:case Xe.int8:case Xe.numeric:case Xe.oid:return pC(t);case Xe.json:case Xe.jsonb:return fC(t);case Xe.timestamp:return gC(t);case Xe.abstime:case Xe.date:case Xe.daterange:case Xe.int4range:case Xe.int8range:case Xe.money:case Xe.reltime:case Xe.text:case Xe.time:case Xe.timestamptz:case Xe.timetz:case Xe.tsrange:case Xe.tstzrange:return Hp(t);default:return Hp(t)}},Hp=e=>e,hC=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},pC=e=>{if(typeof e=="string"){const t=parseFloat(e);if(!Number.isNaN(t))return t}return e},fC=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e},mC=(e,t)=>{if(typeof e!="string")return e;const n=e.length-1,o=e[n];if(e[0]==="{"&&o==="}"){let u;const d=e.slice(1,n);try{u=JSON.parse("["+d+"]")}catch{u=d?d.split(","):[]}return u.map(p=>Kx(t,p))}return e},gC=e=>typeof e=="string"?e.replace(" ","T"):e,Qx=e=>{const t=new URL(e);return t.protocol=t.protocol.replace(/^ws/i,"http"),t.pathname=t.pathname.replace(/\/+$/,"").replace(/\/socket\/websocket$/i,"").replace(/\/socket$/i,"").replace(/\/websocket$/i,""),t.pathname===""||t.pathname==="/"?t.pathname="/api/broadcast":t.pathname=t.pathname+"/api/broadcast",t.href};var ss=e=>typeof e=="function"?e:function(){return e},yC=typeof self<"u"?self:null,Bo=typeof window<"u"?window:null,_r=yC||Bo||globalThis,bC="2.0.0",vC=1e4,wC=1e3,Rr={connecting:0,open:1,closing:2,closed:3},Pt={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},on={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},Pp={longpoll:"longpoll",websocket:"websocket"},xC={complete:4},jp="base64url.bearer.phx.",pc=class{constructor(e,t,n,o){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=o,this.timeoutTimer=null,this.recHo
vendor: 8,700 bytes, line 18
18oks=[],this.sent=!1,this.ref=void 0}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(e,t){return this.hasReceived(e)&&t(this.receivedResp.response),this.recHooks.push({status:e,callback:t}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}destroy(){this.cancelRefEvent(),this.cancelTimeout()}matchReceive({status:e,response:t,_ref:n}){this.recHooks.filter(o=>o.status===e).forEach(o=>o.callback(t))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,t){this.channel.trigger(this.refEvent,{status:e,response:t})}},Jx=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}},EC=class{constructor(e,t,n){this.state=Pt.closed,this.topic=e,this.params=ss(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new pc(this,on.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new Jx(()=>{this.socket.isConnected()&&this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()})),this.joinPush.receive("ok",()=>{this.state=Pt.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(o=>o.send()),this.pushBuffer=[]}),this.joinPush.receive("error",o=>{this.state=Pt.errored,this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,o),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic}`),this.state=Pt.closed,this.socket.remove(this)}),this.onError(o=>{this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,o),this.isJoining()&&this.joinPush.reset(),this.state=Pt.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive("timeout",()=>{this.socket.hasLogger()&&this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),new pc(this,on.leave,ss({}),this.timeout).send(),this.state=Pt.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on(on.reply,(o,s)=>{this.trigger(this.replyEventName(s),o)})}join(e=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=Pt.closed,this.bindings=[]}onClose(e){this.on(on.close,e)}onError(e){return this.on(on.error,t=>e(t))}on(e,t){let n=this.bindingRef++;return this.bindings.push({event:e,ref:n,callback:t}),n}off(e,t){this.bindings=this.bindings.filter(n=>!(n.event===e&&(typeof t>"u"||t===n.ref)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,n=this.timeout){if(t=t||{},!this.joinedOnce)throw new Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let o=new pc(this,e,function(){return t},n);return this.canPush()?o.send():(o.startTimeout(),this.pushBuffer.push(o)),o}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=Pt.leaving;let t=()=>{this.socket.hasLogger()&&this.socket.log("channel",`leave ${this.topic}`),this.trigger(on.close,"leave")},n=new pc(this,on.leave,ss({}),e);return n.receive("ok",()=>t()).receive("timeout",()=>t()),n.send(),this.canPush()||n.trigger("ok",{}),n}onMessage(e,t,n){return t}filterBindings(e,t,n){return!0}isMember(e,t,n,o){return this.topic!==e?!1:o&&o!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:e,event:t,payload:n,joinRef:o}),!1):!0}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=Pt.joining,this.joinPush.resend(e))}trigger(e,t,n,o){let s=this.onMessage(e,t,n,o);if(t&&!s)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let u=this.bindings.filter(d=>d.event===e&&this.filterBindings(d,t,n));for(let d=0;d<u.length;d++)u[d].callback(s,n,o||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===Pt.closed}isErrored(){return this.state===Pt.errored}isJoined(){return this.state===Pt.joined}isJoining(){return this.state===Pt.joining}isLeaving(){return this.state===Pt.leaving}},jc=class{static request(e,t,n,o,s,u,d){if(_r.XDomainRequest){let p=new _r.XDomainRequest;return this.xdomainRequest(p,e,t,o,s,u,d)}else if(_r.XMLHttpRequest){let p=new _r.XMLHttpRequest;return this.xhrRequest(p,e,t,n,o,s,u,d)}else{if(_r.fetch&&_r.AbortController)return this.fetchRequest(e,t,n,o,s,u,d);throw new Error("No suitable XMLHttpRequest implementation found")}}static fetchRequest(e,t,n,o,s,u,d){let p={method:e,headers:n,body:o},m=null;return s&&(m=new AbortController,setTimeout(()=>m.abort(),s),p.signal=m.signal),_r.fetch(t,p).then(g=>g.text()).then(g=>this.parseJSON(g)).then(g=>d&&d(g)).catch(g=>{g.name==="AbortError"&&u?u():d&&d(null)}),m}static xdomainRequest(e,t,n,o,s,u,d){return e.timeout=s,e.open(t,n),e.onload=()=>{let p=this.parseJSON(e.responseText);d&&d(p)},u&&(e.ontimeout=u),e.onprogress=()=>{},e.send(o),e}static xhrRequest(e,t,n,o,s,u,d,p){e.open(t,n,!0),e.timeout=u;for(let[m,g]of Object.entries(o))e.setRequestHeader(m,g);return e.onerror=()=>p&&p(null),e.onreadystatechange=()=>{if(e.readyState===xC.complete&&p){let m=this.parseJSON(e.responseText);p(m)}},d&&(e.ontimeout=d),e.send(s),e}static parseJSON(e){if(!e||e==="")return null;try{return JSON.parse(e)}catch{return console&&console.log("failed to parse JSON response",e),null}}static serialize(e,t){let n=[];for(var o in e){if(!Object.prototype.hasOwnProperty.call(e,o))continue;let s=t?`${t}[${o}]`:o,u=e[o];typeof u=="object"?n.push(this.serialize(u,s)):n.push(encodeURIComponent(s)+"="+encodeURIComponent(u))}return n.join("&")}static appendParams(e,t){if(Object.keys(t).length===0)return e;let n=e.match(/\?/)?"&":"?";return`${e}${n}${this.serialize(t)}`}},SC=e=>{let t="",n=new Uint8Array(e),o=n.byteLength;for(let s=0;s<o;s++)t+=String.fromCharCode(n[s]);return btoa(t)},Po=class{constructor(e,t){t&&t.length===2&&t[1].startsWith(jp)&&(this.authToken=atob(t[1].slice(jp.length))),this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.reqs=new Set,this.awaitingBatchAck=!1,this.currentBatch=null,this.currentBatchTimer=null,this.batchBuffer=[],this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=Rr.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+Pp.websocket),"$1/"+Pp.longpoll)}endpointURL(){return jc.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,t,n){this.close(e,t,n),this.readyState=Rr.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===Rr.open||this.readyState===Rr.connecting}poll(){const e={Accept:"application/json"};this.authToken&&(e["X-Phoenix-AuthToken"]=this.authToken),this.ajax("GET",e,null,()=>this.ontimeout(),t=>{if(t){var{status:n,token:o,messages:s}=t;if(n===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,"session_gone",!1);return}this.token=o}else n=0;switch(n){case 200:s.forEach(u=>{setTimeout(()=>this.onmessage({data:u}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=Rr.open,this.onopen({}),this.poll();break;
18case 403:this.onerror(403),this.close(1008,"forbidden",!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,"internal server error",500);break;default:throw new Error(`unhandled poll status ${n}`)}})}send(e){typeof e!="string"&&(e=SC(e)),this.currentBatch?this.currentBatch.push(e):this.awaitingBatchAck?this.batchBuffer.push(e):(this.currentBatch=[e],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0))}batchSend(e){this.awaitingBatchAck=!0,this.ajax("POST",{"Content-Type":"application/x-ndjson"},e.join(`
19`),()=>this.onerror("timeout"),t=>{this.awaitingBatchAck=!1,!t||t.status!==200?(this.onerror(t&&t.status),this.closeAndRetry(1011,"internal server error",!1)):this.batchBuffer.length>0&&(this.batchSend(this.batchBuffer),this.batchBuffer=[])})}close(e,t,n){for(let s of this.reqs)s.abort();this.readyState=Rr.closed;let o=Object.assign({code:1e3,reason:void 0,wasClean:!0},{code:e,reason:t,wasClean:n});this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent<"u"?this.onclose(new CloseEvent("close",o)):this.onclose(o)}ajax(e,t,n,o,s){let u,d=()=>{this.reqs.delete(u),o()};u=jc.request(e,this.endpointURL(),t,n,this.timeout,d,p=>{this.reqs.delete(u),this.isActive()&&s(p)}),this.reqs.add(u)}},kC=class rs{constructor(t,n={}){let o=n.events||{state:"presence_state",diff:"presence_diff"};this.state={},this.pendingDiffs=[],this.channel=t,this.joinRef=null,this.caller={onJoin:function(){},onLeave:function(){},onSync:function(){}},this.channel.on(o.state,s=>{let{onJoin:u,onLeave:d,onSync:p}=this.caller;this.joinRef=this.channel.joinRef(),this.state=rs.syncState(this.state,s,u,d),this.pendingDiffs.forEach(m=>{this.state=rs.syncDiff(this.state,m,u,d)}),this.pendingDiffs=[],p()}),this.channel.on(o.diff,s=>{let{onJoin:u,onLeave:d,onSync:p}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(s):(this.state=rs.syncDiff(this.state,s,u,d),p())})}onJoin(t){this.caller.onJoin=t}onLeave(t){this.caller.onLeave=t}onSync(t){this.caller.onSync=t}list(t){return rs.list(this.state,t)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(t,n,o,s){let u=this.clone(t),d={},p={};return this.map(u,(m,g)=>{n[m]||(p[m]=g)}),this.map(n,(m,g)=>{let b=u[m];if(b){let y=g.metas.map(E=>E.phx_ref),w=b.metas.map(E=>E.phx_ref),x=g.metas.filter(E=>w.indexOf(E.phx_ref)<0),k=b.metas.filter(E=>y.indexOf(E.phx_ref)<0);x.length>0&&(d[m]=g,d[m].metas=x),k.length>0&&(p[m]=this.clone(b),p[m].metas=k)}else d[m]=g}),this.syncDiff(u,{joins:d,leaves:p},o,s)}static syncDiff(t,n,o,s){let{joins:u,leaves:d}=this.clone(n);return o||(o=function(){}),s||(s=function(){}),this.map(u,(p,m)=>{let g=t[p];if(t[p]=this.clone(m),g){let b=t[p].metas.map(w=>w.phx_ref),y=g.metas.filter(w=>b.indexOf(w.phx_ref)<0);t[p].metas.unshift(...y)}o(p,g,m)}),this.map(d,(p,m)=>{let g=t[p];if(!g)return;let b=m.metas.map(y=>y.phx_ref);g.metas=g.metas.filter(y=>b.indexOf(y.phx_ref)<0),s(p,g,m),g.metas.length===0&&delete t[p]}),t}static list(t,n){return n||(n=function(o,s){return s}),this.map(t,(o,s)=>n(o,s))}static map(t,n){return Object.getOwnPropertyNames(t).map(o=>n(o,t[o]))}static clone(t){return JSON.parse(JSON.stringify(t))}},fc={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,t){if(e.payload.constructor===ArrayBuffer)return t(this.binaryEncode(e));{let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}},decode(e,t){if(e.constructor===ArrayBuffer)return t(this.binaryDecode(e));{let[n,o,s,u,d]=JSON.parse(e);return t({join_ref:n,ref:o,topic:s,event:u,payload:d})}},binaryEncode(e){let{join_ref:t,ref:n,event:o,topic:s,payload:u}=e,d=this.META_LENGTH+t.length+n.length+s.length+o.length,p=new ArrayBuffer(this.HEADER_LENGTH+d),m=new DataView(p),g=0;m.setUint8(g++,this.KINDS.push),m.setUint8(g++,t.length),m.setUint8(g++,n.length),m.setUint8(g++,s.length),m.setUint8(g++,o.length),Array.from(t,y=>m.setUint8(g++,y.charCodeAt(0))),Array.from(n,y=>m.setUint8(g++,y.charCodeAt(0))),Array.from(s,y=>
19m.setUint8(g++,y.charCodeAt(0))),Array.from(o,y=>m.setUint8(g++,y.charCodeAt(0)));var b=new Uint8Array(p.byteLength+u.byteLength);return b.set(new Uint8Array(p),0),b.set(new Uint8Array(u),p.byteLength),b.buffer},binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),o=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,o);case this.KINDS.reply:return this.decodeReply(e,t,o);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,o)}},decodePush(e,t,n){let o=t.getUint8(1),s=t.getUint8(2),u=t.getUint8(3),d=this.HEADER_LENGTH+this.META_LENGTH-1,p=n.decode(e.slice(d,d+o));d=d+o;let m=n.decode(e.slice(d,d+s));d=d+s;let g=n.decode(e.slice(d,d+u));d=d+u;let b=e.slice(d,e.byteLength);return{join_ref:p,ref:null,topic:m,event:g,payload:b}},decodeReply(e,t,n){let o=t.getUint8(1),s=t.getUint8(2),u=t.getUint8(3),d=t.getUint8(4),p=this.HEADER_LENGTH+this.META_LENGTH,m=n.decode(e.slice(p,p+o));p=p+o;let g=n.decode(e.slice(p,p+s));p=p+s;let b=n.decode(e.slice(p,p+u));p=p+u;let y=n.decode(e.slice(p,p+d));p=p+d;let w=e.slice(p,e.byteLength),x={status:y,response:w};return{join_ref:m,ref:g,topic:b,event:on.reply,payload:x}},decodeBroadcast(e,t,n){let o=t.getUint8(1),s=t.getUint8(2),u=this.HEADER_LENGTH+2,d=n.decode(e.slice(u,u+o));u=u+o;let p=n.decode(e.slice(u,u+s));u=u+s;let m=e.slice(u,e.byteLength);return{join_ref:null,ref:null,topic:d,event:p,payload:m}}},DC=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=t.timeout||vC,this.transport=t.transport||_r.WebSocket||Po,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=t.longPollFallbackMs,this.fallbackTimer=null;let n=null;try{n=_r&&_r.sessionStorage}catch{}this.sessionStore=t.sessionStorage||n,this.establishedConnections=0,this.defaultEncoder=fc.encode.bind(fc),this.defaultDecoder=fc.decode.bind(fc),this.closeWasClean=!0,this.disconnecting=!1,this.binaryType=t.binaryType||"arraybuffer",this.connectClock=1,this.pageHidden=!1,this.encode=void 0,this.decode=void 0,this.transport!==Po?(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let o=null;Bo&&Bo.addEventListener&&(Bo.addEventListener("pagehide",s=>{this.conn&&(this.disconnect(),o=this.connectClock)}),Bo.addEventListener("pageshow",s=>{o===this.connectClock&&(o=null,this.connect())}),Bo.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this.pageHidden=!0:(this.pageHidden=!1,!this.isConnected()&&!this.closeWasClean&&this.teardown(()=>this.connect()))})),this.heartbeatIntervalMs=t.heartbeatIntervalMs||3e4,this.autoSendHeartbeat=t.autoSendHeartbeat??!0,this.heartbeatCallback=t.heartbeatCallback??(()=>{}),this.rejoinAfterMs=s=>t.rejoinAfterMs?t.rejoinAfterMs(s):[1e3,2e3,5e3][s-1]||1e4,this.reconnectAfterMs=s=>t.reconnectAfterMs?t.reconnectAfterMs(s):[10,50,100,150,200,250,500,1e3,2e3][s-1]||5e3,this.logger=t.logger||null,!this.logger&&t.debug&&(this.logger=(s,u,d)=>{console.log(`${s}: ${u}`,d)}),this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=ss(t.params||{}),this.endPoint=`${e}/${Pp.websocket}`,this.vsn=t.vsn||bC,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new Jx(()=>{if(this.pageHidden){this.log("Not reconnecting as page is hidden!"),this.teardown();return}this.teardown(async()=>{t.beforeReconnect&&await t.beforeReconnect(),this.connect()})},this.reconnectAfterMs),this.authToken=t.authToken}getLongPollTransport(){return Po}replaceTransport(e){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn&&(this.conn.close(),this.conn=null),this.transport=e}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let e=jc.appendParams(jc.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return e.charAt(0)!=="/"?e:e.charAt(1)==="/"?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`}disconnect(e,t,n){this.connectClock++,this.disconnecting=!0,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(()=>{this.disconnecting=!1,e&&e()},t,n)}connect(e){e&&(console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=ss(e)),!(this.conn&&!this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==Po?this.connectWithF
vendor: 4,353 bytes, line 19
19allback(Po,this.longPollFallbackMs):this.transportConnect())}log(e,t,n){this.logger&&this.logger(e,t,n)}hasLogger(){return this.logger!==null}onOpen(e){let t=this.makeRef();return this.stateChangeCallbacks.open.push([t,e]),t}onClose(e){let t=this.makeRef();return this.stateChangeCallbacks.close.push([t,e]),t}onError(e){let t=this.makeRef();return this.stateChangeCallbacks.error.push([t,e]),t}onMessage(e){let t=this.makeRef();return this.stateChangeCallbacks.message.push([t,e]),t}onHeartbeat(e){this.heartbeatCallback=e}ping(e){if(!this.isConnected())return!1;let t=this.makeRef(),n=Date.now();this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:t});let o=this.onMessage(s=>{s.ref===t&&(this.off([o]),e(Date.now()-n))});return!0}transportName(e){return e===Po?"LongPoll":e.name}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=["phoenix",`${jp}${btoa(this.authToken).replace(/=/g,"")}`]),this.conn=new this.transport(this.endPointURL(),e),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=t=>this.onConnError(t),this.conn.onmessage=t=>this.onConnMessage(t),this.conn.onclose=t=>this.onConnClose(t)}getSession(e){return this.sessionStore&&this.sessionStore.getItem(e)}storeSession(e,t){this.sessionStore&&this.sessionStore.setItem(e,t)}connectWithFallback(e,t=2500){clearTimeout(this.fallbackTimer);let n=!1,o=!0,s,u,d=this.transportName(e),p=m=>{this.log("transport",`falling back to ${d}...`,m),this.off([s,u]),o=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${d}`))return p("memorized");this.fallbackTimer=setTimeout(p,t),u=this.onError(m=>{this.log("transport","error",m),o&&!n&&(clearTimeout(this.fallbackTimer),p(m))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(n=!0,!o){let m=this.transportName(e);return this.primaryPassedHealthCheck||this.storeSession(`phx:fallback:${m}`,"true"),this.log("transport",`established ${m} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(p,t),this.ping(m=>{this.log("transport","connected to primary after",m),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){this.hasLogger()&&this.log("transport",`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.disconnecting=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.autoSendHeartbeat&&this.resetHeartbeat(),this.triggerStateCallbacks("open")}heartbeatTimeout(){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.hasLogger()&&this.log("transport","heartbeat timeout. Attempting to re-establish connection");try{this.heartbeatCallback("timeout")}catch(e){this.log("error","error in heartbeat callback",e)}this.triggerChanError(new Error("heartbeat timeout")),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),wC,"heartbeat timeout")}}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}teardown(e,t,n){if(!this.conn)return e&&e();const o=this.conn;this.waitForBufferDone(o,()=>{t?o.close(t,n||""):o.close(),this.waitForSocketClosed(o,()=>{this.conn===o&&(this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null),e&&e()})})}waitForBufferDone(e,t,n=1){if(n===5||!e.bufferedAmount){t();return}setTimeout(()=>{this.waitForBufferDone(e,t,n+1)},150*n)}waitForSocketClosed(e,t,n=1){if(n===5||e.readyState===Rr.closed){t();return}setTimeout(()=>{this.waitForSocketClosed(e,t,n+1)},150*n)}onConnClose(e){this.conn&&(this.conn.onclose=()=>{}),this.hasLogger()&&this.log("transport","close",e),this.triggerChanError(e),this.clearHeartbeats(),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.triggerStateCallbacks("close",e)}onConnError(e){this.hasLogger()&&this.log("transport","error",e);let t=this.transport,n=this.establishedConnections;this.triggerStateCallbacks("error",e,t,n),(t===this.transport||n>0)&&this.triggerChanError(e)}
19triggerChanError(e){this.channels.forEach(t=>{t.isErrored()||t.isLeaving()||t.isClosed()||t.trigger(on.error,e)})}connectionState(){switch(this.conn&&this.conn.readyState){case Rr.connecting:return"connecting";case Rr.open:return"open";case Rr.closing:return"closing";default:return"closed"}}isConnected(){return this.connectionState()==="open"}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter(t=>t!==e)}off(e){for(let t in this.stateChangeCallbacks)this.stateChangeCallbacks[t]=this.stateChangeCallbacks[t].filter(([n])=>e.indexOf(n)===-1)}channel(e,t={}){let n=new EC(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:o,ref:s,join_ref:u}=e;this.log("push",`${t} ${n} (${u}, ${s})`,o)}this.isConnected()?this.encode(e,t=>this.conn.send(t)):this.sendBuffer.push(()=>this.encode(e,t=>this.conn.send(t)))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){if(!this.isConnected()){try{this.heartbeatCallback("disconnected")}catch(e){this.log("error","error in heartbeat callback",e)}return}if(this.pendingHeartbeatRef){this.heartbeatTimeout();return}this.pendingHeartbeatRef=this.makeRef(),this.heartbeatSentAt=Date.now(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback("sent")}catch(e){this.log("error","error in heartbeat callback",e)}this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,t=>{let{topic:n,event:o,payload:s,ref:u,join_ref:d}=t;if(u&&u===this.pendingHeartbeatRef){const p=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(s.status==="ok"?"ok":"error",p)}catch(m){this.log("error","error in heartbeat callback",m)}this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.autoSendHeartbeat&&(this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}this.hasLogger()&&this.log("receive",`${s.status||""} ${n} ${o} ${u&&"("+u+")"||""}`.trim(),s);for(let p=0;p<this.channels.length;p++){const m=this.channels[p];m.isMember(n,o,s,d)&&m.trigger(o,s,u,d)}this.triggerStateCallbacks("message",t)})}triggerStateCallbacks(e,...t){try{this.stateChangeCallbacks[e].forEach(([n,o])=>{try{o(...t)}catch(s){this.log("error",`error in ${e} callback`,s)}})}catch(n){this.log("error",`error triggering ${e} callbacks`,n)}}leaveOpenTopic(e){let t=this.channels.find(n=>n.topic===e&&(n.isJoined()||n.isJoining()));t&&(this.hasLogger()&&this.log("transport",`leaving duplicate topic "${e}"`),t.leave())}};class ls{constructor(t,n){const o=LC(n);this.presence=new kC(t.getChannel(),o),this.presence.onJoin((s,u,d)=>{const p=ls.onJoinPayload(s,u,d);t.getChannel().trigger("presence",p)}),this.presence.onLeave((s,u,d)=>{const p=ls.onLeavePayload(s,u,d);t.getChannel().trigger("presence",p)}),this.presence.onSync(()=>{t.getChannel().trigger("presence",{event:"sync"})})}get state(){return ls.transformState(this.presence.state)}static transformState(t){return t=TC(t),Object.getOwnPropertyNames(t).reduce((n,o)=>{const s=t[o];return n[o]=_c(s),n},{})}static onJoinPayload(t,n,o){const s=jv(n),u=_c(o);return{event:"join",key:t,currentPresences:s,newPresences:u}}static onLeavePayload(t,n,o){const s=jv(n),u=_c(o);return{event:"leave",key:t,currentPresences:s,leftPresences:u}}}function _c(e){return e.metas.map(t=>(t.presence_ref=t.phx_ref,delete t.phx_ref,delete t.phx_ref_prev,t))}function TC(e){return JSON.parse(JSON.stringify(e))}function LC(e){return e?.events&&{events:e.events}}function jv(e){return e?.metas?_c(e):[]}var qv;(function(e){e.SYNC="sync",e.JOIN="join",e.LEAVE="leave"})(qv||(qv={}));class AC{get state(){return this.presenceAdapter.state}constructor(t,n){this.channel=t,this.presenceAdapter=new ls(this.channel.channelAdapter,n)}}function _C(e){if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);
19if(e&&typeof e=="object"){const t=e;if(typeof t.code=="number"){const n=typeof t.reason=="string"&&t.reason?` (${t.reason})`:"";return new Error(`socket closed: ${t.code}${n}`,{cause:e})}return new Error("channel error: transport failure",{cause:e})}return new Error("channel error: connection lost")}class CC{constructor(t,n,o){const s=RC(o);this.channel=t.getSocket().channel(n,s),this.socket=t}get state(){return this.channel.state}set state(t){this.channel.state=t}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(t,n){return this.channel.on(t,n)}off(t,n){this.channel.off(t,n)}subscribe(t){return this.channel.join(t)}unsubscribe(t){return this.channel.leave(t)}teardown(){this.channel.teardown()}onClose(t){this.channel.onClose(t)}onError(t){return this.channel.onError(t)}push(t,n,o){let s;try{s=this.channel.push(t,n,o)}catch{throw new Error(`tried to push '${t}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>cC){const u=this.channel.pushBuffer.shift();u.cancelTimeout(),this.socket.log("channel",`discarded push due to buffer overflow: ${u.event}`,u.payload())}return s}updateJoinPayload(t){const n=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},n),t)}canPush(){return this.socket.isConnected()&&this.state===Qn.joined}isJoined(){return this.state===Qn.joined}isJoining(){return this.state===Qn.joining}isClosed(){return this.state===Qn.closed}isLeaving(){return this.state===Qn.leaving}updateFilterBindings(t){this.channel.filterBindings=t}updatePayloadTransform(t){this.channel.onMessage=t}getChannel(){return this.channel}}function RC(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},e.config)}}const IC=/[,()"\\]/,OC=e=>IC.test(e)||e!==e.trim(),$C=e=>`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`,Mv=e=>{const t=e===null?"null":String(e);return OC(t)?$C(t):t},NC=e=>e===null?"null":String(e),HC=(e,t)=>{if(e==="in"){const n=Array.isArray(t)?t:[t];if(n.length===0)throw new Error("Realtime `in` filter requires at least one value.");return`in.(${Array.from(new Set(n)).map(s=>Mv(s)).join(",")})`}return e==="is"?`is.${NC(t)}`:`${e}.${Mv(t)}`};class PC{constructor(){this.filters=[]}add(t,n,o,s=!1){const u=s?"not.":"";return this.filters.push(`${t}=${u}${HC(n,o)}`),this}eq(t,n){return this.add(t,"eq",n)}neq(t,n){return this.add(t,"neq",n)}gt(t,n){return this.add(t,"gt",n)}gte(t,n){return this.add(t,"gte",n)}lt(t,n){return this.add(t,"lt",n)}lte(t,n){return this.add(t,"lte",n)}in(t,n){return this.add(t,"in",n)}like(t,n){return this.add(t,"like",n)}ilike(t,n){return this.add(t,"ilike",n)}match(t,n){return this.add(t,"match",n)}imatch(t,n){return this.add(t,"imatch",n)}is(t,n){return this.add(t,"is",n)}isDistinct(t,n){return this.add(t,"isdistinct",n)}not(t,n,o){return this.add(t,n,o,!0)}build(){return this.filters.join(",")}toString(){return this.build()}}var Fv;(function(e){e.ALL="*",e.INSERT="INSERT",e.UPDATE="UPDATE",e.DELETE="DELETE"})(Fv||(Fv={}));var Go;(function(e){e.BROADCAST="broadcast",e.PRESENCE="presence",e.POSTGRES_CHANGES="postgres_changes",e.SYSTEM="system"})(Go||(Go={}));var sn;(function(e){e.SUBSCRIBED="SUBSCRIBED",e.TIMED_OUT="TIMED_OUT",e.CLOSED="CLOSED",e.CHANNEL_ERROR="CHANNEL_ERROR"})(sn||(sn={}));class cs{get state(){return this.channelAdapter.state}set state(t){this.channelAdapter.state=t}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(t,n={config:{}},o){var s,u;if(this.topic=t,this.params=n,this.socket=o,this.bindings={},this.subTopic=t.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},n.config),this.channelAdapter=new CC(this.socket.socketAdapter,t,this.params),this.presence=new AC(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=Qx(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&(!((u=(s=this.params.config)===null||s===void 0?void 0:s.broadcast)===null||u===void 0)&&u.replay))throw new Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(t,n=this.timeout){var o,s,u;if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){const{config:{broadcast:d,presence:p,private:m}}=this.params,g=(s=(o=this.bindings.postgres_changes)===null||o===void 0?void 0:o.map(x=>x.filter))!==null&&s!==void 0?s:[],b=!!this.bindings[Go.PRESENCE]&&this.bindings[Go.PRESENCE].length>0||((u=this.params.config.presence)===null||u===void 0?void 0:u.enabled)===!0,y={},w={broadcast:d,presence:Object.assign(Object.assign({},p),{enabled:b}),postgres_changes:g,private:m};this.socket.accessTokenValue&&(y.access_token=this.socket.accessTokenValue),this._onError(x=>{t?.(sn.CHANNEL_ERROR,_C(x))}),this._onClose(()=>t?.(sn.CLOSED)),this.updateJoinPayload(Object.assign({config:w},y)),this._updateFilterMessage(),this.channelAdapter.subscribe(n).receive("ok",async({postgres_changes:x})=>{if(this.socket._isManualToken()||this.socket.setAuth(),x===void 0){t?.(sn.SUBSCRIBED);return}this._updatePostgresBindings(x,t)}).receive("error",x=>{this.state=Qn.errored;const k=Object.values(x).join(", ")||"error";t?.(sn.CHANNEL_ERROR,new Error(k,{cause:x}))}).receive("timeout",()=>{t?.(sn.TIMED_OUT)})}return this}_updatePostgresBindings(t,n){var o;const s=this.bindings.postgres_changes,u=(o=s?.length)!==null&&o!==void 0?o:0,d=[];for(let p=0;p<u;p++){const m=s[p],{filter:{event:g,schema:b,table:y,filter:w}}=m,x=t&&t[p];if(x&&x.event===g&&cs.isFilterValueEqual(x.schema,b)&&cs.isFilterValueEqual(x.table,y)&&cs.isFilterValueEqual(x.filter,w))d.push(Object.assign(Object.assign({},m),{id:x.id}));else{this.unsubscribe(),this.state=Qn.errored,n?.(sn.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=d,this.state!=Qn.errored&&n&&n(sn.SUBSCRIBED)}presenceState(){return this.presence.state}async track(t,n={}){return await this.send({type:"presence",event:"track",payload:t},n.timeout||this.timeout)}async untrack(t={}){return await this.send({type:"presence",event:"untrack"},t)}on(t,n,o){const s=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),u=t===Go.PRESENCE||t===Go.POSTGRES_CHANGES;if(s&&u)throw this.socket.log("channel",`cannot add \`${t}\` callbacks for ${this.topic} after \`subscribe()\`.`),new Error(`cannot add \`${t}\` callbacks for ${this.topic} after \`subscribe()\`.`);return this._on(t,n,o)}async httpSend(t,n,o={}){var s;if(n==null)return Promise.reject(new Error("Payload is required for httpSend()"));const u=n instanceof ArrayBuffer||ArrayBuffer.isView(n),d={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":u?"application/octet-stream":"application/json"};this.socket.accessTokenValue&&(d.Authorization=`Bearer ${this.socket.accessTokenValue}`);const p=new URL(this.broadcastEndpointURL);p.pathname+=`/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(t)}`,this.private&&p.searchParams.set("private","true");const m={method:"POST",headers:d,body:u?n:JSON.stringify(n)},g=await this._fetchWithTimeout(p.toString(),m,(s=o.timeout)!==null&&s!==void 0?s:this.timeout);if(g.status===202)return{success:!0};if(g.status===404)return Promise.reject(new Error("httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. See https://github.com/supabase/supabase-js/blob/master/packages/core/realt
19ime-js/migrations/httpsend-server-version.md"));let b=g.statusText;try{const y=await g.json();b=y.error||y.message||b}catch{}return Promise.reject(new Error(b))}async send(t,n={}){var o,s;if(!this.channelAdapter.canPush()&&t.type==="broadcast"){console.warn("Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.");const{event:u,payload:d}=t,p={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(p.Authorization=`Bearer ${this.socket.accessTokenValue}`);const m={method:"POST",headers:p,body:JSON.stringify({messages:[{topic:this.subTopic,event:u,payload:d,private:this.private}]})};try{const g=await this._fetchWithTimeout(this.broadcastEndpointURL,m,(o=n.timeout)!==null&&o!==void 0?o:this.timeout);return await((s=g.body)===null||s===void 0?void 0:s.cancel()),g.ok?"ok":"error"}catch(g){return g instanceof Error&&g.name==="AbortError"?"timed out":"error"}}else return new Promise(u=>{var d,p,m;const g=this.channelAdapter.push(t.type,t,n.timeout||this.timeout);t.type==="broadcast"&&!(!((m=(p=(d=this.params)===null||d===void 0?void 0:d.config)===null||p===void 0?void 0:p.broadcast)===null||m===void 0)&&m.ack)&&u("ok"),g.receive("ok",()=>u("ok")),g.receive("error",()=>u("error")),g.receive("timeout",()=>u("timed out"))})}updateJoinPayload(t){this.channelAdapter.updateJoinPayload(t)}async unsubscribe(t=this.timeout){return new Promise(n=>{this.channelAdapter.unsubscribe(t).receive("ok",()=>n("ok")).receive("timeout",()=>n("timed out")).receive("error",()=>n("error"))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(t,n,o){const s=new AbortController,u=setTimeout(()=>s.abort(),o),d=await this.socket.fetch(t,Object.assign(Object.assign({},n),{signal:s.signal}));return clearTimeout(u),d}_on(t,n,o){const s=t.toLocaleLowerCase(),u=n?.filter;(u instanceof PC||typeof u=="object"&&u!==null&&typeof u.build=="function")&&(n=Object.assign(Object.assign({},n),{filter:u.build()}));const d=this.channelAdapter.on(t,o),p={type:s,filter:n,callback:o,ref:d};return this.bindings[s]?this.bindings[s].push(p):this.bindings[s]=[p],this._updateFilterMessage(),this}_onClose(t){this.channelAdapter.onClose(t)}_onError(t){this.channelAdapter.onError(t)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((t,n,o)=>{var s,u,d,p,m,g,b;const y=t.event.toLocaleLowerCase();if(this._notThisChannelEvent(y,o))return!1;const w=(s=this.bindings[y])===null||s===void 0?void 0:s.find(x=>x.ref===t.ref);if(!w)return!0;if(["broadcast","presence","postgres_changes"].includes(y))if("id"in w){const x=w.id,k=(u=w.filter)===null||u===void 0?void 0:u.event;return x&&((d=n.ids)===null||d===void 0?void 0:d.includes(x))&&(k==="*"||k?.toLocaleLowerCase()===((p=n.data)===null||p===void 0?void 0:p.type.toLocaleLowerCase()))}else{const x=(g=(m=w?.filter)===null||m===void 0?void 0:m.event)===null||g===void 0?void 0:g.toLocaleLowerCase();return x==="*"||x===((b=n?.event)===null||b===void 0?void 0:b.toLocaleLowerCase())}else return w.type.toLocaleLowerCase()===y})}_notThisChannelEvent(t,n){const{close:o,error:s,leave:u,join:d}=Yx;return n&&[o,s,u,d].includes(t)&&n!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((t,n,o)=>{if(typeof n=="object"&&"ids"in n){const s=n.data,{schema:u,table:d,commit_timestamp:p,type:m,errors:g}=s;return Object.assign(Object.assign({},{schema:u,table:d,commit_timestamp:p,eventType:m,new:{},old:{},errors:g}),this._getPayloadRecords(s))}return n})}copyBindings(t){if(this.joinedOnce)throw new Error("cannot copy bindings into joined channel");for(const n in t.bindings)for(const o of t.bindings[n])this._on(o.type,o.filter,o.callback)}static isFilterValueEqual(t,n){return(t??void 0)===(n??void 0)}_getPayloadRecords(t){const n={new:{},old:{}};return(t.type==="INSERT"||t.type==="UPDATE")&&(n.new=Pv(t.columns,t.record)),(t.type==="UPDATE"||t.type==="DELETE")&&(n.old=Pv(t.columns,t.old_record)),n}}class jC{constructor(t,n){this.socket=new DC(t,n)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(t){this.socket.heartbeatCallback=t}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(t,n,o,s=1e4){return new Promise(u=>{setTimeout(()=>u("timeout"),s),this.socket.disconnect(()=>{t(),u("ok")},n,o)})}push(t){this.socket.push(t)}log(t,n,o){this.socket.log(t,n,o)}makeRef(){return this.socket.makeRef()}onOpen(t){this.socket.onOpen(t)}onClose(t){this.socket.onClose(t)}onError(t){this.socket.onError(t)}onMessage(t){this.socket.onMessage(t)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==Np.connecting}isDisconnecting(){return this.socket.connectionState()==Np.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}}const Uv={HEARTBEAT_INTERVAL:25e3},qC=[1e3,2e3,5e3,1e4],MC=1e4;function FC(){const e=new Map;return{get length(){return e.size},clear(){e.clear()},getItem(t){return e.has(t)?e.get(t):null},key(t){var n;return(n=Array.from(e.keys())[t])!==null&&n!==void 0?n:null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,String(n))}}}function UC(){try{if(typeof globalThis<"u"&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return FC()}const BC=`
20  addEventListener("message", (e) => {
21    if (e.data.event === "start") {
22      setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
23    }
24  });`;class zC{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(t,n){var o;if(this.channels=new Array,this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint="",this.headers={},this.params={}
24,this.ref=0,this.serializer=new uC,this._manuallySetToken=!1,this._authPromise=null,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=u=>u?(...d)=>u(...d):(...d)=>fetch(...d),!(!((o=n?.params)===null||o===void 0)&&o.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=n.params.apikey;const s=this._initializeOptions(n);this.socketAdapter=new jC(t,s),this.httpEndpoint=Qx(t),this.fetch=this._resolveFetch(n?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely("connect"),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(t){const n=t.message;throw new Error(`WebSocket not available: ${n}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(t,n){return this._cancelPendingDisconnect(),this.isDisconnecting()?"ok":await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},t,n)}getChannels(){return this.channels}async removeChannel(t){const n=await t.unsubscribe();return n==="ok"&&t.teardown(),n}async removeAllChannels(){const t=this.channels.map(async o=>{const s=await o.unsubscribe();return o.teardown(),s}),n=await Promise.all(t);return await this.disconnect(),n}log(t,n,o){this.socketAdapter.log(t,n,o)}connectionState(){return this.socketAdapter.connectionState()||Np.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(t,n={config:{}}){const o=`realtime:${t}`,s=this.getChannels().find(u=>u.topic===o);if(s)return s;{const u=new cs(`realtime:${t}`,n,this);return this._cancelPendingDisconnect(),this.channels.push(u),u}}push(t){this.socketAdapter.push(t)}async setAuth(t=null){this._authPromise=this._performAuth(t);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(t){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(t)}_makeRef(){return this.socketAdapter.makeRef()}_remove(t){this.channels=this.channels.filter(n=>n.topic!==t.topic),this.channels.length===0&&(this.log("transport","no channels remaining, scheduling disconnect"),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){if(this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0){this.log("transport","disconnecting immediately - no channels"),this.disconnect();return}
24this._pendingDisconnectTimer=setTimeout(()=>{this._pendingDisconnectTimer=null,this.channels.length===0&&(this.log("transport","deferred disconnect fired - no channels, disconnecting"),this.disconnect())},this._disconnectOnEmptyChannelsAfterMs),this.log("transport",`deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`)}_cancelPendingDisconnect(){this._pendingDisconnectTimer!==null&&(this.log("transport","pending disconnect cancelled - channel activity detected"),clearTimeout(this._pendingDisconnectTimer),this._pendingDisconnectTimer=null)}async _performAuth(t=null){let n,o=!1;if(t)n=t,o=!0;else if(this.accessToken)try{n=await this.accessToken()}catch(s){this.log("error","Error fetching access token from callback",s),n=this.accessTokenValue}else n=this.accessTokenValue;o?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=n&&(this.accessTokenValue=n,this.channels.forEach(s=>{const u={access_token:n,version:oC};n&&s.updateJoinPayload(u),s.joinedOnce&&s.channelAdapter.isJoined()&&s.channelAdapter.push(Yx.access_token,{access_token:n})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(t="general"){this._isManualToken()||this.setAuth().catch(n=>{this.log("error",`Error setting auth in ${t}`,n)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(n=>{this.log("error","error waiting for auth on connect",n)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(t=>{t.ref&&t.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(t){return(n,o)=>{n=="sent"&&this._setAuthSafely(),t&&t(n,o)}}_startWorkerHeartbeat(){this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const t=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(t),this.workerRef.onerror=n=>{this.log("worker","worker error",n.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=n=>{n.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log("worker","terminating worker"),this.workerRef.terminate(),this.workerRef=void 0)}_workerObjectUrl(t){let n;if(t)n=t;else{const o=new Blob([BC],{type:"application/javascript"});n=URL.createObjectURL(o)}return n}_initializeOptions(t){var n,o,s,u,d,p,m,g,b,y,w,x;this.worker=(n=t?.worker)!==null&&n!==void 0?n:!1,this.accessToken=(o=t?.accessToken)!==null&&o!==void 0?o:null;const k={};k.timeout=(s=t?.timeout)!==null&&s!==void 0?s:lC,k.heartbeatIntervalMs=(u=t?.heartbeatIntervalMs)!==null&&u!==void 0?u:Uv.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=(d=t?.disconnectOnEmptyChannelsAfterMs)!==null&&d!==void 0?d:2*((p=t?.heartbeatIntervalMs)!==null&&p!==void 0?p:Uv.HEARTBEAT_INTERVAL),k.transport=(m=t?.transport)!==null&&m!==void 0?m:nC.getWebSocketConstructor(),k.params=t?.params,k.logger=t?.logger,k.heartbeatCallback=this._wrapHeartbeatCallback(t?.heartbeatCallback),k.sessionStorage=(g=t?.sessionStorage)!==null&&g!==void 0?g:UC(),k.reconnectAfterMs=(b=t?.reconnectAfterMs)!==null&&b!==void 0?b:(O=>qC[O-1]||MC);let E,D;const L=(y=t?.vsn)!==null&&y!==void 0?y:sC;switch(L){case iC:E=(O,N)=>N(JSON.stringify(O)),D=(O,N)=>N(JSON.parse(O));break;case Xx:E=this.serializer.encode.bind(this.serializer),D=this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${k.vsn}`)}if(k.vsn=L,k.encode=(w=t?.encode)!==null&&w!==void 0?w:E,k.decode=(x=t?.decode)!==null&&x!==void 0?x:D,k.beforeReconnect=this._reconnectAuth.bind(this),(t?.logLevel||t?.log_level)&&(this.logLevel=t.logLevel||t.log_level,k.params=Object.assign(Object.assign({},k.params),{log_level:this.logLevel})),this.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.workerUrl=t?.workerUrl,k.autoSendHeartbeat=!this.worker}return k}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}
24var bs=class extends Error{constructor(e,t){super(e),this.name="IcebergError",this.status=t.status,this.icebergType=t.icebergType,this.icebergCode=t.icebergCode,this.details=t.details,this.isCommitStateUnknown=t.icebergType==="CommitStateUnknownException"||[500,502,504].includes(t.status)&&t.icebergType?.includes("CommitState")===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function VC(e,t,n){const o=new URL(t,e);if(n)for(const[s,u]of Object.entries(n))u!==void 0&&o.searchParams.set(s,u);return o.toString()}async function GC(e){return!e||e.type==="none"?{}:e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:e.type==="header"?{[e.name]:e.value}:e.type==="custom"?await e.getHeaders():{}}function WC(e){const t=e.fetchImpl??globalThis.fetch;return{async request({method:n,path:o,query:s,body:u,headers:d}){const p=VC(e.baseUrl,o,s),m=await GC(e.auth),g=await t(p,{method:n,headers:{...u?{"Content-Type":"application/json"}:{},...m,...d},body:u?JSON.stringify(u):void 0}),b=await g.text(),y=(g.headers.get("content-type")||"").includes("application/json"),w=y&&b?JSON.parse(b):b;if(!g.ok){const x=y?w:void 0,k=x?.error;throw new bs(k?.message??`Request failed with status ${g.status}`,{status:g.status,icebergType:k?.type,icebergCode:k?.code,details:x})}return{status:g.status,headers:g.headers,data:w}}}}function mc(e){return e.join("�")}var XC=class{constructor(e,t=""){this.client=e,this.prefix=t}async listNamespaces(e){const t=e?{parent:mc(e.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(o=>({namespace:o}))}async createNamespace(e,t){const n={namespace:e.namespace,properties:t?.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:n})).data}async dropNamespace(e){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${mc(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${mc(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${mc(e.namespace)}`}),!0}catch(t){if(t instanceof bs&&t.status===404)return!1;throw t}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(n){if(n instanceof bs&&n.status===409)return;throw n}}};function jo(e){return e.join("�")}var YC=class{constructor(e,t="",n){this.client=e,this.prefix=t,this.accessDelegation=n}async listTables(e){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${jo(e.namespace)}/tables`})).data.identifiers}async createTable(e,t){const n={};return this.accessDelegation&&(n["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${jo(e.namespace)}/tables`,body:t,headers:n})).data.metadata}async updateTable(e,t){const n=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${jo(e.namespace)}/tables/${e.name}`,body:t});return{"metadata-location":n.data["metadata-location"],metadata:n.data.metadata}}async dropTable(e,t){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${jo(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String(t?.purge??!1)}})}async loadTable(e){const t={};return this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${jo(e.namespace)}/tables/${e.name}`,headers:t})).data.metadata}async tableExists(e){const t={};this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation);try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${jo(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(n){if(n instanceof bs&&n.status===404)return!1;throw n}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(n){if(n instanceof bs&&n.status===409)return await this.loadTable({namespace:e.namespace,name:t.name});throw n}}},KC=class{constructor(e){let t="v1";e.catalogName&&(t+=`/${e.catalogName}`);const n=e.baseUrl.endsWith("/")?e.baseUrl:`${e.baseUrl}/`;this.client=WC({baseUrl:n,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=e.accessDelegation?.join(","),this.namespaceOps=new XC(this.client,t),this.tableOps=new YC(this.client,t,this.accessDelegation)}async listNamespaces(e){return this.namespaceOps.listNamespaces(e)}async createNamespace(e,t){return this.namespaceOps.createNamespace(e,t)}async dropNamespace(e){await this.namespaceOps.dropNamespace(e)}async loadNamespaceMetadata(e){return this.namespaceOps.loadNamespaceMetadata(e)}async listTables(e){return this.tableOps.listTables(e)}
24async createTable(e,t){return this.tableOps.createTable(e,t)}async updateTable(e,t){return this.tableOps.updateTable(e,t)}async dropTable(e,t){await this.tableOps.dropTable(e,t)}async loadTable(e){return this.tableOps.loadTable(e)}async namespaceExists(e){return this.namespaceOps.namespaceExists(e)}async tableExists(e){return this.tableOps.tableExists(e)}async createNamespaceIfNotExists(e,t){return this.namespaceOps.createNamespaceIfNotExists(e,t)}async createTableIfNotExists(e,t){return this.tableOps.createTableIfNotExists(e,t)}};function vs(e){"@babel/helpers - typeof";return vs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vs(e)}function QC(e,t){if(vs(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t);if(vs(o)!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function JC(e){var t=QC(e,"string");return vs(t)=="symbol"?t:t+""}function ZC(e,t,n){return(t=JC(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,o)}return n}function me(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Bv(Object(n),!0).forEach(function(o){ZC(e,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bv(Object(n)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})}return e}var ou=class extends Error{constructor(e,t="storage",n,o){super(e),this.__isStorageError=!0,this.namespace=t,this.name=t==="vectors"?"StorageVectorsError":"StorageError",this.status=n,this.statusCode=o}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function iu(e){return typeof e=="object"&&e!==null&&"__isStorageError"in e}var qp=class extends ou{constructor(e,t,n,o="storage"){super(e,o,t,n),this.name=o==="vectors"?"StorageVectorsApiError":"StorageApiError",this.status=t,this.statusCode=n}toJSON(){return me({},super.toJSON())}},Zx=class extends ou{constructor(e,t,n="storage"){super(e,n),this.name=n==="vectors"?"StorageVectorsUnknownError":"StorageUnknownError",this.originalError=t}};function qc(e,t,n){const o=me({},e),s=t.toLowerCase();for(const u of Object.keys(o))u.toLowerCase()===s&&delete o[u];return o[s]=n,o}function eR(e){const t={};for(const[n,o]of Object.entries(e))t[n.toLowerCase()]=o;return t}const tR=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),rR=e=>{if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Mp=e=>{if(Array.isArray(e))return e.map(n=>Mp(n));if(typeof e=="function"||e!==Object(e))return e;const t={};return Object.entries(e).forEach(([n,o])=>{const s=n.replace(/([-_][a-z])/gi,u=>u.toUpperCase().replace(/[-_]/g,""));t[s]=Mp(o)}),t},nR=e=>!e||typeof e!="string"||e.length===0||e.length>100||e.trim()!==e||e.includes("/")||e.includes("\\")?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),zv=e=>{if(typeof e=="object"&&e!==null){const t=e;if(typeof t.msg=="string")return t.msg;if(typeof t.message=="string")return t.message;if(typeof t.error_description=="string")return t.error_description;if(typeof t.error=="string")return t.error;if(typeof t.error=="object"&&t.error!==null){const n=t.error;if(typeof n.message=="string")return n.message}}return JSON.stringify(e)},aR=async(e,t,n,o)=>{if(e!==null&&typeof e=="object"&&"json"in e&&typeof e.json=="function"){const s=e;let u=parseInt(String(s.status),10);Number.isFinite(u)||(u=500),s.json().then(d=>{const p=d?.statusCode||d?.code||u+"";t(new qp(zv(d),u,p,o))}).catch(()=>{const d=u+"";t(new qp(s.statusText||`HTTP ${u} error`,u,d,o))})}else t(new Zx(zv(e),e,o))},oR=(e,t,n,o)=>{const s={method:e,headers:t?.headers||{}};if(e==="GET"||e==="HEAD"||!o)return me(me({},s),n);if(rR(o)){var u;const d=t?.headers||{};let p;for(const[m,g]of Object.entries(d))m.toLowerCase()==="content-type"&&(p=g);s.headers=qc(d,"Content-Type",(u=p)!==null&&u!==void 0?u:"application/json"),s.body=JSON.stringify(o)}else s.body=o;return t?.duplex&&(s.duplex=t.duplex),me(me({},s),n)};async function Zi(e,t,n,o,s,u,d){return new Promise((p,m)=>{e(n,oR(t,o,s,u)).then(g=>{if(!g.ok)throw g;if(o?.noResolveJson)return g;if(d==="vectors"){const b=g.headers.get("content-type");if(g.headers.get("content-length")==="0"||g.status===204)return{};if(!b||!b.includes("application/json"))return{}}return g.json()}).then(g=>p(g)).catch(g=>aR(g,m,o,d))})}function eE(e="storage"){return{get:async(t,n,o,s)=>Zi(t,"GET",n,o,s,void 0,e),post:async(t,n,o,s,u)=>Zi(t,"POST",n,s,u,o,e),put:async(t,n,o,s,u)=>Zi(t,"PUT",n,s,u,o,e),head:async(t,n,o,s)=>Zi(t,"HEAD",n,me(me({},o),{},{noResolveJson:!0}),s,void 0,e),remove:async(t,n,o,s,u)=>Zi(t,"DELETE",n,s,u,o,e)}}const iR=eE("storage"),{get:ws,post:yr,put:Fp,head:sR,remove:xs}=iR,Jt=eE("vectors");var ei=class{constructor(e,t={},n,o="storage"){this.shouldThrowOnError=!1,this.url=e,this.headers=eR(t),this.fetch=tR(n),this.namespace=o}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=qc(this.headers,e,t),this}async handleOperation(e){var t=this;try{return{data:await e(),error:null}}catch(n){if(t.shouldThrowOnError)throw n;if(iu(n))return{data:null,error:n};throw n}}};let tE;tE=Symbol.toStringTag;var lR=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[tE]="StreamDownloadBuilder",this.promise=null}
24then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var e=this;try{return{data:(await e.downloadFn()).body,error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(iu(t))return{data:null,error:t};throw t}}};let rE;rE=Symbol.toStringTag;var cR=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[rE]="BlobDownloadBuilder",this.promise=null}asStream(){return new lR(this.downloadFn,this.shouldThrowOnError)}then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var e=this;try{return{data:await(await e.downloadFn()).blob(),error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(iu(t))return{data:null,error:t};throw t}}};const Wh={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},Vv={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};var uR=class extends ei{constructor(e,t={},n,o){super(e,t,o,"storage"),this.bucketId=n}async uploadOrUpdate(e,t,n,o){var s=this;return s.handleOperation(async()=>{let u;const d=me(me({},Vv),o);let p=me(me({},s.headers),e==="POST"&&{"x-upsert":String(d.upsert)});const m=d.metadata;if(typeof Blob<"u"&&n instanceof Blob?(u=new FormData,u.append("cacheControl",d.cacheControl),m&&u.append("metadata",s.encodeMetadata(m)),u.append("",n)):typeof FormData<"u"&&n instanceof FormData?(u=n,u.has("cacheControl")||u.append("cacheControl",d.cacheControl),m&&!u.has("metadata")&&u.append("metadata",s.encodeMetadata(m))):(u=n,p["cache-control"]=`max-age=${d.cacheControl}`,p["content-type"]=d.contentType,m&&(p["x-metadata"]=s.toBase64(s.encodeMetadata(m))),(typeof ReadableStream<"u"&&u instanceof ReadableStream||u&&typeof u=="object"&&"pipe"in u&&typeof u.pipe=="function")&&!d.duplex&&(d.duplex="half")),o?.headers)for(const[w,x]of Object.entries(o.headers))p=qc(p,w,x);const g=s._removeEmptyFolders(t),b=s._getFinalPath(g),y=await(e=="PUT"?Fp:yr)(s.fetch,`${s.url}/object/${b}`,u,me({headers:p},d?.duplex?{duplex:d.duplex}:{}));return{path:g,id:y.Id,fullPath:y.Key}})}async upload(e,t,n){return this.uploadOrUpdate("POST",e,t,n)}async uploadToSignedUrl(e,t,n,o){var s=this;const u=s._removeEmptyFolders(e),d=s._getFinalPath(u),p=new URL(s.url+`/object/upload/sign/${d}`);return p.searchParams.set("token",t),s.handleOperation(async()=>{let m;const g=me(me({},Vv),o);let b=me(me({},s.headers),{"x-upsert":String(g.upsert)});const y=g.metadata;if(typeof Blob<"u"&&n instanceof Blob?(m=new FormData,m.append("cacheControl",g.cacheControl),y&&m.append("metadata",s.encodeMetadata(y)),m.append("",n)):typeof FormData<"u"&&n instanceof FormData?(m=n,m.has("cacheControl")||m.append("cacheControl",g.cacheControl),y&&!m.has("metadata")&&m.append("metadata",s.encodeMetadata(y))):(m=n,b["cache-control"]=`max-age=${g.cac
24heControl}`,b["content-type"]=g.contentType,y&&(b["x-metadata"]=s.toBase64(s.encodeMetadata(y))),(typeof ReadableStream<"u"&&m instanceof ReadableStream||m&&typeof m=="object"&&"pipe"in m&&typeof m.pipe=="function")&&!g.duplex&&(g.duplex="half")),o?.headers)for(const[w,x]of Object.entries(o.headers))b=qc(b,w,x);return{path:u,fullPath:(await Fp(s.fetch,p.toString(),m,me({headers:b},g?.duplex?{duplex:g.duplex}:{}))).Key}})}async createSignedUploadUrl(e,t){var n=this;return n.handleOperation(async()=>{let o=n._getFinalPath(e);const s=me({},n.headers);t?.upsert&&(s["x-upsert"]="true");const u=await yr(n.fetch,`${n.url}/object/upload/sign/${o}`,{},{headers:s}),d=new URL(n.url+u.url),p=d.searchParams.get("token");if(!p)throw new ou("No token returned by API");return{signedUrl:d.toString(),path:e,token:p}})}async update(e,t,n){return this.uploadOrUpdate("PUT",e,t,n)}async move(e,t,n){var o=this;return o.handleOperation(async()=>await yr(o.fetch,`${o.url}/object/move`,{bucketId:o.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:o.headers}))}async copy(e,t,n){var o=this;return o.handleOperation(async()=>({path:(await yr(o.fetch,`${o.url}/object/copy`,{bucketId:o.bucketId,sourceKey:e,destinationKey:t,de
24stinationBucket:n?.destinationBucket},{headers:o.headers})).Key}))}async createSignedUrl(e,t,n){var o=this;return o.handleOperation(async()=>{let s=o._getFinalPath(e);const u=typeof n?.transform=="object"&&n.transform!==null&&Object.keys(n.transform).length>0;let d=await yr(o.fetch,`${o.url}/object/sign/${s}`,me({expiresIn:t},u?{transform:n.transform}:{}),{headers:o.headers});const p=new URLSearchParams;n?.download&&p.set("download",n.download===!0?"":n.download),n?.cacheNonce!=null&&p.set("cacheNonce",String(n.cacheNonce));const m=p.toString();return{signedUrl:encodeURI(`${o.url}${d.signedURL}${m?`&${m}`:""}`)}})}async createSignedUrls(e,t,n){var o=this;return o.handleOperation(async()=>{const s=await yr(o.fetch,`${o.url}/object/sign/${o.bucketId}`,{expiresIn:t,paths:e},{headers:o.headers}),u=new URLSearchParams;n?.download&&u.set("download",n.download===!0?"":n.download),n?.cacheNonce!=null&&u.set("cacheNonce",String(n.cacheNonce));const d=u.toString();return s.map(p=>me(me({},p),{},{signedUrl:p.signedURL?encodeURI(`${o.url}${p.signedURL}${d?`&${d}`:""}`):null}))})}download(e,t,n){const o=typeof t?.transform=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image/authenticated":"object",s=new URLSearchParams;t?.transform&&this.applyTransformOptsToQuery(s,t.transform),t?.cacheNonce!=null&&s.set("cacheNonce",String(t.cacheNonce));const u=s.toString(),d=this._getFinalPath(e),p=()=>ws(this.fetch,`${this.url}/${o}/${d}${u?`?${u}`:""}`,{headers:this.headers,noResolveJson:!0},n);return new cR(p,this.shouldThrowOnError)}async info(e){var t=this;const n=t._getFinalPath(e);return t.handleOperation(async()=>Mp(await ws(t.fetch,`${t.url}/object/info/${n}`,{headers:t.headers})))}async exists(e){var t=this;const n=t._getFinalPath(e);try{return await sR(t.fetch,`${t.url}/object/${n}`,{headers:t.headers}),{data:!0,error:null}}catch(s){if(t.shouldThrowOnError)throw s;if(iu(s)){var o;const u=s instanceof qp?s.status:s instanceof Zx?(o=s.originalError)===null||o===void 0?void 0:o.status:void 0;if(u!==void 0&&[400,404].includes(u))return{data:!1,error:s}}throw s}}getPublicUrl(e,t){const n=this._getFinalPath(e),o=new URLSearchParams;t?.download&&o.set("download",t.download===!0?"":t.download),t?.transform&&this.applyTransformOptsToQuery(o,t.transform),t?.cacheNonce!=null&&o.set("cacheNonce",String(t.cacheNonce));const s=o.toString(),u=typeof t?.transform=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image":"object";return{data:{publicUrl:encodeURI(`${this.url}/${u}/public/${n}`)+(s?`?${s}`:"")}}}async remove(e){var t=this;return t.handleOperation(async()=>await xs(t.fetch,`${t.url}/object/${t.bucketId}`,{prefixes:e},{headers:t.headers}))}async purgeCache(e,t,n){var o=this;return o.handleOperation(async()=>{const s=o._getFinalPath(e),u=new URLSearchParams;t?.transformations&&u.set("transformations","true");const d=u.toString();return await xs(o.fetch,`${o.url}/cdn/${s}${d?`?${d}`:""}`,{},{headers:o.headers},n)})}async list(e,t,n){var o=this;return o.handleOperation(async()=>{const s=t?.sortBy?me(me({},Wh.sortBy),t.sortBy):Wh.sortBy,u=me(me(me({},Wh),t),{},{sortBy:s,prefix:e||""});return await yr(o.fetch,`${o.url}/object/list/${o.bucketId}`,u,{headers:o.headers},n)})}async listV2(e,t){var n=this;return n.handleOperation(async()=>{const o=me({},e);return await yr(n.fetch,`${n.url}/object/list-v2/${n.bucketId}`,o,{headers:n.headers},t)})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<"u"?Buffer.from(e).toString("base64"):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,"")}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}applyTransformOptsToQuery(e,t){return t.width&&e.set("width",t.width.toString()),t.height&&e.set("height",t.height.toString()),t.resize&&e.set("resize",t.resize),t.format&&e.set("format",t.format),t.quality&&e.set("quality",t.quality.toString()),e}};const dR="2.110.0",Is={"X-Client-Info":`storage-js/${dR}`};var hR=class extends ei{constructor(e,t={},n,o){const s=new URL(e);o?.useNewHostname&&/supabase\.(co|in|red)$/.test(s.hostname)&&!s.hostname.includes("storage.supabase.")&&(s.hostname=s.hostname.replace("supabase.","storage.supabase."));const u=s.href.replace(/\/$/,""),d=me(me({},Is),t);super(u,d,n,"storage")}async listBuckets(e){var t=this;return t.handleOperation(async()=>{const n=t.listBucketOptionsToQueryString(e);return await ws(t.fetch,`${t.url}/bucket${n}`,{headers:t.headers})})}async getBucket(e){var t=this;return t.handleOperation(async()=>await ws(t.fetch,`${t.url}/bucket/${e}`,{headers:t.headers}))}async createBucket(e,t={public:!1}){var n=this;return n.handleOperation(async()=>await yr(n.fetch,`${n.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async updateBucket(e,t){var n=this;return n.handleOperation(async()=>await Fp(n.fetch,`${n.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async emptyBucket(e){var t=this;return t.handleOperation(async()=>await yr(t.fetch,`${t.url}/bucket/${e}/empty`,{},{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await xs(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}async purgeBucketCache(e,t,n){var o=this;return o.handleOperation(async()=>{const s=new URLSearchParams;t?.transformations&&s.set("transformations","true");const u=s.toString();return await xs(o.fetch,`${o.url}/cdn/${e}${u?`?${u}
24`:""}`,{},{headers:o.headers},n)})}listBucketOptionsToQueryString(e){const t={};return e&&("limit"in e&&(t.limit=String(e.limit)),"offset"in e&&(t.offset=String(e.offset)),e.search&&(t.search=e.search),e.sortColumn&&(t.sortColumn=e.sortColumn),e.sortOrder&&(t.sortOrder=e.sortOrder)),Object.keys(t).length>0?"?"+new URLSearchParams(t).toString():""}},pR=class extends ei{constructor(e,t={},n){const o=e.replace(/\/$/,""),s=me(me({},Is),t);super(o,s,n,"storage")}async createBucket(e){var t=this;return t.handleOperation(async()=>await yr(t.fetch,`${t.url}/bucket`,{name:e},{headers:t.headers}))}async listBuckets(e){var t=this;return t.handleOperation(async()=>{const n=new URLSearchParams;e?.limit!==void 0&&n.set("limit",e.limit.toString()),e?.offset!==void 0&&n.set("offset",e.offset.toString()),e?.sortColumn&&n.set("sortColumn",e.sortColumn),e?.sortOrder&&n.set("sortOrder",e.sortOrder),e?.search&&n.set("search",e.search);const o=n.toString(),s=o?`${t.url}/bucket?${o}`:`${t.url}/bucket`;return await ws(t.fetch,s,{headers:t.headers})})}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await xs(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}from(e){var t=this;if(!nR(e))throw new ou("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");const n=new KC({baseUrl:this.url,catalogName:e,auth:{type:"custom",getHeaders:async()=>t.headers},fetch:this.fetch}),o=this.shouldThrowOnError;return new Proxy(n,{get(s,u){const d=s[u];return typeof d!="function"?d:async(...p)=>{try{return{data:await d.apply(s,p),error:null}}catch(m){if(o)throw m;return{data:null,error:m}}}}})}},fR=class extends ei{constructor(e,t={},n){const o=e.replace(/\/$/,""),s=me(me({},Is),{},{"Content-Type":"application/json"},t);super(o,s,n,"vectors")}async createIndex(e){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/CreateIndex`,e,{headers:t.headers})||{})}async getIndex(e,t){var n=this;return n.handleOperation(async()=>await Jt.post(n.fetch,`${n.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers}))}async listIndexes(e){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/ListIndexes`,e,{headers:t.headers}))}async deleteIndex(e,t){var n=this;return n.handleOperation(async()=>await Jt.post(n.fetch,`${n.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers})||{})}},mR=class extends ei{constructor(e,t={},n){const o=e.replace(/\/$/,""),s=me(me({},Is),{},{"Content-Type":"application/json"},t);super(o,s,n,"vectors")}async putVectors(e){var t=this;if(e.vectors.length<1||e.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/PutVectors`,e,{headers:t.headers})||{})}async getVectors(e){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/GetVectors`,e,{headers:t.headers}))}async listVectors(e){var t=this;if(e.segmentCount!==void 0){if(e.segmentCount<1||e.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");if(e.segmentIndex!==void 0&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw new Error(`segmentIndex must be between 0 and ${e.segmentCount-1}`)}return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/ListVectors`,e,{headers:t.headers}))}async queryVectors(e){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/QueryVectors`,e,{headers:t.headers}))}async deleteVectors(e){var t=this;if(e.keys.length<1||e.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/DeleteVectors`,e,{headers:t.headers})||{})}},gR=class extends ei{constructor(e,t={},n){const o=e.replace(/\/$/,""),s=me(me({},Is),{},{"Content-Type":"application/json"},t);super(o,s,n,"vectors")}async createBucket(e){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}async getBucket(e){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/GetVectorBucket`,{vectorBucketName:e},{headers:t.headers}))}async listBuckets(e={}){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/ListVectorBuckets`,e,{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Jt.post(t.fetch,`${t.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}},yR=class extends gR{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new bR(this.url,this.headers,e,this.fetch)}async createBucket(e){var t=()=>super.createBucket,n=this;return t().call(n,e)}async getBucket(e){var t=()=>super.getBucket,n=this;return t().call(n,e)}async listBuckets(e={}){var t=()=>super.listBuckets,n=this;return t().call(n,e)}async deleteBucket(e){var t=()=>super.deleteBucket,n=this;return t().call(n,e)}},bR=class extends fR{constructor(e,t,n,o){super(e,t,o),this.vectorBucketName=n}async createIndex(e){var t=()=>super.createIndex,n=this;return t().call(n,me(me({},e),{},{vectorBucketName:n.vectorBucketName}))}
24async listIndexes(e={}){var t=()=>super.listIndexes,n=this;return t().call(n,me(me({},e),{},{vectorBucketName:n.vectorBucketName}))}async getIndex(e){var t=()=>super.getIndex,n=this;return t().call(n,n.vectorBucketName,e)}async deleteIndex(e){var t=()=>super.deleteIndex,n=this;return t().call(n,n.vectorBucketName,e)}index(e){return new vR(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},vR=class extends mR{constructor(e,t,n,o,s){super(e,t,s),this.vectorBucketName=n,this.indexName=o}async putVectors(e){var t=()=>super.putVectors,n=this;return t().call(n,me(me({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async getVectors(e){var t=()=>super.getVectors,n=this;return t().call(n,me(me({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async listVectors(e={}){var t=()=>super.listVectors,n=this;return t().call(n,me(me({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async queryVectors(e){var t=()=>super.queryVectors,n=this;return t().call(n,me(me({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async deleteVectors(e){var t=()=>super.deleteVectors,n=this;return t().call(n,me(me({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}},wR=class extends hR{constructor(e,t={},n,o){super(e,t,n,o)}from(e){return new uR(this.url,this.headers,e,this.fetch)}get vectors(){return new yR(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new pR(this.url+"/iceberg",this.headers,this.fetch)}};const nE="2.110.0",ln=30*1e3,ns=3,Xh=ns*ln,xR=2*ln,ER="http://localhost:9999",SR="supabase.auth.token",kR={"X-Client-Info":`gotrue-js/${nE}`},Up="X-Supabase-Api-Version",aE={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},DR=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,TR=600*1e3;
24class Es extends Error{constructor(t,n,o){super(t),this.__isAuthError=!0,this.name="AuthError",this.status=n,this.code=o}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}}function re(e){return typeof e=="object"&&e!==null&&"__isAuthError"in e}class LR extends Es{constructor(t,n,o){super(t,n,o),this.name="AuthApiError",this.status=n,this.code=o}}function AR(e){return re(e)&&e.name==="AuthApiError"}class vr extends Es{constructor(t,n){super(t),this.name="AuthUnknownError",this.originalError=n}}class Nr extends Es{constructor(t,n,o,s){super(t,o,s),this.name=n,this.status=o}}class gt extends Nr{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function gc(e){return re(e)&&e.name==="AuthSessionMissingError"}class qo extends Nr{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class yc extends Nr{constructor(t){super(t,"AuthInvalidCredentialsError",400,void 0)}}class bc extends Nr{constructor(t,n=null){super(t,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=n}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}function _R(e){return re(e)&&e.name==="AuthImplicitGrantRedirectError"}class Gv extends Nr{constructor(t,n=null){super(t,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=n}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}class CR extends Nr{constructor(){super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}}class Bp extends Nr{constructor(t,n){super(t,"AuthRetryableFetchError",n,void 0)}}function Wv(e){return re(e)&&e.name==="AuthRetryableFetchError"}class Xv extends Nr{constructor(t="Refresh result discarded: session state changed mid-flight (e.g., concurrent signOut)"){super(t,"AuthRefreshDiscardedError",409,void 0)}}function RR(e){return re(e)&&e.name==="AuthRefreshDiscardedError"}class Yv extends Nr{constructor(t,n,o){super(t,"AuthWeakPasswordError",n,"weak_password"),this.reasons=o}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}}class Mc extends Nr{constructor(t){super(t,"AuthInvalidJwtError",400,"invalid_jwt")}}const Fc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),Kv=` 	
25\r=`.split(""),IR=(()=>{const e=new Array(128);for(let t=0;t<e.length;t+=1)e[t]=-1;for(let t=0;t<Kv.length;t+=1)e[Kv[t].charCodeAt(0)]=-2;for(let t=0;t<Fc.length;t+=1)e[Fc[t].charCodeAt(0)]=t;return e})();function Qv(e,t,n){if(e!==null)for(t.queue=t.queue<<8|e,t.queuedBits+=8;t.queuedBits>=6;){const o=t.queue>>t.queuedBits-6&63;n(Fc[o]),t.queuedBits-=6}else if(t.queuedBits>0)for(t.queue=t.queue<<6-t.queuedBits,t.queuedBits=6;t.queuedBits>=6;){const o=t.queue>>t.queuedBits-6&63;n(Fc[o]),t.queuedBits-=6}}function oE(e,t,n){const o=IR[e];if(o>-1)for(t.queue=t.queue<<6|o,t.queuedBits+=6;t.queuedBits>=8;)n(t.queue>>t.queuedBits-8&255),t.queuedBits-=8;else{if(o===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}}function Jv(e){const t=[],n=d=>{t.push(String.fromCodePoint(d))},o={utf8seq:0,codepoint:0},s={queue:0,queuedBits:0},u=d=>{NR(d,o,n)};for(let d=0;d<e.length;d+=1)oE(e.charCodeAt(d),s,u);return t.join("")}function OR(e,t){if(e<=127){t(e);return}else if(e<=2047){t(192|e>>6),t(128|e&63);return}else if(e<=65535){t(224|e>>12),t(128|e>>6&63),t(128|e&63);return}else if(e<=1114111){t(240|e>>18),t(128|e>>12&63),t(128|e>>6&63),t(128|e&63);return}throw new Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function $R(e,t){for(let n=0;n<e.length;n+=1){let o=e.charCodeAt(n);if(o>55295&&o<=56319){const s=(o-55296)*1024&65535;o=(e.charCodeAt(n+1)-56320&65535|s)+65536,n+=1}OR(o,t)}}function NR(e,t,n){if(t.utf8seq===0){if(e<=127){n(e);return}for(let o=1;o<6;o+=1)if((e>>7-o&1)===0){t.utf8seq=o;break}if(t.utf8seq===2)t.codepoint=e&31;else if(t.utf8seq===3)t.codepoint=e&15;else if(t.utf8seq===4)t.codepoint=e&7;else throw new Error("Invalid UTF-8 sequence");t.utf8seq-=1}else if(t.utf8seq>0){if(e<=127)throw new Error("Invalid UTF-8 sequence");t.codepoint=t.codepoint<<6|e&63,t.utf8seq-=1,t.utf8seq===0&&n(t.codepoint)}}function Qo(e){const t=[],n={queue:0,queuedBits:0},o=s=>{t.push(s)};for(let s=0;s<e.length;s+=1)oE(e.charCodeAt(s),n,o);return new Uint8Array(t)}function HR(e){const t=[];return $R(e,n=>t.push(n)),new Uint8Array(t)}function za(e){const t=[],n={queue:0,queuedBits:0},o=s=>{t.push(s)};return e.forEach(s=>Qv(s,n,o)),Qv(null,n,o),t.join("")}function PR(e){return Math.round(Date.now()/1e3)+e}function jR(){return Symbol("auth-callback")}const kt=()=>typeof window<"u"&&typeof document<"u",Oa={tested:!1,writable:!1},iE=()=>
25{if(!kt())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(Oa.tested)return Oa.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),Oa.tested=!0,Oa.writable=!0}catch{Oa.tested=!0,Oa.writable=!1}return Oa.writable};function qR(e){const t={},n=new URL(e);if(n.hash&&n.hash[0]==="#")try{new URLSearchParams(n.hash.substring(1)).forEach((s,u)=>{t[u]=s})}catch{}return n.searchParams.forEach((o,s)=>{t[s]=o}),t}const sE=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),MR=e=>typeof e=="object"&&e!==null&&"status"in e&&"ok"in e&&"json"in e&&typeof e.json=="function",zo=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},fr=async(e,t)=>{const n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return null}},nt=async(e,t)=>{await e.removeItem(t)};class su{constructor(){this.promise=new su.promiseConstructor((t,n)=>{this.resolve=t,this.reject=n})}}su.promiseConstructor=Promise;function vc(e){const t=e.split(".");if(t.length!==3)throw new Mc("Invalid JWT structure");for(let o=0;o<t.length;o++)if(!DR.test(t[o]))throw new Mc("JWT not in base64url format");return{header:JSON.parse(Jv(t[0])),payload:JSON.parse(Jv(t[1])),signature:Qo(t[2]),raw:{header:t[0],payload:t[1]}}}async function FR(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function UR(e,t){return new Promise((o,s)=>{(async()=>{for(let u=0;u<1/0;u++)try{const d=await e(u);if(!t(u,null,d)){o(d);return}}catch(d){if(!t(u,d)){s(d);return}}})()})}function BR(e){return("0"+e.toString(16)).substr(-2)}function zR(){const t=new Uint32Array(56);if(typeof crypto>"u"){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",o=n.length;let s="";for(let u=0;u<56;u++)s+=n.charAt(Math.floor(Math.random()*o));return s}return crypto.getRandomValues(t),Array.from(t,BR).join("")}async function VR(e){const n=new TextEncoder().encode(e),o=await crypto.subtle.digest("SHA-256",n),s=new Uint8Array(o);return Array.from(s).map(u=>String.fromCharCode(u)).join("")}async function GR(e){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;const n=await VR(e);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function $a(e,t,n=!1){const o=zR();let s=o;n&&(s+="/recovery"),await zo(e,`${t}-code-verifier`,s);const u=await GR(o);return[u,o===u?"plain":"s256"]}const WR=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function XR(e){const t=e.headers.get(Up);if(!t||!t.match(WR))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}function YR(e){if(!e)throw new Error("Missing exp claim");const t=Math.floor(Date.now()/1e3);if(e<=t)throw new Error("JWT has expired")}function KR(e){switch(e){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}const QR=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function an(e){if(!QR.test(e))throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function mr(e){if(!e.passkey)throw new Error("@supabase/auth-js: the passkey API is experimental and disabled by default. Enable it by passing `auth: { experimental: { passkey: true } }` to createClient (or to the GoTrueClient constructor).")}function Yh(){const e={};return new Proxy(e,{get:(t,n)=>{if(n==="__isUserNotAvailableProxy")return!0;if(typeof n=="symbol"){const o=n.toString();if(o==="Symbol(Symbol.toPrimitive)"||o==="Symbol(Symbol.toStringTag)"||o==="Symbol(util.inspect.custom)")return}throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${n}" property of the session object is not supported. Please use getUser() instead.`)},set:(t,n)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${n}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(t,n)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${n}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function JR(e,t){return new Proxy(e,{get:(n,o,s)=>{if(o==="__isInsecureUserWarningProxy")return!0;
25if(typeof o=="symbol"){const u=o.toString();if(u==="Symbol(Symbol.toPrimitive)"||u==="Symbol(Symbol.toStringTag)"||u==="Symbol(util.inspect.custom)"||u==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(n,o,s)}return!t.value&&typeof o=="string"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),t.value=!0),Reflect.get(n,o,s)}})}function Zv(e){return JSON.parse(JSON.stringify(e))}const Ma=e=>{if(typeof e=="object"&&e!==null){const t=e;if(typeof t.msg=="string")return t.msg;if(typeof t.message=="string")return t.message;if(typeof t.error_description=="string")return t.error_description;if(typeof t.error=="string")return t.error}return JSON.stringify(e)},ZR=[500,501,502,503,504,520,521,522,523,524,525,526,527,528,529,530];async function ew(e){var t;if(!MR(e))throw new Bp(Ma(e),0);if(ZR.includes(e.status))throw new Bp(Ma(e),e.status);let n;try{n=await e.json()}catch(u){throw new vr(Ma(u),u)}let o;const s=XR(e);if(s&&s.getTime()>=aE["2024-01-01"].timestamp&&typeof n=="object"&&n&&typeof n.code=="string"?o=n.code:typeof n=="object"&&n&&typeof n.error_code=="string"&&(o=n.error_code),o){if(o==="weak_password")throw new Yv(Ma(n),e.status,((t=n.weak_password)===null||t===void 0?void 0:t.reasons)||[]);if(o==="session_not_found")throw new gt}else if(typeof n=="object"&&n&&typeof n.weak_password=="object"&&n.weak_password&&Array.isArray(n.weak_password.reasons)&&n.weak_password.reasons.length&&n.weak_password.reasons.reduce((u,d)=>u&&typeof d=="string",!0))throw new Yv(Ma(n),e.status,n.weak_password.reasons);throw new LR(Ma(n),e.status||500,o)}const eI=(e,t,n,o)=>{const s={method:e,headers:t?.headers||{}};return e==="GET"?s:(s.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},t?.headers),s.body=JSON.stringify(o),Object.assign(Object.assign({},s),n))};async function le(e,t,n,o){var s;const u=Object.assign({},o?.headers);u[Up]||(u[Up]=aE["2024-01-01"].name),o?.jwt&&(u.Authorization=`Bearer ${o.jwt}`);const d=(s=o?.query)!==null&&s!==void 0?s:{};o?.redirectTo&&(d.redirect_to=o.redirectTo);const p=Object.keys(d).length?"?"+new URLSearchParams(d).toString():"",m=await tI(e,t,n+p,{headers:u,noResolveJson:o?.noResolveJson},{},o?.body);return o?.xform?o?.xform(m):{data:Object.assign({},m),error:null}}async function tI(e,t,n,o,s,u){const d=eI(t,o,s,u);let p;try{p=await e(n,Object.assign({},d))}catch(m){throw console.error(m),new Bp(Ma(m),0)}if(p.ok||await ew(p),o?.noResolveJson)return p;try{return await p.json()}catch(m){await ew(m)}}function cr(e){var t;let n=null;aI(e)&&(n=Object.assign({},e),e.expires_at||(n.expires_at=PR(e.expires_in)));const o=(t=e.user)!==null&&t!==void 0?t:typeof e?.id=="string"?e:null;return{data:{session:n,user:o},error:null}}function tw(e){const t=cr(e);return!t.error&&e.weak_password&&typeof e.weak_password=="object"&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message=="string"&&e.weak_password.reasons.reduce((n,o)=>n&&typeof o=="string",!0)&&(t.data.weak_password=e.weak_password),t}function Jn(e){var t;return{data:{user:(t=e.user)!==null&&t!==void 0?t:e},error:null}}function rI(e){return{data:e,error:null}}function nI(e){const{action_link:t,email_otp:n,hashed_token:o,redirect_to:s,verification_type:u}=e,d=au(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),p={action_link:t,email_otp:n,hashed_token:o,redirect_to:s,verification_type:u},m=Object.assign({},d);return{data:{properties:p,user:m},error:null}}function rw(e){return e}function aI(e){return!!e.access_token&&!!e.refresh_token&&!!e.expires_in}const Kh=["global","local","others"];class oI{constructor({url:t="",headers:n={},fetch:o,experimental:s}){this.url=t,this.headers=n,this.fetch=sE(o),this.experimental=s??{},this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)},this.customProviders={listProviders:this._listCustomProviders.bind(this),createProvider:this._createCustomProvider.bind(this),getProvider:this._getCustomProvider.bind(this),updateProvider:this._updateCustomProvider.bind(this),deleteProvider:this._deleteCustomProvider.bind(this)},this.passkey={listPasskeys:this._adminListPasskeys.bind(this),deletePasskey:this._adminDeletePasskey.bind(this)}}
25async signOut(t,n=Kh[0]){if(Kh.indexOf(n)<0)throw new Error(`@supabase/auth-js: Parameter scope must be one of ${Kh.join(", ")}`);try{return await le(this.fetch,"POST",`${this.url}/logout?scope=${n}`,{headers:this.headers,jwt:t,noResolveJson:!0}),{data:null,error:null}}catch(o){if(re(o))return{data:null,error:o};throw o}}async inviteUserByEmail(t,n={}){try{return await le(this.fetch,"POST",`${this.url}/invite`,{body:{email:t,data:n.data},headers:this.headers,redirectTo:n.redirectTo,xform:Jn})}catch(o){if(re(o))return{data:{user:null},error:o};throw o}}async generateLink(t){try{const{options:n}=t,o=au(t,["options"]),s=Object.assign(Object.assign({},o),n);return"newEmail"in o&&(s.new_email=o?.newEmail,delete s.newEmail),await le(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:s,headers:this.headers,xform:nI,redirectTo:n?.redirectTo})}catch(n){if(re(n))return{data:{properties:null,user:null},error:n};throw n}}async createUser(t){try{return await le(this.fetch,"POST",`${this.url}/admin/users`,{body:t,headers:this.headers,xform:Jn})}catch(n){if(re(n))return{data:{user:null},error:n};throw n}}async listUsers(t){var n,o,s,u,d,p,m;try{const g={nextPage:null,lastPage:0,total:0},b=await le(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(o=(n=t?.page)===null||n===void 0?void 0:n.toString())!==null&&o!==void 0?o:"",per_page:(u=(s=t?.perPage)===null||s===void 0?void 0:s.toString())!==null&&u!==void 0?u:""},xform:rw});if(b.error)throw b.error;const y=await b.json(),w=(d=b.headers.get("x-total-count"))!==null&&d!==void 0?d:0,x=(m=(p=b.headers.get("link"))===null||p===void 0?void 0:p.split(","))!==null&&m!==void 0?m:[];return x.length>0&&(x.forEach(k=>{const E=parseInt(k.split(";")[0].split("=")[1].substring(0,1)),D=JSON.parse(k.split(";")[1].split("=")[1]);g[`${D}Page`]=E}),g.total=parseInt(w)),{data:Object.assign(Object.assign({},y),g),error:null}}catch(g){if(re(g))return{data:{users:[]},error:g};throw g}}async getUserById(t){an(t);try{return await le(this.fetch,"GET",`${this.url}/admin/users/${t}`,{headers:this.headers,xform:Jn})}catch(n){if(re(n))return{data:{user:null},error:n};throw n}}async updateUserById(t,n){an(t);try{return await le(this.fetch,"PUT",`${this.url}/admin/users/${t}`,{body:n,headers:this.headers,xform:Jn})}catch(o){if(re(o))return{data:{user:null},error:o};throw o}}async deleteUser(t,n=!1){an(t);try{return await le(this.fetch,"DELETE",`${this.url}/admin/users/${t}`,{headers:this.headers,body:{should_soft_delete:n},xform:Jn})}catch(o){if(re(o))return{data:{user:null},error:o};throw o}}async _listFactors(t){an(t.userId);try{const{data:n,error:o}=await le(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/factors`,{headers:this.headers,xform:s=>({data:{factors:s},error:null})});return{data:n,error:o}}catch(n){if(re(n))return{data:null,error:n};throw n}}async _deleteFactor(t){an(t.userId),an(t.id);try{return{data:await le(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/factors/${t.id}`,{headers:this.headers}),error:null}}catch(n){if(re(n))return{data:null,error:n};throw n}}async _listOAuthClients(t){var n,o,s,u,d,p,m;try{const g={nextPage:null,lastPage:0,total:0},b=await le(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(o=(n=t?.page)===null||n===void 0?void 0:n.toString())!==null&&o!==void 0?o:"",per_page:(u=(s=t?.perPage)===null||s===void 0?void 0:s.toString())!==null&&u!==void 0?u:""},xform:rw});if(b.error)throw b.error;const y=await b.json(),w=(d=b.headers.get("x-total-count"))!==null&&d!==void 0?d:0,x=(m=(p=b.headers.get("link"))===null||p===void 0?void 0:p.split(","))!==null&&m!==void 0?m:[];return x.length>0&&(x.forEach(k=>{const E=parseInt(k.split(";")[0].split("=")[1].substring(0,1)),D=JSON.parse(k.split(";")[1].split("=")[1]);g[`${D}Page`]=E}),g.total=parseInt(w)),{data:Object.assign(Object.assign({},y),g),error:null}}catch(g){if(re(g))return{data:{clients:[]},error:g};throw g}}async _createOAuthClient(t){try{return await le(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:t,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(re(n))return{data:null,error:n};throw n}}async _getOAuthClient(t){try{return await le(this.fetch,"GET",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(re(n))return{data:null,error:n};throw n}}async _updateOAuthClient(t,n){try{return await le(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${t}`,{body:n,headers:this.headers,xform:o=>({data:o,error:null})})}catch(o){if(re(o))return{data:null,error:o};throw o}}async _deleteOAuthClient(t){try{return await le(this.fetch,"DELET
25E",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(n){if(re(n))return{data:null,error:n};throw n}}async _regenerateOAuthClientSecret(t){try{return await le(this.fetch,"POST",`${this.url}/admin/oauth/clients/${t}/regenerate_secret`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(re(n))return{data:null,error:n};throw n}}async _listCustomProviders(t){try{const n={};return t?.type&&(n.type=t.type),await le(this.fetch,"GET",`${this.url}/admin/custom-providers`,{headers:this.headers,query:n,xform:o=>{var s;return{data:{providers:(s=o?.providers)!==null&&s!==void 0?s:[]},error:null}}})}catch(n){if(re(n))return{data:{providers:[]},error:n};throw n}}async _createCustomProvider(t){try{return await le(this.fetch,"POST",`${this.url}/admin/custom-providers`,{body:t,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(re(n))return{data:null,error:n};throw n}}async _getCustomProvider(t){try{return await le(this.fetch,"GET",`${this.url}/admin/custom-providers/${t}`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(re(n))return{data:null,error:n};throw n}}async _updateCustomProvider(t,n){try{return await le(this.fetch,"PUT",`${this.url}/admin/custom-providers/${t}`,{body:n,headers:this.headers,xform:o=>({data:o,error:null})})}catch(o){if(re(o))return{data:null,error:o};throw o}}async _deleteCustomProvider(t){try{return await le(this.fetch,"DELETE",`${this.url}/admin/custom-providers/${t}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(n){if(re(n))return{data:null,error:n};throw n}}async _adminListPasskeys(t){mr(this.experimental),an(t.userId);try{return await le(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/passkeys`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(re(n))return{data:null,error:n};throw n}}async _adminDeletePasskey(t){mr(this.experimental),an(t.userId),an(t.passkeyId);try{return await le(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/passkeys/${t.passkeyId}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(n){if(re(n))return{data:null,error:n};throw n}}}function nw(e={}){return{getItem:t=>e[t]||null,setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]}}}globalThis&&iE()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug");class iI extends Error{constructor(t){super(t),this.isAcquireTimeout=!0}}function sI(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}function lE(e){if(!/^0x[a-fA-F0-9]{40}$/.test(e))throw new Error(`@supabase/auth-js: Address "${e}" is invalid.`);return e.toLowerCase()}function lI(e){return parseInt(e,16)}function cI(e){const t=new TextEncoder().encode(e);return"0x"+Array.from(t,o=>o.toString(16).padStart(2,"0")).join("")}function uI(e){var t;const{chainId:n,domain:o,expirationTime:s,issuedAt:u=new Date,nonce:d,notBefore:p,requestId:m,resources:g,scheme:b,uri:y,version:w}=e;{if(!Number.isInteger(n))throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${n}`);if(!o)throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(d&&d.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${d}`);if(!y)throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(w!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${w}`);if(!((t=e.statement)===null||t===void 0)&&t.includes(`
26`))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${e.statement}`)}const x=lE(e.address),k=b?`${b}://${o}`:o,E=e.statement?`${e.statement}
27`:"",D=`${k} wants you to sign in with your Ethereum account:
28${x}
29
30${E}`;let L=`URI: ${y}
31Version: ${w}
32Chain ID: ${n}${d?`
33Nonce: ${d}`:""}
34Issued At: ${u.toISOString()}`;if(s&&(L+=`
35Expiration Time: ${s.toISOString()}`),p&&(L+=`
36Not Before: ${p.toISOString()}`),m&&(L+=`
37Request ID: ${m}`),g){let O=`
38Resources:`;
38for(const N of g){if(!N||typeof N!="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${N}`);O+=`
39- ${N}`}L+=O}return`${D}
40${L}`}class ct extends Error{constructor({message:t,code:n,cause:o,name:s}){var u;super(t,{cause:o}),this.__isWebAuthnError=!0,this.name=(u=s??(o instanceof Error?o.name:void 0))!==null&&u!==void 0?u:"Unknown Error",this.code=n}toJSON(){return{name:this.name,message:this.message,code:this.code}}}class Uc extends ct{constructor(t,n){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:n,message:t}),this.name="WebAuthnUnknownError",this.originalError=n}}function dI({error:e,options:t}){var n,o,s;const{publicKey:u}=t;if(!u)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new ct({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(((n=u.authenticatorSelection)===null||n===void 0?void 0:n.requireResidentKey)===!0)return new ct({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&((o=u.authenticatorSelection)===null||o===void 0?void 0:o.userVerification)==="required")return new ct({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(((s=u.authenticatorSelection)===null||s===void 0?void 0:s.userVerification)==="required")return new ct({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else{if(e.name==="InvalidStateError")return new ct({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new ct({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return u.pubKeyCredParams.filter(p=>p.type==="public-key").length===0?new ct({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new ct({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){const d=window.location.hostname;if(cE(d)){if(u.rp.id!==d)return new ct({message:`The RP ID "${u.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new ct({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(u.user.id.byteLength<1||u.user.id.byteLength>64)return new ct({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new ct({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new ct({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}function hI({error:e,options:t}){const{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new ct({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else{if(e.name==="NotAllowedError")return new ct({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){const o=window.location.hostname;if(cE(o)){if(n.rpId!==o)return new ct({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new ct({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new ct({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ER
40ROR",cause:e})}return new ct({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}class pI{createNewAbortSignal(){if(this.controller){const n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n)}const t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){const t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0}}}const zp=new pI;function aw(e){if(!e)throw new Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON=="function")return PublicKeyCredential.parseCreationOptionsFromJSON(e);const{challenge:t,user:n,excludeCredentials:o}=e,s=au(e,["challenge","user","excludeCredentials"]),u=Qo(t).buffer,d=Object.assign(Object.assign({},n),{id:Qo(n.id).buffer}),p=Object.assign(Object.assign({},s),{challenge:u,user:d});if(o&&o.length>0){p.excludeCredentials=new Array(o.length);for(let m=0;m<o.length;m++){const g=o[m];p.excludeCredentials[m]=Object.assign(Object.assign({},g),{id:Qo(g.id).buffer,type:g.type||"public-key",transports:g.transports})}}return p}function ow(e){if(!e)throw new Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON=="function")return PublicKeyCredential.parseRequestOptionsFromJSON(e);const{challenge:t,allowCredentials:n}=e,o=au(e,["challenge","allowCredentials"]),s=Qo(t).buffer,u=Object.assign(Object.assign({},o),{challenge:s});if(n&&n.length>0){u.allowCredentials=new Array(n.length);for(let d=0;d<n.length;d++){const p=n[d];u.allowCredentials[d]=Object.assign(Object.assign({},p),{id:Qo(p.id).buffer,type:p.type||"public-key",transports:p.transports})}}return u}function iw(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const n=e;return{id:e.id,rawId:e.id,response:{attestationObject:za(new Uint8Array(e.response.attestationObject)),clientDataJSON:za(new Uint8Array(e.response.clientDataJSON))},type:"public-key",clientExtensionResults:e.getClientExtensionResults(),authenticatorAttachment:(t=n.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function sw(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const n=e,o=e.getClientExtensionResults(),s=e.response;return{id:e.id,rawId:e.id,response:{authenticatorData:za(new Uint8Array(s.authenticatorData)),clientDataJSON:za(new Uint8Array(s.clientDataJSON)),signature:za(new Uint8Array(s.signature)),userHandle:s.userHandle?za(new Uint8Array(s.userHandle)):void 0},type:"public-key",clientExtensionResults:o,authenticatorAttachment:(t=n.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function cE(e){return e==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}function Bc(){var e,t;return!!(kt()&&"PublicKeyCredential"in window&&window.PublicKeyCredential&&"credentials"in navigator&&typeof((e=navigator?.credentials)===null||e===void 0?void 0:e.create)=="function"&&typeof((t=navigator?.credentials)===null||t===void 0?void 0:t.get)=="function")}async function uE(e){try{const t=await navigator.credentials.create(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new Uc("Browser returned unexpected credential type",t)}:{data:null,error:new Uc("Empty credential response",t)}}catch(t){return{data:null,error:dI({error:t,options:e})}}}async function dE(e){try{const t=await navigator.credentials.get(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new Uc("Browser returned unexpected credential type",t)}:{data:null,error:new Uc("Empty credential response",t)}}catch(t){return{data:null,error:hI({error:t,options:e})}}}const fI={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"},mI={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function zc(...e){const t=s=>s!==null&&typeof s=="object"&&!Array.isArray(s),n=s=>s instanceof ArrayBuffer||ArrayBuffer.isView(s),o={};for(const s of e)if(s)for(const u in s){const d=s[u];if(d!==void 0)if(Array.isArray(d))o[u]=d;else if(n(d))o[u]=d;
40else if(t(d)){const p=o[u];t(p)?o[u]=zc(p,d):o[u]=zc(d)}else o[u]=d}return o}function gI(e,t){return zc(fI,e,t||{})}function yI(e,t){return zc(mI,e,t||{})}class bI{constructor(t){this.client=t,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(t){return this.client.mfa.enroll(Object.assign(Object.assign({},t),{factorType:"webauthn"}))}async _challenge({factorId:t,webauthn:n,friendlyName:o,signal:s},u){var d;try{const{data:p,error:m}=await this.client.mfa.challenge({factorId:t,webauthn:n});if(!p)return{data:null,error:m};const g=s??zp.createNewAbortSignal();if(p.webauthn.type==="create"){const{user:b}=p.webauthn.credential_options.publicKey;if(!b.name){const y=o;if(y)b.name=`${b.id}:${y}`;else{const x=(await this.client.getUser()).data.user,k=((d=x?.user_metadata)===null||d===void 0?void 0:d.name)||x?.email||x?.id||"User";b.name=`${b.id}:${k}`}}b.displayName||(b.displayName=b.name)}switch(p.webauthn.type){case"create":{const b=gI(p.webauthn.credential_options.publicKey,u?.create),{data:y,error:w}=await uE({publicKey:b,signal:g});return y?{data:{factorId:t,challengeId:p.id,webauthn:{type:p.webauthn.type,credential_response:y}},error:null}:{data:null,error:w}}case"request":{const b=yI(p.webauthn.credential_options.publicKey,u?.request),{data:y,error:w}=await dE(Object.assign(Object.assign({},p.webauthn.credential_options),{publicKey:b,signal:g}));return y?{data:{factorId:t,challengeId:p.id,webauthn:{type:p.webauthn.type,credential_response:y}},error:null}:{data:null,error:w}}}}catch(p){return re(p)?{data:null,error:p}:{data:null,error:new vr("Unexpected error in challenge",p)}}}async _verify({challengeId:t,factorId:n,webauthn:o}){return this.client.mfa.verify({factorId:n,challengeId:t,webauthn:o})}async _authenticate({factorId:t,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:o=typeof window<"u"?[window.location.origin]:void 0,signal:s}={}},u){if(!n)return{data:null,error:new Es("rpId is required for WebAuthn authentication")};try{if(!Bc())return{data:null,error:new vr("Browser does not support WebAuthn",null)};const{data:d,error:p}=await this.challenge({factorId:t,webauthn:{rpId:n,rpOrigins:o},signal:s},{request:u});if(!d)return{data:null,error:p};const{webauthn:m}=d;return this._verify({factorId:t,challengeId:d.challengeId,webauthn:{type:m.type,rpId:n,rpOrigins:o,credential_response:m.credential_response}})}catch(d){return re(d)?{data:null,error:d}:{data:null,error:new vr("Unexpected error in authenticate",d)}}}async _register({friendlyName:t,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:o=typeof window<"u"?[window.location.origin]:void 0,signal:s}={}},u){if(!n)return{data:null,error:new Es("rpId is required for WebAuthn registration")};try{if(!Bc())return{data:null,error:new vr("Browser does not support WebAuthn",null)};const{data:d,error:p}=await this._enroll({friendlyName:t});if(!d)return await this.client.mfa.listFactors().then(b=>{var y;return(y=b.data)===null||y===void 0?void 0:y.all.find(w=>w.factor_type==="webauthn"&&w.friendly_name===t&&w.status!=="unverified")}).then(b=>b?this.client.mfa.unenroll({factorId:b?.id}):void 0),{data:null,error:p};const{data:m,error:g}=await this._challenge({factorId:d.id,friendlyName:d.friendly_name,webauthn:{rpId:n,rpOrigins:o},signal:s},{create:u});return m?this._verify({factorId:d.id,challengeId:m.challengeId,webauthn:{rpId:n,rpOrigins:o,type:m.webauthn.type,credential_response:m.webauthn.credential_response}}):{data:null,error:g}}catch(d){return re(d)?{data:null,error:d}:{data:null,error:new vr("Unexpected error in register",d)}}}}sI();const vI={url:ER,storageKey:SR,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:kR,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:5e3,skipAutoInitialize:!1,experimental:{}},Mo={};class Ss{get jwks(){var t,n;return(n=(t=Mo[this.storageKey])===null||t===void 0?void 0:t.jwks)!==null&&n!==void 0?n:{keys:[]}}set jwks(t){Mo[this.storageKey]=Object.assign(Object.assign({},Mo[this.storageKey]),{jwks:t})}get jwks_cached_at(){var t,n;return(n=(t=Mo[this.storageKey])===null||t===void 0?void 0:t.cachedAt)!==null&&n!==void 0?n:Number.MIN_SAFE_INTEGER}set jwks_cached_at(t){Mo[this.storageKey]=Object.assign(Object.assign({},Mo[this.storageKey]),{cachedAt:t})}constructor(t){var n,o,s;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.lastRefreshFailure=null,this._sessionRemovalEpoch=0,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lock=null,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;const u=Object.assign(Object.assign({},vI),t);
40if(this.storageKey=u.storageKey,this.instanceID=(n=Ss.nextInstanceID[this.storageKey])!==null&&n!==void 0?n:0,Ss.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!u.debug,typeof u.debug=="function"&&(this.logger=u.debug),this.instanceID>0&&kt()){const d=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(d),this.logDebugMessages&&console.trace(d)}if(this.persistSession=u.persistSession,this.autoRefreshToken=u.autoRefreshToken,this.experimental=(o=u.experimental)!==null&&o!==void 0?o:{},this.admin=new oI({url:u.url,headers:u.headers,fetch:u.fetch,experimental:this.experimental}),this.url=u.url,this.headers=u.headers,this.fetch=sE(u.fetch),this.detectSessionInUrl=u.detectSessionInUrl,this.flowType=u.flowType,this.hasCustomAuthorizationHeader=u.hasCustomAuthorizationHeader,this.throwOnError=u.throwOnError,this.lockAcquireTimeout=u.lockAcquireTimeout,u.lock!=null&&(this.lock=u.lock),this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new bI(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.passkey={startRegistration:this._startPasskeyRegistration.bind(this),verifyRegistration:this._verifyPasskeyRegistration.bind(this),startAuthentication:this._startPasskeyAuthentication.bind(this),verifyAuthentication:this._verifyPasskeyAuthentication.bind(this),list:this._listPasskeys.bind(this),update:this._updatePasskey.bind(this),delete:this._deletePasskey.bind(this)},this.persistSession?(u.storage?this.storage=u.storage:iE()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=nw(this.memoryStorage)),u.userStorage&&(this.userStorage=u.userStorage)):(this.memoryStorage={},this.storage=nw(this.memoryStorage)),kt()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(d){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",d)}(s=this.broadcastChannel)===null||s===void 0||s.addEventListener("message",async d=>{this._debug("received broadcast notification from other tab or client",d),(d.data.event==="TOKEN_REFRESHED"||d.data.event==="SIGNED_IN")&&(this.lastRefreshFailure=null);try{await this._notifyAllSubscribers(d.data.event,d.data.session,!1)}catch(p){this._debug("#broadcastChannel","error",p)}})}u.skipAutoInitialize||this.initialize().catch(d=>{this._debug("#initialize()","error",d)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(t){if(this.throwOnError&&t&&t.error)throw t.error;return t}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${nE}) ${new Date().toISOString()}`}_debug(...t){return this.logDebugMessages&&this.logger(this._logPrefix(),...t),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()):await this._initialize())(),await this.initializePromise)}async _initialize(){var t;try{let n={},o="none";if(kt()&&(n=qR(window.location.href),this._isImplicitGrantCallback(n)?o="implicit":await this._isPKCECallback(n)&&(o="pkce")),kt()&&this.detectSessionInUrl&&o!=="none"){const{data:s,error:u}=await this._getSessionFromURL(n,o);if(u){if(this._debug("#_initialize()","error detecting session from URL",u),_R(u)){const m=(t=u.details)===null||t===void 0?void 0:t.code;if(m==="identity_already_exists"||m==="identity_not_found"||m==="single_identity_not_deletable")return{error:u}}return{error:u}}const{session:d,redirectType:p}=s;return this._debug("#_initialize()","detected session in URL",d,"redirect type",p),await this._saveSession(d),setTimeout(async()=>{p==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",d):await this._notifyAllSubscribers("SIGNED_IN",d)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(n){return re(n)?this._returnResult({error:n}):this._returnResult({error:new vr("Unexpected error during initialization",n)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(t){var n,o,s;try{const u=await le(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(o=(n=t?.options)===null||n===void 0?void 0:n.data)!==null&&o!==void 0?o:{},gotrue_meta_security:{captcha_token:(s=t?.options)===null||s===void 0?void 0:s.captchaToken}},xform:cr}),{data:d,error:p}=u;if(p||!d)return this._returnResult({data:{user:null,session:null},error:p});const m=d.session,g=d.user;return d.session&&(await this._saveSession(d.session),await this._notifyAllSubscribers("SIGNED_IN",m)),this._returnResult({data:{user:g,session:m},error:null})}catch(u){if(re(u))return this._returnResult({data:{user:null,session:null},error:u});throw u}}async signUp(t){var n,o,s;try{let u;if("email"in t){const{email:b,password:y,options:w}=t;let x=null,k=null;this.flowType==="pkce"&&([x,k]=await $a(this.storage,this.storageKey)),u=await le(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:w?.emailRedirectTo,body:{email:b,password:y,data:(n=w?.data)!==null&&n!==void 0?n:{},gotrue_meta_security:{captcha_token:w?.captchaToken},code_challenge:x,code_challenge_method:k},xform:cr})}else if("phone"in t){const{phone:b,password:y,options:w}=t;u=await le(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:b,password:y,data:(o=w?.data)!==null&&o!==void 0?o:{},channel:(s=w?.channel)!==null&&s!==void 0?s:"sms",gotrue_meta_security:{captcha_token:w?.captchaToken}},xform:cr})}else throw new yc("You must provide either an email or phone number and a password");const{data:d,error:p}=u;if(p||!d)return await nt(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:p});const m=d.session,g=d.user;return d.session&&(await this._saveSession(d.session),await this._notifyAllSubscribers("SIGNED_IN",m)),this._returnResult({data:{user:g,session:m},error:null})}catch(u){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(u))return this._returnResult({data:{user:null,session:null},error:u});throw u}}async signInWithPassword(t){try{let n;if("email"in t){const{email:u,password:d,options:p}=t;n=await le(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:u,password:d,gotrue_meta_security:{captcha_token:p?.captchaToken}},xform:tw})}else if("phone"in t){const{phone:u,password:d,options:p}=t;n=await le(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:u,password:d,gotrue_meta_security:{captcha_token:p?.captchaToken}},xform:tw})}else throw new yc("You must provide either an email or phone number and a password");const{data:o,error:s}=n;if(s)return this._returnResult({data:{user:null,session:null},error:s});if(!o||!o.session||!o.user){const u=new qo;return this._returnResult({data:{user:null,session:null},error:u})}return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",o.session)),this._returnResult({data:Object.assign({user:o.user,session:o.session},o.weak_password?{weakPassword:o.weak_password}:null),error:s})}catch(n){if(re(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOAuth(t){var n,o,s,u;return await this._handleProviderSignIn(t.provider,{redirectTo:(n=t.options)===null||n===void 0?void 0:n.redirectTo,scopes:(o=t.options)===null||o===void 0?void 0:o.scopes,queryParams:(s=t.options)===null||s===void 0?void 0:s.queryParams,skipBrowserRedirect:(u=t.options)===null||u===void 0?void 0:u.skipBrowserRedirect})}async exchangeCodeForSession(t){return await this.initializePromise,this.lock!=null?this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(t)):this._exchangeCodeForSession(t)}async signInWithWeb3(t){const{chain:n}=t;switch(n){case"ethereum":return await this.signInWithEthereum(t);case"solana":return await this.signInWithSolana(t);default:throw new Error(`@supabase/auth-js: Unsupported chain "${n}"`)}}async signInWithEthereum(t){var n,o,s,u,d,p,m,g,b,y,w;let x,k;if("message"in t)x=t.message,k=t.signature;else{const{chain:E,wallet:D,statement:L,options:O}=t;let N;if(kt())if(typeof D=="object")N=D;else{const oe=window;if("ethereum"in oe&&typeof oe.ethereum=="object"&&"request"in oe.ethereum&&typeof oe.ethereum.request=="function")N=oe.ethereum;else throw new Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}else{if(typeof D!="object"||!O?.url)throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");N=D}const V=new URL((n=O?.url)!==null&&n!==void 0?n:window.location.href),Z=await N.request({method:"eth_requestAccounts"}).then(oe=>oe).catch(()=>{throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!Z||Z.length===0)throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");const B=lE(Z[0]);let P=(o=O?.signInWithEthereum)===null||o===void 0?void 0:o.chainId;if(!P){const oe=await N.request({method:"eth_chainId"});P=lI(oe)}const J={domain:V.host,address:B,statement:L,uri:V.href,version:"1",chainId:P,nonce:(s=O?.signInWithEthereum)===null||s===void 0?void 0:s.nonce,issuedAt:(d=(u=O?.signInWithEthereum)===null||u===void 0?void 0:u.issuedAt)!==null&&d!==void 0?d:new Date,expirationTime:(p=O?.signInWithEthereum)===null||p===void 0?void 0:p.expirationTime,notBefore:(m=O?.signInWithEthereum)===null||m===void 0?void 0:m.notBefore,requestId:(g=O?.signInWithEthereum)===null||g===void 0?void 0:g.requestId,resources:(b=O?.signInWithEthereum)===null||b===void 0?void 0:b.resources};x=uI(J),k=await N.request({method:"personal_sign",params:[cI(x),B]})}try{const{data:E,error:D}=await le(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:x,signature:k},!((y=t.options)===null||y===void 0)&&y.captchaToken?{gotrue_meta_security:{captcha_token:(w=t.options)===null||w===void 0?void 0:w.captchaToken}}:null),xform:cr});if(D)throw D;
40if(!E||!E.session||!E.user){const L=new qo;return this._returnResult({data:{user:null,session:null},error:L})}return E.session&&(await this._saveSession(E.session),await this._notifyAllSubscribers("SIGNED_IN",E.session)),this._returnResult({data:Object.assign({},E),error:D})}catch(E){if(re(E))return this._returnResult({data:{user:null,session:null},error:E});throw E}}async signInWithSolana(t){var n,o,s,u,d,p,m,g,b,y,w,x;let k,E;if("message"in t)k=t.message,E=t.signature;else{const{chain:D,wallet:L,statement:O,options:N}=t;let V;if(kt())if(typeof L=="object")V=L;else{const B=window;if("solana"in B&&typeof B.solana=="object"&&("signIn"in B.solana&&typeof B.solana.signIn=="function"||"signMessage"in B.solana&&typeof B.solana.signMessage=="function"))V=B.solana;else throw new Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}else{if(typeof L!="object"||!N?.url)throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");V=L}const Z=new URL((n=N?.url)!==null&&n!==void 0?n:window.location.href);if("signIn"in V&&V.signIn){const B=await V.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},N?.signInWithSolana),{version:"1",domain:Z.host,uri:Z.href}),O?{statement:O}:null));let P;if(Array.isArray(B)&&B[0]&&typeof B[0]=="object")P=B[0];else if(B&&typeof B=="object"&&"signedMessage"in B&&"signature"in B)P=B;else throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in P&&"signature"in P&&(typeof P.signedMessage=="string"||P.signedMessage instanceof Uint8Array)&&P.signature instanceof Uint8Array)k=typeof P.signedMessage=="string"?P.signedMessage:new TextDecoder().decode(P.signedMessage),E=P.signature;else throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in V)||typeof V.signMessage!="function"||!("publicKey"in V)||typeof V!="object"||!V.publicKey||!("toBase58"in V.publicKey)||typeof V.publicKey.toBase58!="function")throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");k=[`${Z.host} wants you to sign in with your Solana account:`,V.publicKey.toBase58(),...O?["",O,""]:[""],"Version: 1",`URI: ${Z.href}`,`Issued At: ${(s=(o=N?.signInWithSolana)===null||o===void 0?void 0:o.issuedAt)!==null&&s!==void 0?s:new Date().toISOString()}`,...!((u=N?.signInWithSolana)===null||u===void 0)&&u.notBefore?[`Not Before: ${N.signInWithSolana.notBefore}`]:[],...!((d=N?.signInWithSolana)===null||d===void 0)&&d.expirationTime?[`Expiration Time: ${N.signInWithSolana.expirationTime}`]:[],...!((p=N?.signInWithSolana)===null||p===void 0)&&p.chainId?[`Chain ID: ${N.signInWithSolana.chainId}`]:[],...!((m=N?.signInWithSolana)===null||m===void 0)&&m.nonce?[`Nonce: ${N.signInWithSolana.nonce}`]:[],...!((g=N?.signInWithSolana)===null||g===void 0)&&g.requestId?[`Request ID: ${N.signInWithSolana.requestId}`]:[],...!((y=(b=N?.signInWithSolana)===null||b===void 0?void 0:b.resources)===null||y===void 0)&&y.length?["Resources",...N.signInWithSolana.resources.map(P=>`- ${P}`)]:[]].join(`
41`);const B=await V.signMessage(new TextEncoder().encode(k),"utf8");if(!B||!(B instanceof Uint8Array))throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");E=B}}try{const{data:D,error:L}=await le(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:k,signature:za(E)},!((w=t.options)===null||w===void 0)&&w.captchaToken?{gotrue_meta_security:{captcha_token:(x=t.options)===null||x===void 0?void 0:x.captchaToken}}:null),xform:cr});if(L)throw L;if(!D||!D.session||!D.user){const O=new qo;return this._returnResult({data:{user:null,session:null},error:O})}return D.session&&(await this._saveSession(D.session),await this._notifyAllSubscribers("SIGNED_IN",D.session)),this._returnResult({data:Object.assign({},D),error:L})}catch(D){if(re(D))return this._returnResult({data:{user:null,session:null},error:D});throw D}}async _exchangeCodeForSession(t){const n=await fr(this.storage,`${this.storageKey}-code-verifier`),[o,s]=(n??"").split("/");try{if(!o&&this.flowType==="pkce")throw new CR;const{data:u,error:d}=await le(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:t,code_verifier:o},xform:cr});if(await nt(this.storage,`${this.storageKey}-code-verifier`),d)throw d;if(!u||!u.session||!u.user){const p=new qo;return this._returnResult({data:{user:null,session:null,redirectType:null},error:p})}return u.session&&(await this._saveSession(u.session),await this._notifyAllSubscribers(s==="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",u.session)),this._returnResult({data:Object.assign(Object.assign({},u),{redirectType:s??null}),error:d})}catch(u){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(u))return this._returnResult({data:{user:null,session:null,redirectType:null},error:u});throw u}}async signInWithIdToken(t){try{const{options:n,provider:o,token:s,access_token:u,nonce:d}=t,p=await le(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:o,id_token:s,access_token:u,nonce:d,gotrue_meta_security:{captcha_token:n?.captchaToken}},xform:cr}),{data:m,error:g}=p;if(g)return this._returnResult({data:{user:null,session:null},error:g});if(!m||!m.session||!m.user){const b=new qo;return this._returnResult({data:{user:null,session:null},error:b})}return m.session&&(await this._saveSession(m.session),await this._notifyAllSubscribers("SIGNED_IN",m.session)),this._returnResult({data:m,error:g})}catch(n){if(re(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOtp(t){var n,o,s,u,d;try{if("email"in t){const{email:p,options:m}=t;let g=null,b=null;this.flowType==="pkce"&&([g,b]=await $a(this.storage,this.storageKey));const{error:y}=await le(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:p,data:(n=m?.data)!==null&&n!==void 0?n:{},create_user:(o=m?.shouldCreateUser)!==null&&o!==void 0?o:!0,gotrue_meta_security:{captcha_token:m?.captchaToken},code_challenge:g,code_challenge_method:b},redirectTo:m?.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:y})}if("phone"in t){const{phone:p,options:m}=t,{data:g,error:b}=await le(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:p,data:(s=m?.data)!==null&&s!==void 0?s:{},create_user:(u=m?.shouldCreateUser)!==null&&u!==void 0?u:!0,gotrue_meta_security:{captcha_token:m?.captchaToken},channel:(d=m?.channel)!==null&&d!==void 0?d:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:g?.message_id},error:b})}throw new yc("You must provide either an email or phone number.")}catch(p){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(p))return this._returnResult({data:{user:null,session:null},error:p});throw p}}async verifyOtp(t){var n,o;try{let s,u;"options"in t&&(s=(n=t.options)===null||n===void 0?void 0:n.redirectTo,u=(o=t.o
41ptions)===null||o===void 0?void 0:o.captchaToken);const{data:d,error:p}=await le(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},t),{gotrue_meta_security:{captcha_token:u}}),redirectTo:s,xform:cr});if(p)throw p;if(!d)throw new Error("An error occurred on token verification.");const m=d.session,g=d.user;return m?.access_token&&(await this._saveSession(m),await this._notifyAllSubscribers(t.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",m)),this._returnResult({data:{user:g,session:m},error:null})}catch(s){if(re(s))return this._returnResult({data:{user:null,session:null},error:s});throw s}}async signInWithSSO(t){var n,o,s,u,d;try{let p=null,m=null;this.flowType==="pkce"&&([p,m]=await $a(this.storage,this.storageKey));const g=await le(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in t?{provider_id:t.providerId}:null),"domain"in t?{domain:t.domain}:null),{redirect_to:(o=(n=t.options)===null||n===void 0?void 0:n.redirectTo)!==null&&o!==void 0?o:void 0}),!((s=t?.options)===null||s===void 0)&&s.captchaToken?{gotrue_meta_security:{captcha_token:t.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:p,code_challenge_method:m}),headers:this.headers,xform:rI});return!((u=g.data)===null||u===void 0)&&u.url&&kt()&&!(!((d=t.options)===null||d===void 0)&&d.skipBrowserRedirect)&&window.location.assign(g.data.url),this._returnResult(g)}catch(p){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(p))return this._returnResult({data:null,error:p});throw p}}async reauthenticate(){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate()):await this._reauthenticate()}async _reauthenticate(){try{return await this._useSession(async t=>{const{data:{session:n},error:o}=t;if(o)throw o;if(!n)throw new gt;const{error:s}=await le(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:n.access_token});return this._returnResult({data:{user:null,session:null},error:s})})}catch(t){if(re(t))return this._returnResult({data:{user:null,session:null},error:t});throw t}}async resend(t){try{const n=`${this.url}/resend`;if("email"in t){const{email:o,type:s,options:u}=t;let d=null,p=null;this.flowType==="pkce"&&([d,p]=await $a(this.storage,this.storageKey));const{error:m}=await le(this.fetch,"POST",n,{headers:this.headers,body:{email:o,type:s,gotrue_meta_security:{captcha_token:u?.captchaToken},code_challenge:d,code_challenge_method:p},redirectTo:u?.emailRedirectTo});return m&&await nt(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:m})}else if("phone"in t){const{phone:o,type:s,options:u}=t,{data:d,error:p}=await le(this.fetch,"POST",n,{headers:this.headers,body:{phone:o,type:s,gotrue_meta_security:{captcha_token:u?.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:d?.message_id},error:p})}throw new yc("You must provide either an email or phone number and a type")}catch(n){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async getSession(){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async t=>t)):await this._useSession(async t=>t)}async _acquireLock(t,n){this._debug("#_acquireLock","begin",t);try{if(this.lockAcquired){const o=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),s=(async()=>(await o,await n()))();return this.pendingInLock.push((async()=>{try{await s}catch{}})()),s}return await this.lock(`lock:${this.storageKey}`,t,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const o=n();for(this.pendingInLock.push((async()=>{try{await o}catch{}})()),await o;this.pendingInLock.length;){const s=[...this.pendingInLock];await Promise.all(s),this.pendingInLock.splice(0,s.length)}return await o}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(t){this._debug("#_useSession","begin");try{const n=await this.__loadSession();return await t(n)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lock!=null&&!this.lockAcquired&&this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let t=null;const n=await fr(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",n),n!==null&&(this._isValidSession(n)?t=n:(this._debug("#getSession()","session from storage is not val
41id"),await this._removeSession())),!t)return{data:{session:null},error:null};const o=t.expires_at?t.expires_at*1e3-Date.now()<Xh:!1;if(this._debug("#__loadSession()",`session has${o?"":" not"} expired`,"expires_at",t.expires_at),!o){if(this.userStorage){const d=await fr(this.userStorage,this.storageKey+"-user");d?.user?t.user=d.user:t.user=Yh()}if(this.storage.isServer&&t.user&&!t.user.__isUserNotAvailableProxy){const d={value:this.suppressGetSessionWarning};t.user=JR(t.user,d),d.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:t},error:null}}const{data:s,error:u}=await this._callRefreshToken(t.refresh_token);if(u){if(!!(t.expires_at&&t.expires_at*1e3>Date.now())){const p=await fr(this.storage,this.storageKey);if(p&&p.refresh_token===t.refresh_token)return this._returnResult({data:{session:t},error:null})}return this._returnResult({data:{session:null},error:u})}return this._returnResult({data:{session:s},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(t){if(t)return await this._getUser(t);await this.initializePromise;let n;return this.lock!=null?n=await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser()):n=await this._getUser(),n.data.user&&(this.suppressGetSessionWarning=!0),n}async _getUser(t){try{return t?await le(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:t,xform:Jn}):await this._useSession(async n=>{var o,s,u;const{data:d,error:p}=n;if(p)throw p;return!(!((o=d.session)===null||o===void 0)&&o.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new gt}:await le(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(u=(s=d.session)===null||s===void 0?void 0:s.access_token)!==null&&u!==void 0?u:void 0,xform:Jn})})}catch(n){if(re(n))return gc(n)&&(await this._removeSession(),await nt(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:n});throw n}}async updateUser(t,n={}){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(t,n)):await this._updateUser(t,n)}async _updateUser(t,n={}){try{return await this._useSession(async o=>{const{data:s,error:u}=o;if(u)throw u;if(!s.session)throw new gt;const d=s.session;let p=null,m=null;this.flowType==="pkce"&&t.email!=null&&([p,m]=await $a(this.storage,this.storageKey));const{data:g,error:b}=await le(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:n?.emailRedirectTo,body:Object.assign(Object.assign({},t),{code_challenge:p,code_challenge_method:m}),jwt:d.access_token,xform:Jn});if(b)throw b;return d.user=g.user,await this._saveSession(d),await this._notifyAllSubscribers("USER_UPDATED",d),this._returnResult({data:{user:d.user},error:null})})}catch(o){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(o))return this._returnResult({data:{user:null},error:o});throw o}}async setSession(t){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(t)):await this._setSession(t)}async _setSession(t){try{if(!t.access_token||!t.refresh_token)throw new gt;const n=Date.now()/1e3;let o=n,s=!0,u=null;const{payload:d}=vc(t.access_token);if(d.exp&&(o=d.exp,s=o<=n),s){const{data:p,error:m}=await this._callRefreshToken(t.refresh_token);if(m)return this._returnResult({data:{user:null,session:null},error:m});if(!p)return{data:{user:null,session:null},error:null};u=p}else{const{data:p,error:m}=await this._getUser(t.access_token);if(m)return this._returnResult({data:{user:null,session:null},error:m});u={access_token:t.access_token,refresh_token:t.refresh_token,user:p.user,token_type:"bearer",expires_in:o-n,expires_at:o},await this._saveSession(u),await this._notifyAllSubscribers("SIGNED_IN",u)}return this._returnResult({data:{user:u.user,session:u},error:null})}catch(n){if(re(n))return this._returnResult({data:{session:null,user:null},error:n});throw n}}async refreshSession(t){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(t)):await this._refreshSession(t)}async _refreshSession(t){try{return await this._useSession(async n=>{var o;if(!t){const{data:d,error:p}=n;if(p)throw p;t=(o=d.session)!==null&&o!==void 0?o:void 0}if(!t?.refresh_token)throw new gt;const{data:s,error:u}=await this._callRefreshToken(t.refresh_token);return u?this._returnResult({data:{user:null,session:null},error:u}):s?this._returnResult({data:{user:s.user,session:s},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(n){if(re(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async _getSessionFromURL(t,n){var o;try{if(!kt())throw new bc("No browser detected.");
41if(t.error||t.error_description||t.error_code)throw new bc(t.error_description||"Error in URL with unspecified error_description",{error:t.error||"unspecified_error",code:t.error_code||"unspecified_code"});switch(n){case"implicit":if(this.flowType==="pkce")throw new Gv("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new bc("Not a valid implicit grant flow url.");break;default:}if(n==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!t.code)throw new Gv("No code detected.");const{data:N,error:V}=await this._exchangeCodeForSession(t.code);if(V)throw V;const Z=new URL(window.location.href);return Z.searchParams.delete("code"),window.history.replaceState(window.history.state,"",Z.toString()),{data:{session:N.session,redirectType:(o=N.redirectType)!==null&&o!==void 0?o:null},error:null}}const{provider_token:s,provider_refresh_token:u,access_token:d,refresh_token:p,expires_in:m,expires_at:g,token_type:b}=t;if(!d||!m||!p||!b)throw new bc("No session defined in URL");const y=Math.round(Date.now()/1e3),w=parseInt(m);let x=y+w;g&&(x=parseInt(g));const k=x-y;k*1e3<=ln&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${k}s, should have been closer to ${w}s`);const E=x-w;y-E>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",E,x,y):y-E<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",E,x,y);const{data:D,error:L}=await this._getUser(d);if(L)throw L;const O={provider_token:s,provider_refresh_token:u,access_token:d,expires_in:w,expires_at:x,refresh_token:p,token_type:b,user:D.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:O,redirectType:t.type},error:null})}catch(s){if(re(s))return this._returnResult({data:{session:null,redirectType:null},error:s});throw s}}_isImplicitGrantCallback(t){return typeof this.detectSessionInUrl=="function"?this.detectSessionInUrl(new URL(window.location.href),t):!!(t.access_token||t.error||t.error_description||t.error_code)}async _isPKCECallback(t){const n=await fr(this.storage,`${this.storageKey}-code-verifier`);return!!(t.code&&n)}async signOut(t={scope:"global"}){return await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(t)):await this._signOut(t)}async _signOut({scope:t}={scope:"global"}){return await this._useSession(async n=>{var o;const{data:s,error:u}=n;if(u&&!gc(u))return this._returnResult({error:u});const d=(o=s.session)===null||o===void 0?void 0:o.access_token;if(d){const{error:p}=await this.admin.signOut(d,t);if(p&&!(AR(p)&&(p.status===404||p.status===401||p.status===403)||gc(p)))return this._returnResult({error:p})}return t!=="others"&&(await this._removeSession(),await nt(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange(t){const n=jR(),o={id:n,callback:t,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",n),this.stateChangeEmitters.delete(n)}};return this._debug("#onAuthStateChange()","registered callback with id",n),this.stateChangeEmitters.set(n,o),(async()=>(await this.initializePromise,this.lock!=null?await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(n)}):await this._emitInitialSession(n)))(),{data:{subscription:o}}}async _emitInitialSession(t){return await this._useSession(async n=>{var o,s;try{const{data:{session:u},error:d}=n;if(d)throw d;await((o=this.stateChangeEmitters.get(t))===null||o===void 0?void 0:o.callback("INITIAL_SESSION",u)),this._debug("INITIAL_SESSION","callback id",t,"session",u)}catch(u){await((s=this.stateChangeEmitters.get(t))===null||s===void 0?void 0:s.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",t,"error",u),gc(u)?console.warn(u):console.error(u)}})}async resetPasswordForEmail(t,n={}){let o=null,s=null;this.flowType==="pkce"&&([o,s]=await $a(this.storage,this.storageKey,!0));try{return await le(this.fetch,"POST",`${this.url}
41/recover`,{body:{email:t,code_challenge:o,code_challenge_method:s,gotrue_meta_security:{captcha_token:n.captchaToken}},headers:this.headers,redirectTo:n.redirectTo})}catch(u){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(u))return this._returnResult({data:null,error:u});throw u}}async getUserIdentities(){var t;try{const{data:n,error:o}=await this.getUser();if(o)throw o;return this._returnResult({data:{identities:(t=n.user.identities)!==null&&t!==void 0?t:[]},error:null})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async linkIdentity(t){return"token"in t?this.linkIdentityIdToken(t):this.linkIdentityOAuth(t)}async linkIdentityOAuth(t){var n;try{const{data:o,error:s}=await this._useSession(async u=>{var d,p,m,g,b;const{data:y,error:w}=u;if(w)throw w;const x=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,t.provider,{redirectTo:(d=t.options)===null||d===void 0?void 0:d.redirectTo,scopes:(p=t.options)===null||p===void 0?void 0:p.scopes,queryParams:(m=t.options)===null||m===void 0?void 0:m.queryParams,skipBrowserRedirect:!0});return await le(this.fetch,"GET",x,{headers:this.headers,jwt:(b=(g=y.session)===null||g===void 0?void 0:g.access_token)!==null&&b!==void 0?b:void 0})});if(s)throw s;return kt()&&!(!((n=t.options)===null||n===void 0)&&n.skipBrowserRedirect)&&window.location.assign(o?.url),this._returnResult({data:{provider:t.provider,url:o?.url},error:null})}catch(o){if(re(o))return this._returnResult({data:{provider:t.provider,url:null},error:o});throw o}}async linkIdentityIdToken(t){return await this._useSession(async n=>{var o;try{const{error:s,data:{session:u}}=n;if(s)throw s;const{options:d,provider:p,token:m,access_token:g,nonce:b}=t,y=await le(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(o=u?.access_token)!==null&&o!==void 0?o:void 0,body:{provider:p,id_token:m,access_token:g,nonce:b,link_identity:!0,gotrue_meta_security:{captcha_token:d?.captchaToken}},xform:cr}),{data:w,error:x}=y;return x?this._returnResult({data:{user:null,session:null},error:x}):!w||!w.session||!w.user?this._returnResult({data:{user:null,session:null},error:new qo}):(w.session&&(await this._saveSession(w.session),await this._notifyAllSubscribers("USER_UPDATED",w.session)),this._returnResult({data:w,error:x}))}catch(s){if(await nt(this.storage,`${this.storageKey}-code-verifier`),re(s))return this._returnResult({data:{user:null,session:null},error:s});throw s}})}async unlinkIdentity(t){try{return await this._useSession(async n=>{var o,s;const{data:u,error:d}=n;if(d)throw d;return await le(this.fetch,"DELETE",`${this.url}/user/identities/${t.identity_id}`,{headers:this.headers,jwt:(s=(o=u.session)===null||o===void 0?void 0:o.access_token)!==null&&s!==void 0?s:void 0})})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async _refreshAccessToken(t){const n="#_refreshAccessToken()";this._debug(n,"begin");try{const o=Date.now();return await UR(async s=>(s>
410&&await FR(200*Math.pow(2,s-1)),this._debug(n,"refreshing attempt",s),await le(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:t},headers:this.headers,xform:cr})),(s,u)=>{const d=200*Math.pow(2,s);return u&&Wv(u)&&Date.now()+d-o<ln})}catch(o){if(this._debug(n,"error",o),re(o))return this._returnResult({data:{session:null,user:null},error:o});throw o}finally{this._debug(n,"end")}}_isValidSession(t){return typeof t=="object"&&t!==null&&"access_token"in t&&"refresh_token"in t&&"expires_at"in t}async _handleProviderSignIn(t,n){const o=await this._getUrlForProvider(`${this.url}/authorize`,t,{redirectTo:n.redirectTo,scopes:n.scopes,queryParams:n.queryParams});return this._debug("#_handleProviderSignIn()","provider",t,"options",n,"url",o),kt()&&!n.skipBrowserRedirect&&window.location.assign(o),{data:{provider:t,url:o},error:null}}async _recoverAndRefresh(){var t,n;const o="#_recoverAndRefresh()";this._debug(o,"begin");try{const s=await fr(this.storage,this.storageKey);if(s&&this.userStorage){let d=await fr(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!d&&(d={user:s.user},await zo(this.userStorage,this.storageKey+"-user",d)),s.user=(t=d?.user)!==null&&t!==void 0?t:Yh()}else if(s&&!s.user&&!s.user){const d=await fr(this.storage,this.storageKey+"-user");d&&d?.user?(s.user=d.user,await nt(this.storage,this.storageKey+"-user"),await zo(this.storage,this.storageKey,s)):s.user=Yh()}if(this._debug(o,"session from storage",s),!this._isValidSession(s)){this._debug(o,"session is not valid"),s!==null&&await this._removeSession();return}const u=((n=s.expires_at)!==null&&n!==void 0?n:1/0)*1e3-Date.now()<Xh;if(this._debug(o,`session has${u?"":" not"} expired with margin of ${Xh}s`),u){if(this.autoRefreshToken&&s.refresh_token){const{error:d}=await this._callRefreshToken(s.refresh_token);d&&(RR(d)?this._debug(o,"refresh discarded by commit guard",d):this._debug(o,"refresh failed",d))}}else if(s.user&&s.user.__isUserNotAvailableProxy===!0)try{const{data:d,error:p}=await this._getUser(s.access_token);!p&&d?.user?(s.user=d.user,await this._saveSession(s),await this._notifyAllSubscribers("SIGNED_IN",s)):this._debug(o,"could not get user data, skipping SIGNED_IN notification")}catch(d){console.error("Error getting user data:",d),this._debug(o,"error getting user data, skipping SIGNED_IN notification",d)}else await this._notifyAllSubscribers("SIGNED_IN",s)}catch(s){this._debug(o,"error",s),console.error(s);return}finally{this._debug(o,"end")}}async _callRefreshToken(t){var n,o;if(!t)throw new gt;if(this.refreshingDeferred)return this.refreshingDeferred.promise;if(this.lastRefreshFailure&&this.lastRefreshFailure.refreshToken===t&&Date.now()<this.lastRefreshFailure.expiresAt)return this._debug("#_callRefreshToken()","returning cached failure (cooldown active)"),this.lastRefreshFailure.result;const s="#_callRefreshToken()";this._debug(s,"begin");try{this.refreshingDeferred=new su;const u=await fr(this.storage,this.storageKey),{data:d,error:p}=await this._refreshAccessToken(t);if(p)throw p;if(!d.session)throw new gt;const m=await fr(this.storage,this.storageKey);if(u!==null&&(m===null||m.refresh_token!==u.refresh_token)){this._debug(s,"commit guard: storage changed since refresh started, discarding rotated tokens",{startedWith:"present",nowHolds:m?"replaced":"cleared"});const w={data:null,error:new Xv};return this.refreshingDeferred.resolve(w),w}const b=this._sessionRemovalEpoch;if(await this._saveSession(d.session),this._sessionRemovalEpoch!==b){this._debug(s,"commit guard (post-save): _removeSession ran during _saveSession, undoing write"),await nt(this.storage,this.storageKey),this.userStorage&&await nt(this.userStorage,this.storageKey+"-user");const w={data:null,error:new Xv};return this.refreshingDeferred.resolve(w),w}await this._notifyAllSubscribers("TOKEN_REFRESHED",d.session);const y={data:d.session,error:null};return this.lastRefreshFailure=null,this.refreshingDeferred.resolve(y),y}catch(u){if(this._debug(s,"error",u),re(u)){const d={data:null,error:u};if(!Wv(u)){const p=await fr(this.storage,this.storageKey);!!(p?.expires_at&&p.expires_at*1e3>Date.now())?this._debug(s,"proactive refresh failed, access token still valid — preserving session"):await this._removeSession()}return this.lastRefreshFailure={refreshToken:t,result:d,expiresAt:Date.now()+xR},(n=this.refreshingDeferred)===null||n===void 0||n.resolve(d),d}throw(o=this.refreshingDeferred)===null||o===void 0||o.reject(u),u}finally{this.refreshingDeferred=null,this._debug(s,"end")}}async _notifyAllSubscribers(t,n,o=!0){const s=`#_notifyAllSubscribers(${t})`;this._debug(s,"begin",n,`broadcast = ${o}`);try{this.broadcastChannel&&o&&this.broadcastChannel.postMessage({event:t,session:n});const u=[],d=Array.from(this.stateChangeEmitters.values()).map(async p=>{try{await p.callback(t,n)}catch(m){u.push(m)}});if(await Promise.all(d),u.length>0){for(let p=0;p<u.length;p+=1)console.error(u[p]);throw u[0]}}finally{this._debug(s,"end")}}async _saveSession(t){this._debug("#_saveSession()",t),this.suppressGetSessionWarning=!0,await nt(this.storage,`${this.storageKey}-code-verifier`);const n=Object.assign({},t),o=n.user&&n.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!o&&n.user&&await zo(this.userStorage,this.storageKey+"-user",{user:n.user});const s=Object.assign({},n);delete s.user;const u=Zv(s);await zo(this.storage,this.storageKey,u)}else{const s=Zv(n);await zo(this.storage,this.storageKey,s)}}async _removeSession(){this._sessionRemovalEpoch+=1,this._debug("#_removeSession()"),this.lastRefreshFailure=null,this.suppressGetSessionWarning=!1,await nt(this.storage,this.storageKey),await nt(this.storage,this.storageKey+"-code-verifier"),await nt(this.storage,this.storageKey+"-user"),this.userStorage&&await nt(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const t=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{t&&kt()&&window?.removeEventListener&&window.removeEventListener("visibilitychange",t)}
41catch(n){console.error("removing visibilitychange callback failed",n)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const t=setInterval(()=>this._autoRefreshTokenTick(),ln);this.autoRefreshTicker=t,t&&typeof t=="object"&&typeof t.unref=="function"?t.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(t);const n=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=n,n&&typeof n=="object"&&typeof n.unref=="function"?n.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(n)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const t=this.autoRefreshTicker;this.autoRefreshTicker=null,t&&clearInterval(t);const n=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,n&&clearTimeout(n)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async dispose(){var t;this._removeVisibilityChangedCallback(),await this._stopAutoRefresh(),(t=this.broadcastChannel)===null||t===void 0||t.close(),this.broadcastChannel=null,this.stateChangeEmitters.clear()}async _autoRefreshTokenTick(){if(this._debug("#_autoRefreshTokenTick()","begin"),this.lock!=null){try{await this._acquireLock(0,async()=>{try{const t=Date.now();try{return await this._useSession(async n=>{const{data:{session:o}}=n;if(!o||!o.refresh_token||!o.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const s=Math.floor((o.expires_at*1e3-t)/ln);this._debug("#_autoRefreshTokenTick()",`access token expires in ${s} ticks, a tick lasts ${ln}ms, refresh threshold is ${ns} ticks`),s<=ns&&await this._callRefreshToken(o.refresh_token)})}catch(n){console.error("Auto refresh tick failed with error. This is likely a transient error.",n)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(t){if(t instanceof iI)this._debug("auto refresh token tick lock not available");else throw t}return}if(this.refreshingDeferred!==null){this._debug("#_autoRefreshTokenTick()","refresh already in flight, skipping");return}try{const t=Date.now();try{await this._useSession(async n=>{const{data:{session:o}}=n;if(!o||!o.refresh_token||!o.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const s=Math.floor((o.expires_at*1e3-t)/ln);this._debug("#_autoRefreshTokenTick()",`access token expires in ${s} ticks, a tick lasts ${ln}ms, refresh threshold is ${ns} ticks`),s<=ns&&await this._callRefreshToken(o.refresh_token)})}catch(n){console.error("Auto refresh tick failed with error. This is likely a transient error.",n)}}finally{this._debug("#_autoRefreshTokenTick()","end")}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!kt()||!window?.addEventListener)return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(t){this._debug("#visibilityChangedCallback","error",t)}},window?.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(t){console.error("_handleVisibilityChange",t)}}async _onVisibilityChanged(t){const n=`#_onVisibilityChanged(${t})`;if(this._debug(n,"visibilityState",document.visibilityState),document.visibilityState==="visible"){if(this.autoRefreshToken&&this._startAutoRefresh(),!t)if(await this.initializePromise,this.lock!=null)await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!=="visible"){this._debug(n,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()});else{if(document.visibilityState!=="visible"){this._debug(n,"visibilityState is no longer visible, skipping recovery");return}await this._recoverAndRefresh()}}else document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(t,n,o){const s=[`provider=${encodeURIComponent(n)}`];if(o?.redirectTo&&s.push(`redirect_to=${encodeURIComponent(o.redirectTo)}`),o?.scopes&&s.push(`scopes=${encodeURIComponent(o.scopes)}`),this.flowType==="pkce"){const[u,d]=await $a(this.storage,this.storageKey),p=new URLSearchParams({code_challenge:`${encodeURIComponent(u)}`,code_challenge_method:`${encodeURIComponent(d)}`});s.push(p.toString())}if(o?.queryParams){const u=new URLSearchParams(o.queryParams);s.push(u.toString())}return o?.skipBrowserRedirect&&s.push(`skip_http_redirect=${o.skipBrowserRedirect}`),`${t}?${s.join("&")}`}async _unenroll(t){try{return await this._useSession(async n=>{var o;const{data:s,error:u}=n;return u?this._returnResult({data:null,error:u}
41):await le(this.fetch,"DELETE",`${this.url}/factors/${t.factorId}`,{headers:this.headers,jwt:(o=s?.session)===null||o===void 0?void 0:o.access_token})})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async _enroll(t){try{return await this._useSession(async n=>{var o,s;const{data:u,error:d}=n;if(d)return this._returnResult({data:null,error:d});const p=Object.assign({friendly_name:t.friendlyName,factor_type:t.factorType},t.factorType==="phone"?{phone:t.phone}:t.factorType==="totp"?{issuer:t.issuer}:{}),{data:m,error:g}=await le(this.fetch,"POST",`${this.url}/factors`,{body:p,headers:this.headers,jwt:(o=u?.session)===null||o===void 0?void 0:o.access_token});return g?this._returnResult({data:null,error:g}):(t.factorType==="totp"&&m.type==="totp"&&(!((s=m?.totp)===null||s===void 0)&&s.qr_code)&&(m.totp.qr_code=`data:image/svg+xml;utf-8,${m.totp.qr_code}`),this._returnResult({data:m,error:null}))})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async _verify(t){const n=async()=>{try{return await this._useSession(async o=>{var s;const{data:u,error:d}=o;if(d)return this._returnResult({data:null,error:d});const p=Object.assign({challenge_id:t.challengeId},"webauthn"in t?{webauthn:Object.assign(Object.assign({},t.webauthn),{credential_response:t.webauthn.type==="create"?iw(t.webauthn.credential_response):sw(t.webauthn.credential_response)})}:{code:t.code}),{data:m,error:g}=await le(this.fetch,"POST",`${this.url}/factors/${t.factorId}/verify`,{body:p,headers:this.headers,jwt:(s=u?.session)===null||s===void 0?void 0:s.access_token});return g?this._returnResult({data:null,error:g}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+m.expires_in},m)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",m),this._returnResult({data:m,error:g}))})}catch(o){if(re(o))return this._returnResult({data:null,error:o});throw o}};return this.lock!=null?this._acquireLock(this.lockAcquireTimeout,n):n()}async _challenge(t){const n=async()=>{try{return await this._useSession(async o=>{var s;const{data:u,error:d}=o;if(d)return this._returnResult({data:null,error:d});const p=await le(this.fetch,"POST",`${this.url}/factors/${t.factorId}/challenge`,{body:t,headers:this.headers,jwt:(s=u?.session)===null||s===void 0?void 0:s.access_token});if(p.error)return p;const{data:m}=p;if(m.type!=="webauthn")return{data:m,error:null};switch(m.webauthn.type){case"create":return{data:Object.assign(Object.assign({},m),{webauthn:Object.assign(Object.assign({},m.webauthn),{credential_options:Object.assign(Object.assign({},m.webauthn.credential_options),{publicKey:aw(m.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},m),{webauthn:Object.assign(Object.assign({},m.webauthn),{credential_options:Object.assign(Object.assign({},m.webauthn.credential_options),{publicKey:ow(m.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(o){if(re(o))return this._returnResult({data:null,error:o});throw o}};return this.lock!=null?this._acquireLock(this.lockAcquireTimeout,n):n()}async _challengeAndVerify(t){const{data:n,error:o}=await this._challenge({factorId:t.factorId});return o?this._returnResult({data:null,error:o}):await this._verify({factorId:t.factorId,challengeId:n.id,code:t.code})}async _listFactors(){var t;const{data:{user:n},error:o}=await this.getUser();if(o)return{data:null,error:o};const s={all:[],phone:[],totp:[],webauthn:[]};for(const u of(t=n?.factors)!==null&&t!==void 0?t:[])s.all.push(u),u.status==="verified"&&s[u.factor_type].push(u);return{data:s,error:null}}async _getAuthenticatorAssuranceLevel(t){var n,o,s,u;if(t)try{const{payload:x}=vc(t);let k=null;x.aal&&(k=x.aal);let E=k;const{data:{user:D},error:L}=await this.getUser(t);if(L)return this._returnResult({data:null,error:L});((o=(n=D?.factors)===null||n===void 0?void 0:n.filter(V=>V.status==="verified"))!==null&&o!==void 0?o:[]).length>0&&(E="aal2");const N=x.amr||[];return{data:{currentLevel:k,nextLevel:E,currentAuthenticationMethods:N},error:null}}
41catch(x){if(re(x))return this._returnResult({data:null,error:x});throw x}const{data:{session:d},error:p}=await this.getSession();if(p)return this._returnResult({data:null,error:p});if(!d)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:m}=vc(d.access_token);let g=null;m.aal&&(g=m.aal);let b=g;((u=(s=d.user.factors)===null||s===void 0?void 0:s.filter(x=>x.status==="verified"))!==null&&u!==void 0?u:[]).length>0&&(b="aal2");const w=m.amr||[];return{data:{currentLevel:g,nextLevel:b,currentAuthenticationMethods:w},error:null}}async _getAuthorizationDetails(t){try{return await this._useSession(async n=>{const{data:{session:o},error:s}=n;return s?this._returnResult({data:null,error:s}):o?await le(this.fetch,"GET",`${this.url}/oauth/authorizations/${t}`,{headers:this.headers,jwt:o.access_token,xform:u=>({data:u,error:null})}):this._returnResult({data:null,error:new gt})})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async _approveAuthorization(t,n){try{return await this._useSession(async o=>{const{data:{session:s},error:u}=o;if(u)return this._returnResult({data:null,error:u});if(!s)return this._returnResult({data:null,error:new gt});const d=await le(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:s.access_token,body:{action:"approve"},xform:p=>({data:p,error:null})});return d.data&&d.data.redirect_url&&kt()&&!n?.skipBrowserRedirect&&window.location.assign(d.data.redirect_url),d})}catch(o){if(re(o))return this._returnResult({data:null,error:o});throw o}}async _denyAuthorization(t,n){try{return await this._useSession(async o=>{const{data:{session:s},error:u}=o;if(u)return this._returnResult({data:null,error:u});if(!s)return this._returnResult({data:null,error:new gt});const d=await le(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:s.access_token,body:{action:"deny"},xform:p=>({data:p,error:null})});return d.data&&d.data.redirect_url&&kt()&&!n?.skipBrowserRedirect&&window.location.assign(d.data.redirect_url),d})}catch(o){if(re(o))return this._returnResult({data:null,error:o});throw o}}async _listOAuthGrants(){try{return await this._useSession(async t=>{const{data:{session:n},error:o}=t;return o?this._returnResult({data:null,error:o}):n?await le(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:n.access_token,xform:s=>({data:s,error:null})}):this._returnResult({data:null,error:new gt})})}catch(t){if(re(t))return this._returnResult({data:null,error:t});throw t}}async _revokeOAuthGrant(t){try{return await this._useSession(async n=>{const{data:{session:o},error:s}=n;return s?this._returnResult({data:null,error:s}):o?(await le(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:o.access_token,query:{client_id:t.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new gt})})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async fetchJwk(t,n={keys:[]}){let o=n.keys.find(p=>p.kid===t);if(o)return o;const s=Date.now();if(o=this.jwks.keys.find(p=>p.kid===t),o&&this.jwks_cached_at+TR>s)return o;const{data:u,error:d}=await le(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(d)throw d;return!u.keys||u.keys.length===0||(this.jwks=u,this.jwks_cached_at=s,o=u.keys.find(p=>p.kid===t),!o)?null:o}async getClaims(t,n={}){try{let o=t;if(!o){const{data:x,error:k}
41=await this.getSession();if(k||!x.session)return this._returnResult({data:null,error:k});o=x.session.access_token}const{header:s,payload:u,signature:d,raw:{header:p,payload:m}}=vc(o);if(!n?.allowExpired)try{YR(u.exp)}catch(x){throw new Mc(x instanceof Error?x.message:"JWT validation failed")}const g=!s.alg||s.alg.startsWith("HS")||!s.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(s.kid,n?.keys?{keys:n.keys}:n?.jwks);if(!g){const{error:x}=await this.getUser(o);if(x)throw x;return{data:{claims:u,header:s,signature:d},error:null}}const b=KR(s.alg),y=await crypto.subtle.importKey("jwk",g,b,!0,["verify"]);if(!await crypto.subtle.verify(b,y,d,HR(`${p}.${m}`)))throw new Mc("Invalid JWT signature");return{data:{claims:u,header:s,signature:d},error:null}}catch(o){if(re(o))return this._returnResult({data:null,error:o});throw o}}async signInWithPasskey(t){var n,o,s;mr(this.experimental);try{if(!Bc())return this._returnResult({data:null,error:new vr("Browser does not support WebAuthn",null)});const{data:u,error:d}=await this._startPasskeyAuthentication({options:{captchaToken:(n=t?.options)===null||n===void 0?void 0:n.captchaToken}});if(d||!u)return this._returnResult({data:null,error:d});const p=ow(u.options),m=(s=(o=t?.options)===null||o===void 0?void 0:o.signal)!==null&&s!==void 0?s:zp.createNewAbortSignal(),{data:g,error:b}=await dE({publicKey:p,signal:m});if(b||!g)return this._returnResult({data:null,error:b??new vr("WebAuthn ceremony failed",null)});const y=sw(g);return this._verifyPasskeyAuthentication({challengeId:u.challenge_id,credential:y})}catch(u){if(re(u))return this._returnResult({data:null,error:u});throw u}}async registerPasskey(t){var n,o;mr(this.experimental);try{if(!Bc())return this._returnResult({data:null,error:new vr("Browser does not support WebAuthn",null)});const{data:s,error:u}=await this._startPasskeyRegistration();if(u||!s)return this._returnResult({data:null,error:u});const d=aw(s.options),p=(o=(n=t?.options)===null||n===void 0?void 0:n.signal)!==null&&o!==void 0?o:zp.createNewAbortSignal(),{data:m,error:g}=await uE({publicKey:d,signal:p});if(g||!m)return this._returnResult({data:null,error:g??new vr("WebAuthn ceremony failed",null)});const b=iw(m);return this._verifyPasskeyRegistration({challengeId:s.challenge_id,credential:b})}catch(s){if(re(s))return this._returnResult({data:null,error:s});throw s}}async _startPasskeyRegistration(){mr(this.experimental);try{return await this._useSession(async t=>{const{data:{session:n},error:o}=t;if(o)return this._returnResult({data:null,error:o});if(!n)return this._returnResult({data:null,error:new gt});const{data:s,error:u}=await le(this.fetch,"POST",`${this.url}/passkeys/registration/options`,{headers:this.headers,jwt:n.access_token,body:{}});return u?this._returnResult({data:null,error:u}):this._returnResult({data:s,error:null})})}catch(t){if(re(t))return this._returnResult({data:null,error:t});throw t}}async _verifyPasskeyRegistration(t){mr(this.experimental);try{return await this._useSession(async n=>{const{data:{session:o},error:s}=n;if(s)return this._returnResult({data:null,error:s});if(!o)return this._returnResult({data:null,error:new gt});const{data:u,error:d}=await le(this.fetch,"POST",`${this.url}/passkeys/registration/verify`,{headers:this.headers,jwt:o.access_token,body:{challenge_id:t.challengeId,credential:t.credential}});return d?this._returnResult({data:null,error:d}):this._returnResult({data:u,error:null})})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async _startPasskeyAuthentication(t){var n;mr(this.experimental);try{const{data:o,error:s}=await le(this.fetch,"POST",`${this.url}/passkeys/authentication/options`,{headers:this.headers,body:{gotrue_meta_security:{captcha_token:(n=t?.options)===null||n===void 0?void 0:n.captchaToken}}});return s?this._returnResult({data:null,error:s}):this._returnResult({data:o,error:null})}catch(o){if(re(o))return this._returnResult({data:null,error:o});throw o}}async _verifyPasskeyAuthentication(t){mr(this.experimental);try{const{data:n,error:o}=await le(this.fetch,"POST",`${this.url}/passkeys/authentication/verify`,{headers:this.headers,body:{challenge_id:t.challengeId,credential:t.credential},xform:cr});return o?this._returnResult({data:null,error:o}):(n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers("SIGNED_IN",n.session)),this._returnResult({data:n,error:null}))}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async _listPasskeys(){mr(this.experimental);try{return await this._useSession(async t=>{const{data:{session:n},error:o}=t;if(o)return this._returnResult({data:null,error:o});if(!n)return this._returnResult({data:null,error:new gt});const{data:s,error:u}=await le(this.fetch,"GET",`${this.url}/passkeys`,{headers:this.headers,jwt:n.access_token,xform:d=>({data:d,error:null})});return u?this._returnResult({data:null,error:u}):this._returnResult({data:s,error:null})})}catch(t){if(re(t))return this._returnResult({data:null,error:t});throw t}}async _updatePasskey(t){mr(this.experimental);try{return await this._useSession(async n=>{const{data:{session:o},error:s}=n;if(s)return this._returnResult({data:null,error:s});if(!o)return this._returnResult({data:null,error:new gt});const{data:u,error:d}=await le(this.fetch,"PATCH",`${this.url}/passkeys/${t.passkeyId}`,{headers:this.headers,jwt:o.access_token,body:{friendly_name:t.friendlyName}});return d?this._returnResult({data:null,error:d}):this._returnResult({data:u,error:null})})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}async _deletePasskey(t){mr(this.experimental);try{return await this._useSession(async n=>{const{data:{session:o},error:s}=n;if(s)return this._returnResult({data:null,error:s});if(!o)return this._returnResult({data:null,error:new gt});const{error:u}
41=await le(this.fetch,"DELETE",`${this.url}/passkeys/${t.passkeyId}`,{headers:this.headers,jwt:o.access_token,noResolveJson:!0});return u?this._returnResult({data:null,error:u}):this._returnResult({data:null,error:null})})}catch(n){if(re(n))return this._returnResult({data:null,error:n});throw n}}}Ss.nextInstanceID={};const wI=Ss,xI="2.110.0";let as="",Vc;if(typeof Deno<"u"){var Qh;as="deno",Vc=(Qh=Deno.version)===null||Qh===void 0?void 0:Qh.deno}else if(typeof document<"u")as="web";else if(typeof navigator<"u"&&navigator.product==="ReactNative")as="react-native";else{var Jh;as="node",Vc=typeof process<"u"?(Jh=process.version)===null||Jh===void 0?void 0:Jh.replace(/^v/,""):void 0}const hE=[`runtime=${as}`];Vc&&hE.push(`runtime-version=${Vc}`);const EI={"X-Client-Info":`supabase-js/${xI}; ${hE.join("; ")}`},SI={headers:EI},kI={schema:"public"},DI={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},TI={},LI={enabled:!1,respectSamplingDecision:!0};function AI(e,t,n,o){function s(u){return u instanceof n?u:new n(function(d){d(u)})}return new(n||(n=Promise))(function(u,d){function p(b){try{g(o.next(b))}catch(y){d(y)}}function m(b){try{g(o.throw(b))}catch(y){d(y)}}function g(b){b.done?u(b.value):s(b.value).then(p,m)}g((o=o.apply(e,[])).next())})}let Zh=null;const _I="@opentelemetry/api";function CI(){return Zh===null&&(Zh=import(_I).catch(()=>null)),Zh}function RI(){return AI(this,void 0,void 0,function*(){try{const e=yield CI();if(!e||!e.propagation||!e.context)return null;const t={};e.propagation.inject(e.context.active(),t);const n=t.traceparent;return n?{traceparent:n,tracestate:t.tracestate,baggage:t.baggage}:null}catch{return null}})}function II(e){if(!e||typeof e!="string")return null;const t=e.split("-");if(t.length!==4)return null;const[n,o,s,u]=t;if(n.length!==2||o.length!==32||s.length!==16||u.length!==2)return null;const d=/^[0-9a-f]+$/i;return!d.test(n)||!d.test(o)||!d.test(s)||!d.test(u)||o==="00000000000000000000000000000000"||s==="0000000000000000"?null:{version:n,traceId:o,parentId:s,traceFlags:u,isSampled:(parseInt(u,16)&1)===1}}function OI(e,t){if(!e||!t||t.length===0)return!1;let n;if(e instanceof URL)n=e;else try{n=new URL(e)}catch{return!1}for(const o of t)try{if(typeof o=="string"){if($I(n.hostname,o))return!0}else if(o instanceof RegExp){if(o.test(n.hostname))return!0}else if(typeof o=="function"&&o(n))return!0}catch{continue}return!1}function $I(e,t){if(t===e)return!0;if(t.startsWith("*.")){const n=t.slice(2);if(e.endsWith(n)&&(e===n||e.endsWith("."+n)))return!0}return!1}function NI(e){const t=[];try{const n=new URL(e);t.push(n.hostname)}catch{}return t.push("*.supabase.co","*.supabase.in"),t.push("localhost","127.0.0.1","[::1]"),t}function ks(e){"@babel/helpers - typeof";return ks=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ks(e)}function HI(e,t){if(ks(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t);if(ks(o)!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function PI(e){var t=HI(e,"string");return ks(t)=="symbol"?t:t+""}function jI(e,t,n){return(t=PI(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,o)}return n}function et(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?lw(Object(n),!0).forEach(function(o){jI(e,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lw(Object(n)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})}return e}const qI=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),MI=()=>Headers,FI=(e,t,n,o,s)=>{const u=qI(o),d=MI(),p=s?.enabled===!0,m=s?.respectSamplingDecision!==!1,g=p?NI(t):null;return async(b,y)=>{var w;const x=(w=await n())!==null&&w!==void 0?w:e;let k=new d(y?.headers);if(k.has("apikey")||k.set("apikey",e),k.has("Authorization")||k.set("Authorization",`Bearer ${x}`),g){const E=await UI(b,g,m);E&&(E.traceparent&&!k.has("traceparent")&&k.set("traceparent",E.traceparent),E.tracestate&&!k.has("tracestate")&&k.set("tracestate",E.tracestate),E.baggage&&!k.has("baggage")&&k.set("baggage",E.baggage))}return u(b,et(et({},y),{},{headers:k}))}};async function UI(e,t,n){if(!OI(typeof e=="string"||e instanceof URL?e:e.url,t))return null;const o=await RI();if(!o||!o.traceparent)return null;if(n){const s=II(o.traceparent);if(s&&!s.isSampled)return null}return o}function cw(e){return typeof e=="boolean"?{enabled:e}:e}function BI(e){return e.endsWith("/")?e:e+"/"}function zI(e,t){var n,o,s,u,d,p;const{db:m,auth:g,realtime:b,global:y}=e,{db:w,auth:x,realtime:k,global:E}=t,D=cw(e.tracePropagation),L=cw(t.tracePropagation),O={db:et(et({},w),m),auth:et(et({},x),g),realtime:et(et({},k),b),storage:{},global:et(et(et({},E),y),{},{headers:et(et({},(n=E?.headers)!==null&&n!==void 0?n:{}
41),(o=y?.headers)!==null&&o!==void 0?o:{})}),tracePropagation:{enabled:(s=(u=D?.enabled)!==null&&u!==void 0?u:L?.enabled)!==null&&s!==void 0?s:!1,respectSamplingDecision:(d=(p=D?.respectSamplingDecision)!==null&&p!==void 0?p:L?.respectSamplingDecision)!==null&&d!==void 0?d:!0},accessToken:async()=>""};return e.accessToken?O.accessToken=e.accessToken:delete O.accessToken,O}function VI(e){const t=e?.trim();if(!t)throw new Error("supabaseUrl is required.");if(!t.match(/^https?:\/\//i))throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(BI(t))}catch{throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var GI=class extends wI{constructor(e){super(e)}},WI=class{constructor(e,t,n){var o,s;this.supabaseUrl=e,this.supabaseKey=t;const u=VI(e);if(!t)throw new Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",u),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",u),this.storageUrl=new URL("storage/v1",u),this.functionsUrl=new URL("functions/v1",u);const d=`sb-${u.hostname.split(".")[0]}-auth-token`,p={db:kI,realtime:TI,auth:et(et({},DI),{},{storageKey:d}),global:SI,tracePropagation:LI},m=zI(n??{},p);if(this.settings=m,this.storageKey=(o=m.auth.storageKey)!==null&&o!==void 0?o:"",this.headers=(s=m.global.headers)!==null&&s!==void 0?s:{},m.accessToken)this.accessToken=m.accessToken,this.auth=new Proxy({},{get:(b,y)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(y)} is not possible`)}});else{var g;this.auth=this._initSupabaseAuthClient((g=m.auth)!==null&&g!==void 0?g:{},this.headers,m.global.fetch)}this.fetch=FI(t,e,this._getAccessToken.bind(this),m.global.fetch,m.tracePropagation),this.realtime=this._initRealtimeClient(et({headers:this.headers,accessToken:this._getAccessToken.bind(this),fetch:this.fetch},m.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(b=>this.realtime.setAuth(b)).catch(b=>console.warn("Failed to set initial Realtime auth token:",b)),this.rest=new rC(new URL("rest/v1",u).href,{headers:this.headers,schema:m.db.schema,fetch:this.fetch,timeout:m.db.timeout,urlLengthLimit:m.db.urlLengthLimit}),this.storage=new wR(this.storageUrl.href,this.headers,this.fetch,n?.storage),m.accessToken||this._listenForAuthEvents()}get functions(){return new W_(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,t={},n={head:!1,get:!1,count:void 0}){return this.rest.rpc(e,t,n)}channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var e=this,t,n;if(e.accessToken)return await e.accessToken();const{data:o}=await e.auth.getSession();return(t=(n=o.session)===null||n===void 0?void 0:n.access_token)!==null&&t!==void 0?t:e.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:o,userStorage:s,storageKey:u,flowType:d,lock:p,debug:m,throwOnError:g,experimental:b,lockAcquireTimeout:y,skipAutoInitialize:w},x,k){const E={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new GI({url:this.authUrl.href,headers:et(et({},E),x),storageKey:u,autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:o,userStorage:s,flowType:d,lock:p,debug:m,throwOnError:g,experimental:b,fetch:k,lockAcquireTimeout:y,skipAutoInitialize:w,hasCustomAuthorizationHeader:Object.keys(this.headers).some(D=>D.toLowerCase()==="authorization")})}_initRealtimeClient(e){return new zC(this.realtimeUrl.href,et(et({},e),{},{params:et(et({},{apikey:this.supabaseKey}),e?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,"CLIENT",t?.access_token)})}_handleTokenChanged(e,t,n){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN")&&this.changedAccessToken!==n?(this.changedAccessToken=n,this.realtime.setAuth(n)):e==="SIGNED_OUT"&&(this.realtime.setAuth(),t=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}};const XI=(e,t,n)=>new WI(e,t,n);function YI(){if(typeof window<"u")return!1;const e=globalThis.process;if(!e)return!1;const t=e.version;if(t==null)return!1;const n=t.match(/^v(\d+)\./);return n?parseInt(n[1],10)<=20:!1}YI()&&console.warn("⚠️  Node.js 20 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to N
41ode.js 22 or later. For more information, visit: https://github.com/orgs/supabase/discussions/45715");function KI(){if(typeof window>"u")return;const e=location.hostname,n=["lovableproject.com","lovableproject-dev.com","lovable.app","gpt-eng.com","gptengineer.run"].some(D=>e===D||e.endsWith("."+D)),o="[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}",s=n?e.match(new RegExp("^(?:id-preview(?:-[a-z0-9]+)?|project)--("+o+")(?:-dev)?(?=\\.|$)","i"))?.[1]??e.match(new RegExp("^("+o+")(?=[.-])","i"))?.[1]:void 0,u=window.parent&&window.parent!==window;if(!s||!u)return localStorage;const d=e.endsWith(".lovableproject-dev.com")||e.endsWith(".gpt-eng.com"),p=d?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,m=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:""),g=m&&p.test(m)?[m]:d?["https://lovable.dev","http://localhost:3000"]:["https://lovable.dev"],b="lovable-preview-auth:result",y=2e3,w=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),x=(D,L,O)=>new Promise(N=>{const V=w();let Z=!1,B;const P=he=>{Z||(Z=!0,clearTimeout(B),window.removeEventListener("message",J),N(he))},J=he=>{if(g.indexOf(he.origin)<0)return;const K=he.data;K&&K.type===b&&K.requestId===V&&P(K)};window.addEventListener("message",J);const oe={type:D,requestId:V,projectId:s,key:L};O!==void 0&&(oe.value=O);for(const he of g)window.parent.postMessage(oe,he);B=setTimeout(()=>P(null),y)});let k=!0;const E=250;return{getItem:async D=>{let L=await x("lovable-preview-auth:get",D);return!L&&k&&(await new Promise(O=>setTimeout(O,E)),L=await x("lovable-preview-auth:get",D)),k=!1,L&&L.ok&&typeof L.value=="string"?L.value===""?(localStorage.removeItem(D),null):L.value:localStorage.getItem(D)},setItem:(D,L)=>(localStorage.setItem(D,L),x("lovable-preview-auth:set",D,L).then(O=>{O&&O.ok&&typeof O.value=="string"&&localStorage.getItem(D)===L&&(O.value===""?localStorage.removeItem(D):localStorage.setItem(D,O.value))})),removeItem:D=>(localStorage.removeItem(D),x("lovable-preview-auth:remove",D).then(()=>{}))}}function QI(e){return e.startsWith("sb_publishable_")||e.startsWith("sb_secret_")}function JI(e){return(t,n)=>{const o=new Headers(typeof Request<"u"&&t instanceof Request?t.headers:void 0);return n?.headers&&new Headers(n.headers).forEach((s,u)=>o.set(u,s)),QI(e)&&o.get("Authorization")===`Bearer ${e}`&&o.delete("Authorization"),o.set("apikey",e),fetch(t,{...n,headers:o})}}function ZI(){const e="https://jskxmtdupvjclbiwpjyu.supabase.co",t="sb_publishable_-_cqBFEuBbpxyZEuIoCqnA_4ccpbsMO";return XI(e,t,{global:{fetch:JI(t)},auth:{storage:KI(),persistSession:!0,autoRefreshToken:!0}})}let ep;const pE=new Proxy({},{get(e,t,n){return ep||(ep=ZI()),Reflect.get(ep,t,n)}}),eO=Ba({type:"function"}).client(async({next:e})=>{const{data:t}=await pE.auth.getSession(),n=t.session?.access_token;return e({headers:n?{Authorization:`Bearer ${n}`}:{}})}),tO=Ba(),uw=B_(()=>({functionMiddleware:[eO],requestMiddleware:[tO]}));var lu=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(){}},rO=class extends lu{#e;#r;#t;constructor(){super(),this.#t=e=>{if(typeof window<"u"&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#r||this.setEventListener(this.#t)}onUnsubscribe(){this.hasListeners()||(this.#r?.(),this.#r=void 0)}setEventListener(e){this.#t=e,this.#r?.(),this.#r=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},fE=new rO,nO={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},aO=class{#e=nO;#r=!1;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)}},Vp=new aO;function oO(e){setTimeout(e,0)}var iO=typeof window>"u"||"Deno"in globalThis;function br(){}function sO(e,t){return typeof e=="function"?e(t):e}function lO(e){return typeof e=="number"&&e>=0&&e!==1/0}function cO(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Gp(e,t){return typeof e=="function"?e(t):e}function uO(e,t){return typeof e=="function"?e(t):e}function dw(e,t){const{type:n="all",exact:o,fetchStatus:s,predicate:u,queryKey:d,stale:p}=e;if(d){if(o){if(t.queryHash!==vf(d,t.options))return!1}else if(!Ts(t.queryKey,d))return!1}if(n!=="all"){const m=t.isActive();if(n==="active"&&!m||n==="inactive"&&m)return!1}return!(typeof p=="boolean"&&t.isStale()!==p||s&&s!==t.state.fetchStatus||u&&!u(t))}function hw(e,t){const{exact:n,status:o,predicate:s,mutationKey:u}=e;if(u){if(!t.options.mutationKey)return!1;if(n){if(Ds(t.options.mutationKey)!==Ds(u))return!1}else if(!Ts(t.options.mutationKey,u))return!1}return!(o&&t.state.status!==o||s&&!s(t))}function vf(e,t){return(t?.queryKeyHashFn||Ds)(e)}function Ds(e){return JSON.stringify(e,(t,n)=>Wp(n)?Object.keys(n).sort().reduce((o,s)=>(o[s]=n[s],o),{}):n)}function Ts(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Ts(e[n],t[n])):!1}var dO=Object.prototype.hasOwnProperty;function mE(e,t,n=0){if(e===t)return e;if(n>500)return t;const o=pw(e)&&pw(t);if(!o&&!(Wp(e)&&Wp(t)))return t;const u=(o?e:Object.keys(e)).length,d=o?t:Object.keys(t),p=d.length,m=o?new Array(p):{};let g=0;for(let b=0;b<p;b++){const y=o?b:d[b],w=e[y],x=t[y];if(w===x){m[y]=w,(o?b<u:dO.call(e,y))&&g++;continue}if(w===null||x===null||typeof w!="object"||typeof x!="object"){m[y]=x;continue}const k=mE(w,x,n+1);m[y]=k,k===w&&g++}return u===p&&g===u?e:m}function V8(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function pw(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Wp(e){if(!fw(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!fw(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function fw(e){return Object.prototype.toString.call(e)==="[object Object]"}function hO(e){return new Promise(t=>{Vp.setTimeout(t,e)})}function pO(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?mE(e,t):t}function fO(e,t,n=0){const o=[...e,t];return n&&o.length>n?o.slice(1):o}function mO(e,t,n=0){const o=[t,...e];return n&&o.length>n?o.slice(0,-1):o}var wf=Symbol();function gE(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===wf?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function G8(e,t){return typeof e=="function"?e(...t):!!e}function gO(e,t,n){let o=!1,s;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(s??=t(),o||(o=!0,s.aborted?n():s.addEventListener("abort",n,{once:!0})),s)}),e}var yE=(()=>{let e=()=>iO;return{isServer(){return e()},setIsServer(t){e=t}}})();function yO(){let e,t;const n=new Promise((s,u)=>{e=s,t=u});n.status="pending",n.catch(()=>{});function o(s){Object.assign(n,s),delete n.resolve,delete n.reject}return n.resolve=s=>{o({status:"fulfilled",value:s}),e(s)},n.reject=s=>{o({status:"rejected",reason:s}),t(s)},n}
vendor: 14,648 bytes, line 41
41var bO=oO;function vO(){let e=[],t=0,n=p=>{p()},o=p=>{p()},s=bO;const u=p=>{t?e.push(p):s(()=>{n(p)})},d=()=>{const p=e;e=[],p.length&&s(()=>{o(()=>{p.forEach(m=>{n(m)})})})};return{batch:p=>{let m;t++;try{m=p()}finally{t--,t||d()}return m},batchCalls:p=>(...m)=>{u(()=>{p(...m)})},schedule:u,setNotifyFunction:p=>{n=p},setBatchNotifyFunction:p=>{o=p},setScheduler:p=>{s=p}}}var At=vO(),wO=class extends lu{#e=!0;#r;#t;constructor(){super(),this.#t=e=>{if(typeof window<"u"&&window.addEventListener){const 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.#r||this.setEventListener(this.#t)}onUnsubscribe(){this.hasListeners()||(this.#r?.(),this.#r=void 0)}setEventListener(e){this.#t=e,this.#r?.(),this.#r=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(n=>{n(e)}))}isOnline(){return this.#e}},Gc=new wO;function xO(e){return Math.min(1e3*2**e,3e4)}function bE(e){return(e??"online")==="online"?Gc.isOnline():!0}var Xp=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function vE(e){let t=!1,n=0,o;const s=yO(),u=()=>s.status!=="pending",d=E=>{if(!u()){const D=new Xp(E);w(D),e.onCancel?.(D)}},p=()=>{t=!0},m=()=>{t=!1},g=()=>fE.isFocused()&&(e.networkMode==="always"||Gc.isOnline())&&e.canRun(),b=()=>bE(e.networkMode)&&e.canRun(),y=E=>{u()||(o?.(),s.resolve(E))},w=E=>{u()||(o?.(),s.reject(E))},x=()=>new Promise(E=>{o=D=>{(u()||g())&&E(D)},e.onPause?.()}).then(()=>{o=void 0,u()||e.onContinue?.()}),k=()=>{if(u())return;let E;const D=n===0?e.initialPromise:void 0;try{E=D??e.fn()}catch(L){E=Promise.reject(L)}Promise.resolve(E).then(y).catch(L=>{if(u())return;const O=e.retry??(yE.isServer()?0:3),N=e.retryDelay??xO,V=typeof N=="function"?N(n,L):N,Z=O===!0||typeof O=="number"&&n<O||typeof O=="function"&&O(n,L);if(t||!Z){w(L);return}n++,e.onFail?.(n,L),hO(V).then(()=>g()?void 0:x()).then(()=>{t?w(L):k()})})};return{promise:s,status:()=>s.status,cancel:d,continue:()=>(o?.(),s),cancelRetry:p,continueRetry:m,canStart:b,start:()=>(b()?k():x().then(k),s)}}var wE=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),lO(this.gcTime)&&(this.#e=Vp.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(yE.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(Vp.clearTimeout(this.#e),this.#e=void 0)}},EO=class extends wE{#e;#r;#t;#a;#n;#o;#i;constructor(e){super(),this.#i=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#a=e.client,this.#t=this.#a.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=gw(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#n?.promise}setOptions(e){if(this.options={...this.#o,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const t=gw(this.options);t.data!==void 0&&(this.setState(mw(t.data,t.dataUpdatedAt)),this.#e=t)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#t.remove(this)}setData(e,t){const n=pO(this.state.data,e,this.options);return this.#s({data:n,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#s({type:"setState",state:e,setStateOptions:t})}cancel(e){const t=this.#n?.promise;return this.#n?.cancel(e),t?t.then(br).catch(br):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>uO(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===wf||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>Gp(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!cO(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#t.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.#n&&(this.#i||this.#l()?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#t.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}#l(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"}invalidate(){this.state.isInvalidated||this.#s({type:"invalidate"})}async fetch(e,t){if(this.state.fetchStatus!=="idle"&&this.#n?.status()!=="rejected"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(e&&this.setOptions(e),!this.options.queryFn){const p=this.observers.find(m=>m.options.queryFn);p&&this.setOptions(p.options)}const n=new AbortController,o=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(this.#i=!0,n.signal)})},s=()=>{const p=gE(this.options,t),g=(()=>{const b={client:this.#a,queryKey:this.queryKey,meta:this.meta};return o(b),b})();return this.#i=!1,this.options.persister?this.options.persister(p,g,this):p(g)},d=(()=>{const p={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#a,state:this.state,fetchFn:s};return o(p),p})();this.options.behavior?.onFetch(d,this),this.#r=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==d.fetchOptions?.meta)&&this.#s({type:"fetch",meta:d.fetchOptions?.meta}),this.#n=vE({initialPromise:t?.initialPromise,fn:d.fetchFn,onCancel:p=>{p instanceof Xp&&p.revert&&this.setState({...this.#r,fetchStatus:"idle"}),n.abort()},onFail:(p,m)=>{this.#s({type:"failed",failureCount:p,error:m})},onPause:()=>{this.#s({type:"pause"})},onContinue:()=>{this.#s({type:"continue"})},retry:d.options.retry,retryDelay:d.options.retryDelay,networkMode:d.options.networkMode,canRun:()=>!0});try{const p=await this.#n.start();if(p===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(p),this.#t.config.onSuccess?.(p,this),this.#t.config.onSettled?.(p,this.state.error,this),p}catch(p){if(p instanceof Xp){if(p.silent)return this.#n.promise;if(p.revert){if(this.state.data===void 0)throw p;return this.state.data}}throw this.#s({type:"error",error:p}),this.#t.config.onError?.(p,this),this.#t.config.onSettled?.(this.state.data,p,this),p}finally{this.scheduleGc()}}#s(e){const t=n=>{switch(e.type){case"failed":return{...n,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...SO(n.data,this.options),fetchMeta:e.meta??null};case"success":const o={...n,...mw(e.data,e.dataUpdatedAt),dataUpdateCount:n.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#r=e.manual?o:void 0,o;case"error":const s=e.error;return{...n,error:s,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:s,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...e.state}}};this.state=t(this.state),At.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),this.#t.notify({query:this,type:"updated",action:e})})}};function SO(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:bE(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function mw(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function gw(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,o=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?o??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}function yw(e){return{onFetch:(t,n)=>{const o=t.options,s=t.fetchOptions?.meta?.fetchMore?.direction,u=t.state.data?.pages||[],d=t.state.data?.pageParams||[];let p={pages:[],pageParams:[]},m=0;const g=async()=>{let b=!1;const y=k=>{gO(k,()=>t.signal,()=>b=!0)},w=gE(t.options,t.fetchOptions),x=async(k,E,D)=>{if(b)return Promise.reject();if(E==null&&k.pages.length)return Promise.resolve(k);const O=(()=>{const B={client:t.client,queryKey:t.queryKey,pageParam:E,direction:D?"backward":"forward",meta:t.options.meta};return y(B),B})(),N=await w(O),{maxPages:V}=t.options,Z=D?mO:fO;return{pages:Z(k.pages,N,V),pageParams:Z(k.pageParams,E,V)}};if(s&&u.length){const k=s==="backward",E=k?kO:bw,D={pages:u,pageParams:d},L=E(o,D);p=await x(D,L,k)}else{const k=e??u.length;do{const E=m===0?d[0]??o.initialPageParam:bw(o,p);if(m>0&&E==null)break;p=await x(p,E),m++}while(m<k)}return p};t.options.persister?t.fetchFn=()=>t.options.persister?.(g,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=g}}}function bw(e,{pages:t,pageParams:n}){const o=t.length-1;return t.length>0?e.getNextPageParam(t[o],t,n[o],n):void 0}function kO(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var DO=class extends wE{#e;#r;#t;#a;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#r=[],this.state=e.state||TO(),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.#r.includes(e)||(this.#r.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#r=this.#r.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#r.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#a?.continue()??this.execute(this.state.variables)}async execute(e){const t=()=>{this.#n({type:"continue"})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#a=vE({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(new Error("No mutationFn found")),onFail:(u,d)=>{this.#n({type:"failed",failureCount:u,error:d})},onPause:()=>{this.#n({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});const o=this.state.status==="pending",s=!this.#a.canStart();try{if(o)t();else{this.#n({type:"pending",variables:e,isPaused:s}),this.#t.config.onMutate&&await this.#t.config.onMutate(e,this,n);const d=await this.options.onMutate?.(e,n);d!==this.state.context&&this.#n({type:"pending",context:d,variables:e,isPaused:s})}const u=await this.#a.start();return await this.#t.config.onSuccess?.(u,e,this.state.context,this,n),await this.options.onSuccess?.(u,e,this.state.context,n),await this.#t.config.onSettled?.(u,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(u,null,e,this.state.context,n),this.#n({type:"success",data:u}),u}catch(u){try{await this.#t.config.onError?.(u,e,this.state.context,this,n)}catch(d){Promise.reject(d)}try{await this.options.onError?.(u,e,this.state.context,n)}catch(d){Promise.reject(d)}try{await this.#t.config.onSettled?.(void 0,u,this.state.variables,this.state.context,this,n)}catch(d){Promise.reject(d)}try{await this.options.onSettled?.(void 0,u,e,this.state.context,n)}catch(d){Promise.reject(d)}throw this.#n({type:"error",error:u}),u}finally{this.#t.runNext(this)}}#n(e){const t=n=>{switch(e.type){case"failed":return{...n,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,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{...n,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:e.error,failureCount:n.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),At.batch(()=>{this.#r.forEach(n=>{n.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function TO(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var LO=class extends lu{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#r=new Map,this.#t=0}#e;#r;#t;build(e,t,n){const o=new DO({client:e,mutationCache:this,mutationId:++this.#t,options:e.defaultMutationOptions(t),state:n});return this.add(o),o}add(e){this.#e.add(e);const t=wc(e);if(typeof t=="string"){const n=this.#r.get(t);n?n.push(e):this.#r.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){const t=wc(e);if(typeof t=="string"){const n=this.#r.get(t);if(n)if(n.length>1){const o=n.indexOf(e);o!==-1&&n.splice(o,1)}else n[0]===e&&this.#r.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){const t=wc(e);if(typeof t=="string"){const o=this.#r.get(t)?.find(s=>s.state.status==="pending");return!o||o===e}else return!0}runNext(e){const t=wc(e);return typeof t=="string"?this.#r.get(t)?.find(o=>o!==e&&o.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){At.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#r.clear()})}getAll(){return Array.from(this.#e)}find(e){const t={exact:!0,...e};return this.getAll().find(n=>hw(t,n))}findAll(e={}){return this.getAll().filter(t=>hw(e,t))}notify(e){At.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>
41t.state.isPaused);return At.batch(()=>Promise.all(e.map(t=>t.continue().catch(br))))}};function wc(e){return e.options.scope?.id}var AO=class extends lu{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){const o=t.queryKey,s=t.queryHash??vf(o,t);let u=this.get(s);return u||(u=new EO({client:e,queryKey:o,queryHash:s,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(o)}),this.add(u)),u}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){At.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){const t={exact:!0,...e};return this.getAll().find(n=>dw(t,n))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(n=>dw(e,n)):t}notify(e){At.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){At.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){At.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},_O=class{#e;#r;#t;#a;#n;#o;#i;#l;constructor(e={}){this.#e=e.queryCache||new AO,this.#r=e.mutationCache||new LO,this.#t=e.defaultOptions||{},this.#a=new Map,this.#n=new Map,this.#o=0}mount(){this.#o++,this.#o===1&&(this.#i=fE.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#l=Gc.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#o--,this.#o===0&&(this.#i?.(),this.#i=void 0,this.#l?.(),this.#l=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#r.findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=this.#e.build(this,t),o=n.state.data;return o===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Gp(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(o))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:n})=>{const o=n.data;return[t,o]})}setQueryData(e,t,n){const o=this.defaultQueryOptions({queryKey:e}),u=this.#e.get(o.queryHash)?.state.data,d=sO(t,u);if(d!==void 0)return this.#e.build(this,o).setData(d,{...n,manual:!0})}setQueriesData(e,t,n){return At.batch(()=>this.#e.findAll(e).map(({queryKey:o})=>[o,this.setQueryData(o,t,n)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){const t=this.#e;At.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=this.#e;return At.batch(()=>(n.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},o=At.batch(()=>this.#e.findAll(e).map(s=>s.cancel(n)));return Promise.all(o).then(br).catch(br)}invalidateQueries(e,t={}){return At.batch(()=>(this.#e.findAll(e).forEach(n=>{n.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},o=At.batch(()=>this.#e.findAll(e).filter(s=>!s.isDisabled()&&!s.isStatic()).map(s=>{let u=s.fetch(void 0,n);return n.throwOnError||(u=u.catch(br)),s.state.fetchStatus==="paused"?Promise.resolve():u}));return Promise.all(o).then(br)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=this.#e.build(this,t);return n.isStaleByTime(Gp(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(br).catch(br)}fetchInfiniteQuery(e){return e.behavior=yw(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(br).catch(br)}ensureInfiniteQueryData(e){return e.behavior=yw(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Gc.isOnline()?this.#r.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#r}getDefaultOptions(){return this.#t}setDefaultOptions(e){this.#t=e}setQueryDefaults(e,t){this.#a.set(Ds(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#a.values()],n={};return t.forEach(o=>{Ts(e,o.queryKey)&&Object.assign(n,o.defaultOptions)}),n}setMutationDefaults(e,t){this.#n.set(Ds(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#n.values()],n={};return t.forEach(o=>{Ts(e,o.mutationKey)&&Object.assign(n,o.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...this.#t.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=vf(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===wf&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#t.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#r.clear()}},xE=ae.createContext(void 0),W8=e=>{const t=ae.useContext(xE);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},CO=({client:e,children:t})=>(ae.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),c.jsx(xE.Provider,{value:e,children:t}));const RO=Ga({method:"POST"}).handler(Rs("640cb01ca58e7f18010053ba4c9da0baab93f390de1d8f747878326f3fe3b659")),vw="eldhub_vid";function IO(){if(typeof window>"u")return"";try{let e=window.localStorage.getItem(vw);return e||(e=crypto.randomUUID(),window.localStorage.setItem(vw,e)),e}catch{return""}}function ur(e,t,n){if(typeof window>"u")return;const o=n??window.location.pathname;RO({data:{eventName:e,pagePath:o,detail:t??"",visitorId:IO(),referrer:document.referrer.slice(0,1e3)}}).catch(()=>{})}const Cc="eldhub_first_touch",Yp="eldhub_last_touch",OO=["utm_source","utm_medium","utm_campaign","utm_term","utm_content","gclid","msclkid","fbclid","ref"];function xf(e){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function ww(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function Ef(){if(typeof window>"u")return{};const e={};try{const t=new URLSearchParams(window.location.search);for(const n of OO){const o=t.get(n);o&&(e[n]=o.slice(0,200))}}catch{}return e}function $O(){if(typeof document>"u"||!document.referrer)return!1;try{return new URL(document.referrer).hostname!==window.location.hostname}catch{return!1}}function xw(e=!1){if(typeof window>"u")return;if(!e)try{window.localStorage.removeItem(Cc),window.localStorage.removeItem(Yp)}catch{}const t=e?Ef():{},n=$O();if(Object.keys(t).length===0&&!n)return;const o={params:t,landing:window.location.pathname,referrer:n?new URL(document.referrer).origin:"",at:new Date().toISOString()};xf(Cc)||ww(Cc,o),ww(Yp,o)}function EE(){return xf(Cc)}function SE(){return xf(Yp)}function kE(){const e=EE(),t=SE(),n={...e?.params??{},...t?.params??{},...Ef()};return e&&(n.ft_landing=e.landing,e.params.utm_source&&(n.ft_source=e.params.utm_source)),n}const NO="cookie_consent",HO=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH","CA"];let PO;function jO(){return PO??=qO()}async function qO(){try{const e=await fetch("/cdn-cgi/trace",{signal:AbortSignal.timeout(2e3)});if(!e.ok)return!0;const t=(await e.text()).match(/^loc=([A-Z0-9]{2})$/m)?.[1];return!t||t==="XX"||t==="T1"?!0:HO.includes(t)}catch{return!0}}async function Sf(){if(typeof window>"u")return!1;let e=null;try{e=window.localStorage.getItem(NO)}catch{}return e!==null?e==="granted":!await jO()}function MO(e){typeof window>"u"||window.gtag?.("consent","update",{ad_storage:e,ad_user_data:e,ad_personalization:e})}let Wc=!1,DE=!1;async function FO(){return Wc=await Sf()&&!na(),DE=!0,Wc}function UO(){return DE}function Rc(){return Wc}function na(){if(typeof window>"u")return!0;try{return window.localStorage.getItem("cookie_consent")==="denied"||navigator.globalPrivacyControl
41===!0}catch{return!0}}function BO(e){try{const t=new URL(e).hostname;return t===window.location.hostname?null:t.slice(0,200)}catch{return null}}function zO(e,t){const n=EE(),o=SE(),s={...n?.params??{},...o?.params??{},...Ef()},u=Wc&&!na(),d=BO(o?.referrer||n?.referrer||document.referrer),p=u?["gclid","msclkid","fbclid"].find(m=>s[m]):void 0;return{id:e,entryPath:t.slice(0,500),landingPath:(n?.landing||o?.landing||t).slice(0,500),source:((u?s.utm_source:null)||(p==="gclid"?"google":p==="msclkid"?"bing":p==="fbclid"?"facebook":d||"Unknown")).slice(0,200),medium:(u?s.utm_medium:null)||(p?"paid":d?"referral":"direct"),campaign:u&&s.utm_campaign?.slice(0,200)||null,term:u&&s.utm_term?.slice(0,200)||null,referrerHost:d,adClickType:p??null,adClickId:p?s[p]?.slice(0,200):null,adTrackingAllowed:u}}const Ew="AW-18447198832",VO="AW-18447198832/qg_3COuytfUcEPDUp9xE";async function GO(){if(typeof window>"u"||!await Sf()||na())return!1;if(window.dataLayer=window.dataLayer||[],window.gtag=window.gtag||function(...n){window.dataLayer.push(n)},MO("granted"),document.querySelector("script[data-google-ads]"))return!0;window.gtag("js",new Date),window.gtag("config",Ew);const t=document.createElement("script");return t.src=`https://www.googletagmanager.com/gtag/js?id=${Ew}`,t.async=!0,t.dataset.googleAds="",document.head.appendChild(t),!0}async function WO(){typeof window>"u"||!await Sf()||na()||window.gtag?.("event","conversion",{send_to:VO,value:1,currency:"USD"})}function XO(){const e=I_({select:t=>t.location.pathname});return ae.useEffect(()=>{UO()?xw(Rc()&&!na()):FO().then(t=>xw(t)),ur("page_view","",e)},[e]),ae.useEffect(()=>{GO()},[]),ae.useEffect(()=>{function t(s){const u=s.getAttribute("href")??"";if(!u.includes("portal.goeldhub.com"))return u;let d;try{d=new URL(u,window.location.origin)}catch{return u}if(d.hostname!=="portal.goeldhub.com")return u;d.searchParams.get("src")||d.searchParams.set("src",window.location.pathname);for(const[m,g]of Object.entries(kE()))!Rc()||na()||g&&!d.searchParams.get(m)&&d.searchParams.set(m,g);if(!Rc()||na())for(const m of["gclid","msclkid","fbclid","utm_source","utm_medium","utm_campaign","utm_term","utm_content","ft_source"])d.searchParams.delete(m);const p=d.toString();return p!==u&&s.setAttribute("href",p),p}function n(s){const u=s.target?.closest("a");u&&t(u)}function o(s){const u=s.target?.closest("a");if(!u)return;const d=t(u);let p;try{p=new URL(d)}catch{return}if(p.hostname==="portal.goeldhub.com"&&(ur("portal_handoff",u.textContent?.trim().slice(0,120)??"link"),ur("registration_start",window.location.pathname),p.pathname.startsWith("/registration"))){const m=crypto.randomUUID();p.searchParams.set("eld_ref",m),u.setAttribute("href",p.toString());const g=JSON.stringify(zO(m,window.location.pathname));fetch("/api/public/trial-handoff",{method:"POST",headers:{"content-type":"application/json"},body:g,keepalive:!0}).catch(()=>{}),WO()}}return document.addEventListener("mousedown",n,{capture:!0}),document.addEventListener("touchstart",n,{capture:!0}),document.addEventListener("click",o,{capture:!0}),()=>{document.removeEventListener("mousedown",n,{capture:!0}),document.removeEventListener("touchstart",n,{capture:!0}),document.removeEventListener("click",o,{capture:!0})}},[]),null}const YO="/assets/styles-DfOWdxfR.css";function KO(){return c.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background px-4",children:c.jsxs("div",{className:"max-w-md text-center",children:[c.jsx("h1",{className:"text-7xl font-bold text-foreground",children:"404"}),c.jsx("h2",{className:"mt-4 text-xl font-semibold text-foreground",children:"Page not found"}),c.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"The page you're looking for doesn't exist or has been moved."}),c.jsx("div",{className:"mt-6",children:c.jsx(W,{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 QO({error:e,reset:t}){console.error(e);const n=Tt();return c.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background px-4",children:c.jsxs("div",{className:"max-w-md text-center",children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"This page didn't load"}),c.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."}),c.jsxs("div",{className:"mt-6 flex flex-wrap justify-center gap-2",children:[c.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"}),c.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"})]})]})})}const _=y_()({head:()=>({meta:[{charSet:"utf-8"},{name:"viewport",content:"width=device-width, initial-scale=1"},{name:"author",content:"ELD HUB"},{property:"og:site_name",content:"ELD HUB"},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"google-site-verification",content:"59JikspF4X_77Ijn-Bmk7xQPkRlOxn0hoqfeejqg0vs"}],scripts:[{children:"window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('consent','default',{ad_storage:'granted',ad_user_data:'granted',ad_personalization:'granted'});gtag('consent','default',{ad_storage:'denied',ad_user_data:'denied',ad_personalization:'denied',wait_for_update:500,region:['AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO','GB','CH','CA-QC']});"},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://goeldhub.com/#organization",name:"ELD HUB",url:"https://goeldhub.com",logo:"https://goeldhub.com/android-chrome-512x512.png",telephone:"+1-302-404-1177",email:"[email protected]",address:{"@type":"PostalAddress",streetAddress:"303 E Main Street",addressLocality:"Barrington",addressRegion:"IL",postalCode:"60010",addressCountry:"US"},contactPoint:[{"@type":"ContactPoint",telephone:"+1-302-404-1177",contactType:"customer support",areaServed:"US",availableLanguage:["English","Spanish"]}],sameAs:["https://www.facebook.com/goeldhub","https://www.instagram.com/goeldhub","https://www.linkedin.com/company/eldhub","https://twitter.com/goeldhub"]},{"@type":"WebSite","@id":"https://goeldhub.com/#website",url:"https://goeldhub.com",name:"ELD Hub",alternateName:["ELDHUB","ELD HUB","goeldhub"],publisher:{"@id":"https://goeldhub.com/#organization"},potentialAction:{"@type":"SearchAction",target:{"@type":"EntryPoint",urlTemplate:"https://goeldhub.com/blog?q={search_term_string}"},"query-input":"required name=search_term_string"}}]})}
41],links:[{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=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap"},{rel:"stylesheet",href:YO},{rel:"alternate",type:"text/plain",href:"/llms.txt",title:"LLM index"},{rel:"alternate",type:"application/json",href:"/api/public/facts.json",title:"ELD Hub facts (machine-readable)"},{rel:"alternate",type:"application/rss+xml",href:"/blog/rss.xml",title:"ELD HUB Blog RSS"}]}),shellComponent:JO,component:ZO,notFoundComponent:KO,errorComponent:QO});function JO({children:e}){return c.jsxs("html",{lang:"en",children:[c.jsx("head",{children:c.jsx(H_,{})}),c.jsxs("body",{children:[e,c.jsx(j_,{})]})]})}function ZO(){const{queryClient:e}=_.useRouteContext();return c.jsxs(CO,{client:e,children:[c.jsx(XO,{}),c.jsx(qx,{})]})}const e2="modulepreload",t2=function(e){return"/"+e},Sw={},C=function(t,n,o){let s=Promise.resolve();if(n&&n.length>0){let m=function(g){return Promise.all(g.map(b=>Promise.resolve(b).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const d=document.querySelector("meta[property=csp-nonce]"),p=d?.nonce||d?.getAttribute("nonce");s=m(n.map(g=>{if(g=t2(g),g in Sw)return;Sw[g]=!0;const b=g.endsWith(".css"),y=b?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${g}"]${y}`))return;const w=document.createElement("link");if(w.rel=b?"stylesheet":e2,b||(w.as="script"),w.crossOrigin="",w.href=g,p&&w.setAttribute("nonce",p),document.head.appendChild(w),b)return new Promise((x,k)=>{w.addEventListener("load",x),w.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${g}`)))})}))}function u(d){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=d,window.dispatchEvent(p),!p.defaultPrevented)throw d}return s.then(d=>{for(const p of d||[])p.status==="rejected"&&u(p.reason);return t().catch(u)})},r2=[{q:"How much does the ELD really cost? Any hidden fees?",a:"Flat $15 per truck per month. No setup fee, no activation fee, no cancellation fee, no annual contract. The price you see is the price you pay. Forever."},{q:"Do I have to buy new ELD hardware?",a:"Not if you already have a compatible PT-30 or IOSiX — ELD HUB can re-register it at no cost. If you need hardware, we sell both for $150 per device with free shipping (in stock, ships same or next business day). PT-30 includes a diagnostic cable; IOSiX is device only."},{q:"Is the ELD FMCSA registered? Will it pass DOT inspection?",a:"Yes. ELD HUB is on the official FMCSA registered list. We monitor the registry for you, push compliance updates automatically, and provide DOT ready logs your driver can hand to an officer in seconds."},{q:"How fast do I get paid with factoring? What is the rate?",a:"Same day or next day funding (within 24 hours) once your invoice is verified. Flat 1% to 2%. No reserves held back, no ACH fees, no invoice fees, no monthly minimums. We pay on gross, not net."},{q:"Recourse or non recourse factoring? Who handles collections?",a:"We offer both. Most small fleets choose non recourse so we absorb the credit risk on approved brokers. Our team runs broker credit checks before you haul and handles all collections. You focus on driving."},{q:"How much can I really save on fuel?",a:"Up to $2 per gallon at select stations through our AtoB partnership. Realistic blended savings for most fleets are $0.40 to $0.80 per gallon across 4,200+ truck stops including TA, Petro, Love's, Pilot, Speedway, and Kwik Trip. A 20,000 gallon per year operator typically saves $8,000 to $16,000."},{q:"What credit score do I need for capital or fuel cards?",a:"AtoB fuel cards are based on business cash flow, not personal credit. Most owner operators qualify. For capital, our 75+ partner network covers FICO 500+ with options for startups, owner ops, and fleets with prior bankruptcies. One application, multiple offers."},{q:"I am a brand new authority (MC under 6 months). Can you still help?",a:"Yes. New authorities are our specialty. We onboard you with ELD compliance, factoring, fuel discounts, and load board access from day one. Even with no MC history. Most banks and big factors will not touch you for 12 months. We will."},{q:"How does ELD HUB help me find loads and avoid bad brokers?",a:"Our freight market insights show where rates are highe
41st each day, and our broker credit database flags slow pay or non pay brokers before you book the load. Combined with factoring, you will know in minutes whether a load is worth running."},{q:"What about insurance? Can you lower my premium?",a:"As your Fleet Advisors, we shop your renewal across our partner brokers using your real driver behavior, ELD compliance score, and CSA data. Not generic quotes. Small fleets typically save 10% to 25% versus open market quotes after 90 days of clean ELD data."},{q:"What if I only need one service? Just the ELD or just factoring?",a:"Your $15 per truck per month ELD HUB subscription unlocks every service. RFP Freight, factoring, fuel cards, capital, driver sourcing, and insurance. At no extra membership cost. You only pay normal usage rates on what you actually activate. For example, 1% to 2% on the invoices you factor. One subscription, one login, every big fleet deal in one place."},{q:"How big does my fleet need to be? I am a single owner operator.",a:"ELD HUB is built for 1 to 20 truck operators. Solo owner operators get the exact same big fleet pricing on ELD, factoring, fuel, and capital that mega carriers negotiate. That is the whole point."},{q:"What does support look like when something breaks at 2am?",a:"Each service (ELD, RFP Freight, factoring, fuel, capital, insurance) is run by its own provider with their own support line. We do not pretend to be a single help desk. Our AI advisor is available 24/7 to triage your issue and point you to the right number, and our US based human advisors (English speaking) follow up next business day to make sure it got resolved."},{q:"How do I switch from my current ELD or factoring company?",a:"We do not negotiate or cancel contracts you signed with someone else. That is on you. What we do: walk you through the exit steps, time the switch around your billing cycle, transfer your historical ELD logs, and onboard you on ELD HUB so there is zero downtime once you are free to move."}];const TE=(...e)=>e.filter((t,n,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===n).join(" ").trim();const n2=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const a2=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,o)=>o?o.toUpperCase():n.toLowerCase());const kw=e=>{const t=a2(e);return t.charAt(0).toUpperCase()+t.slice(1)};var o2={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const i2=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};const s2=ae.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:o,className:s="",children:u,iconNode:d,...p},m)=>ae.createElement("svg",{ref:m,...o2,width:t,height:t,stroke:e,strokeWidth:o?Number(n)*24/Number(t):n,className:TE("lucide",s),...!u&&!i2(p)&&{"aria-hidden":"true"},...p},[...d.map(([g,b])=>ae.createElement(g,b)),...Array.isArray(u)?u:[u]]));const Te=(e,t)=>
41{const n=ae.forwardRef(({className:o,...s},u)=>ae.createElement(s2,{ref:u,iconNode:t,className:TE(`lucide-${n2(kw(e))}`,`lucide-${e}`,o),...s}));return n.displayName=kw(e),n};const l2=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],c2=Te("activity",l2);const u2=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Dw=Te("arrow-left",u2);const d2=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],at=Te("arrow-right",d2);const h2=[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]],p2=Te("badge-percent",h2);const f2=[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M6 12h.01M18 12h.01",key:"113zkx"}]],m2=Te("banknote",f2);const g2=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],y2=Te("book-open",g2);const b2=[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]],Xc=Te("building-2",b2);const v2=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],w2=Te("check",v2);const x2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],ut=Te("circle-check",x2);const E2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Hr=Te("circle-question-mark",E2);const S2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],LE=Te("circle-x",S2);const k2=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],kf=Te("clock",k2);const D2=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],AE=Te("cpu",D2);const T2=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],cu=Te("dollar-sign",T2);const L2=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],A2=Te("external-link",L2);const _2=[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]],C2=Te("facebook",_2);const R2=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Jo=Te("file-text",R2);const I2=[["path",{d:"M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5",key:"1wtuz0"}],["path",{d:"M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16",key:"e09ifn"}],["path",{d:"M2 21h13",key:"1x0fut"}],["path",{d:"M3 9h11",key:"1p7c0w"}]],O2=Te("fuel",I2);const $2=[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]],N2=Te("instagram",$2);const H2=[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]],P2=Te("lightbulb",H2);const j2=[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]],q2=Te("linkedin",j2);const M2=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}
41],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],F2=Te("log-in",M2);const U2=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],B2=Te("mail",U2);const z2=[["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"}]],Kp=Te("map-pin",z2);const V2=[["path",{d:"m16 16 2 2 4-4",key:"gfu2re"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]],_E=Te("package-check",V2);const G2=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Qp=Te("package",G2);const W2=[["path",{d:"M13 2a9 9 0 0 1 9 9",key:"1itnx2"}],["path",{d:"M13 6a5 5 0 0 1 5 5",key:"11nki7"}],["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"}]],Df=Te("phone-call",W2);const X2=[["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"}]],Tf=Te("phone",X2);const Y2=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],K2=Te("plug",Y2);const Q2=[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]],J2=Te("quote",Q2);const Z2=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],ia=Te("shield-check",Z2);const e$=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],t$=Te("shield",e$);const r$=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
41],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],yt=Te("sparkles",r$);const n$=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],CE=Te("triangle-alert",n$);const a$=[["path",{d:"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2",key:"wrbu53"}],["path",{d:"M15 18H9",key:"1lyqi6"}],["path",{d:"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",key:"lysw3i"}],["circle",{cx:"17",cy:"18",r:"2",key:"332jqn"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}]],mn=Te("truck",a$);const o$=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],i$=Te("users",o$);const s$=[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]],RE=Te("wallet",s$);const l$=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],c$=Te("x",l$);const u$=[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]],d$=Te("youtube",u$);const h$=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],p$=Te("zap",h$),f$="/__l5e/assets-v1/4f1b622d-6d35-4f99-8375-7bb81c03e4e4/eldhub-logo-light.png",IE={url:f$},m$="/__l5e/assets-v1/99c2a647-12e3-414a-b7a7-77df02db5064/eldhub-logo-dark.png",OE={url:m$},g$=[{name:"Instagram",href:"https://www.instagram.com/goeldhub/",Icon:N2},{name:"LinkedIn",href:"https://www.linkedin.com/company/goeldhub/",Icon:q2},{name:"TikTok",href:"https://www.tiktok.com/@goeldhub",Icon:y$},{name:"YouTube",href:"https://www.youtube.com/@eldhub/shorts",Icon:d$},{name:"Facebook",href:"https://www.facebook.com/people/ELD-HUB/61582917996381/",Icon:C2}];function y$({className:e}){return c.jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",children:c.jsx("path",{d:"M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 6.34 0 0 0 10.86-4.43v-6.7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1.04-.1z"})})}function b$({className:e}){return c.jsx("div",{className:e,children:g$.map(({name:t,href:n,Icon:o})=>c.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer","aria-label":`ELD HUB on ${t}`,className:"inline-flex items-center justify-center rounded-full border border-border bg-card p-2 text-muted-foreground transition-colors hover:border-accent hover:text-accent",children:c.jsx(o,{className:"size-5"})},t))})}const v$="/__l5e/assets-v1/e8984f02-b5c9-4536-b27a-bdd90b475d6e/google-play-badge.png",w$={url:v$},x$="/__l5e/assets-v1/2c4b8940-884d-4956-af54-7b0c020a4698/app-store-badge.png",E$={url:x$},S$=[{name:"Google Play",href:"https://play.google.com/store/apps/details?id=com.eldhub.logbook&hl=en_US",src:w$.url},{name:"App Store",href:"https://apps.apple.com/us/app/eld-hub/id6737604180",src:E$.url}],k$={sm:"h-10",md:"h-12",lg:"h-14"};function D$({className:e,size:t="md"}){return c.jsx("div",{className:e,children:S$.map(({name:n,href:o,src:s})=>c.jsx("a",{href:o,target:"_blank",rel:"noopener noreferrer","aria-label":`Download ELD HUB on ${n}`,className:"inline-flex shrink-0 items-center justify-center transition-transform duration-200 hover:-translate-y-0.5 focus:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2",children:c.jsx("img",{src:s,alt:`Download ELD HUB on ${n}`,width:383,height:114,className:`${k$[t]} w-auto object-contain`})},n))})}const Ee={registration:"https://portal.goeldhub.com/registration",login:"https://portal.goeldhub.com/login",fuel:"https://go.atob.com/eldhub",factoring:"https://link.apisystem.tech/widget/form/NavJqhFz8cynEzVGWdm3",capital:"https://go.mypartner.i
41o/business-financing/?ref=001Qk00000bypdRIAQ",freight:"https://rfpfreight.com/login?mode=signup",insurance:"https://api.leadconnectorhq.com/widget/form/ho3Gp7Om09BUPhKCrEUG?notrack=true",phone:"tel:+13024041177",email:"mailto:[email protected]",site:"https://goeldhub.com",bookACall:"https://api.leadconnectorhq.com/widget/bookings/meetrndhub"},Lf="Start 14-day free trial",Af="4 quick steps — personal details, company info (USDOT number and time zone required), billing address, done. About 2 minutes.",T$="No USDOT number yet? Call 302-404-1177 and we will get your account set up manually.";function X8(e){const t=e??(typeof window<"u"?window.location.pathname:""),n=new URLSearchParams;t&&n.set("src",t);try{for(const[s,u]of Object.entries(kE()))(!Rc()||na())&&["gclid","msclkid","fbclid","utm_source","utm_medium","utm_campaign","utm_term","utm_content","ft_source"].includes(s)||u&&n.set(s,u)}catch{}const o=n.toString();return o?`${Ee.registration}?${o}`:Ee.registration}const L$=()=>C(()=>import("./index-C2faC4Gq.js"),__vite__mapDeps([0,1,2,3,4])),A$=R()({component:A(L$,"component"),head:()=>({meta:[{title:"ELD Hub — $15/Truck ELD for Small Fleets, No Contract"},{name:"description",content:"ELD Hub is the FMCSA-registered ELD for 1–20 truck fleets: $15/truck/month, no contract, PT-30 or IOSiX hardware $150 in stock, Highway-ready. Start a 14-day free trial."},{property:"og:title",content:"ELD Hub — $15/Truck ELD for Small Fleets, No Contract"},{property:"og:description",content:"FMCSA-registered ELD at $15/truck/month, plus factoring, fuel, capital and dispatch — built for 1–20 truck fleets."},{property:"og:image",content:"https://goeldhub.com/og-image.jpg"},{property:"og:image:width",content:"1200"},{property:"og:image:height",content:"630"},{property:"og:image:alt",content:"ELD Hub — the operating system for small trucking fleets."},{property:"og:url",content:"https://goeldhub.com/"},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"Small Trucking Fleet Management Platform | ELD HUB"},{name:"twitter:description",content:"FMCSA-registered ELD at $15/truck/month, plus factoring, fuel, capital and dispatch — built for 1–20 truck fleets."},{name:"twitter:image",content:"https://goeldhub.com/og-image.jpg"}],links:[{rel:"canonical",href:"https://goeldhub.com/"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:r2.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"ItemList",name:"ELD Hub — key pages",itemListElement:[{"@type":"SiteNavigationElement",position:1,name:"Pricing",url:"https://goeldhub.com/eld-pricing"},{"@type":"SiteNavigationElement",position:2,name:"Hardware",url:"https://goeldhub.com/hardware"},{"@type":"SiteNavigationElement",position:3,name:"Compare",url:"https://goeldhub.com/vs"},{"@type":"SiteNavigationElement",position:4,name:"Blog",url:"https://goeldhub.com/blog"},{"@type":"SiteNavigationElement",position:5,name:"Login",url:"https://goeldhub.com/eld-hub-login"},{"@type":"SiteNavigationElement",position:6,name:"Contact",url:"https://goeldhub.com/contact"}]})}]})}),_$=[{id:"eld",tag:"Included · ELD",Icon:c2,title:"$15/mo per truck",headline:"One subscription unlocks everything below.",desc:"Flat $15 per truck per month. FMCSA registered. Works with PT-30 and IOSiX. RFP Freight unlimited now included.",bullet:"Your $15/mo key to every service",cta:"Start 14-day free trial",href:Ee.registration,color:"from-[oklch(0.55_0.18_255)] to-[oklch(0.35_0.12_240)]"},{id:"fuel",tag:"Included · Fuel",Icon:O2,title:"Save up to $2/gal",headline:"AtoB card. 4,200+ truck stops.",desc:"TA, Petro, Love's, Kwik Trip, Speedway. 99% station acceptance. No extra membership fee.",bullet:"Unlocked with your $15/mo subscription",cta:"Activate Fuel Card",href:Ee.fuel,color:"from-[oklch(0.55_0.17_258)] to-[oklch(0.7_0.14_252)]"},{id:"factoring",tag:"Included · Factor",Icon:m2,title:"1 to 2% · 24h pay",headline:"Paid in 24 hours. No reserves.",desc:"No ACH fees. No invoice fees. No monthly minimums. Activated from your ELD HUB account.",bullet:"Unlocked with your $15/mo subscription",cta:"Activate Factoring",href:Ee.factoring,color:"from-[oklch(0.65_0.17_150)] to-[oklch(0.5_0.15_170)]"},{id:"capital",tag:"Included · Capital",Icon:RE,title:"75+ lenders",headline:"Capital when you need it.",desc:"Fuel, repairs, growth. One application, 75 lenders compete for you. No extra signup.",bullet:"Unlocked with your $15/mo subscription",cta:"Apply for Funding",href:Ee.capital,color:"from-[oklch(0.55_0.2_295)] to-[oklch(0.4_0.15_280)]"},{id:"drivers",tag:"Included · Drivers",Icon:i$,title:"Vetted CDL drivers",headline:"Stop chasing recruiters.",desc:"Exclusive driver leads matched for small fleets. Ready to roll. Included in your membership.",bullet:"Unlocked with your $15/mo subscription",cta:"Book veteran CDL driver call",href:Ee.bookACall,color:"from-[oklch(0.7_0.18_30)] to-[oklch(0.55_0.2_15)]"},{id:"insurance",tag:"Included · Insure",Icon:t$,title:"Lower premiums",headline:"Real driver data. Lower rates.",desc:"We use your compliance score, not generic quotes, to drop premiums. No separate broker fee.",bullet:"Unlocked with your $15/mo subscription",cta:"Get Quote",href:Ee.insurance,color:"from-[oklch(0.55_0.15_220)] to-[oklch(0.35_0.12_250)]"}];function jt(){const[e,t]=ae.useState(!1),n=[{to:"/eld-pricing",label:"Pricing"},{to:"/hardware",label:"Hardware"},{to:"/vs",label:"Compare"},{to:"/blog",label:"Blog"},{to:"/eld-hub-login",label:"Login"},{to:"/contact",label:"Contact"}];return c.jsxs("header",{className:"sticky top-0 z-40 border-b border-border/70 bg-background/80 shadow-[0_1px_0_0_hsl(var(--border)/0.6)] backdrop-blur-xl supports-[backdrop-filter]:bg-background/70",children:[c.jsxs("div",{className:"mx-auto flex max-w-7xl flex-nowrap items-center justify-between gap-4 px-4 py-2",children:[c.jsxs("a",{href:Ee.site,className:"flex min-w-0 items-center gap-2.5","aria-label":"ELD HUB home",children:[c.jsxs("span",{className:"flex h-28 items-center",children:[c.jsx("img",{src:IE.url,alt:"ELD HUB",className:"h-24 w-auto dark:hidden",loading:"eager",fetchPriority:"high"}),c.jsx("img",{src:OE.url,alt:"ELD HUB",className:"hidden h-24 w-auto dark:inline"})]}),c.jsx("span",{className:"hidden rounded-full border border-border bg-muted/60 px-2.5 py-1 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground xl:inline",children:"Fleet Advisors"})]}),c.jsx("nav",{className:"hidden flex-nowrap items-center gap-4 whitespace-nowrap text-sm font-medium text-muted-foreground lg:flex",children:n.map(o=>c.jsxs(W,{to:o.to,className:"group relative py-1 transition hover:text-foreground",children:[o.label,c.jsx("span",{className:"pointer-events-none absolute inset-x-0 -bottom-0.5 mx-auto h-0.5 w-0 rounded-full bg-accent transition-all duration-300 group-hover:w-full"})]},o.to))}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("a",{href:Ee.login,target:"_blank",rel:"noopener noreferrer",className:"hidden shrink-0 rounded-lg border border-border px-3 py-2 text-sm font-semibold text-foreground transition hover:bg-muted xl:inline-flex",children:"Login"}),c.jsxs("a",{href:Ee.registration,className:"group inline-flex shrink-0 items-center gap-1.5 rounded-lg bg-accent-gradient px-4 py-2 text-sm font-bold text-accent-foreground shadow-accent ease-expo transition hover:scale-[1.04] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-background",children:[c.jsx(yt,{className:"size-4"}),"Start 14-day free trial",c.jsx(at,{className:"size-4 transition-transform group-hover:translate-x-0.5"})]}),c.jsxs("button",{type:"button",onClick:()=>t(o=>!o),className:"relative grid size-10 shrink-0 place-items-center rounded-lg border border-border text-foreground xl:hidden","aria-label":"Toggle menu","aria-expanded":e,children:[c.jsx("span",{className:`absolute h-0.5 w-5 bg-current transition-all duration-300 ${e?"rotate-45":"-translate-y-1.5"}`}),c.jsx("span",{className:`absolute h-0.5 w-5 bg-current transition-all duration-200 ${e?"opacity-0":"opacity-100"}`}),c.jsx("span",{className:`absolute h-0.5 w-5 bg-current transition-all duration-300 ${e?"-rotate-45":"translate-y-1.5"}`})]})]})]}),e&&c.jsx("div",{className:"border-t border-border bg-background xl:hidden",children:c.jsxs("nav",{className:"mx-auto flex max-w-7xl flex-col px-4 py-2 text-sm font-semibold",children:[n.map(o=>c.jsx(W,{to:o.to,onClick:()=>t(!1),className:"border-b border-border/60 py-3 text-foreground last:border-b-0",children:o.label},o.to)),c.jsxs("div",{className:"mt-3 flex flex-col gap-2 pb-2",children:[c.jsxs("a",{href:Ee.registration,onClick:()=>t(!1),className:"inline-flex items-center justify-center gap-1.5 rounded-lg bg-accent-gradient px-4 py-3 text-sm font-bold text-accent-foreground shadow-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-background",children:[c.jsx(yt,{className:"size-4"}),"Start 14-day free trial",c.jsx(at,{className:"size-4"})]}),c.jsxs("a",{href:Ee.phone,className:"inline-flex items-center justify-center gap-2 rounded-lg border border-border bg-card px-4 py-3 text-sm font-bold text-primary",children:[c.jsx(Df,{className:"size-4 text-accent"}),c.jsx("span",{className:"tabular-nums",children:"302-404-1177"})]}),c.jsx("a",{href:Ee.login,target:"_blank",rel:"noopener noreferrer",onClick:()=>t(!1),className:"inline-flex items-center justify-center rounded-lg border border-border bg-card px-4 py-3 text-sm font-semibold text-foreground",children:"Login"})]})]})})]})}function qt(){return c.jsxs("footer",{className:"border-t border-border bg-background pb-10",children:[c.jsxs("div",{className:"mx-auto grid max-w-7xl gap-10 px-4 py-12 md:grid-cols-[1.2fr_2fr]",children:[c.jsxs("div",{children:[c.jsxs("a",{href:Ee.site,className:"flex h-24 w-fit items-center","aria-label":"ELD HUB",children:[c.jsx("img",{src:IE.url,alt:"ELD HUB",className:"h-24 w-auto dark:hidden"}),c.jsx("img",{src:OE.url,alt:"ELD HUB",className:"hidden h-24 w-auto dark:inline"})]}),c.jsx("p",{className:"mt-3 max-w-xs text-sm text-muted-foreground",children:"One platform built for small trucking companies. Big-fleet power, small-fleet price."}),c.jsxs("div",{className:"mt-4 flex flex-col gap-2 text-sm",children:[c.jsxs("a",{href:Ee.phone,className:"inline-flex items-center gap-2 font-semibold text-primary hover:text-accent",children:[c.jsx(Df,{className:"size-4 text-accent"})," 302-404-1177"]}),c.jsxs("a",{href:Ee.email,className:"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground",children:[c.jsx(B2,{className:"size-4"}),c.jsx("span",{children:"[email protected]"})]}),c.jsxs("span",{className:"inline-flex items-center gap-2 text-muted-foreground",children:[c.jsx(Xc,{className:"size-4"})," 303 E Main Street, Barrington, IL 60010"]})]}),c.jsx(b$,{className:"mt-5 flex flex-wrap gap-3"}),c.jsx(D$,{size:"sm",className:"mt-4 flex flex-wrap items-center gap-3"})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-6 text-sm lg:grid-cols-4",children:[c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Services"}),c.jsx("ul",{className:"mt-3 space-y-2",children:_$.map(e=>c.jsx("li",{children:c.jsxs("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-foreground hover:text-accent",children:[c.jsx(e.Icon,{className:"size-3.5 text-accent"})," ",e.tag]})},e.id))})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Hardware"}),c.jsxs("ul",{className:"mt-3 space-y-2",children:[c.jsx("li",{children:c.jsx(W,{to:"/hardware",className:"text-foreground hover:text-accent",children:"All ELD Hardware"})}),c.jsx("li",{children:c.jsx(W,{to:"/hardware/pt30-eld",className:"text-foreground hover:text-accent",children:"PT-30 ELD Device"})}),c.jsx("li",{children:c.jsx(W,{to:"/hardware/pt30-installation-guide",className:"text-foreground hover:text-accent",children:"PT-30 Installation Guide"})}),c.jsx("li",{children:c.jsx(W,{to:"/hardware/iosix-eld",className:"text-foreground hover:text-accent",children:"IOSiX ELD"})}),c.jsx("li",{children:c.jsx(W,{to:"/hardware/obd2-eld",className:"text-foreground hover:text-accent",children:"OBD-II ELD Overview"})})]})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Getting Started"}),c.jsxs("ul",{className:"mt-3 space-y-2",children:[c.jsx("li",{children:c.jsx(W,{to:"/new-authority-eld",className:"text-foreground hover:text-accent",children:"New Authority ELD"})}),c.jsx("li",{children:c.jsx(W,{to:"/trucking-startup-cost-calculator",className:"text-foreground hover:text-accent",children:"Startup Cost Calculator"})}),c.jsx("li",{children:c.jsx(W,{to:"/new-carrier-checklist",className:"text-foreground hover:text-accent",children:"90-Day Launch Checklist"})}),c.jsx("li",{children:c.jsx(W,{to:"/eld-mandate-guide",className:"text-foreground hover:text-accent",children:"ELD Mandate Guide"})}),c.jsx("li",{children:c.jsx(W,{to:"/eld-exemptions",className:"text-foreground hover:text-accent",children:"ELD Exemptions"})})]})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Pricing & Fleet Types"}),c.jsxs("ul",{className:"mt-3 space-y-2",children:[c.jsx("li",{children:c.jsx(W,{to:"/eld-pricing",className:"text-foreground hover:text-accent",children:"Pricing ($15/mo)"})}),c.jsx("li",{children:c.jsx(W,{to:"/owner-operator-eld",className:"text-foreground hover:text-accent",children:"Owner-Operator ELD"})}),c.jsx("li",{children:c.jsx(W,{to:"/best-eld-small-fleets",className:"text-foreground hover:text-accent",children:"Small Fleet ELD"})}),c.jsx("li",{children:c.jsx(W,{to:"/eld-for-1-truck",className:"text-foreground hover:text-accent",children:"ELD for 1 Truck"})}),c.jsx("li",{children:c.jsx(W,{to:"/cheap-eld",className:"text-foreground hover:text-accent",children:"Cheapest ELD"})}),c.jsx("li",{children:c.jsx(W,{to:"/sprinter-van-eld",className:"text-foreground hover:text-accent",children:"Sprinter Van ELD"})}),c.jsx("li",{children:c.jsx(W,{to:"/box-truck-eld",className:"text-foreground hover:text-accent",children:"Box Truck ELD"})}),c.jsx("li",{children:c.jsx(W,{to:"/eld-under-10000-lbs",className:"text-foreground hover:text-accent",children:"ELD Under 10,000 lbs"})})]})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Compliance"}),c.jsxs("ul",{className:"mt-3 space-y-2",children:[c.jsx("li",{children:c.jsx(W,{to:"/hos-rules",className:"text-foreground hover:text-accent",children:"HOS Rules 2026"})}),c.jsx("li",{children:c.jsx(W,{to:"/dot-inspection-eld",className:"text-foreground hover:text-accent",children:"DOT Inspection Checklist"})}),c.jsx("li",{children:c.jsx(W,{to:"/eld-violations-penalties",className:"text-foreground hover:text-accent",children:"Violations & Penalties"})}),c.jsx("li",{children:c.jsx(W,{to:"/fmcsa-registered-eld-list",className:"text-foreground hover:text-accent",children:"FMCSA ELD List"})}),c.jsx("li",{children:c.jsx(W,{to:"/eld-cab-card",className:"text-foreground hover:text-accent",children:"ELD Cab Card"})})]})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Highway & Brokers"}),c.jsxs("ul",{className:"mt-3 space-y-2",children:[c.jsx("li",{children:c.jsx(W,{to:"/eld-for-highway",className:"text-foreground hover:text-accent",children:"ELD for Broker Vetting"})}),c.jsx("li",{children:c.jsx(W,{to:"/highway-eld-integration",className:"text-foreground hover:text-accent",children:"Highway ELD Integration"})}),c.jsx("li",{children:c.jsx(W,{to:"/highway-carrier-vetting",className:"text-foreground hover:text-accent",children:"Highway Carrier Vetting"})}),c.jsx("li",{children:c.jsx(W,{to:"/broker-requires-eld",className:"text-foregr
41ound hover:text-accent",children:"Broker Requires an ELD"})})]})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Switch & Compare"}),c.jsxs("ul",{className:"mt-3 space-y-2",children:[c.jsx("li",{children:c.jsx(W,{to:"/switch-eld-provider",className:"text-foreground hover:text-accent",children:"Switch ELD Provider"})}),c.jsx("li",{children:c.jsx(W,{to:"/cancel-eld-contract",className:"text-foreground hover:text-accent",children:"Cancel an ELD Contract"})}),c.jsx("li",{children:c.jsx(W,{to:"/vs",className:"text-foreground hover:text-accent",children:"All ELD Comparisons"})}),c.jsx("li",{children:c.jsx(W,{to:"/vs/motive-alternative",className:"text-foreground hover:text-accent",children:"Motive Alternative"})}),c.jsx("li",{children:c.jsx(W,{to:"/vs/samsara-alternative",className:"text-foreground hover:text-accent",children:"Samsara Alternative"})}),c.jsx("li",{children:c.jsx(W,{to:"/vs/tteld-vs-eld-hub",className:"text-foreground hover:text-accent",children:"TT ELD vs ELD Hub"})}),c.jsx("li",{children:c.jsx(W,{to:"/vs/ezlogz-vs-eld-hub",className:"text-foreground hover:text-accent",children:"EZ Logz vs ELD Hub"})}),c.jsx("li",{children:c.jsx(W,{to:"/vs/gpstab-vs-eld-hub",className:"text-foreground hover:text-accent",children:"GPS Tab vs ELD Hub"})}),c.jsx("li",{children:c.jsx(W,{to:"/vs/factoreld-vs-eld-hub",className:"text-foreground hover:text-accent",children:"Factor ELD vs ELD Hub"})})]})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground",children:"Account & Resources"}),c.jsxs("ul",{className:"mt-3 space-y-2",children:[c.jsx("li",{children:c.jsx(W,{to:"/eld-hub-login",className:"text-foreground hover:text-accent",children:"Login & Registration"})}),c.jsx("li",{children:c.jsx("a",{href:Ee.registration,className:"text-foreground hover:text-accent",children:"Register"})}),c.jsx("li",{children:c.jsx(W,{to:"/blog",className:"text-foreground hover:text-accent",children:"Blog"})})]})]})]})]}),c.jsx("div",{className:"border-t border-border",children:c.jsxs("div",{className:"mx-auto flex max-w-7xl flex-col items-center justify-between gap-3 px-4 py-6 text-center text-xs text-muted-foreground sm:flex-row",children:[c.jsxs("span",{children:["© ",new Date().getFullYear()," ELD HUB LLC. Built for the small trucking revolution."]}),c.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-4 gap-y-2",children:[c.jsx(W,{to:"/terms-and-conditions",className:"hover:text-accent transition-colors",children:"Terms"}),c.jsx(W,{to:"/privacy-policy",className:"hover:text-accent transition-colors",children:"Privacy"}),c.jsxs("a",{href:"https://eld.fmcsa.dot.gov/List?eldIdentifier=TEST",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 hover:text-accent transition-colors",children:[c.jsx(ia,{className:"size-3.5 text-accent"})," FMCSA-registered ELD provider"]})]})]})})]})}const C$=()=>C(()=>import("./route-DO_RtYs2.js"),[]),R$=R()({beforeLoad:async()=>{const{data:e,error:t}=await pE.auth.getUser();if(t||!e.user)throw ea({to:"/auth"});return{user:e.user}},component:A(C$,"component")}),I$={brand:"Alfa ELD",slug:"alfa-eld-login",loginUrl:"https://alfaeld.com/",compareTo:"/best-eld-small-fleets",intro:"Trouble signing in to Alfa ELD? Try the fixes below. If you're already frustrated with support gaps or feature limits, ELD Hub is a $15/truck FMCSA-registered alternative that bundles IFTA, freight, factoring, and fuel — no contract.",tips:[{t:"App won't load logs",b:"Force-close the Alfa ELD app, confirm the phone has data or Wi-Fi, and reopen. Persistent load errors usually clear after a re-install."},{t:"Bluetooth not pairing",b:"Toggle Bluetooth off/on, unplug and re-seat the PT-30 device in the diagnostic port, then reopen the app."},{t:"Forgot password",b:"Use the reset link on the sign-in screen. Reset emails from Alfa ELD sometimes land in spam — check both folders."},{t:"Fleet admin locked out",b:"Contact your Alfa ELD admin. If your admin has left the company, resetting the master account can take days over email."}],faqs:[{q:"Where do I log in to Alfa ELD?",a:"Drivers use the Alfa ELD mobile app; fleet managers log in at alfaeld.com. There is no separate driver web portal."},{q:"Why is my Alfa ELD showing 'no connection'?",a:"That's almost always the Bluetooth pairing between the phone and the PT-30 device. Re-seat the device and re-pair from the app's settings."},{q:"Can I switch from Alfa ELD without buying new hardware?",a:"Yes — Alfa ELD uses the PT-30 device, which is compatible with ELD Hub. You keep the hardware, we ship a new SIM/plan, and you're live in under 10 minutes."},{q:"Is ELD Hub cheaper than Alfa ELD?",a:"Alfa ELD's base plan is similar in price, but ELD Hub includes IFTA reporting, freight tools, and factoring/fuel discounts in the $15/truck rate — usually 30–40% cheaper all-in."},{q:"How fast is the switch?",a:"Under 15 minutes per truck. You keep the PT-30, we send login credentials, and drivers pair the app the same day."}]},O$={default:"https://goeldhub.com/og-image.jpg",hardware:"https://goeldhub.com/og-hardware.jpg",compliance:"https://goeldhub.com/og-compliance.jpg",comparison:"https://goeldhub.com/og-comparison.jpg",switch:"https://goeldhub.com/og-switch.jpg",states:"https://goeldhub.com/og-states.jpg"};function de(e,t){const n=O$[e];return[{property:"og:image",content:n}
41,{property:"og:image:width",content:"1200"},{property:"og:image:height",content:"630"},{property:"og:image:alt",content:t},{name:"twitter:image",content:n},{name:"twitter:card",content:"summary_large_image"}]}function Mt(){const[e,t]=ae.useState(!1),[n,o]=ae.useState(!1);return ae.useEffect(()=>{if(typeof window>"u")return;if(sessionStorage.getItem("sticky-cta-dismissed")==="1"){o(!0);return}const s=()=>{const u=window.scrollY+window.innerHeight,d=document.documentElement.scrollHeight;t(u/d>.4)};return window.addEventListener("scroll",s,{passive:!0}),s(),()=>window.removeEventListener("scroll",s)},[]),n?null:c.jsx("div",{className:`pointer-events-none fixed inset-x-0 bottom-4 z-40 hidden justify-center px-4 transition-all duration-300 sm:flex ${e?"translate-y-0 opacity-100":"translate-y-8 opacity-0"}`,"aria-hidden":!e,children:c.jsxs("div",{className:"pointer-events-auto flex items-center gap-4 rounded-2xl border border-border bg-background/95 px-4 py-3 shadow-2xl backdrop-blur",children:[c.jsxs("div",{className:"flex items-center gap-3 text-sm",children:[c.jsx("span",{className:"hidden font-bold text-foreground md:inline",children:"$15/truck/mo"}),c.jsx("span",{className:"hidden text-muted-foreground md:inline",children:"·"}),c.jsx("span",{className:"text-muted-foreground",children:"14-day free trial · No contract · Cancel anytime"})]}),c.jsxs("a",{href:Ee.registration,onClick:()=>ur("portal_handoff","sticky_bar",typeof window<"u"?window.location.pathname:""),className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-5 py-2.5 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," Start 14-day free trial ",c.jsx(at,{className:"size-4"})]}),c.jsx("button",{type:"button",onClick:()=>{sessionStorage.setItem("sticky-cta-dismissed","1"),o(!0)},"aria-label":"Dismiss",className:"rounded-full p-1 text-muted-foreground hover:bg-secondary hover:text-foreground",children:c.jsx(c$,{className:"size-4"})})]})})}function _f({className:e="",headline:t="Start in 60 seconds",subhead:n="$15/truck/month. No contract. FMCSA-registered ELD you can activate today — and it starts with a 14-day free trial.",variant:o="default"}){function s(){const u=typeof window<"u"?window.location.pathname:"";ur("portal_handoff","quickstart",u)}return c.jsx("section",{className:`relative overflow-hidden rounded-2xl border border-accent/30 bg-gradient-to-br from-accent/10 via-card to-card p-6 shadow-accent sm:p-8 ${e}`,"aria-label":"Create your ELD Hub account",children:c.jsxs("div",{className:"grid gap-6 md:grid-cols-[1.1fr_1fr] md:items-center",children:[c.jsxs("div",{children:[c.jsxs("div",{className:"inline-flex items-center gap-1.5 rounded-full border border-accent/30 bg-accent/10 px-2.5 py-1 text-[11px] font-bold uppercase tracking-[0.16em] text-accent",children:[c.jsx(yt,{className:"size-3"})," Free to start"]}),c.jsx("h2",{className:"mt-3 text-2xl font-bold tracking-tight text-foreground sm:text-3xl",children:t}),c.jsx("p",{className:"mt-2 text-sm text-muted-foreground sm:text-base",children:n}),o==="default"&&c.jsxs("ul",{className:"mt-4 grid gap-2 text-sm text-foreground sm:grid-cols-2",children:[c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(ia,{className:"size-4 text-accent"})," FMCSA-registered"]}),c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(kf,{className:"size-4 text-accent"})," 5-minute setup"]}),c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," Keep your PT-30 / IOSiX"]}),c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," Cancel anytime"]})]})]}),c.jsxs("div",{className:"flex flex-col gap-3",children:[c.jsxs("a",{href:Ee.registration,onClick:s,className:"inline-flex items-center justify-center gap-2 rounded-lg bg-accent-gradient px-5 py-4 text-base font-bold text-accent-foreground shadow-accent transition hover:scale-[1.02] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-background",children:[c.jsx(yt,{className:"size-4"}),"Start 14-day free trial",c.jsx(at,{className:"size-4"})]}),c.jsxs("p",{className:"text-center text-[11px] text-muted-foreground",children:[Af," Month-to-month — cancel anytime."]})]})]})})}const $$=2026,N$=[{provider:"ELD Hub",monthly:15,contract:"None",hardware:150,tco3yr:690,hidden:"None disclosed"},{provider:"Motive (KeepTruckin)",monthly:35,contract:"36 mo",hardware:150,tco3yr:1410,hidden:"Data plan, per-driver seat"},{provider:"Samsara",monthly:45,contract:"36 mo",hardware:200,tco3yr:1820,hidden:"Camera upsell, API access"},{provider:"Geotab",monthly:32,contract:"36 mo",hardware:180,tco3yr:1332,hidden:"MyGeotab add-ons, integrator fees"},{provider:"Omnitracs",monthly:42,contract:"36 mo",hardware:220,tco3yr:1732,hidden:"Support tiers, activation"},{provider:"Verizon Connect",monthly:38,contract:"36 mo",hardware:175,tco3yr:1543,hidden:"Cancellation fee 100% of remaining"},{provider:"EROAD",monthly:40,contract:"36 mo",hardware:195,tco3yr:1635,hidden:"Ehubo hardware lock-in"},{provider:"TT ELD",monthly:20,contract:"12 mo",hardware:100,tco3yr:820,hidden:"Support paywall"},{provider:"Factor ELD",monthly:22,contract:"12 mo",hardware:120,tco3yr:912,hidden:"Per-truck activation"},{provider:"GPS Tab",monthly:25,contract:"12 mo",hardware:130,tco3yr:1030,hidden:"IFTA reporting extra"},{provider:"EzLogz",monthly:25,contract:"12 mo",hardware:125,tco3yr:1025,hidden:"Fleet dashboard extra"},{provider:"Rand McNally",monthly:39,contract:"36 mo",hardware:250,tco3yr:1654,hidden:"Device-only refunds"},{provider:"Garmin eLog",monthly:0,contract:"N/A",hardware:250,tco3yr:250,hidden:"No fleet dashboard, single-driver only"},{provider:"BigRoad (Fleet Complete)",monthly:30,contract:"36 mo",hardware:165,tco3yr:1245,hidden:"Bundled Fleet Complete upsell"},{provider:"Trimble",monthly:48,contract:"36 mo",hardware:300,tco3yr:2028,hidden:"Enterprise-only, min 20 trucks"}],Cf="2026-09-22";function Ft({question:e,answer:t,updated:n=Cf}){return c.jsxs("div",{className:"mt-8 rounded-xl border border-accent/30 bg-accent/5 p-5",children:[c.jsxs("div",{className:"flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(J2,{className:"size-3.5"})," Quick answer"]}),c.jsx("p",{className:"mt-3 font-semibold text-foreground",children:e}),c.jsx("p",{className:"mt-2 text-[15px] leading-relaxed text-muted-foreground",children:t}),c.jsxs("p",{className:"mt-3 text-xs text-muted-foreground",children:["Last verified"," ",c.jsx("time",{dateTime:n,children:new Date(`${n}T00:00:00Z`).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",timeZone:"UTC"})})," ","by ELD Hub."]})]})}const $E=Cf;function uu({brand:e,className:t=""}){return c.jsxs("div",{className:`rounded-2xl border border-accent/40 bg-gradient-to-br from-accent/10 via-card to-card p-5 shadow-accent sm:p-6 ${t}`,children:[c.jsxs("div",{className:"inline-flex items-center gap-1.5 rounded-full border border-accent/30 bg-accent/10 px-2.5 py-1 text-[11px] font-bold uppercase tracking-[0.16em] text-accent",children:[c.jsx(p2,{className:"size-3"})," Switching to ELD Hub"]}),c.jsxs("h2",{className:"mt-3 text-xl font-bold tracking-tight text-foreground sm:text-2xl",children:["Try ELD Hub free for 14 days",e?` before you leave ${e}`:""]}),c.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Run ELD Hub alongside your current provider for two weeks at no charge, then $15 per truck per month, month-to-month. Re-register a compatible PT-30 or IOSiX you own for free, or buy either for $150 with free shipping. PT-30 includes a cable; IOSiX is device only."}),c.jsx("ul",{className:"mt-4 grid gap-2 text-sm text-foreground sm:grid-cols-2",children:["14 days free — no charge to try it","No contract — cancel anytime","Keep your existing PT-30 / IOSiX","FMCSA-registered ELD"].map(n=>c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(w2,{className:"size-4 shrink-0 text-accent"})," ",n]},n))}),c.jsxs("div",{className:"mt-5 flex flex-wrap items-center gap-3",children:[c.jsxs("a",{href:Ee.registration,onClick:()=>ur("portal_handoff","switch_offer",typeof window<"u"?window.location.pathname:""),className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-5 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.02]",children:["Start 14-day free trial ",c.jsx(at,{className:"size-4"})]}),c.jsx(W,{to:"/switch-free-month",className:"text-sm font-semibold text-accent hover:underline",children:"How switching works →"})]})]})}const H$=15,Yc=150,NE=[{key:"samsara",name:"Samsara",monthly:40,contract:"3–5 year term",exitNote:"100% of remaining contract value",hardware:"Proprietary",deepLink:"/cancel-samsara"},{key:"motive",name:"Motive (KeepTruckin)",monthly:35,contract:"1–3 year term",exitNote:"Remaining balance billed 
41in full",hardware:"Proprietary",deepLink:"/cancel-motive"},{key:"omnitracs",name:"Omnitracs / Solera",monthly:45,contract:"3 year term",exitNote:"Early-termination fee plus hardware return",hardware:"Proprietary",deepLink:"/cancel-omnitracs"},{key:"verizon-connect",name:"Verizon Connect",monthly:38,contract:"3 year term, auto-renews",exitNote:"Remaining term billed, 60-day notice required",hardware:"Proprietary",deepLink:"/cancel-verizon-connect"},{key:"geotab",name:"Geotab",monthly:33,contract:"Reseller contract, often 3 years",exitNote:"Depends on reseller; hardware usually non-refundable",hardware:"Proprietary",deepLink:"/cancel-geotab"},{key:"hos247",name:"HOS247",monthly:25,contract:"Month-to-month or annual",exitNote:"Annual plans prepaid, no refund",hardware:"PT-30",deepLink:"/hos247-login"},{key:"tteld",name:"TT ELD",monthly:25,contract:"Month-to-month",exitNote:"Hardware purchase non-refundable after 30 days",hardware:"PT-30",deepLink:"/cancel-tteld"},{key:"ezlogz",name:"EZLogz",monthly:30,contract:"Month-to-month or annual",exitNote:"Prepaid annual plans are not prorated",hardware:"PT-30",deepLink:"/cancel-ezlogz"},{key:"gpstab",name:"GPSTab",monthly:25,contract:"Month-to-month",exitNote:"Device stays yours; no exit fee",hardware:"PT-30",deepLink:"/gpstab-login"},{key:"bigroad",name:"BigRoad",monthly:30,contract:"Annual term common",exitNote:"Annual commitment billed through end of term",hardware:"IOSiX",deepLink:"/bigroad-login"},{key:"lucid",name:"Lucid ELD",monthly:25,contract:"Month-to-month",exitNote:"No exit fee; hardware is yours",hardware:"PT-30",deepLink:"/lucid-eld-login"},{key:"eld247",name:"ELD 24/7",monthly:25,contract:"Month-to-month",exitNote:"No exit fee reported",hardware:"PT-30",deepLink:"/vs/eld247-vs-eld-hub"},{key:"factoreld",name:"FactorELD",monthly:25,contract:"Month-to-month",exitNote:"No exit fee reported",hardware:"PT-30",deepLink:"/vs/factoreld-vs-eld-hub"},{key:"alfa",name:"Alfa ELD",monthly:25,contract:"Month-to-month",exitNote:"No exit fee reported",hardware:"PT-30",deepLink:"/alfa-eld-login"},{key:"trimble",name:"Trimble",monthly:40,contract:"Multi-year enterprise term",exitNote:"Remaining term typically billed",hardware:"Proprietary",deepLink:"/trimble-eld-login"},{key:"rand-mcnally",name:"Rand McNally",monthly:30,contract:"Annual or multi-year",exitNote:"Hardware purchased upfront, non-refundable",hardware:"Proprietary",deepLink:"/rand-mcnally-eld-login"},{key:"garmin",name:"Garmin eLog",monthly:20,contract:"Device purchase, no subscription tier",exitNote:"Device is yours; no ongoing support",hardware:"Proprietary",deepLink:"/garmin-elog-login"},{key:"eroad",name:"EROAD",monthly:35,contract:"3 year term common",exitNote:"Remaining term billed in full",hardware:"Proprietary",deepLink:"/eroad-eld-login"},{key:"azuga",name:"Azuga",monthly:30,contract:"3 year term",exitNote:"Early cancellation fee applies",hardware:"Proprietary",deepLink:"/azuga-eld-login"},{key:"nextraq",name:"Nextraq",monthly:32,contract:"3 year term",exitNote:"Remaining term billed",hardware:"Proprietary",deepLink:"/nextraq-login"},{key:"isaac",name:"ISAAC Instruments",monthly:45,contract:"Multi-year enterprise term",exitNote:"Negotiated exit; hardware returned",hardware:"Proprietary",deepLink:"/isaac-instruments-login"},{key:"one-step-gps",name:"One Step GPS",monthly:26,contract:"Month-to-month",exitNote:"No contract; device may be leased",hardware:"Proprietary",deepLink:"/one-step-gps-login"},{key:"simple-eld",name:"Simple ELD",monthly:25,contract:"Month-to-month",exitNote:"Hardware purchase non-refundable",hardware:"PT-30",deepLink:"/simple-eld-login"},{key:"blue-star",name:"Blue Star ELD",monthly:25,contract:"Month-to-month",exitNote:"Hardware purchase non-refundable",hardware:"PT-30",deepLink:"/blue-star-eld-login"},{key:"master-eld",name:"Master ELD",monthly:25,contract:"Month-to-month",exitNote:"No exit fee reported",hardware:"PT-30",deepLink:"/master-eld-login"},{key:"x-eld",name:"X ELD",monthly:25,contract:"Month-to-month",exitNote:"No exit fee reported",hardware:"PT-30",deepLink:"/x-eld-login"},{key:"eld-mandate-plus",name:"ELD Mandate Plus",monthly:25,contract:"Annual plan common",exitNote:"Prepaid annual plans are not refunded",hardware:"PT-30",deepLink:"/eld-mandate-plus-login"},{key:"forward-thinking",name:"Forward Thinking Systems",monthly:35,contract:"Annual or multi-year",exitNote:"Remaining term typically billed",hardware:"Proprietary",deepLink:"/forward-thinking-eld-login"},{key:"other",name:"Another provider",monthly:30,contract:"Varies",exitNote:"Check your agreement for notice period and term",deepLink:"/switch-eld-provider"},{key:"none",name:"I don't have an ELD yet",monthly:0,contract:"None",exitNote:"Nothing to cancel — you can start today",deepLink:"/eld-mandate-guide"}];function P$(e){if(!e)return;const t=e.toLowerCase().replace(/[^a-z0-9]/g,"");return NE.find(n=>{const o=n.name.toLowerCase().replace(/[^a-z0-9]/g,""),s=n.key.replace(/[^a-z0-9]/g,"");return o===t||s===t||o.startsWith(t)||t.startsWith(s)})}const j$=[{key:"PT-30",label:"PT-30",note:"If compatible — $0 to re-register"},{key:"IOSiX",label:"IOSiX",note:"If compatible — $0 to re-register"},{key:"other",label:"Another device",note:`PT-30 or IOSiX at $${Yc}/device`},{key:"none",label:"No device yet",note:`PT-30 or IOSiX at $${Yc}/device`}];
41function Fo(e){return`$${e.toLocaleString("en-US")}`}function du({brand:e,className:t="",heading:n="See what switching saves you"}){const o=P$(e),[s,u]=ae.useState(o?1:0),[d,p]=ae.useState(o),[m,g]=ae.useState(o?.hardware==="PT-30"||o?.hardware==="IOSiX"?o.hardware:void 0),[b,y]=ae.useState(3),w=ae.useMemo(()=>{const E=(d?.monthly??0)*b,D=H$*b,L=m==="PT-30"||m==="IOSiX",O=L?0:Yc*b;return{current:E,hub:D,monthlySaving:Math.max(E-D,0),annualSaving:Math.max(E-D,0)*12,keepsHardware:L,hardwareCost:O}},[d,m,b]),x=(()=>{const E=new URLSearchParams({src:typeof window<"u"?window.location.pathname:"/switch-now",from:d?.key??"unknown",hardware:m??"unknown",trucks:String(b),utm_source:"switch_wizard"});return`${Ee.registration}?${E.toString()}`})();function k(){ur("registration_click",`wizard|${d?.key??"unknown"}|${m??"unknown"}|${b}`)}return c.jsxs("section",{className:`overflow-hidden rounded-2xl border border-accent/30 bg-gradient-to-br from-accent/10 via-card to-card shadow-accent ${t}`,"aria-label":"Switch to ELD Hub",children:[c.jsx("div",{className:"border-b border-border/60 px-6 py-4",children:c.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[c.jsx("h2",{className:"text-lg font-bold text-foreground sm:text-xl",children:n}),c.jsx("ol",{className:"flex items-center gap-2 text-[11px] font-bold uppercase tracking-[0.14em]",children:["Provider","Hardware","Savings"].map((E,D)=>c.jsxs("li",{className:D===s?"rounded-full bg-accent/15 px-2.5 py-1 text-accent":"px-2.5 py-1 text-muted-foreground",children:[D+1,". ",E]},E))})]})}),c.jsxs("div",{className:"px-6 py-6",children:[s===0&&c.jsxs("div",{children:[c.jsxs("p",{className:"inline-flex items-center gap-2 text-sm font-semibold text-foreground",children:[c.jsx(mn,{className:"size-4 text-accent"})," Who are you leaving?"]}),c.jsx("div",{className:"mt-4 grid gap-2 sm:grid-cols-3",children:NE.map(E=>c.jsx("button",{type:"button",onClick:()=>{p(E),(E.hardware==="PT-30"||E.hardware==="IOSiX")&&g(E.hardware),u(1),ur("switch_wizard_step",`provider|${E.key}`)},className:`rounded-lg border px-3 py-2.5 text-left text-sm font-medium transition hover:border-accent hover:bg-accent/5 ${d?.key===E.key?"border-accent bg-accent/10 text-foreground":"border-border bg-card text-foreground"}`,children:E.name},E.key))})]}),s===1&&c.jsxs("div",{children:[c.jsxs("p",{className:"inline-flex items-center gap-2 text-sm font-semibold text-foreground",children:[c.jsx(AE,{className:"size-4 text-accent"})," What hardware is in your trucks?"]}),c.jsx("div",{className:"mt-4 grid gap-2 sm:grid-cols-4",children:j$.map(E=>c.jsxs("button",{type:"button",onClick:()=>{g(E.key),u(2),ur("switch_wizard_step",`hardware|${E.key}`)},className:`rounded-lg border px-3 py-3 text-left transition hover:border-accent hover:bg-accent/5 ${m===E.key?"border-accent bg-accent/10":"border-border bg-card"}`,children:[c.jsx("span",{className:"block text-sm font-semibold text-foreground",children:E.label}),c.jsx("span",{className:"mt-0.5 block text-xs text-muted-foreground",children:E.note})]},E.key))}),c.jsxs("button",{type:"button",onClick:()=>u(0),className:"mt-4 inline-flex items-center gap-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground",children:[c.jsx(Dw,{className:"size-3.5"})," Change provider"]})]}),s===2&&d&&c.jsxs("div",{children:[c.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[c.jsxs("p",{className:"inline-flex items-center gap-2 text-sm font-semibold text-foreground",children:[c.jsx(RE,{className:"size-4 text-accent"})," How many trucks?"]}),c.jsx("div",{className:"flex items-center gap-1",children:[1,2,3,5,10,20].map(E=>c.jsx("button",{type:"button",onClick:()=>y(E),className:`rounded-md border px-2.5 py-1 text-sm font-semibold transition ${b===E?"border-accent bg-accent/15 text-accent":"border-border bg-card text-muted-foreground hover:text-foreground"}`,children:E},E))})]}),c.jsxs("div",{className:"mt-5 grid gap-3 sm:grid-cols-2",children:[c.jsxs("div",{className:"rounded-xl border border-border bg-card p-4",children:[c.jsxs("div",{className:"text-xs font-bold uppercase tracking-wide text-muted-foreground",children:[d.name," today"]}),c.jsx("div",{className:"mt-1 text-2xl font-bold text-foreground",children:d.monthly?`${Fo(w.current)}/mo`:"—"}),c.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:d.contract}),c.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:d.exitNote})]}),c.jsxs("div",{className:"rounded-xl border border-accent/40 bg-accent/5 p-4",children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-accent",children:"ELD Hub"}),c.jsxs("div",{className:"mt-1 text-2xl font-bold text-foreground",children:[Fo(w.hub),"/mo"]}),c.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:"Month-to-month, no contract, no exit fee."}),c.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:w.keepsHardware?`If compatible, re-register your ${m} free after serial confirmation.`:`PT-30 or IOSiX at ${Fo(Yc)}/device (${Fo(w.hardwareCost)} total), free shipping. PT-30 includes a cable; IOSiX is device only.`})]})]}),w.annualSaving>0&&c.jsxs("p",{className:"mt-4 rounded-lg border border-accent/30 bg-accent/10 px-4 py-3 text-sm font-semibold text-foreground",children:["You save about ",Fo(w.monthlySaving),"/month —"," ",c.jsxs("span",{className:"text-accent",children:[Fo(w.annualSaving)," a year"]})," on"," ",b," ",b===1?"truck":"trucks","."]}),c.jsxs("ul",{className:"mt-4 grid gap-2 text-sm text-foreground sm:grid-cols-2",children:[c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," FMCSA-registered"]}),c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," IFTA + DVIR included"]}),c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," Live the same day"]}),c.jsxs("li",{className:"inline-flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," Cancel anytime"]})]}),c.jsxs("div",{className:"mt-5 flex flex-wrap items-center gap-3",children:[c.jsxs("a",{href:x,target:"_blank",rel:"noopener noreferrer",onClick:k,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3.5 text-base font-bold text-accent-foreground shadow-accent transition hover:scale-[1.02]",children:[c.jsx(yt,{className:"size-4"})," Start 14-day free trial"," ",c.jsx(at,{className:"size-4"})]}),c.jsxs("button",{type:"button",onClick:()=>u(1),className:"inline-flex items-center gap-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground",children:[c.jsx(Dw,{className:"size-3.5"})," Change hardware"]})]}),c.jsx("p",{className:"mt-3 text-[11px] text-muted-foreground",children:"Competitor pricing is a typical small-fleet estimate for comparison, not a quote. Your actual bill is on your invoice."})]})]})]})}const Kc=[{brand:"Motive",path:"/cancel-motive",contract:"36 mo typical",etf:"Remaining balance in full",notice:"30–60 days",match:["motive"]},{brand:"KeepTruckin",path:"/cancel-keeptruckin",contract:"12–36 mo",etf:"Remaining balance",notice:"30–60 days",match:["keeptruckin","keep truckin"]},{brand:"Samsara",path:"/cancel-samsara",contract:"36–60 mo",etf:"100% of remaining value",notice:"60–90 days",match:["samsara"]},{brand:"Omnitracs",path:"/cancel-omnitracs",contract:"36–60 mo",etf:"Remaining fees + hardware buyout",notice:"60–90 days",match:["omnitracs"]},{brand:"Verizon Connect",path:"/cancel-verizon-connect",contract:"36 mo, auto-renews 12 mo",etf:"Remaining value billed 
41in full",notice:"60 days",match:["verizon"]},{brand:"Geotab",path:"/cancel-geotab",contract:"36 mo via reseller",etf:"Reseller-defined",notice:"30–60 days",match:["geotab"]},{brand:"TT ELD",path:"/cancel-tteld",contract:"Month-to-month",etf:"None stated",notice:"Before next billing date",match:["tt eld","tteld"]},{brand:"EZLogz",path:"/cancel-ezlogz",contract:"Month-to-month or annual",etf:"None stated",notice:"Before next billing cycle",match:["ezlogz","ez logz"]},{brand:"EROAD",path:"/cancel-eroad",contract:"24–36 mo",etf:"Remaining subscription balance",notice:"30 days",match:["eroad"]},{brand:"Rand McNally",path:"/cancel-rand-mcnally",contract:"12–36 mo",etf:"Remaining term on subscriptions",notice:"30 days",match:["rand mcnally","rand"]},{brand:"BigRoad (Fleet Complete)",path:"/cancel-bigroad",contract:"36 mo when bundled",etf:"Remaining master agreement",notice:"30–60 days",match:["bigroad","big road","fleet complete"]},{brand:"Trimble",path:"/cancel-trimble",contract:"36 mo enterprise",etf:"Remaining term + hardware credits",notice:"60–90 days",match:["trimble"]},{brand:"PeopleNet",path:"/cancel-peoplenet",contract:"36 mo enterprise",etf:"Remaining term + hardware credits",notice:"60–90 days",match:["peoplenet","people net"]},{brand:"Zonar",path:"/cancel-zonar",contract:"36 mo bundled",etf:"Remaining bundled subscription",notice:"60 days",match:["zonar"]},{brand:"Lytx",path:"/cancel-lytx",contract:"36 mo with cameras",etf:"Remaining camera subscription",notice:"60 days",match:["lytx","drivecam"]},{brand:"ISAAC Instruments",path:"/cancel-isaac-instruments",contract:"36 mo",etf:"Remaining term + install credits",notice:"60–90 days",match:["isaac"]},{brand:"J.J. Keller Encompass",path:"/cancel-jj-keller",contract:"12–36 mo",etf:"Remaining annual term",notice:"30 days",match:["keller","encompass"]},{brand:"Transflo",path:"/cancel-transflo",contract:"12–36 mo bundle",etf:"Remaining bundled term",notice:"30–60 days",match:["transflo"]},{brand:"Garmin eLog",path:"/cancel-garmin-elog",contract:"None (one-time purchase)",etf:"None",notice:"None",match:["garmin"]},{brand:"GPS Tab",path:"/cancel-gpstab",contract:"12 mo typical",etf:"Remaining annual months",notice:"30 days",match:["gps tab","gpstab"]},{brand:"Factor ELD",path:"/cancel-factor-eld",contract:"12 mo or monthly",etf:"Remaining discounted term",notice:"30 days",match:["factor"]},{brand:"ELD Mandate",path:"/cancel-eld-mandate",contract:"12 mo promo or monthly",etf:"Remaining promo term",notice:"30 days",match:["eld mandate"]},{brand:"Blue Ink Tech",path:"/cancel-blue-ink-tech",contract:"Month-to-month",etf:"None",notice:"Before next billing date",match:["blue ink"]},{brand:"Gorilla Safety",path:"/cancel-gorilla-safety",contract:"12–36 mo",etf:"Remaining term balance",notice:"30 days",match:["gorilla"]},{brand:"One Step GPS",path:"/cancel-one-step-gps",contract:"None (month-to-month)",etf:"None",notice:"Before next billing date",match:["one step"]},{brand:"ELD Solutions",path:"/cancel-eld-solutions",contract:"12 mo typical",etf:"Remaining annual months",notice:"30 days",match:["eld solutions"]},{brand:"Apollo ELD",path:"/cancel-apollo-eld",contract:"12 mo or monthly",etf:"Remaining discounted term",notice:"30 days",match:["apollo"]},{brand:"VisTracks",path:"/cancel-vistracks",contract:"Set by reseller",etf:"Reseller-defined",notice:"Usually 30 days",match:["vistracks","vis tracks"]},{brand:"Terminal",path:"/cancel-terminal",contract:"Not a direct ELD plan in public terms",etf:"Ask your actual ELD provider",notice:"Not published for fleet ELD",match:["terminal"]},{brand:"Max ELD",path:"/cancel-max-eld",contract:"Month-to-month advertised",etf:"Not specified in public plan",notice:"No exact period published",match:["max eld","maxeld"]},{brand:"Sharp ELD",path:"/cancel-sharp-eld",contract:"Monthly cancellation provision",etf:"No general fee stated; conditional hardware charge",notice:"3 days before period end; 15 for possible refund",match:["sharp eld","sharpeld"]}];function HE(e){const t=e.toLowerCase();return Kc.find(n=>n.match.some(o=>t.includes(o)))}function q$({brand:e}){const t=HE(e);return c.jsx("section",{className:"mx-auto max-w-4xl px-6 py-12",children:c.jsxs("div",{className:"rounded-xl border border-border bg-card p-6",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Jo,{className:"size-3.5"})," ",t&&["Terminal","Max ELD"].includes(t.brand)?"Planning a switch?":"Locked into a contract?"]}),c.jsx("h2",{className:"mt-4 text-xl font-bold text-foreground sm:text-2xl",children:t?`How to cancel ${t.brand} without surprises`:`Thinking about leaving ${e}?`}),c.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:t?["Terminal","Max ELD","Sharp ELD"].includes(t.brand)?`Check what ${t.brand} actually publishes about notice and fees, what remains unconfirmed, and how to protect your logs when you switch.`:`${t.brand} contracts run ${t.contract.toLowerCase()} and typically require ${t.notice.toLowerCase()} of written notice. Our step-by-step guide covers the termination fee, hardware return, and how to export your logs first.`:`Check the notice window and early-termination fee before you sign anywhere else. Our directory compares cancellation terms and steps for ${Kc.length} providers and related platforms.`}),c.jsxs("div",{className:"mt-5 flex flex-wrap gap-3",children:[t&&c.jsxs(W,{to:t.path,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-5 py-2.5 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:["How to cancel ",t.brand.split(" (")[0]," ",c.jsx(at,{className:"size-4"})]}),c.jsxs(W,{to:"/cancel-eld-contract",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-5 py-2.5 text-sm font-semibold text-foreground hover:bg-muted",children:["Compare terms for ",Kc.length," providers"]})]})]})})}function PE(e){const t=HE(e.brand),n=[{q:`Is there a cheaper alternative to ${e.brand}
41?`,a:`ELD Hub is $15 per truck per month with no contract, and HOS logs, DVIRs, IFTA fuel-tax reporting and GPS tracking are all included at that price. There is no setup fee and a 14-day free trial, so you can run it alongside ${e.brand} before you cancel anything.`},{q:`Do I need new hardware to switch away from ${e.brand}?`,a:e.keepHardware?`No. ${e.brand} runs on the ${e.keepHardware}, which ELD Hub can re-register free of charge. If you need new hardware, PT-30 and IOSiX are $150 each with free shipping; PT-30 includes a cable, IOSiX is device only.`:"New PT-30 or IOSiX hardware is $150 each with free shipping unless you already run a compatible device, which we re-register free. PT-30 includes a cable; IOSiX is device only."}];return t&&n.push({q:`How much notice does ${e.brand} need before you cancel?`,a:["Terminal","Max ELD","Sharp ELD"].includes(t.brand)?`Published information: ${t.notice}. The fee information is: ${t.etf.toLowerCase()}. Read the ${t.brand} cancellation guide and your own agreement before giving notice.`:`${t.brand} agreements typically run ${t.contract} and ask for ${t.notice} of written notice, with early termination costing ${t.etf.toLowerCase()}. Your signed agreement governs — check it before you give notice.`}),[...e.faqs,...n]}function Y8({data:e}){const t=PE(e);return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(F2,{className:"size-3.5"})," ",e.brand," Login Help"]}),c.jsxs("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:[e.brand," Login — Help & Better Alternative"]}),c.jsx("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:e.intro}),c.jsx("div",{className:"max-w-2xl",children:c.jsx(Ft,{question:`Where do you log in to ${e.brand}, and is there a cheaper alternative?`,answer:`The ${e.brand} sign-in page is ${e.loginUrl}; drivers use the mobile app with credentials issued by their fleet manager. If you are shopping alternatives, ELD Hub is an FMCSA-registered ELD at $15 per truck per month with no contract${e.keepHardware?`, and it re-registers a ${e.keepHardware} device you already own at no cost.`:", including IFTA and DVIRs."}`})}),c.jsxs("div",{className:"mt-8 grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"rounded-xl border border-accent/40 bg-accent/5 p-5",children:[c.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Open your own ELD Hub account — $15/truck/month, no contract"}),c.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["FMCSA-registered. IFTA, DVIR and dispatch included.",e.keepHardware?` Keep your ${e.keepHardware}.`:""," Cancel anytime."]}),c.jsxs("a",{href:Ee.registration,className:"mt-3 inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-4 py-2.5 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:["Start 14-day free trial ",c.jsx(at,{className:"size-4"})]})]}),c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsxs("p",{className:"text-sm font-semibold text-foreground",children:["Looking for the ",e.brand," login page?"]}),c.jsxs("a",{href:e.loginUrl,target:"_blank",rel:"noopener noreferrer nofollow",className:"mt-2 inline-flex items-center gap-1.5 text-sm font-semibold text-accent hover:underline",children:[e.loginUrl," ",c.jsx(A2,{className:"size-3.5"})]}),c.jsxs("p",{className:"mt-3 text-xs text-muted-foreground",children:["(External link. ELD Hub is not affiliated with ",e.brand,".)"]})]})]}),c.jsxs("p",{className:"mt-5 max-w-2xl text-sm text-muted-foreground",children:["Shopping alternatives? Compare 15 providers on price, contract length and hardware in the"," ",c.jsx(W,{to:"/best-eld-small-fleets",className:"font-semibold text-accent hover:underline",children:"best ELD for small fleets"})," ","guide."]})]})}),c.jsxs("div",{className:"mx-auto max-w-4xl px-6 pt-12",children:[c.jsx(uu,{brand:e.brand}),c.jsx(du,{brand:e.brand,className:"mt-6",heading:`Leaving ${e.brand}? See what you save`})]}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:["Common ",e.brand," login issues"]}),c.jsx("div",{className:"mt-6 grid gap-4 sm:grid-cols-2",children:e.tips.map((n,o)=>c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsx("p",{className:"font-semibold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.b})]},o))})]}),c.jsx("section",{className:"border-y border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(yt,{className:"size-3.5"})," Considering a switch?"]}),c.jsx("h2",{className:"mt-4 text-2xl font-bold text-foreground sm:text-3xl",children:"Try ELD Hub — $15/truck, no contract"}),c.jsxs("p",{className:"mt-3 max-w-2xl text-muted-foreground",children:["Many drivers searching for ",e.brand," login are actually fed up with slow support or hidden add-on fees. ELD Hub is FMCSA-registered, month-to-month, and includes IFTA, freight, and dispatcher tools at $15/truck."]}),c.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[c.jsxs(W,{to:e.compareTo,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:["See ",e.brand," vs ELD Hub ",c.jsx(at,{className:"size-4"})]}),c.jsx("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:"Start 14-day free trial with ELD Hub"})]})]})}),c.jsx(q$,{brand:e.brand}),e.keepHardware&&c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:["Keep your ",e.keepHardware," — switch only the softw
41are"]}),c.jsxs("p",{className:"mt-3 max-w-2xl text-muted-foreground",children:[e.brand," runs on the ",e.keepHardware,", which is a provider-agnostic, FMCSA-registered device. You do not have to buy new hardware to leave. Re-registering the unit you already own takes about five minutes per truck."]}),c.jsx("ol",{className:"mt-6 space-y-3",children:[{t:"Export your logs first",b:`Pull the last 6 months of RODS out of ${e.brand} before your account closes — FMCSA requires you to retain them.`},{t:`Re-register the ${e.keepHardware}`,b:"ELD Hub adds your existing device to your new account at no cost. No shipping, no downtime."},{t:"Update the cab card packet",b:"Swap in the new ELD user manual, malfunction procedure, and data-transfer instructions before your next inspection."}].map((n,o)=>c.jsxs("li",{className:"flex items-start gap-4 rounded-xl border border-border bg-card p-5",children:[c.jsx("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-accent/15 text-sm font-bold text-accent",children:o+1}),c.jsxs("div",{children:[c.jsx("p",{className:"font-semibold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.b})]})]},n.t))}),c.jsxs("div",{className:"mt-6 flex flex-wrap gap-x-5 gap-y-2 text-sm",children:[c.jsx(W,{to:"/switch-eld-provider",className:"font-semibold text-accent hover:underline",children:"Full switching guide →"}),e.keepHardware==="PT-30"?c.jsx(W,{to:"/hardware/pt30-eld",className:"font-semibold text-accent hover:underline",children:"PT-30 device details →"}):c.jsx(W,{to:"/hardware/iosix-eld",className:"font-semibold text-accent hover:underline",children:"IOSiX device details →"}),c.jsx(W,{to:"/eld-cab-card",className:"font-semibold text-accent hover:underline",children:"What goes in the cab card packet →"}),c.jsx(W,{to:"/best-eld-small-fleets",className:"font-semibold text-accent hover:underline",children:"Best ELD for fleets under 20 trucks →"}),c.jsx(W,{to:"/switch/pt30-iosix-providers",className:"font-semibold text-accent hover:underline",children:"Keep your PT-30 or IOSiX →"}),c.jsx(W,{to:"/eld-pricing",className:"font-semibold text-accent hover:underline",children:"What ELD Hub costs →"})]})]}),c.jsxs("section",{className:"border-t border-border mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Hr,{className:"size-3.5"})," ",e.brand," Login FAQ"]}),c.jsx("h2",{className:"mt-3 text-2xl font-bold text-foreground sm:text-3xl",children:"Frequently asked questions"}),c.jsx("div",{className:"mt-8 space-y-3",children:t.map((n,o)=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer list-none font-semibold text-foreground marker:hidden",children:n.q}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:n.a})]},o))})]}),c.jsx("div",{className:"mx-auto max-w-5xl px-4 pb-16",children:c.jsx(_f,{})}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function ge(e){const t=`https://goeldhub.com/${e.slug}`,n=[`${e.brand} Login + Cheaper Alternative — $15/Truck`,`${e.brand} Login + Cheaper ELD — $15/Truck`,`${e.brand} Login & $15/Truck Alternative`,`${e.brand} Login — $15/Truck Alternative`,`${e.brand} Login`],o=e.metaTitle??n.find(u=>u.length<=60)??n[n.length-1],s=e.metaDescription??`Direct ${e.brand} sign-in link and fixes for locked accounts. Then see what you would pay on ELD Hub: $15 per truck, no contract, 14 days free${e.keepHardware?` — keep your ${e.keepHardware}`:" — keep your PT-30 or IOSiX"}.`;return{meta:[{title:o},{name:"description",content:s},{property:"og:title",content:o},{property:"og:description",content:s},{property:"og:type",content:"website"},{property:"og:url",content:t},...de("switch",`Switch from ${e.brand} to ELD Hub — keep your hardware, cut your bill.`)],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:PE(e).map(u=>
41({"@type":"Question",name:u.q,acceptedAnswer:{"@type":"Answer",text:u.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"ELD Login",item:"https://goeldhub.com/eld-login"},{"@type":"ListItem",position:3,name:`${e.brand} Login`,item:t}]})}]}}const M$=()=>C(()=>import("./alfa-eld-login-B0WiVdeG.js"),[]),F$=R()({component:A(M$,"component"),head:()=>ge(I$)}),U$={brand:"Algo ELD",slug:"algo-eld-login",loginUrl:"https://algoeld.com/",compareTo:"/best-eld-small-fleets",intro:"Trying to log in to Algo ELD? Access the Algo portal below. Algo ELD supports PT-30 devices — the same hardware ELD Hub uses. Switching keeps your device and drops your monthly to $15/truck flat.",tips:[{t:"Algo login page not loading?",b:"Try algoeld.com in incognito mode; browser cache is the most common cause. If it still fails, check whether your account is past-due — Algo pauses access on lapsed billing."},{t:"Driver app not syncing?",b:"The Algo ELD app needs cellular data or Wi-Fi to sync logs. Airplane mode kills sync — logs still record locally but appear delayed on the dashboard."},{t:"PT-30 disconnected?",b:"Check the 9-pin cable seating and Bluetooth pairing. If the light on the PT-30 isn't green, it's a physical connection issue — not an app issue."},{t:"Ready to switch from Algo?",b:"ELD Hub re-registers your PT-30 for free, imports drivers, and gets you HOS-compliant in under an hour — no new hardware, no contract."}],faqs:[{q:"What is Algo ELD's login URL?",a:"The Algo ELD fleet portal is at algoeld.com. Drivers use the Algo ELD app with a driver PIN set by the fleet admin."},{q:"Is Algo ELD FMCSA-registered?",a:"Algo ELD is on the FMCSA-registered list. Always verify current status via the FMCSA registry — revoked ELDs invalidate your HOS logs."},{q:"Can I move from Algo ELD to ELD Hub?",a:"Yes. Your PT-30 device is portable. ELD Hub re-registers it in ~5 minutes and there's no double-billing period — start with ELD Hub the day you cancel Algo."},{q:"Why is ELD Hub cheaper than Algo ELD?",a:"Flat $15/truck/month, no contract, IFTA and freight included. Algo typically bundles those as add-ons, pushing per-truck cost above $20/month for a comparable feature set."}]},B$=()=>C(()=>import("./algo-eld-login-D77eXd9j.js"),[]),z$=R()({head:()=>ge(U$),component:A(B$,"component")}),V$=[{q:"What are Amazon Relay's requirements for carriers?",a:"Amazon Relay requires active USDOT and MC authority, an acceptable FMCSA safety record, insurance at the limits published in its carrier terms, equipment that matches one of its programs, drivers who meet licensing and testing rules, and load visibility through the Relay app and telematics. Amazon publishes the current thresholds in the Relay portal and they change from time to time."},{q:"Does Amazon Relay require an ELD?",a:"Amazon requires hours-of-service compliance and load visibility. Any carrier operating a vehicle over 10,001 lbs interstate is already under the FMCSA ELD mandate, and a reliable ELD with tracking is what keeps a Relay account in good standing. ELD HUB is FMCSA-registered at $15 per truck per month with no contract."},{q:"Can a box truck run Amazon Relay?",a:"Amazon operates a box truck program alongside its tractor-trailer freight, with its own vehicle and insurance specification. Check the current requirements in the Relay portal before buying equipment for it."},{q:"Can a brand-new authority get approved?",a:"It is harder. Amazon has historically looked for operating history and a safety record before approving a carrier, so most new authorities build a few months of broker freight first. Use that time to get your ELD, insurance and safety program in order."},{q:"Is ELD HUB affiliated with Amazon Relay?",a:"No. ELD HUB is an independent FMCSA-registered ELD provider. This page summarises Amazon's own published carrier requirements so you can decide whether to apply; always confirm the current terms in the Relay portal."}],G$=()=>C(()=>
41import("./amazon-relay-requirements-DgBIqTNt.js"),[]),W$="Amazon Relay Requirements for Carriers (2026) | ELD HUB",Tw="What Amazon Relay asks carriers for: active authority, safety rating, insurance, equipment and tracking — plus the ELD and telematics side, from $15 per truck per month.",X$={"@context":"https://schema.org","@type":"FAQPage",mainEntity:V$.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},Y$=R()({head:()=>({meta:[{title:W$},{name:"description",content:Tw},{property:"og:title",content:"Amazon Relay Requirements for Carriers"},{property:"og:description",content:Tw},...de("compliance","Amazon Relay carrier requirements explained by ELD Hub."),{property:"og:url",content:"https://goeldhub.com/amazon-relay-requirements"},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/amazon-relay-requirements"}],scripts:[{type:"application/ld+json",children:JSON.stringify(X$)}]}),component:A(G$,"component")}),K$={brand:"Anytime Logs",slug:"anytime-logs-login",loginUrl:"https://ontime-logs.com/",compareTo:"/best-eld-small-fleets",intro:"Anytime Logs (Ontime Logs) login trouble? Quick fixes below. Small carriers frustrated with limited support and no all-in-one bundle are switching to ELD Hub — $15/truck flat, FMCSA-registered, freight and factoring included.",tips:[{t:"Fleet portal down",b:"The Ontime Logs portal has intermittent maintenance windows. Try ontime-logs.com in a private browser tab first before contacting support."},{t:"Driver app crash",b:"Update to the latest Anytime Logs app version. Older versions crash on iOS 17+ and Android 14+."},{t:"PT-30 not pairing",b:"Anytime Logs runs on the PT-30. Bluetooth pairing issues almost always come from a device that hasn't been re-seated recently."},{t:"Can't reset password",b:"If the reset email never arrives, your admin has to trigger it from the fleet portal — driver self-service reset is not available."}],faqs:[{q:"What's the Anytime Logs login URL?",a:"The fleet portal is at ontime-logs.com (parent brand Ontime Logs). Drivers log in through the Anytime Logs mobile app."},{q:"Is Anytime Logs the same as Ontime Logs?",a:"Yes — same company, same platform. Anytime Logs is the app brand, Ontime Logs is the parent."},{q:"Can I switch from Anytime Logs to ELD Hub with my PT-30?",a:"Yes. Both platforms use the PT-30 device. Switching means new credentials, not new hardware."},{q:"Why is ELD Hub a better fit for small fleets?",a:"Flat $15/truck, no contract, IFTA + freight tools bundled, and US-based phone support. Ontime Logs charges extras for features ELD Hub includes."},{q:"How fast can I switch?",a:"Same day for existing PT-30 owners. Under an hour per truck end-to-e
41nd."}]},Q$=()=>C(()=>import("./anytime-logs-login-BOD5wzUH.js"),[]),J$=R()({component:A(Q$,"component"),head:()=>ge(K$)}),Z$={brand:"Apollo ELD",slug:"apollo-eld-login",metaTitle:"Apollo ELD Login — Portal Link + $15/Truck Alternative",metaDescription:"Apollo ELD login: direct portal link, driver-app sync fixes and DOT inspection tips. Keep your PT-30 and switch to ELD Hub at $15/truck, no contract.",loginUrl:"https://apolloeld.com/",compareTo:"/best-eld-small-fleets",intro:"Trying to sign in to Apollo ELD? Access the Apollo portal below. Small fleets running PT-30 hardware often move from Apollo ELD to ELD Hub for flat $15/truck pricing, US phone support during business hours and a 24/7 AI advisor.",tips:[{t:"Can't reach the Apollo portal?",b:"The Apollo ELD fleet dashboard occasionally goes offline during updates. Check status via their driver app first — if the app also can't connect, wait 15 minutes and retry."},{t:"Driver app won't sync?",b:"The Apollo driver app requires an active subscription. If your billing lapsed, sync stops even though logs still record locally — reconnect once the account is current."},{t:"DOT inspection today?",b:"Have your driver switch to inspection mode and email/Bluetooth transfer the last 8 days of logs. If the app is locked, request a paper log printout from Apollo support immediately."},{t:"Want to leave Apollo?",b:"Your PT-30 device is portable. ELD Hub re-registers it for free and imports your driver list — most fleets fully switch in under an hour per truck."}],faqs:[{q:"What is Apollo ELD's login URL?",a:"The Apollo ELD portal is at apolloeld.com. Drivers use the Apollo ELD mobile app; fleet admins access the web dashboard with a separate login."},{q:"Is Apollo ELD FMCSA-registered?",a:"Apollo ELD is on the FMCSA-registered list. Always double-check the current FMCSA registry before renewal — revoked ELDs cause HOS violations at roadside inspections."},{q:"How does ELD Hub compare to Apollo?",a:"ELD Hub is a flat $15/truck/month with no contract, IFTA and dispatch included. Apollo pricing varies by tier and typically runs $20–$30/truck with add-ons."},{q:"Can I keep my Apollo PT-30 device?",a:"Yes. The PT-30 is a standard FMCSA-registered device. ELD Hub re-registers your existing PT-30 for free — no shipping, no waiting, no new hardware."}]},e3=()=>C(()=>import("./apollo-eld-login-Br1MKXwy.js"),[]),t3=R()({head:()=>ge(Z$),component:A(e3,"component")}),r3=()=>C(()=>import("./auth-Ds4tVhwH.js"),[]),n3=R()({component:A(r3,"component"),head:()=>({meta:[{title:"Staff Sign In | ELD Hub"},{name:"description",content:"Internal ELD Hub staff sign in for the lead and traffic dashboard."},{name:"robots",content:"noindex, nofollow"},{property:"og:title",content:"Staff Sign In | ELD Hub"},{property:"og:description",content:"Internal ELD Hub staff sign in."},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"}]})}),a3={brand:"Azuga",slug:"azuga-eld-login",loginUrl:"https://azuga.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Azuga login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub is a flat $15/truck/month with no contract, and PT-30 or IOSiX hardware is $150 each with free shipping (PT-30 with cable; IOSiX device only).",tips:[{t:"Azuga portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in Azuga. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"Azuga locks its software to its own gateway, so a switch means new hardware. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the Azuga login page?",a:"The Azuga fleet portal is at https://azuga.com/. Drivers sign in through the Azuga mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than Azuga?",a:"ELD Hub is a flat $15 per truck per month with 
41no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with Azuga once add-ons are counted."},{q:"Do I need new hardware to leave Azuga?",a:"Usually yes, because Azuga hardware is tied to its own platform. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. There is no software contract."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from Azuga before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}]},o3=()=>C(()=>import("./azuga-eld-login-CjJ9e9Tz.js"),[]),i3=R()({head:()=>ge(a3),component:A(o3,"component")}),s3=[{q:"What makes an ELD the 'best' for a small fleet?",a:"Four things: FMCSA registration (non-negotiable), flat pricing with no long-term contract, hardware that works with what you already own, and support that answers the phone. Big-fleet ELDs bundle features you don't need at prices small carriers can't stomach."},{q:"What's the difference between an ELD and an ELOG?",a:"An ELD (Electronic Logging Device) is FMCSA-registered hardware that auto-records engine hours, miles, and driving time. An ELOG is just a digital log — legal in some cases but not FMCSA-compliant for most interstate carriers. If you cross state lines with a truck over 10,001 lbs, you need an ELD."},{q:"Is the hardware included at $15/month?",a:"The $15/truck/month covers software. Compatible existing PT-30 or IOSiX devices can be re-registered free. New PT-30 or IOSiX hardware is $150 each with free shipping (in stock, ships same or next business day). PT-30 includes a cable; IOSiX is device only."},{q:"How does $15/month compare to Motive, Samsara, KeepTruckin, Verizon Connect?",a:"Big-brand ELDs run $25–$45 per truck per month plus 3-year contracts and hardware financing. For a 5-truck fleet, that's $1,500–$2,700 per year more than ELD Hub — before add-ons for IFTA, DVIR, or maintenance modules that ELD Hub includes."},{q:"Can I switch from another ELD without downtime?",a:"Yes. We time the cutover around your billing cycle, transfer your historical logs, and onboard drivers before your old contract ends. You'll have a few days of overlap so nothing goes dark."},{q:"What if I only have 1 or 2 trucks?",a:"That's exactly who ELD Hub is built for. Owner-operators and 1–20 truck fleets get big-fleet pricing on ELD, factoring, fuel, and capital. No fleet-size minimum."},{q:"What is the cheapest ELD for a small fleet?",a:"Ignoring Garmin eLog (a single-driver device with no fleet dashboard), ELD Hub is $15 per truck per month with no contract — about $690 over three years for one truck including a $150 PT-30 or IOSiX. The next cheapest, TT ELD, runs roughly $820 on a 12-month term."},{q:"Which ELD has no contract?",a:"ELD Hub is month-to-month with 
41no cancellation fee. Motive, Samsara, Geotab, Verizon Connect, Omnitracs, EROAD, Rand McNally, BigRoad and Trimble all use 36-month terms; TT ELD, Factor ELD, GPS Tab and EzLogz typically use 12-month terms."},{q:"What is the best ELD for 5 trucks?",a:"At five trucks you want flat per-truck pricing and no term. ELD Hub is $75 a month for five trucks, or $900 a year. The same five trucks on Motive run about $2,100 a year and on Samsara about $2,700 — plus a three-year commitment on both."},{q:"Which ELD works with a PT-30 or IOSiX device I already own?",a:"ELD Hub re-registers PT-30 and IOSiX devices at no cost, so your hardware spend is $0. TT ELD, Factor ELD, GPS Tab and EzLogz also run on PT-30-class hardware. Motive, Samsara, Geotab, Verizon Connect, Omnitracs, EROAD, Rand McNally, BigRoad and Trimble all require their own proprietary gateway."}],l3=[{provider:"Motive (KeepTruckin)",bestFor:"Fleets of 25+ trucks that want AI dash cams and driver scoring in one bill.",notFor:"1–20 truck fleets — the 36-month term and per-seat fees outweigh the feature set.",strength:"Genuinely good AI camera event detection and a polished driver app.",contractNote:"36 months standard, auto-renewing. Early termination is the remaining balance in full — walking away in month 12 of a 5-truck contract is roughly $4,200.",hardwareNote:"Proprietary Vehicle Gateway, $150–$250 per truck. A PT-30 or IOSiX you already own will not pair.",compareHref:"/vs/motive-alternative",compareLabel:"Motive vs ELD Hub"},{provider:"Samsara",bestFor:"Enterprise fleets that need one platform across trucks, trailers and equipment.",notFor:"Owner-operators and small fleets — pricing starts where small-fleet budgets end.",strength:"Best-in-class fleet dashboard and API/integration depth.",contractNote:"36–60 months, quoted per fleet. Cancellation before term end is not offered; you pay out the contract.",hardwareNote:"Samsara VG34/VG54 gateway, $200+ per truck, plus camera hardware. No PT-30 or IOSiX support.",compareHref:"/vs/samsara-alternative",compareLabel:"Samsara vs ELD Hub"},{provider:"Geotab",bestFor:"Fleets with an in-house telematics or IT team that will build on MyGeotab.",notFor:"Small carriers — you buy through a reseller, and the reseller sets your real price.",strength:"The most extensible telematics data model on the market.",contractNote:"36 months through a reseller. Terms, support quality and price all vary by who sold it to you.",hardwareNote:"GO9 device, ~$180. Add-on harnesses billed separately. PT-30 and IOSiX are not compatible.",compareHref:"/geotab-pricing",compareLabel:"Geotab pricing breakdown"},{provider:"Verizon Connect",bestFor:"Mixed commercial fleets already buying Verizon services.",notFor:"Anyone who might change their mind — the cancellation terms are the harshest on this list.",strength:"Nationwide cellular coverage and established roadside/DOT support processes.",contractNote:"36 months with 100% of the remaining balance due on cancellation. This is the single most common complaint we hear from carriers switching to us.",hardwareNote:"Reveal hardware, ~$175 per truck, installed. Not compatible with PT-30 or IOSiX.",compareHref:"/cancel-verizon-connect",compareLabel:"How to cancel Verizon Connect"},{provider:"Omnitracs",bestFor:"Long-haul carriers with 100+ trucks and dedicated compliance staff.",notFor:"Small fleets — support is tiered and the base tier is thin.",strength:"Decades of DOT audit experience baked into the compliance workflows.",contractNote:"36 months plus an activation fee per truck. Support level is a separate line item.",hardwareNote:"IVG or XRS device, $220+. Proprietary; no PT-30 or IOSiX path.",compareHref:"/omnitracs-pricing",compareLabel:"Omnitracs pricing breakdown"},{provider:"EROAD",bestFor:"Fleets that need weight-mile tax filing in OR, NM, KY and NY.",notFor:"Fleets outside those states — you pay for tax modules you'll never file.",strength:"The best automated weight-mile tax handling available.",contractNote:"36 months, hardware lease bundled into the monthly rate so the device never becomes yours.",hardwareNote:"Ehubo2, leased not owned, ~$195 amortized. Hard lock-in; nothing carries over.",compareHref:"/eroad-eld-login",compareLabel:"EROAD login & switch guide"},{provider:"TT ELD",bestFor:"Budget-driven small fleets that only need HOS and DVIR.",notFor:"Fleets that need responsive support — help beyond the basics is gated.",strength:"Cheap entry price and a simple driver app.",contractNote:"12 months typical. Cheaper than the big brands but still a term you can't exit.",hardwareNote:"Runs on PT-30-class hardware — if you have one, ELD Hub re-registers it free.",compareHref:"/vs/tteld-vs-eld-hub",compareLabel:"TT ELD vs ELD Hub"},{provider:"Factor ELD",bestFor:"Carriers who want factoring and ELD from the same vendor.",notFor:"Fleets that want to shop factoring rates independently.",strength:"Bundling compliance and cash flow in one relationship.",contractNote:"12 months plus a per-truck activation fee.",hardwareNote:"PT-30 compatible. Your existing device moves to ELD Hub at no hardware cost.",compareHref:"/vs/factoreld-vs-eld-hub",compareLabel:"Factor ELD vs ELD Hub"},{provider:"GPS Tab",bestFor:"Small fleets wanting tracking and ELD in one low-cost package.",notFor:"Fleets that file IFTA quarterly — that's a paid add-on here.",strength:"Solid live GPS tracking at a small-fleet price point.",contractNote:"12 months. IFTA reporting billed on top of the base rate.",hardwareNote:"PT-30 and IOSiX compatible — the device carries straight over to ELD Hub.",compareHref:"/vs/gpstab-vs-eld-
41hub",compareLabel:"GPS Tab vs ELD Hub"},{provider:"EzLogz",bestFor:"Single drivers and 2–3 truck operations.",notFor:"Fleets that need a dispatcher view — the fleet dashboard is a paid tier.",strength:"Straightforward driver-side logging experience.",contractNote:"12 months. Fleet dashboard priced separately from the driver license.",hardwareNote:"PT-30 compatible; re-registers to ELD Hub free.",compareHref:"/vs/ezlogz-vs-eld-hub",compareLabel:"EzLogz vs ELD Hub"},{provider:"Rand McNally",bestFor:"Fleets standardized on Rand McNally navigation units.",notFor:"Fleets buying ELD alone — you're paying navigation-brand hardware prices.",strength:"Trusted routing and truck-legal navigation heritage.",contractNote:"36 months. Refunds are device-only; the subscription is not refunded.",hardwareNote:"ELD 50/HD100 units at $250. Proprietary.",compareHref:"/rand-mcnally-eld-login",compareLabel:"Rand McNally login & switch guide"},{provider:"BigRoad (Fleet Complete)",bestFor:"Fleets ready to move onto the wider Fleet Complete suite.",notFor:"Carriers who want ELD only — the upsell path is the business model.",strength:"Long-standing, well-tested logbook app with a large driver base.",contractNote:"36 months post-acquisition. Terms tightened after the Fleet Complete rollup.",hardwareNote:"DashLink device, ~$165. Not compatible with PT-30 or IOSiX.",compareHref:"/vs/bigroad-vs-eld-hub",compareLabel:"BigRoad vs ELD Hub"},{provider:"Trimble",bestFor:"Enterprise carriers running TMS, routing and ELD as one stack.",notFor:"Anyone under 20 trucks — most Trimble contracts carry a 20-truck minimum.",strength:"Deepest enterprise TMS integration of any provider here.",contractNote:"36 months minimum, enterprise paperwork, implementation fees.",hardwareNote:"$300 per truck for proprietary in-cab hardware.",compareHref:"/trimble-eld-login",compareLabel:"Trimble login & switch guide"},{provider:"Garmin eLog",bestFor:"A single driver who never needs a back-office view.",notFor:"Any fleet — there is no dashboard, no IFTA and no multi-driver management.",strength:"No monthly fee at all; buy the device once and you're compliant as a solo driver.",contractNote:"No contract because there is no subscription — and no support relationship either.",hardwareNote:"$250 one-time device. Nothing transfers; it is a closed single-driver unit."}],c3=Object.fromEntries(l3.map(e=>[e.provider,e])),u3=()=>C(()=>import("./best-eld-small-fleets-BiOUu_VH.js"),__vite__mapDeps([5,6])),d3=R()({component:A(u3,"component"),head:()=>({meta:[{title:"Best ELD for Small Fleets & Owner Operators (2026)"},{name:"description",content:"15 FMCSA-registered ELDs ranked by real cost for 1–20 trucks: price per truck, contract length, hardware, 3-year total. Cheapest ELD for trucks with no contract: $15/truck, 14 days free."},{property:"og:title",content:"Best ELD for Small Fleets & Owner Operators (2026)"},{property:"og:description",content:"15 FMCSA-registered ELDs compared on price, contract, hardware and 3-year cost for owner-operators and fleets under 20 trucks."},...de("default","ELD Hub — $15/mo unlocks the full fleet stack for small trucking fleets."),{property:"og:type",content:"article"},{property:"og:url",content:"https://goeldhub.com/best-eld-small-fleets"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"Best ELD for Owner Operators & Small Fleets (2026)"}],links:[{rel:"canonical",href:"https://goeldhub.com/best-eld-small-fleets"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Product",name:"ELD Hub",description:"FMCSA-registered ELD subscription built for 1–20 truck fleets. $15 per truck per month, month-to-month, works with PT-30 and IOSiX hardware.",brand:{"@type":"Brand",name:"ELD Hub"},offers:{"@type":"Offer",price:"15",priceCurrency:"USD",url:"https://goeldhub.com/best-eld-small-fleets",availability:"https://schema.org/InStock"}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Best ELD for Small Fleets",item:"https://goeldhub.com/best-eld-small-fleets"}]})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"ItemList",name:"Best ELDs for small fleets ranked by 3-year cost",itemListElement:[...N$].filter(e=>e.provider!=="Garmin eLog").sort((e,t)=>
41e.tco3yr-t.tco3yr).slice(0,10).map((e,t)=>({"@type":"ListItem",position:t+1,name:e.provider,description:`$${e.monthly}/truck/month, ${e.contract} contract, $${e.hardware} hardware, $${e.tco3yr} over three years. ${c3[e.provider]?.bestFor??""}`.trim()}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:s3.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})}]})}),h3={brand:"BigRoad",slug:"bigroad-login",loginUrl:"https://app.bigroad.com/sign-in",compareTo:"/vs/bigroad-vs-eld-hub",intro:"BigRoad sign-in problem? Start with the fixes below. If you're shopping for a replacement, ELD Hub is a $15/truck FMCSA-registered platform with IFTA, freight, and factoring built in — and if your truck already runs a PT-30 or IOSiX device, you keep the hardware and skip the hardware bill.",tips:[{t:"'Sign in failed' on app.bigroad.com",b:"Clear cached site data for bigroad.com and try again in a private window. Stale session tokens block the form after a browser update."},{t:"Driver can't log into the mobile app",b:"Drivers use the BigRoad Mobile app credentials created by the fleet admin, not the web account. Have your admin re-issue the driver login from the web dashboard."},{t:"Forgot-password link expired",b:"BigRoad reset links are short-lived. Request a new one and open it immediately in the same browser you requested it from."},{t:"Logs not syncing after login",b:"Confirm the phone has data, then force-close and reopen the app. If the ELD still shows disconnected, unplug it from the diagnostic port for 30 seconds and re-pair over Bluetooth."}],faqs:[{q:"What is the BigRoad login URL?",a:"The BigRoad web dashboard is at app.bigroad.com/sign-in. Drivers sign in through the BigRoad Mobile app on iOS or Android using credentials created by the fleet admin."},{q:"Is BigRoad FMCSA-registered?",a:"BigRoad appears on the FMCSA registered ELD list. ELD Hub is also registered — see /fmcsa-registered-eld-list to check any provider yourself."},{q:"Can I switch from BigRoad without buying new hardware?",a:"If your trucks run a PT-30 or IOSiX OBD-II device, yes — ELD Hub can re-register compatible units free after serial confirmation. If your fleet runs BigRoad's own hardware instead, call 302-404-1177 with the model and we'll tell you honestly whether it can be reused or whether you need a $150 PT-30 or IOSiX (PT-30 with cable; IOSiX device only)."},{q:"How does ELD Hub pricing compare to BigRoad?",a:"ELD Hub is a flat $15/truck/month, no contract, with IFTA, DVIRs, and freight and factoring tools included. BigRoad prices by plan tier, so compare the all-in monthly total on your invoice rather than the headline rate."},{q:"How long does the switch take?",a:"About an hour per truck when reusing hardware you own, or after shipping if a new device is needed (both in stock, ship same or next business day). Export your last six months of logs from BigRoad before you close the account."}],keepHardware:"PT-30"},p3=()=>C(()=>import("./bigroad-login-Cb7FEaeU.js"),[]),f3=R()({component:A(p3,"component"),head:()=>ge(h3)}),m3={brand:"Blue Star ELD",slug:"blue-star-eld-login",loginUrl:"https://bluestareld.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Blue Star ELD login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub runs on the same PT-30 hardware you already own for a flat $15/truck/month with no contract.",tips:[{t:"Blue Star ELD portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in Blue Star ELD. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"The PT-30 is provider-agnostic and FMCSA-registered. If you leave Blue Star ELD, you re-register the same device to ELD Hub in about five minutes — no new hardware."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the Blue Star ELD login page?",a:"The Blue Star ELD fleet portal is at https://bluestareld.com/. Drivers sign in through the Blue Star ELD mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than Blue Star ELD?",a:"ELD Hub is a flat $15 per truck per month with 
41no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with Blue Star ELD once add-ons are counted."},{q:"Can I move my PT-30 from Blue Star ELD to ELD Hub?",a:"Yes. The PT-30 is a standard FMCSA-registered ELD device that works across providers. ELD Hub re-registers a PT-30 you already own at no cost — about five minutes per truck."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from Blue Star ELD before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}],keepHardware:"PT-30"},g3=()=>C(()=>import("./blue-star-eld-login-2rCvaUdD.js"),[]),y3=R()({head:()=>ge(m3),component:A(g3,"component")}),yn=[{path:"/usdot-number",label:"USDOT number",h1:"How to Get a USDOT Number (2026 Step-by-Step)",title:"How to Get a USDOT Number — Free, Same Day | ELD Hub",description:"Apply for a USDOT number through the FMCSA Unified Registration System. What it costs, how long it takes, what you need before you start, and what comes next.",summary:"Free, issued in minutes. The first filing every carrier makes.",fee:"Free",timeline:"Issued immediately in most cases",filedWith:"FMCSA Unified Registration System (URS)",form:"MCSA-1 (online)",quickQuestion:"How do I get a USDOT number?",quickAnswer:"Apply on the FMCSA Unified Registration System using form MCSA-1. There is no filing fee, and the number is usually issued the same session. You need your legal business name, EIN, business address, vehicle count, cargo classification and a Login.gov account. Interstate for-hire carriers then apply for MC operating authority separately.",whoNeeds:["Any carrier operating a vehicle over 10,001 lbs GVWR in interstate commerce","Carriers hauling hazardous materials in quantities requiring placards","Carriers transporting 9 or more passengers for compensation","Many intrastate carriers — over 30 states require a USDOT number for intrastate operation"],steps:[{t:"Create a Login.gov account",b:"FMCSA registration runs through Login.gov. Use a business email you will keep — every future filing and biennial update goes through this account."},{t:"Get your EIN from the IRS",b:"Free, online, issued instantly. FMCSA will not accept a Social Security number for a company registration."},{t:"Complete form MCSA-1",b:"Legal name, DBA, physical address (no PO box), company officials, vehicle count, driver count, cargo classification and operation type."},{t:"Pick your operation classification carefully",b:"Interstate vs intrastate, for-hire vs private. This drives which further filings apply to you and is a pain to correct later."},{t:"Record the number and file your biennial update",b:"A USDOT number must be updated every two years even if nothing changed, or FMCSA deactivates it."}],mistakes:["Using a residential PO box as the principal place of business — FMCSA requires a physical street address.","Registering as intrastate to save a step, then crossing a state line under the wrong authority.","Skipping the biennial update, which deactivates the number and can shut down the operation."],faqs:[{q:"How much does a USDOT number cost?",a:"Nothing. FMCSA charges no fee for a USDOT number. Any service charging you hundreds of dollars for one is charging for form-filling, not for the number itself."},{q:"How long does a USDOT number take?",a:"Most applications are issued in the same session once the MCSA-1 is submitted. Applications flagged for review can take a few business days."},{q:"Do I need a USDOT number and an MC number?",a:"If you haul regulated commodities for hire across state lines, you need both. The USDOT number identifies the carrier; the MC number is the operating authority that lets you haul for compensation."},{q:"Do I need an ELD as soon as my USDOT number is issued?",a:"You need an FMCSA-registered ELD from the first mile you operate a covered vehicle, not from the date the number issues. Most new carriers register their ELD while the authority is still pending so nothing blocks the first load."}]},{path:"/mc-authority",label:"MC operating authority",h1:"How to Get MC Operating Authority (Cost and Timeline)",title:"MC Authority: $300, 4–6 Weeks — Full 2026 Guide | ELD Hub",description:"What MC operating authority costs, how long FMCSA takes, the insurance and BOC-3 filings that must land before it activates, and how to avoid the delays that stall new carriers.",summary:"$300, non-refundable. Roughly 4–6 weeks from filing to active.",fee:"$300 per authority type, non-refundable",timeline:"20–25 business days published; 4–6 weeks in practice",filedWith:"FMCSA Unified Registration System (URS)",form:"MCSA-1 (online), plus BOC-3 and insurance filings",quickQuestion:"How long does it take to get MC authority?",quickAnswer:"FMCSA publishes 20–25 business days, and most new carriers see 4–6 weeks. The application fee is $300 and is not refunded. Authority does not activate until the BOC-3 process-agent form is on file and 
41your insurer files proof of coverage. A mandatory 21-day protest period runs from the day the application is published.",whoNeeds:["For-hire carriers hauling regulated commodities across state lines","Freight brokers and freight forwarders (separate authority types, $300 each)","Carriers hauling passengers for compensation interstate"],steps:[{t:"File the MCSA-1 and pay $300",b:"One $300 fee per authority type. A carrier who also wants to broker freight pays $300 twice."},{t:"Wait for the docket number and the protest period",b:"FMCSA publishes the application and a 21-day protest window runs. This window is the reason authority cannot be rushed."},{t:"File BOC-3 through a process agent",b:"A blanket process-agent service files for all states at once, typically $40–$50 one-time."},{t:"Have your insurer file proof of coverage",b:"$750,000 minimum liability for general freight, $1,000,000 for many commodities. The insurer files Form MCS-90 / BMC-91X electronically; your certificate alone is not enough."},{t:"Watch for the activation notice",b:"Authority goes active only when the protest period has closed and both the BOC-3 and the insurance filing are on record."}],mistakes:["Buying a truck and booking a load before authority activates — brokers verify status and will not tender freight to a pending MC.","Assuming an insurance quote counts as a filing. Coverage must be bound and filed electronically by the insurer.","Filing the BOC-3 last. It is cheap and fast, so file it the same week you apply and remove it from the critical path."],faqs:[{q:"How much does MC authority cost?",a:"$300 per authority type, paid to FMCSA and not refundable if the application is withdrawn or denied. Budget another $40–$50 for the BOC-3 and your insurance down payment on top."},{q:"Can I speed up MC authority?",a:"No. The 21-day protest period is set by regulation and no service can shorten it. What you can control is filing the BOC-3 and binding insurance early, so nothing else adds weeks after the window closes."},{q:"Can I haul while my MC authority is pending?",a:"Not for hire in interstate commerce. Some new carriers run intrastate or under someone else's authority while waiting; confirm the arrangement with your insurer first."},{q:"What should I set up while I wait?",a:"Insurance, BOC-3, IRP plates, IFTA, a drug and alcohol consortium, and your ELD. ELD Hub registration takes about two minutes and costs $15 per truck per month once you activate, so most carriers set it up during the wait rather than the week they get their first load."}]},{path:"/boc-3-filing",label:"BOC-3 filing",h1:"BOC-3 Filing: What It Is and How to File (2026)",title:"BOC-3 Filing Explained — $40 One-Time | ELD Hub",description:"The BOC-3 designates a process agent in every state you operate in. What it costs, who can file it, how fast it posts, and why MC authority stalls without it.",summary:"About $40 one-time. Must be on file before authority activates.",fee:"$40–$50 one-time through a blanket process-agent service",timeline:"Usually posts within 24 hours",filedWith:"FMCSA, by a registered process agent on your behalf",form:"BOC-3 (Designation of Agents for Service of Process)",quickQuestion:"What is a BOC-3 filing and do I need one?",quickAnswer:"A BOC-3 designates a legal process agent in every state where you operate, so court papers can be served. Every carrier, broker and freight forwarder with FMCSA operating authority must have one on file before that authority activates. Only a registered process agent can file it for you, and a blanket nationwide filing typically costs $40 to $50 one time.",whoNeeds:["Every carrier applying for MC operating authority","Freight brokers and freight forwarders","Any carrier reinstating a revoked authority"],steps:[{t:"Pick a blanket process-agent service",b:"Blanket coverage designates agents in all 50 states and DC at once. Filing state by state is legal but pointless for an interstate carrier."},{t:"Give them your USDOT and docket number",b:"The filing has to attach to your pending application, so file after the MCSA-1 is submitted, not before."},{t:"Confirm it posted",b:"Check your FMCSA registration record. A missing BOC-3 is one of the most common reasons authority sits pending after the protest period closes."},{t:"Keep the designation current",b:"If you change process agents, the new agent files a replacement BOC-3. The old designation stays active until it is replaced."}],mistakes:["Trying to file it yourself. FMCSA only accepts a BOC-3 from a registered process agent, except in narrow self-filing cases.","Paying a bundled 'authority package' several hundred dollars for a $40 filing.","Letting the designation lapse after switching agents, which can suspend the authority."],faqs:[{q:"How much does a BOC-3 cost?",a:"$40 to $50 one time for blanket nationwide coverage from a registered process agent. It is a one-time filing, not an annual fee, unless you change agents."},{q:"How long does a BOC-3 take?",a:"Most process agents file electronically the same day and it posts to your FMCSA record within 24 hours."},{q:"Can I file a BOC-3 myself?",a:"Only in the narrow case where you have a person or office in every state you operate in who can accept service. In practice every interstate carrier uses a blanket process agent."}]},{path:"/ucr-filing",label:"UCR registration",h1:"UCR Registration for New Carriers (Fees and Deadline)",title:"UCR Filing 2026: Fees, Deadline, Who Must File | ELD Hub",description:"Unified Carrier Registration explained for new authorities: what tier you fall in, what it costs for 1–2 trucks, when it is due, and the penalties for skipping it.",summary:"About $46/year for 0–2 trucks. Due before the calendar year starts.",fee:"Roughly $46 per year in the smallest fleet tier (0–2 vehicles)",timeline:"Filed online, effective immediately",filedWith:"Your base state, through the national UCR system",form:"UCR online registration",quickQuestion:"How much is UCR for a new trucking company?",quickAnswer:"UCR is billed in fleet-size tiers. A carrier running two or fewer vehicles pays roughly $46 for the registration year, and the fee rises with each tier. Registration opens in the fall for the following calendar year and enforcement begins January 1. Interstate carriers, brokers, freight forwarders and leasing companies all have to file.",whoNeeds:["Interstate motor carriers, private and for-hire","Freight brokers, forwarders and leasing companies","Carriers based in a non-participating state, who register through a designated state"],steps:[{t:"Count your qual
41ifying vehicles",b:"Use the vehicle count from your most recent MCS-150 filing. Trailers do not count; power units do."},{t:"Register through the national UCR site",b:"Filing through your base state's portal or the national system costs the same. Third-party 'UCR compliance' mailers charge a markup for the identical filing."},{t:"File before January 1",b:"Registration for the next year typically opens in October. Roadside enforcement of the new year starts January 1."},{t:"Keep the receipt in the truck",b:"There is no UCR credential to display, but inspectors verify against the national database and a receipt resolves disputes fast."}],mistakes:["Paying an official-looking mailer several times the state fee for the same registration.","Filing late — states issue fines that dwarf the registration fee itself.","Under-reporting the vehicle count to reach a lower tier, which is a violation when audited."],faqs:[{q:"Who has to file UCR?",a:"Any interstate motor carrier, broker, freight forwarder or leasing company. Purely intrastate carriers who never cross a state line are exempt."},{q:"When is the UCR deadline?",a:"Registration for the coming year usually opens in October and enforcement of that year begins January 1. Filing early costs the same and avoids the January rush."},{q:"Is UCR the same as IRP or IFTA?",a:"No. UCR is a flat annual fee based on fleet size. IRP is your apportioned plate, and IFTA is quarterly fuel-tax reporting. A new interstate authority typically needs all three."}]},{path:"/irp-apportioned-plates",label:"IRP apportioned plates",h1:"IRP Apportioned Plates: Cost, Process and First-Year Budget",title:"IRP Apportioned Plates — Cost and How to Apply | ELD Hub",description:"How the International Registration Plan works for a new authority: base state, estimated mileage in year one, real first-year cost, and how IRP ties into IFTA.",summary:"$1,200–$2,500 in year one, filed with your base state.",fee:"Roughly $1,200–$2,500 for a single truck in year one",timeline:"1–3 weeks depending on the base-state office",filedWith:"Your base state's IRP / motor carrier services office",form:"IRP Schedule A/B and Schedule C",quickQuestion:"How much do IRP apportioned plates cost?",quickAnswer:"A single-truck new authority typically pays $1,200 to $2,500 for the first IRP registration year, because year one uses an average per-mile chart rather than your own mileage. The plate is filed with your base state and covers every IRP jurisdiction you list. Renewal cost drops once you have real distance records to report.",whoNeeds:["Carriers operating a power unit over 26,000 lbs GVW in two or more IRP jurisdictions","Carriers with a power unit having three or more axles regardless of weight, crossing state lines","Combination vehicles whose combined weight exceeds 26,000 lbs across jurisdictions"],steps:[{t:"Establish your base state",b:"You need an established place of business with a physical address, mileage accrued in that state and operational records kept there."},{t:"File Schedule A/B with the jurisdictions you will run",b:"List every state and province you expect to operate in. Adding a jurisdiction later is a supplemental filing, not a rewrite."},{t:"Use the average per-mile chart for year one",b:"With no prior mileage history, the base state applies an estimated-distance chart. This is why year one is the expensive one."},{t:"Register for IFTA at the same time",b:"Most base states process IRP and IFTA through the same office; filing together saves a trip and a wait."},{t:"Keep distance records from day one",b:"IRP renewals and IFTA returns are both built on per-jurisdiction miles, and an ELD with automatic state-line crossings produces them without a driver logbook."}],mistakes:["Choosing a base state you cannot document a real place of business in.","Listing only two states to save money, then paying trip permits every time a load routes elsewhere.","Reconstructing mileage from fuel receipts at renewal, which is where most IRP and IFTA audits go wrong."],faqs:[{q:"Do I need IRP for one truck?",a:"Yes, if that truck is over 26,000 lbs GVW or has three or more axles and you cross state lines. Fleet size is irrelevant; weight, axles and jurisdictions decide."},{q:"Why is the first IRP year so expensive?",a:"With no mileage history, the base state charges from an average distance chart across all listed jurisdictions. Once you file a real mileage year, your apporti
41onment reflects where you actually ran."},{q:"How does an ELD help with IRP and IFTA?",a:"An ELD records per-state distance automatically, so renewals and quarterly IFTA returns come from the system rather than from paper trip sheets. ELD Hub includes IFTA reporting in the $15 per truck per month plan at no extra charge."}]},{path:"/dot-drug-testing-consortium",label:"Drug & alcohol consortium",h1:"DOT Drug and Alcohol Consortium for New Carriers",title:"DOT Drug Testing Consortium — Cost and Rules | ELD Hub",description:"What a DOT drug and alcohol testing consortium costs, why an owner-operator cannot self-administer random testing, Clearinghouse registration, and the pre-employment test order.",summary:"$50–$100 per driver per year. Required before the first dispatch.",fee:"$50–$100 per driver per year, plus per-test fees",timeline:"Enrollment is same day; pre-employment test before first dispatch",filedWith:"A third-party consortium/TPA, plus FMCSA Clearinghouse registration",form:"Consortium enrollment agreement; Clearinghouse account",quickQuestion:"Do owner-operators need a drug testing consortium?",quickAnswer:"Yes. A CDL driver operating under their own authority cannot administer their own random testing program, so FMCSA requires enrollment in a consortium or third-party administrator that runs the random pool. Enrollment runs roughly $50 to $100 per driver per year. A negative pre-employment test and an FMCSA Clearinghouse query must be complete before the first dispatch.",whoNeeds:["Every CDL driver operating a commercial motor vehicle in interstate commerce","Owner-operators, who must join a consortium because they cannot self-administer randoms","Carriers with any employee drivers holding a CDL"],steps:[{t:"Enroll in a consortium or TPA",b:"The consortium maintains the random selection pool, schedules tests and keeps the records an auditor will ask for."},{t:"Register with the FMCSA Clearinghouse",b:"Carriers must run a full query before hiring and a limited query annually for each driver. Owner-operators designate their consortium as their Clearinghouse representative."},{t:"Take the pre-employment test",b:"A verified negative must be on file before the driver performs any safety-sensitive function."},{t:"Maintain the written policy and supervisor training",b:"A DOT audit asks for the company's written drug and alcohol policy and reasonable-suspicion training records, not just test results."}],mistakes:["Assuming a clean CDL medical card covers the drug program. They are separate requirements.","Dispatching the first load before the pre-employment result is verified negative.","Not designating a Clearinghouse representative as an owner-operator, which blocks required queries."],faqs:[{q:"How much does a DOT drug consortium cost?",a:"Typically $50 to $100 per driver per year for enrollment and random pool management, with individual test fees on top."},{q:"How often are random tests?",a:"FMCSA sets annual minimum random rates each year, applied to the consortium's pool. A driver can be selected more than once in a year, or not at all."},{q:"What else does FMCSA require before my first load?",a:"A valid medical card, the Clearinghouse query, proof of insurance on file, active operating authority and an FMCSA-registered ELD in the truck. ELD Hub covers the last item at $15 per truck per month with no contract."}]}],ti=[{path:"/start-trucking-company-texas",state:"Texas",abbr:"TX",eldPath:"/eld-texas",title:"How to Start a Trucking Company in Texas (2026 Costs)",description:"Texas LLC fees, TxDMV motor carrier registration, IRP and IFTA through TxDMV, intrastate rules, and the real year-one budget for a new Texas authority.",llcFee:"$300 certificate of formation",llcAnnual:"No annual report fee; franchise tax report required (usually $0 tax under the threshold)",irpOffice:"TxDMV Motor Carrier Division",intrastate:"Texas requires a TxDMV motor carrier registration (TxDMV number) for intrastate for-hire operation, separate from your federal MC authority.",notes:[{t:"TxDMV number for intrastate freight",b:"If you plan to haul inside Texas for hire, the federal MC number is not enough. TxDMV issues a separate intrastate motor carrier registration."},{t:"Franchise tax report is not optional",b:"Even with no tax due, a Texas LLC files an annual franchise tax report. Missing it forfeits the entity's right to transact business."},{t:"Biggest freight market in the country",b:"Texas has the highest interstate freight volume of any state, which means the most brokers and the most competition on rates out of Dallas, Houston and Laredo."}],quickAnswer:"A Texas trucking company files a $300 LLC certificate of formation with the Secretary of State, gets a free USDOT number, pays $300 for MC authority, and registers IRP and IFTA through TxDMV. Intrastate for-hire freight also needs a separate TxDMV motor carrier registration. Plan on roughly $10,000 to $18,000 in year-one compliance and insurance costs, excluding the truck."},{path:"/start-trucking-company-california",state:"California",abbr:"CA",eldPath:"/eld-california",title:"How to Start a Trucking Company in California (2026 Costs)",description:"California LLC and franchise tax, CA number and MCP permit, CARB Clean Truck Check, IRP through the DMV, and what a new California authority really costs in year one.",llcFee:"$70 articles of organization, plus $20 statement of information",llcAnnual:"$800 minimum franchise tax every year",irpOffice:"California DMV Motor Carrier Services",intrastate:"Intrastate for-hire carriers need a CA number and a Motor Carrier Permit (MCP) from the DMV, in addition to federal authority.",notes:[{t:"The $800 franchise tax changes the math",b:"Every California LLC owes an $800 minimum franchise tax annually regardless of profit. Budget it from year one."},{t:"CARB Clean Truck Check",b:"California requires periodic emissions compliance reporting for most heavy-duty vehicles operating in the state, including out-of-state trucks."},{t:"MCP is the intrastate gate",b:"Hauling within California for hire requires a Motor Carrier Permit tied to your CA number and proof of insurance on file with the DMV."}],quickAnswer:"A California trucking company files $70 LLC articles with the Secretary of State, owes an $800 minimum franchise tax each year, gets a free USDOT number and $300 MC authority, and registers IRP through the DMV. Intrastate for-hire work also needs a CA number and Motor Carrier Permit, and most heavy-duty trucks must meet CARB Clean Truck Check reporting."},{path:"/start-trucking-company-florida",state:"Florida",abbr:"FL",eldPath:"/eld-florida",title:"How to Start a Trucking Company in Florida (2026 Costs)",description:"Florida LLC filing and annual report, FLHSMV IRP and IFTA, no state income tax, intrastate rules, and the year-one budget for a new Florida trucking authority.",llcFee:"$125 to form the LLC",llcAnnual:"$138.75 annual report, due by May 1",irpOffice:"FLHSMV Bureau of Commercial Vehicle and Driver Services",intrastate:"Florida does not require a separate intrastate operating authority for most for-hire freight, but IRP, IFTA and insurance requirements still apply.",notes:[{t:"The May 1 annual report deadline is strict",b:"Miss it and Florida adds a $400 late fee that cannot be waived. Calendar it the day you form the LLC."},{t:"No state income tax",b:"Florida has no personal state income tax, which is why a lot of owner-operators domicile here. Base state still has to be where you actually operate from."},{t:"Hurricane-season insurance",b:"Physical damage premiums in coastal Florida run above the national average. Quote early and compare inland domicile options honestly."}],quickAnswer:"A Florida trucking company pays $125 to form the LLC and $138.75 for the annual report each May, gets a free USDOT number and $300 MC authority, and registers IRP and IFTA through FLHSMV. Florida has no state income tax and no separate intrastate authority for most for-hire freight, but insurance in coastal counties runs above the national average."},{path:"/start-trucking-company-georgia",state:"Georgia",abbr:"GA",eldPath:"/eld-georgia",title:"How to Start a Trucking Company in Georgia (2026 Costs)",description:"Georgia LLC fees, Department of Revenue IRP and IFTA, intrastate registration, Atlanta freight market notes, and the real cost of launching a Georgia trucking authority.",llcFee:"$100 online articles of organization",llcAnnual:"$50 annual registration, due by April 1",irpOffice:"Georgia Department of Revenue, Motor Vehicle Division",intrastate:"Georgia intrastate for-hire carriers register with the Department of Public Safety and must carry state-minimum liability coverage.",notes:[{t:"Atlanta is a top-three freight hub",b:"Volume out of Atlanta is high year-round, which makes it one of the easier markets for a new authority to keep a truck loaded."},{t:"April 1 annual registration",b:"Georgia's $50 annual registration is due April 1 and late filing carries a $25 penalty plus administrative dissolution risk."},{t:"IRP and IFTA through Revenue, not DDS",b:"Georgia processes apportioned plates and fuel tax through the Department of Revenue, a different office than driver licensing."}],quickAnswer:"A Georgia trucking company files $100 LLC articles and pays a $50 annual registration each April, gets a free USDOT number and $300 MC authority, and registers IRP and IFTA through the Department of Revenue. Intrastate for-hire carriers also register with the Department of Public Safety. Atlanta's freight volume makes Georgia one of the stronger markets for a new authority."},{path:"/start-trucking-company-illinois",state:"Illinois",abbr:"IL",eldPath:"/eld-illinois",title:"How to Start a Trucking Company in Illinois (2026 Costs)",description:"Illinois LLC fees, Secretary of State IRP and IFTA, Illinois Commerce Commission intrastate authority, Chicago market notes, and a realistic year-one budget.",llcFee:"$150 articles of organization",llcAnnual:"$75 annual report",irpOffice:"Illinois Secretary of State, Commercial and Farm Tru
41ck Division",intrastate:"Intrastate for-hire carriers need authority from the Illinois Commerce Commission, separate from the federal MC number.",notes:[{t:"ICC authority for intrastate freight",b:"Illinois is one of the states that still requires its own intrastate operating authority through the Commerce Commission."},{t:"Chicago rail and drayage volume",b:"Chicago is the largest intermodal hub in North America, which opens drayage work that does not exist in most markets — and comes with its own credentialing."},{t:"IRP through the Secretary of State",b:"Unlike most states, Illinois runs apportioned registration through the Secretary of State rather than a DMV or revenue department."}],quickAnswer:"An Illinois trucking company files $150 LLC articles and a $75 annual report, gets a free USDOT number and $300 MC authority, and registers IRP and IFTA through the Secretary of State. Intrastate for-hire freight also requires Illinois Commerce Commission authority. Chicago's intermodal volume gives new Illinois authorities access to drayage work most markets do not have."}],b3=[{phase:"Before you file anything",window:"Week 1",items:[{t:"Decide interstate or intrastate, for-hire or private",b:"This single answer decides which of the filings below apply to you. Getting it wrong means refiling."},{t:"Form the LLC in your operating state",b:"$50–$500 depending on the state. Do this first — the EIN and every filing after it carries the legal entity name."},{t:"Get the EIN from the IRS",b:"Free and instant online. Required for the USDOT registration and for opening a business bank account."},{t:"Open a business bank account",b:"Factoring companies and brokers pay to a business account in the carrier's legal name. Personal accounts cause payment delays."}]},{phase:"Federal registration",window:"Weeks 1–2",items:[{t:"Apply for the USDOT number",b:"Free through the FMCSA Unified Registration System. Usually issued the same session."},{t:"Apply for MC operating authority",b:"$300, non-refundable. This starts the 21-day protest clock, so file it as early as possible."},{t:"File the BOC-3 through a process agent",b:"$40–$50 one time. File it the same week — it is cheap, fast, and authority cannot activate without it."},{t:"Register with the FMCSA Clearinghouse",b:"Required before you can run the pre-employment drug query on yourself or any driver."}]},{phase:"Insurance and equipment",window:"Weeks 2–5",items:[{t:"Bind primary liability and cargo coverage",b:"$8,000–$14,000 for a first-year owner-operator. The insurer must file proof electronically; a certificate alone does not activate authority."},{t:"Buy or finance the truck",b:"Have the VIN before IRP. Apportioned registration is per-vehicle."},{t:"Register your ELD",b:"An FMCSA-registered ELD is required from the first mile under authority. ELD Hub is $15 per truck per month with no contract, and registration takes about two minutes so it never becomes the thing holding up your first load."},{t:"Enroll in a drug and alcohol consortium",b:"$50–$100 per driver per year, plus a verified negative pre-employment test before the first dispatch."}]},{phase:"State registrations",window:"Weeks 3–6",items:[{t:"Apply for IRP apportioned plates",b:"$1,200–$2,500 in year one through your base state, because year one uses an average per-mile chart."},{t:"Register for IFTA",b:"Quarterly fuel-tax returns per jurisdiction. Most base states process IRP and IFTA together."},{t:"File UCR",b:"About $46 a year in the 0–2 vehicle tier. Enforcement of each registration year starts January 1."},{t:"Check state-specific intrastate authority",b:"Texas, California and Illinois each require their own intrastate registration on top of the federal MC number."}]},{phase:"Getting loaded",window:"Weeks 5–12",items:[{t:"Set up carrier packets with brokers",b:"W-9, COI, MC authority letter, notice of assignment if you factor, and your signed carrier agreement."},{t:"Line up factoring or a cash reserve",b:"Brokers pay on 30-day terms. Without factoring you need roughly two months of operating cash before the first check lands."},{t:"Get a fuel card",b:"Fuel is the largest variable cost in the operation, and discount networks pay for themselves inside the first month."},{t:"Set up your maintenance and DVIR routine",b:"Daily driver vehicle inspection reports are required and are checked at roadside. They are part of your ELD account, not a separate paper book."},{t:"Prepare for the new-entrant safety audit",b:"FMCSA audits new authorities within the first 12 months. Complete HOS records, DVIRs, drug program files and maintenance records are exactly what they ask for."}]}],K8={Texas:{low:300,high:300},California:{low:90,high:890},Florida:{low:125,high:264},Georgia:{low:100,high:150},Illinois:{low:150,high:225},"Other state":{low:50,high:500}},v3=yn.find(e=>e.path==="/boc-3-filing");function Rf({className:e="",showNoUsdot:t=!1}){return c.jsxs("div",{className:e,children:[c.jsx("p",{className:"text-xs text-muted-foreground",children:Af}),t&&c.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:[T$.replace(" Call 302-404-1177 and we will get your account set up manually.","")," ",c.jsx("a",{href:Ee.phone,className:"font-semibold text-accent hover:underline",children:"Call 302-404-1177"})," ","and we will get your account set up manually."]})]})}function sa({detail:e,headline:t="Register now, activate the day your MC clears",sub:n="FMCSA requires an ELD from your first mile under authority. Set it up while you wait — $15 per truck per month, no contract, cancel anytime.",className:o=""}){return c.jsxs("div",{className:`rounded-2xl border border-accent/40 bg-gradient-to-br from-accent/10 via-card to-card p-5 shadow-accent sm:p-6 ${o}`,children:[c.jsxs("div",{className:"inline-flex items-center gap-1.5 rounded-full border border-accent/30 bg-accent/10 px-2.5 py-1 text-[11px] font-bold uppercase tracking-[0.16em] text-accent",children:[c.jsx(kf,{className:"size-3"})," New authority"]}),c.jsx("h2",{className:"mt-3 text-xl font-bold tracking-tight text-foreground sm:text-2xl",children:t}),c.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:n}),c.jsxs("div",{className:"mt-5 flex flex-wrap items-center gap-3",children:[c.jsxs("a",{href:Ee.registration,onClick:()=>ur("portal_handoff",`new_carrier_${e}`,typeof window<"u"?window.location.pathname:""),className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-5 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.02]",children:[c.jsx(yt,{className:"size-4"})," ",Lf," ",c.jsx(at,{className:"size-4"})]}),c.jsx(W,{to:"/new-authority-eld",className:"text-sm font-semibold text-accent hover:underline",children:"New-carrier ELD guide →"})]}),c.jsx(Rf,{className:"mt-3",showNoUsdot:!0})]})}const w3={fleetCount:{wording:"1,200+ fleets",source:"ELD Hub account records, confirmed by ownership 2026-08-22.",verified:"2026-08-22",review:"2026-11-22",status:"verified"},rating:{wording:"4.9/5 from 127 reviews",source:"ELD Hub customer reviews, confirmed by ownership 2026-08-22.",verified:"2026-08-22",review:"2026-11-22",status:"verified"},trial:{wording:"14-day free trial",qualification:"No contract, no setup fee. Cancel any time during the trial.",source:"ELD Hub registration flow at portal.goeldhub.com/registration.",verified:"2026-08-22",review:"2026-11-22",status:"verified"},pricing:{wording:"$15 per truck per month",qualification:"Flat, month-to-month. HOS, DVIR, IFTA, GPS and the driver app included.",source:"Published ELD Hub pricing.",verified:"2026-08-22",review:"2026-11-22",status:"verified"},hardware:{wording:"$150 one-time for either PT-30 or IOSiX, free shipping",qualification:"PT-30 includes a diagnostic cable; IOSiX is device only. Both are in stock and ship same or next business day, mainland USA. Compatible PT-30 and IOSiX units you already own are re-registered free.",source:"ELD Hub hardware offer confirmed by ownership 2026-09-22.",verified:"2026-09-22",review:"2026-12-22",status:"verified"}
41,integrations:{wording:"Integrated with Highway and Trucker Tools",qualification:"Carriers asked by a broker to connect an ELD can connect an ELD HUB account directly, including sprinter vans, cargo vans, box trucks and vehicles under 10,000 lbs.",source:"Confirmed by ELD HUB ownership 2026-09-03.",verified:"2026-09-03",review:"2026-12-03",status:"verified"},lightDutyHardware:{wording:"PT-30 and IOSiX supported on vans, box trucks and vehicles under 10,000 lbs",qualification:"Standard OBD-II fitment; 9-pin on heavier chassis with the included cable.",source:"Confirmed by ELD HUB ownership 2026-09-03.",verified:"2026-09-03",review:"2026-12-03",status:"verified"},support:{wording:"US phone support during business hours, plus a 24/7 AI advisor",qualification:"Human follow-up next business day outside phone hours.",source:"ELD Hub support model, confirmed by ownership 2026-08-22.",verified:"2026-08-22",review:"2026-11-22",status:"verified"},fuelSavings:{wording:"Up to $2/gal at participating stops",qualification:"Savings vary by route, station and network pricing.",source:"AtoB partner network published discount range.",verified:"2026-08-22",review:"2026-11-22",status:"verified"},fmcsa:{wording:"FMCSA-registered ELD",qualification:"Listed on the FMCSA registered-device list, 49 CFR Part 395.",source:"https://eld.fmcsa.dot.gov",verified:"2026-08-22",review:"2026-11-22",status:"verified"},truckStopCount:{wording:"8,000+ truck stops",source:"Partner-supplied figure. No public source on file.",verified:"",review:"2026-09-22",status:"needs-verification"},lenderCount:{wording:"75+ lending providers",source:"Partner-supplied figure. No public source on file.",verified:"",review:"2026-09-22",status:"needs-verification"},factoringRate:{wording:"1–2% with same-day funding",source:"Partner-supplied figure. Rate and funding time vary by carrier profile.",verified:"",review:"2026-09-22",status:"needs-verification"},insuranceSavings:{wording:"Commercial insurance at big-fleet pricing",source:"Partner-supplied positioning. No documented savings percentage.",verified:"",review:"2026-09-22",status:"needs-verification"}};function x3(e){return w3[e].wording}function Pr({className:e=""}){const t=[{Icon:ia,label:"FMCSA-registered"},{Icon:mn,label:x3("fleetCount")},{Icon:cu,label:"$15/truck · No contract"},{Icon:kf,label:"5-min self-install"},{Icon:Df,label:"US phone support + 24/7 AI"}];return c.jsx("div",{className:`flex flex-wrap items-center justify-center gap-x-6 gap-y-3 rounded-xl border border-border/70 bg-secondary/20 px-4 py-4 text-xs ${e}`,children:t.map(({Icon:n,label:o})=>c.jsxs("span",{className:"inline-flex items-center gap-2 font-medium text-foreground/80",children:[c.jsx(n,{className:"size-4 text-accent","aria-hidden":!0}),o]},o))})}function ri(e){const t=`https://goeldhub.com${e.path}`;return{meta:[{title:e.title},{name:"description",content:e.description},{property:"og:title",content:e.title},{property:"og:description",content:e.description},{property:"og:type",content:"article"},{property:"og:url",content:t},{property:"og:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"HowTo",name:e.h1,description:e.description,estimatedCost:{"@type":"MonetaryAmount",currency:"USD",value:e.fee},step:e.steps.map((n,o)=>({"@type":"HowToStep",position:o+1,name:n.t,text:n.b}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(n=>
41({"@type":"Question",name:n.q,acceptedAnswer:{"@type":"Answer",text:n.a}}))})}]}}function Q8({guide:e}){const t=yn.filter(n=>n.path!==e.path).slice(0,5);return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-5xl px-6 py-14 sm:py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Jo,{className:"size-3.5"})," New authority filing"]}),c.jsx("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.h1}),c.jsx(Ft,{question:e.quickQuestion,answer:e.quickAnswer}),c.jsx("dl",{className:"mt-8 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[["Cost",e.fee],["Timeline",e.timeline],["Filed with",e.filedWith],["Form",e.form]].map(([n,o])=>c.jsxs("div",{className:"rounded-xl border border-border bg-card p-4",children:[c.jsx("dt",{className:"text-xs font-bold uppercase tracking-[0.16em] text-muted-foreground",children:n}),c.jsx("dd",{className:"mt-1.5 text-sm font-semibold text-foreground",children:o})]},n))}),c.jsx("div",{className:"mt-8",children:c.jsx(sa,{detail:e.path.replace(/^\//,"")})}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:"Who has to file this"}),c.jsx("ul",{className:"mt-6 space-y-3",children:e.whoNeeds.map(n=>c.jsxs("li",{className:"flex items-start gap-3 rounded-lg border border-border bg-card p-4 text-sm text-muted-foreground",children:[c.jsx(ut,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsx("span",{children:n})]},n))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"How to file it, in order"}),c.jsx("ol",{className:"mt-6 space-y-4",children:e.steps.map((n,o)=>c.jsxs("li",{className:"flex gap-5 rounded-xl border border-border bg-card p-6",children:[c.jsx("div",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-accent/10 text-sm font-bold text-accent",children:o+1}),c.jsxs("div",{children:[c.jsx("p",{className:"font-bold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1.5 text-sm text-muted-foreground",children:n.b})]})]},n.t))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"What trips new carriers up"}),c.jsx("ul",{className:"mt-6 space-y-3",children:e.mistakes.map(n=>c.jsxs("li",{className:"flex items-start gap-3 rounded-lg border border-border bg-card p-4 text-sm text-muted-foreground",children:[c.jsx(CE,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsx("span",{children:n})]},n))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Questions new carriers ask"}),c.jsx("div",{className:"mt-6 space-y-3",children:e.faqs.map(n=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer list-none font-semibold text-foreground marker:hidden",children:n.q}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:n.a})]},n.q))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"The rest of the launch sequence"}),c.jsxs("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:[t.map(n=>c.jsxs(W,{to:n.path,className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsxs("p",{className:"font-semibold text-foreground",children:[n.label," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.summary})]},n.path)),c.jsxs(W,{to:"/new-carrier-checklist",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"90-day launch checklist →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Every filing in dependency order, start to first load."})]}),c.jsxs(W,{to:"/trucking-startup-cost-calculator",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Startup cost calculator →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Your year-one budget, itemized by filing."})]})]}),c.jsx("div",{className:"mt-12",children:c.jsx(sa,{detail:`${e.path.replace(/^\//,"")}_footer`})})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}const E3=()=>C(()=>import("./boc-3-filing-GtG2oGEU.js"),[]),S3=R()({head:()=>ri(v3),component:A(E3,"component")}),k3="ELD HUB is an FMCSA-registered ELD provider and is fully integrated 
41with Highway and Trucker Tools. If a broker or carrier-vetting platform is asking you to connect an ELD, an ELD HUB account satisfies that request — including on sprinter vans, cargo vans, box trucks and vehicles under 10,000 lbs. Month to month at $15 per vehicle, no contract, and hardware at $150 per device with free shipping.",es=[{q:"Is an ELD required for a vehicle under 10,001 lbs?",a:"No. The FMCSA ELD mandate applies to commercial vehicles with a gross vehicle weight rating of 10,001 lbs or more that are required to keep records of duty status. A sprinter van, cargo van or light box truck under 10,001 lbs GVWR is outside the mandate. Many carriers still add an ELD because brokers and carrier-vetting platforms now ask for a connected ELD or telematics account before releasing loads."},{q:"Why is a broker or vetting platform asking me for an ELD if I am exempt?",a:"Broker-side vetting is not the FMCSA. Platforms use a live ELD or telematics connection to confirm the truck exists, is where the carrier says it is, and matches the MC on the load. That is an access requirement to book freight, not a federal requirement. ELD HUB is integrated with Highway and Trucker Tools, so an ELD HUB account meets that requirement."},{q:"Is ELD HUB integrated with Highway and Trucker Tools?",a:"Yes. ELD HUB is fully integrated with both Highway and Trucker Tools. Once your device is installed and reporting, your duty status and vehicle location can be connected to those platforms so brokers can verify the load — on vans, box trucks and vehicles under 10,000 lbs as well as tractors."},{q:"What is the cheapest way to add an ELD to a van or light truck?",a:"ELD HUB is $15 per truck per month, month to month with no contract and a 14-day free trial. PT-30 and IOSiX hardware each cost $150 with free shipping and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own can be re-registered free."},{q:"How fast can I be set up?",a:"Register online in about two minutes, plug the device into the vehicle's diagnostic port, and pair it to the free ELD HUB app on iOS or Android. Most single-vehicle operators are recording within a day of the device arriving; if you already own a compatible device you can be running the same day."}],D3=[{path:"/sprinter-van-eld",slug:"sprinter-van",eyebrow:"Sprinter vans",h1:"Sprinter Van ELD: Do You Need One, and the Cheapest Way to Add It",title:"Sprinter Van ELD — $15/mo, No Contract | ELD HUB",description:"Sprinter vans under 10,001 lbs are exempt from the ELD mandate, but brokers and vetting platforms now ask for a connected ELD. Get set up for $15/month.",ogTitle:"Sprinter Van ELD — $15/month",ogDescription:"Exempt from the mandate but asked for an ELD anyway? Here is the cheapest compliant way to add one to a Sprinter.",intro:"Most Sprinter, Transit and ProMaster operators have never needed an ELD. Now brokers and carrier-vetting platforms are asking for one before they release a load. Here is exactly what is required, what is not, and the cheapest way to get connected.",quickQuestion:"Do Sprinter vans need an ELD?",quickAnswer:"A Sprinter van under 10,001 lbs GVWR is exempt from the FMCSA ELD mandate. A Sprinter rated at 10,001 lbs or more that crosses state lines commercially and keeps records of duty status more than 8 days in any 30-day period does need one. Many exempt van operators add an ELD anyway because brokers and vetting platforms require a live connection. ELD Hub costs $15 per van per month.",rules:[{t:"Under 10,001 lbs GVWR — not required by FMCSA",d:"A standard Sprinter 2500 sits under the line. No ELD, no RODS, no HOS logging required by the federal mandate."},{t:"10,001 lbs GVWR or more — likely required",d:"A Sprinter 3500 or 4500, or a van-and-trailer combination over 10,001 lbs, crossing state lines commercially puts you inside the mandate once you keep RODS 9+ days in a 30-day window."},{t:"Broker and vetting-platform requirements — separate rule",d:"Independent of weight. If the platform your brokers use asks for a connected ELD, an exempt van still needs a real account to keep booking freight."},{t:"150 air-mile short-haul",d:"Even over 10,001 lbs, staying within 150 air-miles of your reporting location and returning within 14 hours lets you use timecards instead of RODS."}],fitment:["Sprinter, Transit, ProMaster and NV vans built after 1996 have a standard OBD-II port, usually under the dash on the driver's side.","The PT-30 plugs straight into that port — no wiring, no installer, no tools.","Pairs over Bluetooth with the free ELD Hub app on the driver's own phone. No dedicated tablet needed.","PT-30 and IOSiX hardware is supported on sprinter vans — $150 per device with free shipping, month to month with 
41no contract, and integrated with Highway and Trucker Tools."],faqs:[{q:"Does a Sprinter 2500 need an ELD?",a:"Not under the federal mandate — a Sprinter 2500 is rated under 10,001 lbs GVWR, so FMCSA HOS and ELD rules do not apply. A Sprinter 3500 or 4500, or any van pulling a trailer that puts the combination over 10,001 lbs, can fall inside the mandate when crossing state lines commercially."},...es]},{path:"/cargo-van-eld",slug:"cargo-van",eyebrow:"Cargo vans",h1:"Cargo Van ELD: What Is Required and What Brokers Now Ask For",title:"Cargo Van ELD — $15/mo Compliance for Vans | ELD HUB",description:"Cargo vans are usually ELD-exempt, but broker vetting platforms now ask for a connected ELD. Add one to your van for $15/month, no contract, 14-day trial.",ogTitle:"Cargo Van ELD — $15/month",ogDescription:"Cargo van operators asked for an ELD by a broker or vetting platform: what is required and the cheapest way to comply.",intro:"Expedited cargo van carriers built their business without an ELD because the mandate never touched them. That changed the moment vetting platforms started asking for a live telematics connection. This page covers the rules and the fastest low-cost setup.",quickQuestion:"Do cargo vans need an ELD?",quickAnswer:"A cargo van under 10,001 lbs GVWR is not covered by the FMCSA ELD mandate and does not need an ELD for federal compliance. It may still need one to keep booking freight, because brokers and carrier-vetting platforms increasingly require a connected ELD or telematics account. ELD Hub provides that for $15 per vehicle per month with no contract.",rules:[{t:"Federal mandate: only at 10,001 lbs GVWR and above",d:"Most cargo vans are below that line, which is why van carriers were never in scope."},{t:"Interstate commerce still applies",d:"Being ELD-exempt does not exempt you from USDOT registration, insurance filings or safety rules if you operate interstate for hire."},{t:"Broker vetting is the new driver of demand",d:"Load boards and vetting platforms use ELD data to verify the vehicle and its location. No connection can mean no loads, regardless of weight."},{t:"Van plus trailer changes the math",d:"If the combined rating crosses 10,001 lbs, federal HOS and ELD rules can apply to the whole combination."}],fitment:["Any cargo van with a standard OBD-II port works with the PT-30 — plug in and drive.","PT-30 or IOSiX is $150 per device with free shipping — in stock, ships same or next business day. PT-30 includes a cable; IOSiX is device only.","Already own a PT-30 or IOSiX from a previous provider? We re-register it free.","Driver app runs on the phone the driver already carries, iOS or Android.","Integrated with Highway and Trucker Tools, so a broker asking you to connect an ELD can be satisfied with an ELD HUB account."],faqs:[{q:"Can I run an ELD in a cargo van voluntarily?",a:"Yes. Nothing stops an exempt carrier from running a real ELD account, and it is the normal way to satisfy a broker or vetting-platform requirement. You get GPS tracking, duty-status records and DVIR alongside it."},...es]},{path:"/box-truck-eld",slug:"box-truck",eyebrow:"Box trucks",h1:"Box Truck ELD: Requirements by Weight and the $15/Month Option",title:"Box Truck ELD Requirements 2026 — $15/mo | ELD HUB",description:"Box truck ELD rules by GVWR: when the FMCSA mandate applies, when you are exempt, and how to add a compliant ELD for $15/month with no contract.",ogTitle:"Box Truck ELD Requirements — $15/month",ogDescription:"When a box truck needs an ELD, when it does not, and the cheapest FMCSA-registered way to add one.",intro:"Box trucks sit on both sides of the line. A 26-foot straight truck is squarely inside the ELD mandate; a light 12-foot box under 10,001 lbs is outside it. Either way, brokers are now asking for a connected ELD. Here is how to sort it out.",quickQuestion:"Do box trucks need an ELD?",quickAnswer:"A box truck with a gross vehicle weight rating of 10,001 lbs or more that operates in interstate commerce and keeps records of duty status more than 8 days in any 30-day period needs an ELD. Most 16-foot and larger box trucks meet that. A light box truck under 10,001 lbs GVWR is exempt from the mandate, though brokers and vetting platforms may still require a connected ELD. ELD Hub is $15 per truck per month.",rules:[{t:"10,001 lbs GVWR and above — mandate applies",d:"Most 16 ft, 20 ft and 26 ft box trucks are rated well above 10,001 lbs. Interstate, for-hire, RODS 9+ days in 30 means an ELD is required."},{t:"Under 10,001 lbs GVWR — exempt",d:"Light box and cube trucks below the rating are outside the federal ELD rule entirely."},{t:"Non-CDL does not mean exempt",d:"A box truck under 26,001 lbs needs no CDL, but the ELD mandate keys on 10,001 lbs, not the CDL threshold. Plenty of non-CDL box trucks need an ELD."},{t:"150 air-mile short-haul",d:"Local box-truck work that stays within 150 air-miles and returns within 14 hours can use timecards instead of RODS."}],fitment:["Light and medium box trucks use a standard OBD-II port; heavier chassis may use a 9-pin port. The PT-30 supports both with the right cable.","PT-30 or IOSiX is $150 one-time with free shipping — in stock, ships same or next business day. PT-30 includes a cable; IOSiX is device only.","Plug-and-play in about 10 minutes, no installer or shop visit.","PT-30 and IOSiX hardware is supported on box trucks of every size, CDL or non-CDL, and integrated 
41with Highway and Trucker Tools."],faqs:[{q:"Does a 26-foot box truck need an ELD?",a:"Almost always yes. A 26 ft box truck is typically rated at 26,000 lbs GVWR, far above the 10,001 lb threshold, so interstate for-hire operation with RODS on 9 or more days in a rolling 30-day period requires an ELD, CDL or not."},{q:"Does a non-CDL box truck need an ELD?",a:"It can. The ELD mandate is based on a 10,001 lb gross vehicle weight rating, while the CDL threshold is 26,001 lbs. A non-CDL box truck rated between those two numbers running interstate is inside the ELD mandate."},...es]},{path:"/pickup-truck-eld",slug:"pickup-truck",eyebrow:"Pickup trucks & hotshot",h1:"Pickup Truck ELD: When a 3/4-Ton or 1-Ton Needs One",title:"Pickup Truck ELD Requirements 2026 — $15/mo | ELD HUB",description:"Does a pickup truck need an ELD? Rules by combined weight rating for 3/4-ton and 1-ton trucks pulling trailers, plus a $15/month FMCSA-registered option.",ogTitle:"Pickup Truck ELD Requirements — $15/month",ogDescription:"When a pickup and trailer crosses the 10,001 lb line, what the CDL threshold has to do with it, and the cheapest compliant ELD.",intro:"A pickup on its own is usually under the line. Hook a loaded gooseneck to it and you are almost certainly over it. The ELD question for pickups is decided by the combined rating, not by whether you hold a CDL.",quickQuestion:"Does a pickup truck need an ELD?",quickAnswer:"A pickup needs an ELD when the truck, or the truck and trailer combined, is rated at 10,001 lbs or more, it operates in interstate commerce for hire, and the driver keeps records of duty status more than 8 days in any rolling 30-day period. A 3/4-ton or 1-ton pulling a loaded gooseneck normally clears that. No CDL is needed under 26,001 lbs combined, but that does not exempt you from the ELD rule. ELD Hub is $15 per truck per month.",rules:[{t:"Combined rating decides it",d:"The 10,001 lb threshold applies to the gross combination weight rating, not the pickup alone. A 14,000 lb truck plus any real trailer is over it."},{t:"Half-ton with a light trailer — usually exempt",d:"A 1/2-ton pickup pulling a small utility trailer often stays under 10,001 lbs combined and falls outside the mandate entirely."},{t:"No CDL is not an exemption",d:"The CDL threshold is 26,001 lbs; the ELD threshold is 10,001 lbs. Most non-CDL hotshot setups sit between the two, which means an ELD is required."},{t:"150 air-mile short-haul and the 8-day rule",d:"Stay within 150 air-miles and return within 14 hours, or keep RODS on 8 or fewer days in any 30, and you can run on timecards or paper."}],fitment:["Every modern pickup has a standard OBD-II port under the dash; the PT-30 plugs straight in with no shop visit.","$150 one-time for either PT-30 or IOSiX with free shipping — in stock, ships same or next business day. PT-30 includes a cable; IOSiX is device only.","Already own a PT-30 or IOSiX from a previous provider? We re-register it free — same-day setup.","Works the same whether you run CDL or non-CDL, and is integrated with Highway and Trucker Tools for broker vetting."],faqs:[{q:"Does a hotshot pickup need an ELD?",a:"Usually yes. A 3/4-ton or 1-ton pickup with a loaded gooseneck is almost always rated above 10,001 lbs combined, so interstate for-hire operation with records of duty status on 9 or more days in a rolling 30-day period requires an ELD."},{q:"Do I need an ELD if I do not have a CDL?",a:"Possibly. The ELD mandate keys on a 10,001 lb weight rating while the CDL threshold is 26,001 lbs. Non-CDL hotshot operators frequently fall inside the ELD rule."},...es]},{path:"/eld-under-10000-lbs",slug:"under-10000",eyebrow:"Under 10,001 lbs",h1:"ELD for Vehicles Under 10,000 lbs: Exempt, But Still Being Asked",title:"ELD Under 10,000 lbs — Exempt but Broker-Required | ELD HUB",description:"Vehicles under 10,001 lbs GVWR are exempt from the ELD mandate. Brokers and vetting platforms still ask for a connected ELD — here is the $15/month way to add one.",ogTitle:"ELD Under 10,000 lbs — Exempt, But Asked Anyway",ogDescription:"What the FMCSA requires below 10,001 lbs, what brokers now require, and the cheapest compliant setup.",intro:"If your power unit is rated under 10,001 lbs, the ELD mandate does not apply to you. That has not stopped the requests. Vetting platforms and brokers ask light-duty carriers for a live ELD connection, and there is no exemption from a private company's access rules.",quickQuestion:"Do vehicles under 10,000 lbs need an ELD?",quickAnswer:"No. The FMCSA ELD mandate applies at 10,001 lbs gross vehicle weight rating and above, so a vehicle under that rating is exempt and does not have to keep electronic records of duty status. Carriers running light vehicles often add an ELD voluntarily because brokers and carrier-vetting platforms require a connected ELD account before releasing loads. ELD Hub costs $15 per vehicle per month with a 14-d
41ay free trial.",rules:[{t:"The federal line is 10,001 lbs GVWR",d:"Below it, no ELD, no RODS, no HOS logging under the mandate. That has not changed."},{t:"Private access requirements are not exemptions",d:"A broker or vetting platform can set its own conditions for booking freight. Being FMCSA-exempt does not override them."},{t:"A voluntary ELD is a real ELD",d:"Running one voluntarily gives you the same FMCSA-registered account, GPS records and duty-status history as a mandated carrier — which is exactly what the platform wants to see."},{t:"Trailers can push you over the line",d:"Check the combination rating, not just the power unit. A light truck with a loaded trailer can cross 10,001 lbs."}],fitment:["Works on any light-duty vehicle with a standard OBD-II port: van, pickup, cube truck, light box.","PT-30 or IOSiX at $150 one-time with free shipping — in stock, ships same or next business day. PT-30 includes a cable; IOSiX is device only.","Bring your own PT-30 or IOSiX and we re-register it at no cost.","One flat price per vehicle — no per-load fee, no annual contract, cancel any time.","Integrated with Highway and Trucker Tools for broker verification, on PT-30 and IOSiX hardware alike."],faqs:[{q:"Am I breaking any rule by running an ELD when I am exempt?",a:"No. Voluntary use is allowed. Some carriers prefer it for the GPS, IFTA mileage and DVIR records even when nobody is asking for it."},...es]}];function Os(e){const t=D3.find(n=>n.path===e);if(!t)throw new Error(`Unknown light-duty page: ${e}`);return t}const Na=Os("/box-truck-eld");function J8({page:e}){const t=c.jsxs("a",{href:Ee.registration,onClick:()=>ur("portal_handoff",`light_duty_${e.slug}`,typeof window<"u"?window.location.pathname:""),className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," ",Lf," ",c.jsx(at,{className:"size-4"})]});return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1 text-xs font-semibold text-accent",children:[c.jsx(mn,{className:"size-3.5"})," ",e.eyebrow]}),c.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.h1}),c.jsx("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:e.intro}),c.jsx("div",{className:"max-w-3xl",children:c.jsx(Ft,{question:e.quickQuestion,answer:e.quickAnswer})}),c.jsx(Pr,{className:"mt-8"}),c.jsxs("div",{className:"mt-8 flex flex-wrap items-center gap-3",children:[t,c.jsx(W,{to:"/eld-for-highway",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-background px-6 py-3 text-sm font-semibold text-foreground transition hover:bg-secondary/50",children:"Asked for an ELD by a broker?"})]}),c.jsx(Rf,{className:"mt-3",showNoUsdot:!0})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold text-foreground",children:"When an ELD Is Required — and When It Is Not"}),c.jsx("div",{className:"mt-8 space-y-4",children:e.rules.map(n=>c.jsxs("div",{className:"flex gap-4 rounded-xl border border-border bg-background p-5",children:[c.jsx(ut,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.d})]})]},n.t))}),c.jsx("p",{className:"mt-6 rounded-xl border border-border bg-secondary/20 p-5 text-sm text-muted-foreground",children:k3})]})}),c.jsx("section",{className:"border-b border-border/70 bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold text-foreground",children:"Hardware and Setup"}),c.jsx("ul",{className:"mt-8 space-y-3",children:e.fitment.map(n=>c.jsxs("li",{className:"flex gap-3 rounded-xl border border-border bg-background p-4 text-sm text-muted-foreground",children:[c.jsx(K2,{className:"mt-0.5 size-4 shrink-0 text-accent"}),c.jsx("span",{children:n})]},n))}),c.jsxs("div",{className:"mt-8 flex flex-wrap gap-3",children:[t,c.jsx(W,{to:"/connect-eld-to-highway",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-background px-6 py-3 text-sm font-semibold text-foreground transition hover:bg-secondary/50",children:"Setup steps"})]})]})}),c.jsx("section",{children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold text-foreground",children:"FAQ"}),c.jsx("div",{className:"mt-8 space-y-4",children:e.faqs.map(n=>c.jsxs("details",{className:"group rounded-xl border border-border bg-background p-5",children:[c.jsxs("summary",{className:"flex cursor-pointer items-center justify-between gap-4 text-base font-semibold text-foreground",children:[c.jsxs("span",{className:"inline-flex items-center gap-2",children:[c.jsx(Hr,{className:"size-4 text-accent"}),n.q]}),c.jsx("span",{className:"text-accent transition group-open:rotate-45",children:"+"})]}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:n.a})]},n.q))}),c.jsxs("div",{className:"mt-10 rounded-xl border border-border bg-secondary/20 p-6 text-center",children:[c.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"$15 per vehicle per month. No contract. 14-day free trial."}),c.jsx("div",{className:"mt-4 flex justify-center",children:t})]}),c.jsxs("div",{className:"mt-8 text-center text-sm text-muted-foreground",children:["Related: ",c.jsx(W,{to:"/eld-for-highway",className:"text-accent hover:underline",children:"ELD for broker vetting"})," ·"," ",c.jsx(W,{to:"/highway-eld-integration",className:"text-accent hover:underline",children:"Highway ELD integration"})," ·"," ",c.jsx(W,{to:"/eld-exemptions",className:"text-accent hover:underline",children:"ELD exemptions"})," ·"," ",c.jsx(W,{to:"/cheap-eld",className:"text-accent hover:underline",children:"Cheapest ELD"})," ·"," ",c.jsx(W,{to:"/hardware/pt30-eld",className:"text-accent hover:underline",children:"PT-30 device"})," ·"," ",c.jsx(W,{to:"/best-eld-small-fleets",className:"text-accent hover:underline",children:"Best ELD for small fleets"})]})]})}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function $s(e){return{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(t=>
41({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))}}const T3=()=>C(()=>import("./box-truck-eld-CRWtfjk1.js"),[]),L3=R()({head:()=>({meta:[{title:Na.title},{name:"description",content:Na.description},{property:"og:title",content:Na.ogTitle},{property:"og:description",content:Na.ogDescription},...de("compliance","ELD Hub — FMCSA-registered ELD for box trucks."),{property:"og:url",content:`https://goeldhub.com${Na.path}`},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:`https://goeldhub.com${Na.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify($s(Na))}]}),component:A(T3,"component")}),tp=[{t:"BOC-3 process agent",b:"A blanket BOC-3 filing costs about $40 one time and has to be on file before FMCSA grants your authority. It takes minutes through any process-agent service."},{t:"UCR and IFTA",b:"Register for UCR every year (about $46 at the smallest fleet tier). If you cross state lines above 26,000 lbs you also need IFTA decals from your base state."},{t:"Drug and alcohol consortium",b:"Any driver operating a CMV requiring a CDL must be enrolled in a testing consortium with a pre-employment negative on file before the first dispatch. Budget $50 to $100 per driver per year."},{t:"Set up your ELD before the first load",b:"Register with ELD HUB while you wait on authority: $15 per vehicle per month, no contract, 14-day free trial. PT-30 or IOSiX hardware costs $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. Install the compatible device and pair it with the app. Brokers may ask for a connected ELD even if you are federally exempt; ELD HUB integrates with Highway and Trucker Tools."}],jE=[{path:"/how-to-start-box-truck-business",slug:"box-truck-business",eyebrow:"Box truck startup",h1:"How to Start a Box Truck Business in 2026",title:"How to Start a Box Truck Business (2026 Cost Guide) | ELD HUB",description:"Everything it takes to start a box truck business: truck cost, CDL rules, USDOT and MC authority, insurance ranges, where the loads are, and the ELD brokers ask for.",intro:"A box truck is the cheapest way into for-hire freight with your own authority. No CDL is needed under 26,001 lbs, the truck costs a fraction of a tractor, and expedite and final-mile freight is steady. Here is the full sequence, in the order it actually has to happen.",quickQuestion:"How much does it cost to start a box truck business?",quickAnswer:"Excluding the truck, expect roughly $6,000 to $12,000 in year one for a single non-CDL box truck under your own authority: $300 for MC authority, $50 to $500 for the LLC, about $40 for the BOC-3, roughly $46 UCR, $4,000 to $9,000 for insurance, and an ELD. A used 26-foot box truck typically runs $20,000 to $45,000 on top. ELD HUB is $15 per truck per month with a $150 device.",licensing:[{t:"Under 26,001 lbs GVWR — no CDL",d:"A 26-foot box truck is usually spec'd at exactly 26,000 lbs so a non-CDL driver can run it. You still need a DOT medical card for interstate work."},{t:"Over 10,001 lbs — you are inside FMCSA rules",d:"Non-CDL does not mean unregulated. Above 10,001 lbs GVWR in interstate commerce you need a USDOT number, hours-of-service compliance, and an ELD once you keep records of duty status 9 or more days in any rolling 30-day window."},{t:"26,001 lbs and above — CDL Class B",d:"Heavier straight trucks, or a box truck pulling a trailer over the combined threshold, move you into CDL territory."}],steps:[{t:"Decide the truck first",b:"16 to 26 feet, liftgate or not. A liftgate opens up final-mile and retail freight and is worth the extra cost. Used 26-foot trucks commonly sell for $20,000 to $45,000 depending on mileage and box condition."},{t:"Form the LLC and get an EIN",b:"State filing fees run roughly $50 to $500. The EIN is free and issued instantly from the IRS. Open a business bank account before any money moves."},{t:"Apply for a USDOT number",b:"Free through the FMCSA Unified Registration System on form MCSA-1, usually issued the same session."},{t:"Apply for MC operating authority",b:"$300, non-refundable, for interstate for-hire freight. Expect roughly 3 to 6 weeks from filing to active authority, including the 21-day protest period."},{t:"Get insurance quotes early",b:"FMCSA requires $750,000 in liability for general freight; most brokers want $1,000,000 plus $100,000 cargo. New-authority box truck policies commonly quote in the $4,000 to $9,000 per-year range and can be financed with about 35% down. Quotes vary widely by state, driver age and experience — treat these as market ranges, not a price."},...tp],costs:[{label:"Used box truck",range:"$20,000 – $45,000",note:"16–26 ft, liftgate adds cost"},{label:"LLC formation",range:"$50 – $500",note:"Varies by state"},{label:"USDOT number",range:"Free",note:"FMCSA form MCSA-1"},{label:"MC authority",range:"$300",note:"Non-refundable"},{label:"BOC-3 process agent",range:"~$40",note:"One time, blanket nationwide"},{label:"Insurance (year 1)",range:"$4,000 – $9,000",note:"Typical market range, financeable"},{label:"UCR",range:"~$46",note:"Smallest fleet tier, annual"},{label:"ELD HUB",range:"$15/mo + $150 device",note:"No contract, 14-day free trial"}],loads:["Load boards: DAT, Truckstop and free board listings carry straight-truck and expedite freight daily.","Amazon Relay runs a box truck program with its own vehicle, authority, insurance and tracking requirements.","Broker relationships in retail, furniture and final-mile delivery — the freight that a 26-footer with a liftgate is built for.","Local and regional dedicated contracts, which pay less per mile but fill the week.","Nearly all of these run carrier vetting first, and vetting platforms increasingly w
41ant a connected ELD before releasing a load."],faqs:[{q:"Do I need a CDL to start a box truck business?",a:"Not if the truck is rated under 26,001 lbs GVWR, which covers most 16 to 26 foot box trucks. You do need a DOT medical card for interstate operation, and the FMCSA hours-of-service and ELD rules still apply above 10,001 lbs."},{q:"Does a box truck business need an ELD?",a:"If the truck is 10,001 lbs GVWR or more, runs interstate for hire, and you keep records of duty status more than 8 days in any 30-day period, yes — CDL or not. Below 10,001 lbs you are exempt from the mandate, but brokers and carrier-vetting platforms often still require a connected ELD before they will release a load."},{q:"How much does it cost to start a box truck business?",a:"Roughly $6,000 to $12,000 in year one for registration, filings and insurance on a single truck, plus $20,000 to $45,000 for a used truck if you are buying rather than financing. The ELD line is small: $15 per truck per month with a one-time $150 device."},{q:"Can I start a box truck business without authority?",a:"Yes, by leasing onto a carrier that already holds authority, or by running under contract for a delivery network. You give up rate control but skip the MC filing, the $300 fee and the higher insurance minimums."},{q:"How long does it take to get started?",a:"The LLC and USDOT number take a day. MC authority is the long pole at roughly 3 to 6 weeks including the protest period and insurance filing. Register your ELD during that wait so you are recording from the first mile."}],eldPath:"/box-truck-eld",eldLabel:"Box truck ELD rules",loadsPath:"/box-truck-loads"},{path:"/how-to-start-cargo-van-business",slug:"cargo-van-business",eyebrow:"Cargo & sprinter van startup",h1:"How to Start a Cargo Van Business in 2026",title:"How to Start a Cargo Van Business (2026 Guide) | ELD HUB",description:"Start a cargo or sprinter van business: van cost, no CDL required, USDOT and MC authority, insurance ranges, expedite loads, and the ELD brokers now ask for.",intro:"Expedited cargo and sprinter van freight is the lowest-cost entry into trucking that still lets you run your own authority. No CDL, a van you can finance, and hot-shot style expedite rates. Here is the sequence and the real money.",quickQuestion:"How much does it cost to start a cargo van business?",quickAnswer:"Excluding the van, plan on roughly $4,000 to $9,000 in year one under your own authority: $300 MC authority, $50 to $500 for the LLC, about $40 for the BOC-3, roughly $46 UCR, and $2,500 to $6,000 for insurance. A used cargo or sprinter van typically runs $15,000 to $40,000. An ELD is not federally required under 10,001 lbs but most broker-vetting platforms ask for one; ELD HUB is $15 per van per month.",licensing:[{t:"No CDL, at any van size",d:"Cargo vans and sprinters sit far below the 26,001 lb CDL threshold. A regular driver's license is enough."},{t:"Under 10,001 lbs — outside the ELD mandate",d:"Most cargo vans and Sprinter 2500s are rated below 10,001 lbs GVWR, which puts them outside the federal HOS and ELD rules entirely."},{t:"You still need USDOT and MC for interstate for-hire work",d:"Weight exemptions do not exempt you from operating authority, insurance filings or safety regulation when hauling freight for hire across state lines."},{t:"Broker vetting is the real requirement",d:"Vetting platforms can require a connected ELD or telematics feed regardless of your weight class. That is an access rule for booking freight, not a federal one."}],steps:[{t:"Pick the van",b:"High-roof extended Sprinter, Transit or ProMaster gives the most usable cubic feet and lets you stand up inside. Used units commonly sell for $15,000 to $40,000; expedite shippers care about clean cargo space, e-track and a working liftgate more than badge."},{t:"Form the LLC and get an EIN",b:"$50 to $500 depending on state, EIN free and instant from the IRS, business bank account before the first invoice."},{t:"Apply for a USDOT number",b:"Free, FMCSA form MCSA-1, usually issued the same session."},{t:"Apply for MC operating authority",b:"$300, non-refundable. Roughly 3 to 6 weeks to active authority including the 21-day protest period."},{t:"Insurance",b:"Expedite van policies commonly quote $2,500 to $6,000 per year for a new authority with $1,000,000 liability and $100,000 cargo, financeable at roughly 35% down. These are market ranges, not quotes — your state, age and driving record move them a lot."},...tp],costs:[{label:"Used cargo / sprinter van",range:"$15,000 – $40,000",note:"High-roof extended preferred"},{label:"LLC formation",range:"$50 – $500",note:"Varies by state"},{label:"USDOT number",range:"Free",note:"FMCSA form MCSA-1"},{label:"MC authority",range:"$300",note:"Non-refundable"},{label:"BOC-3 process agent",range:"~$40",note:"One time"},{label:"Insurance (year 1)",range:"$2,500 – $6,000",note:"Typical market range, financeable"},{label:"UCR",range:"~$46",note:"Annual, smallest tier"},{label:"ELD HUB",range:"$15/mo + $150 device",note:"Optional federally, often required by brokers"}],loads:["Expedite boards: Sylectus, DAT and Truckstop all carry straight-van and sprinter freight.","Expedite c
41arriers who lease on owner-operators with their own vans, often with a dedicated dispatcher.","Hospital, aerospace and automotive hot-shot runs, where the load has to move the same day.","Final-mile and courier contracts for steady local volume between expedite runs.","Carrier-vetting platforms sit in front of most of this freight, and many now ask a van carrier to connect an ELD."],faqs:[{q:"Do I need a CDL for a cargo van business?",a:"No. Cargo vans and sprinter vans are far below the 26,001 lb CDL threshold, so a standard driver's licence is enough. A DOT medical card can still be requested by some shippers."},{q:"Does a cargo van need an ELD?",a:"Not under the FMCSA mandate if the van is rated under 10,001 lbs GVWR. Many van carriers add one anyway because brokers and carrier-vetting platforms require a connected ELD before releasing loads. ELD HUB is $15 per van per month with no contract."},{q:"How much can a cargo van owner-operator make?",a:"Earnings depend entirely on lane, expedite rates and how much of the week you keep loaded, so we will not publish a number we cannot stand behind. Build your own figure from your actual cost per mile before you buy a van."},{q:"Do I need MC authority for a cargo van?",a:"Yes, for interstate for-hire freight, regardless of how light the van is. Weight exemptions apply to hours-of-service and ELD rules, not to operating authority."},{q:"What does a cargo van business cost to start?",a:"Roughly $4,000 to $9,000 in filings, authority and insurance for year one, plus the van itself at $15,000 to $40,000 used."}],eldPath:"/cargo-van-eld",eldLabel:"Cargo van ELD rules",loadsPath:"/cargo-van-loads"},{path:"/how-to-start-hotshot-business",slug:"hotshot-business",eyebrow:"Hotshot startup",h1:"How to Start a Hotshot Business With a Pickup Truck",title:"How to Start a Hotshot Business With a Pickup (2026) | ELD HUB",description:"Start hotshot trucking with a pickup and gooseneck: CDL vs non-CDL, truck and trailer cost, USDOT and MC authority, insurance ranges, loads, and ELD rules.",intro:"Hotshot is the pickup-truck route into for-hire freight: a 1-ton dually, a 40-foot gooseneck, and loads that a tractor is too big for. The trap is the 26,001 lb combined line, which decides whether you need a CDL. Here is the whole sequence.",quickQuestion:"How do I start a hotshot business with a pickup truck?",quickAnswer:"Buy a 3/4 or 1-ton pickup and a gooseneck or deckover trailer, form an LLC, get a free USDOT number, file for MC authority at $300, secure insurance, file a BOC-3, register for UCR and set up an ELD. Combined ratings under 26,001 lbs avoid a CDL; above that you need a Class A. Expect roughly $7,000 to $15,000 in year-one costs before the truck, and ELD HUB at $15 per truck per month.",licensing:[{t:"Under 26,001 lbs GCWR — no CDL",d:"A 1-ton pickup at 14,000 lbs paired with a trailer rated 11,999 lbs keeps you under the line. Many hotshot operators spec exactly for this."},{t:"26,001 lbs GCWR and above — CDL Class A",d:"The common 14,000 lb truck plus 21,000 lb gooseneck combination is well over the line and needs a Class A CDL."},{t:"Over 10,001 lbs combined — ELD territory",d:"The ELD mandate keys on 10,001 lbs, not the CDL threshold. A loaded pickup and trailer crossing state lines commercially almost always clears it, so an ELD is required once you keep RODS 9 or more days in a rolling 30-day window."},{t:"150 air-mile short-haul",d:"Stay within 150 air-miles of your reporting location and return within 14 hours and you can use timecards instead of RODS."}],steps:[{t:"Spec the truck and trailer together",b:"The combined rating decides your licence class, your insurance and your ELD obligation. Decide CDL or non-CDL before you buy, not after. A used 1-ton dually runs $30,000 to $70,000; a 40-foot gooseneck $10,000 to $20,000."},{t:"Form the LLC and get an EIN",b:"$50 to $500 by state. EIN free and instant. Separate business bank account."},{t:"Apply for a USDOT number",b:"Free, FMCSA form MCSA-1, same session in most cases."},{t:"Apply for MC operating authority",b:"$300, non-refundable, roughly 3 to 6 weeks to active including the protest period."},{t:"Insurance",b:"Hotshot policies are priced closer to tractor policies than van policies. New-authority quotes commonly land in the $5,500 to $11,000 per-year range with $1,000,000 liability and $100,000 cargo, financeable at about 35% down. Market ranges only — flatbed and oversize commodities push them higher."},...tp],costs:[{label:"Used 1-ton dually",range:"$30,000 – $70,000",note:"Diesel, gooseneck-ready"},{label:"Gooseneck / deckover trailer",range:"$10,000 – $20,000",note:"32–40 ft typical"},{label:"LLC formation",range:"$50 – $500",note:"Varies by state"},{label:"MC authority",range:"$300",note:"Non-refundable"},{label:"BOC-3 process agent",range:"~$40",note:"One time"},{label:"Insurance (year 1)",range:"$5,500 – $11,000",note:"Typical market range, financeable"}
41,{label:"IRP apportioned plates",range:"$500 – $1,100",note:"Base-state, mileage chart"},{label:"ELD HUB",range:"$15/mo + $150 device",note:"OBD-II or 9-pin, self-install"}],loads:["DAT and Truckstop hotshot and flatbed boards, filtered to your deck length and weight.","Oilfield, construction equipment and agricultural dealers who move one machine at a time.","RV, boat and vehicle transport brokers for deck freight.","Direct shipper relationships built off repeat lanes — the only reliable way off the load boards.","Broker vetting applies here too: a connected ELD is increasingly part of getting approved to haul."],faqs:[{q:"Do I need a CDL for hotshot trucking?",a:"It depends on the combined rating. Under 26,001 lbs GCWR you do not need a CDL; at 26,001 lbs and above you need a Class A. Most 1-ton and gooseneck combinations exceed the line, so plan the spec before you buy."},{q:"Does a hotshot pickup need an ELD?",a:"Yes, if the combination is over 10,001 lbs, crosses state lines commercially, and you keep records of duty status 9 or more days in any rolling 30-day period. The 150 air-mile short-haul exemption and the 8-day RODS rule can keep a local operator out of it."},{q:"How much does it cost to start hotshot trucking?",a:"Roughly $7,000 to $15,000 in year-one filings, authority, plates and insurance, plus $40,000 to $90,000 for a used truck and trailer if you are buying outright."},{q:"Is hotshot trucking still profitable?",a:"That depends on your lanes, your fuel cost and how much deadhead you accept, and it is not something we will promise a number for. Work out your cost per mile first and compare it to the rates on your lanes."},{q:"What is the cheapest ELD for hotshot?",a:"ELD HUB at $15 per truck per month, no contract, 14-day free trial. A PT-30 or IOSiX device costs $150 each with free shipping. PT-30 includes a diagnostic cable; IOSiX is device only. Check fitment for your pickup before ordering."}],eldPath:"/pickup-truck-eld",eldLabel:"Pickup truck ELD rules"}];function If(e){const t=jE.find(n=>n.path===e);if(!t)throw new Error(`Unknown start-business guide: ${e}`);return t}const Lw=["Your MC authority is active and your insurance certificate is on file with the broker.","Your safety profile is clean in FMCSA SAFER and in the vetting platform the broker uses.","Your carrier packet is complete: W-9, authority letter, COI, and a signed broker-carrier agreement.","Your ELD or telematics account is connected so the broker can verify the truck and its location. ELD HUB is integrated with Highway and Trucker Tools.","A factoring or payment method is set up so you are not waiting 45 days on your first invoice."],A3=[{path:"/box-truck-loads",slug:"box-truck-loads",eyebrow:"Box truck freight",h1:"Where to Find Box Truck Loads in 2026",title:"How to Find Box Truck Loads (2026) | ELD HUB",description:"Where box truck loads actually come from: load boards, Amazon Relay, final-mile contracts and direct brokers — plus the carrier vetting you have to clear first.",intro:"Getting the truck and the authority is the easy half. Keeping a 26-footer loaded is the part that decides whether the business works. Here is where straight-truck freight comes from and what brokers check before they hand it to you.",quickQuestion:"Where can I find box truck loads?",quickAnswer:"Box truck loads come from load boards such as DAT and Truckstop, Amazon Relay's box truck program, final-mile and retail delivery contracts, and direct broker relationships. Almost all of them require active MC authority, $1,000,000 liability with $100,000 cargo insurance, a completed carrier packet, and increasingly a connected ELD so the broker can verify the truck's location.",sources:[{t:"Load boards",d:"DAT and Truckstop both filter for straight trucks and box trucks. Paid boards carry the most volume; free boards are worth watching but thin. Expect to build a lane list rather than take whatever is posted."},{t:"Amazon Relay",d:"Amazon runs a box truck program with published vehicle, authority, insurance and tracking requirements. Read the requirements before you apply — see our Amazon Relay requirements page."}
41,{t:"Final-mile and retail delivery",d:"Furniture, appliance and retail delivery networks contract straight trucks with liftgates, usually on a route or day-rate basis. Lower rate per mile, far more predictable weeks."},{t:"Expedite brokers",d:"Time-critical freight that is too big for a van and too small for a tractor is the natural box-truck niche, and it pays the best per mile."},{t:"Direct shippers",d:"Local manufacturers and distributors with repeat outbound freight. Slowest to win, best margin, and the only real way off the boards."}],vetting:Lw,faqs:[{q:"Can I get box truck loads without authority?",a:"Yes, by leasing onto a carrier that holds its own authority or by contracting with a delivery network. You trade rate control for a faster start and lower insurance requirements."},{q:"Do brokers require an ELD for a box truck?",a:"Brokers themselves usually do not, but the carrier-vetting platforms they use increasingly ask for a connected ELD or telematics feed to confirm the truck and its location. ELD HUB satisfies that and is integrated with Highway and Trucker Tools, at $15 per truck per month."},{q:"What insurance do brokers want from a box truck carrier?",a:"FMCSA requires $750,000 liability for general freight, but most brokers will not load you under $1,000,000 liability with $100,000 cargo. Check the broker's packet before quoting a load."},{q:"Is Amazon Relay worth it for a box truck?",a:"It offers volume without sales work, but the requirements are strict and rates are set. Treat it as one channel rather than your only one, and read Amazon's own published carrier requirements."}],startPath:"/how-to-start-box-truck-business",startLabel:"How to start a box truck business",eldPath:"/box-truck-eld",eldLabel:"Box truck ELD rules"},{path:"/cargo-van-loads",slug:"cargo-van-loads",eyebrow:"Van freight",h1:"Where to Find Cargo Van and Sprinter Loads",title:"How to Find Cargo Van & Sprinter Loads (2026) | ELD HUB",description:"Where cargo van and sprinter loads come from: expedite boards, Sylectus, courier contracts and direct brokers — and the carrier vetting, including ELD, you clear first.",intro:"Expedite van freight moves fast and books fast. The carriers who stay loaded are the ones already approved in the broker's system when the load drops. Here is where the freight is and what approval takes.",quickQuestion:"Where can I find cargo van loads?",quickAnswer:"Cargo van and sprinter loads come from expedite networks such as Sylectus, the van filters on DAT and Truckstop, courier and final-mile contracts, and direct broker relationships. Approval normally needs active MC authority, $1,000,000 liability with $100,000 cargo, a complete carrier packet, and increasingly a connected ELD — which vans are federally exempt from but brokers still ask for.",sources:[{t:"Expedite networks",d:"Sylectus and the expedite carrier groups move most true hot-shot van freight. Many require you to lease onto a member carrier rather than book direct."},{t:"Load boards with van filters",d:"DAT and Truckstop both list straight-van and sprinter freight. Volume is lower than dry van but the rates on time-critical runs are strong."},{t:"Courier and final-mile contracts",d:"Medical, pharmacy, parts and same-day courier work. Route-based, less glamorous, and it pays the insurance every month."},{t:"Direct brokers in critical industries",d:"Automotive line-down, aerospace AOG and medical device freight is where a van earns expedite money. These accounts vet hard and stay loyal."}],vetting:Lw,faqs:[{q:"Do I need an ELD to get cargo van loads?",a:"Not federally — a van under 10,001 lbs GVWR is exempt from the ELD mandate. In practice a growing share of brokers and carrier-vetting platforms will not release a load until they can see a connected ELD or telematics feed. ELD HUB is integrated with Highway and Trucker Tools at $15 per van per month."},{q:"Do I need my own authority to haul van loads?",a:"Not always. Many expedite van operators lease onto a carrier that holds authority, which removes the $300 MC filing and lowers insurance requirements but also lowers the rate you keep."},{q:"What insurance do van carriers need?",a:"Brokers commonly ask for $1,000,000 liability and $100,000 cargo even on a small van. Some medical and high-value lanes ask for more."},{q:"How fast can I be approved with a broker?",a:"Once authority is active and insurance is filed, a carrier packet is usually processed within a day or two. The delay is almost always a missing certificate, an unfinished vetting profile, or an ELD connection the platform is waiting on."}],startPath:"/how-to-start-cargo-van-business",startLabel:"How to start a cargo van business",eldPath:"/cargo-van-eld",eldLabel:"Cargo van ELD rules"}];function qE(e){const t=A3.find(n=>n.path===e);if(!t)throw new Error(`Unknown loads guide: ${e}`);return t}const _3=qE("/box-truck-loads");function ME(e){const t=`https://goeldhub.com${e.path}`;return{meta:[{title:e.title},{name:"description",content:e.description},{property:"og:title",content:e.h1},{property:"og:description",content:e.description},{property:"og:type",content:"article"},{property:"og:url",content:t},{property:"og:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(n=>
41({"@type":"Question",name:n.q,acceptedAnswer:{"@type":"Answer",text:n.a}}))})}]}}function Z8({guide:e}){return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-5xl px-6 py-14 sm:py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Qp,{className:"size-3.5"})," ",e.eyebrow]}),c.jsx("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.h1}),c.jsx("p",{className:"mt-4 max-w-3xl text-lg text-muted-foreground",children:e.intro}),c.jsx(Ft,{question:e.quickQuestion,answer:e.quickAnswer}),c.jsx("div",{className:"mt-8",children:c.jsx(sa,{detail:e.slug,headline:"Brokers check for a connected ELD before they load you",sub:"ELD HUB is integrated with Highway and Trucker Tools. $15 per vehicle per month, no contract, 14-day free trial, $150 device with free shipping."})}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:"Where the freight is"}),c.jsx("div",{className:"mt-6 space-y-4",children:e.sources.map(t=>c.jsxs("div",{className:"flex gap-4 rounded-xl border border-border bg-card p-6",children:[c.jsx(Qp,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsxs("div",{children:[c.jsx("p",{className:"font-bold text-foreground",children:t.t}),c.jsx("p",{className:"mt-1.5 text-sm text-muted-foreground",children:t.d})]})]},t.t))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"What you clear before a broker loads you"}),c.jsx("ul",{className:"mt-6 space-y-3",children:e.vetting.map(t=>c.jsxs("li",{className:"flex gap-3 rounded-xl border border-border bg-card p-5 text-sm text-muted-foreground",children:[c.jsx(ut,{className:"mt-0.5 size-4 shrink-0 text-accent"}),c.jsx("span",{children:t})]},t))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"FAQ"}),c.jsx("div",{className:"mt-6 space-y-4",children:e.faqs.map(t=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsxs("summary",{className:"flex cursor-pointer items-center justify-between gap-4 text-base font-semibold text-foreground",children:[c.jsxs("span",{className:"inline-flex items-center gap-2",children:[c.jsx(Hr,{className:"size-4 text-accent"}),t.q]}),c.jsx("span",{className:"text-accent transition group-open:rotate-45",children:"+"})]}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:t.a})]},t.q))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Keep going"}),c.jsxs("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:[c.jsxs(W,{to:e.startPath,className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsxs("p",{className:"font-semibold text-foreground",children:[e.startLabel," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Truck, authority, insurance and the real year-one cost."})]}),c.jsxs(W,{to:e.eldPath,className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsxs("p",{className:"font-semibold text-foreground",children:[e.eldLabel," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"When an ELD is required and what it costs."})]}),c.jsxs(W,{to:"/amazon-relay-requirements",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Amazon Relay requirements →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Vehicle, authority, insurance and tracking rules."})]}),c.jsxs(W,{to:"/broker-eld-requirements",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"A broker asked me to connect an ELD →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"What vetting platforms want and how to satisfy it."})]})]}),c.jsx("div",{className:"mt-12",children:c.jsx(sa,{detail:`${e.slug}_footer`})})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}const C3=()=>C(()=>import("./box-truck-loads-GPCER4L2.js"),[]),R3=R()({head:()=>ME(_3),component:A(C3,"component")}),I3=[{q:"Why does my broker require an ELD when my van is exempt?",a:"The exemption is federal. Brokers and carrier-vetting platforms set their own access rules and use ELD or telematics data to verify that the truck exists, matches the MC on the load, and is where the carrier says it is. An exempt carrier can meet that by running a real ELD account voluntarily."},{q:"What is the cheapest ELD that satisfies broker vetting?",a:"ELD HUB is $15 per vehicle per month with 
41no contract and a 14-day free trial. PT-30 and IOSiX each cost $150 with free shipping; PT-30 includes a cable, IOSiX is device only. ELD HUB is integrated with Highway and Trucker Tools."},{q:"How fast can I be connected?",a:"If you already own a PT-30 or IOSiX device, the same day. If you need hardware, orders ship same or next business day and setup afterwards takes about 10 minutes."},{q:"Do I need a USDOT number to set up an ELD?",a:"Not to create the account. You need one to operate as an interstate for-hire carrier, and a broker will ask for active authority before loading you, but you can get the ELD ready while the filings are in progress."},{q:"Can I use a phone app instead of a device?",a:"No. An FMCSA-registered ELD has to read data from the engine through a connected device. A phone app alone is not an ELD, and a vetting platform reading location from a phone is not the same as a connected ELD feed."}],O3=()=>C(()=>import("./broker-eld-requirements-ScwPE7yE.js"),[]),$3="Broker ELD Requirements — What Vetting Asks For | ELD HUB",Aw="Why brokers and carrier-vetting platforms ask you to connect an ELD, what they actually see, and how to satisfy it for $15 per vehicle per month with no contract.",N3={"@context":"https://schema.org","@type":"FAQPage",mainEntity:I3.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},H3=R()({head:()=>({meta:[{title:$3},{name:"description",content:Aw},{property:"og:title",content:"Why Your Broker Wants You to Connect an ELD"},{property:"og:description",content:Aw},...de("compliance","ELD Hub — FMCSA-registered ELD from $15/vehicle/month."),{property:"og:url",content:"https://goeldhub.com/broker-eld-requirements"},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/broker-eld-requirements"}],scripts:[{type:"application/ld+json",children:JSON.stringify(N3)}]}),component:A(O3,"component")}),ts="PT-30 and IOSiX are in stock at $150 each with free shipping, shipping same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only.",P3="Highway is an independent carrier-identity and vetting platform used by brokers. ELD HUB is not affiliated with, endorsed by or owned by Highway. ELD HUB is an FMCSA-registered ELD provider whose accounts can be connected when a broker's vetting process asks a carrier to connect an ELD.",_w="A Highway-connected ELD is now required by most major brokers before they release a load. It is a broker access rule, not a federal rule — which is why carriers that are exempt from the ELD mandate are still being asked for one.",rp="$15 per truck per month, month to month with no contract, 14 days free, and PT-30 or IOSiX in stock at $150 each with free shipping (PT-30 with cable; IOSiX device only).",j3=[{path:"/highway-eld-integration",eyebrow:"Highway ELD integration",h1:"Highway ELD Integration — Connect an ELD HUB Account to Highway",intro:"If a broker told you to connect an ELD in Highway before they release your load, ELD HUB is an FMCSA-registered ELD that connects. Register, plug the device into the diagnostic port, select ELD HUB in Highway and authorize it. "+rp,title:"Highway ELD Integration — Connect in Minutes | ELD HUB $15/Truck",description:"Broker asking you to connect an ELD in Highway? ELD HUB is integrated at $15/truck/month, no contract, 14 days free. PT-30 or IOSiX $150 each, free shipping, ships same or next business day.",ogTitle:"Highway ELD Integration — ELD HUB Connects in Minutes",ogDescription:"ELD HUB integrates with Highway for broker vetting. $15/truck/month, no contract, 14-day free trial, $150 device in stock with free shipping.",quickQuestion:"Which ELD works with Highway?",quickAnswer:"ELD HUB is an FMCSA-registered ELD integrated with Highway. Create an account, install a PT-30 or IOSiX device, then choose ELD HUB in Highway and authorize it. Your duty status and location start reporting. Software is $15/truck/month with a 14-day free trial. Both devices cost $150 each with free shipping and ship same or next business day; PT-30 includes a cable, IOSiX is device only.",pointsHeading:"Why Brokers Are Asking for Highway",points:[{t:"Most major brokers now require it",d:"Highway is used to confirm that a carrier is who it says it is, that the truck exists, and that the truck is where the carrier claims. Connecting an ELD has become a standard condition of booking freight with most large brokerages and digital load boards."},{t:"Being ELD-exempt does not exempt you",d:"A broker is a private company and can set its own access rules. Carriers running sprinter vans, cargo vans, box trucks or hotshot pickups under 10,001 lbs are exempt from the federal mandate but still have to connect an ELD to keep booking loads."},{t:"ELD HUB is already integrated",d:"There is no workaround, no separate telematics subscription and no third-party bridge. Select ELD HUB as your provider in Highway and authorize the connection with your account details."},{t:"The cheapest way to satisfy it",d:"$15 per truck per month, month to month, cancel any time, with HOS, DVIR, IFTA and GPS included. Fleet-focused providers typically charge $30–$45 per truck and ask for an annual contract. "+ts}],stepsHeading:"Connect to Highway in Four Steps",steps:[{t:"Create your ELD HUB account",d:"Four short steps at the ELD HUB portal — personal details, company info with your USDOT and MC, billing. About two minutes. The 14-day free trial starts here and there is no contract."},{t:"Get a device — in stock today",d:"PT-30 and IOSiX are each $150 with free shipping, in stock and shipping same or next business day. PT-30 includes a cable; IOSiX is device only. Already own a compatible device? Send us the serial and we re-register it free."},{t:"Plug in and confirm reporting",d:"Plug the device into the OBD-I
41I or 9-pin diagnostic port, pair it with the free ELD HUB app on the driver's phone, start the engine and confirm the vehicle shows a live position. Around ten minutes, no tools and no installer."},{t:"Select ELD HUB in Highway",d:"In Highway's connection screen, choose ELD HUB as your ELD provider and authorize the connection with your ELD HUB account details. Duty status and vehicle location start flowing to the broker straight away. Stuck? Call 302-404-1177 and we complete it with you."}],faqs:[{q:"Does ELD HUB integrate with Highway?",a:"Yes. ELD HUB is fully integrated with Highway. Pick ELD HUB in Highway's ELD connection flow and authorize it with your ELD HUB credentials — no manual workaround and no extra telematics fee."},{q:"How fast can I be connected to Highway?",a:"If you already own a compatible PT-30 or IOSiX device, you can connect the same day. If you need hardware, both models are in stock at $150 each with free shipping and ship same or next business day."},{q:"How much does a Highway-compatible ELD cost?",a:"ELD HUB is $15 per truck per month with no contract and a 14-day free trial. New PT-30 or IOSiX hardware is $150 each with free shipping. PT-30 includes the cable; IOSiX is device only. Compatible devices you already own are re-registered free."},{q:"My van is under 10,001 lbs. Do I still need this?",a:"You are exempt from the federal ELD mandate, but a broker can still require a connected ELD in Highway before releasing a load. Running an ELD HUB account voluntarily satisfies that requirement on vans, box trucks and hotshot pickups."},{q:"Do I need a separate account for every truck?",a:"No. One ELD HUB account covers your whole operation. Each vehicle needs its own device and is billed at $15 per month. There is no minimum fleet size and no per-load fee."}]},{path:"/eld-that-works-with-highway",eyebrow:"Works with Highway",h1:"An ELD That Works With Highway — Set Up Today",intro:"You need an ELD that connects to Highway, not a research project. ELD HUB is FMCSA-registered, integrated with Highway, and the device is in stock. "+rp,title:"ELD That Works With Highway — Connect Today | ELD HUB",description:"Need an ELD that works with Highway? ELD HUB is FMCSA-registered and integrated with Highway. $15/truck/month, no contract, 14 days free. PT-30 and IOSiX each $150, free shipping, ships same or next business day.",ogTitle:"An ELD That Works With Highway — ELD HUB",ogDescription:"ELD HUB connects to Highway for broker vetting. $15 per truck per month, no contract, 14-day free trial, device in stock.",quickQuestion:"What is the fastest ELD to get connected to Highway?",quickAnswer:"ELD HUB. Registration takes about two minutes. PT-30 and IOSiX are each in stock at $150 with free shipping and ship same or next business day. PT-30 includes a cable; IOSiX is device only. ELD HUB appears in Highway's connection screen. Software is $15/truck/month with no contract and 14 days free.",pointsHeading:"What You Get",points:[{t:"A real FMCSA-registered ELD",d:"Not a tracking app. HOS logs, DVIRs, IFTA fuel-tax reporting, GPS and DOT roadside data transfer are all included in the $15, valid for roadside inspection in all 50 states."},{t:"Hardware in stock",d:ts+" Already own a PT-30 or IOSiX from a previous provider? We re-register it free and you can connect the same day."},{t:"Any vehicle class",d:"Tractors, box trucks, sprinter and cargo vans, hotshot pickups — anything with a standard OBD-II or 9-pin diagnostic port."},{t:"No contract to regret",d:"Month to month, cancel any time, no setup fee, no cancellation fee. Start on the 14-day free trial and see the connection work before you pay anything."}],faqs:[{q:"Is ELD HUB on Highway's provider list?",a:"Yes. ELD HUB is integrated with Highway — select it as your ELD provider in Highway's connection screen and authorize it with your ELD HUB account details."},{q:"Can I connect today?",a:"If you already own a PT-30 or IOSiX device, yes — register, re-register the serial with us at no cost, pair the app and connect. If you need hardware it is in stock and ships same or next business day."},{q:"What does it cost in total?",a:"$15 per truck per month with 
41no contract, plus $150 one-time for either PT-30 or IOSiX with free shipping. PT-30 includes a cable; IOSiX is device only. The first 14 days of software are free."},{q:"Do you also connect to Trucker Tools?",a:"Yes. ELD HUB is integrated with Trucker Tools as well, so the same account covers both load-visibility requests and Highway vetting."}]},{path:"/highway-carrier-vetting",eyebrow:"Highway carrier vetting",h1:"Highway Carrier Vetting — What Brokers Check and How to Pass",intro:"Highway verifies carrier identity before a broker hands over a load: your authority, your insurance, your contact details and, increasingly, a connected ELD. Here is what is checked, what usually fails, and how to fix it.",title:"Highway Carrier Vetting Explained — Pass the ELD Check | ELD HUB",description:"What Highway checks during carrier vetting: authority, insurance, identity and a connected ELD. Fix a failed ELD check with ELD HUB — $15/truck/month, no contract, device in stock at $150.",ogTitle:"Highway Carrier Vetting — What Brokers Check",ogDescription:"Authority, insurance, identity and a connected ELD. How carriers pass Highway vetting and connect an ELD HUB account.",quickQuestion:"What does Highway check during carrier vetting?",quickAnswer:"Highway verifies that a carrier's identity matches its FMCSA record — authority status, insurance on file, contact details and equipment — and asks carriers to connect an ELD or telematics account so the broker can confirm the truck exists and is where it should be. Carriers without a connected ELD can fail that step even when they are exempt from the federal mandate. An ELD HUB account is integrated with Highway and satisfies the connection at $15 per truck per month.",pointsHeading:"What Gets Checked",points:[{t:"Authority and operating status",d:"Your MC and USDOT must be active and not under an out-of-service order. New authorities and recently reactivated ones draw extra scrutiny, so keep your FMCSA record current."},{t:"Insurance on file",d:"Certificates must be filed with FMCSA and current. A lapsed or expiring certificate is one of the most common reasons a carrier is blocked at vetting."},{t:"Identity and contact data",d:"Phone numbers, email domains and addresses are matched against the FMCSA record to detect double-brokering and identity theft. Mismatched contact details slow everything down."},{t:"A connected ELD",d:_w},{t:"Equipment that matches the load",d:"The vehicle you present should be the vehicle reporting. Connecting your ELD lets the broker confirm position and duty status without phone calls for every check call."}],stepsHeading:"Fixing a Failed ELD Check",steps:[{t:"Register an ELD HUB account",d:"About two minutes. 14-day free trial, no contract, $15 per truck per month."},{t:"Get a device or reuse yours",d:ts+" PT-30 and IOSiX units you already own are re-registered free."},{t:"Confirm the truck is reporting",d:"Plug in, pair the free app, start the engine and check for a live position and duty status."},{t:"Authorize in Highway",d:"Choose ELD HUB in Highway's connection screen and authorize. The broker sees the connection immediately."}],faqs:[{q:"Why did Highway ask for an ELD when my truck is exempt?",a:"Vetting platforms use ELD data to confirm a truck exists and is where the carrier says. That is the broker's access rule, not an FMCSA rule, so exemption from the mandate does not remove the requirement. Running an ELD voluntarily satisfies it."},{q:"Can I pass Highway vetting without an ELD?",a:"Some brokers still accept manual verification, but most major brokers now require a connected ELD or telematics account. Connecting one removes the friction and speeds up load release."},{q:"How long does it take to get connected after I register?",a:"About ten minutes once the device is in the truck. Hardware is in stock and ships same or next business day, and existing PT-30 or IOSiX devices can be re-registered the same day."},{q:"Does ELD HUB share my data with brokers automatically?",a:"Only after you authorize the connection in Highway. You control the connection and can revoke it at any time."}]},{path:"/highway-eld-providers",eyebrow:"Highway-compatible ELDs",h1:"ELD Providers That Connect to Highway — And What They Cost",intro:"Most mainstream ELD providers connect to Highway. The real difference is price, contract length and how fast you can get hardware. Here is how to choose if you are picking an ELD purely to satisfy a broker's Highway requirement.",title:"Highway-Compatible ELD Providers Compared | ELD HUB $15/Truck",description:"Which ELD providers connect to Highway, and what they cost per truck. ELD HUB is integrated 
41with Highway at $15 per truck per month, no contract, with a $150 device in stock shipping same or next business day.",ogTitle:"ELD Providers That Connect to Highway",ogDescription:"Compare Highway-compatible ELDs on price, contract and hardware lead time. ELD HUB: $15/truck/month, no contract, device in stock.",quickQuestion:"Which ELD providers work with Highway?",quickAnswer:"Most established FMCSA-registered ELD providers connect to Highway, including ELD HUB. Enterprise platforms often charge more on annual contracts, while ELD HUB is $15 per truck per month with no contract, a 14-day free trial, and PT-30 or IOSiX hardware at $150 each with free shipping, in stock and shipping same or next business day.",pointsHeading:"How to Choose",points:[{t:"Price per truck per month",d:"If the only reason you are buying an ELD is a broker requirement, the monthly rate is the whole decision. ELD HUB is $15 per truck with HOS, DVIR, IFTA and GPS included — no per-feature add-ons."},{t:"Contract length",d:"Enterprise providers commonly lock carriers into 12 to 36 months with early-termination fees. ELD HUB is month to month, cancel any time, no cancellation fee."},{t:"Hardware availability",d:ts+" Long device lead times cost you loads while a broker waits on the connection."},{t:"Bring your own device",d:"If you already own a PT-30 or IOSiX unit from a previous provider, ELD HUB re-registers it free — no new hardware and you can connect to Highway the same day."},{t:"Support when the connection fails",d:"US phone support at 302-404-1177 during business hours, plus a 24/7 AI advisor. If the Highway connection does not take, we complete it with you."}],faqs:[{q:"Is the cheapest Highway-compatible ELD any good?",a:"Price and capability are separate questions. ELD HUB is FMCSA-registered, valid for roadside inspection in all 50 states, and includes HOS, DVIR, IFTA, GPS and roadside data transfer at $15 per truck per month. The low price comes from serving owner-operators and fleets under 20 trucks, not from cutting compliance features."},{q:"Can I switch ELD providers and keep my Highway connection?",a:"Yes. Register with the new provider, connect it in Highway and remove the old one. If your device is a PT-30 or IOSiX, ELD HUB re-registers it free so you do not buy hardware twice."},{q:"What if my current provider is not on Highway?",a:"You will need to move to one that is. ELD HUB is integrated with Highway and Trucker Tools, with no contract, so switching carries no long-term commitment."}]},{path:"/broker-requires-eld",eyebrow:"Broker requires an ELD",h1:"A Broker Says I Need an ELD — What Do I Do?",intro:"A broker or load board is holding your load until you connect an ELD. You do not need to argue about exemptions; you need a connected account today. "+rp,title:"Broker Requires an ELD? Connect Today — ELD HUB $15/Truck",description:"A broker won't release your load until you connect an ELD. ELD HUB is FMCSA-registered, integrated with Highway and Trucker Tools, $15 per truck per month with no contract. Device in stock at $150.",ogTitle:"Broker Requires an ELD? Get Connected Today",ogDescription:"Connect an FMCSA-registered ELD to Highway or Trucker Tools today. $15/truck/month, no contract, 14 days free, device in stock.",quickQuestion:"A broker requires an ELD but my truck is exempt. What now?",quickAnswer:"Brokers set their own access rules, so an FMCSA exemption does not remove the requirement. The fastest fix is to run a real ELD voluntarily: register with ELD HUB, install a PT-30 or IOSiX device, and connect it in Highway or Trucker Tools. $15 per truck per month, no contract, 14 days free, and the $150 device is in stock and ships same or next business day.",pointsHeading:"What Is Actually Happening",points:[{t:"It is a broker rule, not a federal rule",d:_w},{t:"Arguing exemption does not release the load",d:"The vetting platform is checking that the truck exists and is where you say. The only way through is a connected ELD account — yours, on your terms, cancellable any time."},{t:"You can be connected today if you own hardware",d:"Send us the serial of a compatible PT-30 or IOSiX you already own and we re-register it free. Otherwise both devices are in stock at $150 each with free shipping, shipping same or next business day. PT-30 includes a cable; IOSiX is device only."},{t:"You are not signing your life away",d:"$15 per truck per month, month to month, 14 days free, no setup or cancellation fee. If the requirement goes away, so can the subscription."}],stepsHeading:"Get Released in Four Steps",steps:[{t:"Register",d:"Two minutes at the ELD HUB portal. Personal details, company info, billing. 14-day free trial starts immediately."},{t:"Device",d:ts+" Or re-register the PT-30 or IOSiX you already own, free."},{t:"Install",d:"Plug into the diagnostic port, pair the free app, confirm a live position. About ten minutes, no tools."},{t:"Connect",d:"Select ELD HUB in Highway or Trucker Tools and authorize. The broker can verify you immediately."}],faqs:[{q:"Which platforms is ELD HUB connected to?",a:"Highway and Trucker Tools. One ELD HUB account covers both, so you do not need separate subscriptions for different brokers."},{q:"How fast can the broker see me?",a:"As soon as you authorize the connection and the truck is reporting. With hardware already in hand that is the same day; with a new device it is the day it arrives, and devices ship same or next business day."},{q:"Do I need a USDOT number to register?",a:"The portal asks for a USDOT number. If you do not have one yet, call 302-404-1177 and we set the account up manually."},{q:"Can I cancel once the load is delivered?",a:"Yes. ELD HUB is month to month with 
41no contract and no cancellation fee. Most carriers keep it because HOS, DVIR, IFTA and GPS are all included at the same $15."}]}];function Ns(e){const t=j3.find(n=>n.path===e);if(!t)throw new Error(`Unknown Highway page: ${e}`);return t}function Hs(e){return{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))}}const Vn=Ns("/broker-requires-eld");function q3({className:e=""}){return c.jsxs("div",{className:`inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1 text-xs font-semibold text-accent ${e}`,children:[c.jsx(_E,{className:"size-3.5"}),"PT-30 & IOSiX in stock — $150 each, free shipping, ships same or next business day"]})}function M3({className:e=""}){return c.jsx("div",{className:`rounded-xl border border-accent/30 bg-accent/5 p-5 ${e}`,children:c.jsxs("div",{className:"flex items-start gap-3",children:[c.jsx(_E,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-bold text-foreground",children:"Hardware in stock — discounted at $150"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"PT-30 and IOSiX are $150 per device with free shipping. PT-30 includes a diagnostic cable; IOSiX is device only. Both ship same or next business day. Already own either device? We re-register compatible units at no cost."})]})]})})}function eG({page:e}){const t=c.jsxs("a",{href:Ee.registration,onClick:()=>ur("portal_handoff",`highway_${e.path}`,typeof window<"u"?window.location.pathname:""),className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," ",Lf," ",c.jsx(at,{className:"size-4"})]});return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1 text-xs font-semibold text-accent",children:[c.jsx(ia,{className:"size-3.5"})," ",e.eyebrow]}),c.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.h1}),c.jsx("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:e.intro}),c.jsxs("div",{className:"mt-8 flex flex-wrap items-center gap-3",children:[t,c.jsx(W,{to:"/connect-eld-to-highway",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-background px-6 py-3 text-sm font-semibold text-foreground transition hover:bg-secondary/50",children:"See the setup steps"})]}),c.jsx(Rf,{className:"mt-3",showNoUsdot:!0}),c.jsx(M3,{className:"mt-8 max-w-2xl"}),c.jsx("div",{className:"mt-8 max-w-3xl",children:c.jsx(Ft,{question:e.quickQuestion,answer:e.quickAnswer})}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold text-foreground",children:e.pointsHeading}),c.jsx("div",{className:"mt-8 space-y-4",children:e.points.map(n=>c.jsxs("div",{className:"flex gap-4 rounded-xl border border-border bg-background p-5",children:[c.jsx(ut,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.d})]})]},n.t))}),c.jsx("p",{className:"mt-6 rounded-xl border border-border bg-secondary/20 p-5 text-sm text-muted-foreground",children:P3}),c.jsxs("p",{className:"mt-4 text-sm text-muted-foreground",children:["Comparing providers while you're here?"," ",c.jsx(W,{to:"/best-eld-small-fleets",className:"font-semibold text-accent hover:underline",children:"See the best ELD for small fleets"})," ","— 15 FMCSA-registered providers ranked by real 3-year cost."]})]})}),e.steps&&c.jsx("section",{className:"border-b border-border/70 bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold text-foreground",children:e.stepsHeading??"How It Works"}),c.jsx("ol",{className:"mt-8 space-y-4",children:e.steps.map((n,o)=>
41c.jsxs("li",{className:"flex gap-4 rounded-xl border border-border bg-background p-5",children:[c.jsx("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-accent/15 text-sm font-bold text-accent",children:o+1}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.d})]})]},n.t))}),c.jsx("div",{className:"mt-8",children:t})]})}),c.jsx("section",{children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold text-foreground",children:"FAQ"}),c.jsx("div",{className:"mt-8 space-y-4",children:e.faqs.map(n=>c.jsxs("details",{className:"group rounded-xl border border-border bg-background p-5",children:[c.jsxs("summary",{className:"flex cursor-pointer items-center justify-between gap-4 text-base font-semibold text-foreground",children:[c.jsxs("span",{className:"inline-flex items-center gap-2",children:[c.jsx(Hr,{className:"size-4 text-accent"}),n.q]}),c.jsx("span",{className:"text-accent transition group-open:rotate-45",children:"+"})]}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:n.a})]},n.q))}),c.jsxs("div",{className:"mt-10 rounded-xl border border-border bg-secondary/20 p-6 text-center",children:[c.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"$15 per truck per month. No contract. 14 days free. $150 device in stock."}),c.jsx("div",{className:"mt-4 flex justify-center",children:t})]}),c.jsxs("div",{className:"mt-8 text-center text-sm text-muted-foreground",children:["Related:"," ",c.jsx(W,{to:"/highway-eld-integration",className:"text-accent hover:underline",children:"Highway ELD integration"})," ·"," ",c.jsx(W,{to:"/highway-carrier-vetting",className:"text-accent hover:underline",children:"Highway carrier vetting"})," ·"," ",c.jsx(W,{to:"/highway-eld-providers",className:"text-accent hover:underline",children:"Highway-compatible providers"})," ·"," ",c.jsx(W,{to:"/broker-requires-eld",className:"text-accent hover:underline",children:"Broker requires an ELD"})," ·"," ",c.jsx(W,{to:"/eld-for-trucker-tools",className:"text-accent hover:underline",children:"Trucker Tools"})," ·"," ",c.jsx(W,{to:"/hardware/pt30-eld",className:"text-accent hover:underline",children:"PT-30 device"})]})]})}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function Ps(e){return e.steps?{"@context":"https://schema.org","@type":"HowTo",name:e.stepsHeading??e.h1,description:e.quickAnswer,step:e.steps.map((t,n)=>({"@type":"HowToStep",position:n+1,name:t.t,text:t.d}))}:null}const F3=()=>C(()=>import("./broker-requires-eld-Np3MPyqt.js"),[]),Cw=Ps(Vn),U3=R()({head:()=>({meta:[{title:Vn.title},{name:"description",content:Vn.description},{property:"og:title",content:Vn.ogTitle},{property:"og:description",content:Vn.ogDescription},...de("compliance","Broker requires an ELD — connect an ELD HUB account today."),{property:"og:url",content:`https://goeldhub.com${Vn.path}`},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:`https://goeldhub.com${Vn.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify(Hs(Vn))},...Cw?[{type:"application/ld+json",children:JSON.stringify(Cw)}]:[]]}),component:A(F3,"component")}),B3=[{q:"Where can I buy an ELD device that ships today?",a:"ELD Hub keeps PT-30 and IOSiX ELD devices in stock at $150 each with free shipping, sent the same or next business day. The PT-30 includes a diagnostic cable; the IOSiX is the device only."},{q:"How much does an ELD device cost?",a:"$150 per device one time, plus the $15 per truck per month ELD Hub service. No contract and a 14-day free trial."},{q:"Can I use an ELD device I already own?",a:"Yes. A compatible PT-30 or IOSiX from another provider can be re-registered to ELD Hub for free, so you only pay the $15/truck/month service."},{q:"Does the device work with Highway?",a:"Yes. ELD Hub integrates with Highway, so brokers that require a Highway-connected ELD can see your truck once you connect it."}],z3=()=>C(()=>import("./buy-eld-device-Tm021hFm.js"),[]),Rw="https://goeldhub.com/buy-eld-device",V3={"@context":"https://schema.org","@type":"FAQPage",mainEntity:B3.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},G3=R()({head:()=>({meta:[{title:"Buy an ELD Device — $150, In Stock, Free Same-Day Shipping | ELD Hub"},{name:"description",content:"Buy a PT-30 or IOSiX ELD device for $150 with free shipping, sent the same or next business day. $15/truck/month service, no contract, 14-day free trial."},{property:"og:title",content:"Buy an ELD Device — $150, In Stock, Ships Today"},{property:"og:description",content:"PT-30 or IOSiX ELD for $150 with free same/next-day shipping. $15/truck/month, no contract."},{property:"og:type",content:"website"},{property:"og:url",content:Rw},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:Rw}],scripts:[{type:"application/ld+json",children:JSON.stringify(V3)}]}),component:A(z3,"component")}),W3={slug:"california-clean-truck-check",eyebrow:"California compliance",h1:"California Clean Truck Check: What Small Fleets Must Do",intro:"CARB's Clean Truck Check replaced the old smog-check program for heavy-duty vehicles operating in California. If you run even one truck into the state, you have registration, reporting, and testing obligations that sit alongside your federal ELD requirement.",metaTitle:"California Clean Truck Check: Small Fleet Guide",metaDescription:"CARB Clean Truck Check explained for fleets under 20 trucks: who it applies to, registration and fees, emissions testing frequency, deadlines, and penalties.",ogCategory:"compliance",ogAlt:"California Clean Truck Check compliance guide for small trucking fleets.",breadcrumbName:"California Clean Truck Check",quickAnswer:{question:"What is the California Clean Truck Check?",answer:"Clean Truck Check is CARB's emissions compliance program for non-gasoline heavy-duty vehicles over 14,000 lbs GVWR that operate in California, including out-of-state trucks. Owners must register the vehicle in CARB's CTC-VIS system, pay an annual per-vehicle compliance fee, and submit periodic emissions test results. It is separate from the federal ELD mandate — an ELD does not satisfy it."},sections:[{h2:"Who has to comply",body:"The program applies by where you drive, not where you are based. If a qualifying vehicle enters California at any point in the year, it is in scope.",bullets:["Non-gasoline heavy-duty vehicles with a GVWR above 14,000 lbs that operate in California","Out-of-state and interstate carriers, not just California-based fleets","Vehicles registered with California DMV and those registered elsewhere","Some agricultural, military tactical, and emergency vehicles are excepted — confirm your class with CARB before assuming an exemption"]},{h2:"The three obligations",body:"Compliance breaks into registration, payment, and testing. Missing any one of them puts you out of compliance even if the truck's emissions system is perfect.",bullets:["Register each vehicle in CARB's Clean Truck Check Vehicle Inspection System (CTC-VIS)","Pay the annual compliance fee for every in-scope vehicle","Submit periodic emissions test results from a CARB-credentialed tester, on the schedule CARB sets for your vehicle"]},{h2:"How testing works",body:"Testing is performed by a CARB-credentialed tester and submitted electronically — you do not mail paperwork. Newer trucks with OBD systems are tested through the OBD port; older vehicles without a compliant OBD system use opacity testing instead. Results are tied to the VIN, so keep the test confirmation with your vehicle file the same way you keep your ELD cab card packet."},{h2:"What happens if you skip it",body:"CARB enforces through DMV registration holds, roadside and facility enforcement, and referrals that can block registration renewal. Non-compliant vehicles can also be denied entry at ports and rail yards, which for a small fleet means a truck sitting idle rather than earning."},{h2:"How this sits next to your ELD requirement",body:"Clean Truck Check is a California emissions program. The ELD mandate is a federal FMCSA hours-of-service program. They are enforced by different agencies and neither substitutes for the other. What they share is the recordkeeping habit: know which trucks are in scope, keep the proof in the cab and in a file, and renew on schedule.",bullets:["Clean Truck Check: CARB, emissions, annual fee plus periodic testing","ELD mandate: FMCSA, hours of service, registered device plus cab-card documentation","Both apply to out-of-state carriers running into California"]}],table:{caption:"Clean Truck Check vs the federal ELD mandate",headers:["","Clean Truck Check","ELD mandate"],rows:[["Agency","CARB (California)","FMCSA (federal)"],["Applies to","Non-gasoline vehicles over 14,000 lbs GVWR operating in California","Most CMV drivers required to keep records of duty status"],["Core obligation","Register vehicle, pay annual fee, submit emissions tests","Use an FMCSA-registered ELD and carry the documentation packet"],["Proof carried","Compliance status tied to the VIN in CARB's system","ELD cab card packet: manual, malfunction instructions, blank logs, transfer instructions"],["Ongoing cost","Annual per-vehicle fee plus testing","ELD Hub: $15 per truck per month, no contract"]]},faqs:[{q:"Does Clean Truck Check apply to out-of-state trucks?",a:"Yes. The program is based on operating in California, not on where the vehicle is registered. An interstate carrier that runs into California with a qualifying vehicle is in scope."},{q:"Does my ELD handle Clean Truck Check reporting?",a:"No. An ELD records hours of service for FMCSA. Clean Truck Check is a CARB emissions program with its own registration, fee, and testing submitted by a credentialed tester."},{q:"What vehicles are covered?",a:"Non-gasoline heavy-duty vehicles with a gross vehicle weight rating above 14,000 lbs that operate in California. Certain categories such as some agricultural, military tactical, and emergency vehicles are treated differently — verify your specific class with CARB."},{q:"What is the penalty for non-compliance?",a:"CARB can place a hold on DMV registration for California-registered vehicles and pursue enforcement against non-compliant operation. Practically, the cost is a truck that cannot renew registration or gets turned away at a gate."},{q:"I run one truck into California a few times a year. Am I in?",a:"If the vehicle qualifies and it operates in California at all, it is in scope. Frequency does not create an exemption."},{q:"What does ELD Hub cost for a California fleet?",a:"$15 per truck per month with 
41no contract, including HOS logs, DVIRs, IFTA, and GPS. PT-30 or IOSiX hardware costs $150 each with free shipping. PT-30 includes a cable; IOSiX is device only. Compatible devices you own can be re-registered free."}],related:[{to:"/eld-california",label:"ELD for California fleets",note:"State-specific ELD guidance and pricing."},{to:"/dot-compliance",label:"DOT compliance checklist",note:"Every recurring federal obligation in one place."},{to:"/eld-mandate-guide",label:"ELD mandate guide",note:"Who must comply, exemptions, and deadlines."},{to:"/glossary/csa-score",label:"CSA score",note:"How violations follow your DOT number."}],ctaHeadline:"California compliance without the enterprise price tag",ctaSubhead:"ELD Hub is an FMCSA-registered ELD built for fleets under 20 trucks: $15 per truck per month, no contract, HOS, DVIRs, IFTA, and GPS included."};function tG({data:e}){return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(ut,{className:"size-3.5"})," ",e.eyebrow]}),c.jsx("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.h1}),c.jsx("p",{className:"mt-4 max-w-3xl text-lg text-muted-foreground",children:e.intro}),c.jsx("div",{className:"max-w-3xl",children:c.jsx(Ft,{question:e.quickAnswer.question,answer:e.quickAnswer.answer})}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("div",{className:"space-y-12",children:e.sections.map(t=>c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:t.h2}),c.jsx("p",{className:"mt-3 text-[15px] leading-relaxed text-muted-foreground",children:t.body}),t.bullets&&c.jsx("ul",{className:"mt-4 space-y-2",children:t.bullets.map(n=>c.jsxs("li",{className:"flex items-start gap-2.5 text-[15px] text-muted-foreground",children:[c.jsx(ut,{className:"mt-0.5 size-4 shrink-0 text-accent"}),c.jsx("span",{children:n})]},n))})]},t.h2))}),e.table&&c.jsxs("div",{className:"mt-14",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:e.table.caption}),c.jsx("div",{className:"mt-5 overflow-x-auto rounded-xl border border-border",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-secondary/40",children:c.jsx("tr",{children:e.table.headers.map(t=>c.jsx("th",{scope:"col",className:"p-3 text-left font-semibold text-foreground",children:t},t))})}),c.jsx("tbody",{children:e.table.rows.map(t=>c.jsx("tr",{className:"border-t border-border/60",children:t.map((n,o)=>c.jsx("td",{className:`p-3 align-top ${o===0?"font-semibold text-foreground":"text-muted-foreground"}`,children:n},o))},t[0]))})]})})]})]}),c.jsx("section",{className:"border-y border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:e.ctaHeadline}),c.jsx("p",{className:"mt-3 max-w-2xl text-muted-foreground",children:e.ctaSubhead}),c.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:["Start 14-day free trial ",c.jsx(at,{className:"size-4"})]}),c.jsxs("a",{href:Ee.phone,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:[c.jsx(Tf,{className:"size-4"})," 302-404-1177"]})]})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Hr,{className:"size-3.5"})," FAQ"]}),c.jsx("h2",{className:"mt-3 text-2xl font-bold text-foreground sm:text-3xl",children:"Frequently asked questions"}),c.jsx("div",{className:"mt-8 space-y-3",children:e.faqs.map(t=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer list-none font-semibold text-foreground marker:hidden",children:t.q}),c.jsx("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:t.a})]},t.q))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Keep reading"}),c.jsx("ul",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:e.related.map(t=>c.jsxs("li",{className:"rounded-xl border border-border bg-card p-4",children:[c.jsxs(W,{to:t.to,className:"font-semibold text-accent hover:underline",children:[t.label," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t.note})]},t.label))})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function js(e){const t=`https://goeldhub.com/${e.slug}`;return{meta:[{title:e.metaTitle},{name:"description",content:e.metaDescription},{property:"og:title",content:e.metaTitle},{property:"og:description",content:e.metaDescription},{property:"og:type",content:"article"},{property:"og:url",content:t},...de(e.ogCategory,e.ogAlt)],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(n=>
41({"@type":"Question",name:n.q,acceptedAnswer:{"@type":"Answer",text:n.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:e.breadcrumbName,item:t}]})}]}}const X3=()=>C(()=>import("./california-clean-truck-check-DrqUTfCw.js"),[]),Y3=R()({component:A(X3,"component"),head:()=>js(W3)}),K3={brand:"Apollo ELD",slug:"cancel-apollo-eld",contractLength:"12 months on discounted plans; monthly otherwise",earlyTermFee:"Remaining months of a discounted annual plan",noticePeriod:"30 days written notice",hardwareReturn:"Devices are purchased; you keep them",cancelSteps:["Read your Apollo ELD agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Apollo ELD billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Apollo ELD portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Devices are purchased; you keep them. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Apollo ELD require?",a:"30 days written notice. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Apollo ELD?",a:"Remaining months of a discounted annual plan. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Apollo ELD?",a:"Devices are purchased; you keep them. Apollo ELD commonly ships PT-30 hardware, which ELD Hub supports."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]};function FE(e){return e.verifiedTerms?[...e.faqs,{q:`How much notice does ${e.brand} require to cancel?`,a:`${e.noticePeriod}. Check your own order form or subscription agreement before choosing a date.`},{q:`What happens to hardware when I leave ${e.brand}?`,a:`${e.hardwareReturn}. ELD Hub can re-register compatible PT-30 or IOSiX devices you own after checking the serial number; new devices are $150 each with free shipping.`}]:[...e.faqs,{q:`How much notice do you have to give ${e.brand} before cancelling?`,a:`${e.brand} agreements typically require ${e.noticePeriod.toLowerCase()}. Send it in writing, keep the confirmation, and diary the date — missing the window is what triggers an automatic renewal for a whole new term.`},{q:`Can I keep my ELD hardware after leaving ${e.brand}?`,a:`Hardware terms with ${e.brand} are: ${e.hardwareReturn.toLowerCase()}. If you own a compatible PT-30 or IOSiX, ELD Hub re-registers it free. Otherwise either device costs $150 with free shipping; PT-30 includes a cable, IOSiX is device only.`},{q:`What does ELD Hub cost compared with ${e.brand}?`,a:"ELD Hub is $15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included and a 14-day free trial. There is no early-termination fee because there is no contract term."}]}function rG({data:e}){const t=FE(e);return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Jo,{className:"size-3.5"})," How to cancel ",e.brand]}),c.jsxs("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:["How to Cancel ",e.brand," (2026 Guide)"]}),c.jsx("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:e.verifiedTerms?`${e.verifiedTerms.summary}
41 If you're switching, ELD Hub is $15 per truck per month with no annual contract.`:c.jsxs(c.Fragment,{children:["Step-by-step cancellation instructions, contract-term traps to watch for, and how to avoid hardware-return fees. If you're switching, ELD HUB is ",c.jsx("strong",{className:"text-foreground",children:"$15/mo, month-to-month"})," — keep your hardware, switch the software."]})}),c.jsx(Ft,{question:`How do you cancel ${e.brand}?`,answer:e.verifiedTerms?`${e.verifiedTerms.summary} Notice: ${e.noticePeriod}. Fees: ${e.earlyTermFee}. Review your own agreement, request written confirmation and export your logs before access ends.`:`${e.brand} contracts run ${e.contractLength} and require ${e.noticePeriod}. Early termination costs ${e.earlyTermFee.toLowerCase()}, and hardware terms are: ${e.hardwareReturn.toLowerCase()}. Send written notice, get a confirmation number, and confirm the final billing date before the account closes. ELD Hub is $15/truck/month with no contract.`}),c.jsxs("p",{className:"mt-3 max-w-2xl text-sm text-muted-foreground",children:["Not sure what to move to? Compare 15 providers on price, contract and hardware in our"," ",c.jsx(W,{to:"/best-eld-small-fleets",className:"font-semibold text-accent hover:underline",children:"best ELD for small fleets"})," ","guide."]}),c.jsxs("div",{className:"mt-8 flex flex-wrap gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," Switch to ELD HUB — $15/mo ",c.jsx(at,{className:"size-4"})]}),c.jsx(W,{to:"/switch-eld-provider",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:"Switch guide"})]}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsx("div",{className:"mx-auto max-w-4xl px-6 py-16",children:c.jsxs("div",{className:"rounded-2xl border border-destructive/30 bg-destructive/5 p-6",children:[c.jsx(CE,{className:"size-6 text-destructive"}),c.jsxs("h2",{className:"mt-3 text-xl font-bold text-foreground",children:[e.brand," contract terms to check first"]}),c.jsxs("div",{className:"mt-4 grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-muted-foreground",children:"Contract length"}),c.jsx("div",{className:"mt-1 text-foreground",children:e.contractLength})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-muted-foreground",children:"Early termination fee"}),c.jsx("div",{className:"mt-1 text-foreground",children:e.earlyTermFee})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-muted-foreground",children:"Notice period"}),c.jsx("div",{className:"mt-1 text-foreground",children:e.noticePeriod})]}),c.jsxs("div",{children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-muted-foreground",children:"Hardware return"}),c.jsx("div",{className:"mt-1 text-foreground",children:e.hardwareReturn})]})]}),c.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:e.verifiedTerms?c.jsxs(c.Fragment,{children:[e.verifiedTerms.sourceNote," Source: ",c.jsx("a",{href:e.verifiedTerms.sourceUrl,target:"_blank",rel:"noopener noreferrer",className:"font-semibold text-accent underline",children:e.verifiedTerms.sourceLabel})," (reviewed September 22, 2026). Your own agreement governs."]}):c.jsxs(c.Fragment,{children:["Pull your original contract or MSA before calling — ",e.brand," reps will quote from theirs."]})})]})})}),c.jsx("section",{className:"border-b border-border/70 bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:"Cancellation steps"}),c.jsx("ol",{className:"mt-8 space-y-4",children:e.cancelSteps.map((n,o)=>
41c.jsxs("li",{className:"flex items-start gap-4 rounded-2xl border border-border/70 bg-card p-5",children:[c.jsx("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-full bg-accent-gradient text-sm font-bold text-accent-foreground",children:o+1}),c.jsx("p",{className:"text-foreground",children:n})]},o))})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:e.verifiedTerms?"Ready to switch? Try ELD Hub before your old access ends":"After you cancel — switch to ELD HUB in 30 minutes"}),c.jsx("ul",{className:"mt-6 space-y-3",children:[e.verifiedTerms?"$15 per truck per month, after a 14-day free trial":"$15 per truck per month — vs $30–$45 for the big-brand ELDs","Month-to-month — no contract, no early-termination fee, ever",...e.verifiedTerms?["FMCSA-registered ELD — keep accurate records for inspections","Re-register a compatible device you own for free, or buy PT-30 / IOSiX for $150 each with free shipping"]:["FMCSA-registered — passes every roadside inspection","Keep your PT-30 or OBD-II hardware if compatible — no hardware markup"],e.verifiedTerms?"Questions about switching? Call 302-404-1177":"US-based support at 302-404-1177 — real humans, no ticket queue"].map(n=>c.jsxs("li",{className:"flex items-start gap-3 text-foreground",children:[c.jsx(ut,{className:"mt-0.5 size-5 shrink-0 text-accent"})," ",n]},n))})]})}),c.jsx("section",{className:"border-b border-border/70 bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:"Frequently asked questions"}),c.jsx("div",{className:"mt-6 space-y-4",children:t.map((n,o)=>c.jsxs("details",{className:"group rounded-xl border border-border/70 bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer text-base font-semibold text-foreground marker:content-none",children:n.q}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:n.a})]},o))})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsxs("div",{className:"mx-auto max-w-3xl px-6 py-16 text-center",children:[c.jsxs("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:["Ready to leave ",e.brand,"?"]}),c.jsx("p",{className:"mt-3 text-lg text-muted-foreground",children:e.verifiedTerms?"Start a 14-day trial and confirm your old provider’s final service and billing dates before switching. Call us if you need help planning the change.":"Get set up on ELD HUB in 30 minutes. Call us before you cancel — we'll help you time it to avoid overlap billing."}),c.jsxs("div",{className:"mt-8 flex flex-wrap justify-center gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," Start ELD HUB ",c.jsx(at,{className:"size-4"})]}),c.jsxs("a",{href:Ee.phone,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:[c.jsx(Tf,{className:"size-4"})," 302-404-1177"]})]})]})}),c.jsxs("div",{className:"mx-auto max-w-5xl px-4 pb-10",children:[c.jsx(uu,{brand:e.brand}),c.jsx(du,{brand:e.brand,className:"mt-6",heading:`Cancelling ${e.brand}? See what you save`})]}),c.jsx("div",{className:"mx-auto max-w-5xl px-4 pb-16",children:c.jsx(_f,{})}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function qe(e){const t=`https://goeldhub.com/${e.slug}`,n=[`Cancel ${e.brand} — Fees, Notice & $15/Truck Switch`,`Cancel ${e.brand} — Fees & $15/Truck Switch`,`Cancel ${e.brand}: Fees, Notice & Steps`,`Cancel ${e.brand}: Fees & Steps`],o=n.find(u=>u.length<=60)??n[n.length-1],s=e.verifiedTerms?`How to cancel ${e.brand}: what it publicly says about notice, fees and hardware, what remains unconfirmed, and steps to switch to ELD Hub.`:`Cancelling ${e.brand}? The exact notice period, early-termination fee, hardware-return rule and the steps to send. Then switch to ELD Hub: $15 per truck, no contract, 14 days free.`;return{meta:[{title:o},{name:"description",content:s},{property:"og:title",content:o},{property:"og:description",content:s},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"},{property:"og:url",content:t},...de("switch",`Cancel ${e.brand} and switch to ELD Hub — $15/truck/mo, no contracts.`)],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:FE(e).map(u=>
41({"@type":"Question",name:u.q,acceptedAnswer:{"@type":"Answer",text:u.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Switch ELD Provider",item:"https://goeldhub.com/switch-eld-provider"},{"@type":"ListItem",position:3,name:`Cancel ${e.brand}`,item:t}]})}]}}const Q3=()=>C(()=>import("./cancel-apollo-eld-B7EXZNUS.js"),[]),J3=R()({head:()=>qe(K3),component:A(Q3,"component")}),Z3={brand:"BigRoad (Fleet Complete)",slug:"cancel-bigroad",contractLength:"36 months is common once BigRoad is bundled into a Fleet Complete agreement",earlyTermFee:"Remaining months of the Fleet Complete master agreement",noticePeriod:"30–60 days written notice, per the master services agreement",hardwareReturn:"DashLink units are typically leased and must be returned",cancelSteps:["Read your BigRoad (Fleet Complete) agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email BigRoad (Fleet Complete) billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the BigRoad web dashboard before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. DashLink units are typically leased and must be returned. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does BigRoad (Fleet Complete) require?",a:"30–60 days written notice, per the master services agreement. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for BigRoad (Fleet Complete)?",a:"Remaining months of the Fleet Complete master agreement. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave BigRoad (Fleet Complete)?",a:"DashLink units are typically leased and must be returned. DashLink hardware is tied to BigRoad and cannot be re-flashed for another provider."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},eN=()=>C(()=>import("./cancel-bigroad-ul1iYMzf.js"),[]),tN=R()({head:()=>qe(Z3),component:A(eN,"component")}),rN={brand:"Blue Ink Tech",slug:"cancel-blue-ink-tech",contractLength:"None on standard plans — Blue Ink Tech bills month-to-month",earlyTermFee:"None on month-to-month plans",noticePeriod:"Cancel before the next billing date to avoid the following month",hardwareReturn:"BIT devices are purchased; you keep them",cancelSteps:["Read your Blue Ink Tech agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Blue Ink Tech billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Blue Ink Tech web portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. BIT devices are purchased; you keep them. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Blue Ink Tech require?",a:"Cancel before the next billing date to avoid the following month. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Blue Ink Tech?",a:"None on month-to-month plans. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Blue Ink Tech?",a:"BIT devices are purchased; you keep them. BIT hardware is proprietary to their platform."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},nN=()=>C(()=>import("./cancel-blue-ink-tech-NvIWvQKq.js"),[]),aN=R()({head:()=>qe(rN),component:A(nN,"component")}),oN=[{q:"Can I cancel my ELD contract early?",a:"Yes, but most multi-year ELD agreements bill the remaining contract value when you terminate early. Read your signed agreement for the termination clause and the notice window — that document governs, not what support tells you on the phone."},{q:"What is a typical ELD early-termination fee?",a:"Enterprise providers such as Samsara, Motive, Omnitracs and Verizon Connect commonly bill 100% of the remaining contract value, plus any unamortized hardware credit. Month-to-month providers usually charge nothing beyond the current billing period."},{q:"How much notice do I have to give?",a:"30 to 90 days written notice before the renewal date is the norm on annual and multi-year contracts. Missing the notice window is the single most common reason a fleet gets auto-renewed into another full term."},{q:"Do I have to buy new hardware when I switch?",a:"Not always. If you already run a PT-30 or IOSiX device you can keep it and run ELD Hub on the same hardware. Proprietary units — Samsara gateways, Geotab GO, EROAD Ehubo, Lytx DriveCam — only work on their own platform."},{q:"Will I lose my logs when I cancel?",a:"Export at least six months of records of duty status, DVIRs and IFTA mileage before your account is deactivated. FMCSA requires you to retain those records regardless of which provider you use."}],iN=()=>C(()=>import("./cancel-eld-contract-vDnlxjlM.js"),[]),np="https://goeldhub.com/cancel-eld-contract",Iw="How to Cancel an ELD Contract — Fees & Notice by Provider",Ow="Compare cancellation notice, possible fees and switching steps for ELD providers and related platforms. Confirm details in your own agreement. ELD Hub: $15/truck/month.",sN=R()({head:()=>({meta:[{title:Iw},{name:"description",content:Ow},{property:"og:title",content:Iw},{property:"og:description",content:Ow},{property:"og:type",content:"article"},{property:"og:url",content:np},{name:"twitter:card",content:"summary_large_image"},...de("switch","Cancel your ELD contract — fees, notice periods and provider-specific steps.")],links:[{rel:"canonical",href:np}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:oN.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"ItemList",name:"ELD cancellation guides",itemListElement:Kc.map((e,t)=>({"@type":"ListItem",position:t+1,name:`How to cancel ${e.brand}`,url:`https://goeldhub.com${e.path}`}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Cancel an ELD contract",item:np}]})}]}),component:A(iN,"component")}),lN={brand:"ELD Mandate",slug:"cancel-eld-mandate",contractLength:"12 months on promotional pricing; monthly plans are cancellable anytime",earlyTermFee:"Remaining months on a promotional annual plan",noticePeriod:"30 days written notice before the renewal date",hardwareReturn:"Devices are sold outright and stay with you",cancelSteps:["Read your ELD Mandate agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email ELD Mandate billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the ELD Mandate dashboard before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Devices are sold outright and stay with you. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does ELD Mandate require?",a:"30 days written notice before the renewal date. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for ELD Mandate?",a:"Remaining months on a promotional annual plan. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave ELD Mandate?",a:"Devices are sold outright and stay with you. Check whether you own a compatible PT-30 or IOSiX and confirm the serial with ELD Hub for free re-registration."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},cN=()=>C(()=>import("./cancel-eld-mandate-3ZLOozXQ.js"),[]),uN=R()({head:()=>qe(lN),component:A(cN,"component")}),dN={brand:"ELD Solutions",slug:"cancel-eld-solutions",contractLength:"12 months is typical on discounted plans",earlyTermFee:"Remaining months of the annual term",noticePeriod:"30 days written notice",hardwareReturn:"Devices are usually purchased and stay with you",cancelSteps:["Read your ELD Solutions agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email ELD Solutions billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the ELD Solutions portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Devices are usually purchased and stay with you. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does ELD Solutions require?",a:"30 days written notice. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for ELD Solutions?",a:"Remaining months of the annual term. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave ELD Solutions?",a:"Devices are usually purchased and stay with you. Check whether you own a compatible PT-30 or IOSiX and confirm the serial with ELD Hub for free re-registration."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},hN=()=>C(()=>import("./cancel-eld-solutions-gF1nGicM.js"),[]),pN=R()({head:()=>qe(dN),component:A(hN,"component")}),fN={brand:"EROAD",slug:"cancel-eroad",contractLength:"24–36 months is standard on EROAD's subscription agreements",earlyTermFee:"Typically the remaining subscription balance; EROAD bills the full term",noticePeriod:"30 days written notice before the renewal date",hardwareReturn:"Ehubo/Ehubo2 units are leased on most plans and must be returned undamaged",cancelSteps:["Read your EROAD agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email EROAD billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from MyEROAD before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Ehubo/Ehubo2 units are leased on most plans and must be returned undamaged. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does EROAD require?",a:"30 days written notice before the renewal date. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for EROAD?",a:"Typically the remaining subscription balance; EROAD bills the full term. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave EROAD?",a:"Ehubo/Ehubo2 units are leased on most plans and must be returned undamaged. Ehubo hardware is EROAD-only — it will not run another provider's ELD software, so plan on new hardware."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},mN=()=>C(()=>import("./cancel-eroad-DgY1iuiy.js"),[]),gN=R()({head:()=>qe(fN),component:A(mN,"component")}),yN={brand:"EZLogz",slug:"cancel-ezlogz",contractLength:"Month-to-month or discounted annual prepay",earlyTermFee:"No stated termination fee; annual prepay is not prorated",noticePeriod:"Cancel before the next billing cycle",hardwareReturn:"PT-30 units you purchased stay yours and work with ELD Hub",cancelSteps:["Confirm your plan type in the EZLogz billing screen — monthly or prepaid annual.","Submit cancellation in writing to EZLogz support with company name, DOT number, and effective date.","Ask for written confirmation that recurring billing and any per-truck add-ons are stopped.","Export six months of RODS, DVIRs, and IFTA mileage before losing portal access.","Keep the PT-30. It is provider-agnostic, so no new hardware purchase is needed to switch.","Re-register the device to ELD Hub and update the cab card packet before your next inspection."],faqs:[{q:"Is there a fee to cancel EZLogz?",a:"EZLogz is normally month-to-month with 
41no termination fee. If you prepaid for a year, the unused time is generally not refunded."},{q:"Can I use my EZLogz PT-30 with ELD Hub?",a:"Yes. The PT-30 is an FMCSA-registered, provider-agnostic device. ELD Hub re-registers a unit you already own at no cost."},{q:"Will there be downtime?",a:"No. Set up ELD Hub first, re-register the device, then cancel EZLogz — that way you are never without a compliant ELD."},{q:"What does ELD Hub cost?",a:"$15 per truck per month, month-to-month, with IFTA and DVIRs included."}]},bN=()=>C(()=>import("./cancel-ezlogz-B07swMwE.js"),[]),vN=R()({head:()=>qe(yN),component:A(bN,"component")}),wN={brand:"Factor ELD",slug:"cancel-factor-eld",contractLength:"12 months on discounted plans; month-to-month at full price",earlyTermFee:"Remaining months on discounted annual plans",noticePeriod:"30 days written notice",hardwareReturn:"Devices are purchased; you keep them",cancelSteps:["Read your Factor ELD agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Factor ELD billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Factor ELD portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Devices are purchased; you keep them. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Factor ELD require?",a:"30 days written notice. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Factor ELD?",a:"Remaining months on discounted annual plans. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Factor ELD?",a:"Devices are purchased; you keep them. Many Factor ELD fleets run PT-30 hardware, which ELD Hub supports — keep the device, change the software."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},xN=()=>C(()=>import("./cancel-factor-eld-huqmFXQ0.js"),[]),EN=R()({head:()=>qe(wN),component:A(xN,"component")}),SN={brand:"Garmin eLog",slug:"cancel-garmin-elog",contractLength:"None — Garmin eLog is a one-time hardware purchase with no subscription",earlyTermFee:"None; there is no recurring contract to terminate",noticePeriod:"No notice required",hardwareReturn:"Nothing to return; you own the dongle",cancelSteps:["Read your Garmin eLog agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Garmin eLog billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Garmin eLog app before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Nothing to return; you own the dongle. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Garmin eLog require?",a:"No notice required. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Garmin eLog?",a:"None; there is no recurring contract to terminate. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Garmin eLog?",a:"Nothing to return; you own the dongle. Garmin eLog has no fleet dashboard, IFTA reporting, or back-office portal — it is single-driver only."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},kN=()=>C(()=>import("./cancel-garmin-elog-Drxf1-xB.js"),[]),DN=R()({head:()=>qe(SN),component:A(kN,"component")}),TN={brand:"Geotab",slug:"cancel-geotab",contractLength:"Set by your Geotab reseller — 36 months is common",earlyTermFee:"Reseller-defined; often the remaining term plus non-refundable hardware",noticePeriod:"30–60 days written notice, per reseller agreement",hardwareReturn:"GO devices are usually purchased, so you keep them — but they only work on Geotab's platform",cancelSteps:["Identify your reseller. Geotab sells through partners, so your contract is with the partner, not Geotab directly.","Pull the partner agreement and confirm term length, notice period, and per-device rate plan commitments.","Send written cancellation to the reseller's billing contact with account ID and effective date, and ask for written acknowledgement.","Export HOS, DVIR, and trip history from MyGeotab before your login is deactivated.","Confirm the SIM and rate plan are terminated so you are not billed for connectivity after the end date.","Keep the GO devices — they hold resale value even though they will not run another provider's ELD software."],faqs:[{q:"Who do I cancel Geotab with?",a:"Almost always your reseller, not Geotab. The billing relationship, term length, and notice period all live in the partner agreement you signed."},{q:"Can a Geotab GO device run another ELD?",a:"No. The GO device is tied to Geotab's platform. Switching providers means new hardware — ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"Will I lose my logs?",a:"Export from MyGeotab before the deactivation date. FMCSA requires you to retain six months of records of duty status regardless of provider."},{q:"What does ELD Hub cost?",a:"$15 per truck per month with no contract, including IFTA and DVIRs."}]},LN=()=>C(()=>import("./cancel-geotab-C9s-fzvM.js"),[]),AN=R()({head:()=>qe(TN),component:A(LN,"component")}),_N={brand:"Gorilla Safety",slug:"cancel-gorilla-safety",contractLength:"12–36 months depending on the fleet agreement",earlyTermFee:"Remaining term balance under the fleet agreement",noticePeriod:"30 days written notice to your account manager",hardwareReturn:"Tablets and gateways issued by Gorilla Safety must be returned",cancelSteps:["Read your Gorilla Safety agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Gorilla Safety billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Gorilla Safety fleet portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Tablets and gateways issued by Gorilla Safety must be returned. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Gorilla Safety require?",a:"30 days written notice to your account manager. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Gorilla Safety?",a:"Remaining term balance under the fleet agreement. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Gorilla Safety?",a:"Tablets and gateways issued by Gorilla Safety must be returned. Gorilla Safety bundles maintenance and HR modules — cancel all modules explicitly."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},CN=()=>C(()=>import("./cancel-gorilla-safety-BLzRFq-l.js"),[]),RN=R()({head:()=>qe(_N),component:A(CN,"component")}),IN={brand:"GPS Tab",slug:"cancel-gpstab",contractLength:"12 months is typical, auto-renewing monthly afterward",earlyTermFee:"Remaining months of the annual term if you cancel mid-term",noticePeriod:"30 days written notice to billing support",hardwareReturn:"Devices are usually sold, not leased, so you keep them",cancelSteps:["Read your GPS Tab agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email GPS Tab billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the GPS Tab portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Devices are usually sold, not leased, so you keep them. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does GPS Tab require?",a:"30 days written notice to billing support. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for GPS Tab?",a:"Remaining months of the annual term if you cancel mid-term. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave GPS Tab?",a:"Devices are usually sold, not leased, so you keep them. Ask GPS Tab for your device model and serial; ELD Hub can confirm whether a compatible PT-30 or IOSiX can be re-registered free."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},ON=()=>C(()=>import("./cancel-gpstab-DSXKAxgu.js"),[]),$N=R()({head:()=>qe(IN),component:A(ON,"component")}),NN={brand:"ISAAC Instruments",slug:"cancel-isaac-instruments",contractLength:"36 months is standard on ISAAC enterprise agreements",earlyTermFee:"Remaining term plus unamortized install and hardware credits",noticePeriod:"60–90 days written notice",hardwareReturn:"In-cab tablets and gateways are leased and must be de-installed and returned",cancelSteps:["Read your ISAAC Instruments agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email ISAAC Instruments billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the ISAAC portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. In-cab tablets and gateways are leased and must be de-installed and returned. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does ISAAC Instruments require?",a:"60–90 days written notice. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for ISAAC Instruments?",a:"Remaining term plus unamortized install and hardware credits. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave ISAAC Instruments?",a:"In-cab tablets and gateways are leased and must be de-installed and returned. ISAAC hardware requires professional de-installation; budget shop time."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},HN=()=>C(()=>import("./cancel-isaac-instruments-x_5gdXJ4.js"),[]),PN=R()({head:()=>qe(NN),component:A(HN,"component")}),jN={brand:"J.J. Keller Encompass",slug:"cancel-jj-keller",contractLength:"12–36 months depending on the Encompass plan",earlyTermFee:"Remaining term on annual plans",noticePeriod:"30 days written notice to J.J. Keller client care",hardwareReturn:"ELD units may be leased or purchased — check your order form",cancelSteps:["Read your J.J. Keller Encompass agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email J.J. Keller Encompass billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Encompass portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. ELD units may be leased or purchased — check your order form. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does J.J. Keller Encompass require?",a:"30 days written notice to J.J. Keller client care. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for J.J. Keller Encompass?",a:"Remaining term on annual plans. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave J.J. Keller Encompass?",a:"ELD units may be leased or purchased — check your order form. Encompass bundles compliance services beyond ELD; cancel each service line explicitly."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},qN=()=>C(()=>import("./cancel-jj-keller-BUi0kY8a.js"),[]),MN=R()({head:()=>qe(jN),component:A(qN,"component")}),FN={brand:"KeepTruckin",slug:"cancel-keeptruckin",contractLength:"12–36 months (KeepTruckin rebranded to Motive in 2022 — same contracts)",earlyTermFee:"Remaining contract balance",noticePeriod:"30–60 days written notice",hardwareReturn:"Vehicle Gateway hardware return required within 30 days",cancelSteps:["KeepTruckin is now Motive — your account is administered under the Motive brand but the contract terms are unchanged from when you signed.","Log into your Motive dashboard to find your original KeepTruckin contract date and initial term length.","Email [email protected] with your DOT number and 'KeepTruckin cancellation request' in the subject line. Include company name and account ID.","Confirm your cancellation window (30–60 days pre-renewal) and get written confirmation of the effective date before you stop paying.","Return all Vehicle Gateway devices (KeepTruckin-branded or Motive-branded) within 30 days using the provided RMA label.","Export HOS logs, IFTA data, and driver records before deactivation — access is revoked on the effective cancellation date."],faqs:[{q:"Is KeepTruckin the same as Motive?",a:"Yes. KeepTruckin rebranded to Motive in June 2022. All KeepTruckin accounts, contracts, hardware, and support are now under the Motive brand. Cancellation goes through Motive's support team."},{q:"Do my old KeepTruckin contract terms still apply?",a:"Yes — the contract you originally signed with KeepTruckin governs your account. The rebrand didn't change contract length, early-termination fees, or auto-renewal clauses."},{q:"Can I switch to Motive-branded plan without cancelling?",a:"You're already on it. The KeepTruckin app w
41as replaced by the Motive Driver App and your login credentials carried over. Same account, same billing, same contract."},{q:"What's the early-termination fee for a KeepTruckin plan?",a:"Same as Motive: remaining contract balance in full. Some legacy KeepTruckin contracts have more favorable buyout clauses — check Section 8 or 9 of your original agreement."},{q:"What's the best alternative for a small fleet leaving KeepTruckin?",a:"ELD HUB at $15/mo with no contract is the direct replacement for KeepTruckin's small-fleet plans. Same DOT compliance, FMCSA-registered, month-to-month. Set up in 30 minutes on PT-30 hardware."}]},UN=()=>C(()=>import("./cancel-keeptruckin-Cb6Nt-Ih.js"),[]),BN=R()({component:A(UN,"component"),head:()=>qe(FN)}),zN={brand:"Lytx",slug:"cancel-lytx",contractLength:"36 months is standard, and camera hardware is bundled into the term",earlyTermFee:"Remaining term; Lytx bills the balance of the camera subscription",noticePeriod:"60 days written notice before the renewal date",hardwareReturn:"DriveCam units are leased and must be returned undamaged",cancelSteps:["Read your Lytx agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Lytx billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Lytx Account portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. DriveCam units are leased and must be returned undamaged. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Lytx require?",a:"60 days written notice before the renewal date. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Lytx?",a:"Remaining term; Lytx bills the balance of the camera subscription. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Lytx?",a:"DriveCam units are leased and must be returned undamaged. Lytx is camera-first — if you only need FMCSA-compliant HOS, you are paying for a video program you may not use."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},VN=()=>C(()=>import("./cancel-lytx-DefntQI6.js"),[]),GN=R()({head:()=>qe(zN),component:A(VN,"component")}),WN={brand:"Max ELD",slug:"cancel-max-eld",contractLength:"Flexible month-to-month plan advertised; check your order form",earlyTermFee:"No early-termination fee stated in the public plan; confirm any account-specific charges",noticePeriod:"No exact advance-notice period published; request the effective date in writing",hardwareReturn:"No public return deadline or device fee found; check your purchase or lease terms",verifiedTerms:{summary:"Max ELD advertises flexible month-to-month contracts, but its public plan does not specify a cancellation deadline, termination fee, or device-return policy. Check the agreement you signed rather than assuming there is a fixed notice window.",sourceUrl:"https://maxeld.com/max/",sourceLabel:"Max ELD's public plan",sourceNote:"The plan says “Flexible month-to-month contracts” and “Don’t get locked into an auto-renewal contract”; it does not publish a cancellation procedure or a numeric fee."},cancelSteps:["Find your Max ELD order form and latest invoice. Check whether your fleet is on the advertised monthly plan or a separately negotiated agreement.","Ask Max ELD support or billing in writing for your required notice, final service date, any unpaid charges, and whether cancellation must be done in the account. Keep the reply.","Request written cancellation confirmation before the next billing date. Verify that automatic payments and any separate data service are stopped after the final invoice.","Export at least six months of driver records of duty status and supporting records before your account access ends.","Confirm whether each device was purchased or leased and whether it must be returned. Ask ELD Hub to check the serial number before planning to reuse hardware.","Start your replacement ELD before Max ELD access closes, then update the in-cab documents for the new provider."],faqs:[{q:"Does Max ELD require 30 days' notice?",a:"We could not verify a 30-day rule in Max ELD's public plan. It promotes month-to-month contracts without publishing an exact notice deadline. Ask for the deadline in writing and use the one in your signed agreement."},{q:"Is there a Max ELD cancellation fee?",a:"Its public plan does not state a specific early-termination fee. That is not proof that every account has no final charges, hardware obligation, or separately negotiated term; check your own paperwork."},{q:"How much is ELD Hub instead?",a:"ELD Hub is $15 per truck per month, month-to-month, with a 14-d
41ay free trial. New PT-30 or IOSiX devices are $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. Compatible existing devices may be re-registered after a serial check."}]},XN=()=>C(()=>import("./cancel-max-eld-D7F1kEqq.js"),[]),YN=R()({head:()=>qe(WN),component:A(XN,"component")}),KN={brand:"Motive",slug:"cancel-motive",contractLength:"36 months typical (12 or 24 possible)",earlyTermFee:"Remaining contract balance in full",noticePeriod:"30–60 days written notice before renewal",hardwareReturn:"Vehicle Gateway devices must be returned in 30 days or ~$150–$250 per device fee",cancelSteps:["Pull your Motive MSA (Master Services Agreement) and find the initial term end date + auto-renewal clause.","Send written cancellation to Motive support at least 60 days before your renewal date — email [email protected] with your company name, DOT number, and account ID.","Request a written confirmation with the effective cancellation date and any early-termination fee in writing before you agree to it.","Ship all Vehicle Gateway devices back within 30 days using the RMA label they provide. Photograph each device with its serial number before shipping.","Export your HOS logs from the last 6 months (FMCSA requirement to retain) before your account is deactivated — Motive deletes login access after cancellation.","Confirm final invoice — verify no auto-renewal charge, no unreturned-hardware fee, and no per-driver license carry-over."],faqs:[{q:"Can I cancel Motive without paying the early-termination fee?",a:"Only if your contract is month-to-month (rare) or you're within the cancellation window before an auto-renewal. Otherwise Motive requires the remaining contract balance in full. Read your MSA — some Motive contracts have a 'buyout' clause that discounts the fee by 25–50%."},{q:"How much notice does Motive require to cancel?",a:"Motive's standard MSA requires 30–60 days written notice before your contract end date. Miss the window and it auto-renews for another full term (usually 12 or 36 months)."},{q:"Do I have to return Motive Vehicle Gateway hardware?",a:"Yes. Motive charges $150–$250 per un-returned Vehicle Gateway. You have 30 days from your cancellation date to return them with the RMA label. Ship UPS/FedEx with tracking and insurance."},{q:"Will Motive keep charging me after I cancel?",a:"It happens. Auto-renewal charges are the most common complaint. Cancel your payment method (or dispute the charge) if a bill hits after your written cancellation confirmation date."},{q:"How do I switch from Motive to ELD HUB without downtime?",a:"Set up ELD HUB first ($15/mo, 30-minute install with PT-30 hardware you can keep from many Motive plans). Run both for one week to verify HOS transfer, then submit Motive cancellation. Call us at 302-404-1177 — we do this migration every week."}]},QN=()=>C(()=>import("./cancel-motive-CzXbt5U0.js"),[]),JN=R()({component:A(QN,"component"),head:()=>qe(KN)}),ZN={brand:"Omnitracs",slug:"cancel-omnitracs",contractLength:"36–60 months (Solera-era contracts are 5 years standard)",earlyTermFee:"Remaining monthly fees + hardware buyout",noticePeriod:"60–90 days written notice before renewal",hardwareReturn:"IVG / MCP / One / Omnitracs XRS units: return in 30 days or full unit cost billed",cancelSteps:["Find your Omnitracs Services Agreement — post-Solera contracts have longer initial terms and stricter auto-renewal language.","Identify your renewal date. Omnitracs is aggressive about auto-renewal enforcement — set a calendar reminder 120 days out.","Submit written cancellation via certified mail AND email to your account manager. Certified mail creates the legal record; email creates the paper trail.","Request written confirmation of the effective cancellation date, final invoice amount, and RMA numbers within 10 business days.","Deactivate ELDs in the correct order — export DVIR + HOS + IFTA data before deactivation. Omnitracs' post-cancellation data-access window is short (often 30 days).","Return all hardware (IVG displays, MCP 50/110/200, XRS, One units) with tracking. Unreturned units are billed at retail — often $400–$1,200 per unit."],faqs:[{q:"How hard is it to cancel Omnitracs post-Solera acquisition?",a:"Harder than 
41it used to be. Solera has consolidated Omnitracs contracts and pushed longer initial terms (5 years common). Auto-renewal enforcement is stricter and reps are less flexible on early-out fees."},{q:"What's the notice period to cancel Omnitracs?",a:"60–90 days pre-renewal is standard. Some enterprise Omnitracs contracts require 120 days. Confirm the number in Section 4 or 5 of your Services Agreement."},{q:"Can I get out of an Omnitracs contract for poor service?",a:"Only with a documented breach of the SLA in your contract. Isolated outages usually don't qualify. If you have 6+ months of documented service tickets and downtime, a lawyer can sometimes negotiate a mutual release."},{q:"Do I need to keep Omnitracs hardware after cancellation?",a:"No. All hardware (IVG, MCP, XRS, One) is Omnitracs-owned. You must return it within 30 days or face full-unit billing. Get a written RMA + tracking before shipping."},{q:"What replaces Omnitracs for a small fleet after cancellation?",a:"For fleets under 20 trucks, ELD HUB delivers the same DOT compliance (HOS, DVIR, IFTA) for $15/mo with no contract. Enterprise fleets typically move to Motive, Samsara, or Verizon Connect — but those come with 3–5 year contracts of their own."}]},eH=()=>C(()=>import("./cancel-omnitracs-DDynOa19.js"),[]),tH=R()({component:A(eH,"component"),head:()=>qe(ZN)}),rH={brand:"One Step GPS",slug:"cancel-one-step-gps",contractLength:"None — One Step GPS bills month-to-month with 
41no contract",earlyTermFee:"None",noticePeriod:"Cancel before the next billing date",hardwareReturn:"Trackers are typically leased and must be returned to avoid a device fee",cancelSteps:["Read your One Step GPS agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email One Step GPS billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the One Step GPS dashboard before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Trackers are typically leased and must be returned to avoid a device fee. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does One Step GPS require?",a:"Cancel before the next billing date. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for One Step GPS?",a:"None. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave One Step GPS?",a:"Trackers are typically leased and must be returned to avoid a device fee. One Step GPS is tracking-first; confirm your ELD coverage before cancelling."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},nH=()=>C(()=>import("./cancel-one-step-gps-X85CfWcE.js"),[]),aH=R()({head:()=>qe(rH),component:A(nH,"component")}),oH={brand:"PeopleNet",slug:"cancel-peoplenet",contractLength:"36 months under Trimble/PeopleNet enterprise agreements",earlyTermFee:"Remaining term plus unamortized hardware and install credits",noticePeriod:"60–90 days written notice",hardwareReturn:"In-cab displays are leased; de-installation and return are your cost",cancelSteps:["Read your PeopleNet agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email PeopleNet billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the PeopleNet Fleet Manager portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. In-cab displays are leased; de-installation and return are your cost. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does PeopleNet require?",a:"60–90 days written notice. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for PeopleNet?",a:"Remaining term plus unamortized hardware and install credits. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave PeopleNet?",a:"In-cab displays are leased; de-installation and return are your cost. PeopleNet is now part of Trimble; your paperwork may name either entity."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},iH=()=>C(()=>import("./cancel-peoplenet-C2OxO8Ua.js"),[]),sH=R()({head:()=>qe(oH),component:A(iH,"component")}),lH={brand:"Rand McNally",slug:"cancel-rand-mcnally",contractLength:"12–36 months depending on whether you bought the device outright",earlyTermFee:"Remaining term on subscription plans; device purchases are generally non-refundable after the return window",noticePeriod:"30 days written notice to Rand McNally fleet support",hardwareReturn:"Purchased TND/ELD 50 devices stay with you; leased units must be returned",cancelSteps:["Read your Rand McNally agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Rand McNally billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Rand McNally fleet portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Purchased TND/ELD 50 devices stay with you; leased units must be returned. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Rand McNally require?",a:"30 days written notice to Rand McNally fleet support. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Rand McNally?",a:"Remaining term on subscription plans; device purchases are generally non-refundable after the return window. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Rand McNally?",a:"Purchased TND/ELD 50 devices stay with you; leased units must be returned. Rand McNally devices are locked to their platform."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},cH=()=>C(()=>import("./cancel-rand-mcnally-Dh5S-z9n.js"),[]),uH=R()({head:()=>qe(lH),component:A(cH,"component")}),dH={brand:"Samsara",slug:"cancel-samsara",contractLength:"36 or 60 months (5-year contracts common)",earlyTermFee:"100% of remaining contract value",noticePeriod:"60–90 days written notice before renewal",hardwareReturn:"VG34/VG54 gateways: return within 30 days or ~$200–$400 per unit",cancelSteps:["Locate your Samsara Order Form and MSA — the effective date and initial term length are on page 1.","Calculate your renewal date and cancellation window (typically 60–90 days pre-renewal). Miss it and you're locked in for another 3–5 years.","Send written cancellation to your Samsara account rep AND [email protected] — include company name, account ID, and effective cancellation date.","Request an RMA within 5 business days. Samsara sometimes drags — follow up in writing if you don't get one within a week.","Return all VG34/VG54 vehicle gateways, AD4 dash cams, and asset trackers with tracking + insurance. Photograph serial numbers before shipping.","Download and archive HOS + camera video for the DOT retention period (6 months HOS, longer for incidents) — Samsara revokes access on the effective date."],faqs:[{q:"How long is a Samsara contract?",a:"Most Samsara contracts are 3 or 5 years. Enterprise deals commonly hit 5 years with mandatory hardware refresh. Small-fleet 12-month options exist but rep pricing pushes toward longer terms."},{q:"What's the real Samsara early-termination fee?",a:"100% of the remaining contract value. On a 5-year, $40/mo/truck, 10-truck fleet with 3 years left, that's $14,400. Samsara rarely negotiates unless you have leverage (M&A, fleet dissolution, DOT out-of-service order)."},{q:"Can I get out of Samsara after buyout / M&A?",a:"Sometimes. Samsara's MSA typically includes an assignment clause — the new owner inherits the contract. Read Section 12 (Assignment) of your MSA. If the acquiring entity refuses to take it on, that's an early termination."},{q:"Do I have to return the Samsara dash cams?",a:"Yes. AD4/AD3 dash cams and CM32 cameras are Samsara-owned and must be returned. Non-returned cameras run $300–$500 each in fees."},{q:"What ELD works with Samsara-installed OBD-II wiring?",a:"Most ELDs (including ELD HUB via PT-30 or IOSiX) use the same 9-pin/OBD-II ports Samsara wired to. Physical install is 15 minutes per truck. Call 302-404-1177 and we'll walk you through the swap."}]},hH=()=>C(()=>import("./cancel-samsara-C5xx3eVA.js"),[]),pH=R()({component:A(hH,"component"),head:()=>qe(dH)}),fH={brand:"Sharp ELD",slug:"cancel-sharp-eld",contractLength:"Monthly cancellation provision; check your order form for pricing and term",earlyTermFee:"No general early-exit fee specified; paid software fees are described as non-refundable. A conditional 20% Tracking Pack charge may apply",noticePeriod:"At least 3 days before the end of the current period for electronic cancellation; 15 days before the next monthly payment for possible pro-rata refund",hardwareReturn:"If a Tracking Pack is taken back 
41within 14 days, terms specify a 20%-of-pack-cost charge plus customer-paid delivery; purchased-pack ownership language differs. Confirm your device's status",verifiedTerms:{summary:"Sharp ELD's published Terms of Use allow electronic cancellation three days before the current month ends. A separate clause requires 15 days' notice for a possible pro-rata refund, while the software section says fees are non-refundable. Get your own refund eligibility confirmed in writing.",sourceUrl:"https://sharpeld.com/wp-content/uploads/2026/01/TERMS-OF-USE.pdf",sourceLabel:"Sharp ELD Terms of Use, sections 5.19–5.20, 6.11 and 8",sourceNote:"Sections 5.19–5.20 and 8 appear to differ on refunds; the 20% charge in section 6.11 applies to a Tracking Pack taken back within 14 days, not every cancellation. Sections 4.5 and 6.3 differ on ownership of purchased packs."},cancelSteps:["Read your Sharp ELD order form alongside sections 5.19–5.20 and 8 of its Terms of Use. Note your current period end and next payment dates.","Cancel electronically in your Sharp ELD account at least three days before the period ends. Section 8 also directs customers to contact Sharp ELD Sales/Accounting before automatic renewal; keep written proof of both steps.","If seeking a pro-rata refund, give notice at least 15 days before the next monthly payment and ask billing to explain whether it applies to your charge. The terms also call software fees non-refundable.","Ask for the final invoice, service end date, and written confirmation that the next month's subscription will not be charged.","Before account access closes, export at least six months of records of duty status and supporting records.","Ask whether your Tracking Pack is purchased or must be returned. Sections 4.5 and 6.3 describe ownership differently; the published 20% charge applies to a pack taken back within 14 days and delivery is customer-paid. Get written instructions before shipping."],faqs:[{q:"Is Sharp ELD's cancellation deadline 3 or 15 days?",a:"The Terms of Use say customers can terminate electronically three days before the current period ends (section 5.19). A separate clause requires 15 days before the next monthly payment for a possible pro-rata refund (section 5.20). These address different outcomes; contact billing before either deadline."},{q:"Will Sharp ELD refund unused subscription time?",a:"Section 5.20 mentions a pro-rata refund within 90 days if notice arrived 15 days before the next payment, but section 8 says software and paid fees are non-refundable. Do not assume a refund: request a written answer for your specific charge and agreement."},{q:"Does Sharp ELD charge a 20% cancellation fee?",a:"Not as a general early-termination fee in the published Terms of Use. Section 6.11 describes a 20%-of-pack-cost charge on a Tracking Pack taken back within 14 days, plus customer-paid delivery. Confirm whether it applies to your hardware."}]},mH=()=>C(()=>import("./cancel-sharp-eld-DheHPSog.js"),[]),gH=R()({head:()=>qe(fH),component:A(mH,"component")}),yH=()=>C(()=>import("./cancel-terminal-BOWnzV_f.js"),[]),$w="How to Cancel Terminal? Check Your ELD Provider First",Nw="Terminal's published terms do not specify an ELD cancellation notice or fee. Find the actual provider on your invoice, confirm the contract, and switch to ELD Hub.",Hw="https://goeldhub.com/cancel-terminal",bH=R()({head:()=>({meta:[{title:$w},{name:"description",content:Nw},{property:"og:title",content:$w},{property:"og:description",content:Nw},{property:"og:type",content:"article"},{property:"og:url",content:Hw},{name:"twitter:card",content:"summary"}],links:[{rel:"canonical",href:Hw}]}),component:A(yH,"component")}),vH={brand:"Transflo",slug:"cancel-transflo",contractLength:"12–36 months depending on the bundle you signed",earlyTermFee:"Remaining term; Transflo bills the balance of bundled services",noticePeriod:"30–60 days written notice",hardwareReturn:"Telematics units supplied under the bundle must be returned",cancelSteps:["Read your Transflo agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Transflo billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Transflo Mobile+ portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Telematics units supplied under the bundle must be returned. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Transflo require?",a:"30–60 days written notice. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Transflo?",a:"Remaining term; Transflo bills the balance of bundled services. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Transflo?",a:"Telematics units supplied under the bundle must be returned. Transflo bundles ELD with document scanning — confirm which services your cancellation covers."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},wH=()=>C(()=>import("./cancel-transflo-h6UrfOak.js"),[]),xH=R()({head:()=>qe(vH),component:A(wH,"component")}),EH={brand:"Trimble",slug:"cancel-trimble",contractLength:"36 months, often with enterprise minimum-unit commitments",earlyTermFee:"Remaining term plus any unamortized hardware and installation credits",noticePeriod:"60–90 days written notice under most Trimble MSAs",hardwareReturn:"In-cab displays are usually leased; de-installation and return are at your cost",cancelSteps:["Read your Trimble agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Trimble billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Trimble fleet portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. In-cab displays are usually leased; de-installation and return are at your cost. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Trimble require?",a:"60–90 days written notice under most Trimble MSAs. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Trimble?",a:"Remaining term plus any unamortized hardware and installation credits. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Trimble?",a:"In-cab displays are usually leased; de-installation and return are at your cost. Trimble in-cab hardware is proprietary and enterprise-priced."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},SH=()=>C(()=>import("./cancel-trimble-C4yVUhHQ.js"),[]),kH=R()({head:()=>qe(EH),component:A(SH,"component")}),DH={brand:"TT ELD",slug:"cancel-tteld",contractLength:"Month-to-month, annual prepay offered",earlyTermFee:"No termination fee; prepaid annual plans are generally not prorated",noticePeriod:"Cancel before your next billing date",hardwareReturn:"The PT-30 you bought is yours to keep — and it works with ELD Hub",cancelSteps:["Check whether you are on monthly billing or a prepaid annual plan; prepaid time is usually not refunded.","Email TT ELD support with your company name, DOT number, and cancellation date, and keep the reply.","Export the last 6 months of RODS, DVIRs, and IFTA mileage before the account closes.","Do not ship the PT-30 back — you purchased it, and it is a provider-agnostic FMCSA-registered device.","Re-register the same PT-30 to ELD Hub, which takes about five minutes per truck and costs nothing.","Swap the cab card packet — new ELD user manual, malfunction procedure, and data-transfer instructions."],faqs:[{q:"Does TT ELD charge a cancellation fee?",a:"TT ELD sells month-to-month, so there is normally no termination fee. Prepaid annual plans are the exception — that time is generally not refunded."},{q:"Can I keep my PT-30 after leaving TT ELD?",a:"Yes. The PT-30 is a standard, FMCSA-registered device you purchased. ELD Hub re-registers it at no cost, so switching costs you nothing in hardware."},{q:"How long does the switch take?",a:"About five minutes per truck. Most single-truck operators are logging on ELD Hub the same day."},{q:"What does ELD Hub cost compared to TT ELD?",a:"ELD Hub is a flat $15 per truck per month with 
41no contract, and IFTA and dispatch tools are included rather than sold as add-ons."}]},TH=()=>C(()=>import("./cancel-tteld-BGKsm6ol.js"),[]),LH=R()({head:()=>qe(DH),component:A(TH,"component")}),AH={brand:"Verizon Connect",slug:"cancel-verizon-connect",contractLength:"36 months typical, auto-renews for 12 months",earlyTermFee:"Remaining contract value billed in full",noticePeriod:"60 days written notice before the renewal date",hardwareReturn:"Return leased gateways within 30 days or unreturned-equipment fees apply",cancelSteps:["Find your Verizon Connect service agreement — the initial term and renewal date are on the order form.","Diary the notice window. Verizon Connect agreements commonly auto-renew, and a missed 60-day notice locks in another full year.","Send written cancellation to your account manager and Verizon Connect customer care, including account number, company name, and the effective date.","Request an RMA in writing for every leased gateway and camera, and photograph serial numbers before shipping.","Export HOS records, DVIRs, and IFTA mileage for the full retention period — access is revoked on the effective date.","Confirm final invoice and that auto-renewal is switched off in writing before you stop paying."],faqs:[{q:"How long is a Verizon Connect contract?",a:"Most Verizon Connect fleet agreements run 36 months and then auto-renew in 12-month increments unless you give notice inside the window stated in your order form."},{q:"Is there an early termination fee?",a:"Yes. Terminating before the end of term generally means the remaining contract value is billed, plus fees for any leased hardware you do not return."},{q:"Can I keep the hardware?",a:"No. Verizon Connect gateways are proprietary and usually leased. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. There is no software contract."},{q:"What does ELD Hub cost instead?",a:"$15 per truck per month, month-to-month, with IFTA, DVIRs, and US-based phone support included."}]},_H=()=>C(()=>import("./cancel-verizon-connect-QntOhs3J.js"),[]),CH=R()({head:()=>qe(AH),component:A(_H,"component")}),RH={brand:"VisTracks",slug:"cancel-vistracks",contractLength:"Set by the reseller who white-labels the VisTracks platform",earlyTermFee:"Reseller-defined; VisTracks itself does not bill most fleets directly",noticePeriod:"Per your reseller agreement, usually 30 days",hardwareReturn:"Depends on the reseller — check whether your device was sold or leased",cancelSteps:["Read your VisTracks agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email VisTracks billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from your reseller's branded portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Depends on the reseller — check whether your device was sold or leased. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does VisTracks require?",a:"Per your reseller agreement, usually 30 days. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for VisTracks?",a:"Reseller-defined; VisTracks itself does not bill most fleets directly. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave VisTracks?",a:"Depends on the reseller — check whether your device was sold or leased. VisTracks powers dozens of white-label ELD brands; your contract is with the reseller, not VisTracks."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with 
41no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},IH=()=>C(()=>import("./cancel-vistracks-CDLs0sfR.js"),[]),OH=R()({head:()=>qe(RH),component:A(IH,"component")}),$H={brand:"Zonar",slug:"cancel-zonar",contractLength:"36 months, frequently bundled with EVIR and student-transport modules",earlyTermFee:"Remaining term on the bundled subscription",noticePeriod:"60 days written notice",hardwareReturn:"Zonar tablets and V4 units are leased on most plans",cancelSteps:["Read your Zonar agreement first. Confirm the exact term end date, notice window, and whether the plan auto-renews — the contract governs, not what support tells you on the phone.","Put the cancellation in writing. Email Zonar billing with your account number, DOT number, unit list, and the effective end date, and ask for written confirmation.","Export six months of RODS, DVIRs, and IFTA mileage from the Zonar Ground Traffic Control portal before your login is deactivated. FMCSA requires you to retain the records regardless of who your provider is.","Settle hardware. Zonar tablets and V4 units are leased on most plans. Get the return address and tracking in writing so a device fee cannot be added later.","Cancel connectivity and auto-pay. Confirm the SIM/data plan is terminated and remove the card on file only after the final invoice clears.","Run both systems for 3–5 days during the overlap so drivers never have a compliance gap, then remove the old app from every phone and tablet."],faqs:[{q:"How much notice does Zonar require?",a:"60 days written notice. Missing the window is the most common reason a fleet gets billed for another full term, so send the notice early and keep the confirmation."},{q:"What is the early-termination fee for Zonar?",a:"Remaining term on the bundled subscription. Terms vary by contract, so read your own agreement — the number in your paperwork is the one that applies."},{q:"Can I keep my hardware when I leave Zonar?",a:"Zonar tablets and V4 units are leased on most plans. Zonar's hardware and inspection modules are proprietary."},{q:"What does ELD Hub cost after switching?",a:"$15 per truck per month with no contract and a 14-day free trial, including HOS, DVIR, and IFTA. New PT-30 or IOSiX hardware is $150 each with free shipping; both are in stock and ship same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own may be re-registered free after serial confirmation."}]},NH=()=>C(()=>import("./cancel-zonar-Cz-q8beU.js"),[]),HH=R()({head:()=>qe($H),component:A(NH,"component")}),PH={brand:"Captain ELD",slug:"captain-eld-login",loginUrl:"https://portal.captaineld.com/login",compareTo:"/best-eld-small-fleets",intro:"Captain ELD sign-in link plus the fixes that clear most login and pairing problems. If the bill is what brought you here, ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Portal address",b:"Fleet admins sign in at portal.captaineld.com/login. Bookmark it directly rather than searching each time."},{t:"Reset email not arriving",b:"Check spam, then confirm with your fleet admin which address the account uses."},{t:"Device will not pair",b:"Force-close the driver app, toggle Bluetooth, then re-pair with the ignition on and the phone within the cab."},{t:"Malfunction code showing",b:"Log the malfunction, switch to paper logs for that day, and keep the record — inspectors accept paper during a documented ELD malfunction."}],faqs:[{q:"What is the Captain ELD login URL?",a:"Fleet admins sign in at portal.captaineld.com/login. Drivers use the Captain ELD mobile app with credentials issued by their fleet manager."},{q:"What does ELD Hub charge?",a:"$15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included, no setup fee, and a 14-day free trial."},{q:"Can I try it before cancelling?",a:"Yes. Run ELD Hub alongside your current provider through the 14-day trial, then give notice once you are satisfied."}]},jH=()=>C(()=>import("./captain-eld-login-FH5TQS62.js"),[]),qH=R()({component:A(jH,"component"),head:()=>ge(PH)}),Ha=Os("/cargo-van-eld"),MH=()=>C(()=>import("./cargo-van-eld-nU-lQOnH.js"),[]),FH=R()({head:()=>({meta:[{title:Ha.title},{name:"description",content:Ha.description},{property:"og:title",content:Ha.ogTitle},{property:"og:description",content:Ha.ogDescription},...de("compliance","ELD Hub — FMCSA-registered ELD for vans and light trucks."),{property:"og:url",content:`https://goeldhub.com${Ha.path}`},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:`https://goeldhub.com${Ha.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify($s(Ha))}]}),component:A(MH,"component")}),UH=qE("/cargo-van-loads"),BH=()=>C(()=>import("./cargo-van-loads-CKCFYCK-.js"),[]),zH=R()({head:()=>ME(UH),component:A(BH,"component")}),VH=[{q:"What's the cheapest ELD device in 2026?",a:"ELD Hub is $15/truck/month flat — the lowest FMCSA-registered rate on the market. No contract, no hardware financing, and you can bring your own PT-30 or IOSiX device."},{q:"Are cheap ELDs actually FMCSA-compliant?",a:"Yes, if they're on the FMCSA-registered device list. Price does not affect compliance — a $15 registered ELD and a $45 registered ELD both satisfy 49 CFR §395.8. What you pay extra for is bundled features (fleet mgmt, cameras), not compliance itself."},{q:"What hidden fees do 'cheap ELDs' usually have?",a:"Hardware financing ($15–$30/mo baked in), 12–36 month contracts with 3-figure early-termination fees, per-driver add-ons, IFTA modules ($5–$15/mo), and 'setup' or 'activation' charges. ELD Hub has none of these — the price you see is the price."},{q:"Can I really get an ELD for under $20/month?",a:"Yes. ELD Hub is $15/truck/month with everything included: HOS, DVIR, IFTA, DOT inspection mode, unlimited driver seats. Below that price point you're usually looking at unregistered 'ELOG' apps that will fail a DOT inspection."},{q:"Is a cheap ELD good enough for a 1–5 truck fleet?",a:"For 1–20 trucks, a cheap FMCSA-registered ELD is often better than an expensive one. Big-brand features (dashcams, driver scoring, geofencing) are built for 100+ truck fleets. Small carriers pay a premium for capacity they never use."}],GH=()=>C(()=>import("./cheap-eld-9LexCMLD.js"),[]),WH={"@context":"https://schema.org","@graph":[{"@type":"Product",name:"Cheap ELD Device — ELD Hub",description:"The cheapest FMCSA-registered ELD in 2026 at $15/truck/month. No contract, no hidden fees, no hardware financing.",brand:{"@type":"Brand",name:"ELD Hub"},offers:{"@type":"Offer",price:"15.00",priceCurrency:"USD",availability:"https://schema.org/InStock",url:"https://goeldhub.com/cheap-eld"},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.8",reviewCount:"312"}},{"@type":"FAQPage",mainEntity:VH.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},XH=R()({head:()=>({meta:[{title:"Cheapest ELD in 2026 — 15 Providers Compared"},{name:"description",content:"The cheapest FMCSA-registered ELDs in 2026 ranked on real monthly cost. ELD Hub is $15/truck/month with no contract; see how Motive, Samsara, EZ Logz and TT ELD compare."},{property:"og:title",content:"Cheapest ELD Device 2026 — $15/mo"},{property:"og:description",content:"$15/truck/month flat. No contract, no hidden fees. The most affordable FMCSA-registered ELD for small fleets."},...de("default","ELD Hub — $15/mo unlocks the full fleet stack for small trucking fleets."),{property:"og:url",content:"https://goeldhub.com/cheap-eld"},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:"https://goeldhub.com/cheap-eld"}],scripts:[{type:"application/ld+json",children:JSON.stringify(WH)}]}),component:A(GH,"component")}),YH={brand:"Club ELD",slug:"club-eld-login",loginUrl:"https://clubeld.pro/",compareTo:"/best-eld-small-fleets",intro:"Need your Club ELD login? Access the Club ELD dashboard below. Club ELD runs on the same PT-30 hardware ELD Hub supports — switching is a 5-minute re-registration if you're tired of Club's pricing or support delays.",tips:[{t:"Club ELD portal errors?",b:"If clubeld.pro won't load, verify DNS resolves in your region — some hosting providers have geo issues. Try a different network or the mobile app first."},{t:"Driver app crashing?",b:"Force-quit and reopen. Persistent crashes on the Club ELD app usually mean an OS update broke the ELD build — check the store for updates."},{t:"Sync errors on PT-30?",b:"Bluetooth pairing sometimes fails after truck restarts. Unpair, restart the phone, and re-pair. If it repeats, the PT-30 is fine — the issue is app-side."},{t:"Considering switching from Club ELD?",b:"ELD Hub re-registers your PT-30 in 5 minutes and includes IFTA, freight tools, US phone support during business hours and a 24/7 AI advisor at $15/truck flat."}],faqs:[{q:"What is the Club ELD login URL?",a:"Club ELD's fleet portal is at clubeld.pro. Drivers use the Club ELD mobile app with credentials from the fleet admin."},{q:"Is Club ELD FMCSA-registered?",a:"Club ELD is on the FMCSA-registered ELD list at the time of writing. Always confirm current status on the FMCSA registry before your next inspection."},{q:"Can I use my Club ELD PT-30 with ELD Hub?",a:"Yes. PT-30 is a provider-agnostic FMCSA-registered device. ELD Hub re-registers it for free — no shipping, no new hardware, no downtime."},{q:"Why do fleets switch from Club ELD to ELD Hub?",a:"The most common reasons: flat $15/truck vs variable pricing, no contract, faster support response, and IFTA included in the base price."}]},KH=()=>C(()=>import("./club-eld-login-fcZSAptN.js"),[]),QH=R()({head:()=>ge(YH),component:A(KH,"component")}),JH=[{t:"Create your ELD Hub account",d:"Four short steps at the ELD Hub portal: personal details, company info with your USDOT and MC, billing. About two minutes. The 14-day free trial starts here and there is no contract."},{t:"Get a compatible device",d:"Order a PT-30 or IOSiX at $150 each with free shipping — in stock, ships same or next business day. PT-30 includes a cable; IOSiX is device only. Already own a compatible device? Send us the serial number and we re-register it free."},{t:"Plug in and pair",d:"Locate the diagnostic port — on vans and light trucks it is the OBD-II port under the dash on the driver's side. Plug the device in, install the free ELD Hub app on the driver's phone, and pair over Bluetooth. About 10 minutes, no tools and no installer."},{t:"Confirm the vehicle is reporting",d:"Start the engine, open the app, and check that the vehicle shows a live position and duty status. That is the data a broker or vetting platform is looking for."},{t:"Connect Highway or Trucker Tools",d:"ELD HUB is fully integrated with both Highway and Trucker Tools. In the platform's connection screen, choose ELD HUB as your ELD provider and authorize the connection with your account details. Your duty status and vehicle location start flowing to the broker immediately. If you get stuck, contact ELD HUB support and we will c
41omplete it with you."}],ZH=[{q:"How long does the whole process take?",a:"Registration is about two minutes and device setup is about ten. Hardware is in stock and ships same or next business day with free shipping. If you already own a PT-30 or IOSiX you can be reporting the same day."},{q:"Do I need a CDL or a specific vehicle class?",a:"No. ELD HUB works on any vehicle with a standard OBD-II or 9-pin diagnostic port, including sprinter vans, cargo vans, pickups and box trucks, whether or not the federal mandate applies to you."},{q:"Is ELD HUB integrated with Highway and Trucker Tools?",a:"Yes. ELD HUB is fully integrated with both. Choose ELD HUB as your provider in the platform's connection flow and authorize it — no manual workaround and no separate telematics subscription."},{q:"Can I cancel if I stop needing it?",a:"Yes. ELD HUB is month to month at $15 per vehicle with no contract and no cancellation fee. The device is $150 with free shipping and it is yours to keep."}],eP=()=>C(()=>import("./connect-eld-to-highway-Dvp2OwmR.js"),[]),tP={"@context":"https://schema.org","@type":"HowTo",name:"How to set up an ELD for a broker or carrier-vetting requirement",description:"Register an FMCSA-registered ELD account, install a device in the vehicle's diagnostic port, confirm it is reporting, and share access with the platform requesting it.",step:JH.map((e,t)=>({"@type":"HowToStep",position:t+1,name:e.t,text:e.d}))},rP={"@context":"https://schema.org","@type":"FAQPage",mainEntity:ZH.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},nP=R()({head:()=>({meta:[{title:"How to Connect an ELD to Highway — 4 Steps | ELD HUB"},{name:"description",content:"Step-by-step: register with ELD HUB, connect a PT-30 or IOSiX, confirm reporting, then select ELD HUB in Highway. $15/truck/month, devices in stock at $150 each."},{property:"og:title",content:"How to Connect an ELD to Highway"},{property:"og:description",content:"Register, plug in, confirm, connect. The whole setup for a van or box truck, start to finish."},...de("compliance","ELD Hub — set up an FMCSA-registered ELD in minutes."),{property:"og:url",content:"https://goeldhub.com/connect-eld-to-highway"},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/connect-eld-to-highway"}],scripts:[{type:"application/ld+json",children:JSON.stringify(tP)},{type:"application/ld+json",children:JSON.stringify(rP)}]}),component:A(eP,"component")}),aP=()=>C(()=>import("./contact-DRPA1Gjz.js"),__vite__mapDeps([7,8,1])),oP=R()({head:()=>({meta:[{title:"Contact ELD HUB — Message us | $15/truck/month"},{name:"description",content:"Message the ELD HUB team about ELD, RFP Freight, factoring, fuel, capital, drivers and insurance. Or call 302-404-1177."},{property:"og:title",content:"Contact ELD HUB"},{property:"og:description",content:"Message us about ELD, RFP Freight, factoring, fuel, capital, drivers and insurance for 1–20 truck fleets."},{property:"og:type",content:"website"},{property:"og:url",content:"https://goeldhub.com/contact"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/contact"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"LocalBusiness",name:"ELD HUB",url:"https://goeldhub.com",telephone:"+1-302-404-1177",address:{"@type":"PostalAddress",streetAddress:"303 E Main Street",addressLocality:"Barrington",addressRegion:"IL",postalCode:"60010",addressCountry:"US"}})}]}),component:A(aP,"component")}),iP=()=>C(()=>import("./cost-per-mile-calculator-DuEV4PCP.js"),__vite__mapDeps([9,3])),sP=R()({head:()=>({meta:[{title:"Free Trucking Cost Per Mile Calculator (2026)"},{name:"description",content:"Free cost-per-mile calculator for owner-operators and small fleets. Enter fuel, insurance, maintenance and fixed costs to see your true CPM and break-even rate."},{property:"og:title",content:"Trucking Cost Per Mile Calculator — Free, No Signup"},{property:"og:description",content:"Work out your real cost per mile and the minimum rate you can accept. Built for 1–20 truck fleets."},...de("compliance","ELD Hub — tools for small trucking fleets."),{property:"og:url",content:"https://goeldhub.com/cost-per-mile-calculator"},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"Trucking Cost Per Mile Calculator — Free"},{name:"twitter:description",content:"See your true CPM and break-even rate in under a minute. No signup."}],links:[{rel:"canonical",href:"https://goeldhub.com/cost-per-mile-calculator"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebApplication",name:"Trucking Cost Per Mile Calculator",applicationCategory:"BusinessApplication",operatingSystem:"Any",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},description:"Calculate cost per mile and break-even rate per mile for owner-operators and small trucking fleets."})}]}),component:A(iP,"component")}),lP={brand:"Digital ELD",slug:"digital-eld-login",loginUrl:"https://portal.digitaleld.com/",compareTo:"/best-eld-small-fleets",intro:"Digital ELD sign-in link and the fixes for locked accounts and pairing faults. Comparing providers while you are here? ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Portal address",b:"Fleet admins sign in at portal.digitaleld.com. Bookmark the portal itself rather than the marketing site."},{t:"Password reset",b:"Use the reset link on the sign-in page. No email within a few minutes usually means the account uses a different address — ask your fleet admin."},{t:"Device offline",b:"Reseat the unit at the diagnostic port with the ignition on and wait two minutes before opening a support ticket."},{t:"Logs not transferring at inspection",b:"Keep the driver app's inspection mode and the ELD instruction card in the cab; an officer can read logs on screen if the web transfer fails."}],faqs:[{q:"What is the Digital ELD login URL?",a:"Fleet admins sign in at portal.digitaleld.com. Drivers use the Digital ELD mobile app with credentials issued by their fleet manager."},{q:"Is ELD Hub cheaper?",a:"ELD Hub is $15 per truck per month with 
41no contract, HOS, DVIR, IFTA and GPS included, and a 14-day free trial."},{q:"Can I keep my current device?",a:"If you own a compatible PT-30 or IOSiX, ELD Hub can re-register it free after serial confirmation. Otherwise either new device is $150 with free shipping; PT-30 includes a cable, IOSiX is device only."}]},cP=()=>C(()=>import("./digital-eld-login-zWO4l_xL.js"),[]),uP=R()({component:A(cP,"component"),head:()=>ge(lP)}),dP={slug:"dot-compliance",eyebrow:"Compliance hub",h1:"DOT Compliance for Small Fleets: The Complete Checklist",intro:"DOT compliance is not one rule — it is roughly a dozen recurring obligations that a one-truck authority and a twenty-truck carrier both have to keep current. Here is every piece, what it costs, how often it comes due, and what happens when it lapses.",metaTitle:"DOT Compliance Checklist for Small Fleets",metaDescription:"Every DOT compliance requirement for carriers under 20 trucks: ELD and HOS, DQ files, drug testing, DVIRs, IFTA, UCR, MCS-150, insurance, and audit readiness.",ogCategory:"compliance",ogAlt:"DOT compliance checklist for small trucking fleets.",quickAnswer:{question:"What does DOT compliance require for a small carrier?",answer:"A DOT-compliant carrier keeps an FMCSA-registered ELD with current HOS logs, driver qualification files, a random drug and alcohol testing program, daily DVIRs and annual inspections, IFTA fuel-tax filings, UCR registration, a biennial MCS-150 update, and required insurance filings on file at all times."},sections:[{h2:"The recurring obligations",body:"Most new-authority carriers fail an audit on paperwork, not on driving. These are the items that come due on a schedule and that an auditor will ask for by name.",bullets:["ELD and HOS records: current day plus 7 prior days in the truck; 6 months retained by the carrier","Driver qualification file per driver: application, MVR annually, road test, medical certificate, previous-employer checks","Drug and alcohol program: pre-employment test, random pool enrollment, and a designated employer representative","DVIRs: driver vehicle inspection reports for any defect, plus an annual DOT inspection per power unit","IFTA: quarterly fuel-tax return in your base state if you cross state lines over 26,000 lbs","UCR: annual Unified Carrier Registration, due by December 31 for the following year","MCS-150: biennial update based on your USDOT number, even if nothing changed","Insurance: BMC-91X on file with FMCSA at the required liability level"]},{h2:"What triggers an audit",body:"Every new authority gets a New Entrant Safety Audit within the first 12 months. After that, audits are driven by your CSA scores, a crash, a complaint, or an out-of-service pattern found at roadside. The single most common trigger for an established carrier is a BASIC score crossing an intervention threshold — and Hours of Service is the BASIC most small fleets fail."},{h2:"The seven CSA BASICs",body:"The Compliance, Safety, Accountability program scores carriers in seven categories from roadside inspection and crash data over a 24-month window. Scores are weighted by severity and recency, so a violation from last month hurts far more than the same violation two years ago.",bullets:["Unsafe Driving — speeding, reckless, seat belt","Hours of Service Compliance — form and manner, false logs, exceeding limits","Driver Fitness — CDL and medical card problems","Controlled Substances and Alcohol","Vehicle Maintenance — lights, brakes, tires, the top out-of-service category","Hazardous Materials Compliance","Crash Indicator"]},{h2:"Where an ELD does the compliance work for you",body:"An ELD is the only compliance item that runs continuously without anyone remembering to do it. It captures HOS automatically, files DVIRs from the driver app, and accumulates the state-by-state mileage that IFTA returns require. When a provider bundles those together, three of the recurring obligations largely take care of themselves.",bullets:["Automatic HOS records with an audit trail on every edit","Electronic DVIRs with defect history per unit","IFTA mileage by jurisdiction, generated from the same GPS data","Roadside data transfer in the FMCSA-required format","Six months of retained records available for an audit request"]},{h2:"A realistic first-year compliance budget",body:"For a single-truck authority, the compliance line items — ELD software and hardware, drug consortium, UCR, IFTA decals, and the BOC-3 filing — typically land in the low four figures for year one, with the ELD being the only recurring monthly cost. Choosing a $15 per truck per month ELD instead of a $40 contract saves roughly $300 per truck per year on that line alone."}],table:{caption:"Compliance calendar",headers:["Item","Frequency","Who enforces"],rows:[["ELD / HOS logs","Continuous; 6-month retention","FMCSA / roadside"],["DVIR","Daily when a defect exists","FMCSA / roadside"],["Annual vehicle inspection","Every 12 months per unit","FMCSA"],["MVR review","Annually per driver","FMCSA"],["Medical certificate","Per exam expiration (max 24 months)","FMCSA / state CDL"],["Random drug testing","Ongoing pool; rates set annually","FMCSA"],["IFTA return","Quarterly","Base-state DOR"],["UCR","Annually by December 31","UCR board"],["MCS-150 update","Every 24 months","FMCSA"]]},faqs:[{q:"What is DOT compliance?",a:"DOT compliance means meeting the Federal Motor Carrier Safety Regulations that apply to your operation: Hours of Service and ELD use, driver qualification files, drug and alcohol testing, vehicle inspection and maintenance records, fuel-tax reporting, registration filings, and insurance. Carriers must be able to produce the records on demand."},{q:"What does a New Entrant Safety Audit check?",a:"It checks whether you have the required programs in place, not whether you are perfect. Auditors look for driver qualification files, a drug and alcohol testing program, HOS records, vehicle maintenance and inspection records, insurance, and accident registers. Missing an entire program is an automatic failure."},{q:"How long do I keep DOT records?",a:"Hours of Service records and supporting documents: 6 months. DVIRs: 3 months. Annual inspection reports: 14 months. Driver qualification files: for employment plus 3 years. Drug and alcohol testing records: 1 to 5 years depending on the record type."},{q:"Do I need an ELD if I only run one truck?",a:"Yes, if you operate in interstate commerce over 10,001 lbs and are required to keep records of duty status. The mandate has no fleet-size floor. ELD Hub is built for exactly this case at $15 per month for one truck with 
41no contract."},{q:"What is the most common DOT violation?",a:"Vehicle maintenance items — lights, brakes, and tires — produce the most roadside violations and out-of-service orders, followed by Hours of Service form-and-manner errors. Both are largely preventable with consistent DVIRs and an ELD that logs automatically."},{q:"Can one platform cover all of this?",a:"Not all of it. An ELD platform covers HOS, DVIRs, IFTA mileage, and inspection-ready record retention. Drug testing consortium, UCR, and MCS-150 filings are separate. ELD Hub covers the ELD side at $15 per truck per month and links members to factoring, fuel, insurance, and capital partners for the rest."}],related:[{to:"/hours-of-service",label:"Hours of Service rules",note:"The four clocks and the exceptions that buy time."},{to:"/dot-inspection-eld",label:"DOT inspection checklist",note:"What an officer checks at roadside, step by step."},{to:"/eld-violations-penalties",label:"Violations and penalties",note:"Dollar amounts and CSA points by violation type."},{to:"/ifta-reporting-software",label:"IFTA reporting",note:"Quarterly fuel-tax filing from your ELD mileage."},{to:"/how-to-start-trucking-company",label:"Starting a trucking company",note:"Authority, filings, and first-year costs."},{to:"/eld-cab-card",label:"ELD cab card packet",note:"The documents that must be in the truck."}],ctaHeadline:"Cover the ELD side for $15/truck/month",ctaSubhead:"HOS, DVIRs, IFTA mileage, and six-month record retention in one FMCSA-registered platform. No contract. US-based phone support when an officer is standing at your window.",breadcrumbName:"DOT compliance"},hP=()=>C(()=>import("./dot-compliance-DzDBmBX9.js"),[]),pP=R()({component:A(hP,"component"),head:()=>js(dP)}),fP=yn.find(e=>e.path==="/dot-drug-testing-consortium"),mP=()=>C(()=>import("./dot-drug-testing-consortium-CYIwf9b8.js"),[]),gP=R()({head:()=>ri(fP),component:A(mP,"component")}),yP=["ELD is powered on and connected to the engine","Driver is logged in with correct driver ID","Last 8 days of RODS are visible on the display","Data transfer method works (email, web, or Bluetooth per §395.24)","ELD malfunction indicator is CLEAR — no diagnostic warnings","Driver has the ELD user manual in the cab (physical or digital)","Driver has the ELD malfunction instruction sheet","Blank paper log sheets for backup (8-day rule)","Registered ELD ID and provider info on the cab card"],bP=[{q:"What does a DOT officer check on an ELD inspection?",a:"Officer will ask for: (1) current 8 days of RODS, (2) ELD user manual, (3) data transfer to their laptop or device, (4) malfunction status, (5) driver ID/CDL match. Total inspection: 5–10 minutes if your ELD is working."},{q:"How do I transfer ELD data to a DOT officer?",a:"Per §395.24 you must support one of four methods: email, web services, Bluetooth, or USB. Most modern ELDs (including ELD Hub) offer email + web transfer. Officer gives you a code, you enter it, data goes to FMCSA's eRODS system."},{q:"What if my ELD malfunctions during an inspection?",a:"FMCSA allows up to 8 days of paper logs while the ELD is being repaired. Note the malfunction time, keep paper logs for the affected period, notify the carrier within 24 hours, and get the ELD fixed within 8 days."},{q:"Do I need to print my logs?",a:"No. Display is sufficient. But you must be able to show the officer the last 8 days plus today. Digital display or printout both satisfy the rule."},{q:"What are common ELD inspection violations?",a:"Missing user manual, no malfunction sheet, unable to transfer data (§395.22(h)), missing driver info, unassigned driving time not reviewed, and ELD not on the FMCSA-registered list."},{q:"Can I fail a DOT inspection because of my ELD?",a:"Yes. Non-compliant ELD or unable-to-transfer = out-of-service until fixed. That's typically 8–48 hours of downtime plus CSA points that hit for 2 years."}],vP=()=>C(()=>import("./dot-inspection-eld-BKVqx5iF.js"),[]),wP={"@context":"https://schema.org","@graph":[{"@type":"HowTo",name:"DOT ELD Inspection Checklist",description:"Step-by-step checklist for passing a roadside DOT inspection of your electronic logging device.",step:yP.map((e,t)=>({"@type":"HowToStep",position:t+1,name:e}))},{"@type":"FAQPage",mainEntity:bP.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},xP=R()({head:()=>({meta:[{title:"DOT ELD Inspection Checklist 2026 | ELD Hub"},{name:"description",content:"Complete DOT roadside ELD inspection checklist: what officers check, data transfer methods (§395.24), the 8-day malfunction rule, and common violations."},{property:"og:title",content:"DOT ELD Inspection Checklist 2026"},{property:"og:description",content:"Everything a DOT officer checks on a roadside ELD inspection — and how to pass every time."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:url",content:"https://goeldhub.com/dot-inspection-eld"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/dot-inspection-eld"}],scripts:[{type:"application/ld+json",children:JSON.stringify(wP)}]}),component:A(vP,"component")}),EP={state:"Arizona",abbr:"AZ",slug:"eld-arizona",carriers:"20,000+",hubs:["Phoenix","Tucson","Nogales","Flagstaff","Yuma","Kingman"],corridors:["I-10 (Phoenix → Tucson → Nogales border)","I-17 (Phoenix → Flagstaff)","I-40 (Kingman → Flagstaff → New Mexico)","I-8 (Yuma → Casa Grande)"],intro:"Arizona is a critical Mexico-US border freight state — Nogales alone handles more produce than any other US border crossing. ELD Hub is built for small AZ fleets running produce from Nogales, distribution out of Phoenix, and cross-border drayage to Sonora — $15/truck/month, no contract.",faqs:[{q:"Does ELD Hub pass Arizona DPS Commercial Vehicle inspections?",a:"Yes. ELD Hub is FMCSA-registered and clears AZ DPS at every port of entry — including San Simon, Yuma, Ehrenberg, and the Nogales/Mariposa ports."},{q:"Do you support Arizona IFTA and IRP filings?",a:"Yes. Quarterly IFTA reports auto-generate — including miles through California, Nevada, Utah, New Mexico, and Mexico crossings. Export and file with Arizona DOT."},{q:"How does ELD Hub handle US-Mexico cross-border trips from Nogales?",a:"US HOS is logged FMCSA-compliant. Mexican SCT hours are separate — most cross-border operators log US miles in ELD Hub and keep Mexican logs separate per SCT rules. Talk to us at 302-404-1177 for Mexico-specific setup."},{q:"How fast can hardware ship to Phoenix or Tucson?",a:"PT-30 devices ship free and typically arr
41ive in Phoenix, Tucson, or Yuma in 2 business days."},{q:"Is there an agricultural exemption for AZ produce hauls?",a:"Yes — the 150-air-mile agricultural exemption during harvest season applies. ELD Hub supports the exemption at the driver level, common for Nogales-to-Phoenix produce runs."}]};function nG({data:e}){return`${e.state}`,`${e.state}${e.hubs[0]}`,c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Kp,{className:"size-3.5"})," ELD for ",e.state," (",e.abbr,")"]}),c.jsxs("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:["Best ELD for ",e.state," Truckers"]}),c.jsx("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:e.intro}),c.jsx("div",{className:"max-w-2xl",children:c.jsx(Ft,{question:`What is the best ELD for a small fleet in ${e.state}?`,answer:`For owner-operators and fleets under 20 trucks in ${e.state}, ELD Hub is an FMCSA-registered ELD at $15 per truck per month with no contract. IFTA, DVIRs, and DOT roadside data transfer are included. PT-30 or IOSiX hardware is $150 each with free shipping (PT-30 includes a cable; IOSiX is device only), or re-register a compatible device you already own free.`})}),c.jsxs("div",{className:"mt-8 flex flex-wrap gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," Start 14-day free trial ",c.jsx(at,{className:"size-4"})]}),c.jsx("a",{href:Ee.phone,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:"Call 302-404-1177"})]}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:["Built for ",e.state,"'s freight corridors"]}),c.jsxs("p",{className:"mt-3 max-w-2xl text-muted-foreground",children:[e.state," moves more freight than most countries. Whether you run out of"," ",e.hubs.slice(0,-1).join(", ")," or ",e.hubs.slice(-1),", ELD Hub keeps your HOS, DVIRs, and IFTA compliant on every mile."]}),c.jsxs("div",{className:"mt-8 grid gap-6 sm:grid-cols-2",children:[c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsx(mn,{className:"size-6 text-accent"}),c.jsxs("p",{className:"mt-3 font-semibold text-foreground",children:["Major ",e.state," freight hubs"]}),c.jsx("ul",{className:"mt-2 space-y-1.5 text-sm text-muted-foreground",children:e.hubs.map(t=>c.jsxs("li",{className:"flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," ",t]},t))})]}),c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsx(Kp,{className:"size-6 text-accent"}),c.jsx("p",{className:"mt-3 font-semibold text-foreground",children:"Key corridors we cover"}),c.jsx("ul",{className:"mt-2 space-y-1.5 text-sm text-muted-foreground",children:e.corridors.map(t=>c.jsxs("li",{className:"flex items-center gap-2",children:[c.jsx(ut,{className:"size-4 text-accent"})," ",t]},t))})]})]})]}),c.jsx("section",{className:"border-y border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:["Why ",e.state," carriers pick ELD Hub"]}),c.jsx("div",{className:"mt-8 grid gap-4 sm:grid-cols-3",children:[{Icon:ia,t:"FMCSA-registered",b:`Passes DOT inspections at every ${e.abbr} weigh station. On the official FMCSA ELD list.`},{Icon:mn,t:`Made for ${e.state} small fleets`,b:`${e.carriers} carriers registered in ${e.state} — most are 1–20 trucks. ELD Hub is priced for them, not for mega-fleets.`},{Icon:ut,t:"No contracts",b:"Month-to-month. Cancel anytime. PT-30 or IOSiX $150 each with free shipping."}].map(t=>c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsx(t.Icon,{className:"size-6 text-accent"}),c.jsx("p",{className:"mt-3 font-semibold text-foreground",children:t.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t.b})]},t.t))})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Hr,{className:"size-3.5"})," ",e.state," ELD FAQ"]}),c.jsx("h2",{className:"mt-3 text-2xl font-bold text-foreground sm:text-3xl",children:"Frequently asked questions"}),c.jsx("div",{className:"mt-8 space-y-3",children:e.faqs.map((t,n)=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer list-none font-semibold text-foreground marker:hidden",children:t.q}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:t.a})]},n))})]}),c.jsx("section",{className:"border-t border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsx("h2",{className:"text-xl font-bold text-foreground",children:"More from ELD Hub"}),c.jsxs("div",{className:"mt-5 grid gap-3 sm:grid-cols-3",children:[c.jsxs(W,{to:"/best-eld-small-fleets",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Best ELD for Small Fleets"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"15 providers compared for fleets under 20 trucks."})]}),c.jsxs(W,{to:"/eld-pricing",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"ELD Pricing"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"$15/truck/month flat. No contract, no add-ons."})]}),c.jsxs(W,{to:"/switch/pt30-iosix-providers",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Keep Your PT-30 or IOSiX"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Switch providers without buying new hardware."})]}),c.jsxs(W,{to:"/eld-login",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"ELD Login"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Driver and fleet manager portal."})]}),c.jsxs(W,{to:"/owner-operator-eld",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"ELD for Owner-Operators"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"$15/mo, no contract, one-truck friendly."})]}),c.jsxs(W,{to:"/eld-cab-card",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"ELD Cab Card & Manuals"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Download driver manuals for DOT stops."})]}),c.jsxs(W,{to:"/free-eld-compliance-calculator",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Compliance Calculator"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Estimate your violation exposure in 60 seconds."})]})]})]})}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function jr(e){const t=`https://goeldhub.com/${e.slug}`,n=`${e.state} ELD — FMCSA, $15/mo | ELD Hub`,o=`FMCSA-registered ELD for ${e.state} truckers: $15/truck/month, no contract, free shipping to ${e.hubs[0]} & ${e.hubs[1]}. See pricing.`;return{meta:[{title:n},{name:"description",content:o},{property:"og:title",content:n},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:t},...de("states",`ELD Hub — FMCSA-registered ELD for ${e.state} trucking fleets, $15/truck/month.`),{name:"twitter:title",content:n}],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"LocalBusiness",name:`ELD Hub — ${e.state}`,description:o,url:t,areaServed:{"@type":"State",name:e.state}
41,telephone:"+1-302-404-1177"})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(s=>({"@type":"Question",name:s.q,acceptedAnswer:{"@type":"Answer",text:s.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"State ELD Guides",item:"https://goeldhub.com/#states"},{"@type":"ListItem",position:3,name:`${e.state} ELD`,item:t}]})}]}}const SP=()=>C(()=>import("./eld-arizona-Cdnl0Mrf.js"),[]),kP=R()({component:A(SP,"component"),head:()=>jr(EP)}),DP=[{q:"What is an ELD cab card?",a:"An ELD cab card is a printed document (usually 1–2 pages) that drivers keep in the truck for roadside inspections. It shows the DOT officer how to operate the ELD, transfer HOS data, and switch to paper logs if the device malfunctions."},{q:"What does a DOT officer ask for at a roadside inspection?",a:"Officers can ask for: your HOS logs (transferred via email or web services from the ELD), a driver's manual for the ELD, instructions on how to transfer data, and paper log-book forms in case the ELD fails. The cab card / driver manual covers most of those requirements in one document."},{q:"Do I need paper cab card documents, or is a phone/tablet OK?",a:"FMCSA requires the documents to be 'in the vehicle' — the current guidance accepts either paper or an accessible digital copy on the same device running the ELD. To be safe, most fleets print a paper copy and keep the PDF on the driver's phone as backup."},{q:"What's the difference between an ELD cab card and the user manual?",a:"The cab card is a subset of the user manual — the pages a DOT officer needs at a roadside stop (data transfer instructions, malfunction procedures, driver interface). Some providers hand out both; others combine them. The ELD Hub driver manuals include all the required cab-card content."},{q:"What happens if I don't have the cab card in the truck?",a:"It's a violation. Depending on the officer and jurisdiction, you may be cited or logged as out of compliance. It's not usually out-of-service, but it hurts your CSA score."},{q:"Which ELD Hub manual should I download?",a:"Match your hardware and phone. If your fleet uses PT-30 devices and drivers run iPhones, download 'PT-30 ELD — iOS.' If you're on IOSiX and Android, download 'IOSiX ELD — Android.' If you mix hardware, keep all four PDFs on the driver's phone."}],TP=()=>C(()=>import("./eld-cab-card-wDxnuc3T.js"),__vite__mapDeps([10,11,12])),LP=R()({component:A(TP,"component"),head:()=>({meta:[{title:"ELD Cab Card & Driver Manuals — Download PDFs | ELD Hub"},{name:"description",content:"Download the ELD Hub cab card and driver manuals for DOT roadside inspections. PT-30 and IOSiX devices, iOS and Android. Free PDF downloads for drivers and fleet managers."},{property:"og:title",content:"ELD Cab Card & Driver Manuals — Download PDFs | ELD Hub"},{property:"og:description",content:"Free PDF downloads of the ELD Hub cab card and driver manuals for PT-30 and IOSiX devices on iOS and Android."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:type",content:"website"},{property:"og:url",content:"https://goeldhub.com/eld-cab-card"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"ELD Cab Card & Driver Manuals | ELD Hub"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-cab-card"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebPage",name:"ELD Cab Card & Driver Manuals",url:"https://goeldhub.com/eld-cab-card",description:"Downloadable ELD Hub cab card and driver manuals for PT-30 and IOSiX ELDs on iOS and Android."})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:DP.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})}]})}),AP={state:"California",abbr:"CA",slug:"eld-california",carriers:"180,000+",hubs:["Los Angeles","Long Beach","Oakland","San Diego","Sacramento","Fresno"],corridors:["I-5 (San Diego → Sacramento)","I-10 (LA → AZ line)","I-80 (Bay Area → NV)","SR-99 (Central Valley)"],intro:"California runs the strictest compliance market in the country — CARB, port drayage rules, and CHP inspections. ELD Hub keeps 
41small fleets and port drivers legal on every mile, with FMCSA-registered hardware and $15/truck pricing that fits a drayage margin.",faqs:[{q:"Does ELD Hub work for LA/Long Beach port drayage?",a:"Yes. Drayage drivers are our biggest California use case. The PT-30 tracks your yard time, port dwell, and on-duty hours so you stay legal even on 14-hour port days."},{q:"Is ELD Hub CARB compliant?",a:"ELD Hub is an hours-of-service device — CARB regulates truck emissions, not logs. Your truck needs to meet CARB independently, but our ELD is fully FMCSA-registered for California CHP stops."},{q:"I run a 5-truck fleet out of Oakland. Is this worth switching to?",a:"If you're paying more than $20/truck elsewhere, yes. Most Oakland fleets we onboard save $50–150/truck/year, and there's no annual contract locking you in."},{q:"How does ELD Hub handle California's meal and rest break rules?",a:"California AB 5 and state break rules are separate from federal HOS, but ELD Hub logs every off-duty period so you have proof if a driver is audited by DLSE."},{q:"Can I file California IFTA from ELD Hub?",a:"Yes. Auto-generated quarterly IFTA reports by state, ready to file with California BOE."}]},_P=()=>C(()=>import("./eld-california-Dn3KNlZ3.js"),[]),CP=R()({component:A(_P,"component"),head:()=>jr(AP)}),RP=[{q:"Am I exempt from the ELD mandate?",a:"You're likely exempt if: your engine is pre-2000, you're short-haul 150 air-mile with same-day return, you keep RODS ≤8 days in 30, or you're drive-away/tow-away. Otherwise you probably need an ELD."},{q:"What is the 100/150 air-mile exemption?",a:"Property-carrying drivers within a 150 air-mile radius of their reporting location who return to that location within 14 hours are exempt from RODS/ELD. FMCSA expanded this from 100 to 150 miles in September 2020."},{q:"Does the pre-2000 exemption use vehicle year or engine year?",a:"Engine year. A 2005 truck with a 1999 rebuilt engine can qualify. But you must have paperwork proving the engine model year — check the engine plate, not the truck VIN."},{q:"What if I only occasionally drive long-haul?",a:"The 8-day rule covers you. If you're required to keep RODS 8 or fewer days in any rolling 30-day period, you don't need an ELD. Day #9 in 30 days = you need one."},{q:"Are agricultural drivers exempt?",a:"Covered farm vehicles hauling agricultural commodities within 150 air-miles of the source are exempt. Rules vary by state and commodity — check with your state DOT before relying on this."},{q:"What's the risk of wrongly claiming an exemption?",a:"Out-of-service, $1,000–$10,000 fine per violation, CSA points that hit for 2 years, and possible insurance premium increase. Wrong exemption = ELD violation on your record."}],IP=()=>C(()=>import("./eld-exemptions-BtwN1nqQ.js"),[]),OP={"@context":"https://schema.org","@type":"FAQPage",mainEntity:RP.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},$P=R()({head:()=>({meta:[{title:"ELD Mandate Exemptions 2026 — Who's Exempt | ELD Hub"},{name:"description",content:"Full list of ELD mandate exemptions: pre-2000 engines, short-haul 150 air-mile, 8-day RODS rule, drive-away, agricultural. Decision tree included."},{property:"og:title",content:"ELD Mandate Exemptions 2026"},{property:"og:description",content:"Who is exempt from the FMCSA ELD mandate — and who thinks they are but isn't."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:url",content:"https://goeldhub.com/eld-exemptions"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-exemptions"}],scripts:[{type:"application/ld+json",children:JSON.stringify(OP)}]}),component:A(IP,"component")}),NP={state:"Florida",abbr:"FL",slug:"eld-florida",carriers:"95,000+",hubs:["Miami","Jacksonville","Tampa","Orlando","Fort Lauderdale","Port Everglades"],corridors:["I-95 (Miami → Jacksonville)","I-75 (Tampa → GA line)","I-4 (Tampa → Orlando)","Florida's Turnpike"],intro:"Florida runs on port freight, produce hauling, and cross-state I-95 traffic. ELD Hub keeps Miami-based drayage, Jacksonville OTR, and Tampa reefer fleets FMCSA-compliant — $15 per truck, no contracts, hardware shipped free.",faqs:[{q:"Do you support Port of Miami and Port Everglades drayage?",a:"Yes. The PT-30 handles port dwell time and 
41yard moves so drayage drivers stay legal on 12–14 hour port days."},{q:"I haul produce out of Homestead. Any special support?",a:"Agricultural short-haul exemptions apply within 150 air-miles. ELD Hub automatically flags your 150-mile exemption status so you don't get written up during a spot check."},{q:"Is ELD Hub good for Jacksonville-based OTR carriers?",a:"Yes. Most of our Jacksonville customers run 1–15 trucks up and down I-95. HOS, DVIRs, and IFTA are auto-generated as you cross into GA, SC, NC, and beyond."},{q:"How fast does hardware ship to Florida?",a:"2 business days to Miami, Jacksonville, Tampa, and Orlando. Free shipping on every plan."},{q:"Does ELD Hub work for hurricane-emergency exemptions?",a:"Yes. FMCSA emergency declarations pause HOS enforcement. ELD Hub tags those windows in your log so an auditor can see exactly why hours ran long."}]},HP=()=>C(()=>import("./eld-florida-BsfxiwYE.js"),[]),PP=R()({component:A(HP,"component"),head:()=>jr(NP)}),jP=[{q:"Can I get an ELD for just 1 truck?",a:"Yes. ELD Hub was built specifically for one-truck operations and small fleets. $15/month flat, no fleet-size minimum, no contract. Register today, be compliant tomorrow."},{q:"Do 1-truck ELDs still need FMCSA registration?",a:"Yes. The mandate applies per driver, not per fleet size. Even a single owner-operator crossing state lines needs an FMCSA-registered device. ELD Hub is registered."},{q:"Is $15/month really the price for 1 truck?",a:"Yes. There's no volume discount required, no fleet-size minimum, no 'starter fee.' A one-truck operation pays $15/month. Full stop."},{q:"What if I grow from 1 to 5 trucks?",a:"You add trucks in the dashboard, they auto-bill at $15/each. No renegotiation, no contract triggers. Scale up or scale down any month."},{q:"Can I share one ELD across multiple trucks?",a:"No — FMCSA rules require the ELD to be permanently installed and paired with a single vehicle (VIN, engine data). You need one device per truck. But ELD Hub lets multiple drivers use the same truck's ELD via app login."}],qP=()=>C(()=>import("./eld-for-1-truck-CEvp6lby.js"),[]),MP={"@context":"https://schema.org","@type":"FAQPage",mainEntity:jP.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},FP=R()({head:()=>({meta:[{title:"ELD for 1-Truck Fleets — $15/mo, No Contract | ELD Hub"},{name:"description",content:"Get an FMCSA-registered ELD for 1, 2, or 5 trucks at $15/truck/month. No fleet minimum, no contract, self-install in 5 minutes. See pricing."},{property:"og:title",content:"ELD for 1 Truck — $15/month, No Minimum"},{property:"og:description",content:"$15 per truck per month whether you have 1, 2, or 5 trucks. Built for owner-operators."},...de("default","ELD Hub — $15/mo unlocks the full fleet stack for small trucking fleets."),{property:"og:url",content:"https://goeldhub.com/eld-for-1-truck"},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-for-1-truck"}],scripts:[{type:"application/ld+json",children:JSON.stringify(MP)}]}),component:A(qP,"component")}),UP=[{q:"Why is a vetting platform asking me for an ELD when my van is exempt?",a:"Vetting platforms use ELD or telematics data to confirm that the truck exists, that it is where the carrier says it is, and that it matches the MC on the load. That check is a condition of booking freight through the broker, not a federal requirement. An FMCSA-exempt carrier can meet it by running a real ELD account voluntarily."},{q:"Is ELD HUB integrated with Highway and Trucker Tools?",a:"Yes. ELD HUB is fully integrated with both Highway and Trucker Tools. Once your PT-30 or IOSiX device is installed and reporting, your duty status and vehicle location can be connected so the broker can verify the load. This works on sprinter vans, cargo vans, box trucks and vehicles under 10,000 lbs, not just tractors."},{q:"What is the cheapest ELD for a sprinter van or box truck?",a:"ELD Hub is $15 per vehicle per month with no contract and a 14-day free trial. PT-30 and IOSiX cost $150 per device with free shipping in the mainland USA; PT-30 includes a cable and IOSiX is device only. Check your vehicle's fitment before ordering."},{q:"How fast can I be connected?",a:"Registration takes about two minutes. If you already own a PT-30 or IOSiX device, you can be recording the same day. If you need hardware, orders ship same or next business day and setup after that is about 10 minutes."},{q:"Do I need a separate account for each van?",a:"One ELD Hub account covers your whole operation; each vehicle needs its own device and is billed at $15 per month. There is no minimum fleet size and no per-load fee."}],BP=()=>C(()=>import("./eld-for-highway-L7hZPxpZ.js"),[]),zP={"@context":"https://schema.org","@type":"FAQPage",mainEntity:UP.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},VP=R()({head:()=>({meta:[{title:"Highway ELD Integration for Vans & Box Trucks — $15/mo | ELD HUB"},{name:"description",content:"ELD HUB is integrated with Highway. Sprinter vans, cargo vans, box trucks and hotshots connect an FMCSA-registered ELD for $15/truck/month, no contract. $150 device in stock, ships same or next business day."},{property:"og:title",content:"Highway ELD Integration — ELD HUB, $15/truck/month"},{property:"og:description",content:"Broker asking your van or box truck to connect an ELD? ELD HUB is integrated with Highway and Trucker Tools."},...de("compliance","ELD Hub — FMCSA-registered ELD from $15/truck/month."),{property:"og:url",content:"https://goeldhub.com/eld-for-highway"},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-for-highway"}],scripts:[{type:"application/ld+json",children:JSON.stringify(zP)}]}),component:A(BP,"component")}),GP=[{q:"Does ELD HUB work with Trucker Tools?",a:"Yes. ELD HUB is fully integrated with Trucker Tools. Once the device is installed and reporting, you can select ELD HUB as your provider in Trucker Tools and authorise the connection so duty status and vehicle location are available for load tracking."},{q:"Why is a broker asking me to connect Trucker Tools to my ELD?",a:"Brokers use Trucker Tools to track a load without calling for check-ins and to confirm that the truck matches the carrier on the booking. Connecting your ELD replaces manual updates and is often a condition of taking the load."},{q:"My van is exempt from the ELD mandate. Do I still need this?",a:"Federally, no — a vehicle under 10,001 lbs GVWR is outside the mandate. But a broker's tracking requirement is a private access rule, and connecting a real ELD account is the standard way to meet it. ELD HUB supports vans and light trucks the same as tractors."},{q:"What does it cost to connect?",a:"Nothing extra. The connection is part of your $15 per vehicle per month ELD HUB account. If needed, PT-30 or IOSiX hardware is $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"How long does setup take?",a:"About 10 minutes per vehicle once the device is in hand. If you already own a compatible PT-30 or IOSiX, you can be connected the same day."}],WP=()=>C(()=>import("./eld-for-trucker-tools-DCiwwgGD.js"),[]),XP="ELD for Trucker Tools — Connect for $15/Month | ELD HUB",Pw="ELD HUB is integrated with Trucker Tools. Connect your van, pickup or box truck so brokers can track the load — $15 per vehicle per month, no contract, $150 device.",YP={"@context":"https://schema.org","@type":"FAQPage",mainEntity:GP.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},KP=R()({head:()=>({meta:[{title:XP},{name:"description",content:Pw},{property:"og:title",content:"ELD Integrated With Trucker Tools — $15/month"},{property:"og:description",content:Pw},...de("compliance","ELD Hub — integrated with Trucker Tools, $15 per vehicle per month."),{property:"og:url",content:"https://goeldhub.com/eld-for-trucker-tools"},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-for-trucker-tools"}],scripts:[{type:"application/ld+json",children:JSON.stringify(YP)}]}),component:A(WP,"component")}),QP={state:"Georgia",abbr:"GA",slug:"eld-georgia",carriers:"85,000+",hubs:["Atlanta","Savannah","Augusta","Columbus","Macon","Port of Savannah"],corridors:["I-75 (FL → TN via Atlanta)","I-85 (AL → SC)","I-95 (Savannah → Jacksonville)","I-20 (Atlanta → East)"],intro:"Atlanta is the freight crossroads of the Southeast, and the Port of Savannah is the fastest-growing container port in the US. ELD Hub keeps Georgia-based small fleets — port drayage, regional OTR, and last-mile — FMCSA-compliant for $15 per truck.",faqs:[{q:"Do you support Port of Savannah drayage?",a:"Yes. Savannah is our second-fastest growing market. The PT-30 handles port dwell, gate wait times, and yard moves so drayage drivers stay legal even on long port days."},{q:"I run 6 trucks out of Atlanta. Is ELD Hub the right fit?",a:"Yes. Most Atlanta fleets we onboard are 1–20 trucks running regional freight along I-75, I-85, and I-20. $15/truck, no contracts, fleet dashboard included."},{q:"How does the Georgia DOT handle ELD inspections?",a:"Georgia MCCD officers use eRODS to pull logs on the spot. ELD Hub transfers in one click — no paper backup needed, though we auto-generate a PDF as backup anyway."},{q:"Can I file Georgia IFTA from ELD Hub?",a:"Yes. Quarterly IFTA reports auto-generate by state and are ready to file with the Georgia Department of Revenue."},{q:"How fast does hardware ship to Atlanta or Savannah?",a:"2 business days from our warehouse. Free shipping on every plan, including expedited if you need it same-week."}]},JP=()=>C(()=>import("./eld-georgia-DGdzyH3o.js"),[]),ZP=R()({component:A(JP,"component"),head:()=>jr(QP)}),ej=[{q:"What is ELD Hub?",a:"ELD Hub is an FMCSA-registered electronic logging device platform built for owner-operators and trucking fleets of 1 to 20 trucks. One $15 per truck per month 
41subscription covers Hours of Service logging, DVIRs, IFTA reporting, GPS tracking, and DOT roadside data transfer, with no contract."},{q:"How much does ELD Hub cost?",a:"Software is $15 per truck per month with no contract and no setup fee. PT-30 and IOSiX hardware are each $150 with free shipping in the mainland USA. PT-30 includes a diagnostic cable; IOSiX is device only. Compatible devices you already own can be re-registered for free."},{q:"Is ELD Hub FMCSA-registered?",a:"Yes. ELD Hub appears on the official FMCSA registered ELD list, so it satisfies the federal ELD mandate and passes DOT roadside inspection in all 50 states. Carriers can verify any provider, including ELD Hub, on the FMCSA list."},{q:"What hardware does ELD Hub use?",a:"ELD Hub sells PT-30 and IOSiX devices for $150 each with free shipping. PT-30 includes the diagnostic cable; IOSiX is device only. Compatible devices you already own may also be re-registered at no charge."},{q:"Can I switch to ELD Hub without buying new hardware?",a:"Usually yes. PT-30 and IOSiX devices are provider-configurable, so a unit issued by another ELD company can generally be re-registered to an ELD Hub account at no charge. Carriers call 302-404-1177 with the device serial number to confirm the specific model before cancelling their current service."},{q:"Who is ELD Hub best for?",a:"Owner-operators running a single truck and small carriers running 2 to 20 trucks, particularly those priced out by enterprise providers that charge $27 to $40 per truck per month on multi-year contracts. It is not designed for enterprise fleets of 100 or more trucks."},{q:"How long does setup take?",a:"Registration is self-serve online, and the PT-30 plugs into the truck's diagnostic port and pairs with the driver app over Bluetooth in under ten minutes per truck. Carriers reusing existing hardware are typically running the same day."},{q:"Does ELD Hub include IFTA reporting?",a:"Yes. IFTA fuel tax reporting is part of the $15 per truck per month base plan, along with DVIRs and Hours of Service logs. There is no higher tier required to unlock it."}],tj=()=>C(()=>import("./eld-hub-facts-DtZJthBQ.js"),__vite__mapDeps([13,4])),jw="ELD Hub Facts — Pricing, Hardware & Company Info",qw="Verified ELD Hub facts: $15/truck/month software, PT-30 and IOSiX hardware each $150 with free shipping, free device re-registration, and company details.",ap="https://goeldhub.com/eld-hub-facts",rj=R()({component:A(tj,"component"),head:()=>({meta:[{title:jw},{name:"description",content:qw},{property:"og:title",content:jw},{property:"og:description",content:qw},{property:"og:type",content:"website"},{property:"og:url",content:ap},...de("default","ELD Hub verified fact sheet: $15/truck/month FMCSA-registered ELD.")],links:[{rel:"canonical",href:ap}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",dateModified:$E,mainEntity:ej.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Product",name:"ELD Hub",description:"FMCSA-registered ELD platform for trucking fleets of 1-20 trucks. $15 per truck per month, no contract, IFTA and DVIRs included.",brand:{"@type":"Brand",name:"ELD Hub"},category:"Electronic Logging Device (ELD) software",audience:{"@type":"BusinessAudience",name:"Owner-operators and fleets of 1-20 trucks"},offers:[{"@type":"Offer",name:"ELD Hub software subscription",price:"15",priceCurrency:"USD",url:"https://goeldhub.com/eld-pricing",availability:"https://schema.org/InStock"},{"@type":"Offer",name:"PT-30 ELD device with cable",price:"150",priceCurrency:"USD",url:"https://goeldhub.com/hardware/pt30-eld",availability:"https://schema.org/InStock"},{"@type":"Offer",name:"IOSiX ELD device only (cable not included)",price:"150",priceCurrency:"USD",url:"https://goeldhub.com/hardware/iosix-eld",availability:"https://schema.org/InStock"}]})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"ELD Hub facts",item:ap}]})}]})}),nj=[{q:"Where do I log in to ELD Hub?",a:"The ELD Hub login page is at portal.goeldhub.com/login. Fleet managers sign in there; drivers sign in through the ELD Hub driver app on iOS or Android using credentials created by their fleet admin."},{q:"How do I register a new ELD Hub account?",a:"Registration is self-serve at portal.goeldhub.com/registration. It is four steps — personal details, company information, billing, confirm — and takes about two minutes. New accounts start with a 14-d
41ay free trial and there is no contract or setup fee."},{q:"How much does ELD Hub cost after the free trial?",a:"$15 per truck per month, month-to-month, with HOS, DVIRs, IFTA, GPS, and DOT roadside data transfer included. Hardware is separate: PT-30 and IOSiX cost $150 each with free shipping; PT-30 includes a cable and IOSiX is device only."},{q:"I forgot my ELD Hub password — what do I do?",a:"Use the “Forgot password” link on the sign-in page to get a reset email. Drivers cannot self-serve a reset; their fleet admin resets driver credentials from the Drivers screen in the portal."},{q:"Is ELD Hub FMCSA-registered?",a:"Yes. ELD Hub appears on the official FMCSA registered ELD list, so it satisfies the federal ELD mandate and passes DOT roadside inspection in all 50 states."},{q:"Can I switch to ELD Hub without buying new hardware?",a:"Usually yes. PT-30 and IOSiX devices issued by other providers are provider-configurable and can generally be re-registered to an ELD Hub account at no charge. Call 302-404-1177 with the serial number to confirm before cancelling your current service."}],aj=()=>C(()=>import("./eld-hub-login-D6vGczjk.js"),[]),Mw="ELD Hub Login & Registration — Sign In or Start a Free Trial",Fw="Sign in to your ELD Hub account or register a new fleet. FMCSA-registered ELD at $15/truck/month, no contract. Login help, password resets, and what registration asks for.",op="https://goeldhub.com/eld-hub-login",oj=R()({component:A(aj,"component"),head:()=>({meta:[{title:Mw},{name:"description",content:Fw},{property:"og:title",content:Mw},{property:"og:description",content:Fw},{property:"og:type",content:"website"},{property:"og:url",content:op},...de("default","ELD Hub login and registration — $15/truck/month FMCSA-registered ELD.")],links:[{rel:"canonical",href:op}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",dateModified:$E,mainEntity:nj.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Organization",name:"ELD Hub",url:"https://goeldhub.com",logo:"https://goeldhub.com/og-image.jpg",telephone:"+1-302-404-1177",email:"[email protected]",sameAs:["https://portal.goeldhub.com"],potentialAction:{"@type":"RegisterAction",name:"Start a 14-day free trial",target:"https://portal.goeldhub.com/registration"}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"ELD Hub login",item:op}]})}]})}),ij={state:"Illinois",abbr:"IL",slug:"eld-illinois",carriers:"75,000+",hubs:["Chicago","Joliet","Rockford","Peoria","Springfield","Bolingbrook"],corridors:["I-80 (nationwide east-west)","I-90 (Chicago → WI)","I-55 (Chicago → St. Louis)","I-57 (Chicago → South)"],intro:"Chicago is the #1 intermodal hub in North America — and Illinois small fleets move the containers in and out. ELD Hub keeps intermodal drivers, regional OTR carriers, and Chicagoland local haulers FMCSA-compliant for $15 per truck, month-to-month.",faqs:[{q:"Do you support Chicago intermodal / rail yard drayage?",a:"Yes. BNSF Logistics Park, UP Global IV, CSX 59th Street — the PT-30 handles yard dwell and short-haul intermodal runs so drivers stay legal on hectic yard days."},{q:"Is ELD Hub good for a 4-truck fleet out of Joliet or Bolingbrook?",a:"That's our exact target customer. $15/truck/month, no contracts, and most Joliet-area fleets onboard in a single afternoon."},{q:"Does the Illinois State Police accept ELD Hub during inspections?",a:"Yes. ELD Hub is on the FMCSA-registered ELD list. ISP officers can transfer logs directly via the eRODS web service."},{q:"Can I get IFTA reports for Illinois?",a:"Yes. Illinois DOR quarterly IFTA reports auto-generate from your ELD miles, broken down by state."},{q:"What about Illinois-specific weight and permit compliance?",a:"ELD Hub logs HOS and DVIRs; weight tickets and oversize permits are separate. But our DVIR module includes an axle-weight check field so drivers document a Chicago-area scale stop."}]},sj=()=>C(()=>import("./eld-illinois-CkkWFGD0.js"),[]),lj=R()({component:A(sj,"component"),head:()=>jr(ij)}),cj=[{q:"Where do I log in to my ELD Hub account?",a:"Drivers and fleet managers log in at portal.goeldhub.com or through the ELD Hub mobile app on iOS or Android. Use the same credentials on web and mobile."},{q:"I forgot my ELD Hub password. How do I reset it?",a:"Click 'Forgot password' on the login screen and enter your account email. You'll get a reset link within a minute. If it doesn't arrive, check spam or ask your fleet admin to trigger a reset from the admin console."},{q:"I'm a new driver. How do I get my ELD login credentials?",a:"Your fleet manager creates your driver profile in the ELD Hub admin portal. Once they add you, you'll receive an email invite with a link to set your password."},{q:"What's the difference between the driver login and the fleet manager login?",a:"Same URL, same portal. Drivers see their hours of service, DVIRs, and logs. Fleet managers see the full dashboard: driver list, vehicle assignments, IFTA reports, and compliance status."},{q:"My ELD isn't connecting after login. What do I do?",a:"Confirm Bluetooth is on and the PT-30 or IOSiX device is powered. Log out and back in to refresh the pairing. If it still won't 
41connect, call support at 302-404-1177."}],Uw=[{to:"/tteld-login",l:"TT ELD"},{to:"/ezlogz-login",l:"EZLogz"},{to:"/hos247-login",l:"HOS247"},{to:"/bigroad-login",l:"BigRoad"},{to:"/gpstab-login",l:"GPSTab"},{to:"/alfa-eld-login",l:"Alfa ELD"},{to:"/green-light-eld-login",l:"Green Light ELD"},{to:"/eld-trex-login",l:"ELD TREX"},{to:"/peak-eld-login",l:"Peak ELD"},{to:"/stellar-eld-login",l:"Stellar ELD"},{to:"/apollo-eld-login",l:"Apollo ELD"},{to:"/optima-eld-login",l:"Optima ELD"},{to:"/rock-eld-login",l:"Rock ELD"},{to:"/vista-eld-login",l:"Vista ELD"},{to:"/lucid-eld-login",l:"Lucid ELD"},{to:"/club-eld-login",l:"Club ELD"},{to:"/ironman-eld-login",l:"Ironman ELD"},{to:"/algo-eld-login",l:"Algo ELD"},{to:"/anytime-logs-login",l:"Anytime Logs"},{to:"/phoenix-eld-login",l:"Phoenix ELD"},{to:"/blue-star-eld-login",l:"Blue Star ELD"},{to:"/eld-mandate-plus-login",l:"ELD Mandate Plus"},{to:"/simple-eld-login",l:"Simple ELD"},{to:"/master-eld-login",l:"Master ELD"},{to:"/x-eld-login",l:"X ELD"},{to:"/one-step-gps-login",l:"One Step GPS"},{to:"/samsara-login",l:"Samsara"},{to:"/motive-login",l:"Motive"},{to:"/geotab-login",l:"Geotab"},{to:"/verizon-connect-login",l:"Verizon Connect"},{to:"/omnitracs-login",l:"Omnitracs"},{to:"/trimble-eld-login",l:"Trimble"},{to:"/rand-mcnally-eld-login",l:"Rand McNally"},{to:"/garmin-elog-login",l:"Garmin eLog"},{to:"/eroad-eld-login",l:"EROAD"},{to:"/azuga-eld-login",l:"Azuga"},{to:"/nextraq-login",l:"Nextraq"},{to:"/isaac-instruments-login",l:"ISAAC Instruments"},{to:"/forward-thinking-eld-login",l:"Forward Thinking Systems"},{to:"/erods-login",l:"eRODS"},{to:"/terminal-eld-login",l:"Terminal"},{to:"/max-eld-login",l:"Max ELD"},{to:"/sharp-eld-login",l:"Sharp ELD"},{to:"/id-eld-login",l:"ID ELD"},{to:"/swift-eld-login",l:"Swift ELD"},{to:"/captain-eld-login",l:"Captain ELD"},{to:"/fm-eld-login",l:"FM ELD"},{to:"/loop-eld-login",l:"Loop ELD"},{to:"/digital-eld-login",l:"Digital ELD"},{to:"/royal-eld-login",l:"Royal ELD"},{to:"/next-fleet-eld-login",l:"Next Fleet ELD"},{to:"/linxup-login",l:"Linxup"}],uj=()=>C(()=>import("./eld-login-CeOQPY9X.js"),__vite__mapDeps([14,11])),dj=R()({component:A(uj,"component"),head:()=>({meta:[{title:"ELD Login Directory — Direct Links for 40+ Providers"},{name:"description",content:"Direct sign-in links and password-reset fixes for Motive, Samsara, TT ELD, EZLogz, HOS247 and 40+ more ELD portals. Overpaying? Switch to $15 per truck, no contract, keep your PT-30 or IOSiX."},{property:"og:title",content:"ELD Login Directory — Direct Links for 40+ Providers"},{property:"og:description",content:"One-click sign-in links for 40+ ELD portals, password-reset steps and Bluetooth pairing fixes — plus the $15/truck switch option."},...de("switch","Switch to ELD Hub — keep your hardware, cut your bill."),{property:"og:type",content:"website"},{property:"og:url",content:"https://goeldhub.com/eld-login"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"ELD Login: Direct Sign-In Links for 40+ Providers"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-login"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebPage",name:"ELD Login: Find Your Provider's Portal",url:"https://goeldhub.com/eld-login",description:"Direct login links for 40+ ELD providers, plus password-reset and device-pairing troubleshooting.",hasPart:[{"@type":"WebPageElement",name:"Provider login directory",url:"https://goeldhub.com/eld-login#providers"},{"@type":"WebPageElement",name:"How to log in",url:"https://goeldhub.com/eld-login#how-to-log-in"},{"@type":"WebPageElement",name:"Login FAQ",url:"https://goeldhub.com/eld-login#faq"}]})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"ItemList",name:"ELD provider login pages",numberOfItems:Uw.length,itemListElement:Uw.map((e,t)=>({"@type":"ListItem",position:t+1,name:`${e.l} login`,url:`https://goeldhub.com${e.to}`}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"ELD Login",item:"https://goeldhub.com/eld-login"}]})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:cj.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})}]})}),hj=[{q:"What is the FMCSA ELD mandate?",a:"The Electronic Logging Device mandate (49 CFR §395.8) requires most interstate commercial drivers to use an FMCSA-registered ELD to record hours of service. It replaced paper logs and AOBRDs in phases starting December 18, 2017, with full enforcement since December 16, 2019."},{q:"Who has to comply with the ELD mandate?",a:"Drivers of commercial motor vehicles over 10,001 lbs GVWR, or transporting placarded hazmat, or carrying 9+ passengers for compensation (16+ not-for-hire), who cross state lines and are required to keep records of duty status more than 8 days in any 30-day period."},{q:"Who is exempt from the ELD mandate?",a:"Four main exemptions: (1) vehicles with engine model year pre-2000, (2) drive-away/tow-away operations, (3) drivers who keep RODS 8 or fewer days in 30, and (4) short-haul drivers using the 100/150 air-mile radius exemption who return to home base each day."},{q:"What's the penalty for not using an ELD?",a:"FMCSA violations start at $1,000+ per violation, escalating to $10,000+ per day for continuing violations. Non-compliance also affects your CSA score, insurance premiums, and shipper contracts. Repeat offenders can be placed out of service."},{q:"How much does an FMCSA-registered ELD cost?",a:"Prices range from $15 to $45 per truck per month. ELD Hub is the lowest FMCSA-registered flat rate at $15/truck/month with no contract. Big-brand ELDs (Motive, Samsara) run $25–$45/mo plus 36-month contracts and hardware financing."},{q:"What features must an FMCSA-compliant ELD have?",a:"Automatic recording of driving time, engine hours, vehicle miles, location, and driver ID; a way to transfer data to inspectors (email, web, USB, or Bluetooth per §395.24); tamper resistance; a display or printout for roadside inspections; and registration on the FMCSA ELD list."},{q:"Do I need an ELD if I only drive within one state?",a:"The federal ELD mandate applies to interstate commerce. Intrastate rules vary — most states adopted the federal rule, but a few (like California for intrastate-only) have their own timelines and exemptions. Check your state DOT."},{q:"Can I still use paper logs?",a:"Only if you qualify for an exemption OR you're in a temporary ELD malfunction situation (up to 8 days while the ELD is being repaired). Otherwise, paper logs = out-of-service violation."}],pj=()=>C(()=>import("./eld-mandate-guide-C9Mfb40n.js"),[]),fj={"@context":"https://schema.org","@graph":[{"@type":"Article",headline:"FMCSA ELD Mandate: Complete 2026 Guide for Small Fleets",description:"Who needs an ELD, who's exempt, penalties, features required, and how to pick the cheapest FMCSA-registered device.",author:{"@type":"Organization",name:"ELD Hub"},publisher:{"@type":"Organization",name:"ELD Hub"},datePublished:"2026-01-15",dateModified:"2026-07-15"},{"@type":"FAQPage",mainEntity:hj.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},mj=R()({head:()=>({meta:[{title:"FMCSA ELD Mandate Guide 2026 — Who Needs One | ELD Hub"},{name:"description",content:"FMCSA ELD mandate 2026: who must comply, exemptions, penalties, and how to pick a compliant device. Updated for small fleets & owner-operators."},{property:"og:title",content:"FMCSA ELD Mandate Guide 2026"},{property:"og:description",content:"Everything small fleets and owner-operators need to know about ELD compliance in 2026."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:url",content:"https://goeldhub.com/eld-mandate-guide"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-mandate-guide"}],scripts:[{type:"application/ld+json",children:JSON.stringify(fj)}]}),component:A(pj,"component")}),gj={brand:"ELD Mandate Plus",slug:"eld-mandate-plus-login",loginUrl:"https://eldmandate.biz/",compareTo:"/best-eld-small-fleets",intro:"Looking for your ELD Mandate Plus login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub runs on the same PT-30 hardware you already own for a flat $15/truck/month with 
41no contract.",tips:[{t:"ELD Mandate Plus portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in ELD Mandate Plus. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"The PT-30 is provider-agnostic and FMCSA-registered. If you leave ELD Mandate Plus, you re-register the same device to ELD Hub in about five minutes — no new hardware."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the ELD Mandate Plus login page?",a:"The ELD Mandate Plus fleet portal is at https://eldmandate.biz/. Drivers sign in through the ELD Mandate Plus mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than ELD Mandate Plus?",a:"ELD Hub is a flat $15 per truck per month with no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with ELD Mandate Plus once add-ons are counted."},{q:"Can I move my PT-30 from ELD Mandate Plus to ELD Hub?",a:"Yes. The PT-30 is a standard FMCSA-registered ELD device that works across providers. ELD Hub re-registers a PT-30 you already own at no cost — about five minutes per truck."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from ELD Mandate Plus before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}],keepHardware:"PT-30"},yj=()=>C(()=>import("./eld-mandate-plus-login--sPFnN0Y.js"),[]),bj=R()({head:()=>ge(gj),component:A(yj,"component")}),Zo=$$,vj=()=>C(()=>import("./eld-market-report-BOGDeeLa.js"),__vite__mapDeps([15,16,2,12])),wj={"@context":"https://schema.org","@graph":[{"@type":"Report",name:`State of Small-Fleet ELD Pricing — ${Zo}`,description:"Independent pricing and contract analysis of 15 major ELD providers for fleets under 20 trucks.",author:{"@type":"Organization",name:"ELD Hub",url:"https://goeldhub.com"},publisher:{"@type":"Organization",name:"ELD Hub"},datePublished:`${Zo}-11-15`,dateModified:Cf,url:"https://goeldhub.com/eld-market-report"},{"@type":"Dataset",name:`US ELD Provider Pricing Dataset ${Zo}`,description:"Monthly price, contract length, hardware cost, 3-year TCO, and hidden-fee disclosure for 15 US ELD providers.",creator:{"@type":"Organization",name:"ELD Hub"},license:"https://creativecommons.org/licenses/by/4.0/",keywords:["ELD pricing","trucking compliance","FMCSA ELD","small fleet"],url:"https://goeldhub.com/eld-market-report",distribution:[{"@type":"DataDownload",encodingFormat:"text/csv",contentUrl:"https://goeldhub.com/eld-pricing-dataset.csv"}]}]},xj=R()({head:()=>({meta:[{title:`State of Small-Fleet ELD Pricing ${Zo} | ELD Hub Market Report`},{name:"description",content:`Free ${Zo} ELD market report: 15-provider pricing comparison, 3-year TCO, contract terms, and hidden fees. Free to cite with attribution.`},{property:"og:title",content:`${Zo} ELD Market Report — 15 Providers Compared`},{property:"og:description",content:"Independent pricing and contract data across the US ELD market. Free dataset, CC-BY licensed."},...de("comparison","Compare ELDs — honest side-by-side for small fleets."),{property:"og:url",content:"https://goeldhub.com/eld-market-report"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-market-report"}],scripts:[{type:"application/ld+json",children:JSON.stringify(wj)}]}),component:A(vj,"component")}),Ej={state:"North Carolina",abbr:"NC",slug:"eld-north-carolina",carriers:"35,000+",hubs:["Charlotte","Raleigh-Durham","Greensboro","Winston-Salem","Fayetteville","Wilmington"],corridors:["I-95 (Rocky Mount → Fayetteville)","I-85 (Charlotte → Greensboro → Durham)","I-40 (Wilmington → Asheville)","I-77 (Charlotte → Statesville)"],intro:"North Carolina sits at the intersection of the I-95 East Coast freight corridor and the I-85 Southeast manufacturing belt. ELD Hub is built for the small NC fleets moving furniture out of High Point, textiles from Charlotte, and produce up I-95 — $15/truck/month, no contract, real US support.",faqs:[{q:"Does ELD Hub pass North Carolina DOT inspections?",a:"Yes. ELD Hub is on the FMCSA registered device list and clears NCSHP CMV inspections at every North Carolina weigh station and roadside check."},{q:"Do you support NC IRP and IFTA reporting?",a:"Yes. Quarterly IFTA reports auto-generate from state-by-state miles logged — including trips into Virginia, South Carolina, Georgia, and Tennessee. Export the report and file with NCDMV."},{q:"How fast can hardware arrive in Charlotte or Raleigh?",a:"PT-30 devices ship free from our warehouse and typically arr
41ive in Charlotte, Raleigh, or Greensboro in 2 business days."},{q:"I run one truck out of Fayetteville. Is ELD Hub for me?",a:"That's exactly who we built it for. Owner-operators and 1–20 truck fleets — $15/mo, month-to-month, no volume minimums."},{q:"Are there NC-specific hours-of-service exemptions I should know?",a:"Standard FMCSA HOS rules apply on interstate loads. NC has short-haul agricultural exemptions during harvest season — ELD Hub supports the agricultural 150-air-mile exemption when configured."}]},Sj=()=>C(()=>import("./eld-north-carolina-D_Bh70zI.js"),[]),kj=R()({component:A(Sj,"component"),head:()=>jr(Ej)}),Dj={state:"Ohio",abbr:"OH",slug:"eld-ohio",carriers:"45,000+",hubs:["Columbus","Cleveland","Cincinnati","Toledo","Dayton","Akron"],corridors:["I-70 (Indianapolis → Columbus → Wheeling)","I-71 (Cincinnati → Columbus → Cleveland)","I-75 (Toledo → Dayton → Cincinnati)","I-80/I-90 (Ohio Turnpike, Toledo → Cleveland)"],intro:"Ohio sits at the crossroads of Midwest freight — every major east-west and north-south interstate runs through it. ELD Hub is built for the small OH fleets running auto parts from Toledo, Amazon out of Columbus, and steel through Cleveland — $15/truck/month, no contract.",faqs:[{q:"Does ELD Hub pass Ohio State Highway Patrol inspections?",a:"Yes. ELD Hub is FMCSA-registered and clears OSHP Motor Carrier Enforcement at every Ohio weigh station and Motor Carrier Enforcement post."},{q:"Do you support Ohio IFTA and IRP filings?",a:"Yes. Quarterly IFTA reports auto-generate from state-by-state miles — including trips into Kentucky, Indiana, Michigan, Pennsylvania, and West Virginia. Export and file with Ohio BMV."},{q:"How fast can hardware arrive in Columbus or Cleveland?",a:"PT-30 devices ship free from our warehouse and typically arr
41ive in Columbus, Cleveland, Cincinnati, or Toledo in 2 business days."},{q:"Does ELD Hub work for Ohio Turnpike drivers?",a:"Yes. Ohio Turnpike miles are logged in state mileage reports for IFTA. Fuel purchases at Turnpike plazas integrate via WEX and other fuel-card partners."},{q:"I run 5 trucks out of Cincinnati doing auto parts. Is ELD Hub right for me?",a:"Yes — that's exactly the size fleet we built for. $15 per truck per month, no contract, month-to-month. Setup takes under an hour per truck."}]},Tj=()=>C(()=>import("./eld-ohio-vaG2h3-t.js"),[]),Lj=R()({component:A(Tj,"component"),head:()=>jr(Dj)}),Aj={state:"Pennsylvania",abbr:"PA",slug:"eld-pennsylvania",carriers:"40,000+",hubs:["Philadelphia","Pittsburgh","Harrisburg","Allentown","Scranton","Erie"],corridors:["I-76 (Pennsylvania Turnpike, Philadelphia → Pittsburgh)","I-80 (Stroudsburg → Ohio border)","I-81 (Scranton → Harrisburg → I-70)","I-95 (Philadelphia → Delaware)"],intro:"Pennsylvania's I-76 Turnpike and I-80 are two of the busiest freight corridors in the Northeast. ELD Hub is built for the small PA fleets running Philadelphia port drayage, Pittsburgh steel, and Lehigh Valley distribution — $15/truck/month, no contract, US-based support.",faqs:[{q:"Does ELD Hub pass Pennsylvania State Police CMV inspections?",a:"Yes. ELD Hub is FMCSA-registered and clears PSP Commercial Vehicle Enforcement at every Pennsylvania weigh station and roadside check."},{q:"Do you support PA IFTA and IRP filings?",a:"Yes. Quarterly IFTA reports auto-generate — including trips through the Turnpike, into Ohio, New Jersey, New York, and Maryland. Export and file with PennDOT."},{q:"How fast can hardware ship to Philadelphia or Pittsburgh?",a:"PT-30 devices ship free from our warehouse and typically arr
41ive in Philadelphia, Pittsburgh, or Harrisburg in 2 business days."},{q:"Does ELD Hub handle Pennsylvania Turnpike toll receipts for IFTA?",a:"Yes — Turnpike miles are captured in state-by-state mileage logs. Fuel receipts from Turnpike plazas import via our fuel-card integrations for full IFTA automation."},{q:"Do PA-based drivers running to NJ ports need anything special?",a:"Standard interstate HOS applies. Port drayage often qualifies for the short-haul 100-air-mile exemption — ELD Hub supports the exemption toggle at the driver level."}]},_j=()=>C(()=>import("./eld-pennsylvania-DoZl603a.js"),[]),Cj=R()({component:A(_j,"component"),head:()=>jr(Aj)}),Rj=[{q:"How much does ELD Hub cost?",a:"$15 per truck per month, flat. No contract, no hardware financing, no per-driver fees, no activation charges. That's the total price for a fully compliant, FMCSA-registered ELD with HOS, DVIR, IFTA, and DOT inspection mode."},{q:"Is there a setup or activation fee?",a:"No. Registration is free, self-install takes 5 minutes, and your first month is billed only after you activate your first truck."},{q:"Do I need to buy hardware?",a:"If you already own a compatible PT-30 or IOSiX ELD device, we re-register it free. Otherwise, PT-30 and IOSiX each cost $150 with free shipping (in stock, ships same or next business day). PT-30 includes a diagnostic cable; IOSiX is device only. Hardware is separate from the monthly software price."},{q:"Is there a contract?",a:"No. Month-to-month, cancel anytime. If ELD Hub doesn't earn your $15 every month, we don't deserve to keep it."},{q:"How does $15/truck compare to Motive or Samsara?",a:"Motive averages $35/truck/month + 36-month contract + $150+ hardware financing. Samsara averages $45/truck/month + 36-month contract + $200+ hardware. A 5-truck fleet saves $1,200–$1,800/year with ELD Hub."},{q:"Are there volume discounts?",a:"The price is already the lowest per-truck rate in the industry. No volume discount is needed because $15 is $15 whether it's your first truck or your 20th."},{q:"What is the total cost of ownership (TCO) for ELD Hub?",a:"Total ELD cost is $15 per truck per month plus a one-time $150 for either PT-30 or IOSiX hardware. For a 1-truck owner-operator that's $330 in Year 1 and $690 over three years. A 5-truck fleet pays $1,650 in Year 1 and $3,450 over three years; a 10-truck fleet pays $3,300 in Year 1 and $6,900 over three years. If you bring a compatible device you already own, hardware is $0 and every figure drops by $150/truck."}],Ij=()=>C(()=>import("./eld-pricing-2gCmeUHS.js"),__vite__mapDeps([17,6])),Oj={"@context":"https://schema.org","@graph":[{"@type":"Product",name:"ELD HUB — FMCSA-Registered ELD",description:"$15/truck/month all-inclusive: HOS, DVIR, IFTA, DOT inspection mode. No contract.",category:"Electronic Logging Device",brand:{"@type":"Brand",name:"ELD HUB"},image:["https://goeldhub.com/og-image.jpg","https://goeldhub.com/android-chrome-512x512.png"],offers:{"@type":"Offer",price:"15.00",priceCurrency:"USD",availability:"https://schema.org/InStock",url:"https://goeldhub.com/eld-pricing",validFrom:"2025-01-01",priceValidUntil:"2027-12-31",seller:{"@id":"https://goeldhub.com/#organization"},hasMerchantReturnPolicy:{"@type":"MerchantReturnPolicy",applicableCountry:"US",returnPolicyCategory:"https://schema.org/MerchantReturnFiniteReturnWindow",merchantReturnDays:30,returnMethod:"https://schema.org/ReturnByMail",returnFees:"https://schema.org/FreeReturn"},shippingDetails:{"@type":"OfferShippingDetails",shippingRate:{"@type":"MonetaryAmount",value:"0",currency:"USD"},shippingDestination:{"@type":"DefinedRegion",addressCountry:"US"},deliveryTime:{"@type":"ShippingDeliveryTime",handlingTime:{"@type":"QuantitativeValue",minValue:0,maxValue:1,unitCode:"DAY"},transitTime:{"@type":"QuantitativeValue",minValue:2,maxValue:5,unitCode:"DAY"}}}},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.9",reviewCount:"127",bestRating:"5",worstRating:"1"},review:[{"@type":"Review",reviewRating:{"@type":"Rating",ratingValue:"5",bestRating:"5"},author:{"@type":"Person",name:"Miguel R."},reviewBody:"Switched from Motive and cut my ELD bill by more than half. Install was quick and support actually answers the phone."},{"@type":"Review",reviewRating:{"@type":"Rating",ratingValue:"5",bestRating:"5"},author:{"@type":"Person",name:"Dana K."}
41,reviewBody:"Running 6 trucks on ELD HUB. Factoring and fuel card savings paid for the ELD ten times over."}]},{"@type":"FAQPage",mainEntity:Rj.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},$j=R()({head:()=>({meta:[{title:"ELD Cost: $15/Truck/Month — Cheapest ELD Pricing, No Contract"},{name:"description",content:"ELD cost is $15 per truck per month — the cheapest ELD software pricing, no contract. HOS, DVIR, IFTA and DOT inspection included. See the total cost of ownership for 1, 5 and 10 trucks."},{property:"og:title",content:"ELD Cost & Pricing — $15/Truck/Month, No Contract"},{property:"og:description",content:"The cheapest ELD software pricing at $15 per truck per month, no contract. Transparent total cost of ownership for fleets of 1, 5 and 10 trucks."},...de("default","ELD Hub — $15/mo unlocks the full fleet stack for small trucking fleets."),{property:"og:url",content:"https://goeldhub.com/eld-pricing"},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-pricing"}],scripts:[{type:"application/ld+json",children:JSON.stringify(Oj)}]}),component:A(Ij,"component")}),Nj={state:"Tennessee",abbr:"TN",slug:"eld-tennessee",carriers:"30,000+",hubs:["Nashville","Memphis","Knoxville","Chattanooga","Jackson","Clarksville"],corridors:["I-40 (Memphis → Nashville → Knoxville)","I-24 (Nashville → Chattanooga)","I-65 (Nashville → Alabama border)","I-75 (Knoxville → Chattanooga → Georgia)"],intro:"Tennessee is the FedEx hub state — Memphis alone routes millions of freight loads annually — plus Nashville distribution and Chattanooga's Volkswagen supply chain. ELD Hub is built for the small TN fleets running these lanes — $15/truck/month, no contract, real US support.",faqs:[{q:"Does ELD Hub pass Tennessee Highway Patrol CMV inspections?",a:"Yes. ELD Hub is FMCSA-registered and clears THP Commercial Vehicle Enforcement at every Tennessee weigh station — Knoxville, Chattanooga, Nashville, Jackson, and the I-40 Memphis ports."},{q:"Do you support Tennessee IFTA and IRP reporting?",a:"Yes. Quarterly IFTA reports auto-generate from state-by-state miles — including trips into Kentucky, Georgia, Alabama, Mississippi, Arkansas, and Missouri. Export and file with Tennessee DOR."},{q:"How fast can hardware ship to Nashville or Memphis?",a:"PT-30 devices ship free and typically arr
41ive in Nashville, Memphis, Knoxville, or Chattanooga in 2 business days."},{q:"Does ELD Hub work for FedEx contract carriers based in Memphis?",a:"Yes. Independent FedEx contract carriers use ELD Hub for DOT-compliant HOS/DVIR/IFTA. Most FedEx Ground and Custom Critical contractors qualify for our small-fleet pricing."},{q:"I run 8 trucks doing regional Southeast out of Nashville. Is ELD Hub right for me?",a:"Yes — that's exactly the size fleet we built for. $15/truck/mo, no contract, US support. Setup for 8 trucks typically takes one afternoon."}]},Hj=()=>C(()=>import("./eld-tennessee-CQ3XinIY.js"),[]),Pj=R()({component:A(Hj,"component"),head:()=>jr(Nj)}),jj={state:"Texas",abbr:"TX",slug:"eld-texas",carriers:"250,000+",hubs:["Dallas–Fort Worth","Houston","San Antonio","Austin","Laredo","El Paso"],corridors:["I-35 (Laredo → DFW)","I-10 (El Paso → Houston)","I-45 (Houston → Dallas)","I-20 (DFW → East TX)"],intro:"Texas has more registered motor carriers than any other state — and most are small fleets and owner-operators. ELD Hub was built for them: FMCSA-registered, $15 per truck, no contracts, real people on the phone in your time zone.",faqs:[{q:"Is ELD Hub FMCSA-registered for Texas DOT inspections?",a:"Yes. ELD Hub is on the official FMCSA ELD list and passes DPS and DOT inspections at every Texas weigh station — Amarillo, Laredo, Orange, and every point in between."},{q:"I run a 3-truck fleet out of Houston. Is ELD Hub right for me?",a:"That's exactly who we built it for. $15 per truck per month, no annual contract, and setup takes under an hour. Most Houston-based owner-operators are up and running the same day their PT-30 arrives."},{q:"Do you support Texas IFTA reporting?",a:"Yes. IFTA fuel-tax reports are auto-generated from your ELD miles by state — including the miles you run through Louisiana, Oklahoma, and New Mexico. Export the quarterly report and file with Texas Comptroller."},{q:"How fast can I get an ELD delivered to Dallas or Houston?",a:"PT-30 and IOSiX devices ship free from our warehouse and typically arr
41ive in Dallas–Fort Worth or Houston in 2 business days."},{q:"What if my driver crosses into Mexico from Laredo or El Paso?",a:"ELD Hub logs are FMCSA-compliant on the US side. Mexican cross-border drivers use the same PT-30 for their US hours; Mexican hours are logged separately per SCT rules."}]},qj=()=>C(()=>import("./eld-texas-Du1EQ0o7.js"),[]),Mj=R()({component:A(qj,"component"),head:()=>jr(jj)}),Gn=Ns("/eld-that-works-with-highway"),Fj=()=>C(()=>import("./eld-that-works-with-highway-IttSdExN.js"),[]),Bw=Ps(Gn),Uj=R()({head:()=>({meta:[{title:Gn.title},{name:"description",content:Gn.description},{property:"og:title",content:Gn.ogTitle},{property:"og:description",content:Gn.ogDescription},...de("hardware","ELD HUB — an ELD that works with Highway, device in stock."),{property:"og:url",content:`https://goeldhub.com${Gn.path}`},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:`https://goeldhub.com${Gn.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify(Hs(Gn))},...Bw?[{type:"application/ld+json",children:JSON.stringify(Bw)}]:[]]}),component:A(Fj,"component")}),Bj={brand:"ELD TREX",slug:"eld-trex-login",loginUrl:"https://eldtrex.com/",compareTo:"/best-eld-small-fleets",intro:"Can't get into ELD TREX? Start with the fixes below. ELD TREX is FMCSA-registered under identifier TREX02 and runs on IOSiX, Geometris, and Pacific Track (PT-30) hardware — so if your unit is an IOSiX or PT-30, you can move to ELD Hub without buying a new device.",tips:[{t:"Credentials rejected after a reinstall",b:"Reinstalling the driver app clears the cached fleet ID. Enter the company/fleet identifier your admin gave you along with the username, not the username alone."},{t:"Logs not uploading",b:"The app queues logs offline and syncs when it reconnects. Open the app on Wi-Fi and leave it in the foreground for two minutes before assuming data is lost."},{t:"Device light stays red",b:"A red status light on an IOSiX or PT-30 usually means no ECM data. Reseat the cable at the 9-pin or OBD-II port with the ignition off, then start the engine."},{t:"Locked out after failed attempts",b:"Repeated failures lock the account. Only your fleet admin can unlock it from the management portal — a password reset alone will not clear the lock."}],faqs:[{q:"What hardware does ELD TREX use?",a:"ELD TREX is registered with FMCSA under identifier TREX02 with model numbers listed as IOSiX, Geometris, and Pacific Track. Pacific Track is the manufacturer of the PT-30."},{q:"Can I switch from ELD TREX and keep my device?",a:"If your unit is an IOSiX or a Pacific Track PT-30, yes. ELD Hub supports both and re-registers the device you already own at no hardware cost."},{q:"What does ELD Hub charge?",a:"$15 per truck per month, no contract and no setup fee, with HOS, DVIRs, IFTA, and GPS included. A new PT-30 or IOSiX is $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"Will switching providers reset my log history?",a:"Your existing provider retains the historical records you are required to keep. Export or request your prior logs before you close the old account — the six-month retention obligation stays with you, not the vendor."},{q:"Is ELD Hub on the FMCSA list?",a:"Yes. See /fmcsa-registered-eld-list for how to confirm ELD Hub and any other provider directly on the FMCSA registry."}],keepHardware:"IOSiX"},zj=()=>C(()=>import("./eld-trex-login-D6UEYi7X.js"),[]),Vj=R()({component:A(zj,"component"),head:()=>ge(Bj)}),Pa=Os("/eld-under-10000-lbs"),Gj=()=>C(()=>import("./eld-under-10000-lbs-Bo__Yd1R.js"),[]),Wj=R()({head:()=>({meta:[{title:Pa.title},{name:"description",content:Pa.description},{property:"og:title",content:Pa.ogTitle},{property:"og:description",content:Pa.ogDescription},...de("compliance","ELD Hub — FMCSA-registered ELD for light-duty carriers."),{property:"og:url",content:`https://goeldhub.com${Pa.path}`},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:`https://goeldhub.com${Pa.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify($s(Pa))}]}),component:A(Gj,"component")}),Xj=[{q:"What is the fine for not having an ELD?",a:"$1,000 to $10,000+ per violation. If you're required to have one and you don't, it's an out-of-service violation — meaning you park the truck immediately and can't move until compliant."},{q:"How much are ELD-related CSA points?",a:"1 to 7 CSA points per violation. CSA scores affect insurance premiums, shipper contracts, and DOT audit frequency. Violations stay on your record for 24 months."},{q:"Can ELD violations put me out of service?",a:"Yes. No ELD, non-registered ELD, falsified logs, or unresolved malfunction beyond 8 days can all trigger out-of-service. You lose 8–48 hours plus the fine."},{q:"Do ELD violations affect insurance premiums?",a:"Yes. Insurers pull CSA scores annually. A poor HOS/ELD BASIC score can raise premiums 10–30% or trigger non-renewal."},{q:"Can drivers be personally fined?",a:"Yes. Falsifying logs, refusing an inspection, or driving without required RODS can result in personal fines up to $12,000 and driver disqualification."},{q:"How do I avoid ELD violations?",a:"Use an FMCSA-registered ELD, keep the user manual and malfunction sheet in the cab, run the inspection-mode test monthly, and review unassigned driving time weekly. ELD Hub does most of this automatically."}],Yj=()=>C(()=>import("./eld-violations-penalties-DY3e3bNQ.js"),[]),Kj={"@context":"https://schema.org","@type":"FAQPage",mainEntity:Xj.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},Qj=R()({head:()=>({meta:[{title:"ELD Violations & Fines 2026 — CSA & OOS | ELD Hub"},{name:"description",content:"Every FMCSA §395 ELD violation with 2026 fines, CSA points, and out-of-service triggers. See the full table and how to avoid each one."},{property:"og:title",content:"ELD Violations and Penalties 2026"},{property:"og:description",content:"Every ELD violation, fine, CSA point value, and OOS trigger — updated for 2026."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:url",content:"https://goeldhub.com/eld-violations-penalties"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/eld-violations-penalties"}],scripts:[{type:"application/ld+json",children:JSON.stringify(Kj)}]}),component:A(Yj,"component")}),Jj={brand:"EROAD",slug:"eroad-eld-login",loginUrl:"https://depot.eroad.com/",compareTo:"/best-eld-small-fleets",intro:"Trying to log in to your EROAD ELD account? Access the EROAD Depot below. If you're a small fleet frustrated with EROAD's annual contract and hardware lock-in, ELD Hub runs on standard PT-30 hardware for $15/truck, month-to-month.",tips:[{t:"Can't sign in to Depot?",b:"Reset your password from the EROAD Depot login page. If your admin left the company, EROAD support must re-issue access — expect 24–48 hours."},{t:"Ehubo not connecting?",b:"Ehubo devices are proprietary — they don't work with any other ELD provider. If you're leaving EROAD, you'll need new (or already-owned) PT-30 or IOSiX hardware."},{t:"Contract renewal surprise?",b:"EROAD contracts auto-renew annually. Check your renewal date now — most fleets can only cancel in a 30-day window before renewal."},{t:"IFTA not filing?",b:"EROAD's IFTA add-on is a separate SKU. ELD Hub includes IFTA reporting in the flat $15/truck price with no add-ons."}],faqs:[{q:"What is EROAD's login URL?",a:"The EROAD Depot login is at depot.eroad.com. Your fleet admin sets up user accounts; drivers use the EROAD ELD driver app with a separate driver PIN."},{q:"Can I switch from EROAD to ELD Hub mid-contract?",a:"Yes, but EROAD may bill through your renewal date. ELD Hub can run in parallel during the transition — you can start compliance immediately and phase out EROAD Ehubo devices as your contract ends."},{q:"Does ELD Hub work with EROAD Ehubo hardware?",a:"No — Ehubo is proprietary to EROAD. ELD Hub works with any FMCSA-registered PT-30 or IOSiX device, which you can buy once for a fraction of an Ehubo lease."},{q:"Why is EROAD so expensive vs ELD Hub?",a:"EROAD averages $35–$55/truck/month plus device leases and IFTA add-ons on a 12–36 month contract. ELD Hub is a flat $15/truck/month, no contract, IFTA included."}]},Zj=()=>C(()=>import("./eroad-eld-login-DvBUK2T6.js"),[]),e5=R()({head:()=>ge(Jj),component:A(Zj,"component")}),t5={brand:"eRODS",slug:"erods-login",loginUrl:"https://erodsweb.fmcsa.dot.gov/",compareTo:"/best-eld-small-fleets",intro:"eRODS is the FMCSA's Electronic Records of Duty Status portal — it's where DOT enforcement uploads and reviews the ELD logs your driver transferred at inspection. Below is the official FMCSA eRODS link. If you're here because your ELD provider failed to transfer logs, that's an ELD problem, not an eRODS problem — ELD Hub handles all four FMCSA transfer methods.",tips:[{t:"eRODS is not for drivers",b:"eRODS is a FMCSA / DOT enforcement tool. Drivers and fleet admins do not log in to eRODS — you interact with it indirectly by transferring logs to an inspector."},{t:"'Cannot open ELD file' at inspection?",b:"That's your ELD's export failing FMCSA validation. Most common cause: an unassigned driving segment that wasn't annotated. Fix it in your ELD before transferring."},{t:"Which transfer method should drivers use?",b:"FMCSA requires all four: web services, email, USB, and Bluetooth. If your ELD only offers 1–2, you're not fully compliant. ELD Hub supports all four."},{t:"Want an ELD that never fails eRODS validation?",b:"ELD Hub is FMCSA-registered, validated against the eRODS test harness, and $15/truck/month flat. Switch your PT-30 in 5 minutes."}],faqs:[{q:"What is eRODS?",a:"eRODS (Electronic Records of Duty Status) is the FMCSA system that receives and validates ELD log transfers during DOT inspections. It's operated by the U.S. Department of Transportation, not by any ELD vendor."},{q:"What is the eRODS login URL?",a:"The eRODS portal is at erodsweb.fmcsa.dot.gov. It's for FMCSA / DOT enforcement officers, not for carriers or drivers. Carriers interact with eRODS only via ELD data transfers at roadside inspections."},{q:"Why did my ELD fail eRODS validation?",a:"Common causes: unassigned drive time, missing driver certifications, malformed data segments, or an ELD that isn't fully FMCSA-registered. ELD Hub validates every file against eRODS specs before transfer."},{q:"How can I make sure my ELD passes eRODS at inspection?",a:"Use an FMCSA-registered ELD (verify on the FMCSA registry), certify all logs daily, resolve unassigned segments, and test the transfer method you'll use at inspection. ELD Hub does the last two automatically."}]},r5=()=>C(()=>import("./erods-login-Bd208HgT.js"),[]),n5=R()({head:()=>ge(t5),component:A(r5,"component")}),a5={brand:"EZ Logz",slug:"ezlogz-login",loginUrl:"https://ezlogz.com/",compareTo:"/vs/ezlogz-vs-eld-
41hub",intro:"Trying to log in to EZ Logz but hitting a wall? Here are common fixes. If you're switching platforms anyway, ELD Hub offers the same base price with US phone support, freight tools, and IFTA bundled in.",tips:[{t:"Wrong app version",b:"EZ Logz has multiple app versions in the store — make sure you're on the current EZLogz ELD app, not an old branded reseller version."},{t:"Bluetooth won't pair",b:"Toggle Bluetooth off and on, force-close the app, and reopen it. The pairing screen should retry automatically."},{t:"Forgot password",b:"Reset from the login screen. If the reset email doesn't arrive in 10 minutes, check spam or ask your fleet admin to trigger it."},{t:"Support isn't answering",b:"EZ Logz support is primarily email/ticket-based. For faster help during a DOT stop, a driver-facing phone line is worth having."}],faqs:[{q:"What's the EZ Logz login URL?",a:"The EZ Logz driver and fleet portal is at ezlogz.com. Drivers typically log in through the EZLogz ELD mobile app rather than the web."},{q:"Why is EZ Logz hard to reach for support?",a:"EZ Logz uses a primarily ticket-based support system. Response times vary — small owner-operator accounts often wait longer than larger fleets. If direct phone support matters, that's a differentiator between platforms."},{q:"Can I use EZ Logz hardware with ELD Hub?",a:"Usually yes if it is a compatible PT-30 or IOSiX — ELD Hub re-registers those devices at no cost. If you need new hardware, both PT-30 and IOSiX cost $150 each with free shipping. PT-30 includes the diagnostic cable; IOSiX is device only."},{q:"Is ELD Hub really cheaper than EZ Logz?",a:"The base prices are similar ($15–20/truck). ELD Hub includes IFTA and freight tools that EZ Logz charges extra for, so all-in cost usually ends up 30–40% lower."},{q:"How long does the switch take?",a:"Under 30 minutes per truck once hardware arrives. Order → 2-day ship → plug into OBD-II → pair over Bluetooth → log in."}]},o5=()=>C(()=>import("./ezlogz-login-w8fAhysl.js"),[]),i5=R()({component:A(o5,"component"),head:()=>ge(a5)}),s5={slug:"fleet-tracking",eyebrow:"GPS tracking",h1:"Fleet Tracking for Small Trucking Fleets — Included, Not an Add-On",intro:"Fleet tracking tells you where every truck is, where it has been, and how long it sat. Enterprise providers sell it as a separate tier. If you run 1 to 20 trucks, you should not be paying twice for GPS data your ELD is already collecting.",metaTitle:"Fleet Tracking Included at $15/Truck/Month",metaDescription:"GPS fleet tracking for small trucking fleets: live location, trip history, idle time, and geofence-free simplicity — included in the $15/truck ELD Hub plan, not a paid tier.",ogCategory:"default",ogAlt:"Fleet GPS tracking included with ELD Hub at $15 per truck per month.",quickAnswer:{question:"How much does fleet tracking cost for a small fleet?",answer:"Standalone GPS fleet tracking typically runs $15 to $30 per vehicle per month, and most enterprise ELD providers sell it as an upgrade tier. Because an ELD already records GPS position, ELD Hub includes live tracking and trip history in its $15 per truck per month plan at no extra cost."},sections:[{h2:"You are already paying for the GPS",body:"An ELD is required to record location at every duty-status change and roughly every 60 minutes of driving. That data is the same data a fleet-tracking product sells you. Charging for it twice is a packaging decision, not a technical one — which is why a provider that ships tracking in the base plan is not giving anything away."},{h2:"What small fleets actually use tracking for",body:"Enterprise dashboards are built around asset utilization across hundreds of units. A five-truck carrier has a much shorter list, and almost all of it is about answering a customer or protecting a payment.",bullets:[`Answering "where's my load?" without calling the driver mid-drive`,"Proving detention time at a shipper or receiver when you invoice for it","Confirming delivery time when a broker disputes a claim","Spotting idle time that is quietly burning fuel","Reconstructing a route after an incident or a customer complaint","Producing state-by-state mileage that feeds the quarterly IFTA return"]},{h2:"What's included with ELD Hub",body:"Tracking runs off the same PT-30 or IOSiX device that handles compliance, so there is no second box to install and nothing extra to activate.",bullets:["Live truck location on a map, refreshed while the truck is moving","Trip history and route replay by unit and by date","Stop and idle duration per location","Mileage by state, feeding IFTA reporting","Driver-level view of hours remaining alongside position","No per-user seat fee and no API access charge"]},{h2:"Tracking vs telematics vs dash cams",body:"These three get bundled in marketing and priced separately in contracts. Tracking is location and trip history. Telematics adds engine diagnostics and fault co
41des. Dash cams add video and AI event detection, and they are where the largest upcharges live — often $20 to $40 per truck per month on top of the ELD. A small fleet should decide on cameras deliberately rather than inheriting them inside a bundle."},{h2:"What to check before you buy a tracking upgrade",body:"If your current provider is quoting a tracking tier, three questions usually end the conversation.",bullets:["Is the GPS data already being collected by the ELD you pay for? (It is.)","Does the upgrade extend your contract term?","Is there a per-user or per-dashboard-seat charge on top of the per-truck price?","Can you export your own location history if you leave?"]}],table:{caption:"Typical small-fleet cost, tracking included vs sold separately",headers:["Provider approach","ELD software","Tracking","Monthly per truck"],rows:[["ELD Hub — included","$15","Included","$15"],["Mid-tier provider with add-on","$20–25","$10–15 add-on","$30–40"],["Enterprise tier upgrade","$35–45","Bundled in higher tier","$35–45"],["Standalone GPS + separate ELD","$15–25","$15–30","$30–55"]]},faqs:[{q:"Does ELD Hub include GPS fleet tracking?",a:"Yes. Live location, trip history, stop and idle duration, and state-by-state mileage are all part of the $15 per truck per month plan. There is no tracking tier and no per-seat dashboard fee."},{q:"Do I need separate hardware for fleet tracking?",a:"No. The same PT-30 or IOSiX device that handles ELD compliance provides the location data. If you already own a compatible device from another provider, ELD Hub re-registers it at no cost."},{q:"How accurate is ELD-based tracking?",a:"Position accuracy is standard GPS, generally within a few dozen feet outdoors. Update frequency while driving is far higher than the FMCSA minimum, which is what makes the trip replay useful for detention and delivery disputes."},{q:"Can drivers be tracked when off duty?",a:"Personal conveyance and off-duty movement are recorded at reduced precision under the FMCSA rule, which intentionally limits off-duty location detail. Carriers should also have a written policy telling drivers what is recorded and why."},{q:"Does tracking help with IFTA?",a:"Substantially. The mileage-by-jurisdiction totals that a quarterly IFTA return needs come straight from the same GPS record, which removes most of the manual trip-sheet work and the arithmetic errors that trigger audits."},{q:"Is fleet tracking worth it for one truck?",a:"As a paid add-on, usually not. As an included feature, yes — a single owner-operator still uses trip replay to prove detention and to settle delivery-time disputes with brokers."}],related:[{to:"/eld-pricing",label:"ELD pricing",note:"Exactly what the $15/truck/month plan covers."},{to:"/hardware",label:"ELD hardware",note:"The PT-30 and IOSiX devices that provide the GPS feed."},{to:"/ifta-reporting-software",label:"IFTA reporting",note:"Turning tracked mileage into a quarterly return."},{to:"/what-is-an-eld",label:"What is an ELD",note:"Why the device is already recording location."},{to:"/vs/samsara-alternative",label:"Samsara alternative",note:"What enterprise tracking tiers actually cost."},{to:"/best-eld-small-fleets",label:"Best ELD for small fleets",note:"Choosing when you run 1 to 20 trucks."}],ctaHeadline:"Tracking, compliance, and IFTA on one $15 bill",ctaSubhead:"One device, one subscription, no tracking upgrade. FMCSA-registered, month-to-month, and it works with the PT-30 or IOSiX you may already own.",breadcrumbName:"Fleet tracking"},l5=()=>C(()=>import("./fleet-tracking-CxzscjCD.js"),[]),c5=R()({component:A(l5,"component"),head:()=>js(s5)}),u5={brand:"FM ELD",slug:"fm-eld-login",loginUrl:"https://app.fmeld.com/login",compareTo:"/best-eld-small-fleets",intro:"FM ELD sign-in link and the fixes for locked accounts, password resets and device pairing. Comparing options? ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Portal address",b:"Fleet admins sign in at app.fmeld.com/login. Save that link rather than following search results, which often point at old marketing pages."},{t:"Password reset",b:"Use the reset link on the sign-in page; if nothing arrives, your fleet admin can reset the account from the portal."},{t:"Device offline",b:"Reseat the unit at the diagnostic port, key the ignition on, and allow two minutes for it to report before opening a ticket."},{t:"Missing logs",b:"Export the last six months of RODS before changing devices or closing an account — FMCSA requires you to retain them."}],faqs:[{q:"What is the FM ELD login URL?",a:"Fleet admins sign in at app.fmeld.com/login. Drivers use the FM ELD mobile app with credentials issued by their fleet manager."},{q:"Is ELD Hub cheaper than FM ELD?",a:"ELD Hub is $15 per truck per month with 
41no contract, including HOS, DVIR, IFTA and GPS, and a 14-day free trial so you can compare on your own trucks."},{q:"Do I keep my hardware?",a:"If you own a compatible PT-30 or IOSiX, ELD Hub can re-register it free after serial confirmation. Otherwise either new device is $150 with free shipping; PT-30 includes a cable, IOSiX is device only."}]},d5=()=>C(()=>import("./fm-eld-login-C14RPDt1.js"),[]),h5=R()({component:A(d5,"component"),head:()=>ge(u5)}),p5=[{q:"What is the FMCSA registered ELD list?",a:"It's the official list of Electronic Logging Devices that ELD providers have self-certified to the Federal Motor Carrier Safety Administration. To be legal for interstate commercial use, the ELD in your truck must appear on this list — not just be marketed as 'FMCSA-compliant.'"},{q:"What happens if my ELD gets revoked from the FMCSA list?",a:"You have 8 days from FMCSA's revocation notice to switch to a registered ELD. Drivers can revert to paper logs in the interim. If you don't switch, roadside inspections will flag you as out-of-service and every log recorded on a revoked ELD is invali
41d for HOS purposes."},{q:"How do I check if my ELD is still on the FMCSA list?",a:"Go to eld.fmcsa.dot.gov/List and search by ELD name or provider. The list is updated whenever a device is added, revoked, or changes status. Check it quarterly if you're not sure — some providers get revoked without much notice."},{q:"What's the difference between 'FMCSA-registered' and 'FMCSA-certified'?",a:"There's no such thing as FMCSA-certified. FMCSA doesn't test or certify ELDs — providers self-certify against the technical spec and submit their device to be registered. If a company markets its ELD as 'FMCSA-certified,' that's a red flag: they're using language FMCSA doesn't use."},{q:"Is ELD Hub on the FMCSA registered ELD list?",a:"Yes. ELD Hub is registered with FMCSA. The PT-30 and IOSiX hardware we support are both on the official list. We monitor the registry for revocations and push compliance updates automatically so your device stays legal."},{q:"What if my ELD provider goes out of business?",a:"A dead ELD provider effectively means a revoked ELD — no one is maintaining the firmware, no one is pushing compliance updates, and the FMCSA registration will eventually be withdrawn. If you're seeing signs (missed updates, no support response), start shopping for a replacement now."}],f5=()=>C(()=>import("./fmcsa-registered-eld-list-Dyj4AcTp.js"),__vite__mapDeps([18,6])),m5=R()({component:A(f5,"component"),head:()=>({meta:[{title:"FMCSA Registered ELD List — 17 Providers by Price"},{name:"description",content:"Searchable table of 17 FMCSA-registered ELD providers: price per truck, contract length, hardware. Cheapest with no contract: $15/truck. Plus how to verify any device on the official registry."},{property:"og:title",content:"FMCSA Registered ELD List — 17 Providers by Price"},{property:"og:description",content:"Compare 17 registered ELD providers on price, contract and hardware — and verify any device against the official FMCSA registry before a DOT stop."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:type",content:"article"},{property:"og:url",content:"https://goeldhub.com/fmcsa-registered-eld-list"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"FMCSA Registered ELD List 2026 — Providers & Prices"}],links:[{rel:"canonical",href:"https://goeldhub.com/fmcsa-registered-eld-list"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Article",headline:"FMCSA Registered ELD List — What It Means and Why It Matters",description:"How the FMCSA registered ELD list works, what happens when an ELD is revoked, and how to check if your device is still legal for interstate commercial use.",author:{"@type":"Organization",name:"ELD Hub"},publisher:{"@type":"Organization",name:"ELD Hub"},mainEntityOfPage:"https://goeldhub.com/fmcsa-registered-eld-list"})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:p5.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"FMCSA Registered ELD List",item:"https://goeldhub.com/fmcsa-registered-eld-list"}]})}]})}),g5={brand:"Forward Thinking Systems",slug:"forward-thinking-eld-login",loginUrl:"https://forwardthinkingsystems.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Forward Thinking Systems login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub is a flat $15/truck/month with no contract, and PT-30 or IOSiX hardware is $150 each with free shipping (PT-30 with cable; IOSiX device only).",tips:[{t:"Forward Thinking Systems portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in Forward Thinking Systems. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"Forward Thinking Systems locks its software to its own gateway, so a switch means new hardware. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the Forward Thinking Systems login page?",a:"The Forward Thinking Systems fleet portal is at https://forwardthinkingsystems.com/. Drivers sign in through the Forward Thinking Systems mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than Forward Thinking Systems?",a:"ELD Hub is a flat $15 per truck per month with 
41no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with Forward Thinking Systems once add-ons are counted."},{q:"Do I need new hardware to leave Forward Thinking Systems?",a:"Usually yes, because Forward Thinking Systems hardware is tied to its own platform. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. There is no software contract."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from Forward Thinking Systems before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}]},y5=()=>C(()=>import("./forward-thinking-eld-login-CvUtgRL7.js"),[]),b5=R()({head:()=>ge(g5),component:A(y5,"component")}),v5=()=>C(()=>import("./free-eld-compliance-calculator-ei8FHekX.js"),__vite__mapDeps([19,20,3])),w5=R()({head:()=>({meta:[{title:"Free ELD Compliance Risk Calculator | Estimate HOS Violation Cost"},{name:"description",content:"Free tool: estimate your fleet's ELD violation risk, CSA score impact, and annual fine exposure in 60 seconds. No signup required."},{property:"og:title",content:"Free ELD Compliance Risk Calculator"},{property:"og:description",content:"Estimate your fleet's HOS violation risk and CSA impact free. Made for small trucking fleets."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:url",content:"https://goeldhub.com/free-eld-compliance-calculator"},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:"https://goeldhub.com/free-eld-compliance-calculator"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebApplication",name:"ELD Compliance Risk Calculator",applicationCategory:"BusinessApplication",operatingSystem:"Any",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},description:"Estimate annual FMCSA fine exposure and CSA score impact from ELD/HOS violations for small trucking fleets."})}]}),component:A(v5,"component")}),x5=[{name:"AtoB (ELD Hub partner)",best:"Owner-operators and 1–20 truck fleets",network:"Accepted at most truck stops and gas stations nationwide",fees:"No monthly card fee",notes:"Per-driver and per-truck spend controls, fraud limits, discounts at in-network stops."},{name:"Comdata",best:"Established mid-size and large fleets",network:"Very wide truck stop coverage",fees:"Account and transaction fees are common",notes:"Deep back-office features; usually needs credit review and volume to get good pricing."},{name:"TCS Fuel Card",best:"Long-haul carriers running major chains",network:"Large discount network at major truck stops",fees:"Per-transaction fee typical",notes:"Popular for in-network diesel discounts; savings depend heavily on your lanes."},{name:"WEX / EFS",best:"Mixed fleets with vans and trucks",network:"Very broad retail acceptance",fees:"Varies by program",notes:"Strong reporting and controls; better retail coverage than truck-stop-only cards."},{name:"RTS / factoring-linked cards",best:"Carriers already factoring invoices",network:"Major truck stop chains",fees:"Often bundled with a factoring agreement",notes:"Convenient if you factor, but ties fuel savings to your factoring contract."}],E5=[{q:"What is the best fuel card for truckers?",a:"For a 1–20 truck fleet, the best card is the one with no monthly fee, real discounts at the stops on your lanes, and per-driver spend controls. ELD Hub carriers use the AtoB card because it has no monthly card fee and works at most truck stops and gas stations, which matters when you run mixed regional lanes."},{q:"Do fuel cards require good credit?",a:"It depends. Prepaid and deposit-backed cards can be opened with limited credit history, which is typical for a new MC authority. Traditional credit-line fuel cards from the large providers usually run a credit check and may ask for volume commitments."},{q:"How much do fuel cards actually save per gallon?",a:"Discounts are network-specific and change weekly. Real-world savings for small fleets generally land between $0.30 and $0.90 per gallon at in-network stops, and $0.00 outside the network — which is why network coverage on your lanes matters more than the headline discount."},{q:"Can I use a fuel card with a new trucking authority?",a:"Yes. Most no-monthly-fee cards can be opened as soon as you have an active MC number and a business bank account. Start with a low limit, add drivers as you hire, and tighten per-transaction limits to prevent card abuse."}
41,{q:"Do fuel cards help with IFTA?",a:"They help a lot. Card transaction records give you gallons purchased by state, which reconciles against the jurisdiction miles your ELD records — the two halves of an IFTA return. ELD Hub tracks the mileage side for $15 per truck per month."}],S5=()=>C(()=>import("./fuel-cards-CjhouxCn.js"),[]),ip="https://goeldhub.com/fuel-cards",k5=R()({head:()=>({meta:[{title:"Best Fuel Cards for Truckers (2026) — Compared for Small Fleets"},{name:"description",content:"Compare fuel cards for truckers and small fleets: AtoB, Comdata, TCS, WEX and factoring-linked cards. Fees, networks, credit rules and how much you really save per gallon."},{property:"og:title",content:"Best Fuel Cards for Truckers — Small Fleet Comparison"},{property:"og:description",content:"Fees, discount networks and credit requirements compared for owner-operators and 1–20 truck fleets."},{property:"og:type",content:"article"},{property:"og:url",content:ip},...de("comparison","Fuel card comparison for small trucking fleets."),{name:"twitter:title",content:"Best Fuel Cards for Truckers (2026)"},{name:"twitter:description",content:"AtoB vs Comdata vs TCS vs WEX — fees, networks and real per-gallon savings."}],links:[{rel:"canonical",href:ip}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:E5.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"ItemList",name:"Fuel cards for truckers",itemListElement:x5.map((e,t)=>({"@type":"ListItem",position:t+1,name:e.name}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Fuel cards",item:ip}]})}]}),component:A(S5,"component")}),D5=[{q:"How much can a small fleet realistically save on fuel?",a:"Most 1–20 truck fleets save $0.30–$0.90 per gallon by combining a discount fuel card with route and idle discipline. On 1,800 gallons per truck per month that is roughly $650–$1,900 per truck per year."},{q:"Do fuel cards cost anything?",a:"The AtoB card ELD Hub carriers use has no monthly card fee. You save on the per-gallon price at in-network stops and get spend controls per driver and per truck."},{q:"Does an ELD help reduce fuel cost?",a:"Yes, indirectly. Engine-connected ELD data shows idle time, hard braking, speeding and out-of-route miles — the four habits that burn the most diesel. ELD Hub is $15 per truck per month with no contract, so the fuel savings typically pay for compliance several times over."},{q:"What MPG should a small fleet target?",a:"A well-maintained sleeper tractor running 62–65 mph with low idle averages 6.5–7.5 MPG. Every 0.5 MPG gained on 9,000 miles per month is about 100 gallons, or roughly $390 per truck per month at $3.90 diesel."},{q:"Is IFTA affected by fuel purchases?",a:"Yes. Where you buy fuel changes your IFTA balance, not just your pump price. Log every gallon by jurisdiction so cheap out-of-state fuel does not create a surprise IFTA bill."}],T5=()=>C(()=>import("./fuel-savings-HLjO0bAT.js"),[]),sp="https://goeldhub.com/fuel-savings",L5=R()({head:()=>({meta:[{title:"Truck Fuel Savings Calculator & Guide (2026) — ELD Hub"},{name:"description",content:"See how much diesel your fleet can save. Free fuel savings calculator plus proven fuel card, idle, MPG and IFTA tactics for 1–20 truck fleets."},{property:"og:title",content:"Truck Fuel Savings Calculator for Small Fleets"},{property:"og:description",content:"Calculate your annual diesel savings from fuel card discounts, idle reduction and MPG gains. Free, no signup."},{property:"og:type",content:"article"},{property:"og:url",content:sp},...de("compliance","ELD Hub fuel savings tools for small trucking fleets."),{name:"twitter:title",content:"Truck Fuel Savings Calculator — Free"},{name:"twitter:description",content:"Diesel savings math for 1–20 truck fleets: fuel cards, idle time, MPG, IFTA."}],links:[{rel:"canonical",href:sp}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:D5.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebApplication",name:"Truck Fuel Savings Calculator",applicationCategory:"BusinessApplication",operatingSystem:"Any",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},description:"Estimate annual diesel savings from fuel card discounts, idle reduction and MPG improvement for small trucking fleets."})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Fuel savings",item:sp}]})}]}),component:A(T5,"component")}),A5={brand:"Garmin eLog",slug:"garmin-elog-login",loginUrl:"https://www.garmin.com/en-US/p/561480",compareTo:"/best-eld-small-fleets",intro:"Garmin eLog login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with no contract. Garmin eLog is a single-driver device with no fleet dashboard.",tips:[{t:"No web portal exists",b:"Garmin eLog has no cloud dashboard — logs live on the device and paired app, which is why fleets outgrow it fast."},{t:"Adapter not detected",b:"Re-seat the eLog adapter in the diagnostic port and confirm Bluetooth pairing in the Garmin Drive app."},{t:"Cannot share logs with a fleet manager",b:"Without a portal, transfers happen per device. This is the usual reason a two-truck operation moves off Garmin."},{t:"Log transfer at roadside fails",b:"Keep the printed malfunction and data-transfer instructions in the cab; the device relies on them at inspection."}],faqs:[{q:"Does Garmin eLog have a login page?",a:"No. Garmin eLog is a self-contained device paired to a phone app — there is no fleet web portal to log in to."},{q:"Is Garmin eLog good for more than one truck?",a:"Not really. There is no fleet dashboard, so each truck is managed separately and there is no consolidated IFTA or DVIR view."},{q:"What should a growing fleet move to?",a:"ELD Hub gives you a fleet dashboard, IFTA, and DVIRs at $15 per truck per month with no contract."},{q:"Do I need new hardware?",a:"Yes, the Garmin adapter is proprietary. New PT-30 or IOSiX hardware is $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."}]},_5=()=>C(()=>import("./garmin-elog-login-KlPHI1-J.js"),[]),C5=R()({component:A(_5,"component"),head:()=>ge(A5)}),R5={brand:"Geotab",slug:"geotab-login",loginUrl:"https://my.geotab.com/",compareTo:"/best-eld-small-fleets",intro:"Geotab login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with no contract. Geotab's GO devices are proprietary, so switching means new hardware.",tips:[{t:"Database name required",b:"MyGeotab asks for a database name as well as a username. It is set by whoever provisioned your account — ask your reseller if you do not have it."},{t:"Reseller portal versus MyGeotab",b:"Many Geotab fleets are sold through resellers with their own branded portal. If my.geotab.com rejects you, sign in through your reseller's URL."},{t:"Drive app will not pair",b:"The Geotab Drive app needs Bluetooth plus an active GO device; confirm the unit's light sequence at the diagnostic port."},{t:"Password reset never arrives",b:"Reset emails often land in spam filters at company domains. Check quarantine before requesting again."}],faqs:[{q:"What is the Geotab login URL?",a:"MyGeotab is at my.geotab.com, and it requires a database name in addition to username and password. Resellers may host their own branded sign-in page."},{q:"Is Geotab a good fit for a small fleet?",a:"Geotab is built around resellers, add-on marketplaces, and larger deployments. For 1–20 trucks the add-on and integration fees usually outweigh the benefit."},{q:"Can I keep Geotab hardware with another provider?",a:"No. GO devices are proprietary to the Geotab platform."},{q:"What does ELD Hub cost?",a:"$15 per truck per month, flat, month-to-month, with IFTA and DVIRs included. It starts with a 14-d
41ay free trial."}]},I5=()=>C(()=>import("./geotab-login-8wZhHEUP.js"),[]),O5=R()({component:A(I5,"component"),head:()=>ge(R5)}),$5={brand:"Geotab",slug:"geotab-pricing",tiers:[{name:"Base",price:"$15–$20",notes:"GPS tracking, basic reporting. No HOS/ELD included."},{name:"Regulatory (HOS + ELD)",price:"$25–$35",notes:"Adds HOS + DVIR. Required for DOT compliance."},{name:"Pro",price:"$35–$45",notes:"Adds engine data, driver behavior, advanced reporting."},{name:"ProPlus",price:"$50–$65",notes:"Adds fleet management, routing, custom analytics."}],hiddenCosts:["GO9 GPS device: $150–$250 per vehicle upfront","Data plan (cellular): $6–$10 per vehicle per month on top of the software tier","Reseller markup — Geotab is sold through 100+ resellers, each with different pricing","Add-on marketplace apps: $2–$15/mo per app per vehicle","Multi-year contract commitments through most resellers (12–36 months)","Different pricing per reseller — quotes vary 30%+ for identical service"],contract:"Varies by reseller — typically 12 or 36 months. No direct-from-Geotab month-to-month.",hardwareCost:"GO9 device: $150–$250. Some resellers subsidize to $0 in exchange for a longer contract.",faqs:[{q:"Why is Geotab pricing so inconsistent?",a:"Geotab sells only through resellers (Geotab-authorized partners), not direct. Each reseller sets their own pricing and contract terms — the same GO9 device + Regulatory plan can range $22–$45/mo depending on who you buy from."},{q:"Does Geotab include ELD in the base plan?",a:"No. The Base tier is GPS-only. You need Regulatory or higher for HOS + ELD compliance. Small fleets often get sold into Base and then upsold when DOT inspection issues surface."},{q:"What's the total Geotab cost per truck per month?",a:"Real all-in cost: $25–$45 (Regulatory tier) plus $6–$10 for the cellular data plan = $31–$55 per truck per month. Plus $150–$250 upfront hardware unless subsidized."},{q:"Is Geotab better than Motive or Samsara?",a:"For enterprise fleets that need custom integrations, Geotab's open API is strong. For small fleets that just need DOT-compliant HOS/DVIR/IFTA, all three (Geotab, Motive, Samsara) are overkill and overpriced compared to ELD HUB at $15/mo."},{q:"Can I switch Geotab resellers without buying new hardware?",a:"Sometimes — the GO9 device is Geotab-standard, but resellers often 'lock' devices to their account. You may need re-provisioning or new hardware to switch. Ask before signing."}]};function aG({data:e}){return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(cu,{className:"size-3.5"})," ",e.brand," pricing breakdown"]}),c.jsxs("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:[e.brand," Pricing (2026) — Real Cost Per Truck"]}),c.jsxs("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:[e.brand," hides pricing behind a sales call. Here's the actual per-truck monthly cost, contract terms, hardware fees, and hidden add-ons — plus how ELD HUB delivers the same DOT compliance for ",c.jsx("strong",{className:"text-foreground",children:"$15/mo, no contract"}),"."]}),c.jsx(Ft,{question:`How much does ${e.brand} cost per truck?`,answer:`${e.brand} runs ${e.tiers[0]?.price??"$25–45 per truck per month"} on a ${e.contract.toLowerCase()}, plus hardware at ${e.hardwareCost.toLowerCase()}. Add-ons such as ${(e.hiddenCosts[0]??"extra reporting").toLowerCase()} are billed separately. ELD Hub software is $15/truck/month, no contract, with HOS, DVIR and IFTA included. PT-30 or IOSiX hardware is $150 each with free shipping; PT-30 includes a cable, IOSiX is device only.`}),c.jsxs("div",{className:"mt-8 flex flex-wrap gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," Switch to $15/mo ELD HUB ",c.jsx(at,{className:"size-4"})]}),c.jsx(W,{to:"/eld-pricing",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:"See ELD HUB pricing"})]}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsxs("div",{className:"mx-auto max-w-5xl px-6 py-16",children:[c.jsxs("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:[e.brand," pricing tiers"]}),c.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:["Reported pricing from operator interviews and RFPs; ",e.brand," does not publish rate cards."]}),c.jsx("div",{className:"mt-8 overflow-x-auto rounded-2xl border border-border/70 bg-card",children:c.jsxs("table",{className:"w-full min-w-[600px] text-left text-sm",children:[c.jsx("thead",{className:"bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground",children:c.jsxs("tr",{children:[c.jsx("th",{className:"px-4 py-3 font-semibold",children:"Tier"}),c.jsx("th",{className:"px-4 py-3 font-semibold",children:"Price per truck / mo"}),c.jsx("th",{className:"px-4 py-3 font-semibold",children:"Notes"})]})}),c.jsxs("tbody",{children:[e.tiers.map(t=>c.jsxs("tr",{className:"border-t border-border/60",children:[c.jsx("td",{className:"px-4 py-3 font-semibold text-foreground",children:t.name}),c.jsx("td",{className:"px-4 py-3 text-accent font-bold",children:t.price}),c.jsx("td",{className:"px-4 py-3 text-muted-foreground",children:t.notes})]},t.name)),c.jsxs("tr",{className:"border-t border-border/60 bg-accent/5 font-bold",children:[c.jsx("td",{className:"px-4 py-3 text-foreground",children:"ELD HUB"}),c.jsx("td",{className:"px-4 py-3 text-accent",children:"$15"}),c.jsx("td",{className:"px-4 py-3 text-muted-foreground",children:"All features. Month-to-month. No hardware markup."})]})]})]})})]})}),c.jsx("section",{className:"border-b border-border/70 bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:["Hidden costs ",e.brand," won't quote upfront"]}),c.jsx("ul",{className:"mt-6 space-y-3",children:e.hiddenCosts.map(t=>c.jsxs("li",{className:"flex items-start gap-3 text-foreground",children:[c.jsx(LE,{className:"mt-0.5 size-5 shrink-0 text-destructive"})," ",t]},t))}),c.jsxs("div",{className:"mt-8 grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"rounded-2xl border border-border/70 bg-card p-5",children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-muted-foreground",children:"Contract"}),c.jsx("p",{className:"mt-2 text-foreground",children:e.contract})]}),c.jsxs("div",{className:"rounded-2xl border border-border/70 bg-card p-5",children:[c.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-muted-foreground",children:"Hardware"}),c.jsx("p",{className:"mt-2 text-foreground",children:e.hardwareCost})]})]})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:"Total cost of ownership: 3-year, 5-truck fleet"}),c.jsxs("div",{className:"mt-6 grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"rounded-2xl border border-border/70 bg-card p-6",children:[c.jsx("h3",{className:"text-lg font-bold text-foreground",children:e.brand}),c.jsxs("ul",{className:"mt-3 space-y-1.5 text-sm text-muted-foreground",children:[c.jsxs("li",{children:["Software: ~$40/mo × 5 × 36 = ",c.jsx("strong",{className:"text-foreground",children:"$7,200"})]}),c.jsxs("li",{children:["Hardware: ~$225 × 5 = ",c.jsx("strong",{className:"text-foreground",children:"$1,125"})]}),c.jsxs("li",{children:["Add-ons + fees: ",c.jsx("strong",{className:"text-foreground",children:"$600–$1,500"})]}),c.jsx("li",{className:"pt-2 border-t border-border/60 mt-2 text-foreground font-bold text-base",children:"Total: ~$8,900–$9,800"})]})]}),c.jsxs("div",{className:"rounded-2xl border border-accent/30 bg-accent/5 p-6",children:[c.jsx("h3",{className:"text-lg font-bold text-foreground",children:"ELD HUB"}),c.jsxs("ul",{className:"mt-3 space-y-1.5 text-sm text-muted-foreground",children:[c.jsxs("li",{children:["Software: $15/mo × 5 × 36 = ",c.jsx("strong",{className:"text-foreground",children:"$2,700"})]}),c.jsx("li",{children:"Hardware: at cost, no markup"}),c.jsxs("li",{children:["Add-ons + fees: ",c.jsx("strong",{className:"text-foreground",children:"$0"})," — everything included"]}),c.jsx("li",{className:"pt-2 border-t border-border/60 mt-2 text-foreground font-bold text-base",children:"Total: ~$2,700"})]}),c.jsx("p",{className:"mt-3 text-sm text-accent font-semibold",children:"Save ~$6,200 over 3 years on 5 trucks"})]})]})]})}),c.jsx("section",{className:"border-b border-border/70 bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:"Frequently asked questions"}),c.jsx("div",{className:"mt-6 space-y-4",children:e.faqs.map((t,n)=>c.jsxs("details",{className:"group rounded-xl border border-border/70 bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer text-base font-semibold text-foreground marker:content-none",children:t.q}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:t.a})]},n))})]})}),c.jsx("section",{className:"border-b border-border/70",children:c.jsxs("div",{className:"mx-auto max-w-3xl px-6 py-16 text-center",children:[c.jsxs("h2",{className:"text-3xl font-bold tracking-tight text-foreground",children:["Skip the ",e.brand," sales call"]}),c.jsx("p",{className:"mt-3 text-lg text-muted-foreground",children:"$15/truck/month. No contract. FMCSA-registered. Set up in 30 minutes."}),c.jsxs("div",{className:"mt-8 flex flex-wrap justify-center gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," Start ELD HUB ",c.jsx(at,{className:"size-4"})]}),c.jsxs(W,{to:"/eld-pricing",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:[c.jsx(ut,{className:"size-4"})," Full pricing page"]})]})]})}),c.jsxs("div",{className:"mx-auto max-w-5xl px-6 pb-16",children:[c.jsx(uu,{brand:e.brand}),c.jsx(du,{brand:e.brand,className:"mt-6",heading:`Switching from ${e.brand}? See what you save`})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function hu(e){const t=`https://goeldhub.com/${e.slug}`,n=`${e.brand} Pricing — Real Cost vs $15/Truck`,o=`What ${e.brand} actually costs per truck: contract terms, hidden fees and hardware. Compare against ELD Hub at $15 per truck, no contract, 14 days free.`;return{meta:[{title:n},{name:"description",content:o},{property:"og:title",content:n},{property:"og:description",content:o},{property:"og:type",content:"article"},{property:"og:url",content:t},...de("comparison",`${e.brand} pricing vs ELD Hub — real cost per truck compared for small fleets.`)],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(s=>
41({"@type":"Question",name:s.q,acceptedAnswer:{"@type":"Answer",text:s.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Compare ELDs",item:"https://goeldhub.com/vs"},{"@type":"ListItem",position:3,name:`${e.brand} Pricing`,item:t}]})}]}}const N5=()=>C(()=>import("./geotab-pricing-CAdVY4Y-.js"),[]),H5=R()({component:A(N5,"component"),head:()=>hu($5)}),P5={brand:"GPS Tab",slug:"gpstab-login",loginUrl:"https://app.gpstab.com/",compareTo:"/vs/gpstab-vs-eld-hub",intro:"GPS Tab (TabELD) login trouble? The fixes below solve most of it. GPS Tab ships the PT-30 — the same device ELD Hub supports — so if you're thinking about leaving, you keep the hardware and only change the software.",tips:[{t:"app.gpstab.com won't accept your password",b:"Clear cached site data for gpstab.com, then sign in from a private window. An old session cookie is the usual culprit after a Chrome update."},{t:"TabELD driver app won't connect to the PT-30",b:"Toggle Bluetooth off and on, force-close the app, and re-pair. If the device still doesn't appear, unplug the PT-30 for 30 seconds and plug it back in."},{t:"Driver login rejected but the portal works",b:"Driver accounts are created inside the fleet portal and are separate from the manager login. Have the admin reset the driver's PIN from the portal's driver list."},{t:"PT-30 shows offline",b:"Check that the diagnostic cable is fully seated in the port and the truck's ignition is on. Give the device two minutes to re-attach to the cellular network before troubleshooting further."}],faqs:[{q:"What is the GPS Tab login URL?",a:"The GPS Tab fleet portal is at app.gpstab.com. Drivers sign in through the TabELD mobile app on iOS or Android with credentials issued by the fleet manager."},{q:"Does GPS Tab use the PT-30?",a:"Yes — GPS Tab ships the PT-30 (Pacific Track PT30) OBD-II device as its standard hardware. ELD Hub uses the same device, which is why switching does not require new hardware."},{q:"Can I keep my GPS Tab PT-30 with ELD Hub?",a:"In most cases yes. The PT-30 is provider-configurable — call 302-404-1177 with the serial number and we'll re-register the unit to your ELD Hub account at no cost."},{q:"How much does ELD Hub cost versus GPS Tab?",a:"ELD Hub posts a flat $15/truck/month with no contract, IFTA and DVIRs included. GPS Tab is quote-based, so compare against your current invoice total rather than a list price."},{q:"How long does the switch take?",a:"About 30 minutes per truck when re-registering an existing PT-30. Export your last six months of RODS from GPS Tab first — you're required to retain them."}],keepHardware:"PT-30"},j5=()=>C(()=>import("./gpstab-login-DoIn8SS-.js"),[]),q5=R()({component:A(j5,"component"),head:()=>ge(P5)}),M5={brand:"Green Light ELD",slug:"green-light-eld-login",loginUrl:"https://greenlighteld.com/",compareTo:"/best-eld-small-fleets",intro:"Green Light ELD login trouble? Work through these fixes first. Green Light is FMCSA-registered under identifier GLEHOS and runs on PT30 and IOSiX hardware — the same two devices ELD Hub supports, so switching costs you nothing in equipment.",tips:[{t:"App signs you out repeatedly",b:"Turn off battery optimization for the driver app in Android settings. Aggressive power saving kills the background session that keeps you logged in."},{t:"Device shows 'no data'",b:"Green Light runs on PT30 or IOSiX. Unplug the unit from the diagnostic port, wait 30 seconds, plug it back in, then re-pair over Bluetooth from the app."},{t:"Fleet manager portal won't load",b:"The web portal and the driver app use separate credentials. Manager logins do not work in the driver app and vice versa — ask your admin to reissue the correct one."},{t:"Password reset email missing",b:"Check spam, then confirm the address on file. Resets go to the address your fleet admin entered, which is often the company address rather than your own."}],faqs:[{q:"What device does Green Light ELD use?",a:"Green Light ELD is registered with FMCSA under identifier GLEHOS with model numbers PT30 and IOSiX. Both are standard OBD-II/9-pin telematics units, not proprietary hardware."},{q:"Can I keep my Green Light hardware if I switch?",a:"Yes. ELD Hub supports both PT30 and IOSiX. If your unit is either of those, we re-register it to ELD Hub at no hardware cost — you only pay the $15/truck/month software fee."},{q:"How much does ELD Hub cost compared to Green Light?",a:"ELD Hub is $15 per truck per month with 
41no contract and no setup fee, including HOS logs, DVIRs, IFTA, and GPS. A new PT-30 or IOSiX is $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"Is ELD Hub FMCSA-registered?",a:"Yes. ELD Hub appears on the FMCSA registered ELD list — see our /fmcsa-registered-eld-list page for how to verify any provider yourself."},{q:"How long does the switch take?",a:"Usually under an hour per truck when you keep an existing PT30 or IOSiX: create the account, add the truck, re-pair the device, and run a test log transfer."}],keepHardware:"PT-30"},F5=()=>C(()=>import("./green-light-eld-login-SjgmS4zu.js"),[]),U5=R()({component:A(F5,"component"),head:()=>ge(M5)}),Wn=Ns("/highway-carrier-vetting"),B5=()=>C(()=>import("./highway-carrier-vetting-B9Hl6qO2.js"),[]),zw=Ps(Wn),z5=R()({head:()=>({meta:[{title:Wn.title},{name:"description",content:Wn.description},{property:"og:title",content:Wn.ogTitle},{property:"og:description",content:Wn.ogDescription},...de("compliance","Highway carrier vetting — what brokers check and how to pass."),{property:"og:url",content:`https://goeldhub.com${Wn.path}`},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:`https://goeldhub.com${Wn.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify(Hs(Wn))},...zw?[{type:"application/ld+json",children:JSON.stringify(zw)}]:[]]}),component:A(B5,"component")}),Xn=Ns("/highway-eld-integration"),V5=()=>C(()=>import("./highway-eld-integration-DdNcq3LE.js"),[]),Vw=Ps(Xn),G5=R()({head:()=>({meta:[{title:Xn.title},{name:"description",content:Xn.description},{property:"og:title",content:Xn.ogTitle},{property:"og:description",content:Xn.ogDescription},...de("compliance","ELD HUB — ELD integrated with Highway for broker vetting."),{property:"og:url",content:`https://goeldhub.com${Xn.path}`},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:`https://goeldhub.com${Xn.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify(Hs(Xn))},...Vw?[{type:"application/ld+json",children:JSON.stringify(Vw)}]:[]]}),component:A(V5,"component")}),Yn=Ns("/highway-eld-providers"),W5=()=>C(()=>import("./highway-eld-providers-p8sey3Ev.js"),[]),Gw=Ps(Yn),X5=R()({head:()=>({meta:[{title:Yn.title},{name:"description",content:Yn.description},{property:"og:title",content:Yn.ogTitle},{property:"og:description",content:Yn.ogDescription},...de("comparison","ELD providers that connect to Highway, compared on price and contract."),{property:"og:url",content:`https://goeldhub.com${Yn.path}`},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:`https://goeldhub.com${Yn.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify(Hs(Yn))},...Gw?[{type:"application/ld+json",children:JSON.stringify(Gw)}]:[]]}),component:A(W5,"component")}),Y5=[{q:"What are the current hours-of-service (HOS) rules for truck drivers?",a:"The core FMCSA HOS rules for property-carrying CMV drivers: 11-hour driving max, 14-hour on-duty limit, 30-minute break after 8 hours of driving, and 60/70-hour weekly cap. Reset with 34+ consecutive off-duty hours."},{q:"Did HOS rules change in 2020 or 2026?",a:"The last major HOS revision took effect September 29, 2020: it expanded the short-haul exemption from 100 to 150 air-miles and 12 to 14 hours, added flexibility to the 30-minute break, expanded the sleeper-berth split option, and extended the adverse-conditions exception. No major rule changes for 2026 as of publication."},{q:"What is the 30-minute break rule?",a:"After 8 cumulative hours of driving time (not on-duty time), you must take at least 30 minutes of non-driving status. It can be off-duty, sleeper, or on-duty-not-driving — as long as you're not driving."},{q:"How does the sleeper berth split work?",a:"You can split your required 10 hours off duty into two qualifying periods: one at least 7 consecutive hours in the sleeper berth, and another at least 2 hours in sleeper or off-duty. Neither period counts toward your 14-hour window."},{q:"What's the 34-hour restart?",a:"Take 34 or more consecutive hours off-
41duty (or sleeper) to reset your 60/70-hour weekly clock to zero. There's no longer a 168-hour minimum between restarts."},{q:"What are the penalties for HOS violations?",a:"$1,000–$16,000 per violation depending on severity. Egregious violations (falsified logs) can trigger up to $12,000 per day plus driver disqualification and out-of-service status. HOS violations directly impact your CSA score."}],K5=()=>C(()=>import("./hos-rules-CHJgyKcl.js"),[]),Q5={"@context":"https://schema.org","@graph":[{"@type":"Article",headline:"Hours of Service (HOS) Rules for Truck Drivers — 2026 Guide",description:"Complete guide to FMCSA HOS rules: 11-hour driving limit, 14-hour on-duty, 30-minute break, 60/70-hour rule, sleeper berth split, penalties.",author:{"@type":"Organization",name:"ELD Hub"},datePublished:"2026-01-15",dateModified:"2026-07-15"},{"@type":"FAQPage",mainEntity:Y5.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},J5=R()({head:()=>({meta:[{title:"HOS Rules 2026 — 11/14/60/70 Hour Guide | ELD Hub"},{name:"description",content:"2026 FMCSA hours-of-service rules explained: 11-hour, 14-hour, 30-min break, 60/70-hour, sleeper split, and violation fines. See the full chart."},{property:"og:title",content:"Hours of Service Rules for Truck Drivers 2026"},{property:"og:description",content:"Every FMCSA hours-of-service rule explained for small fleets and owner-operators. Updated for 2026."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:url",content:"https://goeldhub.com/hos-rules"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/hos-rules"}],scripts:[{type:"application/ld+json",children:JSON.stringify(Q5)}]}),component:A(K5,"component")}),Z5={brand:"HOS247",slug:"hos247-login",loginUrl:"https://portal.hos247.com/login",compareTo:"/vs/hos247-vs-eld-hub",intro:"HOS247 portal or driver-app login trouble? Here are the fixes that solve most sign-in failures. If you're weighing alternatives, ELD Hub is a $15/truck FMCSA-registered platform with IFTA, freight, and factoring included — and if your truck already runs a PT-30 or IOSiX device, you keep the hardware.",tips:[{t:"Portal says 'invalid credentials'",b:"The HOS247 web portal and the driver app use separate accounts. Fleet managers sign in at portal.hos247.com; drivers sign in inside the mobile app with the driver ID your manager created."},{t:"Password reset email never arrives",b:"Check spam, then confirm the address on file is the fleet-manager email — driver accounts often have no email attached and can only be reset by the manager from the portal."},{t:"Driver app stuck on 'connecting'",b:"Turn Bluetooth off and back on, force-close the app, then re-pair the ELD device. A stale Bluetooth bond is the most common cause after a phone OS update."},{t:"Device shows offline in the portal",b:"Unplug the ELD from the diagnostic port, wait 30 seconds, plug it back in, and let it sit for two minutes with the ignition on so it can re-register on the cellular network."}],faqs:[{q:"What is the HOS247 login URL?",a:"The HOS247 fleet portal is at portal.hos247.com/login. Drivers do not use the portal — they sign in through the HOS247 mobile app on iOS or Android with the driver credentials their fleet manager issued."},{q:"Is HOS247 FMCSA-registered?",a:"HOS247 appears on the FMCSA registered ELD list. ELD Hub is on that list too — you can verify both at /fmcsa-registered-eld-list."},{q:"Can I keep my hardware if I leave HOS247?",a:"If your trucks run a PT-30 or an IOSiX device, yes — both are provider-configurable, FMCSA-registered units and ELD Hub re-registers them to your account at no cost. Call 302-404-1177 with the serial number and we'll confirm your exact model before you commit."},{q:"How much does ELD Hub cost compared to HOS247?",a:"ELD Hub is a flat $15/truck/month with no contract and no setup fee, and that includes IFTA, DVIRs, freight tools, and fuel and factoring discounts. HOS247 is quote-based, so compare against the all-in number on your current invoice."},{q:"How long does switching take?",a:"Under an hour per truck when you're re-registering hardware you already own. Export your last six months of RODS from HOS247 first — FMCSA requires you to retain them."}],keepHardware:"PT-30"},eq=()=>C(()=>
41import("./hos247-login-M2oonDlR.js"),[]),tq=R()({component:A(eq,"component"),head:()=>ge(Z5)}),rq=[{q:"Do hotshot drivers need an ELD?",a:"Yes, if you cross state lines commercially with a vehicle 10,001+ lbs GVWR and you keep records of duty status 9+ days in any rolling 30-day window. Most CDL hotshot operations meet this. Short-haul 150 air-mile and 8-day RODS exemptions can apply — see the rules above."},{q:"What are the hotshot ELD exemptions?",a:"The same FMCSA exemptions apply to hotshot: pre-2000 engine, short-haul 150 air-mile with same-day return under 14 hours, 8-day RODS rule (≤8 RODS days in 30), drive-away/tow-away, and covered farm vehicles. Non-CDL hotshot under 10,001 lbs GVWR is fully outside FMCSA HOS."},{q:"What's the best ELD for hotshot trucking?",a:"ELD Hub software is $15/truck/month, no contract. PT-30 or IOSiX hardware costs $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. Check vehicle fitment before ordering."},{q:"How much does a hotshot ELD cost?",a:"ELD Hub charges $15/month for software plus $150 one-time for PT-30 or IOSiX hardware with free shipping. PT-30 includes a cable; IOSiX is device only. A compatible device you already own can be re-registered free."},{q:"Does hotshot with a pickup truck need an ELD?",a:"Yes, if the combined GVWR or GCWR is 10,001+ lbs and you cross state lines commercially. A 3/4-ton or 1-ton pickup pulling a loaded gooseneck almost always crosses that line. Bobtail (no trailer) with GVWR under 10,001? Not required."},{q:"Can I install an ELD myself on my hotshot truck?",a:"Yes. The PT-30 is plug-and-play — locate the OBD-II or 9-pin diagnostic port (usually under the dash), plug in the device, pair to the ELD Hub app via Bluetooth, and enter your driver info. Full setup takes about 10 minutes with no tools."}],nq=()=>C(()=>import("./hotshot-eld-C6jlw-Cr.js"),[]),aq={"@context":"https://schema.org","@type":"FAQPage",mainEntity:rq.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},oq=R()({head:()=>({meta:[{title:"Hotshot ELD Guide 2026 — $15/mo for Owner-Operators | ELD Hub"},{name:"description",content:"ELD requirements for hotshot trucking: who needs one, exemptions, and the cheapest FMCSA-registered ELD for 1–5 truck hotshot operators at $15/month."},{property:"og:title",content:"Hotshot ELD Guide 2026 — $15/mo"},{property:"og:description",content:"Do hotshot drivers need an ELD? Rules, exemptions, and the cheapest option for owner-operators."},...de("compliance","ELD Hub — FMCSA-registered ELD, DOT-ready in 5 minutes."),{property:"og:url",content:"https://goeldhub.com/hotshot-eld"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/hotshot-eld"}],scripts:[{type:"application/ld+json",children:JSON.stringify(aq)}]}),component:A(nq,"component")}),iq={slug:"hours-of-service",eyebrow:"HOS basics",h1:"Hours of Service (HOS): The Rules Truck Drivers Actually Need",intro:"Hours of Service are the federal limits on how long a commercial driver can drive and stay on duty. This is the plain-English version: what each clock means, when it resets, and the exceptions that legally buy you time.",metaTitle:"Hours of Service Rules Explained (2026)",metaDescription:"Plain-English guide to FMCSA Hours of Service: the 11-hour driving limit, 14-hour window, 30-minute break, 60/70-hour rule, split sleeper, and the exceptions that help.",ogCategory:"compliance",ogAlt:"Hours of Service rules for truck drivers explained.",quickAnswer:{question:"What are the Hours of Service rules?",answer:"Property-carrying drivers may drive up to 11 hours within a 14-hour on-duty window after 10 consecutive hours off duty, must take a 30-minute break before 8 cumulative hours of driving, and are capped at 60 hours in 7 days or 70 hours in 8 days. A 34-hour restart resets the weekly clock."},sections:[{h2:"The four clocks",body:"Every property-carrying driver is running four clocks at once. Break any one of them and you have a violation, even if the other three are fine. Understanding which clock is about to run out is the whole job.",bullets:["11-hour driving limit: maximum driving time after 10 consecutive hours off duty","14-hour window: once you go on duty, driving must end 14 hours later — breaks do not pause it","30-minute break: required before you hit 8 cumulative hours of driving time","60/70-hour limit: 60 hours on duty in any 7 consecutive days, or 70 in 8 if your carrier runs every day"]},{h2:"The 14-hour window is the one that catches people",body:"The 11-hour driving clock only counts driving. The 14-hour window counts everything from the moment you go on duty — fueling, loading, waiting at a shipper, a two-hour lunch. It does not stop. If you start at 6 a.m., you cannot drive after 8 p.m., no matter how much of your 11 hours is left."},{h2:"The 30-minute break",body:"After 8 cumulative hours of driving time without at least a 30-minute interruption, you must take a 30-minute break before driving again. Since 2020 the break can be logged as on-duty not-driving, so time spent loading, doing paperwork, or a pre-trip inspection counts. It no longer has to be off duty."},{h2:"The 34-hour restart",body:"Taking 34 consecutive hours off duty resets your 60- or 70-hour weekly clock back to zero. There is no longer a requirement that it include two 1 a.m. to 5 a.m. peri
41ods, and there is no limit on how often you can use it. The restart does not affect the 11-hour or 14-hour clocks, which reset with 10 consecutive hours off."},{h2:"Split sleeper berth",body:"Split sleeper lets you divide required off-duty time into two periods instead of one 10-hour block. One period must be at least 7 consecutive hours in the sleeper berth; the other must be at least 2 hours off duty or in the sleeper. The two must add to at least 10. Neither qualifying period counts against the 14-hour window, which is what makes the split valuable when you are stuck waiting on a load.",bullets:["8/2 split: 8 hours sleeper + 2 hours off duty","7/3 split: 7 hours sleeper + 3 hours off duty","The longer period must be in the sleeper berth; the shorter can be off duty","Your driving clock is recalculated from the end of the first qualifying period"]},{h2:"Exceptions that legally buy time",body:"Two exceptions come up constantly and are frequently mislogged, which is how they turn into violations. Both must be annotated on the ELD with an explanation.",bullets:["Adverse driving conditions: up to 2 extra hours of driving and 2 extra hours on the 14-hour window for weather or traffic you could not have known about when you dispatched","Short-haul 150 air-mile: no RODS or ELD if you start and end at the same location, stay within 150 air miles, and finish within 14 hours","Personal conveyance: off-duty movement of the CMV for personal purposes, laden or not, with no business advancement — must be annotated","16-hour short-haul extension: once per 7 days for drivers who return to the same reporting location"]}],table:{caption:"HOS limits at a glance",headers:["Rule","Property-carrying","Passenger-carrying"],rows:[["Driving limit","11 hours","10 hours"],["On-duty window","14 consecutive hours","15 hours (breaks excluded)"],["Required off duty before driving","10 consecutive hours","8 consecutive hours"],["Mandatory break","30 min before 8 hrs driving","Not required"],["Weekly limit","60 hrs/7 days or 70 hrs/8 days","60 hrs/7 days or 70 hrs/8 days"],["Restart","34 consecutive hours off duty","34 consecutive hours off duty"],["Adverse conditions","+2 driving and +2 window","+2 driving"]]},faqs:[{q:"How many hours can a truck driver drive in a day?",a:"Up to 11 hours of driving, but only within a 14-hour window that starts when the driver goes on duty and does not pause for breaks. Both clocks require 10 consecutive hours off duty before they reset."},{q:"Does the 14-hour clock stop if I take a nap?",a:"No. Ordinary breaks do not pause the 14-hour window. The only way to pause it is a qualifying sleeper-berth period under the split-sleeper provision, which requires at least 7 consecutive hours in the berth."},{q:"Can the 30-minute break be on duty?",a:"Yes. Since the September 2020 rule change, the 30-minute break can be logged as on-duty not-driving, so a pre-trip, fueling, loading, or paperwork all satisfy it as long as you are not driving for 30 consecutive minutes."},{q:"What is the 60/70-hour rule?",a:"You cannot drive after being on duty 60 hours in any 7 consecutive days, or 70 hours in 8 consecutive days if your carrier operates commercial vehicles every day of the week. It is a rolling total, not a calendar week."},{q:"How long do I have to keep HOS records?",a:"Carriers must retain records of duty status and supporting documents for six months. Drivers must have the current day plus the previous 7 days available on the ELD at all times for roadside inspection."},{q:"Does an ELD track HOS automatically?",a:"Yes. An ELD reads the engine to log driving time automatically and warns the driver before each limit. ELD Hub includes HOS logging, DVIRs, and IFTA in a $15 per truck per month plan with no contract."}],related:[{to:"/hos-rules",label:"Detailed HOS reference",note:"Every limit, exception, and edge case in full detail."},{to:"/what-is-an-eld",label:"What is an ELD",note:"How the device records these clocks automatically."},{to:"/eld-violations-penalties",label:"HOS violations and fines",note:"What each violation costs in dollars and CSA points."},{to:"/free-eld-compliance-calculator",label:"Free compliance calculator",note:"Estimate the fine and CSA impact of a violation."},{to:"/dot-inspection-eld",label:"DOT inspection checklist",note:"What an officer checks and how to transfer logs."},{to:"/dot-compliance",label:"DOT compliance hub",note:"Everything a small carrier must keep current."}],ctaHeadline:"Stop guessing at your clocks",ctaSubhead:"ELD Hub logs Hours of Service automatically and warns drivers before the 11-hour and 14-hour limits. $15 per truck per month, no contract, IFTA and DVIRs included.",breadcrumbName:"Hours of Service"},sq=()=>C(()=>
41import("./hours-of-service-DbAE-1MV.js"),[]),lq=R()({component:A(sq,"component"),head:()=>js(iq)}),cq=If("/how-to-start-box-truck-business");function Of(e){const t=`https://goeldhub.com${e.path}`;return{meta:[{title:e.title},{name:"description",content:e.description},{property:"og:title",content:e.h1},{property:"og:description",content:e.description},{property:"og:type",content:"article"},{property:"og:url",content:t},{property:"og:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"HowTo",name:e.h1,description:e.description,step:e.steps.map((n,o)=>({"@type":"HowToStep",position:o+1,name:n.t,text:n.b}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(n=>({"@type":"Question",name:n.q,acceptedA
41nswer:{"@type":"Answer",text:n.a}}))})}]}}function oG({guide:e}){const t=jE.filter(n=>n.path!==e.path);return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-5xl px-6 py-14 sm:py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(mn,{className:"size-3.5"})," ",e.eyebrow]}),c.jsx("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.h1}),c.jsx("p",{className:"mt-4 max-w-3xl text-lg text-muted-foreground",children:e.intro}),c.jsx(Ft,{question:e.quickQuestion,answer:e.quickAnswer}),c.jsx("div",{className:"mt-8",children:c.jsx(sa,{detail:e.slug})}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:"Licence, weight and what it means for you"}),c.jsx("div",{className:"mt-6 space-y-4",children:e.licensing.map(n=>c.jsxs("div",{className:"flex gap-4 rounded-xl border border-border bg-card p-6",children:[c.jsx(ut,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsxs("div",{children:[c.jsx("p",{className:"font-bold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1.5 text-sm text-muted-foreground",children:n.d})]})]},n.t))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"The launch sequence, in order"}),c.jsx("ol",{className:"mt-6 space-y-4",children:e.steps.map((n,o)=>c.jsxs("li",{className:"flex gap-4 rounded-xl border border-border bg-card p-6",children:[c.jsx("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-accent/15 text-sm font-bold text-accent",children:o+1}),c.jsxs("div",{children:[c.jsx("p",{className:"font-bold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1.5 text-sm text-muted-foreground",children:n.b})]})]},n.t))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Year-one money"}),c.jsx("div",{className:"mt-6 overflow-hidden rounded-2xl border border-border bg-card",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-secondary/50 text-left text-foreground",children:c.jsxs("tr",{children:[c.jsx("th",{className:"p-3",children:"Line item"}),c.jsx("th",{className:"p-3",children:"Typical range"})]})}),c.jsx("tbody",{className:"text-muted-foreground",children:e.costs.map(n=>c.jsxs("tr",{className:"border-t border-border",children:[c.jsxs("td",{className:"p-3",children:[c.jsx("span",{className:"font-semibold text-foreground",children:n.label}),c.jsx("span",{className:"block text-xs",children:n.note})]}),c.jsx("td",{className:"p-3 whitespace-nowrap font-semibold text-foreground",children:n.range})]},n.label))})]})}),c.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:"Insurance and equipment figures are typical US market ranges for a new authority, not quotes. Filing fees are the published FMCSA and state amounts. Your numbers will differ by state, driving record and commodity."}),c.jsx("div",{className:"mt-6",children:c.jsx(W,{to:"/trucking-startup-cost-calculator",className:"inline-flex rounded-lg border border-border bg-card px-5 py-3 text-sm font-semibold text-foreground hover:border-accent",children:"Run your own year-one budget →"})}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Where the loads come from"}),c.jsx("ul",{className:"mt-6 space-y-3",children:e.loads.map(n=>c.jsxs("li",{className:"flex gap-3 rounded-xl border border-border bg-card p-5 text-sm text-muted-foreground",children:[c.jsx(Qp,{className:"mt-0.5 size-4 shrink-0 text-accent"}),c.jsx("span",{children:n})]},n))}),e.loadsPath?c.jsx("div",{className:"mt-6",children:c.jsx(W,{to:e.loadsPath,className:"inline-flex rounded-lg border border-border bg-card px-5 py-3 text-sm font-semibold text-foreground hover:border-accent",children:"Full guide to finding loads →"})}):null,c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"The federal filings, one page each"}),c.jsx("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:yn.map(n=>c.jsxs(W,{to:n.path,className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsxs("p",{className:"font-semibold text-foreground",children:[n.label," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.summary})]},n.path))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"FAQ"}),c.jsx("div",{className:"mt-6 space-y-4",children:e.faqs.map(n=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsxs("summary",{className:"flex cursor-pointer items-center justify-between gap-4 text-base font-semibold text-foreground",children:[c.jsxs("span",{className:"inline-flex items-center gap-2",children:[c.jsx(Hr,{className:"size-4 text-accent"}),n.q]}),c.jsx("span",{className:"text-accent transition group-open:rotate-45",children:"+"})]}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:n.a})]},n.q))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Keep going"}),c.jsxs("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:[c.jsxs(W,{to:e.eldPath,className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsxs("p",{className:"font-semibold text-foreground",children:[e.eldLabel," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"When an ELD is required and what it costs."})]}),c.jsxs(W,{to:"/new-carrier-checklist",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"90-day launch checklist →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Every step from LLC to first load, in order."})]}),c.jsxs(W,{to:"/broker-eld-requirements",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"A broker asked me to connect an ELD →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"What vetting platforms want and how to satisfy it."})]}),c.jsxs(W,{to:"/new-authority-eld",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"ELD for a new authority →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"What FMCSA expects from your first mile."})]})]}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Other ways in"}),c.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[t.map(n=>c.jsxs(W,{to:n.path,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-4 py-2 text-sm font-semibold text-foreground hover:border-accent",children:[c.jsx(Xc,{className:"size-4 text-accent"})," ",n.eyebrow]},n.path)),c.jsxs(W,{to:"/how-to-start-trucking-company",className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-4 py-2 text-sm font-semibold text-foreground hover:border-accent",children:[c.jsx(Xc,{className:"size-4 text-accent"})," CDL tractor startup"]})]}),c.jsx("div",{className:"mt-12",children:c.jsx(sa,{detail:`${e.slug}_footer`})})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}const uq=()=>C(()=>
41import("./how-to-start-box-truck-business-BaRkwftg.js"),[]),dq=R()({head:()=>Of(cq),component:A(uq,"component")}),hq=If("/how-to-start-cargo-van-business"),pq=()=>C(()=>import("./how-to-start-cargo-van-business-C53Kp3-K.js"),[]),fq=R()({head:()=>Of(hq),component:A(pq,"component")}),mq=If("/how-to-start-hotshot-business"),gq=()=>C(()=>import("./how-to-start-hotshot-business-BUMdMv_N.js"),[]),yq=R()({head:()=>Of(mq),component:A(gq,"component")}),bq=[{n:"01",Icon:Jo,t:"Form your LLC",b:"File an LLC in your home state ($50–$500 depending on state). This protects personal assets and is required before applying for authority.",cost:"$50–$500"},{n:"02",Icon:ia,t:"Get a USDOT number",b:"Apply on the FMCSA Unified Registration System. Free for most carriers. Required before any interstate hauling.",cost:"Free"},{n:"03",Icon:mn,t:"Get MC (Operating) Authority",b:"Required for interstate for-hire carriers. Apply via FMCSA — $300 application fee. Allow 20–25 business days for approval.",cost:"$300"},{n:"04",Icon:Jo,t:"BOC-3 process agent filing",b:"Designate a process agent in every state you operate in. Third-party services handle nationwide filing for ~$40 one-time.",cost:"~$40"},{n:"05",Icon:cu,t:"Insurance ($750K–$1M liability)",b:"FMCSA requires proof of insurance before your MC activates. Budget $8K–$14K/year for a new-authority owner-operator.",cost:"$8K–$14K/yr"},{n:"06",Icon:Jo,t:"IRP + IFTA registration",b:"IRP (International Registration Plan) for apportioned plates. IFTA (fuel tax) if you're over 26,000 lbs and cross state lines. Both filed with your base state.",cost:"~$1,500 IRP first year"},{n:"07",Icon:ia,t:"UCR filing",b:"Unified Carrier Registration — annual fee based on fleet size. ~$46 for 0–2 trucks.",cost:"~$46/yr"},{n:"08",Icon:mn,t:"ELD + drug consortium",b:"FMCSA-registered ELD is mandatory day 1. Enroll in a DOT-approved drug and alcohol testing consortium ($50–$100/driver/year).",cost:"$15/truck + $50–$100/driver"}],vq=[{q:"How much does it cost to start a trucking company?",a:"Excluding the truck itself, plan on $10,000–$18,000 for a single-truck LLC: $300 MC authority, $50–$500 LLC, $40 BOC-3, ~$1,500 IRP, $8,000–$14,000 insurance for the first year, ~$46 UCR, plus your ELD ($15/truck/mo) and drug consortium. Truck financing, plates, and permits are on top."},{q:"How long does it take to get MC authority?",a:"FMCSA quotes 20–25 business days after application. In practice, expect 4–6 weeks from the day you file until your MC number activates — insurance filing and BOC-3 must be complete before activation."},{q:"Do I need an LLC to start a trucking company?",a:"You can operate as a sole proprietor, but an LLC (or corporation) shields personal assets from business liability. For any carrier hauling under authority, an LLC is standard — banks and factoring companies expect it."},{q:"Do I need an ELD from day 1?",a:"Yes. Every commercial motor vehicle over 10,001 lbs GVW crossing state lines needs an FMCSA-registered ELD from the first mile under authority. ELD Hub gets you compliant in 5 minutes at $15/truck/month, no contract."},{q:"What's the cheapest way to start a trucking company?",a:"Buy an older Class 8 truck (owner-financed if possible), file your own LLC, apply for MC authority yourself, use ELD Hub for compliance ($15/truck), and factor invoices for cash flow instead of a bank line. Total legal and compliance overhead: under $12K in year one."},{q:"Can I start a trucking company with no money?",a:"Not really — insurance alone requires an $8K+ down payment or premium financing. You can minimize startup by leasing a truck, financing insurance, and factoring receivables from day 1. But budget at least $5K liquid before applying for MC authority."},{q:"Do I need CDL for hotshot trucking?",a:"Depends on GCWR. Under 26,001 lbs combined = no CDL required (Non-CDL hotshot). Over 26,001 lbs = CDL Class A required. Either way, you need MC authority, insurance, and an ELD."}],wq=()=>C(()=>import("./how-to-start-trucking-company-B9jiog4h.js"),[]),xq={"@context":"https://schema.org","@type":"HowTo",name:"How to Start a Trucking Company",description:"Step-by-step guide to starting a trucking company: LLC, USDOT, MC authority, insurance, IFTA, IRP, and ELD compliance.",step:bq.map((e,t)=>({"@type":"HowToStep",position:t+1,name:e.t,text:e.b}))},Eq={"@context":"https://schema.org","@type":"FAQPage",mainEntity:vq.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},Sq=R()({head:()=>({meta:[{title:"How to Start a Trucking Company (2026 Step-by-Step) | ELD Hub"},{name:"description",content:"Complete guide: LLC, USDOT, MC authority, insurance, IFTA, IRP, and ELD. Real costs, real timelines, and how to stay compliant from day 1 at $15/truck."},{property:"og:title",content:"How to Start a Trucking Company (2026 Step-by-Step) | ELD Hub"},{property:"og:description",content:"Real costs and timelines to launch a trucking company. LLC, MC authority, insurance, IFTA, IRP, ELD — all in one guide."},...de("states","ELD Hub — FMCSA-registered ELD for US trucking fleets."),{property:"og:type",content:"article"},{property:"og:url",content:"https://goeldhub.com/how-to-start-trucking-company"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/how-to-start-trucking-company"}],scripts:[{type:"application/ld+json",children:JSON.stringify(xq)},{type:"application/ld+json",children:JSON.stringify(Eq)}]}),component:A(wq,"component")}),kq={brand:"ID ELD",slug:"id-eld-login",loginUrl:"https://app.ideld.com/",compareTo:"/best-eld-small-fleets",intro:"ID ELD sign-in link plus the fixes that clear most account and pairing problems. Comparing providers? ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, with a 14-d
41ay free trial.",tips:[{t:"Cannot reach the portal",b:"Fleet accounts sign in at app.ideld.com. If it will not load, clear cookies for the site and retry in a private window."},{t:"Reset email missing",b:"Check spam first, then have your fleet admin confirm the email on the account — resets go to the address on file, not the one you type."},{t:"Device shows offline",b:"Reseat the unit at the diagnostic port with the ignition on and wait two minutes before raising a ticket."},{t:"Driver cannot certify logs",b:"Unsigned logs usually mean the driver is assigned to the wrong vehicle or terminal. Fix the assignment in the portal and the day re-opens for certification."}],faqs:[{q:"What is the ID ELD login URL?",a:"Fleet admins sign in at app.ideld.com. Drivers use the ID ELD mobile app with credentials issued by their fleet manager."},{q:"What would ELD Hub cost instead?",a:"$15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included, no setup fee, and a 14-day free trial."},{q:"How long does switching take?",a:"About 30 minutes per truck. If you already run a PT-30 or IOSiX, it is re-registered free and there is no shipping wait."}]},Dq=()=>C(()=>import("./id-eld-login-CYBQ7O30.js"),[]),Tq=R()({component:A(Dq,"component"),head:()=>ge(kq)}),Lq=[{q:"What is IFTA reporting software?",a:"IFTA reporting software calculates the fuel taxes a motor carrier owes each U.S. state and Canadian province based on miles driven and fuel purchased per jurisdiction. It replaces the manual per-truck worksheets carriers used before ELDs."},{q:"Do I need separate IFTA software if I already have an ELD?",a:"No — a good ELD includes IFTA. ELD Hub bundles IFTA reporting in the flat $15/truck/month price. Most competitors charge $10–$20/truck extra for an IFTA add-on."},{q:"How often do I file IFTA?",a:"Quarterly. Due dates: April 30, July 31, October 31, and January 31. Late filing means penalties ($50 or 10% of tax due, whichever is greater) plus interest — automating the report avoids missed deadlines."},{q:"What if I run under 26,001 lbs — do I still need IFTA?",a:"IFTA applies to vehicles over 26,000 lbs GVW OR with 3+ axles, that cross state lines. Owner-operators in a single-axle Sprinter under weight usually don't need IFTA — but if you ever run a heavier truck, sign up before the first interstate trip."},{q:"Does ELD Hub file IFTA for me?",a:"ELD Hub generates the pre-filled quarterly report; you (or your accountant) upload it to your base jurisdiction's IFTA portal. Automatic filing requires jurisdiction-specific API access that most states don't yet offer."},{q:"What about IFTA in Canada?",a:"ELD Hub supports IFTA for all U.S. and Canadian jurisdictions. Cross-border miles and fuel receipts are handled the same way — the driver app auto-detects the border crossing via GPS."}],Aq=()=>C(()=>import("./ifta-reporting-software-qRhImU2l.js"),__vite__mapDeps([21,3])),_q={"@context":"https://schema.org","@type":"Product",name:"ELD Hub — IFTA Reporting Software",description:"Automatic IFTA fuel tax reporting for small trucking fleets. Included in ELD Hub at $15/truck/month.",brand:{"@type":"Brand",name:"ELD Hub"},offers:{"@type":"Offer",price:"15",priceCurrency:"USD",availability:"https://schema.org/InStock"}},Cq={"@context":"https://schema.org","@type":"FAQPage",mainEntity:Lq.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))},Rq=R()({head:()=>({meta:[{title:"IFTA Reporting Software for Small Fleets | ELD Hub"},{name:"description",content:"Automatic IFTA fuel tax reporting included with ELD Hub at $15/truck/month. GPS mileage per state, receipt OCR, quarterly reports ready to file."},{property:"og:title",content:"IFTA Reporting Software for Small Fleets | ELD Hub"},{property:"og:description",content:"Automatic IFTA fuel tax reporting. Included in ELD Hub at $15/truck/month. No add-ons, no contracts."},...de("states","ELD Hub — FMCSA-registered ELD for US trucking fleets."),{property:"og:type",content:"website"},{property:"og:url",content:"https://goeldhub.com/ifta-reporting-software"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/ifta-reporting-software"}],scripts:[{type:"application/ld+json",children:JSON.stringify(_q)},{type:"application/ld+json",children:JSON.stringify(Cq)}]}),component:A(Aq,"component")}),Iq={brand:"Ironman ELD",slug:"ironman-eld-login",loginUrl:"https://ironmaneld.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Ironman ELD login? Access the Ironman fleet portal below. If Ironman ELD's monthly bill keeps creeping up, ELD Hub runs on standard PT-30 hardware for a locked-in $15/truck.",tips:[{t:"Ironman portal not loading?",b:"Check ironmaneld.com in an incognito window to rule out cookie issues. Ironman occasionally rate-limits shared IPs — mobile hotspot often works."},{t:"Driver PIN not working?",b:"Ironman driver PINs are set by the fleet admin — a driver cannot reset the
41ir own. Contact your dispatcher, not Ironman support."},{t:"Unassigned drive time appearing?",b:"This happens when the truck moved with no driver logged in. The fleet admin must reassign or annotate it before the log is DOT-clean."},{t:"Want to try ELD Hub instead?",b:"ELD Hub is FMCSA-registered, $15/truck flat, includes IFTA, and re-registers your existing PT-30 for free."}],faqs:[{q:"What is Ironman ELD's login page?",a:"The Ironman ELD fleet dashboard is at ironmaneld.com. Drivers use the Ironman driver app; fleet admins access the web portal separately."},{q:"Is Ironman ELD FMCSA-registered?",a:"Ironman ELD is on the FMCSA-registered ELD list. Verify status on the FMCSA registry before any renewal — revocations do happen."},{q:"Can I switch from Ironman ELD to ELD Hub?",a:"Yes. If you own PT-30 hardware, ELD Hub re-registers it in about 5 minutes per truck. No new devices, no waiting, no double-billing during the switch."},{q:"How does Ironman ELD pricing compare to ELD Hub?",a:"Ironman ELD pricing varies by tier and truck count. ELD Hub is a flat $15/truck/month with IFTA and freight tools included — no add-ons, no contract."}]},Oq=()=>C(()=>import("./ironman-eld-login-4j1rgBVK.js"),[]),$q=R()({head:()=>ge(Iq),component:A(Oq,"component")}),Nq=yn.find(e=>e.path==="/irp-apportioned-plates"),Hq=()=>C(()=>import("./irp-apportioned-plates-DaCfrRBY.js"),[]),Pq=R()({head:()=>ri(Nq),component:A(Hq,"component")}),jq={brand:"ISAAC Instruments",slug:"isaac-instruments-login",loginUrl:"https://isaacinstruments.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your ISAAC Instruments login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub is a flat $15/truck/month with no contract, and PT-30 or IOSiX hardware is $150 each with free shipping (PT-30 with cable; IOSiX device only).",tips:[{t:"ISAAC Instruments portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in ISAAC Instruments. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"ISAAC Instruments locks its software to its own gateway, so a switch means new hardware. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the ISAAC Instruments login page?",a:"The ISAAC Instruments fleet portal is at https://isaacinstruments.com/. Drivers sign in through the ISAAC Instruments mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than ISAAC Instruments?",a:"ELD Hub is a flat $15 per truck per month with no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with ISAAC Instruments once add-ons are counted."},{q:"Do I need new hardware to leave ISAAC Instruments?",a:"Usually yes, because ISAAC Instruments hardware is tied to its own platform. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. There is no software contract."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from ISAAC Instruments before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}]},qq=()=>C(()=>import("./isaac-instruments-login-BCbeLywk.js"),[]),Mq=R()({head:()=>ge(jq),component:A(qq,"component")}),Fq={brand:"Linxup",slug:"linxup-login",loginUrl:"https://app.linxup.com/authentication/linxup",compareTo:"/best-eld-small-fleets",intro:"Linxup sign-in link plus the fixes that clear most account problems. If you are weighing the cost of GPS-plus-ELD bundles, ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Portal address",b:"Fleet admins sign in at app.linxup.com. Bookmark the app address rather than the marketing site."},{t:"Password reset",b:"Use the reset link on the sign-in page, then check spam. Your account admin can also reset it directly."},{t:"Tracker not reporting",b:"Confirm the tracker has power at the diagnostic port or the wired harness, then key the ignition on and wait a few minutes for the next check-in."},{t:"ELD add-on not showing for a driver",b:"The ELD module is assigned per vehicle and per driver — check both assignments before troubleshooting the device."}],faqs:[{q:"What is the Linxup login URL?",a:"Fleet admins sign in at app.linxup.com. Drivers use the Linxup driver app with credentials issued by their fleet manager."},{q:"How does ELD Hub compare on price?",a:"ELD Hub is $15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included rather than billed as separate modules, plus a 14-day free trial."},{q:"Can I keep my hardware?",a:"If you own a compatible PT-30 or IOSiX, ELD Hub can re-register it free after serial confirmation. Otherwise either new device is $150 with free shipping; PT-30 includes a cable, IOSiX is device only."}]},Uq=()=>C(()=>import("./linxup-login-DUrHsnsE.js"),[]),Bq=R()({component:A(Uq,"component"),head:()=>ge(Fq)}),zq={brand:"Loop ELD",slug:"loop-eld-login",loginUrl:"https://portal.loopeld.com/sign-in",compareTo:"/best-eld-small-fleets",intro:"Loop ELD sign-in link plus the fixes that clear most account problems. If you are shopping, ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, with a 14-d
41ay free trial.",tips:[{t:"Portal address",b:"Fleet admins sign in at portal.loopeld.com/sign-in. Bookmark it — the marketing site and the portal are separate addresses."},{t:"Reset link expired",b:"Request a new one and open it immediately in the same browser; these links time out within minutes."},{t:"Bluetooth pairing fails",b:"Grant the driver app Bluetooth and location permission in phone settings, then re-pair with the ignition on."},{t:"Driver not visible",b:"A driver only appears once an admin assigns them to a vehicle and a home terminal."}],faqs:[{q:"What is the Loop ELD login URL?",a:"Fleet admins sign in at portal.loopeld.com/sign-in. Drivers use the Loop ELD mobile app with credentials issued by their fleet manager."},{q:"What would ELD Hub cost?",a:"$15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included, no setup fee, and a 14-day free trial."},{q:"How fast can I switch?",a:"About 30 minutes per truck. Keep a PT-30 or IOSiX you already own and there is no hardware wait at all."}]},Vq=()=>C(()=>import("./loop-eld-login-DroSf5WE.js"),[]),Gq=R()({component:A(Vq,"component"),head:()=>ge(zq)}),Wq={brand:"Lucid ELD",slug:"lucid-eld-login",metaTitle:"Lucid ELD Login — Portal Link + $15/Truck Alternative",metaDescription:"Lucid ELD login: direct portal link and sign-in fixes. Compare with ELD Hub at $15/truck/month, no contract, and free re-registration of compatible devices.",loginUrl:"https://lucideld.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Lucid ELD login? You can access your fleet portal below. If Lucid ELD support has been slow or your device has been flagged, ELD Hub runs on the same PT-30 hardware for $15/truck — flat and month-to-month.",tips:[{t:"Lucid portal not loading?",b:"Clear cookies for lucideld.com or try the mobile app. If your account is suspended for late payment, only Lucid billing can restore it."},{t:"PT-30 stopped syncing?",b:"The PT-30 device is provider-agnostic. If Lucid revoked access, you can re-register the exact same PT-30 to ELD Hub in about 5 minutes — no new hardware needed."},{t:"FMCSA status warning?",b:"Check the FMCSA revoked ELD list before your next DOT inspection. If Lucid appears there, you must switch providers immediately to avoid HOS violations."},{t:"Driver app force-closing?",b:"Uninstall and reinstall from the App Store / Play Store. Persistent crashes usually mean an unpaid Lucid subscription blocking sync."}],faqs:[{q:"What is Lucid ELD's login page?",a:"The Lucid ELD fleet portal is at lucideld.com. Drivers use the Lucid ELD app with credentials issued by the fleet admin."},{q:"Can I move my PT-30 from Lucid ELD to ELD Hub?",a:"Yes. The PT-30 is a standard, FMCSA-registered ELD device that works across providers. ELD Hub re-registers your existing PT-30 for free — takes about 5 minutes per truck."},{q:"Is ELD Hub cheaper than Lucid ELD?",a:"ELD Hub is a flat $15/truck/month with no contract. Most Lucid customers report $20–$30/truck with add-ons for IFTA and dispatch — ELD Hub includes both."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of logs. You can export from Lucid ELD before switching; ELD Hub then starts fresh on activation day. This is standard for any ELD switch."}],keepHardware:"PT-30"},Xq=()=>C(()=>import("./lucid-eld-login-Dr6CVSTI.js"),[]),Yq=R()({head:()=>ge(Wq),component:A(Xq,"component")}),Kq={brand:"Master ELD",slug:"master-eld-login",loginUrl:"https://mastereld.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Master ELD login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub runs on the same PT-30 hardware you already own for a flat $15/truck/month with no contract.",tips:[{t:"Master ELD portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in Master ELD. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"The PT-30 is provider-agnostic and FMCSA-registered. If you leave Master ELD, you re-register the same device to ELD Hub in about five minutes — no new hardware."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the Master ELD login page?",a:"The Master ELD fleet portal is at https://mastereld.com/. Drivers sign in through the Master ELD mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than Master ELD?",a:"ELD Hub is a flat $15 per truck per month with 
41no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with Master ELD once add-ons are counted."},{q:"Can I move my PT-30 from Master ELD to ELD Hub?",a:"Yes. The PT-30 is a standard FMCSA-registered ELD device that works across providers. ELD Hub re-registers a PT-30 you already own at no cost — about five minutes per truck."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from Master ELD before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}],keepHardware:"PT-30"},Qq=()=>C(()=>import("./master-eld-login-t6ZIMXm1.js"),[]),Jq=R()({head:()=>ge(Kq),component:A(Qq,"component")}),Zq={brand:"Max ELD",slug:"max-eld-login",loginUrl:"https://app.maxeld.com/",compareTo:"/best-eld-small-fleets",intro:"Max ELD sign-in link plus the fixes that clear most login problems. Shopping alternatives while you are here? ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Portal will not load",b:"Fleet accounts sign in at app.maxeld.com. If the page hangs, clear the site cookies and try a private window — a stale session token is the usual cause."},{t:"Password reset not arriving",b:"Reset emails land in spam more often than not. Check there first, then confirm the address your fleet admin has on file."},{t:"Device offline in the dashboard",b:"Reseat the unit in the diagnostic port, key the ignition on, and give it two minutes to report in before opening a support ticket."},{t:"Driver locked out on the road",b:"An admin can reset the driver PIN from the portal instantly. Do not delete and re-create the driver — you lose the log history."}],faqs:[{q:"What is the Max ELD login URL?",a:"Fleet admins sign in at app.maxeld.com. Drivers use the Max ELD mobile app with credentials issued by their fleet manager."},{q:"Can I keep my device if I leave Max ELD?",a:"If your truck runs a PT-30 or IOSiX unit that you own, ELD Hub re-registers it at no cost. If the device is locked to its platform, a PT-30 or IOSiX costs $150 each with free shipping (PT-30 with cable; IOSiX device only)."},{q:"What does ELD Hub cost?",a:"$15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included. Every account starts with a 14-day free trial and there is no setup fee."}]},eM=()=>C(()=>import("./max-eld-login-MPxF8bqH.js"),[]),tM=R()({component:A(eM,"component"),head:()=>ge(Zq)}),rM=yn.find(e=>e.path==="/mc-authority"),nM=()=>C(()=>import("./mc-authority-BJigqyPt.js"),[]),aM=R()({head:()=>ri(rM),component:A(nM,"component")}),oM=[{q:"Is Motive worth it for a small fleet?",a:"Motive is a strong platform, but its pricing model and multi-year contracts are calibrated for 50+ truck fleets. Owner-operators and small carriers (1-20 trucks) usually overpay for enterprise features they don't use."},{q:"How much does Motive cost for a 5-truck fleet?",a:"Motive is quote-based, but public reports put small fleets at $30-50 per truck per month on a 1-3 year contract. For 5 trucks, that's $150-250/mo, plus hardware amortization. ELD Hub is a flat $15/truck/mo with no contract — around $75/mo for the same 5 trucks."},{q:"Is ELD Hub FMCSA-registered like Motive?",a:"Yes. ELD Hub is on the official FMCSA ELD list. Both PT-30 and IOSiX hardware options pass DOT roadside inspections in all 50 states."},{q:"What features does ELD Hub include at $15/truck?",a:"HOS logging, DVIRs, GPS tracking, IFTA fuel-tax reports, fleet manager dashboard, driver mobile app, and freight and factoring tools are included at $15/truck/month. Hardware is separate: PT-30 or IOSiX is $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"How long does it take to switch from Motive?",a:"Setup takes about 30 minutes per truck once hardware is in hand. Compatible PT-30 or IOSiX devices you own can be re-registered free; new devices are $150 each with free shipping. PT-30 includes a cable, IOSiX is device only."},{q:"Can I break my Motive contract early?",a:"Most Motive contracts have early termination fees calculated on remaining contract value. Read your MSA. Most fleets time the switch to their renewal date to avoid ETFs."}],iM=()=>C(()=>import("./motive-alternative-small-fleet-D33DVpao.js"),[]),Ww="Motive Alternative for Small Fleets | ELD Hub — $15/truck",Xw="Motive is built for enterprise fleets. Small fleets (1-20 trucks) get more value from ELD Hub: $15/truck/mo, no contract, FMCSA-registered.",Yw="https://goeldhub.com/motive-alternative-small-fleet",sM=R()({component:A(iM,"component"),head:()=>({meta:[{title:Ww},{name:"description",content:Xw},{property:"og:title",content:Ww},{property:"og:description",content:Xw},...de("comparison","Compare ELDs — honest side-by-side for small fleets."),{property:"og:type",content:"website"},{property:"og:url",content:Yw},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:Yw}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:oM.map(e=>
41({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})}]})}),lM={brand:"Motive",slug:"motive-login",loginUrl:"https://app.gomotive.com/login",compareTo:"/vs/motive-alternative",intro:"Motive login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with no contract. Motive (formerly KeepTruckin) uses a proprietary Vehicle Gateway, so switching means new hardware — ELD Hub sells PT-30 or IOSiX for $150 each with free shipping (PT-30 with cable; IOSiX device only).",tips:[{t:"Login rejects a valid password",b:"Motive locks accounts after repeated failures. Wait 15 minutes, then reset from the login page rather than the app."},{t:"Driver app stuck on 'connecting'",b:"Confirm Bluetooth is on and the driver's phone is paired with the Vehicle Gateway; the app cannot certify logs while disconnected."},{t:"Cannot see your vehicle",b:"Only a fleet admin can assign a driver to a vehicle. Ask your admin to check the assignment in the Motive dashboard."},{t:"Former KeepTruckin credentials fail",b:"KeepTruckin accounts were migrated to Motive. Sign in at app.gomotive.com and reset your password if the old portal is bookmarked."}],faqs:[{q:"What is the Motive login URL?",a:"Fleet admins sign in at app.gomotive.com/login. Drivers use the Motive Driver app with credentials from their fleet manager."},{q:"Is Motive the same as KeepTruckin?",a:"Yes. KeepTruckin rebranded to Motive; old accounts were migrated to the Motive portal."},{q:"Can I keep my Motive hardware if I switch?",a:"No — the Motive Vehicle Gateway is proprietary. Moving to ELD Hub means a new device; PT-30 and IOSiX are $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"What does ELD Hub cost compared with Motive?",a:"Motive's published list pricing is roughly $35 per truck per month on a 36-month contract. ELD Hub is $15 per truck per month with no contract, and it starts with a 14-day free trial."}]},cM=()=>C(()=>import("./motive-login-DMco1cO1.js"),[]),uM=R()({component:A(cM,"component"),head:()=>ge(lM)}),dM={brand:"Motive",slug:"motive-pricing",tiers:[{name:"Starter (ELD-only)",price:"$20–$25",notes:"HOS, DVIR, IFTA. 36-month contract typical."},{name:"Pro (Fleet)",price:"$30–$35",notes:"Adds GPS tracking, geofencing, fleet dashboard."},{name:"Premium (Safety)",price:"$40–$55",notes:"Adds AI dash cam, driver scoring, event review."},{name:"Enterprise",price:"Custom",notes:"Volume discounts at 50+ trucks. Multi-year lock."}],hiddenCosts:["Vehicle Gateway hardware: $150–$250 per truck upfront (or amortized into contract)","AI Dash Cam: $300–$500 per truck (Premium tier only)","Per-driver license fees on team accounts","Data-plan fees for cellular backhaul on some Vehicle Gateway SKUs","Auto-renewal at contract end — 60-day cancellation window or you're locked another term","Early-termination fee: remaining contract balance in full"],contract:"36 months standard, 12/24 available at higher per-truck rates. Auto-renews.",hardwareCost:"$150–$250 per Vehicle Gateway, plus $300–$500 per AI Dash Cam if upgrading to Premium.",faqs:[{q:"Why doesn't Motive publish pricing on its website?",a:"Motive uses value-based sales pricing — reps quote based on fleet size, tier, and how much competition you're playing off against them. Small fleets typically end up at the high end of the range; large fleets negotiate down."},{q:"What's the cheapest Motive plan?",a:"Motive's Starter (ELD-only) tier starts around $20–$25/truck/month on a 36-month contract. Month-to-month or 12-month options exist but push toward $30–$35."},{q:"Are the Motive AI dash cams included in the price?",a:"No — the AI Dash Cam is an add-on ($300–$500 per truck hardware + higher monthly tier). Premium tier is typically $40–$55/truck/month."},{q:"How does Motive pricing compare to Samsara?",a:"Similar for equivalent features. Both hide pricing, both push 3–5 year contracts, both charge $300+ for hardware. For small fleets, ELD HUB ($15/mo, no contract) is 60%+ cheaper than either."},{q:"Can I negotiate Motive's price down?",a:"Yes. Motive reps have 15–25% discount authority, more at enterprise. Best leverage: a written quote from Samsara + a documented switch date. But even at the discounted price you're locked into a 3-year contract."}]},hM=()=>C(()=>
41import("./motive-pricing-CsrMh9jg.js"),[]),pM=R()({component:A(hM,"component"),head:()=>hu(dM)}),fM=[{q:"Do I need an ELD before my MC authority is active?",a:"You need one in the truck from the first mile you run under authority. Most new carriers register their ELD while the 21-day protest period runs, so the account is live the day the MC activates. ELD Hub bills per truck per month with no contract, so an early signup costs nothing extra."},{q:"What is the cheapest FMCSA-registered ELD for a new authority?",a:"ELD Hub software is $15 per truck per month with no contract. Compatible PT-30 or IOSiX devices you already own can be re-registered free. New PT-30 and IOSiX hardware are $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"Will the new-entrant safety audit check my ELD records?",a:"Yes. FMCSA audits new entrants within the first 12 months and hours-of-service records are a standard item. Keep six months of driver logs and supporting documents available; ELD Hub retains them in the portal so you can export them for the auditor."},{q:"Can I set up the ELD before I have a truck?",a:"Yes. Create the account, add the driver, and add the vehicle when you take delivery. Hardware is in stock and ships same or next business day, so ordering while the authority is pending avoids a gap between activation and your first load."}],mM=()=>C(()=>import("./new-authority-eld-CGT4hk-5.js"),[]),Kw="ELD for a New Trucking Authority — $15/Truck | ELD Hub",Qw="New MC authority? FMCSA requires an FMCSA-registered ELD from your first mile. Register now, activate when your MC clears: $15 per truck per month, no contract.",gM=R()({head:()=>({meta:[{title:Kw},{name:"description",content:Qw},{property:"og:title",content:Kw},{property:"og:description",content:Qw},{property:"og:type",content:"article"},{property:"og:url",content:"https://goeldhub.com/new-authority-eld"},{property:"og:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/new-authority-eld"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:fM.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})}]}),component:A(mM,"component")}),yM=()=>C(()=>import("./new-carrier-checklist-D5bVMqU6.js"),[]),Jw="New Carrier 90-Day Launch Checklist (2026) | ELD Hub",lp="Every filing a new trucking authority needs, in dependency order: LLC, EIN, USDOT, MC authority, BOC-3, insurance, IRP, IFTA, UCR, drug consortium, ELD and the new-entrant safety audit.",bM=R()({head:()=>({meta:[{title:Jw},{name:"description",content:lp},{property:"og:title",content:Jw},{property:"og:description",content:lp},{property:"og:type",content:"article"},{property:"og:url",content:"https://goeldhub.com/new-carrier-checklist"},{property:"og:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/new-carrier-checklist"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"HowTo",name:"New carrier 90-day launch checklist",description:lp,step:b3.flatMap(e=>e.items.map(t=>({"@type":"HowToStep",name:t.t,text:t.b}))).map((e,t)=>({...e,position:t+1}))})}]}),component:A(yM,"component")}),vM={brand:"Next Fleet ELD",slug:"next-fleet-eld-login",loginUrl:"https://cloud.nextfleeteld.com/#/auth/login",compareTo:"/best-eld-small-fleets",intro:"Next Fleet ELD sign-in link and the fixes for locked accounts and pairing faults. Comparing providers? ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, with 14 days free.",tips:[{t:"Portal address",b:"Fleet admins sign in at cloud.nextfleeteld.com. If the page comes up blank, hard-refresh — the portal is a single-page app and caches aggressively."},{t:"Password reset",b:"Reset links expire quickly; request a fresh one and open it immediately in the same browser."},{t:"Device shows offline",b:"Reseat the unit at the diagnostic port with the ignition on and give it two minutes before raising a ticket."},{t:"Unassigned driving time",b:"Review and assign unclaimed segments weekly from the portal — a backlog draws inspector attention faster than one bad day."}],faqs:[{q:"What is the Next Fleet ELD login URL?",a:"Fleet admins sign in at cloud.nextfleeteld.com. Drivers use the Next Fleet ELD mobile app with credentials issued by their fleet manager."},{q:"Is ELD Hub cheaper?",a:"ELD Hub is $15 per truck per month with 
41no contract, HOS, DVIR, IFTA and GPS included, and a 14-day free trial."},{q:"How long does a switch take?",a:"About 30 minutes per truck, and there is no hardware wait if you already own a PT-30 or IOSiX."}]},wM=()=>C(()=>import("./next-fleet-eld-login-C2CqOJQk.js"),[]),xM=R()({component:A(wM,"component"),head:()=>ge(vM)}),EM={brand:"Nextraq",slug:"nextraq-login",loginUrl:"https://nextraq.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Nextraq login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub is a flat $15/truck/month with no contract, and PT-30 or IOSiX hardware is $150 each with free shipping (PT-30 with cable; IOSiX device only).",tips:[{t:"Nextraq portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in Nextraq. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"Nextraq locks its software to its own gateway, so a switch means new hardware. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the Nextraq login page?",a:"The Nextraq fleet portal is at https://nextraq.com/. Drivers sign in through the Nextraq mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than Nextraq?",a:"ELD Hub is a flat $15 per truck per month with no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with Nextraq once add-ons are counted."},{q:"Do I need new hardware to leave Nextraq?",a:"Usually yes, because Nextraq hardware is tied to its own platform. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. There is no software contract."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from Nextraq before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}]},SM=()=>C(()=>import("./nextraq-login-CdxihrI2.js"),[]),kM=R()({head:()=>ge(EM),component:A(SM,"component")}),DM={brand:"Omnitracs",slug:"omnitracs-login",loginUrl:"https://www.omnitracs.com/",compareTo:"/best-eld-small-fleets",intro:"Omnitracs login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with no contract. Omnitracs IVG hardware is proprietary and enterprise-oriented.",tips:[{t:"Multiple product portals",b:"Omnitracs One, XRS, and Roadnet use separate sign-in pages. Use the portal named on your contract."},{t:"Single sign-on failures",b:"Enterprise Omnitracs accounts often sit behind corporate SSO; if your company password changed, your Omnitracs session breaks too."},{t:"IVG unit unresponsive",b:"The in-cab display needs a hard reset from the mount; a truck power cycle alone often is not enough."},{t:"Locked account",b:"Only your fleet administrator can reset an Omnitracs account lock."}],faqs:[{q:"Where do I log in to Omnitracs?",a:"Through the product portal named on your contract — Omnitracs One, XRS, and Roadnet each have their own sign-in page linked from omnitracs.com."},{q:"Is Omnitracs suitable for a fleet under 20 trucks?",a:"It is an enterprise platform priced and supported accordingly. Small carriers usually pay for capability they never use."},{q:"Can Omnitracs hardware move to another provider?",a:"No — the IVG is proprietary."},{q:"What does ELD Hub cost?",a:"$15 per truck per month, month-to-month, with a 14-d
41ay free trial to start."}]},TM=()=>C(()=>import("./omnitracs-login-bXjkh1Nu.js"),[]),LM=R()({component:A(TM,"component"),head:()=>ge(DM)}),AM={brand:"Omnitracs",slug:"omnitracs-pricing",tiers:[{name:"XRS (ELD)",price:"$25–$35",notes:"Basic HOS + ELD. Legacy plan, still sold."},{name:"One (Fleet)",price:"$35–$50",notes:"HOS + fleet management + routing."},{name:"IVG (Enterprise)",price:"$50–$75",notes:"Full telematics + video + workflow. Requires IVG display."},{name:"Enterprise / MCP",price:"Custom",notes:"Large fleet deals. 5-year contracts standard."}],hiddenCosts:["IVG display hardware: $400–$1,200 per truck upfront","MCP series units: $600–$1,500 per truck (enterprise SKUs)","Cellular data plan: bundled but not itemized","Post-Solera acquisition pricing has increased 15–25% at renewal for many fleets","5-year initial terms + 60–90 day cancellation windows","Full-unit hardware billing if devices aren't returned within 30 days of cancellation"],contract:"3–5 years standard. Solera-era contracts push 5 years with strict auto-renewal.",hardwareCost:"$400–$1,500 per truck depending on device (IVG, MCP 50/110/200, One, XRS).",faqs:[{q:"Is Omnitracs still worth it after the Solera acquisition?",a:"For enterprise fleets already invested in Omnitracs workflow and MCP hardware, staying is often cheaper than ripping and replacing. For fleets under 100 trucks, the post-Solera pricing has closed the gap with cheaper alternatives — many small-to-mid fleets are switching."},{q:"How much does Omnitracs cost per truck?",a:"Real-world pricing: $25–$75 per truck per month depending on tier, plus $400–$1,500 in hardware. Enterprise MCP deals often exceed $80/truck/mo all-in over the 5-year contract."},{q:"What's the cheapest Omnitracs plan?",a:"XRS ELD-only, roughly $25–$35/truck/mo. But XRS is legacy — Solera is pushing customers to newer platforms at higher price points."},{q:"How does Omnitracs compare to Motive and Samsara?",a:"Omnitracs has deeper enterprise workflow features (dispatch integration, ERP hooks) but is more expensive and has less-modern UX than Motive/Samsara. For small fleets, all three are overkill."},{q:"What replaces Omnitracs for a small fleet?",a:"For DOT compliance only (HOS, DVIR, IFTA), ELD HUB at $15/mo replaces Omnitracs XRS at a fraction of the cost with no contract. Enterprise fleets moving off MCP typically go to Samsara or Motive — but those bring their own 3–5 year contracts."}]},_M=()=>C(()=>import("./omnitracs-pricing-D6qHsovS.js"),[]),CM=R()({component:A(_M,"component"),head:()=>hu(AM)}),RM={brand:"One Step GPS",slug:"one-step-gps-login",loginUrl:"https://onestepgps.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your One Step GPS login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub is a flat $15/truck/month with no contract, and PT-30 or IOSiX hardware is $150 each with free shipping (PT-30 with cable; IOSiX device only).",tips:[{t:"One Step GPS portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in One Step GPS. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"One Step GPS locks its software to its own gateway, so a switch means new hardware. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the One Step GPS login page?",a:"The One Step GPS fleet portal is at https://onestepgps.com/. Drivers sign in through the One Step GPS mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than One Step GPS?",a:"ELD Hub is a flat $15 per truck per month with no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with One Step GPS once add-ons are counted."},{q:"Do I need new hardware to leave One Step GPS?",a:"Usually yes, because One Step GPS hardware is t
41ied to its own platform. ELD Hub sells PT-30 and IOSiX at $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. There is no software contract."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from One Step GPS before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}]},IM=()=>C(()=>import("./one-step-gps-login-sEU798_X.js"),[]),OM=R()({head:()=>ge(RM),component:A(IM,"component")}),$M={brand:"Optima ELD",slug:"optima-eld-login",loginUrl:"https://web.optimaeld.com/",compareTo:"/best-eld-small-fleets",intro:"Optima ELD login not working? Common fixes below. Owner-operators tired of quote-based pricing and slow ticketing are switching to ELD Hub — flat $15/truck, US phone support, and IFTA + freight tools included.",tips:[{t:"Web portal won't load",b:"Optima's web portal (web.optimaeld.com) sometimes fails on older browsers. Use latest Chrome or Safari, and clear cookies for the domain."},{t:"Driver app 'invalid credentials'",b:"Passwords are case-sensitive and separate from the web portal. Reset via the app, not the website."},{t:"PT-30 offline",b:"Unplug the PT-30, wait 30 seconds, plug back into the diagnostic port. Re-pair Bluetooth from the driver app."},{t:"Support wait time",b:"Optima support is primarily email/ticket. During a DOT stop, direct phone support is worth having — that's included with ELD Hub."}],faqs:[{q:"What's the Optima ELD login URL?",a:"Fleet managers log in at web.optimaeld.com. Drivers sign in through the Optima ELD mobile app on iOS or Android."},{q:"Why does Optima ELD keep logging me out?",a:"Session expiration is short by default. If it happens mid-shift, clear the app cache and re-login — a stale token is usually the cause."},{q:"Can I keep my Optima PT-30 hardware if I switch?",a:"Yes. Optima uses the PT-30 device, which ELD Hub also supports. Switch software providers without buying new hardware."},{q:"Is ELD Hub really $15/truck?",a:"Yes — flat, month-to-month, no setup fee. IFTA reporting, freight tools, and fuel/factoring discounts are all bundled."},{q:"How long does the switch take?",a:"Same day. Order → we ship SIM if needed → drivers log into the new app → PT-30 pairs automatically."}]},NM=()=>C(()=>import("./optima-eld-login-BICcRAlo.js"),[]),HM=R()({component:A(NM,"component"),head:()=>ge($M)}),PM=[{q:"Do owner-operators need an ELD?",a:"Yes. If you drive a commercial motor vehicle over 10,001 lbs across state lines and keep RODS (records of duty status), the FMCSA ELD mandate applies — even if you're a one-truck operation. The short-haul and pre-2000 engine exemptions are narrow; most owner-operators do not qualify."},{q:"What's the cheapest ELD for owner-operators?",a:"ELD Hub is $15/truck/month flat, no contract, no hardware financing. That's the lowest FMCSA-registered price point built specifically for 1-truck operations. Most competitors quote $25–$45/month plus a 36-month agreement."},{q:"Can I install the ELD myself?",a:"Yes. PT-30 and IOSiX devices plug into your truck's diagnostic port in under 5 minutes. No mechanic, no wiring, no downtime. If you already own a PT-30 from a previous provider, we re-register it to ELD Hub for free."},{q:"Do I need a contract?",a:"Never. Month-to-month always. Cancel anytime if we don't earn your $15."},{q:"Does ELD Hub include IFTA and DVIR?",a:"Yes — IFTA fuel tax reporting, driver DVIR, HOS logs, DOT inspection mode, and unlimited driver seats are all included at $15/truck/month."},{q:"What if I get a roadside inspection?",a:"Tap 'DOT Inspection' in the app, hand your phone to the officer, done. Logs transfer by web, email, or Bluetooth per FMCSA §395.24."}],jM=()=>C(()=>import("./owner-operator-eld-CTJU8mHD.js"),[]),qM={"@context":"https://schema.org","@graph":[{"@type":"Product",name:"ELD Hub for Owner-Operators",description:"FMCSA-registered ELD built for 1-truck owner-operators. $15/month flat, no contract, self-install in 5 minutes.",brand:{"@type":"Brand",name:"ELD Hub"},offers:{"@type":"Offer",price:"15.00",priceCurrency:"USD",availability:"https://schema.org/InStock",url:"https://goeldhub.com/owner
41-operator-eld"},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.8",reviewCount:"312"}},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Owner-Operator ELD",item:"https://goeldhub.com/owner-operator-eld"}]},{"@type":"FAQPage",mainEntity:PM.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},MM=R()({head:()=>({meta:[{title:"ELD for Owner-Operators — 1 Truck, $15/mo Flat"},{name:"description",content:"One truck? An FMCSA-registered ELD for $15/month flat — no contract, no financing, 5-minute self-install, IFTA and DVIR included. Keep the PT-30 or IOSiX you own."},{property:"og:title",content:"ELD for Owner-Operators — 1 Truck, $15/mo Flat"},{property:"og:description",content:"FMCSA-registered ELD for one-truck operations. $15/month flat, cancel anytime, 5-minute self-install."},...de("default","ELD Hub — $15/mo unlocks the full fleet stack for small trucking fleets."),{property:"og:url",content:"https://goeldhub.com/owner-operator-eld"},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:"https://goeldhub.com/owner-operator-eld"}],scripts:[{type:"application/ld+json",children:JSON.stringify(qM)}]}),component:A(jM,"component")}),FM={brand:"Peak ELD",slug:"peak-eld-login",loginUrl:"https://eldpeak.com/",compareTo:"/best-eld-small-fleets",metaTitle:"Peak ELD Login (eldpeak.com) — Direct Link + 4 Quick Fixes",metaDescription:"Peak ELD login link for drivers and fleet admins, plus fixes for blank dashboards, Bluetooth pairing and wrong time zones. Tired of the hassle? Switch to ELD Hub: $15/truck, no contract, keep your PT-30 or IOSiX.",intro:"Peak ELD login not working? Try the fixes below. If you are also weighing the monthly cost, ELD Hub is an FMCSA-registered ELD at a flat $15 per truck per month with no contract — and if your Peak device is a PT-30 or IOSiX, you can keep the hardware.",tips:[{t:"App accepts the password but shows a blank dashboard",b:"The driver is not assigned to a truck yet. Your fleet admin has to attach a vehicle to your driver profile before logs can load."},{t:"Bluetooth pairing fails",b:"Only one phone can hold the device pairing at a time. Forget the device on the previous phone, then pair again on the current one with the engine running."},{t:"Wrong time zone on logs",b:"The HOS clock follows the terminal time zone set in the fleet profile, not the phone. Ask your admin to correct the terminal setting rather than changing your phone."},{t:"Cannot reach support during an inspection",b:"Keep the printed DOT reference card and malfunction instructions in the cab. Officers accept the printed instruction sheet plus a paper log during an outage."}],faqs:[{q:"Where do I log in to Peak ELD?",a:"Peak ELD operates at eldpeak.com; drivers use the Peak ELD mobile app with credentials issued by their fleet manager. ELD Hub is not affiliated with Peak ELD."},{q:"Can I move to ELD Hub without new hardware?",a:"It depends on your device. ELD Hub supports PT-30 (Pacific Track) and IOSiX units. Check the model number on the label on the device — if it reads PT30 or IOSiX, we re-register it free."},{q:"What if my device is not compatible?",a:"New PT-30 and IOSiX devices are $150 each with free shipping (in stock, ship same or next business day). PT-30 includes a cable; IOSiX is device only. The software stays $15 per truck per month."},{q:"Is there a contract?",a:"No. ELD Hub is month-to-month with 
41no setup fee and no cancellation penalty."},{q:"What is included at $15?",a:"HOS logs, DVIRs, IFTA mileage reporting, GPS tracking, driver management, and DOT inspection mode — not sold as separate add-ons."}]},UM=()=>C(()=>import("./peak-eld-login-D5Y6ww5s.js"),[]),BM=R()({component:A(UM,"component"),head:()=>ge(FM)}),zM={brand:"Phoenix ELD",slug:"phoenix-eld-login",loginUrl:"https://phoenixeld.com/",compareTo:"/best-eld-small-fleets",intro:"Phoenix ELD login not working? Common fixes below. If you're considering a switch, ELD Hub delivers the same FMCSA compliance at $15/truck flat, with IFTA, freight, and factoring bundled — no contract.",tips:[{t:"Web portal blank",b:"Phoenix ELD's fleet portal doesn't render on older Safari builds. Use latest Chrome, Edge, or Firefox."},{t:"Driver stuck on splash screen",b:"Clear app data (Android) or delete/re-install (iOS). The token cache is the usual culprit."},{t:"PT-30 won't reconnect",b:"Phoenix ELD uses the PT-30. Re-seat the device in the diagnostic port and re-pair from the driver app's Devices menu."},{t:"Can't get a support callback",b:"Phoenix ELD support is limited hours. ELD Hub answers the phone during US business hours and runs a 24/7 AI advisor for roadside questions overnight."}],faqs:[{q:"What's the Phoenix ELD login URL?",a:"Fleet managers log in at phoenixeld.com. Drivers use the Phoenix ELD mobile app."},{q:"Does Phoenix ELD run on the PT-30?",a:"Yes. The PT-30 is the standard Phoenix ELD device. If you own PT-30 hardware, you can switch software providers without buying new devices."},{q:"Is ELD Hub compatible with my Phoenix ELD PT-30?",a:"Yes. Keep the PT-30, switch to ELD Hub. Setup is under 15 minutes."},{q:"What's included with ELD Hub for $15/truck?",a:"HOS + DVIR compliance, IFTA reporting, freight/dispatcher tools, and access to factoring and fuel discount programs."},{q:"Any contract with ELD Hub?",a:"No — month-to-month. Cancel anytime."}]},VM=()=>C(()=>import("./phoenix-eld-login-Hc8f59_-.js"),[]),GM=R()({component:A(VM,"component"),head:()=>ge(zM)}),ja=Os("/pickup-truck-eld"),WM=()=>C(()=>import("./pickup-truck-eld-DWBOvSom.js"),[]),XM=R()({head:()=>({meta:[{title:ja.title},{name:"description",content:ja.description},{property:"og:title",content:ja.ogTitle},{property:"og:description",content:ja.ogDescription},...de("compliance","ELD Hub — FMCSA-registered ELD for pickup trucks and hotshot rigs."),{property:"og:url",content:`https://goeldhub.com${ja.path}`},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:`https://goeldhub.com${ja.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify($s(ja))}]}),component:A(WM,"component")}),YM=()=>C(()=>import("./press-BBQnRnIZ.js"),__vite__mapDeps([22,20,12,16,3])),Zw="Press & Media Kit — ELD Hub Data for Journalists",cp="Free ELD pricing data, charts, and expert commentary for reporters covering trucking compliance. CC-BY licensed dataset, CSV download, and media contact.",xc="https://goeldhub.com/press",KM=R()({head:()=>({meta:[{title:Zw},{name:"description",content:cp},{property:"og:title",content:"Press & Media Kit | ELD Hub"},{property:"og:description",content:cp},...de("comparison","ELD Hub press kit — free ELD pricing data for journalists."),{property:"og:url",content:xc},{property:"og:type",content:"website"}],links:[{rel:"canonical",href:xc}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebPage",name:Zw,url:xc,description:cp,publisher:{"@type":"Organization",name:"ELD Hub",url:"https://goeldhub.com"}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Press",item:xc}]})}]}),component:A(YM,"component")}),QM=()=>C(()=>import("./privacy-policy-D95I33YX.js"),[]),JM=R()({head:()=>({meta:[{title:"Privacy Policy — ELD HUB"},{name:"description",content:"How ELD HUB collects, uses, shares, and protects your information, including CCPA/CPRA and GDPR-style rights, cookies, retention, and security."},{property:"og:title",content:"Privacy Policy — ELD HUB"},{property:"og:description",content:"How ELD HUB handles your data, your privacy rights, and how to reach us with privacy requests."},{property:"og:url",content:"https://goeldhub.com/privacy-policy"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/privacy-policy"}]}),component:A(QM,"component")}),ZM={brand:"Rand McNally ELD",slug:"rand-mcnally-eld-login",loginUrl:"https://www.randmcnally.com/",compareTo:"/best-eld-small-fleets",intro:"Rand McNally ELD login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with 
41no contract. Rand McNally ELD 50 and TND devices are proprietary to their platform.",tips:[{t:"DriverConnect versus Fleet portal",b:"Owner-operators use DriverConnect; fleets use the fleet portal. The two use different credentials."},{t:"ELD 50 will not pair",b:"Confirm Bluetooth pairing on the phone, then re-seat the device at the diagnostic port."},{t:"Firmware update stalls",b:"Leave ignition on and the app open — interrupted updates can leave the unit unregistered."},{t:"Password reset not received",b:"Check spam, and confirm the account email matches the one on your purchase receipt."}],faqs:[{q:"Where do I log in to Rand McNally ELD?",a:"Through DriverConnect for owner-operators or the fleet portal for multi-truck accounts, both linked from randmcnally.com."},{q:"Can Rand McNally hardware be used with another ELD provider?",a:"No — the ELD 50 and TND units are proprietary."},{q:"What is the cheapest way to replace it?",a:"ELD Hub sells PT-30 and IOSiX for $150 each with free shipping; PT-30 includes a cable, IOSiX is device only. Software is $15 per truck per month."},{q:"Is ELD Hub FMCSA-registered?",a:"Yes, and the PT-30 and IOSiX devices it supports are on the official FMCSA registry."}]},eF=()=>C(()=>import("./rand-mcnally-eld-login-DghZPyib.js"),[]),tF=R()({component:A(eF,"component"),head:()=>ge(ZM)}),rF={brand:"Rock ELD",slug:"rock-eld-login",loginUrl:"https://rockeld.us/",compareTo:"/best-eld-small-fleets",intro:"Rock ELD login issue? Try these fixes. If you're evaluating alternatives, ELD Hub is a $15/truck FMCSA-registered platform with IFTA, freight, and factoring built in — no contract.",tips:[{t:"Login screen won't submit",b:"Clear browser cache for rockeld.us. Old CSRF tokens block the sign-in form after a Chrome update."},{t:"Driver app 'server error'",b:"Force-close and reopen. Rock ELD servers occasionally reset connections — the driver app retries but sometimes needs a manual restart."},{t:"PT-30 offline",b:"Rock ELD runs on the PT-30 device. Unplug, wait 30s, plug back in. Re-pair from the app."},{t:"Password reset stuck",b:"Reset link expires in 15 minutes. If yours has expired, request a new one and open it immediately."}],faqs:[{q:"What's the Rock ELD login URL?",a:"The Rock ELD portal is at rockeld.us. Drivers sign in through the Rock ELD mobile app on iOS or Android."},{q:"Is Rock ELD FMCSA-registered?",a:"Rock ELD appears on the FMCSA registered ELD list. ELD Hub is also on that list — see /fmcsa-registered-eld-list."},{q:"Can I switch from Rock ELD without new hardware?",a:"Yes. Rock ELD uses the PT-30 device. Keep the hardware, switch the software, save 30–40% all-in."},{q:"How much does ELD Hub cost?",a:"$15/truck/month flat. No contract, no setup fee. IFTA, freight tools, and fuel/factoring discounts included."},{q:"How long is the switch?",a:"Under an hour per truck for existing PT-30 owners."}],keepHardware:"PT-30"},nF=()=>C(()=>import("./rock-eld-login-YNh5pOXV.js"),[]),aF=R()({component:A(nF,"component"),head:()=>ge(rF)}),oF={brand:"Royal ELD",slug:"royal-eld-login",loginUrl:"https://portal.royaleld.us/login",compareTo:"/best-eld-small-fleets",intro:"Royal ELD sign-in link plus the fixes that clear most login problems. If cost is what brought you here, ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Portal address",b:"Fleet admins sign in at portal.royaleld.us/login. Save that exact link — the portal sits on a different address from the main site."},{t:"Reset email missing",b:"Check spam, then confirm with your fleet admin which address the account is registered to."},{t:"App will not connect",b:"Toggle Bluetooth, force-close the app, and re-pair with the ignition on and the phone inside the cab."},{t:"Driver PIN lockout",b:"An admin can reset the driver PIN from the portal. Do not delete the driver record — that removes the log history."}],faqs:[{q:"What is the Royal ELD login URL?",a:"Fleet admins sign in at portal.royaleld.us/login. Drivers use the Royal ELD mobile app with credentials issued by their fleet manager."},{q:"What does ELD Hub cost?",a:"$15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included, no setup fee, and a 14-day free trial."},{q:"Do I need new hardware?",a:"Not if you own a compatible PT-30 or IOSiX — ELD Hub can re-register it free after serial confirmation. Otherwise either new device is $150 with free shipping; PT-30 includes a cable, IOSiX is device only."}]},iF=()=>C(()=>import("./royal-eld-login-B9JOU2zy.js"),[]),sF=R()({component:A(iF,"component"),head:()=>ge(oF)}),lF={brand:"Samsara",slug:"samsara-login",loginUrl:"https://cloud.samsara.com/signin",compareTo:"/vs/samsara-alternative",intro:"Samsara login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with 
41no contract. Samsara runs proprietary VG-series hardware, so a switch means new devices — ELD Hub ships PT-30 or IOSiX for $150 each with free shipping (PT-30 with cable; IOSiX device only).",tips:[{t:"Two-factor code not arriving",b:"Samsara enforces MFA on most fleet accounts. Check the authenticator app rather than SMS, and confirm your phone number with your fleet admin."},{t:"Driver app says 'no vehicle assigned'",b:"A driver can only log in once an admin assigns them to a vehicle in the Samsara dashboard."},{t:"Password reset loop",b:"Reset links expire quickly. Request a new one and open it immediately in the same browser."},{t:"Gateway shows offline",b:"Check the VG unit's cable seating at the diagnostic port, then power-cycle the truck before contacting support."}],faqs:[{q:"What is the Samsara login URL?",a:"Fleet admins sign in at cloud.samsara.com/signin; drivers use the Samsara Driver mobile app with credentials issued by their fleet manager."},{q:"Can I use my Samsara hardware with another provider?",a:"No. Samsara's VG-series gateways are proprietary and locked to Samsara's platform. Switching providers means new hardware — ELD Hub sells PT-30 or IOSiX for $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"How much cheaper is ELD Hub than Samsara?",a:"Samsara's published list pricing is around $45 per truck per month on a 36-month contract. ELD Hub is $15 per truck per month, month-to-month, and every account starts with a 14-day free trial."},{q:"How do I cancel Samsara?",a:"Check your contract's notice window first — see our Samsara cancellation guide for the notice period and remaining-term terms."}]},cF=()=>C(()=>import("./samsara-login-bQFpBnXV.js"),[]),uF=R()({component:A(cF,"component"),head:()=>ge(lF)}),dF={brand:"Samsara",slug:"samsara-pricing",tiers:[{name:"Video-Based Safety Only",price:"$27–$33",notes:"Dash cam + basic telematics. 3-year contract."},{name:"Vehicle Telematics",price:"$25–$35",notes:"GPS, ELD, HOS, DVIR. Base plan for most fleets."},{name:"Full Fleet + Safety",price:"$40–$55",notes:"Everything above + AI dash cams + driver coaching."},{name:"Enterprise",price:"Custom",notes:"5-year contracts standard at 50+ trucks."}],hiddenCosts:["VG34 / VG54 Vehicle Gateway: $200–$400 per truck upfront","AD4 or AD3 dual-facing AI Dash Cam: $400–$600 per truck","Reefer sensors, tire pressure, and asset trackers: add-on modules $8–$15/mo each","Multi-year contract lock — 3 to 5 years with 60–90 day cancellation notice","Hardware refresh cycles pushed by Samsara reps every 3 years (new contract term starts)","100% remaining contract value on early termination"],contract:"3-year standard, 5-year at enterprise. 60–90 day pre-renewal cancellation window.",hardwareCost:"$200–$400 Vehicle Gateway + $400–$600 Dash Cam per truck. Enterprise deals bundle into monthly rate.",faqs:[{q:"How much does Samsara cost per truck?",a:"Real-world Samsara pricing lands around $27–$55 per truck per month depending on tier. Basic ELD + telematics is $25–$35; add AI dash cams and it jumps to $40–$55. Enterprise fleets negotiate 15–30% off list."},{q:"Does Samsara have a contract?",a:"Yes. Samsara standard contracts are 3 years (5 years at enterprise). Month-to-month options don't officially exist. Early termination costs 100% of the remaining contract value."},{q:"What does Samsara hardware cost?",a:"$200–$400 per Vehicle Gateway (VG34 or VG54) and $400–$600 per AD4 dash cam. Most Samsara reps amortize hardware into the monthly rate, which obscures true TCO."},{q:"Is Samsara worth it for a 5-truck fleet?",a:"For small fleets, Samsara is 3–4× more expensive than needed. You're paying for enterprise features (advanced dispatch, sensor networks, custom API access) most small fleets never touch. ELD HUB delivers DOT-compliant HOS/DVIR/IFTA for $15/mo, no contract — for a 5-truck fleet that's $75/mo vs Samsara's $150–$275/mo."},{q:"Can I get out of a Samsara contract early?",a:"Only by paying the remaining contract value in full or by proving a documented SLA breach (rare). See our cancel-samsara guide for the specific process."}]},hF=()=>C(()=>import("./samsara-pricing-CiYtsJpl.js"),[]),pF=R()({component:A(hF,"component"),head:()=>hu(dF)}),fF={brand:"Sharp ELD",slug:"sharp-eld-login",loginUrl:"https://sharpeld.com/front-desk/#/login",compareTo:"/best-eld-small-fleets",intro:"Sharp ELD sign-in link and the fixes for locked accounts, forgotten passwords and Bluetooth pairing. If you are comparing providers, ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Front-desk page is blank",b:"The Sharp ELD portal lives at sharpeld.com/front-desk/#/login. A blank screen usually means a cached script — hard-refresh the page or open it in a private window."},{t:"Forgotten password",b:"Use the reset link on the sign-in page. If no email arrives within a few minutes, your fleet admin can reset the account directly."},{t:"App cannot find the device",b:"Confirm Bluetooth permission is granted to the app on the phone itself, then re-pair with the ignition on."},{t:"Logs missing after a swap",b:"Export RODS before you change devices or drivers. Records follow the account, not the handset."}],faqs:[{q:"What is the Sharp ELD login URL?",a:"Fleet admins sign in at sharpeld.com/front-desk/#/login. Drivers use the Sharp ELD mobile app with credentials issued by their fleet manager."},{q:"Is there a cheaper alternative to Sharp ELD?",a:"ELD Hub is $15 per truck per month with 
41no contract, including HOS, DVIR, IFTA and GPS, and a 14-day free trial so you can compare before cancelling anything."},{q:"Do I need new hardware to switch?",a:"Not if you own a compatible PT-30 or IOSiX — ELD Hub can re-register it free after serial confirmation. Otherwise either new device is $150 with free shipping; PT-30 includes a cable, IOSiX is device only."}]},mF=()=>C(()=>import("./sharp-eld-login-DcukrHGz.js"),[]),gF=R()({component:A(mF,"component"),head:()=>ge(fF)}),yF={brand:"Simple ELD",slug:"simple-eld-login",loginUrl:"https://simpleeld.com/",compareTo:"/best-eld-small-fleets",intro:"Looking for your Simple ELD login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub runs on the same PT-30 hardware you already own for a flat $15/truck/month with no contract.",tips:[{t:"Simple ELD portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in Simple ELD. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"The PT-30 is provider-agnostic and FMCSA-registered. If you leave Simple ELD, you re-register the same device to ELD Hub in about five minutes — no new hardware."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the Simple ELD login page?",a:"The Simple ELD fleet portal is at https://simpleeld.com/. Drivers sign in through the Simple ELD mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than Simple ELD?",a:"ELD Hub is a flat $15 per truck per month with no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with Simple ELD once add-ons are counted."},{q:"Can I move my PT-30 from Simple ELD to ELD Hub?",a:"Yes. The PT-30 is a standard FMCSA-registered ELD device that works across providers. ELD Hub re-registers a PT-30 you already own at no cost — about five minutes per truck."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from Simple ELD before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}],keepHardware:"PT-30"},bF=()=>C(()=>import("./simple-eld-login-CovNe-Iw.js"),[]),vF=R()({head:()=>ge(yF),component:A(bF,"component")}),qa=Os("/sprinter-van-eld"),wF=()=>C(()=>import("./sprinter-van-eld-DW0-1RZj.js"),[]),xF=R()({head:()=>({meta:[{title:qa.title},{name:"description",content:qa.description},{property:"og:title",content:qa.ogTitle},{property:"og:description",content:qa.ogDescription},...de("compliance","ELD Hub — FMCSA-registered ELD for vans and light trucks."),{property:"og:url",content:`https://goeldhub.com${qa.path}`},{property:"og:type",content:"article"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:`https://goeldhub.com${qa.path}`}],scripts:[{type:"application/ld+json",children:JSON.stringify($s(qa))}]}),component:A(wF,"component")}),EF=ti.find(e=>e.path==="/start-trucking-company-california");function qs(e){const t=`https://goeldhub.com${e.path}`;return{meta:[{title:`${e.title.slice(0,58)}`},{name:"description",content:e.description},{property:"og:title",content:e.title},{property:"og:description",content:e.description},{property:"og:type",content:"article"},{property:"og:url",content:t},{property:"og:image",content:"https://goeldhub.com/og-states.jpg"},{name:"twitter:image",content:"https://goeldhub.com/og-states.jpg"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:`How much does it cost to start a trucking company in ${e.state}
41?`,acceptedAnswer:{"@type":"Answer",text:e.quickAnswer}},{"@type":"Question",name:`Do I need intrastate authority in ${e.state}?`,acceptedAnswer:{"@type":"Answer",text:e.intrastate}}]})}]}}function iG({launch:e}){const t=ti.filter(n=>n.path!==e.path);return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-5xl px-6 py-14 sm:py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Kp,{className:"size-3.5"})," ",e.state," · New authority"]}),c.jsxs("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:["How to Start a Trucking Company in ",e.state]}),c.jsx(Ft,{question:`What does it cost to start a trucking company in ${e.state}?`,answer:e.quickAnswer}),c.jsx("div",{className:"mt-8",children:c.jsx(sa,{detail:`state_${e.abbr.toLowerCase()}`})}),c.jsx(Pr,{className:"mt-8"})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:[e.state," entity and registration facts"]}),c.jsx("dl",{className:"mt-6 grid gap-4 sm:grid-cols-2",children:[["LLC formation fee",e.llcFee],["Ongoing state cost",e.llcAnnual],["IRP / IFTA office",e.irpOffice],["Intrastate authority",e.intrastate]].map(([n,o])=>c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsx("dt",{className:"text-xs font-bold uppercase tracking-[0.16em] text-muted-foreground",children:n}),c.jsx("dd",{className:"mt-1.5 text-sm text-foreground",children:o})]},n))}),c.jsxs("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:["What is different about launching in ",e.state]}),c.jsx("div",{className:"mt-6 space-y-4",children:e.notes.map(n=>c.jsxs("div",{className:"flex gap-4 rounded-xl border border-border bg-card p-6",children:[c.jsx(Xc,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsxs("div",{children:[c.jsx("p",{className:"font-bold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1.5 text-sm text-muted-foreground",children:n.b})]})]},n.t))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"The federal filings, in order"}),c.jsx("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:yn.map(n=>c.jsxs(W,{to:n.path,className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsxs("p",{className:"font-semibold text-foreground",children:[n.label," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.summary})]},n.path))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Keep going"}),c.jsxs("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:[c.jsxs(W,{to:"/trucking-startup-cost-calculator",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Startup cost calculator →"}),c.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:["Year-one budget for a ",e.state," authority."]})]}),c.jsxs(W,{to:"/new-carrier-checklist",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"90-day launch checklist →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Every step from LLC to first load."})]}),e.eldPath?c.jsxs(W,{to:e.eldPath,className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsxs("p",{className:"font-semibold text-foreground",children:["ELD requirements in ",e.state," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"State rules, inspections and enforcement."})]}):null,c.jsxs(W,{to:"/new-authority-eld",className:"rounded-xl border border-border bg-card p-5 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"ELD for a new authority →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"What FMCSA expects from day one under your MC."})]})]}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Other states"}),c.jsx("div",{className:"mt-6 flex flex-wrap gap-3",children:t.map(n=>c.jsx(W,{to:n.path,className:"rounded-lg border border-border bg-card px-4 py-2 text-sm font-semibold text-foreground hover:border-accent",children:n.state},n.path))}),c.jsx("div",{className:"mt-12",children:c.jsx(sa,{detail:`state_${e.abbr.toLowerCase()}_footer`})})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}const SF=()=>C(()=>import("./start-trucking-company-california-BRJ64LcL.js"),[]),kF=R()({head:()=>qs(EF),component:A(SF,"component")}),DF=ti.find(e=>e.path==="/start-trucking-company-florida"),TF=()=>C(()=>import("./start-trucking-company-florida-CYeINmV2.js"),[]),LF=R()({head:()=>qs(DF),component:A(TF,"component")}),AF=ti.find(e=>e.path==="/start-trucking-company-georgia"),_F=()=>C(()=>import("./start-trucking-company-georgia-C2K4lbJ_.js"),[]),CF=R()({head:()=>qs(AF),component:A(_F,"component")}),RF=ti.find(e=>e.path==="/start-trucking-company-illinois"),IF=()=>C(()=>import("./start-trucking-company-illinois-DCplhh32.js"),[]),OF=R()({head:()=>qs(RF),component:A(IF,"component")}),$F=ti.find(e=>e.path==="/start-trucking-company-texas"),NF=()=>C(()=>import("./start-trucking-company-texas-vUd73LXG.js"),[]),HF=R()({head:()=>qs($F),component:A(NF,"component")}),PF={brand:"Stellar ELD",slug:"stellar-eld-login",loginUrl:"https://stellareld.com/",compareTo:"/best-eld-small-fleets",intro:"Stellar ELD sign-in problem? Work through the checks below. If the real issue is price or support response time, ELD Hub is an FMCSA-registered ELD at $15 per truck per month, month-to-month, and supports PT-30 and IOSiX hardware you may already own.",tips:[{t:"Username not recognized",b:"Driver accounts are created by the fleet admin and are often the driver's DL number or an internal ID rather than an email address. Confirm the exact username with your admin."},{t:"App stuck on 'connecting'",b:"Disable Wi-Fi so the phone commits to cellular data. Half-connected Wi-Fi in a yard is the most common cause of a hung sign-in."},{t:"Device not detected",b:"Check the model number on the sticker. OBD-II units on light trucks can back out of the port over rough road — reseat it and confirm the dash light comes on."},{t:"Unassigned driving time appears",b:"Claim or reject unassigned segments from the driver app before certifying the day. Uncertified days with open unassigned time are a common inspection finding."}],faqs:[{q:"Where is the Stellar ELD login?",a:"Stellar ELD operates at stellareld.com and issues driver logins through its mobile app. ELD Hub is not affiliated with Stellar ELD."},{q:"Can I keep my current device if I switch to ELD Hub?",a:"If the label reads PT30 (Pacific Track) or IOSiX, yes — ELD Hub re-registers those at no hardware cost. If it is a proprietary unit, you would need a PT-30 or IOSiX for $150 each with free shipping (PT-30 with cable; IOSiX device only)."},{q:"How does ELD Hub pricing compare?",a:"ELD Hub is a flat $15 per truck per month with 
41no contract and no setup fee. Many small providers quote a low monthly rate and then add IFTA or GPS as paid modules; ELD Hub includes them."},{q:"Is ELD Hub FMCSA-registered?",a:"Yes. You can verify ELD Hub and any competitor yourself on the FMCSA registry — we explain how on /fmcsa-registered-eld-list."},{q:"How fast can a one-truck authority get running?",a:"Same day. Create the account, add the truck and driver, pair the device, and run a test data transfer before your next dispatch."}]},jF=()=>C(()=>import("./stellar-eld-login-DtkCd69x.js"),[]),qF=R()({component:A(jF,"component"),head:()=>ge(PF)}),MF={brand:"Swift ELD",slug:"swift-eld-login",loginUrl:"https://swifteld.com/front-desk/#/login",compareTo:"/best-eld-small-fleets",intro:"Swift ELD sign-in link and fixes for locked accounts, password resets and Bluetooth pairing. While you are here: ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, 14 days free.",tips:[{t:"Sign-in page will not render",b:"The portal is at swifteld.com/front-desk/#/login. A blank screen is almost always a cached script — hard-refresh or use a private window."},{t:"Password reset loop",b:"Reset links expire fast. Request a new one and open it immediately in the same browser you requested it from."},{t:"App shows no connection",b:"Grant the app Bluetooth and location permission in the phone settings, then re-pair with the ignition on."},{t:"Unassigned driving time",b:"Claim or annotate unassigned segments from the portal weekly — inspectors flag a backlog faster than a single bad day."}],faqs:[{q:"What is the Swift ELD login URL?",a:"Fleet admins sign in at swifteld.com/front-desk/#/login. Drivers use the Swift ELD mobile app with credentials issued by their fleet manager."},{q:"Is ELD Hub cheaper?",a:"ELD Hub is $15 per truck per month with no contract, HOS, DVIR, IFTA and GPS included, and a 14-day free trial. Compare it against your current invoice per truck."},{q:"Do I have to buy new hardware?",a:"Not if you own a compatible PT-30 or IOSiX — ELD Hub can re-register it free after serial confirmation. Otherwise either new device is $150 with free shipping; PT-30 includes a cable, IOSiX is device only."}]},FF=()=>C(()=>import("./swift-eld-login-DcPZVsEI.js"),[]),UF=R()({component:A(FF,"component"),head:()=>ge(MF)}),BF=[{t:"Check your current contract",d:"Find your renewal/cancellation window. Most big-brand contracts auto-renew 30–60 days before term end — cancel in writing before that window closes."},{t:"Sign up for ELD Hub (free trial)",d:"Register in 3 minutes at $15/truck/month. No contract, cancel anytime. You keep your current ELD running during overlap."},{t:"Re-register your PT-30 or IOSiX device",d:"If your current provider uses PT-30 or IOSiX hardware, we re-register it to ELD Hub for free. No new hardware, no downtime."},{t:"Transfer historical logs",d:"Export the last 6 months of HOS logs from your old ELD (required by FMCSA). ELD Hub imports them — inspectors always see full history."},{t:"Onboard drivers (15 min)",d:"Drivers download the ELD Hub app, log in, and continue driving. We overlap old + new for 3–7 days so nothing goes dark."},{t:"Cancel the old provider",d:"Once your drivers are switched over and the overlap is clean, cancel the old contract in writing. Keep the confirmation."}],zF=[{q:"How do I switch ELD providers without downtime?",a:"Run both ELDs in parallel for 3–7 days. Drivers keep using the old device while the new one records in the background. Once logs match, cut the old one. ELD Hub handles the overlap logistics for free."},{q:"Will I get in trouble with the DOT for switching?",a:"No. FMCSA allows carriers to switch ELD providers any time. The only rule: you must retain the last 6 months of RODS. Export them from the old ELD before cancelling."},{q:"What if I'm locked into a 36-month contract with Motive or Samsara?",a:"Most 'contracts' have exit clauses for equipment failure, service issues, or business changes. ELD Hub's onboarding team helps you document grounds for early exit. Worst case, running both for 2–3 months while you serve the contract still saves money long-term."},{q:"Can I keep my current ELD hardware?",a:"Usually yes. PT-30, IOSiX, and most OBD-II ELD devices work with ELD Hub. We re-register the device seri
41al to our account with FMCSA — no cost, no reinstall."},{q:"How long does a full switch take?",a:"Registration: 3 minutes. Driver onboarding: 15 min per driver. Full cutover including old-provider cancellation: 7–10 days for most small fleets."},{q:"Do you help with the transfer or is it self-service?",a:"White-glove is free. Call 302-404-1177 — a real person walks you through export/import, driver setup, and cancellation timing. No support tier upsell."}],VF=()=>C(()=>import("./switch-eld-provider-DjuAYw76.js"),[]),GF={"@context":"https://schema.org","@graph":[{"@type":"HowTo",name:"How to Switch ELD Providers Without Downtime",description:"Step-by-step guide to switching from Motive, Samsara, EZ Logz, or TT ELD to ELD Hub without losing HOS logs or driver time.",step:BF.map((e,t)=>({"@type":"HowToStep",position:t+1,name:e.t,text:e.d}))},{"@type":"FAQPage",mainEntity:zF.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},WF=R()({head:()=>({meta:[{title:"Switch ELD Providers in 2026 — Zero-Downtime Guide"},{name:"description",content:"Step-by-step: switch from Motive, Samsara, EZ Logz, or TT ELD to ELD Hub with zero downtime. Keep your hardware, transfer logs, cancel the old contract."},{property:"og:title",content:"How to Switch ELD Providers Without Downtime"},{property:"og:description",content:"Zero-downtime ELD migration for small fleets. Keep your PT-30 or IOSiX hardware, transfer 6-month log history, cancel your old contract."},...de("default","ELD Hub — $15/mo unlocks the full fleet stack for small trucking fleets."),{property:"og:url",content:"https://goeldhub.com/switch-eld-provider"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/switch-eld-provider"}],scripts:[{type:"application/ld+json",children:JSON.stringify(GF)}]}),component:A(VF,"component")}),XF=[{q:"Is the trial really free?",a:"Yes — 14 days of ELD Hub software at no charge, counted from the day your first truck is activated. Hardware, if you buy any, is billed normally."},{q:"Do I need a credit card to start?",a:"Payment details are collected during registration so that billing can start automatically after the 14 free days. You are not charged for software during the trial, and you can cancel any time before it ends."},{q:"Can I keep the ELD device I already have?",a:"If it is a PT-30 or an IOSiX unit, yes. Both are provider-agnostic, FMCSA-registered devices. ELD Hub re-registers a device you already own at no cost, which usually takes about five minutes per truck."},{q:"What if I am still under contract with my current provider?",a:"Many carriers run both for a short overlap so nothing goes dark, then cancel at the end of their term. Our cancellation guides cover the notice window and fees for the major providers."},{q:"How much does ELD Hub cost after the trial?",a:"$15 per truck per month, flat, month-to-month. IFTA reporting, DVIRs, and the fleet dashboard are included — there are no add-on modules to buy."},{q:"How long does switching take?",a:"For a fleet under 20 trucks, most of the work is one afternoon: export logs, register, add devices, brief drivers. Trucks running PT-30 or IOSiX hardware have no shipping delay at all."}],YF=()=>C(()=>import("./switch-free-month-DzzR2Psm.js"),[]),e0="Switch ELD Providers — 14-Day Free Trial | ELD Hub",t0="Switching from another ELD provider? Try ELD Hub free for 14 days, then $15 per truck per month with no contract. Keep the PT-30 or IOSiX device you already own.",up="https://goeldhub.com/switch-free-month",KF=R()({component:A(YF,"component"),head:()=>({meta:[{title:e0},{name:"description",content:t0},{property:"og:title",content:e0},{property:"og:description",content:t0},{property:"og:type",content:"website"},{property:"og:url",content:up},...de("switch","Switch to ELD Hub and try it free for 14 days.")],links:[{rel:"canonical",href:up}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:XF.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Switch ELD — 14-Day Free Trial",item:up}]})}]})}),QF=()=>C(()=>import("./switch-now-DzqNVrx_.js"),[]),r0="Switch Your ELD — See Savings in 30 Seconds",n0="Pick your current ELD provider, keep your PT-30 or IOSiX device, and see exactly what you save at $15/truck/month with 
41no contract. No forms.",dp="https://goeldhub.com/switch-now",JF=R()({head:()=>({meta:[{title:r0},{name:"description",content:n0},{property:"og:title",content:r0},{property:"og:description",content:n0},{property:"og:type",content:"website"},{property:"og:url",content:dp},...de("switch","Switch your ELD to ELD Hub — $15 per truck per month, no contract.")],links:[{rel:"canonical",href:dp}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Switch Now",item:dp}]})}]}),component:A(QF,"component")}),ZF=()=>C(()=>import("./switch-savings-calculator-DChOyGzK.js"),__vite__mapDeps([23,3])),a0="ELD Switching Savings Calculator | ELD Hub",o0="Pick your current ELD provider and truck count to see what you would save on ELD Hub at $15 per truck per month — starting with a 14-day free trial.",hp="https://goeldhub.com/switch-savings-calculator",e4=R()({component:A(ZF,"component"),head:()=>({meta:[{title:a0},{name:"description",content:o0},{property:"og:title",content:a0},{property:"og:description",content:o0},{property:"og:type",content:"website"},{property:"og:url",content:hp},...de("comparison","Calculate what switching your ELD to ELD Hub saves per year.")],links:[{rel:"canonical",href:hp}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"ELD Switching Savings Calculator",item:hp}]})}]})}),t4={brand:"Terminal",slug:"terminal-eld-login",loginUrl:"https://dashboard.withterminal.com/sign-in",compareTo:"/best-eld-small-fleets",intro:"Signing in to Terminal (withterminal.com)? The dashboard link and the usual fixes are below. If you are here because the bill keeps climbing, ELD Hub is an FMCSA-registered ELD at $15 per truck per month, no contract, with 14 days free.",tips:[{t:"Dashboard link not working",b:"Fleet admins sign in at dashboard.withterminal.com/sign-in. Bookmark that exact address — marketing pages and app links drift apart over time."},{t:"Magic-link email never arrives",b:"Check spam, then confirm the address on file with your fleet admin. Links expire quickly, so request a fresh one and open it in the same browser."},{t:"Driver app will not pair",b:"Turn Bluetooth off and on, force-close the app, then re-pair with the ignition on. A cold engine start clears most pairing faults."},{t:"Driver shows no vehicle",b:"A driver can only log in once an admin assigns them to a vehicle and a home terminal in the dashboard."}],faqs:[{q:"What is the Terminal ELD login URL?",a:"Fleet admins sign in at dashboard.withterminal.com/sign-in. Drivers use the Terminal driver app with credentials issued by their fleet manager."},{q:"Is ELD Hub cheaper than Terminal?",a:"ELD Hub is $15 per truck per month, month-to-month, with HOS, DVIR, IFTA and GPS included and a 14-day free trial. Compare that against your current per-truck invoice before you renew."},{q:"Can I run both at the same time?",a:"Yes. The 14-day ELD Hub trial lets you run it alongside your current provider so nothing is at risk while you compare."}]},r4=()=>C(()=>import("./terminal-eld-login-C35CHIMN.js"),[]),n4=R()({component:A(r4,"component"),head:()=>ge(t4)}),a4=()=>C(()=>import("./terms-and-conditions-C_CIU0Lc.js"),[]),o4=R()({head:()=>({meta:[{title:"Terms and Conditions — ELD HUB"},{name:"description",content:"Terms governing use of ELD HUB services, subscriptions, third-party providers, disclaimers, liability, and binding arbitration."},{property:"og:title",content:"Terms and Conditions — ELD HUB"},{property:"og:description",content:"Terms governing your use of the ELD HUB platform, subscriptions, and connected services."},{property:"og:url",content:"https://goeldhub.com/terms-and-conditions"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/terms-and-conditions"}]}),component:A(a4,"component")}),i4={brand:"Trimble",slug:"trimble-eld-login",loginUrl:"https://transportation.trimble.com/",compareTo:"/best-eld-small-fleets",intro:"Trimble login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with 
41no contract. Trimble's in-cab units are enterprise hardware with a 20-truck practical minimum.",tips:[{t:"Several portals under one brand",b:"Trimble absorbed PeopleNet and Innovative; the right sign-in page depends on which product your contract names."},{t:"Corporate SSO breaks the session",b:"Enterprise accounts inherit your company password policy — a domain password change signs you out."},{t:"In-cab display frozen",b:"A mounted display reset is required; ignition cycling alone rarely clears it."},{t:"Account lockouts",b:"Only the fleet administrator can unlock a Trimble account."}],faqs:[{q:"Where do I log in to Trimble transportation products?",a:"Through the specific product portal on your contract — PeopleNet and Innovative accounts were folded into Trimble and kept separate sign-in pages."},{q:"Is Trimble practical for a small carrier?",a:"It is priced and provisioned for large fleets; published list pricing is near $48 per truck per month on a 36-month term."},{q:"Can Trimble hardware move providers?",a:"No — the in-cab units are proprietary."},{q:"What does ELD Hub cost instead?",a:"$15 per truck per month, no contract, and a 14-day free trial to start."}]},s4=()=>C(()=>import("./trimble-eld-login-tIZgVlTY.js"),[]),l4=R()({component:A(s4,"component"),head:()=>ge(i4)}),c4=()=>C(()=>import("./trucking-startup-cost-calculator-BKzWokW0.js"),__vite__mapDeps([24,3])),i0="Trucking Startup Cost Calculator (2026) | ELD Hub",pp="Estimate what it really costs to start a trucking company: LLC, USDOT, MC authority, BOC-3, insurance, IRP, IFTA, UCR, drug consortium and ELD, itemized for your state and truck count.",u4=R()({head:()=>({meta:[{title:i0},{name:"description",content:pp},{property:"og:title",content:i0},{property:"og:description",content:pp},{property:"og:type",content:"website"},{property:"og:url",content:"https://goeldhub.com/trucking-startup-cost-calculator"},{property:"og:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:image",content:"https://goeldhub.com/og-compliance.jpg"},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:"https://goeldhub.com/trucking-startup-cost-calculator"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebApplication",name:"Trucking Startup Cost Calculator",applicationCategory:"BusinessApplication",operatingSystem:"Web",url:"https://goeldhub.com/trucking-startup-cost-calculator",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},description:pp})}]}),component:A(c4,"component")}),d4={brand:"TT ELD",slug:"tteld-login",loginUrl:"https://v3.tteld.com/",compareTo:"/vs/tteld-vs-eld-hub",intro:"Trying to log in to TT ELD but running into issues? Here are common fixes — and if you're tired of dealing with them, ELD Hub runs on the same PT-30 hardware with a modern app and US-based phone support.",tips:[{t:"Wrong login URL",b:"TT ELD's driver portal is at v3.tteld.com. The old v2 URL redirects, but bookmark v3 to be safe."},{t:"App won't pair with PT-30",b:"Bluetooth pairing on TT ELD's app is a common driver complaint. Reboot the phone, restart Bluetooth, and re-open the app. If it persists, the PT-30 firmware may need an update from a reseller."},{t:"Forgot password",b:"Use the reset link on the login page. Reset emails sometimes take 5–10 minutes and can land in spam."},{t:"Fleet manager locked out",b:"Only your fleet admin or the reseller can reset admin credentials. Reach out to whoever sold you the TT ELD subscription."}],faqs:[{q:"What's the TT ELD login URL?",a:"The current TT ELD driver and fleet portal is at v3.tteld.com. Some older documentation still references v2, which now redirects."},{q:"Why is TT ELD login slow?",a:"TT ELD's platform hasn't been redesigned in several years and drivers frequently report slow load times and Bluetooth pairing issues, especially on older Android devices. Rebooting the app usually helps."},{q:"Can I switch to ELD Hub and keep my PT-30?",a:"Often yes. Call ELD Hub with your PT-30 serial number so we can confirm free re-registration before cancelling. If it cannot transfer, a new PT-30 or IOSiX is $150 each with free shipping. PT-30 includes a cable; IOSiX is device only."},{q:"Is ELD Hub cheaper than TT ELD?",a:"Both are around $15/truck. ELD Hub bundles IFTA, freight tools, and dispatch at that price. TT ELD charges for most of those separately."},{q:"How do I contact TT ELD support?",a:"TT ELD support is reseller-dependent — check with whoever sold you the subscription. If direct US-based phone support matters to you, ELD Hub's line is 302-404-1177."}]},h4=()=>C(()=>import("./tteld-login-D6vn1opO.js"),[]),p4=R()({component:A(h4,"component"),head:()=>ge(d4)}),f4=yn.find(e=>e.path==="/ucr-filing"),m4=()=>C(()=>import("./ucr-filing-DJPTrJaE.js"),[]),g4=R()({head:()=>ri(f4),component:A(m4,"component")}),y4=yn.find(e=>e.path==="/usdot-number"),b4=()=>C(()=>import("./usdot-number-DyrwefVZ.js"),[]),v4=R()({head:()=>ri(y4),component:A(b4,"component")}),w4={brand:"Verizon Connect",slug:"verizon-connect-login",loginUrl:"https://www.verizonconnect.com/login/",compareTo:"/best-eld-small-fleets",intro:"Verizon Connect login trouble? Here are the fixes that work, plus what it costs to move to ELD Hub — an FMCSA-registered ELD at $15 per truck per month with 
41no contract. Verizon Connect Reveal hardware is proprietary; switching means new devices.",tips:[{t:"Multiple Verizon portals",b:"Reveal, Fleet, and legacy Fleetmatics accounts each have their own sign-in page. Use the link on your invoice if the main login rejects you."},{t:"Account locked after failed attempts",b:"Verizon Connect locks accounts quickly; only your account administrator can unlock them."},{t:"Driver app cannot find the vehicle",b:"Vehicle assignment is controlled in the Reveal dashboard by an admin, not by the driver."},{t:"Reset link expired",b:"Reset links are short-lived. Request one and open it immediately."}],faqs:[{q:"What is the Verizon Connect login URL?",a:"The main sign-in page is verizonconnect.com/login. Reveal, Fleet, and legacy Fleetmatics accounts have separate portals — check your invoice for the right one."},{q:"Does Verizon Connect charge a cancellation fee?",a:"Verizon Connect agreements are typically 36 months and cancellation terms are contract-specific. Read your agreement before you switch."},{q:"Can I reuse Verizon Connect hardware?",a:"No. Reveal units are proprietary to the platform."},{q:"What does ELD Hub cost?",a:"$15 per truck per month with no contract and no cancellation fee. Every account starts with a 14-day free trial."}]},x4=()=>C(()=>import("./verizon-connect-login-C7V2od7s.js"),[]),E4=R()({component:A(x4,"component"),head:()=>ge(w4)}),S4={brand:"Vista ELD",slug:"vista-eld-login",loginUrl:"https://vistaeld.com/",compareTo:"/best-eld-small-fleets",intro:"Vista ELD login trouble? Try the fixes below. If you're evaluating a switch, ELD Hub is a $15/truck FMCSA-registered platform with IFTA, freight, factoring, and fuel discounts built into one subscription.",tips:[{t:"Portal shows 'session expired'",b:"Vista ELD sessions time out fast. Log back in with a fresh browser tab; disable ad blockers on vistaeld.com if the loop continues."},{t:"App won't sync logs",b:"Confirm Bluetooth and phone data are both on. Sync failures almost always come from Bluetooth being toggled off."},{t:"PT-30 not detected",b:"Vista ELD runs on the PT-30 device. Unplug, wait 30 seconds, plug back in, then re-pair."},{t:"Reset email missing",b:"Vista reset emails frequently hit spam. Whitelist the sending domain to avoid missing them again."}],faqs:[{q:"Where do I log in to Vista ELD?",a:"The Vista ELD fleet portal is at vistaeld.com. Drivers sign in through the Vista ELD mobile app on iOS or Android."},{q:"Is Vista ELD compatible with PT-30?",a:"Yes — Vista ELD uses the PT-30 device. That means switching to another PT-30-compatible platform like ELD Hub is fast."},{q:"Can I switch from Vista ELD to ELD Hub?",a:"Yes, same-day. Keep the PT-30 hardware, get new credentials, drivers log in — done."},{q:"How is ELD Hub different from Vista?",a:"Flat $15/truck, no contract, US-based phone support, and IFTA + freight tools bundled instead of billed as add-ons."},{q:"Any setup fees?",a:"No. Registration is free; you only pay the monthly $15/truck after your trucks are live."}]},k4=()=>C(()=>import("./vista-eld-login-BCGf3XaK.js"),[]),D4=R()({component:A(k4,"component"),head:()=>ge(S4)}),T4={slug:"what-is-an-eld",eyebrow:"ELD basics",h1:"What Is an ELD? Electronic Logging Devices Explained",intro:"An electronic logging device (ELD) is the hardware and software that automatically records a commercial driver's Hours of Service. This guide explains what an ELD does, who has to run one, what it costs in 2026, and how to pick one if you run 20 trucks or fewer.",metaTitle:"What Is an ELD? Plain-English Guide (2026)",metaDescription:"An ELD records a truck driver's Hours of Service automatically from the engine. What ELDs do, who must use one, what they cost in 2026, and how small fleets choose.",ogCategory:"compliance",ogAlt:"What is an ELD — electronic logging device explained for truck drivers.",quickAnswer:{question:"What is an ELD?",answer:"An ELD (electronic logging device) is an FMCSA-registered device that plugs into a truck's diagnostic port and records driving time, engine hours, miles, and location automatically, replacing paper logbooks. Most interstate commercial drivers must use one. Small-fleet ELD software runs $15 to $45 per truck per month."},sections:[{h2:"What an ELD actually does",body:"An ELD is two parts w
41orking together: a small device plugged into the truck's diagnostic port, and an app the driver signs into. The device reads the engine control module directly, so it knows when the truck is moving without the driver touching anything. The app turns that data into a compliant record of duty status.",bullets:["Records driving time automatically the moment the truck moves above about 5 mph","Captures engine hours, odometer miles, and GPS location at each duty-status change","Lets the driver annotate, certify, and edit non-driving time (driving time cannot be erased)","Transfers the last 8 days of logs to a DOT officer by email, web services, Bluetooth, or USB","Warns the driver before an 11-hour or 14-hour limit is broken"]},{h2:"ELD vs AOBRD vs paper logs",body:"Paper logs were replaced by AOBRDs (automatic on-board recording devices), and AOBRDs were fully phased out on December 16, 2019. Only FMCSA-registered ELDs are legal for drivers who are required to keep records of duty status. The practical difference is tamper resistance: an ELD locks driving time, forces an audit trail on every edit, and standardizes the roadside data transfer format."},{h2:"Who has to use an ELD",body:"The rule applies to most drivers who are required to keep records of duty status under 49 CFR Part 395 — generally commercial motor vehicles over 10,001 lbs, or those carrying placarded hazmat or 9+ passengers, operating in interstate commerce. There are narrow exemptions, including trucks with a pre-2000 engine, short-haul drivers who stay within the 150 air-mile radius and return to base within 14 hours, and driveaway-towaway operations."},{h2:"What ELD hardware looks like",body:"Most small-fleet ELDs use a plug-in OBD-II or 9-pin device about the size of a deck of cards. The two devices that dominate the small-fleet market are the PT-30 (Pacific Track) and IOSiX units — both are provider-configurable, which is why you can usually keep the hardware when you change ELD companies. Installation takes under ten minutes and does not require a mechanic.",bullets:["Light and medium-duty trucks: OBD-II port under the dash","Heavy-duty trucks: 9-pin or 6-pin Deutsch connector","Bluetooth pairs the device with the driver's phone or tablet","ELD Hub sells PT-30 and IOSiX for $150 each with free shipping (PT-30 includes a cable; IOSiX is device only), and re-registers compatible devices you already own free"]},{h2:"What an ELD costs in 2026",body:"Across the 15 providers in our market report, software runs $15 to $45 per truck per month and hardware runs $100 to $250 per device. Three-year total cost of ownership ranges from about $690 to $1,820 per truck. The biggest cost driver is not the device — it is contract length and paid add-ons like IFTA reporting, which some providers bill separately even though the ELD already collects the mileage data."},{h2:"How to choose an ELD for a small fleet",body:"For an owner-operator or a fleet under 20 trucks, the deciding factors are almost never advanced telematics. They are price, contract terms, whether IFTA and DVIRs are included, how fast a human answers the phone during a roadside inspection, and whether the device is one you can keep if you leave.",bullets:["Confirm the provider is on the official FMCSA registered ELD list","Ask what happens on cancellation — six of 15 major providers charge 50 to 100% of the remaining contract","Check whether IFTA fuel-tax reporting is included or billed as an add-on","Ask whether the hardware is provider-locked or re-registerable","Test the support line before you sign, not during an inspection"]}],table:{caption:"ELD requirement at a glance",headers:["Situation","ELD required?","Notes"],rows:[["Interstate CMV over 10,001 lbs","Yes","Standard case — RODS required, so an ELD is required"],["Truck with a pre-2000 engine","No","Engine-model-year exemption; paper logs allowed"],["Short-haul within 150 air miles","No","Must return to base within 14 hours and use time cards"],["Driveaway-towaway operation","No","The vehicle itself is the commodity being delivered"],["Fewer than 8 RODS days in 30","No","The occasional-driver exception; paper logs allowed on those days"],["Placarded hazmat, any weight","Yes","Hazmat placard triggers CMV status regardless of weight"]]},faqs:[{q:"What does ELD stand for?",a:"ELD stands for electronic logging device. It is the FMCSA's term for hardware and software that automatically records a commercial driver's Hours of Service by reading data directly from the truck's engine."},{q:"Is an ELD the same as GPS tracking?",a:"No, though most ELDs include GPS. An ELD's legal purpose is recording Hours of Service; GPS location is captured at duty-status changes and roughly every 60 minutes of driving. Full fleet tracking is a separate feature that some providers charge extra for. ELD Hub includes it in the $15 per truck per month plan."},{q:"Can I install an ELD myself?",a:"Yes. Plug-in OBD-II and 9-pin devices like the PT-30 install in under ten minutes with no tools and no mechanic. You plug the device into the diagnostic port, pair it with the driver app over Bluetooth, and the truck is compliant."}
41,{q:"What is the cheapest legal ELD?",a:"ELD Hub software is $15 per truck per month with no contract and IFTA, DVIRs, and GPS included. New PT-30 and IOSiX hardware cost $150 each with free shipping; PT-30 includes a cable and IOSiX is device only."},{q:"What happens if a driver has no ELD?",a:"Operating without a required ELD is a violation that can put the driver out of service for 10 hours, add CSA points, and carry fines that commonly run into the thousands per occurrence. Repeat false-log findings escalate quickly during an audit."},{q:"Do ELDs work without cell service?",a:"Yes. The device keeps recording and the app stores logs locally, then syncs when the phone regains signal. Roadside transfer by USB or Bluetooth also works with no connectivity."}],related:[{to:"/eld-mandate-guide",label:"The FMCSA ELD mandate",note:"Rule text, deadlines, and enforcement in plain language."},{to:"/hours-of-service",label:"Hours of Service rules",note:"The 11, 14, 30-minute, and 60/70-hour limits explained."},{to:"/eld-pricing",label:"ELD pricing",note:"What $15/truck/month covers and how it compares."},{to:"/hardware",label:"ELD hardware",note:"PT-30 and IOSiX devices, ports, and installation."},{to:"/eld-exemptions",label:"ELD exemptions",note:"Who is legally allowed to skip the ELD."},{to:"/best-eld-small-fleets",label:"Best ELD for small fleets",note:"How to choose when you run 1 to 20 trucks."}],ctaHeadline:"Get compliant for $15/truck/month",ctaSubhead:"FMCSA-registered ELD with HOS logs, DVIRs, IFTA, and GPS included. No contract, no setup fee. Buy PT-30 or IOSiX for $150 each with free shipping (PT-30 with cable, IOSiX device only), or re-register a compatible device you own free.",breadcrumbName:"What is an ELD"},L4=()=>C(()=>import("./what-is-an-eld-DxGBo1i4.js"),[]),A4=R()({component:A(L4,"component"),head:()=>js(T4)}),_4={brand:"X ELD",slug:"x-eld-login",loginUrl:"https://xeld.us/",compareTo:"/best-eld-small-fleets",intro:"Looking for your X ELD login? The portal link is below. If support has been slow or the bill keeps creeping up, ELD Hub runs on the same PT-30 hardware you already own for a flat $15/truck/month with no contract.",tips:[{t:"X ELD portal won't load?",b:"Clear cookies for the provider's domain and retry in a private window. If the account is suspended for non-payment, only their billing team can restore access."},{t:"Forgot your password?",b:"Only your fleet admin can reset driver credentials in X ELD. Drivers cannot self-serve a reset from the app."},{t:"Device stopped syncing?",b:"The PT-30 is provider-agnostic and FMCSA-registered. If you leave X ELD, you re-register the same device to ELD Hub in about five minutes — no new hardware."},{t:"Log missing before an inspection?",b:"Export the last 6 months of RODS now — FMCSA requires you to retain them regardless of which provider you use."}],faqs:[{q:"What is the X ELD login page?",a:"The X ELD fleet portal is at https://xeld.us/. Drivers sign in through the X ELD mobile app with credentials issued by their fleet administrator."},{q:"Is ELD Hub cheaper than X ELD?",a:"ELD Hub is a flat $15 per truck per month with no contract, and IFTA, DVIRs, and dispatch tools are included. Most small fleets report paying more than that with X ELD once add-ons are counted."},{q:"Can I move my PT-30 from X ELD to ELD Hub?",a:"Yes. The PT-30 is a standard FMCSA-registered ELD device that works across providers. ELD Hub re-registers a PT-30 you already own at no cost — about five minutes per truck."},{q:"Will my log history transfer?",a:"FMCSA requires you to retain the last 6 months of records of duty status. Export them from X ELD before your account closes; ELD Hub starts fresh on activation day, which is standard for any ELD switch."}],keepHardware:"PT-30"},C4=()=>C(()=>import("./x-eld-login-DeQYFgj8.js"),[]),R4=R()({head:()=>ge(_4),component:A(C4,"component")}),I4=R()({loader:()=>{throw ea({href:"/blog",statusCode:301})}}),UE=Ga({method:"GET"}).handler(Rs("05f3ad5524d174c2f82816d6ee128ffd86971978f58f7a900fe6be198538c616")),O4=Ga({method:"GET"}).handler(Rs("e52db0cca892a02d6f7b82e0d68083d800bb2b11c226a428786b072c420a5f12")),BE=Ga({method:"GET"}).handler(Rs("300d0367c868d019509751a99972096305abe1626ec63a309f94dbd5f4735909"));function sG(e){return e.toLowerCase().replace(/&/g,"and").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}const $4={queryKey:["blog","posts","all"],queryFn:()=>UE({data:{limit:100}})},N4={queryKey:["blog","categories"],queryFn:()=>BE()},H4=()=>C(()=>import("./blog.index-DEc7zWp9.js"),[]),P4=()=>C(()=>
41import("./blog.index-BtYEK_VF.js"),__vite__mapDeps([25,26,27])),j4=R()({head:()=>({meta:[{title:"ELD & Trucking Blog for Small Fleets — Guides That Save Money"},{name:"description",content:"Plain-English guides for fleets under 20 trucks: ELD rules and deadlines, what switching providers really costs, IFTA filing, factoring, and fuel savings. New post most days."},{property:"og:title",content:"ELD & Trucking Blog for Small Fleets"},{property:"og:description",content:"Plain-English ELD, compliance, and cost guides for small trucking fleets. New post most days."},{property:"og:type",content:"website"},{property:"og:url",content:"https://goeldhub.com/blog"}],links:[{rel:"canonical",href:"https://goeldhub.com/blog"}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Blog",name:"ELD Hub Blog",url:"https://goeldhub.com/blog",description:"ELD compliance, IFTA, factoring, and fuel-cost guides for trucking fleets under 20 trucks.",publisher:{"@type":"Organization",name:"ELD Hub",url:"https://goeldhub.com/"}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://goeldhub.com/blog"}]})}]}),loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData($4),e.queryClient.ensureQueryData(N4)])},component:A(P4,"component"),errorComponent:A(H4,"errorComponent")}),q4=e=>({queryKey:["blog","post",e],queryFn:()=>O4({data:{slug:e}})}),M4={"what-is-cab-card-trucking-a-guide-for-owner-operators-en":"/eld-cab-card","cdl-requirements-explained-your-2026-first-timer-guide-en":"/hos-rules","drug-and-alcohol-testing-in-trucking-2026-compliance-guide-en":"/hos-rules","common-trucking-compliance-penalties-a-small-fleet-guide-en":"/eld-violations-penalties","trucking-compliance-management-workflow-guide-en":"/eld-violations-penalties","trucking-fleet-safety-best-practices-2026-guide-en":"/dot-inspection-eld","trucking-compliance-audit-checklist-for-2026-en":"/dot-inspection-eld","what-is-a-trucking-safety-program-for-small-fleets-en":"/dot-inspection-eld","eld-compliance-small-fleets-guide":"/eld-mandate-guide","eld-costs-how-much-should-you-budget-for-electronic-logging":"/eld-pricing","benefits-of-trucking-free-trials-for-small-fleets-en":"/eld-pricing","how-to-choose-best-eld":"/best-eld-small-fleets","apexeld-com-alternatives-3-en":"/best-eld-small-fleets","optimaeld-com-alternatives-4-en":"/best-eld-small-fleets","trendyeldcom-alternatives-3-en":"/best-eld-small-fleets","bigroad-com-eld-alternatives-5-en":"/best-eld-small-fleets","trucking-business-licensing-explained-for-startups-en":"/how-to-start-trucking-company","trucking-business-expense-tracking-2026-guide-en":"/how-to-start-trucking-company","truckdrivingschoolhq-com-alternatives-5-en":"/how-to-start-trucking-company","what-is-owner-operator-trucking-your-2026-career-guide-en":"/owner-operator-eld"},F4={"driver-onboarding-process-trucking-a-small-fleet-guide-en":"how-to-solve-the-driver-shortage-in-2025","driver-recruiting-for-small-trucking-companies-2026-guide-en":"how-to-solve-the-driver-shortage-in-2025","driver-recruiting-workflow-for-fleet-managers-2026-guide-en":"how-to-solve-the-driver-shortage-in-2025","fleet-management-dashboard-explained-for-trucking-owners-en":"telematics-small-trucking-companies","fleet-management-software-benefits-for-owners-and-managers-en":"telematics-small-trucking-companies","freight-market-trends-2026-what-logistics-pros-must-know-en":"rfp-freight-a-smarter-way-to-understand-the-freight-market","spot-rate-vs-contract-rate-trucking-2026-guide-en":"rfp-freight-a-smarter-way-to-understand-the-freight-market","what-is-a-freight-broker-a-guide-for-truckers-en":"rfp-freight-a-smarter-way-to-understand-the-freight-market","trucking-accessorial-charges-explained-for-fleet-owners-en":"rfp-freight-a-smarter-way-to-understand-the-freight-market","factoring-rates-for-truckers-what-you-need-to-know-en":"trucking-factoring-guide-costs-risks-alternatives","factoring-receivables-for-owner-operators-2026-guide-en":"trucking-factoring-guide-costs-risks-alternatives","primary-liability-insurance-for-trucking-2026-guide-en":"how-small-trucking-companies-can-save-money-on-insurance-costs-in-2025","real-examples-of-trucking-cost-savings-for-fleets-en":"reduce-trucking-operational-costs","maximizing-fleet-fuel-efficiency-022cf":"maximizing-fleet-efficiency-tips"},U4={"eld-compliance":"/eld-mandate-guide",factoring:"/blog/trucking-factoring-guide-costs-risks-alternatives","fuel-saving":"/fuel-savings","fuel-savings":"/fuel-savings",loans:"/how-to-start-trucking-company","cdl-drivers":"/hos-rules","insurance-solutions-for-trucking-companies":"/blog/how-small-trucking-companies-can-save-money-on-insurance-costs-in-2025","software-development":"/"},B4=()=>C(()=>import("./blog._slug-Dd6PZWhF.js"),[]),z4=()=>C(()=>import("./blog._slug-Kk56H9qS.js"),[]),V4=()=>C(()=>import("./blog._slug-BcL8aE6B.js"),__vite__mapDeps([28,26,27,29]));function G4(e){const t=" — ELD HUB",n=e.replace(/\s+/g," ").trim();if(n.length+t.length<=60)return n+t;let o=n.split(/\s*[:(–—|]\s*/)[0].trim();return(o.length>60||o.length<25)&&(o=n),o.length<=60?o:`${o.slice(0,57).replace(/[\s,;.-]+\S*$/,"")}…`}const W4=R()({loader:async({context:e,params:t})=>{const n=M4[t.slug];if(n)throw ea({href:n,statusCode:301});const o=F4[t.slug];if(o)throw ea({to:"/blog/$slug",params:{slug:o},statusCode:301});const s=await e.queryClient.ensureQueryData(q4(t.slug));if(s.redirectTo)throw ea({to:"/blog/$slug",params:{slug:s.redirectTo},statusCode:301});if(!s.post)throw AD();return s.post},head:({loaderData:e})=>
41{if(!e)return{meta:[{title:"Post not found — ELD HUB"},{name:"robots",content:"noindex"}]};const t=e,n=t.excerpt&&t.excerpt.length>=50?t.excerpt:`${t.title} — insights and guidance for small trucking fleets from the ELD HUB team.`;return{meta:[{title:G4(t.title)},{name:"description",content:n},{property:"og:title",content:t.title},{property:"og:description",content:n},{property:"og:type",content:"article"},{property:"og:url",content:`https://goeldhub.com/blog/${t.slug}`},{property:"article:published_time",content:t.published_at},...t.category?[{property:"article:section",content:t.category}]:[],...t.cover_image_url?[{property:"og:image",content:t.cover_image_url},{name:"twitter:image",content:t.cover_image_url},{name:"twitter:card",content:"summary_large_image"}]:[]],links:[{rel:"canonical",href:`https://goeldhub.com/blog/${t.slug}`}]}},component:A(V4,"component"),notFoundComponent:A(z4,"notFoundComponent"),errorComponent:A(B4,"errorComponent")}),X4=[{q:"Can I get freight factoring with less than 6 months of MC authority?",a:"Yes. Most brand-name factors quietly require 6–12 months of authority or hit new carriers with 3–4% rates and reserves. ELD HUB partners with OTR Solutions, which underwrites brand new MC numbers at a flat 1–2% with same-day funding — no time-in-business minimum."},{q:"What's the real factoring rate for a new authority?",a:"Sticker rates from 1.5% to 4% are common, but the true cost includes reserves (5–15% of invoice held back), ACH fees ($15–30 per transfer), and 12-month contracts with cancellation penalties. ELD HUB is a flat 1–2% on gross with zero reserves, zero ACH fees, and no cancellation penalty."},{q:"Recourse vs non-recourse — which should a new authority pick?",a:"Non-recourse: the factor absorbs the credit risk if the broker doesn't pay (on brokers they pre-approved). Recourse: you buy the invoice back if the broker skips. New authorities should default to non-recourse — you don't yet know which brokers are shaky, and one skip on recourse can wipe out weeks of margin."},{q:"How fast can I actually get funded on my first load?",a:"With ELD HUB / OTR Solutions, verified invoices fund within 24 hours — often same day if submitted before 2pm CT. Some new-authority factors add a 3–5 day 'first invoice review' delay; we don't."},{q:"What paperwork do I need to start factoring as a new authority?",a:"MC/DOT authority, EIN, business bank account (any bank), a voided check, and W-9. That's it. No tax returns, no personal FICO check, no time-in-business proof. Approval typically in 24–48 hours."},{q:"Will factoring hurt my credit or count as debt?",a:"No. Factoring is invoice financing, not a loan. It doesn't appear on your business credit report as debt and doesn't affect your DTI ratio when you later apply for equipment financing or a line of credit."},{q:"Can I switch factoring companies later if I outgrow this one?",a:"Yes, but read your contract first. Most brand-name factors have UCC filings and 30–60 day notice periods. ELD HUB is month-to-month with 
41no UCC lock-in — switch any time."}],Y4=()=>C(()=>import("./blog.factoring-comparison-new-authorities-CYPRwHlL.js"),[]),K4={"@context":"https://schema.org","@graph":[{"@type":"Article",headline:"Best Factoring Companies for New Authorities (MC < 6 Months) — 2026 Comparison",description:"Side-by-side comparison of freight factoring companies that accept motor carriers with less than 6 months of MC authority. Rates, reserves, contract terms, and funding speed.",author:{"@type":"Organization",name:"ELD HUB"},publisher:{"@type":"Organization",name:"ELD HUB",logo:{"@type":"ImageObject",url:"https://goeldhub.com/android-chrome-512x512.png"}},mainEntityOfPage:"https://goeldhub.com/blog/factoring-comparison-new-authorities"},{"@type":"FAQPage",mainEntity:X4.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},Q4=R()({head:()=>({meta:[{title:"Best Factoring Companies for New Authorities (MC < 6 Months) — 2026"},{name:"description",content:"Compare freight factoring companies that accept new motor carriers with less than 6 months of MC authority. Rates, reserves, funding speed, contracts side-by-side."},{property:"og:title",content:"Factoring Comparison for New Authorities — 2026"},{property:"og:description",content:"Side-by-side factoring rates, reserves, and contract terms for carriers with new MC numbers."},{property:"og:url",content:"https://goeldhub.com/blog/factoring-comparison-new-authorities"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/blog/factoring-comparison-new-authorities"}],scripts:[{type:"application/ld+json",children:JSON.stringify(K4)}]}),component:A(Y4,"component")}),J4=[{title:"Form your LLC",time:"1–7 days",cost:"$50–$500",detail:"File with your state's Secretary of State. Get an EIN from IRS.gov (free, 10 minutes)."},{title:"Get a USDOT number",time:"Same day",cost:"Free",detail:"Register at FMCSA's Unified Registration System (URS). Free — anyone charging you is a middleman."},{title:"File form OP-1 (MC Authority)",time:"20–25 business days",cost:"$300",detail:"This is the actual operating authority. Filed through URS. Approval publishes in the FMCSA Register."},{title:"Get BOC-3 process agent",time:"Same day",cost:"$20–$50",detail:"Required in all 50 states. A blanket BOC-3 provider files for you online in an hour."},{title:"Buy primary insurance ($1M auto liability)",time:"3–7 days",cost:"$8K–$16K/yr",detail:"Insurance certificate must be filed to FMCSA before authority activates. Get 3+ quotes."},{title:"UCR registration",time:"Same day",cost:"$41 (1–2 trucks)",detail:"Renewed annually. Required in all UCR states before you cross state lines."},{title:"IFTA + IRP (state)",time:"5–15 days",cost:"$200–$500",detail:"Base state fuel tax + apportioned plate. Apply through your home state DOT."},{title:"Heavy Vehicle Use Tax (Form 2290)",time:"Same day",cost:"$100–$550",detail:"Filed to IRS for trucks 55,000 lbs+. Get stamped Schedule 1 to register your plate."},{title:"Install a DOT-compliant ELD",time:"30 minutes",cost:"$15/mo (ELD HUB)",detail
41:"Required before your first commercial haul. Must be on the FMCSA registered list."},{title:"Drug & alcohol testing consortium",time:"Same day",cost:"$50–$150/yr",detail:"Every CDL driver — including owner-operators — must be in a random testing pool."}],Z4=[{q:"How long does it take to get MC authority from start to finish?",a:"Realistically 4–6 weeks. FMCSA has a 21-day protest period after filing OP-1 before authority activates. The bottleneck is insurance filing (BMC-91) and BOC-3 — both must be on file before FMCSA grants active status."},{q:"Do I need a CDL to get MC authority?",a:"The company doesn't need a CDL — but whoever drives the truck does. You can own an authority as a non-driver and hire CDL drivers, or drive it yourself if you hold a Class A."},{q:"Can I use a home address for my MC authority?",a:"Yes. Most 1-truck operations register at a home address. You'll need a physical address (not just a PO box) for the FMCSA record and a mailing address for the BOC-3 agent."},{q:"What's the difference between DOT number and MC number?",a:"USDOT identifies your safety record and is free. MC (Motor Carrier) authority is what lets you haul regulated interstate freight for hire — that's the $300 OP-1 filing."},{q:"Do I need MC authority for intrastate hauling only?",a:"No — but you still need a USDOT number and state-level operating authority in most states. MC is federal, required only when you cross state lines for hire."}],eU=()=>C(()=>import("./blog.get-mc-authority-checklist-B5j_lkB0.js"),[]),tU={"@context":"https://schema.org","@graph":[{"@type":"Article",headline:"How to Get MC Authority: 10-Step Checklist for New Trucking Companies (2026)",description:"Complete FMCSA filing checklist: LLC, DOT, OP-1, BOC-3, insurance, UCR, IFTA/IRP, HVUT, ELD — with real costs and timelines.",author:{"@type":"Organization",name:"ELD HUB"},publisher:{"@type":"Organization",name:"ELD HUB",logo:{"@type":"ImageObject",url:"https://goeldhub.com/android-chrome-512x512.png"}},mainEntityOfPage:"https://goeldhub.com/blog/get-mc-authority-checklist"},{"@type":"HowTo",name:"Get MC Authority",step:J4.map((e,t)=>({"@type":"HowToStep",position:t+1,name:e.title,text:e.detail}))},{"@type":"FAQPage",mainEntity:Z4.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},rU=R()({head:()=>({meta:[{title:"How to Get MC Authority: 10-Step Checklist (2026)"},{name:"description",content:"Complete FMCSA filing checklist for new trucking authorities: LLC, DOT, OP-1, BOC-3, insurance, IFTA, ELD. Real costs and timelines."},{property:"og:title",content:"MC Authority Checklist — 10 Steps for 2026"},{property:"og:description",content:"Every FMCSA filing and license you need to legally operate a trucking company, in order, with cost and timeline."},{property:"og:url",content:"https://goeldhub.com/blog/get-mc-authority-checklist"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/blog/get-mc-authority-checklist"}],scripts:[{type:"application/ld+json",children:JSON.stringify(tU)}]}),component:A(eU,"component")}),nU=[{q:"What's the absolute cheapest way to start a trucking company?",a:"Lease-purchase a used sleeper (~$500/wk), rent a trailer from your first broker, pick a $15/mo ELD like ELD HUB, and factor invoices from day 1. You can realistically start with $6,000–$10,000 cash plus a truck payment."},{q:"How much does authority cost specifically?",a:"$300 flat to FMCSA (OP-1 filing) plus $20–50 for BOC-3 process agent. That's it for federal. Add ~$200–500 for state IFTA/IRP. Total federal + state to legally operate: about $600."},{q:"Why is insurance the biggest surprise cost?",a:"New authorities pay 2–3× the rate of established carriers. Expect $8,000–$16,000 for year 1 primary auto liability ($1M), plus $400–$1,200 for cargo coverage. Rates drop dramatically after 12 months of clean history."},{q:"Do I need working capital or can I just start hauling?",a:"You need 30 days of cash. Brokers pay net-30 by default. Even with same-day factoring, you'll wait 2–5 days for your first invoice to fund — and you need fuel, tolls, food, and possibly a hotel before then."},{q:"What's the ROI timeline for a 1-truck operation?",a:"A well-run solo authority grosses $180K–$220K in year 1 with $70K–$110K net after fuel, insurance, and payment. Most owner-operators break even on startup costs in months 3–6."}],aU=()=>C(()=>import("./blog.how-much-does-it-cost-to-start-trucking-company-Cn_PW7or.js"),__vite__mapDeps([30,2])),oU={"@context":"https://schema.org","@graph":[{"@type":"Article",headline:"How Much Does It Cost to Start a Trucking Company in 2026?",description:"Real 2026 startup budget for a 1-truck authority: federal filings, insurance, truck, working c
41apital. Line-by-line breakdown.",author:{"@type":"Organization",name:"ELD HUB"},publisher:{"@type":"Organization",name:"ELD HUB",logo:{"@type":"ImageObject",url:"https://goeldhub.com/android-chrome-512x512.png"}},mainEntityOfPage:"https://goeldhub.com/blog/how-much-does-it-cost-to-start-trucking-company"},{"@type":"FAQPage",mainEntity:nU.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},iU=R()({head:()=>({meta:[{title:"How Much Does It Cost to Start a Trucking Company? (2026)"},{name:"description",content:"Real 2026 startup budget for a 1-truck trucking company: authority, insurance, truck, ELD, working capital. Line-by-line costs."},{property:"og:title",content:"Cost to Start a Trucking Company — 2026 Budget"},{property:"og:description",content:"Line-by-line breakdown of what it really costs to launch a 1-truck authority in 2026."},{property:"og:url",content:"https://goeldhub.com/blog/how-much-does-it-cost-to-start-trucking-company"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/blog/how-much-does-it-cost-to-start-trucking-company"}],scripts:[{type:"application/ld+json",children:JSON.stringify(oU)}]}),component:A(aU,"component")}),sU=[{q:"What's the biggest mistake new authorities make in the first 90 days?",a:"Chasing cheap freight to keep the wheels turning. A $1.10/mi load with 30% deadhead is losing money — you'd earn more sitting. Set a rate floor before your authority activates and hold it, even if that means sitting one day per week."},{q:"How do I get my first load with no history?",a:"Load boards (DAT, Truckstop) and a same-day factoring company are the whole answer. Post your truck, respond fast, accept average rates on reputable brokers to build POD paperwork. By load 10 you'll start getting called back directly."},{q:"When should I stop using a factor?",a:"When you have 45+ days of cash reserves AND your top 5 brokers pay in under 20 days AND you can absorb one broker no-pay. For most 1-truck operations, that's month 12+. Until then, 1–2% factoring beats a $500 missed truck payment."},{q:"Should I get my own trailer or lease?",a:"Rent for the first 60 days from your first broker (Landstar, Mercer, etc). This lets you validate freight lanes before committing $15K+ to a trailer. Buy when you have 3 months of consistent lanes."},{q:"How important is the ELD choice in the first 90 days?",a:"Very. A bad ELD = HOS errors = failed roadside inspections = broker rejection. Pick a device on the FMCSA registered list, with auto-IFTA and DVIR built in. That's why we built ELD HUB for $15/mo — new authorities can't afford $40/mo/truck."}],lU=()=>C(()=>import("./blog.new-authority-first-90-days-CFMhFJm9.js"),__vite__mapDeps([31,29,2])),cU={"@context":"https://schema.org","@graph":[{"@type":"Article",headline:"New Trucking Authority: Your First 90 Days (Week-by-Week Playbook)",description:"Week-by-week playbook for the first 90 days after MC activation: rate floors, first brokers, IFTA, cash flow, and hire decisions.",author:{"@type":"Organization",name:"ELD HUB"},publisher:{"@type":"Organization",name:"ELD HUB",logo:{"@type":"ImageObject",url:"https://goeldhub.com/android-chrome-512x512.png"}},mainEntityOfPage:"https://goeldhub.com/blog/new-authority-first-90-days"},{"@type":"FAQPage",mainEntity:sU.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]},uU=R()({head:()=>({meta:[{title:"New Trucking Authority: First 90 Days Playbook (2026)"},{name:"description",content:"Week-by-week playbook for your first 90 days after MC authority: rate floors, first brokers, IFTA, cash flow, KPIs. Real numbers."},{property:"og:title",content:"First 90 Days as a New Trucking Authority"},{property:"og:description",content:"Week-by-week actions and KPIs to survive — and profit — in your first quarter as a new MC."},{property:"og:url",content:"https://goeldhub.com/blog/new-authority-first-90-days"},{property:"og:type",content:"article"}],links:[{rel:"canonical",href:"https://goeldhub.com/blog/new-authority-first-90-days"}],scripts:[{type:"application/ld+json",children:JSON.stringify(cU)}]}),component:A(lU,"component")}),dU={queryKey:["blog","categories"],queryFn:()=>BE()},hU=e=>({queryKey:["blog","posts","cat",e],queryFn:()=>UE({data:{category:e,limit:100}})}),pU=()=>C(()=>import("./categories._category-C407JTD_.js"),__vite__mapDeps([32,26,27])),fU=R()({loader:async({context:e,params:t})=>{const o=(await e.queryClient.ensureQueryData(dU)).find(s=>s.slug===t.category);return o?(await e.queryClient.ensureQueryData(hU(o.name)),{categoryName:o.name}):{categoryName:null}},head:({loaderData:e,params:t})=>{const n=e?.categoryName??t.category;return{meta:[{title:`${n} — ELD HUB Blog`},{name:"description",content:`Posts in the ${n} category from the ELD HUB blog.`},{property:"og:title",content:`${n} — ELD HUB Blog`},{property:"og:description",content:`Posts in the ${n} category from the ELD HUB blog.`}],links:[{rel:"canonical",href:`https://goeldhub.com/categories/${t.category}`}]}},component:A(pU,"component")}),mU=()=>C(()=>import("./embed.eld-compliance-calculator-Uc4QyR_y.js"),__vite__mapDeps([33,20])),gU=R()({head:()=>({meta:[{title:"ELD Compliance Risk Calculator — Embed | ELD Hub"},{name:"robots",content:"noindex, follow"},{name:"description",content:"Embeddable version of the ELD Hub compliance risk calculator for HOS violation fine and CSA exposure."}]}),component:A(mU,"component")}),zE=[{slug:"coi",term:"COI (Certificate of Insurance)",short:"A one-page proof-of-insurance document brokers and shippers require before they tender a load.",quickAnswer:"A COI, or certificate of insurance, is a one-page summary of a carrier's active insurance policies showing coverage types, limits, policy numbers, and effective dates. Brokers and shippers require a current COI, usually naming them as certificate holder, before releasing a load to a carrier.",metaTitle:"What Is a COI in Trucking? (Certificate of Insurance)",metaDescription:"COI meaning for truckers: a certificate of insurance proves your auto liability, cargo, and general liability coverage to brokers and shippers. What it shows and how to get one.",alsoKnownAs:["Certificate of insurance","Insurance cert","ACORD 25"],sections:[{h2:"What a COI shows",body:"A certificate of insurance is issued by your insurance agent, not by you. It is a summary — it does not itself grant coverage. Brokers read it to confirm that your policy is active and that the limits meet their contract requirements.",bullets:["Named insured — must exactly match your MC/DOT authority name","Auto liability limit, commonly $1,000,000 for interstate freight","Cargo coverage, commonly $100,000 (higher for certain commodities)","General liability, often $1,000,000 per occurrence","Policy numbers, carrier name, and effective and expiration dates","Certificate holder — the broker or shipper requesting it"]},{h2:"Certificate holder vs additional insured",body:"Being listed as certificate holder just means the broker gets notified about the policy. Being named additional insured extends some of your coverage to them, and it usually costs an endorsement fee. Read which one a broker's packet is asking for before you forward the request to your agent — they are not interchangeable."},{h2:"How to get one",body:"Email or call your insurance agent with the broker's exact legal name and address and ask them to issue a COI with that party as certificate holder. Most agencies turn it around the same day at no charge, and many can email it directly to the broker so you are never the bottleneck on a load."}],example:"A broker offers a $2,400 load from Dallas to Memphis. Before dispatch, their carrier packet asks for a COI showing $1M auto liability and $100K cargo with their company as certificate holder. You forward the request to your agent, who emails the certificate to the broker in an hour, and the load is tendered.",whyItMatters:"An expired or mismatched COI is one of the fastest ways to lose a load you already booked. If the name on the certificate does not exactly match the name on your authority, most broker compliance systems reject it automatically.",faqs:[{q:"What does COI stand for?",a:"COI stands for certificate of insurance. In trucking it is the document a broker or shipper requires as proof that a carrier's liability and cargo coverage are active and meet contract limits."},{q:"How much does a COI cost?",a:"The certificate itself is normally free — your agent issues it from an active policy. What c
41osts money is the underlying coverage, and any additional-insured endorsement a broker demands beyond simple certificate-holder status."},{q:"How long is a COI valid?",a:"Until the policy expiration date printed on it, typically 12 months. Brokers usually require a fresh certificate each policy term and many will not dispatch on one that expires before the delivery date."}],related:[{to:"/how-to-start-trucking-company",label:"Starting a trucking company",note:"Authority, insurance, and first-year filings."},{to:"/dot-compliance",label:"DOT compliance checklist",note:"Every recurring requirement including insurance filings."},{to:"/glossary/mc-number",label:"MC number",note:"The operating authority your COI must match."}]},{slug:"straight-truck",term:"Straight truck",short:"A truck where the cab and cargo box sit on one frame, instead of a separate tractor and trailer.",quickAnswer:"A straight truck is a commercial vehicle whose cab and cargo area are mounted on a single chassis, so it cannot be detached like a tractor-trailer. Box trucks, moving trucks, and many delivery vehicles are straight trucks. Ones over 10,001 lbs in interstate commerce still need an ELD.",metaTitle:"What Is a Straight Truck? Sizes, CDL & ELD Rules",metaDescription:"A straight truck carries its cargo box on the same frame as the cab. Common sizes, when a CDL is required, weight classes, and whether a straight truck needs an ELD.",alsoKnownAs:["Box truck","Cube truck","Single-unit truck"],sections:[{h2:"Straight truck vs tractor-trailer",body:"The difference is the frame. On a tractor-trailer, the power unit and the trailer are separate vehicles connected by a fifth wheel, and the tractor can drop one trailer and pick up another. On a straight truck the body is bolted to the same chassis as the cab, so what you see is what you haul."},{h2:"Common sizes",body:"Straight trucks are usually described by box length. The most common commercial sizes run from 16 to 26 feet, with 26 feet being the largest that a non-CDL driver can typically operate because it can be spec'd at 26,000 lbs GVWR.",bullets:["16 ft box: roughly 800 cu ft, common for local delivery and small moves","20 ft box: roughly 1,000–1,200 cu ft","24 ft box: roughly 1,400 cu ft, common in LTL and expedited freight","26 ft box: roughly 1,600 cu ft, the standard non-CDL maximum at 26,000 lbs GVWR"]},{h2:"Do you need a CDL?",body:"A CDL is required when the gross vehicle weight rating is 26,001 lbs or more, or when the load is placarded hazmat, or when the vehicle carries 16 or more passengers. Many 26 ft straight trucks are deliberately rated at exactly 26,000 lbs so they can be driven without a CDL — but the driver still needs a DOT medical card if operating in interstate commerce over 10,000 lbs."},{h2:"Do straight trucks need an ELD?",body:"Yes, in most interstate cases. The ELD rule follows the records-of-duty-status requirement, which applies to commercial motor vehicles over 10,001 lbs in interstate commerce — not to whether the driver holds a CDL. A non-CDL 26 ft box truck running interstate freight generally needs an ELD."}],example:"An expedited carrier runs a 26 ft straight truck rated at 26,000 lbs GVWR. The driver has no CDL but does hold a DOT medical card, and because the truck crosses state lines above 10,001 lbs, it runs an ELD and logs Hours of Service just like a tractor-trailer.",whyItMatters:"Straight-truck operators are the group most likely to assume the ELD mandate does not apply to them because no CDL is involved. The weight threshold, not the license class, is what triggers the requirement.",faqs:[{q:"Is a box truck the same as a straight truck?",a:"Effe
41ctively yes. Box truck usually refers to a straight truck with an enclosed cargo box. All box trucks are straight trucks, but straight trucks also include flatbeds, dumps, and reefers built on a single chassis."},{q:"How much can a 26 ft straight truck carry?",a:"A 26 ft box truck rated at 26,000 lbs GVWR typically has a payload capacity around 10,000 lbs after subtracting the empty weight of the truck, and roughly 1,600 cubic feet of cargo space."},{q:"Does a straight truck need an ELD without a CDL?",a:"Usually yes. The ELD requirement is driven by the vehicle weight and interstate operation, not the driver's license class. A non-CDL truck over 10,001 lbs crossing state lines generally must keep electronic records of duty status."}],related:[{to:"/glossary/box-truck-dimensions",label:"Box truck dimensions",note:"Interior sizes and capacities by box length."},{to:"/what-is-an-eld",label:"What is an ELD",note:"How the requirement is triggered by weight, not license."},{to:"/eld-exemptions",label:"ELD exemptions",note:"The narrow cases where no ELD is needed."}]},{slug:"box-truck-dimensions",term:"Box truck dimensions",short:"Interior length, width, height, and payload capacity for the standard commercial box truck sizes.",quickAnswer:"Common box trucks run 10, 16, 20, 24, and 26 feet of box length. Interior width is typically 92 to 102 inches and interior height 84 to 96 inches. A 26 ft box holds roughly 1,600 cubic feet with about 10,000 lbs of payload at a 26,000 lb GVWR.",metaTitle:"Box Truck Dimensions: Sizes, Capacity & Weights",metaDescription:"Box truck sizes and dimensions by length: interior length, width, height, cubic feet, payload, and GVWR for 10, 16, 20, 24, and 26 ft box trucks.",alsoKnownAs:["Box truck sizes","Box truck length","Cube van dimensions"],sections:[{h2:"Standard box truck sizes",body:"Dimensions vary by manufacturer and body builder, so treat these as the working ranges rather than exact specs. Always confirm interior height against the door opening — the door is usually a few inches shorter than the box, and that is what determines whether a pallet jack and a stacked pallet actually clear.",bullets:["10 ft: ~400 cu ft, ~3,000 lb payload, no CDL, common for last-mile","16 ft: ~800 cu ft, ~4,300 lb payload, no CDL","20 ft: ~1,000–1,200 cu ft, ~6,000 lb payload, no CDL","24 ft: ~1,400 cu ft, ~9,000 lb payload, often 25,999–26,000 lb GVWR","26 ft: ~1,600 cu ft, ~10,000 lb payload, 26,000 lb GVWR non-CDL ceiling"]},{h2:"Interior width and height",body:"Interior width is typically 92 to 102 inches, and interior height 84 to 96 inches. A 96-inch-wide interior fits two standard 48x40 pallets side by side; a 92-inch interior does not, which is the single most consequential dimension for freight loading and the one most often overlooked when buying a used truck."},{h2:"Pallet capacity",body:"As a rule of thumb, a 16 ft box holds about 6 standard pallets, a 20 ft holds about 8, a 24 ft holds about 10, and a 26 ft holds about 12 — assuming a 96-inch interior width that allows two-across loading and no double stacking."},{h2:"Weight ratings and what they trigger",body:"GVWR is what determines your regulatory obligations, not box length. At 26,001 lbs or above you need a CDL. Above 10,001 lbs in interstate commerce you generally need a USDOT number, HOS records, and an ELD. This is why so many 26 ft trucks are rated at exactly 26,000 lbs."}],example:"A carrier buying a 26 ft box truck for LTL freight checks the interior width first. At 102 inches it takes two 48-inch pallets across with room to strap; at 92 inches it does not, cutting effective capacity by nearly half on palletized loads.",whyItMatters:"Box length sells the truck, but interior width and door height determine what you can actually load — and GVWR determines whether you need a CDL and an ELD.",faqs:[{q:"How wide is a box truck inside?",a:"Interior width is typically 92 to 102 inches. A 96-inch or wider interior allows two standard 48x40 pallets side by side; narrower boxes force single-file loading."},{q:"How tall is the inside of a 26 ft box truck?",a:"Interior height is usually 96 to 103 inches on a 26 ft box, with the rear door opening a few inches shorter. Confirm the door opening, not the box height, when planning stacked pallet loads."},{q:"How many pallets fit in a 26 ft box truck?",a:"About 12 standard 48x40 pallets on the floor with a 96-inch or wider interior, or roughly 6 if the interior is too narrow for two-across loading."}],related:[{to:"/glossary/straight-truck",label:"Straight truck",note:"How box trucks are classified and licensed."},{to:"/hotshot-eld",label:"Hotshot trucking ELD",note:"Compliance for non-CDL and light commercial operations."},{to:"/what-is-an-eld",label:"What is an ELD",note:"Whether your box truck needs one."}]},{slug:"dtc-codes",term:"DTC (Diagnostic Trouble Code)",short:"The standardized fault co
41de a truck's engine computer sets when a system reports a problem.",quickAnswer:"A DTC, or diagnostic trouble code, is the fault code a vehicle's engine control module records when a sensor or system reports a problem. Codes read from the same diagnostic port an ELD plugs into. On heavy trucks they appear as SPN and FMI pairs rather than the P-codes used on cars.",metaTitle:"DTC Meaning: Diagnostic Trouble Codes in Trucks",metaDescription:"DTC means diagnostic trouble code — the fault code a truck's ECM sets when a system fails. How to read them, what SPN and FMI mean, and how they relate to your ELD.",alsoKnownAs:["Fault code","Engine code","Check-engine code","SPN/FMI"],sections:[{h2:"What DTC means",body:"DTC stands for diagnostic trouble code. When a sensor reading falls outside its expected range, the engine control module logs a code and often lights a dash lamp. The code identifies the affected system and the nature of the fault — it does not, by itself, tell you which part failed."},{h2:"P-codes vs SPN/FMI",body:"Light-duty vehicles use OBD-II P-codes like P0300. Heavy-duty trucks on the J1939 network use a pair of numbers instead: SPN (suspect parameter number) identifies the component or parameter, and FMI (failure mode identifier) describes how it failed — short to ground, out of range high, no signal, and so on.",bullets:["SPN 100 = engine oil pressure; SPN 110 = coolant temperature","FMI 3 = voltage above normal; FMI 4 = voltage below normal","FMI 5 = current below normal or open circuit","An active code is happening now; an inactive or stored code has cleared but was recorded"]},{h2:"Why DTCs and ELDs share a port",body:"An ELD plugs into the same diagnostic connector the ECM uses to report codes — OBD-II on light trucks, 9-pin or 6-pin Deutsch on heavy trucks. That is why plugging in an ELD does not interfere with a mechanic's scan tool, and why some telematics platforms can surface fault codes alongside compliance data."},{h2:"What to do when a code appears",body:"Record the code before clearing it, note whether the truck is derating or in limp mode, and check whether the fault is safety-critical. Codes tied to brakes, steering, or lighting can put a truck out of service at roadside, and an active fault found during an inspection lands in the Vehicle Maintenance BASIC."}],example:"A driver sees a check-engine lamp and a derate warning. The shop reads SPN 3251 FMI 2 — a diesel particulate filter pressure signal problem. The code identifies the system, and the technician diagnoses whether it is the sensor, the wiring, or a genuinely loaded filter.",whyItMatters:"Vehicle maintenance is the largest source of roadside out-of-service orders. Catching an active fault before an inspection is cheaper than getting shut down at a scale house.",faqs:[{q:"What does DTC stand for?",a:"DTC stands for diagnostic trouble code — the standardized fault code a vehicle's onboard computer records when a monitored system reports a problem."},{q:"Does an ELD read fault codes?",a:"An ELD plugs into the diagnostic port and reads engine data required for compliance, such as engine hours, odometer, and vehicle motion. Reporting DTCs to the fleet is a separate telematics feature and varies by provider."},{q:"Can I clear a DTC myself?",a:"A scan tool can clear stored codes, but clearing the code does not fix the fault, and an active fault will return immediately. Clearing codes before an inspection also does not remove an existing defect from the truck."}],related:[{to:"/hardware/obd2-eld",label:"OBD-II ELD devices",note:"Which port your truck uses and why it matters."},{to:"/dot-inspection-eld",label:"DOT inspection checklist",note:"What gets a truck placed out of service."},{to:"/glossary/dvir",label:"DVIR",note:"Recording defects the driver finds."}]},{slug:"dvir",term:"DVIR (Driver Vehicle Inspection Report)",short:"The report a driver files documenting vehicle defects found during a pre-trip or post-trip inspection.",quickAnswer:"A DVIR is a driver vehicle inspection report documenting defects found during a post-trip inspection of a commercial vehicle. Federal rules require a written report only when a defect is found, but the driver must still inspect, and any defect affecting safety must be repaired before the truck runs again.",metaTitle:"What Is a DVIR? Driver Inspection Report Rules",metaDescription:"DVIR meaning: the driver vehicle inspection report documenting truck defects. What must be inspected, when a written report is required, retention rules, and electronic DVIRs.",alsoKnownAs:["Driver vehicle inspection report","Pre-trip / post-trip report"],sections:[{h2:"What has to be inspected",body:"49 CFR 396.11 lists the parts and accessories a driver must cover. The inspection itself is mandatory at the end of each driving day; the written report is required when a defect or deficiency is discovered.",bullets:["Service brakes, including trailer brake connections","Parking brake","Steering mechanism","Lighting devices and reflectors","Tires, wheels, and rims","Horn, windshield wipers, and mirrors","Coupling devices","Emergency equipment"]},{h2:"No-defect reports",body:"Since 2014, property-carrying carriers no longer have to file a DVIR when no defect is found. Many carriers still record a 
41no-defect entry voluntarily because it creates a clean, dated audit trail proving the inspection happened. Passenger-carrying operations must still file a report every day regardless of findings."},{h2:"What happens after a defect is reported",body:"The carrier must repair any defect that affects safe operation before the vehicle is dispatched again, and must certify on the report that the repair was made or that no repair was needed. The next driver must review the prior report and sign that the defects were addressed."},{h2:"Electronic DVIRs",body:"Filing DVIRs through the driver app attaches the report to the unit and the date automatically, keeps a defect history per truck, and puts the repair certification in the same record. It also removes the classic audit failure where paper reports exist but the repair certification does not."}],example:"A driver finds a cracked mirror during the post-trip. The DVIR is filed in the app, the shop replaces the mirror the next morning and certifies the repair in the same record, and the next driver signs off before dispatch. In an audit, that one record shows the defect, the fix, and the review.",whyItMatters:"Vehicle maintenance produces more out-of-service orders than any other roadside category. DVIR records are what an auditor uses to decide whether your maintenance program is real.",faqs:[{q:"Is a DVIR required every day?",a:"The inspection is required at the end of each driving day. A written DVIR is required whenever a defect is found. Passenger-carrying carriers must file a report daily regardless of whether defects are found."},{q:"How long must DVIRs be kept?",a:"Carriers must retain the original DVIR and the repair certification for at least three months from the date the report was prepared."},{q:"Does ELD Hub include DVIRs?",a:"Yes. Electronic DVIRs are part of the $15 per truck per month plan along with HOS logs, IFTA, and GPS tracking. There is no separate maintenance module fee."}],related:[{to:"/dot-inspection-eld",label:"DOT inspection checklist",note:"What an officer inspects at roadside."},{to:"/dot-compliance",label:"DOT compliance hub",note:"Where DVIRs fit among all recurring obligations."},{to:"/eld-pricing",label:"ELD pricing",note:"DVIRs are included at $15/truck/month."}]},{slug:"ifta",term:"IFTA (International Fuel Tax Agreement)",short:"The agreement that lets interstate carriers file one quarterly fuel-tax return covering all member jurisdictions.",quickAnswer:"IFTA is the International Fuel Tax Agreement among the 48 contiguous US states and 10 Canadian provinces. Qualifying interstate carriers file one quarterly return with their base state reporting miles driven and fuel purchased in each jurisdiction, and the taxes are redistributed automatically.",metaTitle:"What Is IFTA? Quarterly Fuel Tax Explained",metaDescription:"IFTA meaning for truckers: who must register, what the quarterly return reports, filing deadlines, penalties, and how ELD mileage data makes the return nearly automatic.",alsoKnownAs:["International Fuel Tax Agreement","Fuel tax return"],sections:[{h2:"Who has to register",body:"IFTA applies to qualified motor vehicles operating in two or more member jurisdictions — vehicles over 26,000 lbs gross weight, or with three or more axles regardless of weight, or used in combination exceeding 26,000 lbs. You register in your base state and receive one license plus a decal set per truck."},{h2:"What the return reports",body:"Each quarter you report, by jurisdiction, the miles you drove and the taxable gallons you purchased. The system compares fuel you bought in a state against fuel you burned there, and you either owe the difference or receive a credit. Buying fuel where taxes are low but driving elsewhere is exactly what produces a balance due.",bullets:["Total miles and taxable miles per jurisdiction","Gallons purchased per jurisdiction, with receipts retained","Fleet miles-per-gallon, calculated across the whole quarter","Net tax due or credit per jurisdiction"]},{h2:"Deadlines",body:"Returns are due the last day of the month following the quarter: April 30, July 31, October 31, and January 31. A return is required even for a quarter with no travel. Late filing triggers a penalty of $50 or 10% of the tax due, whichever is greater, plus monthly interest per jurisdiction."},{h2:"Where ELD data comes in",body:"The hardest part of IFTA is accurate mileage by state, which is what trip sheets get wrong. An ELD already records GPS position continuously, so the jurisdiction split can be generated from data you are legally required to collect anyway. That removes the arithmetic errors that most commonly trigger an IFTA audit."}],example:"An owner-operator runs 12,000 miles in a quarter across Texas, Oklahoma, and Arkansas but buys most fuel in Texas because it is cheaper. The quarterly return shows Texas gallons exceeding Texas miles, producing a Texas credit and a balance owed to Oklahoma and Arkansas.",whyItMatters:"IFTA is one of the few filings where sloppy records cost money directly. Underreporting a jurisdiction's miles produces assessments and interest, and audits routinely go back several quarters.",faqs:[{q:"Who is exempt from IFTA?",a:"Vehicles under 26,000 lbs with two axles that operate only intrastate, recreational vehicles, and some government vehicles. Purely intrastate carriers do not need IFTA, though they still pay state fuel taxes at the pump."},{q:"What are the IFTA filing deadlines?",a:"April 30, July 31, October 31, and January 31 — the last day of the month after each quarter closes. A zero-activity quarter still requires a filed return."},{q:"Does ELD Hub include IFTA reporting?",a:"Yes. IFTA mileage by jurisdiction is generated from the same GPS data the ELD already records, and it is included in the $15 per truck per month plan rather than sold as an add-on."}],related:[{to:"/ifta-reporting-software",label:"IFTA reporting software",note:"How ELD Hub builds the quarterly return."},{to:"/fleet-tracking",label:"Fleet tracking",note:"The mileage data that feeds IFTA."},{to:"/dot-compliance",label:"DOT compliance hub",note:"IFTA alongside every other recurring filing."}]},{slug:"csa-score",term:"CSA score",short:"The FMCSA safety rating built from your roadside inspection and crash history over 24 months.",quickAnswer:"A CSA score is the FMCSA's Compliance, Safety, Accountability measurement of a carrier's safety performance across seven BASIC categories, built from roadside inspections and crashes in the last 24 months. Violations are weighted by severity and recency, and crossing an intervention threshold invites an audit.",metaTitle:"What Is a CSA Score? BASICs & Thresholds",metaDescription:"CSA score explained: the seven BASICs, how violations are weighted by severity and recency, intervention thresholds, and what small carriers can do to bring a score down.",alsoKnownAs:["Compliance Safety Accountability score","SMS score","BASIC percentile"],sections:[{h2:"How the score is built",body:"Every roadside inspection and reportable crash feeds the Safety Measurement System. Each violation carries a severity weight from 1 to 10, multiplied by a time weight — 3 for the last 6 months, 2 for 6 to 12 months, 1 for 12 to 24 months. Totals are normalized by your exposure (inspections and vehicle miles) and then ranked as a percentile against similar carriers."},{h2:"The seven BASICs",body:"Your score is not one number. It is seven separate percentiles, and only some of them are public.",bullets:["Unsafe Driving — speeding, reckless driving, seat belt","Hours of Service Compliance — log violations and false records","Driver Fitness — CDL and medical certificate problems","Controlled Substances and Alcohol","Vehicle Maintenance — the largest source of out-of-service orders","Hazardous Materials Compliance","Crash Indicator"]},{h2:"Why small fleets get hit harder",body:"Percentiles are normalized by exposure, so a carrier with 3 trucks and 4 inspections a year has almost no denominator. One bad inspection can move a small carrier's BASIC percentile dramatically, while the same violation barely registers for a 300-truck fleet. This is a structural feature of the math, not a bug you can appeal."},{h2:"How to bring a score down",body:"Old violations age out on their own after 24 months, so the fastest lever is stopping new ones and accumulating clean inspections, which improve your denominator.",bullets:["Challenge genuine errors through the DataQs system with documentation","Fix the maintenance items that produce repeat violations — lights, brakes, tires","Use an ELD that warns drivers before HOS limits instead of after","Collect clean inspections; each one dilutes the percentile","Address driver-fitness paperwork before the medical card expires, not after"]}],example:"A four-truck carrier picks up two HOS form-and-manner violations in one month. With only six inspections in the prior year, the HOS BASIC percentile jumps above the intervention threshold and the carrier receives a warning letter — even though a large fleet with the same tw
41o violations would see almost no movement.",whyItMatters:"CSA scores affect more than audits. Brokers screen on them, shippers reject carriers above thresholds, and insurance underwriters price from them.",faqs:[{q:"What is a good CSA score?",a:"Lower is better — the score is a percentile, so 100 is worst. Staying under the intervention threshold for each BASIC (typically 65% for most carriers, 60% for passenger and hazmat) is the practical target."},{q:"How long do violations stay on a CSA score?",a:"24 months. Their weight drops over time: violations in the most recent 6 months count triple, 6 to 12 months double, and 12 to 24 months single."},{q:"Can I dispute a CSA violation?",a:"Yes, through FMCSA's DataQs system. You need documentation — a dismissed citation, a repair record, or evidence the violation was recorded against the wrong carrier. Disputes without evidence are routinely denied."}],related:[{to:"/free-eld-compliance-calculator",label:"Compliance calculator",note:"Estimate CSA points and fines by violation."},{to:"/eld-violations-penalties",label:"Violations and penalties",note:"What each HOS violation costs."},{to:"/dot-compliance",label:"DOT compliance hub",note:"The programs auditors ask for by name."}]},{slug:"mc-number",term:"MC number",short:"The FMCSA operating authority that lets a carrier haul regulated freight for hire across state lines.",quickAnswer:"An MC number is the motor carrier operating authority FMCSA issues to companies hauling regulated commodities for hire in interstate commerce. It is separate from a USDOT number: the DOT number identifies the company, while the MC number grants the legal right to operate for hire.",metaTitle:"What Is an MC Number? Authority vs DOT Number",metaDescription:"MC number explained: what operating authority is, how it differs from a USDOT number, who needs one, what it costs, and how long activation takes.",alsoKnownAs:["Motor carrier number","Operating authority","MC docket number"],sections:[{h2:"MC number vs USDOT number",body:"A USDOT number is an identifier — it tracks your safety record, inspections, and crashes. An MC number is a permission — it authorizes you to transport regulated commodities for hire across state lines. Many carriers need both. A private carrier hauling only its own goods generally needs a DOT number but not an MC number."},{h2:"Who needs one",body:"You need operating authority if you are paid to transport federally regulated commodities in interstate commerce, or if you arrange that transportation as a broker or freight forwarder. Purely intrastate carriers and private carriers moving their own property typically do not."},{h2:"What it takes to activate",body:"Applying through FMCSA's Unified Registration System involves a one-time application fee, a BOC-3 process-agent filing, and proof of insurance filed by your insurer. Authority is not active until the insurance and BOC-3 are both on file, and there is a mandatory public vetting period after the application is granted.",bullets:["URS application with a one-time fee","BOC-3 blanket process-agent filing, submitted by a process agent","Insurance filing (BMC-91X) submitted by your insurance carrier","Approximately 3 to 4 weeks from application to active authority"]},{h2:"Keeping it active",body:"Authority lapses if your insurance filing drops. Beyond that, you must keep the biennial MCS-150 update current, maintain UCR registration, and pass the New Entrant Safety Audit within your first year of operation."}],example:"A new owner-operator applies for authority in early January, files BOC-3 the same week, and has the insurance agent submit the BMC-91X. The MC number activates in early February, and the New Entrant Safety Audit is scheduled within the first year.",whyItMatters:"Brokers verify authority status before tendering a load. An inactive MC — usually caused by a lapsed insurance filing — means you cannot legally be paid to move freight, even if your truck and driver are ready.",faqs:[{q:"How much does an MC number cost?",a:"FMCSA charges a one-time application fee for operating authority. The larger real costs are the insurance the filing requires and the BOC-3 process-agent service, which is a modest one-time charge."},{q:"How long does it take to get an MC number?",a:"Typically about three to four weeks, assuming the BOC-3 and insurance filings are submitted promptly. The authority is not usable until both are on file and the vetting period completes."},{q:"Do I need an MC number for intrastate trucking?",a:"Generally no. Federal operating authority applies to interstate for-hire transportation of regulated commodities. Intrastate carriers follow their own state's authority and registration requirements."}],related:[{to:"/how-to-start-trucking-company",label:"Starting a trucking company",note:"The full authority and filing sequence."},{to:"/blog/get-mc-authority-checklist",label:"MC authority checklist",note:"Step-by-step with realistic timelines."},{to:"/glossary/coi",label:"COI",note:"The insurance certificate brokers require."}]}],da=Object.fromEntries(zE.map(e=>[e.slug,e])),yU=()=>C(()=>import("./glossary.index-Dvbsgj3R.js"),[]),s0="Trucking Glossary: Terms Small Fleets Actually Use",l0="Plain-English definitions of the trucking and compliance terms small carriers run into: COI, straight truck, box truck dimensions, DTC codes, DVIR, IFTA, CSA score, MC number.",Ec="https://goeldhub.com/glossary",bU=R()({component:A(yU,"component"),head:()=>({meta:[{title:s0},{name:"description",content:l0},{property:"og:title",content:s0},{property:"og:description",content:l0},{property:"og:type",content:"website"},{property:"og:url",content:Ec}
41,...de("compliance","Trucking glossary for small fleets by ELD Hub.")],links:[{rel:"canonical",href:Ec}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"DefinedTermSet",name:"ELD Hub Trucking Glossary",url:Ec,hasDefinedTerm:zE.map(e=>({"@type":"DefinedTerm",name:e.term,description:e.quickAnswer,url:`https://goeldhub.com/glossary/${e.slug}`}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Glossary",item:Ec}]})}]})}),vU=da["box-truck-dimensions"];function lG({data:e}){return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsx("nav",{"aria-label":"Breadcrumb",className:"text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground",children:c.jsx(W,{to:"/glossary",className:"text-accent hover:underline",children:"Trucking glossary"})}),c.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.term}),c.jsx("p",{className:"mt-4 max-w-3xl text-lg text-muted-foreground",children:e.short}),e.alsoKnownAs&&c.jsxs("p",{className:"mt-3 text-sm text-muted-foreground",children:["Also called: ",c.jsx("span",{className:"font-medium text-foreground",children:e.alsoKnownAs.join(", ")})]}),c.jsx("div",{className:"max-w-3xl",children:c.jsx(Ft,{question:`What is ${e.term.split(" (")[0]}?`,answer:e.quickAnswer})})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("div",{className:"space-y-12",children:e.sections.map(t=>c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:t.h2}),c.jsx("p",{className:"mt-3 text-[15px] leading-relaxed text-muted-foreground",children:t.body}),t.bullets&&c.jsx("ul",{className:"mt-4 space-y-2",children:t.bullets.map(n=>c.jsxs("li",{className:"flex items-start gap-2.5 text-[15px] text-muted-foreground",children:[c.jsx("span",{className:"mt-2 size-1.5 shrink-0 rounded-full bg-accent"}),c.jsx("span",{children:n})]},n))})]},t.h2))}),c.jsxs("div",{className:"mt-12 grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsxs("div",{className:"flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(P2,{className:"size-3.5"})," Example"]}),c.jsx("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:e.example})]}),c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsxs("div",{className:"flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(y2,{className:"size-3.5"})," Why it matters for a small fleet"]}),c.jsx("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:e.whyItMatters})]})]})]}),c.jsx("section",{className:"border-y border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:"Running 1–20 trucks? Compliance starts at $15/truck/month"}),c.jsx("p",{className:"mt-3 max-w-2xl text-muted-foreground",children:"ELD Hub is an FMCSA-registered ELD with HOS logs, DVIRs, IFTA, and GPS included. No contract. PT-30 or IOSiX hardware is $150 each with free shipping (PT-30 with cable, IOSiX device only), or keep a compatible device you already own."}),c.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:["Start 14-day free trial ",c.jsx(at,{className:"size-4"})]}),c.jsxs("a",{href:Ee.phone,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:[c.jsx(Tf,{className:"size-4"})," 302-404-1177"]})]})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Hr,{className:"size-3.5"})," FAQ"]}),c.jsx("h2",{className:"mt-3 text-2xl font-bold text-foreground sm:text-3xl",children:"Common questions"}),c.jsx("div",{className:"mt-8 space-y-3",children:e.faqs.map(t=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer list-none font-semibold text-foreground marker:hidden",children:t.q}),c.jsx("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:t.a})]},t.q))}),c.jsx("h2",{className:"mt-14 text-2xl font-bold text-foreground sm:text-3xl",children:"Related"}),c.jsxs("ul",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:[e.related.map(t=>c.jsxs("li",{className:"rounded-xl border border-border bg-card p-4",children:[c.jsxs(W,{to:t.to,className:"font-semibold text-accent hover:underline",children:[t.label," →"]}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t.note})]},t.label)),c.jsxs("li",{className:"rounded-xl border border-border bg-card p-4",children:[c.jsx(W,{to:"/best-eld-small-fleets",className:"font-semibold text-accent hover:underline",children:"Best ELD for small fleets →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"15 FMCSA-registered providers compared for fleets under 20 trucks."})]}),c.jsxs("li",{className:"rounded-xl border border-border bg-card p-4",children:[c.jsx(W,{to:"/eld-pricing",className:"font-semibold text-accent hover:underline",children:"ELD pricing →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"$15/truck/month flat, no contract, IFTA and DVIR included."})]}),c.jsxs("li",{className:"rounded-xl border border-border bg-card p-4",children:[c.jsx(W,{to:"/switch/pt30-iosix-providers",className:"font-semibold text-accent hover:underline",children:"Keep your PT-30 or IOSiX →"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Switch providers without replacing hardware you already own."})]})]})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function ha(e){const t=`https://goeldhub.com/glossary/${e.slug}`;return{meta:[{title:e.metaTitle},{name:"description",content:e.metaDescription},{property:"og:title",content:e.metaTitle},{property:"og:description",content:e.metaDescription},{property:"og:type",content:"article"},{property:"og:url",content:t},...de("compliance",`${e.term} explained for small trucking fleets.`)],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"DefinedTerm",name:e.term,description:e.quickAnswer,url:t,inDefinedTermSet:{"@type":"DefinedTermSet",name:"ELD Hub Trucking Glossary",url:"https://goeldhub.com/glossary"}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(n=>
41({"@type":"Question",name:n.q,acceptedAnswer:{"@type":"Answer",text:n.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Glossary",item:"https://goeldhub.com/glossary"},{"@type":"ListItem",position:3,name:e.term,item:t}]})}]}}const wU=()=>C(()=>import("./glossary.box-truck-dimensions-DcjrxNje.js"),[]),xU=R()({component:A(wU,"component"),head:()=>ha(vU)}),EU=da.coi,SU=()=>C(()=>import("./glossary.coi-DnhMPCKa.js"),[]),kU=R()({component:A(SU,"component"),head:()=>ha(EU)}),DU=da["csa-score"],TU=()=>C(()=>import("./glossary.csa-score-CUl2i1ab.js"),[]),LU=R()({component:A(TU,"component"),head:()=>ha(DU)}),AU=da["dtc-codes"],_U=()=>C(()=>import("./glossary.dtc-codes-_09CTw6E.js"),[]),CU=R()({component:A(_U,"component"),head:()=>ha(AU)}),RU=da.dvir,IU=()=>C(()=>import("./glossary.dvir-DvGFcIPs.js"),[]),OU=R()({component:A(IU,"component"),head:()=>ha(RU)}),$U=da.ifta,NU=()=>C(()=>import("./glossary.ifta-B6UmPeAF.js"),[]),HU=R()({component:A(NU,"component"),head:()=>ha($U)}),PU=da["mc-number"],jU=()=>C(()=>import("./glossary.mc-number-Bm4rBFBj.js"),[]),qU=R()({component:A(jU,"component"),head:()=>ha(PU)}),MU=da["straight-truck"],FU=()=>C(()=>import("./glossary.straight-truck-C9lFZ2lG.js"),[]),UU=R()({component:A(FU,"component"),head:()=>ha(MU)}),BU=()=>C(()=>import("./hardware.index-P1ajLbYB.js"),[]),fp="ELD Hardware — PT-30 & IOSiX $150 Each | ELD Hub",mp="PT-30 and IOSiX ELD hardware each cost $150 with free shipping. PT-30 includes a cable; IOSiX is device only. In stock, ships same or next business day.",gp="https://goeldhub.com/hardware",zU=R()({component:A(BU,"component"),head:()=>({meta:[{title:fp},{name:"description",content:mp},{property:"og:title",content:fp},{property:"og:description",content:mp},...de("hardware","PT-30 and IOSiX plug-and-play ELD hardware from ELD Hub."),{property:"og:type",content:"website"},{property:"og:url",content:gp},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:gp}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"CollectionPage",name:fp,url:gp,description:mp})}]})}),VU={slug:"hardware/iosix-eld",device:"IOSiX",productName:"IOSiX ELD Device",priceUSD:"150",ctaLabel:"Get IOSiX with ELD Hub — $150/device",h1:"IOSiX ELD — $150 per Device with Free Shipping",tagline:"Buy a new IOSiX for $150 or bring your own. Software is $15/truck/month.",intro:"ELD Hub sells IOSiX ELD hardware for $150 per device with free shipping. It is in stock and ships the same or next business day. The $150 IOSiX offer is for the device only; a diagnostic cable is not included. Already own an IOSiX from another provider? We can re-register compatible devices to your ELD Hub account at no cost. Software is $15/truck/month with no contract, including the driver app, DVIRs and IFTA.",metaTitle:"IOSiX ELD Device — $150, Free Shipping | ELD Hub",metaDescription:"Buy IOSiX ELD hardware from ELD Hub for $150 per device, free shipping. Device only; cable not included. In stock, ships same or next business day. Software $15/truck/month.",keySpecs:[{label:"Sold by ELD Hub",value:"Yes — $150 per IOSiX device, free shipping; diagnostic cable not included"},{label:"Availability",value:"In stock; ships same or next business day"},{label:"Compatibility",value:"Yes — IOSiX ELD-PLUS and equivalent models work with ELD Hub"},{label:"Re-registration",value:"Free for compatible IOSiX devices after serial confirmation"},{label:"Device type",value:"OBD-II plug-in ELD"},{label:"FMCSA registration",value:"Yes — registered on the official FMCSA ELD list"},{label:"Connectivity",value:"Bluetooth Low Energy to driver phone, cellular via app"},{label:"Supported vehicles",value:"Best for 2018+ Class 3–8 trucks (also works older)"},{label:"Setup time",value:"Under 10 minutes per truck"},{label:"Software price",value:"$15/truck/month, no contract"}],bullets:["Cleaner J1939 / OBD-II diagnostic data than older ELDs — fewer 'unidentified driving' events.","FMCSA-registered and compliant with 49 CFR 395 for HOS and DVIRs.","Small form factor — sits flush at the diagnostic port, no cable tangle.","Bluetooth pairs to the ELD Hub iOS/Android app in under 60 seconds.","Works with the ELD Hub dispatcher dashboard for GPS, DVIR review, and IFTA fuel tax.","Backed by US-based phone support at 302-404-1177."],faqs:[{q:"Is IOSiX FMCSA-registered?",a:"Yes. IOSiX ELD models are on the official FMCSA ELD registration list. They pass DOT roadside inspection in every US state when paired with a compliant driver app like ELD Hub."},{q:"Does ELD Hub sell IOSiX devices?",a:"Yes. IOSiX hardware costs $150 per device with free shipping. It is in stock and ships the same or next business day. The IOSiX price covers the device only; a diagnostic cable is not included. If you already own a compatible IOSiX device, we re-register it at no cost."},{q:"Should I use my IOSiX or buy a PT-30?",a:"If you already own a working IOSiX, ask us to re-register it for free. Starting fresh? Both devices cost $150 with free shipping. The PT-30 includes a diagnostic cable; the IOSiX offer is device only. Call 302-404-1177 to check which model fits your truck."},{q:"How do I install the IOSiX ELD?",a:"Same as any OBD-II ELD: plug the device into the diagnostic port under the dash, turn the ignition on, install the ELD Hub app, pair over Bluetooth, log in. Total time: about 10 minutes per truck. No mechanic, no tools."},{q:"What does it cost to run my IOSiX on ELD Hub?",a:"$15/truck/month for software, no contract. A new IOSiX device is $150 with free shipping; the diagnostic cable is not included. Re-registering a compatible IOSiX you already own is free."},{q:"Can I use an IOSiX from another ELD provider?",a:"In many cases yes. Call 302-404-1177 with your device seri
41al number and we'll check whether it can be re-registered to ELD Hub. If yes, you skip the hardware purchase entirely."},{q:"Does the IOSiX need a data plan?",a:"The IOSiX pairs to the driver's phone over Bluetooth and the ELD Hub app uploads logs over the phone's cellular data — no separate SIM or data plan on the device itself."}]};function cG({data:e}){return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(AE,{className:"size-3.5"})," ",e.device," Hardware"]}),c.jsx("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:e.h1}),c.jsx("p",{className:"mt-3 text-lg font-semibold text-accent",children:e.tagline}),c.jsx(q3,{className:"mt-4"}),c.jsx("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:e.intro}),c.jsx("div",{className:"max-w-2xl",children:c.jsx(Ft,{question:`Does the ${e.device} work with ELD Hub?`,answer:e.quickAnswer??"Yes. ELD Hub supports PT-30 and IOSiX hardware and sells both for $150 per device with free shipping. PT-30 includes a diagnostic cable; IOSiX is device only. If you already own a compatible device, we re-register it at no cost. Software is $15 per truck per month with no contract."})}),c.jsxs("div",{className:"mt-8 flex flex-wrap gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," ",e.ctaLabel??"Get started with ELD Hub — $15/truck/mo"," ",c.jsx(at,{className:"size-4"})]}),c.jsx("a",{href:Ee.phone,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:"Call: 302-404-1177"})]}),c.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:Af})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:[e.device," at a glance"]}),c.jsx("div",{className:"mt-6 overflow-hidden rounded-xl border border-border",children:c.jsx("table",{className:"w-full text-sm",children:c.jsx("tbody",{children:e.keySpecs.map((t,n)=>c.jsxs("tr",{className:"border-t border-border first:border-t-0 bg-background",children:[c.jsx("td",{className:"p-4 w-1/3 font-semibold text-foreground",children:t.label}),c.jsx("td",{className:"p-4 text-muted-foreground",children:t.value})]},n))})})}),c.jsx("ul",{className:"mt-8 grid gap-3 sm:grid-cols-2",children:e.bullets.map((t,n)=>c.jsxs("li",{className:"flex gap-3 rounded-xl border border-border bg-card p-4",children:[c.jsx(ut,{className:"mt-0.5 size-5 shrink-0 text-accent"}),c.jsx("span",{className:"text-sm text-foreground",children:t})]},n))})]}),e.steps&&c.jsx("section",{className:"border-y border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:[e.device," installation guide"]}),c.jsx("p",{className:"mt-2 text-muted-foreground",children:"Takes about 10 minutes per truck. No mechanic required."}),c.jsx("ol",{className:"mt-8 space-y-4",children:e.steps.map((t,n)=>c.jsxs("li",{className:"flex gap-4 rounded-xl border border-border bg-card p-5",children:[c.jsx("span",{className:"grid size-8 shrink-0 place-items-center rounded-full bg-accent-gradient text-sm font-bold text-accent-foreground",children:n+1}),c.jsxs("div",{children:[c.jsx("p",{className:"font-semibold text-foreground",children:t.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t.b})]})]},n))})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Hr,{className:"size-3.5"})," ",e.device," FAQ"]}),c.jsx("h2",{className:"mt-3 text-2xl font-bold text-foreground sm:text-3xl",children:"Frequently asked questions"}),c.jsx("div",{className:"mt-8 space-y-3",children:e.faqs.map((t,n)=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer list-none font-semibold text-foreground marker:hidden",children:t.q}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:t.a})]},n))})]}),c.jsx("section",{className:"border-t border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsxs("div",{className:"flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(ia,{className:"size-3.5"})," More ELD hardware & guides"]}),c.jsxs("div",{className:"mt-5 grid gap-3 sm:grid-cols-3",children:[c.jsxs(W,{to:"/hardware",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"All ELD hardware"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"PT-30, IOSiX, OBD-II compatibility."})]}),c.jsxs(W,{to:"/fmcsa-registered-eld-list",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"FMCSA Registered ELD List"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Why registration matters at DOT stops."})]}),c.jsxs(W,{to:"/vs",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Compare ELD providers"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Side-by-side pricing and features."})]})]})]})}),c.jsx("div",{className:"mx-auto max-w-5xl px-4 pb-16",children:c.jsx(_f,{})}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function Ms(e){const t=`https://goeldhub.com/${e.slug}`,n=[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Product",name:e.productName??`${e.device} ELD Device`,description:e.metaDescription,brand:{"@type":"Brand",name:"ELD Hub"},offers:{"@type":"Offer",price:e.priceUSD??"15",priceCurrency:"USD",url:t,availability:"https://schema.org/InStock",shippingDetails:{"@type":"OfferShippingDetails",shippingRate:{"@type":"MonetaryAmount",value:"
410",currency:"USD"},shippingDestination:{"@type":"DefinedRegion",addressCountry:"US"},deliveryTime:{"@type":"ShippingDeliveryTime",handlingTime:{"@type":"QuantitativeValue",minValue:0,maxValue:1,unitCode:"DAY"},transitTime:{"@type":"QuantitativeValue",minValue:2,maxValue:5,unitCode:"DAY"}}}},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.9",reviewCount:"127"}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(o=>({"@type":"Question",name:o.q,acceptedAnswer:{"@type":"Answer",text:o.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Hardware",item:"https://goeldhub.com/hardware"},{"@type":"ListItem",position:3,name:e.device,item:t}]})}];return e.steps&&n.push({type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"HowTo",name:`How to install the ${e.device} ELD`,step:e.steps.map((o,s)=>({"@type":"HowToStep",position:s+1,name:o.t,text:o.b}))})}),{meta:[{title:e.metaTitle},{name:"description",content:e.metaDescription},{property:"og:title",content:e.metaTitle},{property:"og:description",content:e.metaDescription},{property:"og:type",content:"website"},{property:"og:url",content:t},...de("hardware",`${e.device} ELD hardware — FMCSA-registered, plug-and-play, works with ELD Hub.`),{name:"twitter:title",content:e.metaTitle}],links:[{rel:"canonical",href:t}],scripts:n}}const GU=()=>C(()=>import("./hardware.iosix-eld-DjDxWdXZ.js"),[]),WU=R()({component:A(GU,"component"),head:()=>Ms(VU)}),XU={slug:"hardware/obd2-eld",device:"OBD-II ELD",productName:"OBD-II ELD Device",h1:"OBD-II ELD: What It Is and How to Pick the Right One",tagline:"The simplest way to make a truck FMCSA-compliant — no wiring, no mechanic.",intro:"An OBD-II ELD plugs into a truck's diagnostic port instead of being hard-wired. ELD Hub supports PT-30 and IOSiX hardware and sells both for $150 per device with free shipping. PT-30 includes a cable; IOSiX is device only. If you already own a compatible PT-30 or IOSiX, keep it and run it on ELD Hub software at $15/truck/month, no contract.",metaTitle:"OBD-II ELD Devices — FMCSA-Registered Plug-In ELDs | ELD Hub",metaDescription:"ELD Hub sells PT-30 and IOSiX hardware for $150 each with free shipping. PT-30 includes a cable; IOSiX is device only. Software $15/truck/month.",keySpecs:[{label:"What it is",value:"Plug-in Electronic Logging Device for the OBD-II port"},{label:"FMCSA rule",value:"49 CFR 395.15 — must be on the FMCSA ELD list"},{label:"Install",value:"Plug in, pair Bluetooth, log in — under 10 minutes"},{label:"Devices ELD Hub supports",value:"PT-30 and IOSiX (both FMCSA-registered)"},{label:"Best for",value:"1–20 truck fleets and owner-operators"},{label:"Price",value:"PT-30 $150 with cable; IOSiX $150 device only. Free shipping; software $15/truck/month"}],bullets:["No wiring, no mechanic, no ECM programming — plug in and drive.","Reads engine miles, engine hours, speed, and RPM through the diagnostic port.","Automatically detects duty status changes (Driving, On Duty, Off Duty, Sleeper).","Pairs to the driver's phone or tablet over Bluetooth.","Both PT-30 and IOSiX OBD-II devices work with ELD Hub — pick either.","Passes DOT roadside inspection in every state."],faqs:[{q:"Are OBD-II ELDs FMCSA-compliant?",a:"Only if the specific device is on the FMCSA ELD registration list. Both the PT-30 and IOSiX (the two OBD-II ELDs ELD Hub supports) are registered. Not every device sold as 'ELD' on Amazon or eBay is on the list — check the FMCSA list before buying."},{q:"What's the difference between an OBD-II ELD and a hard-wired ELD?",a:"OBD-II ELDs plug into the standard diagnostic port under the dash — no tools, no mechanic, driver can install it in 5 minutes. Hard-wired ELDs (older 9-pin/6-pin models on heavy-duty trucks) tap directly into the engine wiring. Both are FMCSA-compliant. OBD-I
41I is easier and cheaper for 1–20 truck fleets."},{q:"Which OBD-II ELD should I buy — PT-30 or IOSiX?",a:"Both work with ELD Hub and cost $150 per device with free shipping. PT-30 includes a diagnostic cable; IOSiX is device only. Tell us your truck year, make and model so we can check which fits."},{q:"Can I use any OBD-II adapter as an ELD?",a:"No. A generic OBD-II scanner or Bluetooth dongle is not an ELD. To be legal for HOS logging under 49 CFR 395, the device must be on the FMCSA ELD registration list and paired with a compliant app. That's why we sell PT-30 and IOSiX hardware rather than generic adapters."},{q:"Does an OBD-II ELD work on heavy-duty trucks?",a:"Yes, but you need the right cable. Class 7–8 trucks use a 6-pin or 9-pin round diagnostic connector instead of the flat OBD-II connector on light-duty vehicles. Every $150 PT-30 order includes the correct cable for your truck's year and make at no extra charge."},{q:"How much does an OBD-II ELD cost per month?",a:"ELD Hub software is $15/truck/month with no contract and includes HOS, DVIRs, IFTA and the dispatcher dashboard. Hardware is separate: PT-30 or IOSiX costs $150 per device with free shipping. PT-30 includes a cable; IOSiX does not."}]},YU=()=>C(()=>import("./hardware.obd2-eld-BccvOb34.js"),[]),KU=R()({component:A(YU,"component"),head:()=>Ms(XU)}),QU={slug:"hardware/pt30-eld",device:"PT-30",productName:"PT-30 ELD Device",priceUSD:"150",ctaLabel:"Get the PT-30 — $150, free shipping",h1:"PT-30 ELD Device — $150 with Cable, FMCSA-Registered",tagline:"PT-30 device $150 with cable, free shipping. Software $15/truck/month, no contract.",intro:"Price: $150 per PT-30 device, diagnostic cable included, with free shipping (in stock, ships same or next business day) anywhere in the mainland USA. Software is $15/truck/month with no contract. The PT-30 (Pacific Track PT30) is a compact OBD-II Electronic Logging Device used by dozens of ELD providers because it's FMCSA-registered, affordable, and dead-simple to install. Already own a PT-30 or an IOSiX device? Keep it — ELD Hub is compatible with both and re-registers your existing hardware at no cost.",metaTitle:"PT-30 ELD Device — $150 with Cable & Free Shipping | ELD Hub",metaDescription:"PT-30 ELD device: $150 with cable, free shipping (in stock, ships same or next business day). Software $15/truck/month, no contract. FMCSA-registered OBD-II ELD.",keySpecs:[{label:"Device price",value:"$150 per PT-30, diagnostic cable included"},{label:"Shipping",value:"free shipping — in stock, ships same or next business day"},{label:"Software price",value:"$15/truck/month, no contract"},{label:"Device type",value:"OBD-II plug-in ELD (no wiring, no mechanic)"},{label:"FMCSA registration",value:"Yes — registered on the official FMCSA ELD list"},{label:"Connectivity",value:"Bluetooth to driver phone/tablet, cellular data via device"},{label:"Supported vehicles",value:"Class 3–8 trucks with a 6-pin, 9-pin, or OBD-II diagnostic port"},{label:"Setup time",value:"Under 10 minutes per truck"}],bullets:["Reads engine ECM data (miles, engine hours, speed) required by 49 CFR 395.26 for HOS compliance.","Automatically records driving time, on-duty, off-duty, and sleeper berth status changes.","Bluetooth pairing to the ELD Hub app on iOS and Android — driver just plugs it in and logs in.","Cellular fallback so logs upload even when the driver's phone loses signal.","Works with the ELD Hub dispatcher dashboard for real-time GPS, DVIR review, and IFTA fuel tax.","Passes DOT roadside inspection with our downloadable ELD cab card and driver manual."],faqs:[{q:"Is the PT-30 FMCSA-registered?",a:"Yes. The PT-30 (Pacific Track PT30) is on the official FMCSA ELD registration list and is used by dozens of registered ELD providers, including ELD Hub. That means it passes DOT roadside inspections in every US state."},{q:"Which ELD providers use the PT-30 hardware?",a:"Several ELD software providers ship the PT-30 as their default hardware, including TT ELD, Factor ELD, Quantum ELD, GPS Tab, and ELD Hub. The hardware is the same across providers — what differs is the app, pricing, contract length, and support quality."},{q:"Can I use a PT-30 from another ELD provider with ELD Hub?",a:"In many cases yes — the PT-30 hardware is provider-configurable. If you're switching from TT ELD, Factor ELD, or another PT-30 provider, call us at 302-404-1177 and we'll walk you through re-registering the device to ELD Hub so you don't need to buy new hardware."},{q:"How much does the PT-30 cost?",a:"ELD Hub sells the PT-30 for $150 per device with the correct diagnostic cable included, and shipping is free (in stock, ships same or next business day). The device is a one-time purchase — software is billed separately at $15/truck/month with 
41no contract. If you already own a PT-30 or an IOSiX device, you don't need to buy anything: we re-register your hardware at no cost."},{q:"Do I need a mechanic to install the PT-30?",a:"No. The PT-30 plugs into the diagnostic port under the dash (6-pin, 9-pin, or OBD-II depending on your truck). No wiring, no tools, no ECM programming. The driver can do it in about 5 minutes."},{q:"Does the PT-30 need a data plan?",a:"The PT-30 includes an embedded cellular chip that uploads logs — the cellular data is bundled into your ELD Hub subscription. No separate SIM card, no data plan to manage."},{q:"What's the difference between the PT-30 and IOSiX?",a:"Both are FMCSA-registered OBD-II ELDs. The PT-30 is the cheaper, more common option and covers most Class 3–8 trucks. IOSiX has slightly better diagnostic data on newer vehicles and is our default recommendation for fleets running 2020+ model years. ELD Hub supports both — talk to us and we'll pick the right one for your trucks."}]},JU=()=>C(()=>import("./hardware.pt30-eld-C52EOgk-.js"),[]),ZU=R()({component:A(JU,"component"),head:()=>Ms(QU)}),e6={slug:"hardware/pt30-installation-guide",device:"PT-30",productName:"PT-30 ELD Installation",h1:"PT-30 ELD Installation Guide (10 Minutes, No Mechanic Needed)",tagline:"Step-by-step install for the PT-30 OBD-II ELD device with ELD Hub.",intro:"This is the same install we walk every ELD Hub driver through. Whether your PT-30 came from ELD Hub, TT ELD, Factor ELD, or another provider, the physical install is identical — the only thing that changes is which app you pair it to. Total time: under 10 minutes per truck.",metaTitle:"PT-30 ELD Installation Guide — 10-Minute Setup (2026)",metaDescription:"PT-30 ELD installation in under 10 minutes: plug into the diagnostic port, pair over Bluetooth, log in. Step-by-step for OBD-II, 6-pin and 9-pin trucks, plus free PT-30 re-registration.",keySpecs:[{label:"Install time",value:"5–10 minutes per truck"},{label:"Tools needed",value:"None — plug-in only"},{label:"Mechanic required",value:"No"},{label:"Cable options",value:"OBD-II (light-duty), 6-pin & 9-pin adapters (heavy-duty) included"},{label:"Driver app",value:"ELD Hub for iOS or Android — free download"}],bullets:["Works on Class 3–8 trucks: Ford, Freightliner, Peterbilt, Kenworth, Volvo, International, Mack.","Includes the correct diagnostic cable for your truck — tell us your year/make/model at checkout.","Bluetooth pairing to the ELD Hub driver app in under 60 seconds.","Automatic HOS status detection once the engine starts.","US-based phone support: 302-404-1177 if anything doesn't pair on the first try."],steps:[{t:"Locate the diagnostic port",b:"In light-duty trucks it's under the dash on the driver side (OBD-II). In heavy-duty trucks it's usually near the parking brake or under the steering column (6-pin or 9-pin round connector). ELD Hub ships the correct cable based on your truck year and make."},{t:"Plug in the PT-30",b:"Connect the cable's round end to the diagnostic port and the flat end to the PT-30 device. The device's LED will turn solid green within 30 seconds. Route the cable so it doesn't sit under your foot or pull on the port."},{t:"Turn the ignition on",b:"Set the ignition to ACC or start the engine. This wakes the ECM so the PT-30 can start reading engine data (miles, RPM, speed) required for FMCSA-compliant HOS logging."},{t:"Install the ELD Hub app",b:"On the driver's phone or tablet, download 'ELD Hub' from the App Store or Google Play. Enable Bluetooth and Location permissions when prompted — the FMCSA rule requires location capture with each duty status change."},{t:"Pair the PT-30 to the app",b:"Log in to the ELD Hub app, tap 'Pair Device,' and select the PT-30 serial number from the list. Pairing takes 15–30 seconds. Once paired, the app shows 'Connected — engine data live.'"},{t:"Verify HOS is recording",b:"Start driving. After ~5 mph the app should automatically switch you to Driving status. Come to a stop for 5 minutes and it should offer to switch to On Duty. If both work, you're done — the PT-30 is FMCSA-compliant and roadside-inspection ready."},{t:"Download the cab card and manual",b:"The FMCSA rule requires an ELD user manual and a malfunction instruction sheet in the cab at all times. Download both from your ELD Hub /eld-cab-card page and keep them in the glove box for DOT stops."}],faqs:[{q:"The PT-30 LED is red or blinking — what's wrong?",a:"Solid green = healthy and paired. Blinking green = healthy but not yet paired to a phone. Red = no engine data. Red usually means the diagnostic port isn't powered (turn the ignition on) or you're using the wrong cable for your truck's connector type (6-pin vs 9-pin vs OBD-II). Call 302-404-1177 with your truck's year, make, and model and we'll get the right cable shipped same-day."},{q:"How long does a full PT-30 install take?",a:"Physically plugging in the device is under 2 minutes. Downloading the app, pairing, and verifying HOS recording takes another 5–8 minutes. Budget 10 minutes per truck for a first-time install."},{q:"Do I need to install anything on the truck's ECM?",a:"No. The PT-30 is a read-only device — it queries the ECM through the diagnostic port using standard J1939 (heavy-duty
41) or OBD-II (light-duty) protocols. It doesn't program, modify, or write anything back to the truck's computer."},{q:"Can I use the PT-30 across multiple trucks?",a:"Each PT-30 is registered to one vehicle at a time (the VIN is bound to the device in ELD Hub). You can move a PT-30 to a different truck by calling support and re-assigning it, but you can't use one PT-30 across two active trucks simultaneously — that violates the FMCSA rule."},{q:"The Bluetooth pairing fails — what do I do?",a:"1) Force-close the ELD Hub app and reopen. 2) Turn Bluetooth off and back on. 3) Make sure Location permission is set to 'Always' for the ELD Hub app (iOS/Android both require this for ELDs). 4) Unplug the PT-30 for 10 seconds and plug it back in. If it still won't pair, call 302-404-1177."},{q:"Do I need to install the PT-30 differently for California, Texas, or other states?",a:"No. The FMCSA ELD rule is federal — the physical install is identical in every state. State differences apply to IFTA fuel tax filing, not the ELD device itself."}]},t6=()=>C(()=>import("./hardware.pt30-installation-guide-uLaahqOA.js"),[]),r6=R()({component:A(t6,"component"),head:()=>Ms(e6)}),n6={slug:"hardware/pt30-vs-iosix",device:"PT-30 vs IOSiX",productName:"PT-30 vs IOSiX ELD Comparison",h1:"PT-30 vs IOSiX ELD: Side-by-Side Hardware Comparison for Small Fleets",tagline:"Two FMCSA-registered OBD-II ELDs — here's how they differ and which one fits your trucks.",intro:"The PT-30 (Pacific Track) and IOSiX ELD are two FMCSA-registered devices used by small fleets. Both work with ELD Hub software at $15/truck/month. ELD Hub sells both for $150 per device with free shipping: PT-30 includes a diagnostic cable; IOSiX is device only. Both are in stock and ship same or next business day. Already own either device? We re-register compatible units for free.",metaTitle:"PT-30 vs IOSiX ELD: Hardware Comparison | ELD Hub",metaDescription:"Compare PT-30 and IOSiX ELD hardware. Both sold by ELD Hub for $150 each with free shipping. PT-30 includes cable; IOSiX is device only. Software $15/truck/month.",keySpecs:[{label:"PT-30 connector",value:"OBD-II (16-pin) with 6-pin and 9-pin adapters"},{label:"IOSiX connector",value:"9-pin (Class 8) or 6-pin (Class 3–7) direct — OBD-II adapter available"},{label:"PT-30 vehicle fit",value:"Best for Class 3–7 and mixed fleets on 2010–2019 trucks"},{label:"IOSiX vehicle fit",value:"Best for 2020+ Class 8 tractors and heavy-duty diagnostic depth"},{label:"Connectivity (both)",value:"Bluetooth to driver phone/tablet, embedded cellular for uploads"},{label:"FMCSA registration",value:"Both on the official FMCSA ELD list"},{label:"Price with ELD Hub",value:"PT-30 $150 with cable; IOSiX $150 device only. Both free shipping. Software $15/truck/month"}],bullets:["Both devices are FMCSA-registered and pass DOT roadside inspection in all 50 states.","Both cost $150 from ELD Hub; PT-30 includes a cable, while IOSiX is device only.","IOSiX pulls deeper engine diagnostic data (fault codes, DEF levels, engine hours) — useful for Class 8 fleets and preventive-maintenance workflows.","PT-30 installs in about 5 minutes with the OBD-II adapter; IOSiX takes 10 minutes because the 9-pin harness routes under the dash.","IOSiX has a more rugged housing rated for higher engine-bay temperatures — matters for long-haul sleepers.","ELD Hub supports both — if you already own PT-30 or IOSiX hardware from another provider, keep it and just switch software."],faqs:[{q:"Which is better, PT-30 or IOSiX?",a:"Neither is universally better — it depends on your fleet. Both cost $150 from ELD Hub. PT-30 includes a cable and suits mixed fleets and Class 3–7 trucks; IOSiX is device only and suits many Class 8 tractors. Call 302-404-1177 with your truck year, make and model to check fitment."},{q:"Are both FMCSA-registered?",a:"Yes. PT-30 (Pacific Track PT30) and IOSiX ELD are both on the official FMCSA ELD registration list. Either one satisfies the ELD mandate under 49 CFR 395.20."},{q:"Can I use my existing PT-30 or IOSiX device with ELD Hub?",a:"In most cases yes. If you're leaving TT ELD, Factor ELD, GPS Tab, Motive, or another provider that uses PT-30 or IOSiX hardware, we can re-register your existing device to ELD Hub — no new hardware purchase required. Call 302-404-1177 to check compatibility."},{q:"What's the price difference?",a:"ELD Hub sells both PT-30 and IOSiX for $150 per device with free shipping. PT-30 includes the diagnostic cable; IOSiX is device only, without a cable. Both are in stock and ship same or next business day. Compatible devices you already own can be re-registered at no cost. Software is $15/truck/month either way, no contract."},{q:"Does either need a data plan?",a:"No. Both PT-30 and IOSiX include embedded cellular chips, and the data is bundled into your ELD Hub subscription. Nothing to configure, no SIM cards to manage."},{q:"Which is easier to install?",a:"PT-30 wins on install speed — plug it into the OBD-I
41I port under the dash, done in 5 minutes. IOSiX takes about 10 minutes because the 9-pin connector routes through a harness. Neither requires a mechanic or ECM programming."},{q:"Which lasts longer in the truck?",a:"Both have multi-year hardware warranties. IOSiX has a slight edge on durability for long-haul Class 8 sleepers because the housing tolerates higher engine-bay temperatures. For day-cab and regional fleets the PT-30 lasts just as long in real-world use."},{q:"What if I have a mixed fleet with both light and heavy trucks?",a:"That's the most common case for small fleets under 20 trucks. Run PT-30 on the Class 3–7 straight trucks and IOSiX on the Class 8 tractors — ELD Hub handles both device types in one dispatcher dashboard. No extra fee for mixing hardware."}]},a6=()=>C(()=>import("./hardware.pt30-vs-iosix-w7tlv6vy.js"),[]),o6=R()({component:A(a6,"component"),head:()=>Ms(n6)}),i6=R()({loader:({params:e})=>{const t=U4[e.slug]??"/";throw ea({href:t,statusCode:301})}}),s6=[{q:"Can I really use my current PT-30 with ELD Hub?",a:"In most cases yes. The PT-30 is provider-configurable, so the same physical unit can be re-registered to a different FMCSA-registered ELD provider. Call 302-404-1177 with the serial number and we will confirm your specific unit before you cancel your current service."},{q:"Does ELD Hub charge to re-register hardware I already own?",a:"No. Re-registering a PT-30 or IOSiX you already own is free. You only pay the $15/truck/month software fee."},{q:"What if my device is provider-branded and cannot transfer?",a:"Then you need a new unit. ELD Hub sells PT-30 and IOSiX for $150 each with free shipping, in stock and shipping same or next business day. PT-30 includes a diagnostic cable; IOSiX is device only. There is no software contract or setup fee."},{q:"Will I lose my logs when I switch?",a:"Not if you export first. Pull your last six months of RODS from your current provider before the account closes — FMCSA requires you to retain them for six months regardless of who your provider is."},{q:"How long is the changeover per truck?",a:"About an hour per truck when reusing existing hardware, including pairing and updating the cab card packet. HOS and IFTA go live the same day."}],l6=()=>C(()=>import("./switch.pt30-iosix-providers-BBf89iek.js"),[]),c0="Keep Your PT-30 or IOSiX — Switch ELD Providers Free",u0="Which ELD providers use PT-30 and IOSiX hardware, and how to switch to ELD Hub without buying a new device. $15/truck/month, no contract, free re-registration.",yp="https://goeldhub.com/switch/pt30-iosix-providers",c6=R()({component:A(l6,"component"),head:()=>({meta:[{title:c0},{name:"description",content:u0},{property:"og:title",content:c0},{property:"og:description",content:u0},{property:"og:type",content:"website"},{property:"og:url",content:yp},...de("switch","Keep your PT-30 or IOSiX — switch ELD software for $15/truck.")],links:[{rel:"canonical",href:yp}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:s6.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Hardware",item:"https://goeldhub.com/hardware"},{"@type":"ListItem",position:3,name:"PT-30 & IOSiX provider switch guide",item:yp}]})}]})}),u6=()=>C(()=>import("./vs.index-BO-LLyMf.js"),[]),bp="ELD Comparisons — ELD Hub vs Motive, Samsara & More",vp="Compare ELD Hub to Motive, Samsara, TT ELD, EZ Logz, and ELD 247. Side-by-side pricing, features, and hardware for small trucking fleets.",wp="https://goeldhub.com/vs",d6=R()({component:A(u6,"component"),head:()=>({meta:[{title:bp},{name:"description",content:vp},{property:"og:title",content:bp},{property:"og:description",content:vp},...de("comparison","Compare ELDs — honest side-by-side for small fleets."),{property:"og:type",content:"website"},{property:"og:url",content:wp},{name:"twitter:card",content:"summary_large_image"}],links:[{rel:"canonical",href:wp}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"CollectionPage",name:bp,url:wp,description:vp})}]})}),h6={competitor:"BigRoad",competitorSlug:"bigroad",slug:"vs/bigroad-vs-eld-hub",pageKind:"vs",tagline:"Flat $15/truck. No plan tiers. Keep your PT-30 or IOSiX.",intro:"BigRoad is a long-running ELD and logbook platform sold in plan tiers. ELD Hub is built for fleets under 20 trucks: one flat $15/truck/month rate, no contract, IFTA and DVIRs included, and compatibility with PT-30 and IOSiX hardware you may already own.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"Tiered plans; price rises with features"},comparison:[{feature:"Published price",eldHub:"$15/truck/mo flat",competitor:"Tiered — DashLink plan dependent"},{feature:"Contract length",eldHub:"Month-to-month, cancel anytime",competitor:"Term varies by plan"},{feature:"Hardware",eldHub:"PT-30 or IOSiX $150 each, free shipping; compatible BYOD re-registration free",competitor:"Provider-supplied device"},{feature:"FMCSA-registered ELD",eldHub:"Yes",competitor:"Yes",eldHubWins:!1},{feature:"IFTA fuel tax reporting",eldHub:"Included",competitor:"Higher tier / add-on"},{feature:"Phone support",eldHub:"302-404-1177 — US-based human",competitor:"Ticket and ph
41one by plan"},{feature:"Bundled fuel, factoring, freight",eldHub:"Yes — ELD Hub network",competitor:"ELD and fleet tools only"},{feature:"Setup",eldHub:"Self-serve, under 10 minutes",competitor:"Account provisioning required"}],whySwitch:[{icon:"price",t:"No tier math",b:"One rate covers HOS, DVIRs, IFTA, and GPS. You never have to move up a plan to get the feature your inspector asks about."},{icon:"speed",t:"Hardware you may already own",b:"We re-register compatible PT-30 or IOSiX units free. If yours cannot transfer, either new device costs $150 with free shipping; PT-30 includes a cable, IOSiX is device only."},{icon:"support",t:"Built for small fleets",b:"Fuel discounts, factoring, freight booking, and CDL hiring come with the account — the things a 1–20 truck operation actually needs alongside compliance."}],faqs:[{q:"Is ELD Hub FMCSA-registered like BigRoad?",a:"Yes. Both are on the official FMCSA ELD registration list and both pass DOT roadside inspection nationwide. What differs is price, bundled tools, and support."},{q:"Can I keep my hardware when leaving BigRoad?",a:"It depends on the device. PT-30 and IOSiX units are provider-configurable and ELD Hub re-registers them at no cost. BigRoad's own hardware may not be transferable — call 302-404-1177 with the model number and we'll confirm before you buy anything."},{q:"How does BigRoad pricing compare?",a:"BigRoad sells tiered plans, so the cost depends on which features you need. ELD Hub is a single $15/truck/month rate that already includes IFTA and DVIRs — compare it against your invoice total rather than the entry-tier price."},{q:"Does ELD Hub have a driver app?",a:"Yes, iOS and Android. The driver plugs in the device, pairs over Bluetooth, and logs in — no wiring and no mechanic."},{q:"How long does the switch take?",a:"About an hour per truck reusing existing hardware, or two days if a PT-30 ships. Your dashboard, HOS, and IFTA go live the day pairing finishes."},{q:"What should I do before cancelling BigRoad?",a:"Export the last six months of RODS, then update the in-cab packet with the ELD Hub user manual, malfunction procedure, and data-transfer instructions so your next inspection goes cleanly."}]},p6={price:cu,speed:p$,support:mn};function uG({data:e}){const t=e.pageKind==="alternative"?`Best ${e.competitor} Alternative for Small Fleets`:`${e.competitor} vs ELD Hub`;return c.jsxs("div",{className:"min-h-screen bg-background",children:[c.jsx(jt,{}),c.jsx("section",{className:"border-b border-border/70 bg-gradient-to-b from-secondary/30 to-background",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16 sm:py-20",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-accent/30 bg-accent/10 px-3 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(yt,{className:"size-3.5"})," ELD Hub vs ",e.competitor]}),c.jsx("h1",{className:"mt-5 text-4xl font-bold tracking-tight text-foreground sm:text-5xl",children:t}),c.jsx("p",{className:"mt-3 text-lg font-semibold text-accent",children:e.tagline}),c.jsx("p",{className:"mt-4 max-w-2xl text-lg text-muted-foreground",children:e.intro}),c.jsx("div",{className:"max-w-2xl",children:c.jsx(Ft,{question:`Is ELD Hub a good ${e.competitor} alternative for a small fleet?`,answer:e.quickAnswer??`Yes, for fleets under 20 trucks. ELD Hub is an FMCSA-registered ELD at ${e.pricing.eldHub}, including IFTA, DVIRs, and US phone support at 302-404-1177. ${e.competitor} costs ${e.pricing.competitor}. ELD Hub also re-registers a PT-30 or IOSiX device you already own at no cost.`})}),c.jsxs("div",{className:"mt-8 flex flex-wrap gap-3",children:[c.jsxs("a",{href:Ee.registration,className:"inline-flex items-center gap-2 rounded-lg bg-accent-gradient px-6 py-3 text-sm font-bold text-accent-foreground shadow-accent transition hover:scale-[1.03]",children:[c.jsx(yt,{className:"size-4"})," Switch to ELD Hub — $15/truck ",c.jsx(at,{className:"size-4"})]}),c.jsx("a",{href:Ee.phone,className:"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-3 text-sm font-semibold text-foreground hover:bg-muted",children:"Talk to a human: 302-404-1177"})]})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:"Side-by-side comparison"}),c.jsx("p",{className:"mt-2 text-muted-foreground",children:"Real numbers, not marketing copy. Prices confirmed from public sources at time of publishing."}),c.jsx("div",{className:"mt-8 overflow-hidden rounded-xl border border-border",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-secondary/50",children:c.jsxs("tr",{children:[c.jsx("th",{className:"p-4 text-left font-semibold text-foreground",children:"Feature"}),c.jsx("th",{className:"p-4 text-left font-semibold text-accent",children:"ELD Hub"}),c.jsx("th",{className:"p-4 text-left font-semibold text-muted-foreground",children:e.competitor})]})}),c.jsxs("tbody",{children:[c.jsxs("tr",{className:"border-t border-border bg-background",children:[c.jsx("td",{className:"p-4 font-semibold text-foreground",children:"Starting price"}),c.jsx("td",{className:"p-4 font-bold text-foreground",children:e.pricing.eldHub}),c.jsx("td",{className:"p-4 text-muted-foreground",children:e.pricing.competitor})]}),e.comparison.map((n,o)=>c.jsxs("tr",{className:"border-t border-border bg-background",children:[c.jsx("td",{className:"p-4 font-semibold text-foreground",children:n.feature}),c.jsx("td",{className:"p-4 text-foreground",children:c.jsxs("span",{className:"inline-flex items-start gap-1.5",children:[n.eldHubWins!==!1&&c.jsx(ut,{className:"mt-0.5 size-4 shrink-0 text-accent"}),c.jsx("span",{children:n.eldHub})]})}),c.jsx("td",{className:"p-4 text-muted-foreground",children:c.jsxs("span",{className:"inline-flex items-start gap-1.5",children:[n.eldHubWins!==!1&&c.jsx(LE,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground
41/60"}),c.jsx("span",{children:n.competitor})]})})]},o))]})]})})]}),c.jsx("section",{className:"border-y border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:["Why fleets switch from ",e.competitor," to ELD Hub"]}),c.jsx("div",{className:"mt-8 grid gap-4 sm:grid-cols-3",children:e.whySwitch.map(n=>{const o=p6[n.icon];return c.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[c.jsx(o,{className:"size-6 text-accent"}),c.jsx("p",{className:"mt-3 font-semibold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.b})]},n.t)})})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsx("h2",{className:"text-2xl font-bold text-foreground sm:text-3xl",children:"How to switch (takes about 30 minutes)"}),c.jsx("ol",{className:"mt-6 space-y-4",children:[{t:"Cancel your existing plan",b:`Most ${e.competitor} contracts are month-to-month or have a 30-day notice window. Check your contract before starting.`},{t:"Order ELD Hub hardware (or keep yours)",b:"Already own a compatible PT-30 or IOSiX? We re-register it free. Need a device? Both cost $150 each with free shipping and ship same or next business day. PT-30 includes a cable; IOSiX is device only."},{t:"Plug in and pair",b:"Driver plugs the device into the OBD-II port, opens the ELD Hub app, and pairs over Bluetooth. Under 10 minutes per truck."},{t:"Log in and drive",b:"Your fleet dashboard, HOS, DVIRs, and IFTA reporting go live the same day."}].map((n,o)=>c.jsxs("li",{className:"flex gap-4 rounded-xl border border-border bg-card p-5",children:[c.jsx("span",{className:"grid size-8 shrink-0 place-items-center rounded-full bg-accent-gradient text-sm font-bold text-accent-foreground",children:o+1}),c.jsxs("div",{children:[c.jsx("p",{className:"font-semibold text-foreground",children:n.t}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.b})]})]},o))})]}),c.jsx("section",{className:"border-t border-border bg-secondary/20",children:c.jsxs("div",{className:"mx-auto max-w-4xl px-6 py-16",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-bold uppercase tracking-[0.18em] text-accent",children:[c.jsx(Hr,{className:"size-3.5"})," ",e.competitor," vs ELD Hub FAQ"]}),c.jsx("h2",{className:"mt-3 text-2xl font-bold text-foreground sm:text-3xl",children:"Frequently asked questions"}),c.jsx("div",{className:"mt-8 space-y-3",children:e.faqs.map((n,o)=>c.jsxs("details",{className:"group rounded-xl border border-border bg-card p-5",children:[c.jsx("summary",{className:"cursor-pointer list-none font-semibold text-foreground marker:hidden",children:n.q}),c.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:n.a})]},o))})]})}),c.jsxs("section",{className:"mx-auto max-w-4xl px-6 py-14",children:[c.jsx("h2",{className:"text-xl font-bold text-foreground",children:"Compare more ELD providers"}),c.jsxs("div",{className:"mt-5 grid gap-3 sm:grid-cols-3",children:[c.jsxs(W,{to:"/vs",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"All ELD comparisons"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"See ELD Hub vs Motive, Samsara, EZ Logz and more."})]}),c.jsxs(W,{to:"/best-eld-small-fleets",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"Best ELD for Small Fleets"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Buyer's guide for 1–20 truck fleets."})]}),c.jsxs(W,{to:"/fmcsa-registered-eld-list",className:"rounded-xl border border-border bg-card p-4 hover:border-accent",children:[c.jsx("p",{className:"font-semibold text-foreground",children:"FMCSA Registered ELD List"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"What FMCSA registration means."})]})]})]}),c.jsxs("div",{className:"mx-auto max-w-5xl px-6 pb-16",children:[c.jsx(uu,{brand:e.competitor}),c.jsx(du,{brand:e.competitor,className:"mt-6",heading:`Switching from ${e.competitor}? See what you save`})]}),c.jsx(qt,{}),c.jsx(Mt,{})]})}function bn(e){const t=`https://goeldhub.com/${e.slug}`,n=e.metaTitle??(e.pageKind==="alternative"?`${e.competitor} Alternative — $15/Truck, 14 Days Free`:`${e.competitor} vs ELD Hub — Price, Contract, Hardware`),o=e.metaDescription??(e.pageKind==="alternative"?`A cheaper ${e.competitor} alternative for small fleets: FMCSA-registered, $15 per truck, no contract, 14 days free. Keep your PT-30 or IOSiX. See the full comparison.`:`${e.competitor} vs ELD Hub side by side: price per truck, contract length, hardware and support. ELD Hub is $15 per truck, no contract, 14 days free.`);return{meta:[{title:n},{name:"description",content:o},{property:"og:title",content:n},{property:"og:description",content:o},{property:"og:type",content:"website"},{property:"og:url",content:t}
41,...de("comparison",`Compare ${e.competitor} vs ELD Hub — honest side-by-side for small fleets.`),{name:"twitter:title",content:n}],links:[{rel:"canonical",href:t}],scripts:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Product",name:"ELD Hub",description:`FMCSA-registered ELD platform for small trucking fleets — a ${e.competitor} alternative.`,brand:{"@type":"Brand",name:"ELD Hub"},offers:{"@type":"Offer",price:"15",priceCurrency:"USD",url:t},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.9",reviewCount:"127"}})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(s=>({"@type":"Question",name:s.q,acceptedAnswer:{"@type":"Answer",text:s.a}}))})},{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://goeldhub.com/"},{"@type":"ListItem",position:2,name:"Compare ELDs",item:"https://goeldhub.com/vs"},{"@type":"ListItem",position:3,name:`${e.competitor} vs ELD Hub`,item:t}]})}]}}const f6=()=>C(()=>import("./vs.bigroad-vs-eld-hub-7VN7TjLU.js"),[]),m6=R()({component:A(f6,"component"),head:()=>bn(h6)}),g6={competitor:"ELD 247",competitorSlug:"eld247",slug:"vs/eld247-vs-eld-hub",pageKind:"vs",tagline:"A more established platform with a broader feature set at the same price.",intro:"ELD 247 is a smaller ELD provider popular with owner-operators. ELD Hub offers the same FMCSA-compliant logging plus freight tools, IFTA reporting, and multi-hardware options at the same price point.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"$15–20/truck/mo"},comparison:[{feature:"FMCSA-registered",eldHub:"Yes",competitor:"Yes",eldHubWins:!1},{feature:"Contract length",eldHub:"Month-to-month",competitor:"Month-to-month",eldHubWins:!1},{feature:"Hardware options",eldHub:"PT-30 or IOSiX",competitor:"Single option"},{feature:"US-based phone support",eldHub:"302-404-1177",competitor:"Limited support hours"},{feature:"Freight factoring integration",eldHub:"Yes",competitor:"No"},{feature:"IFTA reports",eldHub:"Auto-generated",competitor:"Manual export"},{feature:"Fleet manager dashboard",eldHub:"Included",competitor:"Basic"},{feature:"Hardware cost",eldHub:"PT-30 or IOSiX $150 each, free shipping (PT-30 with cable; IOSiX device only)",competitor:"Purchased separately"}],whySwitch:[{icon:"price",t:"More included, same price",b:"Freight tools and IFTA at ELD Hub are bundled. Add-ons on smaller platforms usually cost extra."},{icon:"support",t:"US phone support",b:"Delaware-based team answers directly. No ticket queues, no offshore call centers."},{icon:"speed",t:"Fast switch",b:"Under 30 minutes per truck. Ship, plug in, pair, log in."}],faqs:[{q:"Is ELD 247 FMCSA-registered?",a:"Yes. ELD 247 and ELD Hub are both on the FMCSA ELD list. Either passes DOT inspections nationally — the difference is in features and support."},{q:"Why switch from ELD 247 to ELD Hub?",a:"Three main reasons: (1) US-based phone support instead of email tickets, (2) freight and factoring tools bundled with the ELD, (3) two hardware options so you can pick the right device for your fleet size."},{q:"Can I keep my ELD 247 hardware?",a:"Often yes — a compatible PT-30 or IOSiX can be re-registered free. If not, either device costs $150 with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"How much does the switch cost?",a:"$0 in setup or activation fees, and ELD Hub is month-to-month. New PT-30 or IOSiX hardware costs $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"How long does migration take?",a:"About 30 minutes per truck once hardware arrives. Order → 2-day ship → plug into OBD-II → pair over Bluetooth → log in. Same-day live."}]},y6=()=>C(()=>import("./vs.eld247-vs-eld-hub-CPK8QtBF.js"),[]),b6=R()({component:A(y6,"component"),head:()=>bn(g6)}),v6={competitor:"EZ Logz",competitorSlug:"ezlogz",slug:"vs/ezlogz-vs-eld-hub",pageKind:"vs",tagline:"US-based support, transparent pricing, no surprise renewals.",intro:"EZ Logz is a low-cost ELD popular with owner-operators, but many drivers report inconsistent support and unclear billing. ELD Hub matches EZ Logz on price and beats it on service, hardware, and FMCSA compliance clarity.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"$15–25/truck/mo depending on plan"},comparison:[{feature:"US-based phone support",eldHub:"Yes — Delaware team, 302-404-1177",competitor:"Limited phone support"},{feature:"FMCSA-registered",eldHub:"Yes — PT-30 and IOSiX",competitor:"Yes",eldHubWins:!1},{feature:"Contract length",eldHub:"Month-to-month",competitor:"Month-to-month",eldHubWins:!1},{feature:"Hardware options",eldHub:"PT-30 or IOSiX (your choice)",competitor:"Single hardware option"},{feature:"IFTA fuel tax reports",eldHub:"Included, auto-generated by state",competitor:"Add-on tier"},{feature:"Fleet manager dashboard",eldHub:"Included at every price tier",competitor:"Included on higher tiers"},{feature:"Freight factoring integration",eldHub:"Yes — ELD Hub freight tools",competitor:"No"},{feature:"Hardware cost",eldHub:"PT-30 or IOSiX $150 each, free shipping (PT-30 with cable;
41 IOSiX device only)",competitor:"Purchased separately"}],whySwitch:[{icon:"price",t:"Same price, more included",b:"$15/truck at ELD Hub includes IFTA and freight tools that EZ Logz charges extra for. Actual cost per truck ends up 30–40% lower."},{icon:"support",t:"Real US support",b:"Delaware-based support team. Same person answers whether you have 1 truck or 20."},{icon:"speed",t:"Two hardware choices",b:"PT-30 for simplicity, IOSiX for advanced fleets. EZ Logz gives you one option — take it or leave it."}],faqs:[{q:"Is EZ Logz FMCSA-registered?",a:"Yes, EZ Logz appears on the FMCSA ELD list. So does ELD Hub. Both are DOT inspection-ready in every state — this isn't a differentiator between them."},{q:"Is ELD Hub actually cheaper than EZ Logz?",a:"The sticker prices are close, but ELD Hub bundles IFTA reporting and freight tools that EZ Logz sells as add-ons. Most fleets pay $18–22 all-in with EZ Logz vs a flat $15 with ELD Hub."},{q:"Can I keep my EZ Logz hardware and switch to ELD Hub software?",a:"If your EZ Logz device is a compatible PT-30 or IOSiX, ELD Hub may re-register it free; call with the serial number to confirm. If you need new hardware, both are $150 each with free shipping. PT-30 includes a cable; IOSiX is device only."},{q:"How does support compare?",a:"ELD Hub has a direct phone line to a US-based team in Delaware. Many EZ Logz users report ticket-based support with slower response times, especially for smaller accounts."},{q:"How long does it take to migrate?",a:"Under 30 minutes per truck. Order hardware, plug it in, pair over Bluetooth, log in. Your fleet manager dashboard is live the same day."},{q:"Does ELD Hub have freight factoring like EZ Logz Freight?",a:"Yes. ELD Hub integrates freight, factoring, and dispatching tools directly with your ELD data — one login, one platform."}]},w6=()=>C(()=>import("./vs.ezlogz-vs-eld-hub-DBGCuZwt.js"),[]),x6=R()({component:A(w6,"component"),head:()=>bn(v6)}),E6={competitor:"Factor ELD",competitorSlug:"factoreld",slug:"vs/factoreld-vs-eld-hub",pageKind:"vs",tagline:"Same FMCSA-registered PT-30 hardware. Bundled business tools ELD-only providers don't touch.",intro:"Factor ELD ships the PT-30 device and offers ELD Hub-adjacent features like installation service in Denver. ELD Hub goes further: same PT-30 (or IOSiX), same FMCSA compliance, plus fuel discounts, factoring, freight booking, and driver hiring bundled at $15/truck/month.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"Quote-based, varies by fleet size"},comparison:[{feature:"Contract length",eldHub:"Month-to-month",competitor:"Varies"},{feature:"Hardware",eldHub:"PT-30 or IOSiX included",competitor:"PT-30",eldHubWins:!1},{feature:"FMCSA-registered ELD",eldHub:"Yes",competitor:"Yes",eldHubWins:!1},{feature:"Public pricing",eldHub:"Yes — $15/truck flat",competitor:"Sales-rep quote"},{feature:"IFTA fuel tax",eldHub:"Included",competitor:"Varies"},{feature:"Phone support",eldHub:"302-404-1177 — US-based",competitor:"Regional (Denver-focused)"},{feature:"Coverage",eldHub:"Nationwide + all 50 states",competitor:"Nationwide software, Denver-centric install"},{feature:"Bundled fuel, factoring, freight",eldHub:"Yes — ELD Hub network",competitor:"ELD only"}],whySwitch:[{icon:"price",t:"Flat rate, published",b:"$15/truck/mo posted publicly. No quote request, no 'what size is your fleet' negotiation."},{icon:"speed",t:"Nationwide coverage",b:"Factor ELD's install service is Denver-centric. ELD Hub's self-serve install works anywhere in 10 minutes."},{icon:"support",t:"Whole-business bundle",b:"ELD Hub includes fuel cards, factoring, freight booking, and driver hiring. Factor ELD is ELD software plus install services."}],faqs:[{q:"Is ELD Hub FMCSA-registered like Factor ELD?",a:"Yes. Both are on the official FMCSA ELD list and both use the FMCSA-registered PT-30 hardware. Compliance is identical — the difference is pricing, coverage, and bundled services."},{q:"Can I keep my Factor ELD PT-30 and switch to ELD Hub?",a:"In many cases yes. The PT-30 hardware is provider-configurable. Call 302-404-1177 with your device seri
41al number and we'll check re-registration. If yes, no new hardware needed."},{q:"Does Factor ELD have public pricing?",a:"Factor ELD pricing is generally quote-based and varies by fleet size and install services. ELD Hub publishes $15/truck/month flat, no matter fleet size or truck count."},{q:"I'm not in Denver — does ELD Hub work in my area?",a:"Yes. ELD Hub is a self-serve install anywhere in the US — the driver plugs the PT-30 into the OBD-II port and pairs over Bluetooth in about 10 minutes. No installer visit required."},{q:"How long does it take to switch from Factor ELD to ELD Hub?",a:"About 30 minutes per truck if we can re-register your existing PT-30. Two days if new hardware ships. Your fleet dashboard, HOS, and IFTA go live the same day."},{q:"What extra services does ELD Hub include?",a:"Fuel discounts through AtoB, invoice factoring, freight booking through RFP Freight, CDL driver hiring, and commercial insurance quotes — all bundled with your ELD Hub account. Factor ELD focuses on ELD software and install services."}]},S6=()=>C(()=>import("./vs.factoreld-vs-eld-hub-DRB0ARHi.js"),[]),k6=R()({component:A(S6,"component"),head:()=>bn(E6)}),D6={competitor:"GPS Tab",competitorSlug:"gpstab",slug:"vs/gpstab-vs-eld-hub",pageKind:"vs",tagline:"Same PT-30 hardware. Simpler pricing. Real US-based phone support.",intro:"GPS Tab is a popular ELD provider that ships the PT-30 OBD-II device. So does ELD Hub. Where we differ: transparent $15/truck/month pricing, no contract, and a Delaware phone line answered by a human — 302-404-1177.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"Quote-based, typically $20–30/truck/mo"},comparison:[{feature:"Contract length",eldHub:"Month-to-month, cancel anytime",competitor:"Varies by rep"},{feature:"Hardware",eldHub:"PT-30 or IOSiX included",competitor:"PT-30",eldHubWins:!1},{feature:"FMCSA-registered ELD",eldHub:"Yes",competitor:"Yes",eldHubWins:!1},{feature:"Pricing transparency",eldHub:"Public $15/truck flat rate",competitor:"Sales-rep quote"},{feature:"IFTA fuel tax reporting",eldHub:"Included",competitor:"Add-on"},{feature:"Phone support",eldHub:"302-404-1177 — US-based human",competitor:"Ticket + email primary"},{feature:"Bundled fuel, factoring, freight",eldHub:"Yes — ELD Hub network",competitor:"ELD only"},{feature:"Setup",eldHub:"Self-serve, under 10 min",competitor:"Onboarding call required"}],whySwitch:[{icon:"price",t:"One price, no negotiation",b:"$15/truck posted publicly. No 'let me get you a quote,' no volume tiers, no annual renegotiations."},{icon:"speed",t:"Keep your PT-30",b:"You already own PT-30 hardware from GPS Tab. Call us — in most cases we can re-register your existing device to ELD Hub. No hardware purchase."},{icon:"support",t:"Bundled with the rest of your business",b:"ELD Hub includes fuel discounts, factoring, freight, and CDL driver hiring. GPS Tab is ELD-only."}],faqs:[{q:"Is ELD Hub FMCSA-registered like GPS Tab?",a:"Yes. Both are on the official FMCSA ELD list. Both use the same PT-30 hardware. The difference is the app, pricing, and support model."},{q:"Can I keep my GPS Tab PT-30 and switch to ELD Hub?",a:"In many cases yes. The PT-30 is provider-configurable — call 302-404-1177 with your device serial number and we'll check whether it can be re-registered to ELD Hub. If yes, you skip buying new hardware entirely."},{q:"How much does GPS Tab cost vs ELD Hub?",a:"GPS Tab is quote-based. Publicly reported pricing lands around $20–30 per truck per month depending on features. ELD Hub is a flat $15/truck/mo with IFTA and DVIRs included. On a 5-truck fleet that's around $300–900/yr in savings."},{q:"Does GPS Tab include IFTA reporting?",a:"IFTA is generally an add-on with GPS Tab. It's included in ELD Hub's $15/truck/mo base plan — no upsell."},{q:"How long does it take to switch?",a:"About 30 minutes per truck if you're re-registering existing PT-30 hardware. Two days if new hardware ships. Your fleet dashboard, HOS, and IFTA go live the same day you finish pairing."},{q:"What does ELD Hub bundle that GPS Tab doesn't?",a:"Fuel discounts (AtoB), invoice factoring, freight booking (RFP Freight), CDL driver hiring, and commercial insurance quotes — all through the ELD Hub network. GPS Tab is standalone ELD software."}]},T6=()=>C(()=>
41import("./vs.gpstab-vs-eld-hub-DFkAt_Ek.js"),[]),L6=R()({component:A(T6,"component"),head:()=>bn(D6)}),A6={competitor:"HOS247",competitorSlug:"hos247",slug:"vs/hos247-vs-eld-hub",pageKind:"vs",tagline:"Compatible OBD-II hardware. Public $15/truck pricing. No contract.",intro:"HOS247 and ELD Hub are both FMCSA-registered ELD providers built around plug-in OBD-II hardware. The difference is what you pay and what comes with it: ELD Hub posts a flat $15/truck/month with IFTA, DVIRs, freight, and factoring included, and answers the phone at 302-404-1177.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"Quote-based; hardware and plan tier vary"},comparison:[{feature:"Published price",eldHub:"$15/truck/mo, listed publicly",competitor:"Quote on request"},{feature:"Contract length",eldHub:"Month-to-month, cancel anytime",competitor:"Plan-dependent"},{feature:"Hardware",eldHub:"PT-30 or IOSiX $150 each, free shipping; compatible BYOD re-registration free",competitor:"Provider-supplied OBD-II device"},{feature:"FMCSA-registered ELD",eldHub:"Yes",competitor:"Yes",eldHubWins:!1},{feature:"IFTA fuel tax reporting",eldHub:"Included",competitor:"Plan-dependent"},{feature:"Phone support",eldHub:"302-404-1177 — US-based human",competitor:"Multilingual phone support",eldHubWins:!1},{feature:"Bundled fuel, factoring, freight",eldHub:"Yes — ELD Hub network",competitor:"ELD only"},{feature:"Setup",eldHub:"Self-serve, under 10 minutes",competitor:"Onboarding call typical"}],whySwitch:[{icon:"price",t:"One posted price",b:"$15/truck/month, published on the site. No quote call, no volume tier, no annual renegotiation — which matters most when you run fewer than 20 trucks."},{icon:"speed",t:"Keep the device you already own",b:"If your trucks run a PT-30 or IOSiX, ELD Hub re-registers them at no cost. Call 302-404-1177 with the serial number and we'll confirm your exact model before you switch."},{icon:"support",t:"The rest of your business, bundled",b:"Fuel discounts, invoice factoring, freight booking, CDL driver hiring, and insurance quotes run through the ELD Hub network. HOS247 is ELD software only."}],faqs:[{q:"Is ELD Hub FMCSA-registered like HOS247?",a:"Yes. Both appear on the official FMCSA ELD registration list, so both pass DOT roadside inspection in every state. The differences are pricing, bundled tools, and support model — not compliance."},{q:"Can I keep my HOS247 hardware and move to ELD Hub?",a:"If your trucks run a PT-30 or IOSiX OBD-II device, yes — both are provider-configurable and we re-register them free. Call 302-404-1177 with the serial number so we can verify your exact model rather than guess."},{q:"How much does HOS247 cost compared to ELD Hub?",a:"HOS247 quotes per fleet, so there is no single list price to compare. ELD Hub is a flat $15/truck/month with IFTA and DVIRs included — compare that against the all-in total on your current invoice, not the headline rate."},{q:"Does ELD Hub include IFTA?",a:"Yes, IFTA fuel tax reporting is part of the $15/truck/month base plan with no add-on fee."},{q:"How long does switching from HOS247 take?",a:"Under an hour per truck when reusing compatible hardware you own. If you need new hardware, PT-30 and IOSiX cost $150 each with free shipping and ship same or next business day. PT-30 includes a cable; IOSiX is device only."},{q:"What do I need to do before I cancel?",a:"Export your last six months of RODS from HOS247 — FMCSA requires you to retain them — and swap the cab card packet with ELD Hub's user manual, malfunction procedure, and data-transfer instructions."}]},_6=()=>C(()=>import("./vs.hos247-vs-eld-hub-DAsHezpO.js"),[]),C6=R()({component:A(_6,"component"),head:()=>bn(A6)}),R6={competitor:"Motive",competitorSlug:"motive",slug:"vs/motive-alternative",pageKind:"alternative",tagline:"Same fleet visibility. A fraction of the price. No 3-year contract.",metaTitle:"Motive Alternative for 1–20 Trucks — $15/Truck, No Contract",metaDescription:"Motive runs $30–50/truck on a 3-year contract. ELD Hub is the FMCSA-registered alternative built for 1–20 truck fleets: $15/truck month-to-month, IFTA and DVIR included, 14 days free. 5 trucks save ~$900–2,000 a year.",intro:"Motive (formerly KeepTruckin) is built for enterprise fleets — with enterprise pricing and multi-year contracts. ELD Hub gives 1–20 truck operations the same HOS, DVIR, IFTA, and GPS features for $15/truck/month, month-to-month.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"Custom quote (typically $30–50/truck/mo, 3-year contract)"},comparison:[{feature:"Contract length",eldHub:"Month-to-month, cancel anytime",competitor:"1–3 year contract required"},{feature:"Hardware cost",eldHub:"PT-30 or IOSiX $150 each; free shipping",competitor:"Hardware fees or amortized in contract"},{feature:"FMCSA-registered ELD",eldHub:"Yes — PT-30 and IOSiX",competitor:"Yes",eldHubWins:!1},{feature:"Setup time",eldHub:"Under 10 min per truck, self-serve",competitor:"Sales rep + onboarding call required"},{feature:"Support",eldHub:"Direct phone: 302-404-1177",competitor:"Ticket-based, tiered by contract"},{feature:"Best fit",eldHub:"1–20 truck fleets, owner-operators",competitor:"50+ truck enterprise fleets"},{feature:"IFTA fuel tax reporting",eldHub:"Included",competitor:"Included on higher tiers"},{feature:"Cancellation fee",eldHub:"$0",competitor:"Early termination fees per unit"}],whySwitch:[{icon:"price",t:"Half the price, no lock-in",b:"Small fleets rarely need enterprise features. Stop paying enterprise prices for a 5-truck operation."},{icon:"speed",t:"Same-day switch",b:"Cancel Motive on your renewal date, plug in an ELD Hub PT-30, and drive. No migration project."},{icon:"support",t:"Real people answer the phone",b:"302-404-1177 goes to a person in Delaware — not a tiered support portal that routes you overseas."}],faqs:[{q:"Is ELD Hub FMCSA-registered like Motive?",a:"Yes. ELD Hub is on the official FMCSA ELD list. Both the PT-30 and IOSiX hardware options pass DOT roadside inspections in every state."},{q:"How much does Motive cost vs ELD Hub for a 5-truck fleet?",a:"Motive is quote-based, but public estimates put small fleets at $30–50 per truck per month on a 1–3 year contract. ELD Hub is a flat $15/truck/mo with 
41no contract. On 5 trucks, that's $75/mo vs $150–250/mo — around $900–2,000 in annual savings."},{q:"Can I keep my Motive hardware and switch to ELD Hub software?",a:"No. Motive hardware only works with Motive's platform. ELD Hub sells PT-30 or IOSiX devices for $150 each with free shipping. PT-30 includes a diagnostic cable; IOSiX is device only. Check your truck's fitment before ordering."},{q:"What features does Motive have that ELD Hub doesn't?",a:"Motive's AI dashcam add-on and enterprise fleet-analytics dashboards are more mature. If you run 100+ trucks and need AI collision detection or advanced telematics, Motive may fit better. For 1–20 truck fleets running HOS, DVIRs, and IFTA, ELD Hub covers everything you need."},{q:"Do I get charged an early termination fee to leave Motive?",a:"Read your Motive contract — most include per-unit termination fees. ELD Hub can't cover those, but we can help you time the switch to your renewal date to avoid them."},{q:"How long does it take to switch from Motive to ELD Hub?",a:"Under 30 minutes per truck. Order hardware, wait 2 days for delivery, plug in, pair over Bluetooth, log in. Your fleet dashboard is live the same afternoon."}]},I6=()=>C(()=>import("./vs.motive-alternative-L3VkYJDO.js"),[]),O6=R()({component:A(I6,"component"),head:()=>bn(R6)}),$6={competitor:"Samsara",competitorSlug:"samsara",slug:"vs/samsara-alternative",pageKind:"alternative",tagline:"Enterprise features are nice. You don't need enterprise prices.",intro:"Samsara is a public-company platform aimed at 50+ truck fleets, with pricing to match. ELD Hub delivers FMCSA-compliant ELD, HOS, DVIR, IFTA, and GPS at $15/truck/month — no multi-year contract, no sales call to see pricing.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"Custom quote (typically $27–45/truck/mo, 3-5 year contract)"},comparison:[{feature:"Public pricing",eldHub:"$15/truck/mo, on our homepage",competitor:"Quote-only, sales call required"},{feature:"Contract length",eldHub:"Month-to-month",competitor:"3–5 year contract"},{feature:"Hardware cost",eldHub:"PT-30 or IOSiX $150 each, free shipping (PT-30 with cable; IOSiX device only)",competitor:"Amortized into contract (~$500–800/truck)"},{feature:"FMCSA-registered ELD",eldHub:"Yes",competitor:"Yes",eldHubWins:!1},{feature:"Setup",eldHub:"Self-serve, under 10 min",competitor:"Sales rep + implementation team"},{feature:"Support",eldHub:"Direct phone line",competitor:"Tiered by contract value"},{feature:"Best fit",eldHub:"1–20 truck fleets",competitor:"100+ truck enterprises"},{feature:"Setup fee",eldHub:"$0",competitor:"Often several hundred per truck"}],whySwitch:[{icon:"price",t:"Transparent pricing",b:"You'll never see Samsara's price on their site — you have to book a demo. Ours is on the homepage: $15/truck/mo."},{icon:"speed",t:"No 3-year handcuffs",b:"Samsara contracts routinely run 3–5 years. ELD Hub is month-to-month. Cancel anytime with zero fees."},{icon:"support",t:"Owner-operator support",b:"Support answers the phone for a 2-truck fleet the same way it answers for a 200-truck fleet. Same 302-404-1177."}],faqs:[{q:"Is ELD Hub FMCSA-registered like Samsara?",a:"Yes. ELD Hub appears on the official FMCSA ELD list with PT-30 and IOSiX hardware. DOT-inspection ready in all 50 states."},{q:"How much does Samsara cost compared to ELD Hub?",a:"Samsara is quote-only, but publicly reported deals show $27–45 per truck per month on 3-5 year contracts. ELD Hub is $15/truck/mo, no contract. A 10-truck fleet typically saves $1,500–3,600/year switching."},{q:"Does ELD Hub have GPS tracking like Samsara?",a:"Yes. Real-time GPS location, breadcrumb trails, and geofencing are included in the base $15/truck plan — no add-on tier required."},{q:"What about Samsara's AI dashcam?",a:"Samsara's AI Dash Cam is one of the strongest features on the market for enterprise fleets. ELD Hub doesn't ship an AI dashcam yet. If AI collision detection is your #1 use case and you have 100+ trucks, Samsara may fit better. For core ELD compliance and fleet management on smaller fleets, ELD Hub covers everything."},{q:"Can I get out of my Samsara contract early?",a:"Samsara contracts typically have early termination fees calculated as remaining contract value. Read your MSA. Most fleets time the switch to their renewal date to avoid ETFs."},{q:"How long does it take to migrate from Samsara to ELD Hub?",a:"About 30 minutes per truck. Ship in hardware, plug it into OBD-II, pair with the ELD Hub app over Bluetooth, log in. No implementation team needed."}]},N6=()=>C(()=>import("./vs.samsara-alternative-CRf3bEfm.js"),[]),H6=R()({component:A(N6,"component"),head:()=>bn($6)}),P6={competitor:"TT ELD",competitorSlug:"tteld",slug:"vs/tteld-vs-eld-hub",pageKind:"vs",tagline:"Same PT-30 hardware. Better softw
41are, better support, better price.",intro:"TT ELD sells the popular PT-30 device, but their software has aged and support is largely dispatcher-focused. ELD Hub runs on the same PT-30 hardware, plus IOSiX as an option — with a modern app, US phone support, and freight tools built in.",pricing:{eldHub:"$15/truck/month, no contract",competitor:"$15–20/truck/mo depending on reseller"},comparison:[{feature:"Runs on PT-30 hardware",eldHub:"Yes",competitor:"Yes",eldHubWins:!1},{feature:"Alternative hardware option",eldHub:"IOSiX (advanced fleets)",competitor:"PT-30 only"},{feature:"Modern mobile app",eldHub:"Redesigned 2025 — iOS + Android",competitor:"Dated UI, driver complaints"},{feature:"US-based phone support",eldHub:"Yes — 302-404-1177",competitor:"Reseller-dependent"},{feature:"Hardware cost",eldHub:"PT-30 or IOSiX $150 each, free shipping (PT-30 with cable; IOSiX device only)",competitor:"Purchased separately (~$150)"},{feature:"Freight factoring built-in",eldHub:"Yes",competitor:"No"},{feature:"IFTA fuel tax reports",eldHub:"Included",competitor:"Basic reports only"},{feature:"Fleet dispatcher dashboard",eldHub:"Included",competitor:"Included",eldHubWins:!1}],whySwitch:[{icon:"speed",t:"Keep the PT-30 you know",b:"Drivers already trained on the PT-30 device don't relearn anything. Same hardware, new app."},{icon:"support",t:"One vendor, not a reseller chain",b:"TT ELD often sells through resellers, so support quality varies wildly. ELD Hub is direct — one company, one team."},{icon:"price",t:"More included at the same price",b:"Freight factoring, dispatch, IFTA reports — all included at $15/truck. TT ELD charges extra for most of these."}],faqs:[{q:"Is TT ELD FMCSA-registered?",a:"Yes, TT ELD is on the FMCSA ELD list, and so is ELD Hub. The underlying PT-30 hardware is FMCSA-certified regardless of which platform runs it."},{q:"Can I keep my TT ELD PT-30 hardware and switch to ELD Hub?",a:"The PT-30 is provider-configurable. Call 302-404-1177 with the serial number to confirm if your current unit can be re-registered free. If not, a new PT-30 or IOSiX costs $150 each with free shipping; PT-30 includes a cable, IOSiX is device only."},{q:"How does ELD Hub's driver app compare to TT ELD's app?",a:"TT ELD's app hasn't been redesigned in several years and drivers frequently report Bluetooth pairing issues. ELD Hub redesigned both iOS and Android apps in 2025 with faster pairing, cleaner HOS displays, and offline log capture."},{q:"Is support really different?",a:"TT ELD is often distributed through independent resellers, so who answers your call depends on where you bought. ELD Hub is a single company with a Delaware-based support line: 302-404-1177."},{q:"How long does it take to switch from TT ELD to ELD Hub?",a:"About 30 minutes per truck once hardware is ready. Re-register a compatible PT-30 free or order PT-30 or IOSiX at $150 each with free shipping (PT-30 with cable; IOSiX device only), pair with the app, then log in."},{q:"Does ELD Hub offer freight and factoring like other platforms?",a:"Yes. ELD Hub bundles freight, factoring, and dispatch tools with the ELD — TT ELD focuses only on the log side."}]},j6=()=>C(()=>import("./vs.tteld-vs-eld-hub-DuluQ1ag.js"),[]),q6=R()({component:A(j6,"component"),head:()=>bn(P6)}),M6=()=>C(()=>import("./admin.leads-CZEobw_-.js"),__vite__mapDeps([34,27,8])),F6=R()({component:A(M6,"component"),head:()=>({meta:[{title:"Leads Dashboard | ELD Hub"},{name:"description",content:"Internal ELD Hub dashboard for captured leads and page conversion activity."},{name:"robots",content:"noindex, nofollow"},{property:"og:title",content:"Leads Dashboard | ELD Hub"},{property:"og:description",content:"Internal ELD Hub leads dashboard."},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"}]})}),U6=A$.update({id:"/",path:"/",getParentRoute:()=>_}),VE=R$.update({id:"/_authenticated",getParentRoute:()=>_}),B6=F$.update({id:"/alfa-eld-login",path:"/alfa-eld-login",getParentRoute:()=>_}),z6=z$.update({id:"/algo-eld-login",path:"/algo-eld-login",getParentRoute:()=>_}),V6=Y$.update({id:"/amazon-relay-requirements",path:"/amazon-relay-requirements",getParentRoute:()=>_}),G6=J$.update({id:"/anytime-logs-login",path:"/anytime-logs-login",getParentRoute:()=>_}),W6=t3.update({id:"/apollo-eld-login",path:"/apollo-eld-login",getParentRoute:()=>_}),X6=n3.update({id:"/auth",path:"/auth",getParentRoute:()=>_}),Y6=i3.update({id:"/azuga-eld-login",path:"/azuga-eld-login",getParentRoute:()=>_}),K6=d3.update({id:"/best-eld-small-fleets",path:"/best-eld-small-fleets",getParentRoute:()=>_}),Q6=f3.update({id:"/bigroad-login",path:"/bigroad-login",getParentRoute:()=>_}),J6=y3.update({id:"/blue-star-eld-login",path:"/blue-star-eld-login",getParentRoute:()=>_}),Z6=S3.update({id:"/boc-3-filing",path:"/boc-3-filing",getParentRoute:()=>_}),eB=L3.update({id:"/box-truck-eld",path:"/box-truck-eld",getParentRoute:()=>_}),tB=R3.update({id:"/box-truck-loads",path:"/box-truck-loads",getParentRoute:()=>_}),rB=H3.update({id:"/broker-eld-requirements",path:"/broker-eld-requirements",getParentRoute:()=>_}),nB=U3.update({id:"/broker-requires-eld",path:"/broker-requires-eld",getParentRoute:()=>_}),aB=G3.update({id:"/buy-eld-device",path:"/buy-eld-device",getParentRoute:()=>_}),oB=Y3.update({id:"/california-clean-truck-check",path:"/california-clean-truck-check",getParentRoute:()=>_}),iB=J3.update({id:"/cancel-apollo-eld",path:"/cancel-apollo-eld",getParentRoute:()=>_}),sB=tN.update({id:"/cancel-bigroad",path:"/cancel-bigroad",getParentRoute:()=>_}),lB=aN.update({id:"/cancel-blue-ink-tech",path:"/cancel-blue-ink-tech",getParentRoute:()=>_}),cB=sN.update({id:"/cancel-eld-contract",path:"/cancel-eld-contract",getParentRoute:()=>_}),uB=uN.update({id:"/cancel-eld-mandate",path:"/cancel-eld-mandate",getParentRoute:()=>_}),dB=pN.update({id:"/cancel-eld-solutions",path:"/cancel-eld-solutions",getParentRoute:()=>_}),hB=gN.update({id:"/cancel-eroad",path:"/cancel-eroad",getParentRoute:()=>_}),pB=vN.update({id:"/cancel-ezlogz",path:"/cancel-ezlogz",getParentRoute:()=>_}),fB=EN.update({id:"/cancel-factor-eld",path:"/cancel-factor-eld",getParentRoute:()=>_}),mB=DN.update({id:"/cancel-garmin-elog",path:"/cancel-garmin-elog",getParentRoute:()=>_}),gB=AN.update({id:"/cancel-geotab",path:"/cancel-geotab",getParentRoute:()=>_}),yB=RN.update({id:"/cancel-gorilla-safety",path:"/cancel-gorilla-safety",getParentRoute:()=>_}),bB=$N.update({id:"/cancel-gpstab",path:"/cancel-gpstab",getParentRoute:()=>_}),vB=PN.update({id:"/cancel-isaac-instruments",path:"/cancel-isaac-instruments",getParentRoute:()=>_}),wB=MN.update({id:"/cancel-jj-keller",path:"/cancel-jj-keller",getParentRoute:()=>_}),xB=BN.update({id:"/cancel-keeptruckin",path:"/cancel-keeptruckin",getParentRoute:()=>_}),EB=GN.update({id:"/cancel-lytx",path:"/cancel-lytx",getParentRoute:()=>_}),SB=YN.update({id:"/cancel-max-eld",path:"/cancel-max-eld",getParentRoute:()=>_}),kB=JN.update({id:"/cancel-motive",path:"/cancel-motive",getParentRoute:()=>_}),DB=tH.update({id:"/cancel-omnitracs",path:"/cancel-omnitracs",getParentRoute:()=>_}),TB=aH.update({id:"/cancel-one-step-gps",path:"/cancel-one-step-gps",getParentRoute:()=>_}),LB=sH.update({id:"/cancel-peoplenet",path:"/cancel-peoplenet",getParentRoute:()=>_}),AB=uH.update({id:"/cancel-rand-mcnally",path:"/cancel-rand-mcnally",getParentRoute:()=>_}),_B=pH.update({id:"/cancel-samsara",path:"/cancel-samsara",getParentRoute:()=>_}),CB=gH.update({id:"/cancel-sharp-eld",path:"/cancel-sharp-eld",getParentRoute:()=>_}),RB=bH.update({id:"/cancel-terminal",path:"/cancel-terminal",getParentRoute:()=>_}),IB=xH.update({id:"/cancel-transflo",path:"/cancel-transflo",getParentRoute:()=>_}
41),OB=kH.update({id:"/cancel-trimble",path:"/cancel-trimble",getParentRoute:()=>_}),$B=LH.update({id:"/cancel-tteld",path:"/cancel-tteld",getParentRoute:()=>_}),NB=CH.update({id:"/cancel-verizon-connect",path:"/cancel-verizon-connect",getParentRoute:()=>_}),HB=OH.update({id:"/cancel-vistracks",path:"/cancel-vistracks",getParentRoute:()=>_}),PB=HH.update({id:"/cancel-zonar",path:"/cancel-zonar",getParentRoute:()=>_}),jB=qH.update({id:"/captain-eld-login",path:"/captain-eld-login",getParentRoute:()=>_}),qB=FH.update({id:"/cargo-van-eld",path:"/cargo-van-eld",getParentRoute:()=>_}),MB=zH.update({id:"/cargo-van-loads",path:"/cargo-van-loads",getParentRoute:()=>_}),FB=XH.update({id:"/cheap-eld",path:"/cheap-eld",getParentRoute:()=>_}),UB=QH.update({id:"/club-eld-login",path:"/club-eld-login",getParentRoute:()=>_}),BB=nP.update({id:"/connect-eld-to-highway",path:"/connect-eld-to-highway",getParentRoute:()=>_}),zB=oP.update({id:"/contact",path:"/contact",getParentRoute:()=>_}),VB=sP.update({id:"/cost-per-mile-calculator",path:"/cost-per-mile-calculator",getParentRoute:()=>_}),GB=uP.update({id:"/digital-eld-login",path:"/digital-eld-login",getParentRoute:()=>_}),WB=pP.update({id:"/dot-compliance",path:"/dot-compliance",getParentRoute:()=>_}),XB=gP.update({id:"/dot-drug-testing-consortium",path:"/dot-drug-testing-consortium",getParentRoute:()=>_}),YB=xP.update({id:"/dot-inspection-eld",path:"/dot-inspection-eld",getParentRoute:()=>_}),KB=kP.update({id:"/eld-arizona",path:"/eld-arizona",getParentRoute:()=>_}),QB=LP.update({id:"/eld-cab-card",path:"/eld-cab-card",getParentRoute:()=>_}),JB=CP.update({id:"/eld-california",path:"/eld-california",getParentRoute:()=>_}),ZB=$P.update({id:"/eld-exemptions",path:"/eld-exemptions",getParentRoute:()=>_}),ez=PP.update({id:"/eld-florida",path:"/eld-florida",getParentRoute:()=>_}),tz=FP.update({id:"/eld-for-1-truck",path:"/eld-for-1-truck",getParentRoute:()=>_}),rz=VP.update({id:"/eld-for-highway",path:"/eld-for-highway",getParentRoute:()=>_}),nz=KP.update({id:"/eld-for-trucker-tools",path:"/eld-for-trucker-tools",getParentRoute:()=>_}),az=ZP.update({id:"/eld-georgia",path:"/eld-georgia",getParentRoute:()=>_}),oz=rj.update({id:"/eld-hub-facts",path:"/eld-hub-facts",getParentRoute:()=>_}),iz=oj.update({id:"/eld-hub-login",path:"/eld-hub-login",getParentRoute:()=>_}),sz=lj.update({id:"/eld-illinois",path:"/eld-illinois",getParentRoute:()=>_}),lz=dj.update({id:"/eld-login",path:"/eld-login",getParentRoute:()=>_}),cz=mj.update({id:"/eld-mandate-guide",path:"/eld-mandate-guide",getParentRoute:()=>_}),uz=bj.update({id:"/eld-mandate-plus-login",path:"/eld-mandate-plus-login",getParentRoute:()=>_}),dz=xj.update({id:"/eld-market-report",path:"/eld-market-report",getParentRoute:()=>_}),hz=kj.update({id:"/eld-north-carolina",path:"/eld-north-carolina",getParentRoute:()=>_}),pz=Lj.update({id:"/eld-ohio",path:"/eld-ohio",getParentRoute:()=>_}),fz=Cj.update({id:"/eld-pennsylvania",path:"/eld-pennsylvania",getParentRoute:()=>_}),mz=$j.update({id:"/eld-pricing",path:"/eld-pricing",getParentRoute:()=>_}),gz=Pj.update({id:"/eld-tennessee",path:"/eld-tennessee",getParentRoute:()=>_}),yz=Mj.update({id:"/eld-texas",path:"/eld-texas",getParentRoute:()=>_}),bz=Uj.update({id:"/eld-that-works-with-highway",path:"/eld-that-works-with-highway",getParentRoute:()=>_}),vz=Vj.update({id:"/eld-trex-login",path:"/eld-trex-login",getParentRoute:()=>_}),wz=Wj.update({id:"/eld-under-10000-lbs",path:"/eld-under-10000-lbs",getParentRoute:()=>_}),xz=Qj.update({id:"/eld-violations-penalties",path:"/eld-violations-penalties",getParentRoute:()=>_}),Ez=e5.update({id:"/eroad-eld-login",path:"/eroad-eld-login",getParentRoute:()=>_}),Sz=n5.update({id:"/erods-login",path:"/erods-login",getParentRoute:()=>_}),kz=i5.update({id:"/ezlogz-login",path:"/ezlogz-login",getParentRoute:()=>_}),Dz=c5.update({id:"/fleet-tracking",path:"/fleet-tracking",getParentRoute:()=>_}),Tz=h5.update({id:"/fm-eld-login",path:"/fm-eld-login",getParentRoute:()=>_}),Lz=m5.update({id:"/fmcsa-registered-eld-list",path:"/fmcsa-registered-eld-list",getParentRoute:()=>_}),Az=b5.update({id:"/forward-thinking-eld-login",path:"/forward-thinking-eld-login",getParentRoute:()=>_}),_z=w5.update({id:"/free-eld-compliance-calculator",path:"/free-eld-compliance-calculator",getParentRoute:()=>_}),Cz=k5.update({id:"/fuel-cards",path:"/fuel-cards",getParentRoute:()=>_}),Rz=L5.update({id:"/fuel-savings",path:"/fuel-savings",getParentRoute:()=>_}),Iz=C5.update({id:"/garmin-elog-login",path:"/garmin-elog-login",getParentRoute:()=>_}),Oz=O5.update({id:"/geotab-login",path:"/geotab-login",getParentRoute:()=>_}),$z=H5.update({id:"/geotab-pricing",path:"/geotab-pricing",getParentRoute:()=>_}),Nz=q5.update({id:"/gpstab-login",path:"/gpstab-login",getParentRoute:()=>_}),Hz=U5.update({id:"/green-light-eld-login",path:"/green-light-eld-login",getParentRoute:()=>_}),Pz=z5.update({id:"/highway-carrier-vetting",path:"/highway-carrier-vetting",getParentRoute:()=>_}),jz=G5.update({id:"/highway-eld-integration",path:"/highway-eld-integration",getParentRoute:()=>_}),qz=X5.update({id:"/highway-eld-providers",path:"/highway-eld-providers",getParentRoute:()=>_}),Mz=J5.update({id:"/hos-rules",path:"/hos-rules",getParentRoute:()=>_}),Fz=tq.update({id:"/hos247-login",path:"/hos247-login",getParentRoute:()=>_}),Uz=oq.update({id:"/hotshot-eld",path:"/hotshot-eld",getParentRoute:()=>_}),Bz=lq.update({id:"/hours-of-service",path:"/hours-of-service",getParentRoute:()=>_}),zz=dq.update({id:"/how-to-start-box-truck-business",path:"/how-to-start-box-truck-business",getParentRoute:()=>_}),Vz=fq.update({id:"/how-to-start-cargo-van-business",path:"/how-to-start-cargo-van-business",getParentRoute:()=>_}),Gz=yq.update({id:"/how-to-start-hotshot-business",path:"/how-to-start-hotshot-business",getParentRoute:()=>_}),Wz=Sq.update({id:"/how-to-start-trucking-company",path:"/how-to-start-trucking-company",getParentRoute:()=>_}),Xz=Tq.update({id:"/id-eld-login",path:"/id-eld-login",getParentRoute:()=>_}),Yz=Rq.update({id:"/ifta-reporting-software",path:"/ifta-reporting-software",getParentRoute:()=>_}),Kz=$q.update({id:"/ironman-eld-login",path:"/ironman-eld-login",getParentRoute:()=>_}),Qz=Pq.update({id:"/irp-apportioned-plates",path:"/irp-apportioned-plates",getParentRoute:()=>_}),Jz=Mq.update({id:"/isaac-instruments-login",path:"/isaac-instruments-login",getParentRoute:()=>_}),Zz=Bq.update({id:"/linxup-login",path:"/linxup-login",getParentRoute:()=>_}),eV=Gq.update({id:"/loop-eld-login",path:"/loop-eld-login",getParentRoute:()=>_}),tV=Yq.update({id:"/lucid-eld-login",path:"/lucid-eld-login",getParentRoute:()=>_}),rV=Jq.update({id:"/master-eld-login",path:"/master-eld-login",getParentRoute:()=>_}),nV=tM.update({id:"/max-eld-login",path:"/max-eld-login",getParentRoute:()=>_}),aV=aM.update({id:"/mc-authority",path:"/mc-authority",getParentRoute:()=>_}),oV=sM.update({id:"/motive-alternative-small-fleet",path:"/motive-alternative-small-fleet",getParentRoute:()=>_}),iV=uM.update({id:"/motive-login",path:"/motive-login",getParentRoute:()=>_}),sV=pM.update({id:"/motive-pricing",path:"/motive-pricing",getParentRoute:()=>_}),lV=gM.update({id:"/new-authority-eld",path:"/new-authority-eld",getParentRoute:()=>_}),cV=bM.update({id:"/new-carrier-checklist",path:"/new-carrier-checklist",getParentRoute:()=>_}),uV=xM.update({id:"/next-fleet-eld-login",path:"/next-fleet-eld-login",getParentRoute:()=>_}),dV=kM.update({id:"/nextraq-login",path:"/nextraq-login",getParentRoute:()=>_}),hV=LM.update({id:"/omnitracs-login",path:"/omnitracs-login",getParentRoute:()=>_}),pV=CM.update({id:"/omnitracs-pricing",path:"/omnitracs-pricing",getParentRoute:()=>_}),fV=OM.update({id:"/one-step-gps-login",path:"/one-step-gps-login",getParentRoute:()=>_}),mV=HM.update({id:"/optima-eld-login",path:"/optima-eld-login",getParentRoute:()=>_}),gV=MM.update({id:"/owner-operator-eld",path:"/owner-operator-eld",getParentRoute:()=>_}),yV=BM.update({id:"/peak-eld-login",path:"/peak-eld-login",getParentRoute:()=>_}),bV=GM.update({id:"/phoenix-eld-login",path:"/phoenix-eld-login",getParentRoute:()=>_}
41),vV=XM.update({id:"/pickup-truck-eld",path:"/pickup-truck-eld",getParentRoute:()=>_}),wV=KM.update({id:"/press",path:"/press",getParentRoute:()=>_}),xV=JM.update({id:"/privacy-policy",path:"/privacy-policy",getParentRoute:()=>_}),EV=tF.update({id:"/rand-mcnally-eld-login",path:"/rand-mcnally-eld-login",getParentRoute:()=>_}),SV=aF.update({id:"/rock-eld-login",path:"/rock-eld-login",getParentRoute:()=>_}),kV=sF.update({id:"/royal-eld-login",path:"/royal-eld-login",getParentRoute:()=>_}),DV=uF.update({id:"/samsara-login",path:"/samsara-login",getParentRoute:()=>_}),TV=pF.update({id:"/samsara-pricing",path:"/samsara-pricing",getParentRoute:()=>_}),LV=gF.update({id:"/sharp-eld-login",path:"/sharp-eld-login",getParentRoute:()=>_}),AV=vF.update({id:"/simple-eld-login",path:"/simple-eld-login",getParentRoute:()=>_}),_V=xF.update({id:"/sprinter-van-eld",path:"/sprinter-van-eld",getParentRoute:()=>_}),CV=kF.update({id:"/start-trucking-company-california",path:"/start-trucking-company-california",getParentRoute:()=>_}),RV=LF.update({id:"/start-trucking-company-florida",path:"/start-trucking-company-florida",getParentRoute:()=>_}),IV=CF.update({id:"/start-trucking-company-georgia",path:"/start-trucking-company-georgia",getParentRoute:()=>_}),OV=OF.update({id:"/start-trucking-company-illinois",path:"/start-trucking-company-illinois",getParentRoute:()=>_}),$V=HF.update({id:"/start-trucking-company-texas",path:"/start-trucking-company-texas",getParentRoute:()=>_}),NV=qF.update({id:"/stellar-eld-login",path:"/stellar-eld-login",getParentRoute:()=>_}),HV=UF.update({id:"/swift-eld-login",path:"/swift-eld-login",getParentRoute:()=>_}),PV=WF.update({id:"/switch-eld-provider",path:"/switch-eld-provider",getParentRoute:()=>_}),jV=KF.update({id:"/switch-free-month",path:"/switch-free-month",getParentRoute:()=>_}),qV=JF.update({id:"/switch-now",path:"/switch-now",getParentRoute:()=>_}),MV=e4.update({id:"/switch-savings-calculator",path:"/switch-savings-calculator",getParentRoute:()=>_}),FV=n4.update({id:"/terminal-eld-login",path:"/terminal-eld-login",getParentRoute:()=>_}),UV=o4.update({id:"/terms-and-conditions",path:"/terms-and-conditions",getParentRoute:()=>_}),BV=l4.update({id:"/trimble-eld-login",path:"/trimble-eld-login",getParentRoute:()=>_}),zV=u4.update({id:"/trucking-startup-cost-calculator",path:"/trucking-startup-cost-calculator",getParentRoute:()=>_}),VV=p4.update({id:"/tteld-login",path:"/tteld-login",getParentRoute:()=>_}),GV=g4.update({id:"/ucr-filing",path:"/ucr-filing",getParentRoute:()=>_}),WV=v4.update({id:"/usdot-number",path:"/usdot-number",getParentRoute:()=>_}),XV=E4.update({id:"/verizon-connect-login",path:"/verizon-connect-login",getParentRoute:()=>_}),YV=D4.update({id:"/vista-eld-login",path:"/vista-eld-login",getParentRoute:()=>_}),KV=A4.update({id:"/what-is-an-eld",path:"/what-is-an-eld",getParentRoute:()=>_}),QV=R4.update({id:"/x-eld-login",path:"/x-eld-login",getParentRoute:()=>_}),JV=I4.update({id:"/authors/$",path:"/authors/$",getParentRoute:()=>_}),ZV=j4.update({id:"/blog/",path:"/blog/",getParentRoute:()=>_}),e8=W4.update({id:"/blog/$slug",path:"/blog/$slug",getParentRoute:()=>_}),t8=Q4.update({id:"/blog/factoring-comparison-new-authorities",path:"/blog/factoring-comparison-new-authorities",getParentRoute:()=>_}),r8=rU.update({id:"/blog/get-mc-authority-checklist",path:"/blog/get-mc-authority-checklist",getParentRoute:()=>_}),n8=iU.update({id:"/blog/how-much-does-it-cost-to-start-trucking-company",path:"/blog/how-much-does-it-cost-to-start-trucking-company",getParentRoute:()=>_}),a8=uU.update({id:"/blog/new-authority-first-90-days",path:"/blog/new-authority-first-90-days",getParentRoute:()=>_}),o8=fU.update({id:"/categories/$category",path:"/categories/$category",getParentRoute:()=>_}),i8=gU.update({id:"/embed/eld-compliance-calculator",path:"/embed/eld-compliance-calculator",getParentRoute:()=>_}),s8=bU.update({id:"/glossary/",path:"/glossary/",getParentRoute:()=>_}),l8=xU.update({id:"/glossary/box-truck-dimensions",path:"/glossary/box-truck-dimensions",getParentRoute:()=>_}),c8=kU.update({id:"/glossary/coi",path:"/glossary/coi",getParentRoute:()=>_}),u8=LU.update({id:"/glossary/csa-score",path:"/glossary/csa-score",getParentRoute:()=>_}),d8=CU.update({id:"/glossary/dtc-codes",path:"/glossary/dtc-codes",getParentRoute:()=>_}),h8=OU.update({id:"/glossary/dvir",path:"/glossary/dvir",getParentRoute:()=>_}),p8=HU.update({id:"/glossary/ifta",path:"/glossary/ifta",getParentRoute:()=>_}),f8=qU.update({id:"/glossary/mc-number",path:"/glossary/mc-number",getParentRoute:()=>_}),m8=UU.update({id:"/glossary/straight-truck",path:"/glossary/straight-truck",getParentRoute:()=>_}),g8=zU.update({id:"/hardware/",path:"/hardware/",getParentRoute:()=>_}),y8=WU.update({id:"/hardware/iosix-eld",path:"/hardware/iosix-eld",getParentRoute:()=>_}),b8=KU.update({id:"/hardware/obd2-eld",path:"/hardware/obd2-eld",getParentRoute:()=>_}),v8=ZU.update({id:"/hardware/pt30-eld",path:"/hardware/pt30-eld",getParentRoute:()=>_}),w8=r6.update({id:"/hardware/pt30-installation-guide",path:"/hardware/pt30-installation-guide",getParentRoute:()=>_}),x8=o6.update({id:"/hardware/pt30-vs-iosix",path:"/hardware/pt30-vs-iosix",getParentRoute:()=>_}),E8=i6.update({id:"/services/$slug",path:"/services/$slug",getParentRoute:()=>_}),S8=c6.update({id:"/switch/pt30-iosix-providers",path:"/switch/pt30-iosix-providers",getParentRoute:()=>_}),k8=d6.update({id:"/vs/",path:"/vs/",getParentRoute:()=>_}),D8=m6.update({id:"/vs/bigroad-vs-eld-hub",path:"/vs/bigroad-vs-eld-hub",getParentRoute:()=>_}),T8=b6.update({id:"/vs/eld247-vs-eld-hub",path:"/vs/eld247-vs-eld-hub",getParentRoute:()=>_}
41),L8=x6.update({id:"/vs/ezlogz-vs-eld-hub",path:"/vs/ezlogz-vs-eld-hub",getParentRoute:()=>_}),A8=k6.update({id:"/vs/factoreld-vs-eld-hub",path:"/vs/factoreld-vs-eld-hub",getParentRoute:()=>_}),_8=L6.update({id:"/vs/gpstab-vs-eld-hub",path:"/vs/gpstab-vs-eld-hub",getParentRoute:()=>_}),C8=C6.update({id:"/vs/hos247-vs-eld-hub",path:"/vs/hos247-vs-eld-hub",getParentRoute:()=>_}),R8=O6.update({id:"/vs/motive-alternative",path:"/vs/motive-alternative",getParentRoute:()=>_}),I8=H6.update({id:"/vs/samsara-alternative",path:"/vs/samsara-alternative",getParentRoute:()=>_}),O8=q6.update({id:"/vs/tteld-vs-eld-hub",path:"/vs/tteld-vs-eld-hub",getParentRoute:()=>_}),$8=F6.update({id:"/admin/leads",path:"/admin/leads",getParentRoute:()=>VE}),N8={AuthenticatedAdminLeadsRoute:$8},H8=VE._addFileChildren(N8),P8={IndexRoute:U6,AuthenticatedRouteRoute:H8,AlfaEldLoginRoute:B6,AlgoEldLoginRoute:z6,AmazonRelayRequirementsRoute:V6,AnytimeLogsLoginRoute:G6,ApolloEldLoginRoute:W6,AuthRoute:X6,AzugaEldLoginRoute:Y6,BestEldSmallFleetsRoute:K6,BigroadLoginRoute:Q6,BlueStarEldLoginRoute:J6,Boc3FilingRoute:Z6,BoxTruckEldRoute:eB,BoxTruckLoadsRoute:tB,BrokerEldRequirementsRoute:rB,BrokerRequiresEldRoute:nB,BuyEldDeviceRoute:aB,CaliforniaCleanTruckCheckRoute:oB,CancelApolloEldRoute:iB,CancelBigroadRoute:sB,CancelBlueInkTechRoute:lB,CancelEldContractRoute:cB,CancelEldMandateRoute:uB,CancelEldSolutionsRoute:dB,CancelEroadRoute:hB,CancelEzlogzRoute:pB,CancelFactorEldRoute:fB,CancelGarminElogRoute:mB,CancelGeotabRoute:gB,CancelGorillaSafetyRoute:yB,CancelGpstabRoute:bB,CancelIsaacInstrumentsRoute:vB,CancelJjKellerRoute:wB,CancelKeeptruckinRoute:xB,CancelLytxRoute:EB,CancelMaxEldRoute:SB,CancelMotiveRoute:kB,CancelOmnitracsRoute:DB,CancelOneStepGpsRoute:TB,CancelPeoplenetRoute:LB,CancelRandMcnallyRoute:AB,CancelSamsaraRoute:_B,CancelSharpEldRoute:CB,CancelTerminalRoute:RB,CancelTransfloRoute:IB,CancelTrimbleRoute:OB,CancelTteldRoute:$B,CancelVerizonConnectRoute:NB,CancelVistracksRoute:HB,CancelZonarRoute:PB,CaptainEldLoginRoute:jB,CargoVanEldRoute:qB,CargoVanLoadsRoute:MB,CheapEldRoute:FB,ClubEldLoginRoute:UB,ConnectEldToHighwayRoute:BB,ContactRoute:zB,CostPerMileCalculatorRoute:VB,DigitalEldLoginRoute:GB,DotComplianceRoute:WB,DotDrugTestingConsortiumRoute:XB,DotInspectionEldRoute:YB,EldArizonaRoute:KB,EldCabCardRoute:QB,EldCaliforniaRoute:JB,EldExemptionsRoute:ZB,EldFloridaRoute:ez,EldFor1TruckRoute:tz,EldForHighwayRoute:rz,EldForTruckerToolsRoute:nz,EldGeorgiaRoute:az,EldHubFactsRoute:oz,EldHubLoginRoute:iz,EldIllinoisRoute:sz,EldLoginRoute:lz,EldMandateGuideRoute:cz,EldMandatePlusLoginRoute:uz,EldMarketReportRoute:dz,EldNorthCarolinaRoute:hz,EldOhioRoute:pz,EldPennsylvaniaRoute:fz,EldPricingRoute:mz,EldTennesseeRoute:gz,EldTexasRoute:yz,EldThatWorksWithHighwayRoute:bz,EldTrexLoginRoute:vz,EldUnder10000LbsRoute:wz,EldViolationsPenaltiesRoute:xz,EroadEldLoginRoute:Ez,ErodsLoginRoute:Sz,EzlogzLoginRoute:kz,FleetTrackingRoute:Dz,FmEldLoginRoute:Tz,FmcsaRegisteredEldListRoute:Lz,ForwardThinkingEldLoginRoute:Az,FreeEldComplianceCalculatorRoute:_z,FuelCardsRoute:Cz,FuelSavingsRoute:Rz,GarminElogLoginRoute:Iz,GeotabLoginRoute:Oz,GeotabPricingRoute:$z,GpstabLoginRoute:Nz,GreenLightEldLoginRoute:Hz,HighwayCarrierVettingRoute:Pz,HighwayEldIntegrationRoute:jz,HighwayEldProvidersRoute:qz,HosRulesRoute:Mz,Hos247LoginRoute:Fz,HotshotEldRoute:Uz,HoursOfServiceRoute:Bz,HowToStartBoxTruckBusinessRoute:zz,HowToStartCargoVanBusinessRoute:Vz,HowToStartHotshotBusinessRoute:Gz,HowToStartTruckingCompanyRoute:Wz,IdEldLoginRoute:Xz,IftaReportingSoftwareRoute:Yz,IronmanEldLoginRoute:Kz,IrpApportionedPlatesRoute:Qz,IsaacInstrumentsLoginRoute:Jz,LinxupLoginRoute:Zz,LoopEldLoginRoute:eV,LucidEldLoginRoute:tV,MasterEldLoginRoute:rV,MaxEldLoginRoute:nV,McAuthorityRoute:aV,MotiveAlternativeSmallFleetRoute:oV,MotiveLoginRoute:iV,MotivePricingRoute:sV,NewAuthorityEldRoute:lV,NewCarrierChecklistRoute:cV,NextFleetEldLoginRoute:uV,NextraqLoginRoute:dV,OmnitracsLoginRoute:hV,OmnitracsPricingRoute:pV,OneStepGpsLoginRoute:fV,OptimaEldLoginRoute:mV,OwnerOperatorEldRoute:gV,PeakEldLoginRoute:yV,PhoenixEldLoginRoute:bV,PickupTruckEldRoute:vV,PressRoute:wV,PrivacyPolicyRoute:xV,RandMcnallyEldLoginRoute:EV,RockEldLoginRoute:SV,RoyalEldLoginRoute:kV,SamsaraLoginRoute:DV,SamsaraPricingRoute:TV,SharpEldLoginRoute:LV,SimpleEldLoginRoute:AV,SprinterVanEldRoute:_V,StartTruckingCompanyCaliforniaRoute:CV,StartTruckingCompanyFloridaRoute:RV,StartTruckingCompanyGeorgiaRoute:IV,StartTruckingCompanyIllinoisRoute:OV,StartTruckingCompanyTexasRoute:$V,StellarEldLoginRoute:NV,SwiftEldLoginRoute:HV,SwitchEldProviderRoute:PV,SwitchFreeMonthRoute:jV,SwitchNowRoute:qV,SwitchSavingsCalculatorRoute:MV,TerminalEldLoginRoute:FV,TermsAndConditionsRoute:UV,TrimbleEldLoginRoute:BV,TruckingStartupCostCalculatorRoute:zV,TteldLoginRoute:VV,UcrFilingRoute:GV,UsdotNumberRoute:WV,VerizonConnectLoginRoute:XV,VistaEldLoginRoute:YV,WhatIsAnEldRoute:KV,XEldLoginRoute:QV,AuthorsSplatRoute:JV,BlogSlugRoute:e8,BlogFactoringComparisonNewAuthoritiesRoute:t8,BlogGetMcAuthorityChecklistRoute:r8,BlogHowMuchDoesItCostToStartTruckingCompanyRoute:n8,BlogNewAuthorityFirst90DaysRoute:a8,CategoriesCategoryRoute:o8,EmbedEldComplianceCalculatorRoute:i8,GlossaryBoxTruckDimensionsRoute:l8,GlossaryCoiRoute:c8,GlossaryCsaScoreRoute:u8,GlossaryDtcCodesRoute:d8,GlossaryDvirRoute:h8,GlossaryIftaRoute:p8,GlossaryMcNumberRoute:f8,GlossaryStraightTruckRoute:m8,HardwareIosixEldRoute:y8,HardwareObd2EldRoute:b8,HardwarePt30EldRoute:v8,HardwarePt30InstallationGuideRoute:w8,HardwarePt30VsIosixRoute:x8,ServicesSlugRoute:E8,SwitchPt30IosixProvidersRoute:S8,VsBigroadVsEldHubRoute:D8,VsEld247VsEldHubRoute:T8,VsEzlogzVsEldHubRoute:L8,VsFactoreldVsEldHubRoute:A8,VsGpstabVsEldHubRoute:_8,VsHos247VsEldHubRoute:C8,VsMotiveAlternativeRoute:R8,VsSamsaraAlternativeRoute:I8,VsTteldVsEldHubRoute:O8,BlogIndexRoute:ZV,GlossaryIndexRoute:s8,HardwareIndexRoute:g8,VsIndexRoute:k8},j8=_._addFileChildren(P8),q8=()=>{const e=new _O;return A_({routeTree:j8,context:{queryClient:e},scrollRestoration:!0,defaultPreloadStaleTime:0})};async function M8(){const e=await q8();let t;if(uw){const n=await uw.getOptions();n.serializationAdapters=n.serializationAdapters??[],window.__TSS_START_OPTIONS__=n,t=n.seri
41alizationAdapters,e.options.defaultSsr=n.defaultSsr}else t=[],window.__TSS_START_OPTIONS__={serializationAdapters:t};return t.push(PA),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:"",serializationAdapters:t}),e.stores.ids.get().length||await C1(e),e}var F8=M8;function U8(){return F8().finally(()=>window.$_TSR?.h())}var xp;function B8(){return xp||(xp=U8()),c.jsx(qA,{promise:xp,children:e=>c.jsx(R_,{router:e})})}ae.startTransition(()=>{DD.hydrateRoot(document,c.jsx(ae.StrictMode,{children:c.jsx(B8,{})}))});export{l3 as $,at as A,m2 as B,kf as C,ur as D,K$ as E,O2 as F,Z$ as G,jt as H,Ox as I,pE as J,a3 as K,Ee as L,Kp as M,du as N,qx as O,Df as P,_f as Q,Af as R,yt as S,mn as T,i$ as U,cu as V,RE as W,LE as X,s3 as Y,p$ as Z,N$ as _,OE as a,Tt as a$,h3 as a0,m3 as a1,Q8 as a2,v3 as a3,J8 as a4,Na as a5,Z8 as a6,_3 as a7,k3 as a8,I3 as a9,zN as aA,WN as aB,KN as aC,ZN as aD,rH as aE,oH as aF,lH as aG,dH as aH,fH as aI,A2 as aJ,vH as aK,EH as aL,DH as aM,AH as aN,RH as aO,$H as aP,PH as aQ,Ha as aR,UH as aS,VH as aT,YH as aU,K2 as aV,M3 as aW,JH as aX,ZH as aY,Ga as aZ,Rs as a_,eG as aa,Vn as ab,Qp as ac,B3 as ad,tG as ae,W3 as af,rG as ag,K3 as ah,Z3 as ai,rN as aj,Jo as ak,Kc as al,CE as am,oN as an,lN as ao,dN as ap,fN as aq,yN as ar,wN as as,SN as at,TN as au,_N as av,IN as aw,NN as ax,jN as ay,FN as az,B2 as b,iq as b$,Dw as b0,Zp as b1,lP as b2,dP as b3,fP as b4,yP as b5,bP as b6,nG as b7,EP as b8,DP as b9,Gn as bA,Bj as bB,Pa as bC,Xj as bD,Jj as bE,t5 as bF,a5 as bG,s5 as bH,u5 as bI,p5 as bJ,g5 as bK,x5 as bL,E5 as bM,X8 as bN,D5 as bO,A5 as bP,R5 as bQ,aG as bR,$5 as bS,P5 as bT,M5 as bU,Wn as bV,Xn as bW,Yn as bX,Y5 as bY,Z5 as bZ,rq as b_,AP as ba,RP as bb,NP as bc,jP as bd,D3 as be,UP as bf,GP as bg,QP as bh,Tf as bi,$E as bj,ej as bk,F2 as bl,nj as bm,ij as bn,Uw as bo,cj as bp,y2 as bq,hj as br,gj as bs,Zo as bt,Ej as bu,Dj as bv,Aj as bw,Rj as bx,Nj as by,jj as bz,Te as c,f4 as c$,oG as c0,cq as c1,hq as c2,mq as c3,bq as c4,vq as c5,kq as c6,Lq as c7,Iq as c8,Nq as c9,ZM as cA,rF as cB,oF as cC,lF as cD,dF as cE,fF as cF,yF as cG,qa as cH,iG as cI,EF as cJ,DF as cK,AF as cL,RF as cM,$F as cN,PF as cO,MF as cP,BF as cQ,zF as cR,p2 as cS,w2 as cT,XF as cU,NE as cV,uu as cW,t4 as cX,i4 as cY,K8 as cZ,d4 as c_,jq as ca,Fq as cb,zq as cc,Wq as cd,Kq as ce,Zq as cf,rM as cg,oM as ch,lM as ci,dM as cj,sa as ck,yn as cl,ti as cm,fM as cn,b3 as co,vM as cp,EM as cq,DM as cr,AM as cs,RM as ct,$M as cu,PM as cv,FM as cw,zM as cx,ja as cy,$$ as cz,Xc as d,$6 as d$,y4 as d0,w4 as d1,S4 as d2,T4 as d3,_4 as d4,$4 as d5,N4 as d6,sG as d7,lu as d8,yO as d9,zE as dA,lG as dB,vU as dC,EU as dD,DU as dE,AU as dF,RU as dG,$U as dH,PU as dI,MU as dJ,AE as dK,q3 as dL,cG as dM,VU as dN,XU as dO,QU as dP,e6 as dQ,n6 as dR,s6 as dS,uG as dT,h6 as dU,g6 as dV,v6 as dW,E6 as dX,D6 as dY,A6 as dZ,R6 as d_,uO as da,V8 as db,Gp as dc,br as dd,yE as de,lO as df,cO as dg,Vp as dh,fE as di,SO as dj,pO as dk,At as dl,G8 as dm,W8 as dn,mD as dp,q4 as dq,W4 as dr,X4 as ds,J4 as dt,Z4 as du,nU as dv,sU as dw,fU as dx,dU as dy,hU as dz,IE as e,P6 as e0,Ba as e1,b$ as f,D$ as g,c2 as h,t$ as i,c as j,W as k,ia as l,ut as m,r2 as n,Y8 as o,I$ as p,U$ as q,ae as r,Ft as s,Pr as t,Rf as u,V$ as v,Hr as w,qt as x,Mt as y,Lf as z};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.